diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..881534a --- /dev/null +++ b/.gitignore @@ -0,0 +1,25 @@ +.DS_Store +/*.launch +/deployment/ +/packages/ +/releases/ +/.mendix-cache/ +/.classpath +/.project +/*.mpr.bak +/*.mpr.lock +/project-settings.user.json +/javasource/*/proxies/ +/javasource/system/ +/**/node_modules/ +!/javascriptsource/**/node_modules/ +/.idea/ +**/.idea/ +/*.iml +[Ll]ogs/ +/*.log# Custom scripts and build artifacts + +# Custom scripts and build artifacts +theme-cache/ +themesource/email_connector/prepros.config +themesource/email_connector/web/main.css diff --git a/EmailConnectorMigrationApp.launch b/EmailConnectorMigrationApp.launch deleted file mode 100644 index 0ff7fd8..0000000 --- a/EmailConnectorMigrationApp.launch +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/EmailConnectorMigrationApp.mpr b/EmailConnectorMigrationApp.mpr index 4565198..10e5a38 100644 Binary files a/EmailConnectorMigrationApp.mpr and b/EmailConnectorMigrationApp.mpr differ diff --git a/EmailConnectorMigrationApp.mpr.bak b/EmailConnectorMigrationApp.mpr.bak deleted file mode 100644 index 45d0114..0000000 Binary files a/EmailConnectorMigrationApp.mpr.bak and /dev/null differ diff --git a/README.md b/README.md index d0c3a01..cef9e12 100644 --- a/README.md +++ b/README.md @@ -5,14 +5,12 @@ This utility will assist you in migrating only data from the [Email with templat ## Considerations ### Dependencies - Latest [Email with template](https://marketplace.mendix.com/link/component/259) module. -- [Email Connector](https://marketplace.mendix.com/link/component/120739) version 3.0.0 module. +- Latest [Email Connector](https://marketplace.mendix.com/link/component/120739) module. - Latest [Encryption](https://marketplace.mendix.com/link/component/1011) module. - Latest [Mx Reflection](https://marketplace.mendix.com/link/component/69) module. ### Pre-rerequisites - This utility will help migrate only data. -- App on MX 7 should first migrate to MX 8 LTS -- App should be on at least Mendix 8 LTS - The app should have the most recent version of the Email with Template Module. - The app should have the most recent Mx Model reflection module. - The app should have the most recent Encryption module. @@ -28,21 +26,20 @@ This utility will assist you in migrating only data from the [Email with templat - Will migrate all data. - Email accounts with OAuth provider details. - Email accounts will be migrated. - - OAuth provider’s Client ID and Client secrete will be migrated. - - OAuth provider’s callback URL will not be migrated. + - OAuth provider’s Client ID, Client secret and existing callback URL will be migrated. ### Email templates - Tokens associated with email template will be migrated. - Attachments associated with email template will be migrated. ### Email Messages -- Email messages with attachments will be migrated. +- Email messages with attachments and email headers will be migrated. +- Email message association with email account will be migrated if association account selected. ### Error logs -- Will migrate all data but will not be associated with the email account; this must be addressed after migration. +- Will migrate all data and association with selected email account, if association is not selected logs will be migrated without any association and must be addressed after migration. ### Associations - Associations that exist in both modules will only be migrated. - Email Connector-specific associations must be configured after/during migration. ### Data loss -- Because Email Connector does not support custom mail headers, data from the 'Header' entity will not be migrated. -- It is not possible to associate 'EmailMessage' with 'EmailAccount,' so messages with the status Queued, Sent, Failed, Error, Received will not be listed. Such 'EmailMessage' will be dormant until the user establishes the association after/during migration. +- It is not possible to associate 'EmailMessage' and 'Logs' with 'EmailAccount' if association is not selected so logs and messages with the status Queued, Sent, Failed, Error, Received will not be listed. Such 'EmailMessage' will be dormant until the user establishes the association after/during migration. ## Following things will not be migrated @@ -73,8 +70,8 @@ This utility will assist you in migrating only data from the [Email with templat 11. Examine the email connector module's 'After Migration' statistics. 1. Validate the data in email connector entities, or else. Open the overview page for the email connector. 2. Validate the templates that were migrated. - 3. Validate email messages, to view email messages, create an association with an email account. - 4. Validate Error Logs, if necessary, create an association with an email account to view them from the Account Settings page. + 3. Validate email messages, to view email messages, create an association with an email account if "Set Association" is not selected during migration. + 4. Validate Error Logs, to view them from the Account Settings page create an association with an email account if "Set Association" is not selected during migration. 5. Validate account and verify send email works for accounts migrated with basic authentication. 17. In the case of Oauth, update the Oauth provider details, but wait for additional steps before re-authorizing and making it work. 18. If you are good with the data uninstall the email template module. diff --git a/javascriptsource/datawidgets/actions/Export_To_Excel.js b/javascriptsource/datawidgets/actions/Export_To_Excel.js new file mode 100644 index 0000000..6786297 --- /dev/null +++ b/javascriptsource/datawidgets/actions/Export_To_Excel.js @@ -0,0 +1,82 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import "mx-global"; +import { Big } from "big.js"; +import { utils, writeFileXLSX } from './xlsx-export-tools.js'; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * @param {string} datagridName + * @param {string} fileName + * @param {string} sheetName + * @param {boolean} includeColumnHeaders + * @param {Big} chunkSize - The number of items fetched and exported per request. + * @returns {Promise.} + */ +export async function Export_To_Excel(datagridName, fileName, sheetName, includeColumnHeaders, chunkSize) { + // BEGIN USER CODE + if (!fileName || !datagridName || !sheetName) { + return false; + } + + const REGISTRY_NAME = "com.mendix.widgets.web.datagrid.export"; + const registry = window[REGISTRY_NAME]; + const controller = registry.get(datagridName); + + if (controller === undefined) { + return false; + } + + return new Promise((resolve) => { + function handler(req) { + let worksheet; + let headers; + + req.on("headers", (hds) => { + headers = hds.map(header => header.name); + if (includeColumnHeaders) { + worksheet = utils.aoa_to_sheet([headers]); + } + }); + + req.on("data", (data) => { + if (worksheet === undefined) { + worksheet = utils.aoa_to_sheet(data) + } else { + utils.sheet_add_aoa(worksheet, data, { origin: -1 }); + } + }); + + req.on("end", () => { + if (worksheet) { + // Set character width for each column + // https://docs.sheetjs.com/docs/csf/sheet#worksheet-object + worksheet["!cols"] = headers.map(header => ({ + wch: header.length + 10 + })); + const workbook = utils.book_new(); + utils.book_append_sheet(workbook, worksheet, sheetName === "" ? "Data" : sheetName); + writeFileXLSX(workbook, `${fileName}.xlsx`); + resolve(true); + } else { + resolve(false); + } + }); + + req.on("abort", () => resolve(false)); + } + + controller.exportData(handler, { + withHeaders: true, + limit: chunkSize.toNumber() + }) + }); + // END USER CODE +} diff --git a/javascriptsource/datawidgets/actions/Reset_All_Filters.js b/javascriptsource/datawidgets/actions/Reset_All_Filters.js new file mode 100644 index 0000000..34ebe0d --- /dev/null +++ b/javascriptsource/datawidgets/actions/Reset_All_Filters.js @@ -0,0 +1,26 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; +import "mx-global"; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * @param {string} targetName - Name of the widget for which filters should be reset. Valid targets are: Data grid 2, Gallery. You can find filter name in widget settings in the "Common" group (Properties>Common>Name). + * @param {boolean} setToDefault - Set to default value. If true, filter will be set to its default value, otherwise it will be set to empty. + * @returns {Promise.} + */ +export async function Reset_All_Filters(targetName, setToDefault) { + // BEGIN USER CODE + const plugin = window["com.mendix.widgets.web.plugin.externalEvents"]; + if (plugin) { + plugin.emit(targetName, "reset.filters", setToDefault); + } + // END USER CODE +} diff --git a/javascriptsource/datawidgets/actions/Reset_Filter.js b/javascriptsource/datawidgets/actions/Reset_Filter.js new file mode 100644 index 0000000..076281d --- /dev/null +++ b/javascriptsource/datawidgets/actions/Reset_Filter.js @@ -0,0 +1,26 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import "mx-global"; +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * @param {string} targetName - Name of the filter to reset. Valid targets are: Number filter, Date filter, Text filter, Drop-down filter. You can find filter name in widget settings in the "Common" group (Properties>Common>Name). + * @param {boolean} setToDefault - Set to default value. If true, filter will be set to its default value, otherwise it will be set to empty. + * @returns {Promise.} + */ +export async function Reset_Filter(targetName, setToDefault) { + // BEGIN USER CODE + const plugin = window["com.mendix.widgets.web.plugin.externalEvents"]; + if (plugin) { + plugin.emit(targetName, "reset.value", setToDefault); + } + // END USER CODE +} diff --git a/javascriptsource/datawidgets/actions/Set_Filter.js b/javascriptsource/datawidgets/actions/Set_Filter.js new file mode 100644 index 0000000..68517a8 --- /dev/null +++ b/javascriptsource/datawidgets/actions/Set_Filter.js @@ -0,0 +1,34 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import "mx-global"; +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * @param {string} targetName - Name of the filter to set. Valid targets are: Number filter, Date filter, Text filter, Drop-down filter. You can find filter name in widget settings in the "Common" group (Properties>Common>Name). + * @param {boolean} useDefaultValue - Determine the use of default value provided by the filter component itself. +If true, "Value" section will be ignored + * @param {"DataWidgets.Filter_Operators.contains"|"DataWidgets.Filter_Operators.startsWith"|"DataWidgets.Filter_Operators.endsWith"|"DataWidgets.Filter_Operators.between"|"DataWidgets.Filter_Operators.greater"|"DataWidgets.Filter_Operators.greaterEqual"|"DataWidgets.Filter_Operators.equal"|"DataWidgets.Filter_Operators.notEqual"|"DataWidgets.Filter_Operators.smaller"|"DataWidgets.Filter_Operators.smallerEqual"|"DataWidgets.Filter_Operators.empty"|"DataWidgets.Filter_Operators.notEmpty"} operators - Selected operators value. If filter has operators, this value will be applied. + * @param {string} stringValue - Value set for dropdown filter or text filter. Choose empty if not use. + * @param {Big} numberValue - Number value for number filter. Choose empty if not use. + * @param {Date} dateTimeValue - Date time value for date filter, can also be use as "start date". Choose empty if not use. + * @param {Date} dateTimeValue_2 - End date time value for range filter. Choose empty if not use. + * @returns {Promise.} + */ +export async function Set_Filter(targetName, useDefaultValue, operators, stringValue, numberValue, dateTimeValue, dateTimeValue_2) { + // BEGIN USER CODE + const plugin = window["com.mendix.widgets.web.plugin.externalEvents"]; + if (plugin) { + plugin.emit(targetName, "set.value", useDefaultValue, { + operators, stringValue, numberValue, dateTimeValue, dateTimeValue2: dateTimeValue_2 + }); + } + // END USER CODE +} diff --git a/javascriptsource/datawidgets/actions/xlsx-export-tools.js b/javascriptsource/datawidgets/actions/xlsx-export-tools.js new file mode 100644 index 0000000..9536149 --- /dev/null +++ b/javascriptsource/datawidgets/actions/xlsx-export-tools.js @@ -0,0 +1,3 @@ +/*! xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */ +var e=function(e){return String.fromCharCode(e)},t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function r(e){for(var r="",n=0,a=0,i=0,o=0,s=0,l=0,c=0,f=0;f>2,s=(3&n)<<4|(a=e.charCodeAt(f++))>>4,l=(15&a)<<2|(i=e.charCodeAt(f++))>>6,c=63&i,isNaN(a)?l=c=64:isNaN(i)&&(c=64),r+=t.charAt(o)+t.charAt(s)+t.charAt(l)+t.charAt(c);return r}function n(e){var r="",n=0,a=0,i=0,o=0,s=0,l=0;"data:"==e.slice(0,5)&&((c=e.slice(0,1024).indexOf(";base64,"))>-1&&(e=e.slice(c+8)));e=e.replace(/[^\w\+\/\=]/g,"");for(var c=0;c>4,r+=String.fromCharCode(n),a=(15&o)<<4|(s=t.indexOf(e.charAt(c++)))>>2,64!==s&&(r+=String.fromCharCode(a)),i=(3&s)<<6|(l=t.indexOf(e.charAt(c++))),64!==l&&(r+=String.fromCharCode(i));return r}var a=function(){return"undefined"!=typeof Buffer&&"undefined"!=typeof process&&void 0!==process.versions&&!!process.versions.node}(),i=function(){if("undefined"!=typeof Buffer){var e=!Buffer.from;if(!e)try{Buffer.from("foo","utf8")}catch(t){e=!0}return e?function(e,t){return t?new Buffer(e,t):new Buffer(e)}:Buffer.from.bind(Buffer)}return function(){}}(),o=function(){if("undefined"==typeof Buffer)return!1;var e=i([65,0]);return!!e&&1==e.toString("utf16le").length}();function s(e){return a?Buffer.alloc?Buffer.alloc(e):new Buffer(e):"undefined"!=typeof Uint8Array?new Uint8Array(e):new Array(e)}function l(e){return a?Buffer.allocUnsafe?Buffer.allocUnsafe(e):new Buffer(e):"undefined"!=typeof Uint8Array?new Uint8Array(e):new Array(e)}var c=function(e){return a?i(e,"binary"):e.split("").map((function(e){return 255&e.charCodeAt(0)}))};function f(e){if("undefined"==typeof ArrayBuffer)return c(e);for(var t=new ArrayBuffer(e.length),r=new Uint8Array(t),n=0;n!=e.length;++n)r[n]=255&e.charCodeAt(n);return t}var h=a?function(e){return Buffer.concat(e.map((function(e){return Buffer.isBuffer(e)?e:i(e)})))}:function(e){if("undefined"!=typeof Uint8Array){var t=0,r=0;for(t=0;t=0;)t+=e.charAt(r--);return t}function m(e,t){var r=""+e;return r.length>=t?r:ve("0",t-r.length)+r}function g(e,t){var r=""+e;return r.length>=t?r:ve(" ",t-r.length)+r}function v(e,t){var r=""+e;return r.length>=t?r:r+ve(" ",t-r.length)}var b=Math.pow(2,32);function x(e,t){return e>b||e<-b?function(e,t){var r=""+Math.round(e);return r.length>=t?r:ve("0",t-r.length)+r}(e,t):function(e,t){var r=""+e;return r.length>=t?r:ve("0",t-r.length)+r}(Math.round(e),t)}function w(e,t){return t=t||0,e.length>=7+t&&103==(32|e.charCodeAt(t))&&101==(32|e.charCodeAt(t+1))&&110==(32|e.charCodeAt(t+2))&&101==(32|e.charCodeAt(t+3))&&114==(32|e.charCodeAt(t+4))&&97==(32|e.charCodeAt(t+5))&&108==(32|e.charCodeAt(t+6))}var y=[["Sun","Sunday"],["Mon","Monday"],["Tue","Tuesday"],["Wed","Wednesday"],["Thu","Thursday"],["Fri","Friday"],["Sat","Saturday"]],C=[["J","Jan","January"],["F","Feb","February"],["M","Mar","March"],["A","Apr","April"],["M","May","May"],["J","Jun","June"],["J","Jul","July"],["A","Aug","August"],["S","Sep","September"],["O","Oct","October"],["N","Nov","November"],["D","Dec","December"]];var S={0:"General",1:"0",2:"0.00",3:"#,##0",4:"#,##0.00",9:"0%",10:"0.00%",11:"0.00E+00",12:"# ?/?",13:"# ??/??",14:"m/d/yy",15:"d-mmm-yy",16:"d-mmm",17:"mmm-yy",18:"h:mm AM/PM",19:"h:mm:ss AM/PM",20:"h:mm",21:"h:mm:ss",22:"m/d/yy h:mm",37:"#,##0 ;(#,##0)",38:"#,##0 ;[Red](#,##0)",39:"#,##0.00;(#,##0.00)",40:"#,##0.00;[Red](#,##0.00)",45:"mm:ss",46:"[h]:mm:ss",47:"mmss.0",48:"##0.0E+0",49:"@",56:'"上午/下午 "hh"時"mm"分"ss"秒 "'},k={5:37,6:38,7:39,8:40,23:0,24:0,25:0,26:0,27:14,28:14,29:14,30:14,31:14,50:14,51:14,52:14,53:14,54:14,55:14,56:14,57:14,58:14,59:1,60:2,61:3,62:4,67:9,68:10,69:12,70:13,71:14,72:14,73:15,74:16,75:17,76:20,77:21,78:22,79:45,80:46,81:47,82:0},_={5:'"$"#,##0_);\\("$"#,##0\\)',63:'"$"#,##0_);\\("$"#,##0\\)',6:'"$"#,##0_);[Red]\\("$"#,##0\\)',64:'"$"#,##0_);[Red]\\("$"#,##0\\)',7:'"$"#,##0.00_);\\("$"#,##0.00\\)',65:'"$"#,##0.00_);\\("$"#,##0.00\\)',8:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',66:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',41:'_(* #,##0_);_(* \\(#,##0\\);_(* "-"_);_(@_)',42:'_("$"* #,##0_);_("$"* \\(#,##0\\);_("$"* "-"_);_(@_)',43:'_(* #,##0.00_);_(* \\(#,##0.00\\);_(* "-"??_);_(@_)',44:'_("$"* #,##0.00_);_("$"* \\(#,##0.00\\);_("$"* "-"??_);_(@_)'};function A(e,t,r){for(var n=e<0?-1:1,a=e*n,i=0,o=1,s=0,l=1,c=0,f=0,h=Math.floor(a);ct&&(c>t?(f=l,s=i):(f=c,s=o)),!r)return[0,n*s,f];var u=Math.floor(n*s/f);return[u,n*s-u*f,f]}function T(e,t,r){if(e>2958465||e<0)return null;var n=0|(e=function(e){var t=e.toPrecision(16);if(t.indexOf("e")>-1){var r=t.slice(0,t.indexOf("e"));return(r=r.indexOf(".")>-1?r.slice(0,"0."==r.slice(0,2)?17:16):r.slice(0,15)+ve("0",r.length-15))+t.slice(t.indexOf("e"))}var n=t.indexOf(".")>-1?t.slice(0,"0."==t.slice(0,2)?17:16):t.slice(0,15)+ve("0",t.length-15);return Number(n)}(e)),a=Math.floor(86400*(e-n)),i=0,o=[],s={D:n,T:a,u:86400*(e-n)-a,y:0,m:0,d:0,H:0,M:0,S:0,q:0};if(Math.abs(s.u)<1e-6&&(s.u=0),t&&t.date1904&&(n+=1462),s.u>.9999&&(s.u=0,86400==++a&&(s.T=a=0,++n,++s.D)),60===n)o=r?[1317,10,29]:[1900,2,29],i=3;else if(0===n)o=r?[1317,8,29]:[1900,1,0],i=6;else{n>60&&--n;var l=new Date(1900,0,1);l.setDate(l.getDate()+n-1),o=[l.getFullYear(),l.getMonth()+1,l.getDate()],i=l.getDay(),n<60&&(i=(i+6)%7),r&&(i=function(e,t){t[0]-=581;var r=e.getDay();e<60&&(r=(r+6)%7);return r}(l,o))}return s.y=o[0],s.m=o[1],s.d=o[2],s.S=a%60,a=Math.floor(a/60),s.M=a%60,a=Math.floor(a/60),s.H=a,s.q=i,s}function D(e){return-1==e.indexOf(".")?e:e.replace(/(?:\.0*|(\.\d*[1-9])0+)$/,"$1")}function O(e){if(!isFinite(e))return isNaN(e)?"#NUM!":"#DIV/0!";var t,r=Math.floor(Math.log(Math.abs(e))*Math.LOG10E);return t=r>=-4&&r<=-1?e.toPrecision(10+r):Math.abs(r)<=9?function(e){var t=e<0?12:11,r=D(e.toFixed(12));return r.length<=t||(r=e.toPrecision(10)).length<=t?r:e.toExponential(5)}(e):10===r?e.toFixed(10).substr(0,12):function(e){var t=D(e.toFixed(11));return t.length>(e<0?12:11)||"0"===t||"-0"===t?e.toPrecision(6):t}(e),D(function(e){return-1==e.indexOf("E")?e:e.replace(/(?:\.0*|(\.\d*[1-9])0+)[Ee]/,"$1E").replace(/(E[+-])(\d)$/,"$10$2")}(t.toUpperCase()))}function F(e,t){switch(typeof e){case"string":return e;case"boolean":return e?"TRUE":"FALSE";case"number":return(0|e)===e?e.toString(10):O(e);case"undefined":return"";case"object":if(null==e)return"";if(e instanceof Date)return K(14,fe(e,t&&t.date1904),t)}throw new Error("unsupported value in General format: "+e)}function E(e,t,r,n){var a,i="",o=0,s=0,l=r.y,c=0;switch(e){case 98:l=r.y+543;case 121:switch(t.length){case 1:case 2:a=l%100,c=2;break;default:a=l%1e4,c=4}break;case 109:switch(t.length){case 1:case 2:a=r.m,c=t.length;break;case 3:return C[r.m-1][1];case 5:return C[r.m-1][0];default:return C[r.m-1][2]}break;case 100:switch(t.length){case 1:case 2:a=r.d,c=t.length;break;case 3:return y[r.q][0];default:return y[r.q][1]}break;case 104:switch(t.length){case 1:case 2:a=1+(r.H+11)%12,c=t.length;break;default:throw"bad hour format: "+t}break;case 72:switch(t.length){case 1:case 2:a=r.H,c=t.length;break;default:throw"bad hour format: "+t}break;case 77:switch(t.length){case 1:case 2:a=r.M,c=t.length;break;default:throw"bad minute format: "+t}break;case 115:if("s"!=t&&"ss"!=t&&".0"!=t&&".00"!=t&&".000"!=t)throw"bad second format: "+t;return 0!==r.u||"s"!=t&&"ss"!=t?(s=n>=2?3===n?1e3:100:1===n?10:1,(o=Math.round(s*(r.S+r.u)))>=60*s&&(o=0),"s"===t?0===o?"0":""+o/s:(i=m(o,2+n),"ss"===t?i.substr(0,2):"."+i.substr(2,t.length-1))):m(r.S,t.length);case 90:switch(t){case"[h]":case"[hh]":a=24*r.D+r.H;break;case"[m]":case"[mm]":a=60*(24*r.D+r.H)+r.M;break;case"[s]":case"[ss]":a=60*(60*(24*r.D+r.H)+r.M)+(0==n?Math.round(r.S+r.u):r.S);break;default:throw"bad abstime format: "+t}c=3===t.length?1:2;break;case 101:a=l,c=1}return c>0?m(a,c):""}function M(e){if(e.length<=3)return e;for(var t=e.length%3,r=e.substr(0,t);t!=e.length;t+=3)r+=(r.length>0?",":"")+e.substr(t,3);return r}var N=/%/g;function I(e,t){var r,n=e.indexOf("E")-e.indexOf(".")-1;if(e.match(/^#+0.0E\+0$/)){if(0==t)return"0.0E+0";if(t<0)return"-"+I(e,-t);var a=e.indexOf(".");-1===a&&(a=e.indexOf("E"));var i=Math.floor(Math.log(t)*Math.LOG10E)%a;if(i<0&&(i+=a),-1===(r=(t/Math.pow(10,i)).toPrecision(n+1+(a+i)%a)).indexOf("e")){var o=Math.floor(Math.log(t)*Math.LOG10E);for(-1===r.indexOf(".")?r=r.charAt(0)+"."+r.substr(1)+"E+"+(o-r.length+i):r+="E+"+(o-i);"0."===r.substr(0,2);)r=(r=r.charAt(0)+r.substr(2,a)+"."+r.substr(2+a)).replace(/^0+([1-9])/,"$1").replace(/^0+\./,"0.");r=r.replace(/\+-/,"-")}r=r.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,(function(e,t,r,n){return t+r+n.substr(0,(a+i)%a)+"."+n.substr(i)+"E"}))}else r=t.toExponential(n);return e.match(/E\+00$/)&&r.match(/e[+-]\d$/)&&(r=r.substr(0,r.length-1)+"0"+r.charAt(r.length-1)),e.match(/E\-/)&&r.match(/e\+/)&&(r=r.replace(/e\+/,"e")),r.replace("e","E")}var P=/# (\?+)( ?)\/( ?)(\d+)/;var R=/^#*0*\.([0#]+)/,L=/\)[^)]*[0#]/,U=/\(###\) ###\\?-####/;function z(e){for(var t,r="",n=0;n!=e.length;++n)switch(t=e.charCodeAt(n)){case 35:break;case 63:r+=" ";break;case 48:r+="0";break;default:r+=String.fromCharCode(t)}return r}function j(e,t){var r=Math.pow(10,t);return""+Math.round(e*r)/r}function B(e,t){var r=e-Math.floor(e),n=Math.pow(10,t);return t<(""+Math.round(r*n)).length?0:Math.round(r*n)}function W(e,t,r){if(40===e.charCodeAt(0)&&!t.match(L)){var n=t.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");return r>=0?W("n",n,r):"("+W("n",n,-r)+")"}if(44===t.charCodeAt(t.length-1))return function(e,t,r){for(var n=t.length-1;44===t.charCodeAt(n-1);)--n;return V(e,t.substr(0,n),r/Math.pow(10,3*(t.length-n)))}(e,t,r);if(-1!==t.indexOf("%"))return function(e,t,r){var n=t.replace(N,""),a=t.length-n.length;return V(e,n,r*Math.pow(10,2*a))+ve("%",a)}(e,t,r);if(-1!==t.indexOf("E"))return I(t,r);if(36===t.charCodeAt(0))return"$"+W(e,t.substr(" "==t.charAt(1)?2:1),r);var a,i,o,s,l=Math.abs(r),c=r<0?"-":"";if(t.match(/^00+$/))return c+x(l,t.length);if(t.match(/^[#?]+$/))return"0"===(a=x(r,0))&&(a=""),a.length>t.length?a:z(t.substr(0,t.length-a.length))+a;if(i=t.match(P))return function(e,t,r){var n=parseInt(e[4],10),a=Math.round(t*n),i=Math.floor(a/n),o=a-i*n,s=n;return r+(0===i?"":""+i)+" "+(0===o?ve(" ",e[1].length+1+e[4].length):g(o,e[1].length)+e[2]+"/"+e[3]+m(s,e[4].length))}(i,l,c);if(t.match(/^#+0+$/))return c+x(l,t.length-t.indexOf("0"));if(i=t.match(R))return a=j(r,i[1].length).replace(/^([^\.]+)$/,"$1."+z(i[1])).replace(/\.$/,"."+z(i[1])).replace(/\.(\d*)$/,(function(e,t){return"."+t+ve("0",z(i[1]).length-t.length)})),-1!==t.indexOf("0.")?a:a.replace(/^0\./,".");if(t=t.replace(/^#+([0.])/,"$1"),i=t.match(/^(0*)\.(#*)$/))return c+j(l,i[2].length).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,i[1].length?"0.":".");if(i=t.match(/^#{1,3},##0(\.?)$/))return c+M(x(l,0));if(i=t.match(/^#,##0\.([#0]*0)$/))return r<0?"-"+W(e,t,-r):M(""+(Math.floor(r)+function(e,t){return t<(""+Math.round((e-Math.floor(e))*Math.pow(10,t))).length?1:0}(r,i[1].length)))+"."+m(B(r,i[1].length),i[1].length);if(i=t.match(/^#,#*,#0/))return W(e,t.replace(/^#,#*,/,""),r);if(i=t.match(/^([0#]+)(\\?-([0#]+))+$/))return a=d(W(e,t.replace(/[\\-]/g,""),r)),o=0,d(d(t.replace(/\\/g,"")).replace(/[0#]/g,(function(e){return o-2147483648?""+(e>=0?0|e:e-1|0):""+Math.floor(e)}(r)).replace(/^\d,\d{3}$/,"0$&").replace(/^\d*$/,(function(e){return"00,"+(e.length<3?m(0,3-e.length):"")+e}))+"."+m(o,i[1].length);switch(t){case"###,##0.00":return W(e,"#,##0.00",r);case"###,###":case"##,###":case"#,###":var p=M(x(l,0));return"0"!==p?c+p:"";case"###,###.00":return W(e,"###,##0.00",r).replace(/^0\./,".");case"#,###.00":return W(e,"#,##0.00",r).replace(/^0\./,".")}throw new Error("unsupported format |"+t+"|")}function H(e,t){var r,n=e.indexOf("E")-e.indexOf(".")-1;if(e.match(/^#+0.0E\+0$/)){if(0==t)return"0.0E+0";if(t<0)return"-"+H(e,-t);var a=e.indexOf(".");-1===a&&(a=e.indexOf("E"));var i=Math.floor(Math.log(t)*Math.LOG10E)%a;if(i<0&&(i+=a),!(r=(t/Math.pow(10,i)).toPrecision(n+1+(a+i)%a)).match(/[Ee]/)){var o=Math.floor(Math.log(t)*Math.LOG10E);-1===r.indexOf(".")?r=r.charAt(0)+"."+r.substr(1)+"E+"+(o-r.length+i):r+="E+"+(o-i),r=r.replace(/\+-/,"-")}r=r.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,(function(e,t,r,n){return t+r+n.substr(0,(a+i)%a)+"."+n.substr(i)+"E"}))}else r=t.toExponential(n);return e.match(/E\+00$/)&&r.match(/e[+-]\d$/)&&(r=r.substr(0,r.length-1)+"0"+r.charAt(r.length-1)),e.match(/E\-/)&&r.match(/e\+/)&&(r=r.replace(/e\+/,"e")),r.replace("e","E")}function X(e,t,r){if(40===e.charCodeAt(0)&&!t.match(L)){var n=t.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");return r>=0?X("n",n,r):"("+X("n",n,-r)+")"}if(44===t.charCodeAt(t.length-1))return function(e,t,r){for(var n=t.length-1;44===t.charCodeAt(n-1);)--n;return V(e,t.substr(0,n),r/Math.pow(10,3*(t.length-n)))}(e,t,r);if(-1!==t.indexOf("%"))return function(e,t,r){var n=t.replace(N,""),a=t.length-n.length;return V(e,n,r*Math.pow(10,2*a))+ve("%",a)}(e,t,r);if(-1!==t.indexOf("E"))return H(t,r);if(36===t.charCodeAt(0))return"$"+X(e,t.substr(" "==t.charAt(1)?2:1),r);var a,i,o,s,l=Math.abs(r),c=r<0?"-":"";if(t.match(/^00+$/))return c+m(l,t.length);if(t.match(/^[#?]+$/))return a=""+r,0===r&&(a=""),a.length>t.length?a:z(t.substr(0,t.length-a.length))+a;if(i=t.match(P))return function(e,t,r){return r+(0===t?"":""+t)+ve(" ",e[1].length+2+e[4].length)}(i,l,c);if(t.match(/^#+0+$/))return c+m(l,t.length-t.indexOf("0"));if(i=t.match(R))return a=(a=(""+r).replace(/^([^\.]+)$/,"$1."+z(i[1])).replace(/\.$/,"."+z(i[1]))).replace(/\.(\d*)$/,(function(e,t){return"."+t+ve("0",z(i[1]).length-t.length)})),-1!==t.indexOf("0.")?a:a.replace(/^0\./,".");if(t=t.replace(/^#+([0.])/,"$1"),i=t.match(/^(0*)\.(#*)$/))return c+(""+l).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,i[1].length?"0.":".");if(i=t.match(/^#{1,3},##0(\.?)$/))return c+M(""+l);if(i=t.match(/^#,##0\.([#0]*0)$/))return r<0?"-"+X(e,t,-r):M(""+r)+"."+ve("0",i[1].length);if(i=t.match(/^#,#*,#0/))return X(e,t.replace(/^#,#*,/,""),r);if(i=t.match(/^([0#]+)(\\?-([0#]+))+$/))return a=d(X(e,t.replace(/[\\-]/g,""),r)),o=0,d(d(t.replace(/\\/g,"")).replace(/[0#]/g,(function(e){return o-1||"\\"==r&&"-"==e.charAt(t+1)&&"0#".indexOf(e.charAt(t+2))>-1););break;case"?":for(;e.charAt(++t)===r;);break;case"*":++t," "!=e.charAt(t)&&"*"!=e.charAt(t)||++t;break;case"(":case")":++t;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":for(;t-1;);break;default:++t}return!1}var q=/\[(=|>[=]?|<[>=]?)(-?\d+(?:\.\d*)?)\]/;function Y(e,t){if(null==t)return!1;var r=parseFloat(t[2]);switch(t[1]){case"=":if(e==r)return!0;break;case">":if(e>r)return!0;break;case"<":if(e":if(e!=r)return!0;break;case">=":if(e>=r)return!0;break;case"<=":if(e<=r)return!0}return!1}function Z(e,t){var r=function(e){for(var t=[],r=!1,n=0,a=0;n-1&&--n,r.length>4)throw new Error("cannot find right format for |"+r.join("|")+"|");if("number"!=typeof t)return[4,4===r.length||a>-1?r[r.length-1]:"@"];switch("number"!=typeof t||isFinite(t)||(t=0),r.length){case 1:r=a>-1?["General","General","General",r[0]]:[r[0],r[0],r[0],"@"];break;case 2:r=a>-1?[r[0],r[0],r[0],r[1]]:[r[0],r[1],r[0],"@"];break;case 3:r=a>-1?[r[0],r[1],r[0],r[2]]:[r[0],r[1],r[2],"@"]}var i=t>0?r[0]:t<0?r[1]:r[2];if(-1===r[0].indexOf("[")&&-1===r[1].indexOf("["))return[n,i];if(null!=r[0].match(/\[[=<>]/)||null!=r[1].match(/\[[=<>]/)){var o=r[0].match(q),s=r[1].match(q);return Y(t,o)?[n,r[0]]:Y(t,s)?[n,r[1]]:[n,r[null!=o&&null!=s?2:1]]}return[n,i]}function K(e,t,r){null==r&&(r={});var n="";switch(typeof e){case"string":n="m/d/yy"==e&&r.dateNF?r.dateNF:e;break;case"number":null==(n=14==e&&r.dateNF?r.dateNF:(null!=r.table?r.table:S)[e])&&(n=r.table&&r.table[k[e]]||S[k[e]]),null==n&&(n=_[e]||"General")}if(w(n,0))return F(t,r);t instanceof Date&&(t=fe(t,r.date1904));var a=Z(n,t);if(w(a[1]))return F(t,r);if(!0===t)t="TRUE";else if(!1===t)t="FALSE";else{if(""===t||null==t)return"";if(isNaN(t)&&a[1].indexOf("0")>-1)return"#NUM!";if(!isFinite(t)&&a[1].indexOf("0")>-1)return"#DIV/0!"}return function(e,t,r,n){for(var a,i,o,s=[],l="",c=0,f="",h="t",u="H";c=12?e.charAt(c+2):f),m.t="T",u="h",c+=3):"AM/PM"===e.substr(c,5).toUpperCase()?(null!=a&&(m.v=a.H>=12?"PM":"AM"),m.t="T",c+=5,u="h"):"上午/下午"===e.substr(c,5).toUpperCase()?(null!=a&&(m.v=a.H>=12?"下午":"上午"),m.t="T",c+=5,u="h"):(m.t="t",++c),null==a&&"T"===m.t)return"";s[s.length]=m,h=f;break;case"[":for(l=f;"]"!==e.charAt(c++)&&c-1&&(l=(l.match(/\$([^-\[\]]*)/)||[])[1]||"$",J(e)||(s[s.length]={t:"t",v:l}));break;case".":if(null!=a){for(l=f;++c-1;)l+=f;s[s.length]={t:"n",v:l};break;case"?":for(l=f;e.charAt(++c)===f;)l+=f;s[s.length]={t:f,v:l},h=f;break;case"*":++c," "!=e.charAt(c)&&"*"!=e.charAt(c)||++c;break;case"(":case")":s[s.length]={t:1===n?"t":f,v:f},++c;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":for(l=f;c-1;)l+=e.charAt(c);s[s.length]={t:"D",v:l};break;case" ":s[s.length]={t:f,v:f},++c;break;case"$":s[s.length]={t:"t",v:"$"},++c;break;default:if(-1===",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP".indexOf(f))throw new Error("unrecognized character "+f+" in "+e);s[s.length]={t:"t",v:f},++c}var g,v,b=0,x=0;for(c=s.length-1,h="t";c>=0;--c)switch(s[c].t){case"h":case"H":s[c].t=u,h="h",b<1&&(b=1);break;case"s":(g=s[c].v.match(/\.0+$/))&&(x=Math.max(x,g[0].length-1),b=4),b<3&&(b=3);case"d":case"y":case"e":h=s[c].t;break;case"M":h=s[c].t,b<2&&(b=2);break;case"m":"s"===h&&(s[c].t="M",b<2&&(b=2));break;case"X":break;case"Z":b<1&&s[c].v.match(/[Hh]/)&&(b=1),b<2&&s[c].v.match(/[Mm]/)&&(b=2),b<3&&s[c].v.match(/[Ss]/)&&(b=3)}switch(b){case 0:break;case 1:case 2:case 3:a.u>=.5&&(a.u=0,++a.S),a.S>=60&&(a.S=0,++a.M),a.M>=60&&(a.M=0,++a.H),a.H>=24&&(a.H=0,++a.D,(v=T(a.D)).u=a.u,v.S=a.S,v.M=a.M,v.H=a.H,a=v);break;case 4:switch(x){case 1:a.u=Math.round(10*a.u)/10;break;case 2:a.u=Math.round(100*a.u)/100;break;case 3:a.u=Math.round(1e3*a.u)/1e3}a.u>=1&&(a.u=0,++a.S),a.S>=60&&(a.S=0,++a.M),a.M>=60&&(a.M=0,++a.H),a.H>=24&&(a.H=0,++a.D,(v=T(a.D)).u=a.u,v.S=a.S,v.M=a.M,v.H=a.H,a=v)}var y,C="";for(c=0;c0){40==C.charCodeAt(0)?(S=t<0&&45===C.charCodeAt(0)?-t:t,k=V("n",C,S)):(k=V("n",C,S=t<0&&n>1?-t:t),S<0&&s[0]&&"t"==s[0].t&&(k=k.substr(1),s[0].v="-"+s[0].v)),y=k.length-1;var A=s.length;for(c=0;c-1){A=c;break}var D=s.length;if(A===s.length&&-1===k.indexOf("E")){for(c=s.length-1;c>=0;--c)null!=s[c]&&-1!=="n?".indexOf(s[c].t)&&(y>=s[c].v.length-1?(y-=s[c].v.length,s[c].v=k.substr(y+1,s[c].v.length)):y<0?s[c].v="":(s[c].v=k.substr(0,y+1),y=-1),s[c].t="t",D=c);y>=0&&D=0;--c)if(null!=s[c]&&-1!=="n?".indexOf(s[c].t)){for(i=s[c].v.indexOf(".")>-1&&c===A?s[c].v.indexOf(".")-1:s[c].v.length-1,_=s[c].v.substr(i+1);i>=0;--i)y>=0&&("0"===s[c].v.charAt(i)||"#"===s[c].v.charAt(i))&&(_=k.charAt(y--)+_);s[c].v=_,s[c].t="t",D=c}for(y>=0&&D-1&&c===A?s[c].v.indexOf(".")+1:0,_=s[c].v.substr(0,i);i-1&&(S=n>1&&t<0&&c>0&&"-"===s[c-1].v?-t:t,s[c].v=V(s[c].t,s[c].v,S),s[c].t="t");var O="";for(c=0;c!==s.length;++c)null!=s[c]&&(O+=s[c].v);return O}(a[1],t,r,a[0])}function Q(e,t){if("number"!=typeof t){t=+t||-1;for(var r=0;r<392;++r)if(null!=S[r]){if(S[r]==e){t=r;break}}else t<0&&(t=r);t<0&&(t=391)}return S[t]=e,t}var ee={"d.m":"d\\.m"};var te=function(){var e={};e.version="1.2.0";var t=function(){for(var e=0,t=new Array(256),r=0;256!=r;++r)e=1&(e=1&(e=1&(e=1&(e=1&(e=1&(e=1&(e=1&(e=r)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1,t[r]=e;return"undefined"!=typeof Int32Array?new Int32Array(t):t}();var r=function(e){var t=0,r=0,n=0,a="undefined"!=typeof Int32Array?new Int32Array(4096):new Array(4096);for(n=0;256!=n;++n)a[n]=e[n];for(n=0;256!=n;++n)for(r=e[n],t=256+n;t<4096;t+=256)r=a[t]=r>>>8^e[255&r];var i=[];for(n=1;16!=n;++n)i[n-1]="undefined"!=typeof Int32Array&&"function"==typeof a.subarray?a.subarray(256*n,256*n+256):a.slice(256*n,256*n+256);return i}(t),n=r[0],a=r[1],i=r[2],o=r[3],s=r[4],l=r[5],c=r[6],f=r[7],h=r[8],u=r[9],p=r[10],d=r[11],m=r[12],g=r[13],v=r[14];return e.table=t,e.bstr=function(e,r){for(var n=~r,a=0,i=e.length;a>>8^t[255&(n^e.charCodeAt(a++))];return~n},e.buf=function(e,r){for(var b=~r,x=e.length-15,w=0;w>8&255]^m[e[w++]^b>>16&255]^d[e[w++]^b>>>24]^p[e[w++]]^u[e[w++]]^h[e[w++]]^f[e[w++]]^c[e[w++]]^l[e[w++]]^s[e[w++]]^o[e[w++]]^i[e[w++]]^a[e[w++]]^n[e[w++]]^t[e[w++]];for(x+=15;w>>8^t[255&(b^e[w++])];return~b},e.str=function(e,r){for(var n=~r,a=0,i=e.length,o=0,s=0;a>>8^t[255&(n^o)]:o<2048?n=(n=n>>>8^t[255&(n^(192|o>>6&31))])>>>8^t[255&(n^(128|63&o))]:o>=55296&&o<57344?(o=64+(1023&o),s=1023&e.charCodeAt(a++),n=(n=(n=(n=n>>>8^t[255&(n^(240|o>>8&7))])>>>8^t[255&(n^(128|o>>2&63))])>>>8^t[255&(n^(128|s>>6&15|(3&o)<<4))])>>>8^t[255&(n^(128|63&s))]):n=(n=(n=n>>>8^t[255&(n^(224|o>>12&15))])>>>8^t[255&(n^(128|o>>6&63))])>>>8^t[255&(n^(128|63&o))];return~n},e}(),re=function(){var e,t={};function o(e){if("/"==e.charAt(e.length-1))return-1===e.slice(0,-1).indexOf("/")?e:o(e.slice(0,-1));var t=e.lastIndexOf("/");return-1===t?e:e.slice(0,t+1)}function f(e){if("/"==e.charAt(e.length-1))return f(e.slice(0,-1));var t=e.lastIndexOf("/");return-1===t?e:e.slice(t+1)}function d(e,t){"string"==typeof t&&(t=new Date(t));var r=t.getHours();r=(r=r<<6|t.getMinutes())<<5|t.getSeconds()>>>1,e.write_shift(2,r);var n=t.getFullYear()-1980;n=(n=n<<4|t.getMonth()+1)<<5|t.getDate(),e.write_shift(2,n)}function m(e){Tt(e,0);for(var t={},r=0;e.l<=e.length-4;){var n=e.read_shift(2),a=e.read_shift(2),i=e.l+a,o={};switch(n){case 21589:1&(r=e.read_shift(1))&&(o.mtime=e.read_shift(4)),a>5&&(2&r&&(o.atime=e.read_shift(4)),4&r&&(o.ctime=e.read_shift(4))),o.mtime&&(o.mt=new Date(1e3*o.mtime));break;case 1:var s=e.read_shift(4),l=e.read_shift(4);o.usz=l*Math.pow(2,32)+s,s=e.read_shift(4),l=e.read_shift(4),o.csz=l*Math.pow(2,32)+s}e.l=i,t[n]=o}return t}function g(){return e||(e=undefined)}function v(e,t){if(80==e[0]&&75==e[1])return ge(e,t);if(109==(32|e[0])&&105==(32|e[1]))return function(e,t){if("mime-version:"!=M(e.slice(0,13)).toLowerCase())throw new Error("Unsupported MAD header");var r=t&&t.root||"",n=(a&&Buffer.isBuffer(e)?e.toString("binary"):M(e)).split("\r\n"),i=0,o="";for(i=0;i0&&(r=(r=r.slice(0,r.length-1)).slice(0,r.lastIndexOf("/")+1),o.slice(0,r.length)!=r););var s=(n[1]||"").match(/boundary="(.*?)"/);if(!s)throw new Error("MAD cannot find boundary");var l="--"+(s[1]||""),c=[],f=[],h={FileIndex:c,FullPaths:f};C(h);var u,p=0;for(i=0;i=a&&(u-=a),!o[u]){l=[];var d=[];for(h=u;h>=0;){d[h]=!0,o[h]=!0,s[s.length]=h,l.push(e[h]);var m=r[Math.floor(4*h/n)];if(n<4+(p=4*h&c))throw new Error("FAT boundary crossed: "+h+" 4 "+n);if(!e[m])break;if(d[h=xt(e[m],p)])break}i[u]={nodes:s,data:Ye([l])}}return i}(v,o,f,c);o0&&s!==T&&(S[s].name="!MiniFAT"),S[f[0]].name="!FAT",S.fat_addrs=f,S.ssz=c;var k=[],_=[],A=[];!function(e,t,r,n,a,i,o,s){for(var l,c=0,f=n.length?2:0,h=t[e].data,u=0,p=0;u0&&c!==T&&(t[c].name="!StreamData")):m.size>=4096?(m.storage="fat",void 0===t[m.start]&&(t[m.start]=w(r,m.start,t.fat_addrs,t.ssz)),t[m.start].name=m.name,m.content=t[m.start].data.slice(0,m.size)):(m.storage="minifat",m.size<0?m.size=0:c!==T&&m.start!==T&&t[c]&&(m.content=b(m,t[c].data,(t[s]||{}).data))),m.content&&Tt(m.content,0),i[l]=m,o.push(m)}}(o,S,v,k,n,{},_,s),function(e,t,r){for(var n=0,a=0,i=0,o=0,s=0,l=r.length,c=[],f=[];n0&&o>=0;)i.push(t.slice(o*A,o*A+A)),a-=A,o=xt(r,4*o);return 0===i.length?Dt(0):h(i).slice(0,e.size)}function x(e,t,r,n,a){var i=T;if(e===T){if(0!==t)throw new Error("DIFAT chain shorter than expected")}else if(-1!==e){var o=r[e],s=(n>>>2)-1;if(!o)return;for(var l=0;l=1&&x(xt(o,n-4),t-1,r,n,a)}}function w(e,t,r,n,a){var i=[],o=[];a||(a=[]);var s=n-1,l=0,c=0;for(l=t;l>=0;){a[l]=!0,i[i.length]=l,o.push(e[l]);var f=r[Math.floor(4*l/n)];if(n<4+(c=4*l&s))throw new Error("FAT boundary crossed: "+l+" 4 "+n);if(!e[f])break;l=xt(e[f],c)}return{nodes:i,data:Ye([o])}}function y(e,t){return new Date(1e3*(bt(e,t+4)/1e7*Math.pow(2,32)+bt(e,t)/1e7-11644473600))}function C(e,t){var r=t||{},n=r.root||"Root Entry";if(e.FullPaths||(e.FullPaths=[]),e.FileIndex||(e.FileIndex=[]),e.FullPaths.length!==e.FileIndex.length)throw new Error("inconsistent CFB structure");0===e.FullPaths.length&&(e.FullPaths[0]=n+"/",e.FileIndex[0]={name:n,type:5}),r.CLSID&&(e.FileIndex[0].clsid=r.CLSID),function(e){var t="Sh33tJ5";if(re.find(e,"/"+t))return;var r=Dt(4);r[0]=55,r[1]=r[3]=50,r[2]=54,e.FileIndex.push({name:t,type:2,content:r,size:4,L:69,R:69,C:69}),e.FullPaths.push(e.FullPaths[0]+t),S(e)}(e)}function S(e,t){C(e);for(var r=!1,n=!1,a=e.FullPaths.length-1;a>=0;--a){var i=e.FileIndex[a];switch(i.type){case 0:n?r=!0:(e.FileIndex.pop(),e.FullPaths.pop());break;case 1:case 2:case 5:n=!0,isNaN(i.R*i.L*i.C)&&(r=!0),i.R>-1&&i.L>-1&&i.R==i.L&&(r=!0);break;default:r=!0}}if(r||t){var s=new Date(1987,1,19),l=0,c=Object.create?Object.create(null):{},h=[];for(a=0;a1?1:-1,p.size=0,p.type=5;else if("/"==d.slice(-1)){for(l=a+1;l=h.length?-1:l,l=a+1;l=h.length?-1:l,p.type=1}else o(e.FullPaths[a+1]||"")==o(d)&&(p.R=a+1),p.type=2}}}function k(e,t){var r=t||{};if("mad"==r.fileType)return function(e,t){for(var r=t||{},n=r.boundary||"SheetJS",i=["MIME-Version: 1.0",'Content-Type: multipart/related; boundary="'+(n="------="+n).slice(2)+'"',"","",""],o=e.FullPaths[0],s=o,l=e.FileIndex[0],c=1;c=32&&d<128&&++u;var g=u>=4*p/5;i.push(n),i.push("Content-Location: "+(r.root||"file:///C:/SheetJS/")+s),i.push("Content-Transfer-Encoding: "+(g?"quoted-printable":"base64")),i.push("Content-Type: "+xe(l,s)),i.push(""),i.push(g?ye(h):we(h))}return i.push(n+"--\r\n"),i.join("\r\n")}(e,r);if(S(e),"zip"===r.fileType)return function(e,t){var r=t||{},n=[],a=[],i=Dt(1),o=r.compression?8:0,s=0,l=0,f=0,u=0,p=0,m=e.FullPaths[0],g=m,v=e.FileIndex[0],b=[],x=0;for(l=1;l0&&(i<4096?t+=i+63>>6:r+=i+511>>9)}}for(var o=e.FullPaths.length+3>>2,s=t+127>>7,l=(t+7>>3)+r+o+s,c=l+127>>7,f=c<=109?0:Math.ceil((c-109)/127);l+c+f+127>>7>c;)f=++c<=109?0:Math.ceil((c-109)/127);var h=[1,f,c,s,o,r,t,0];return e.FileIndex[0].size=t<<6,h[7]=(e.FileIndex[0].start=h[0]+h[1]+h[2]+h[3]+h[4]+h[5])+(h[6]+7>>3),h}(e),i=Dt(n[7]<<9),o=0,s=0;for(o=0;o<8;++o)i.write_shift(1,O[o]);for(o=0;o<8;++o)i.write_shift(2,0);for(i.write_shift(2,62),i.write_shift(2,3),i.write_shift(2,65534),i.write_shift(2,9),i.write_shift(2,6),o=0;o<3;++o)i.write_shift(2,0);for(i.write_shift(4,0),i.write_shift(4,n[2]),i.write_shift(4,n[0]+n[1]+n[2]+n[3]-1),i.write_shift(4,0),i.write_shift(4,4096),i.write_shift(4,n[3]?n[0]+n[1]+n[2]-1:T),i.write_shift(4,n[3]),i.write_shift(-4,n[1]?n[0]-1:T),i.write_shift(4,n[1]),o=0;o<109;++o)i.write_shift(-4,o>9)));for(l(n[6]+7>>3);511&i.l;)i.write_shift(-4,E.ENDOFCHAIN);for(s=o=0,f=0;f=4096||(p.start=s,l(u+63>>6)));for(;511&i.l;)i.write_shift(-4,E.ENDOFCHAIN);for(o=0;o31&&(console.error("Name "+g+" will be truncated to "+g.slice(0,31)),g=g.slice(0,31)),u=2*(g.length+1),i.write_shift(64,g,"utf16le"),i.write_shift(2,u),i.write_shift(1,p.type),i.write_shift(1,p.color),i.write_shift(-4,p.L),i.write_shift(-4,p.R),i.write_shift(-4,p.C),p.clsid)i.write_shift(16,p.clsid,"hex");else for(f=0;f<4;++f)i.write_shift(4,0);i.write_shift(4,p.state||0),i.write_shift(4,0),i.write_shift(4,0),i.write_shift(4,0),i.write_shift(4,0),i.write_shift(4,p.start),i.write_shift(4,p.size),i.write_shift(4,0)}else{for(f=0;f<17;++f)i.write_shift(4,0);for(f=0;f<3;++f)i.write_shift(4,-1);for(f=0;f<12;++f)i.write_shift(4,0)}}for(o=1;o=4096)if(i.l=p.start+1<<9,a&&Buffer.isBuffer(p.content))p.content.copy(i,i.l,0,p.size),i.l+=p.size+511&-512;else{for(f=0;f0&&p.size<4096)if(a&&Buffer.isBuffer(p.content))p.content.copy(i,i.l,0,p.size),i.l+=p.size+63&-64;else{for(f=0;f>16|U>>8|U));function B(e,t){var r=z[255&e];return t<=8?r>>>8-t:(r=r<<8|z[e>>8&255],t<=16?r>>>16-t:(r=r<<8|z[e>>16&255])>>>24-t)}function W(e,t){var r=7&t,n=t>>>3;return(e[n]|(r<=6?0:e[n+1]<<8))>>>r&3}function H(e,t){var r=7&t,n=t>>>3;return(e[n]|(r<=5?0:e[n+1]<<8))>>>r&7}function X(e,t){var r=7&t,n=t>>>3;return(e[n]|(r<=3?0:e[n+1]<<8))>>>r&31}function V(e,t){var r=7&t,n=t>>>3;return(e[n]|(r<=1?0:e[n+1]<<8))>>>r&127}function G(e,t,r){var n=7&t,a=t>>>3,i=(1<>>n;return r<8-n?o&i:(o|=e[a+1]<<8-n,r<16-n?o&i:(o|=e[a+2]<<16-n,r<24-n?o&i:(o|=e[a+3]<<24-n)&i))}function J(e,t,r){var n=7&t,a=t>>>3;return n<=5?e[a]|=(7&r)<>8-n),t+3}function q(e,t,r){return r=(1&r)<<(7&t),e[t>>>3]|=r,t+1}function Y(e,t,r){var n=t>>>3;return r<<=7&t,e[n]|=255&r,r>>>=8,e[n+1]=r,t+8}function Z(e,t,r){var n=t>>>3;return r<<=7&t,e[n]|=255&r,r>>>=8,e[n+1]=255&r,e[n+2]=r>>>8,t+16}function K(e,t){var r=e.length,n=2*r>t?2*r:t+5,i=0;if(r>=t)return e;if(a){var o=l(n);if(e.copy)e.copy(o);else for(;i>n-h,o=(1<=0;--o)t[s|o<0;)t[t.l++]=e[r++]}return t.l}(t,r):function(t,r){for(var a=0,i=0,o=$?new Uint16Array(32768):[];i0;)r[r.l++]=t[i++];a=8*r.l}else{a=J(r,a,+!(i+s!=t.length)+2);for(var l=0;s-- >0;){var c=t[i],f=-1,h=0;if((f=o[l=32767&(l<<5^c)])&&((f|=-32768&i)>i&&(f-=32768),f2){(c=n[h])<=22?a=Y(r,a,z[c+1]>>1)-1:(Y(r,a,3),Y(r,a+=5,z[c-23]>>5),a+=3);var u=c<8?0:c-4>>2;u>0&&(Z(r,a,h-P[c]),a+=u),c=e[i-f],a=Y(r,a,z[c]>>3),a-=3;var p=c<4?0:c-2>>1;p>0&&(Z(r,a,i-f-R[c]),a+=p);for(var d=0;d>>3;return(e[n]|(r<=4?0:e[n+1]<<8))>>>r&15}(e,t+=5)+4;t+=4;for(var i=0,o=$?new Uint8Array(19):Q(19),s=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],l=1,c=$?new Uint8Array(8):Q(8),f=$?new Uint8Array(8):Q(8),h=o.length,u=0;u>8-d;for(var m=(1<<7-d)-1;m>=0;--m)fe[p|m<>>=3){case 16:for(i=3+W(e,t),t+=2,p=g[g.length-1];i-- >0;)g.push(p);break;case 17:for(i=3+H(e,t),t+=3;i-- >0;)g.push(0);break;case 18:for(i=11+V(e,t),t+=7;i-- >0;)g.push(0);break;default:g.push(p),l>>0,c=0,f=0;!(1&n);)if(n=H(e,r),r+=3,n>>>1!=0)for(n>>1==1?(c=9,f=5):(r=pe(e,r),c=he,f=ue);;){!t&&o>>1==1?ne[h]:le[h];if(r+=15&u,(u>>>=4)>>>8&255){if(256==u)break;var p=(u-=257)<8?0:u-4>>2;p>5&&(p=0);var d=i+P[u];p>0&&(d+=G(e,r,p),r+=p),h=G(e,r,f),r+=15&(u=n>>>1==1?ae[h]:ce[h]);var m=(u>>>=4)<4?0:u-2>>1,g=R[u];for(m>0&&(g+=G(e,r,m),r+=m),!t&&o>>3]|e[1+(r>>>3)]<<8;if(r+=32,v>0)for(!t&&o0;)a[i++]=e[r>>>3],r+=8}return t?[a,r+7>>>3]:[a.slice(0,i),r+7>>>3]}(e.slice(e.l||0),t);return e.l+=r[1],r[0]}function me(e,t){if(!e)throw new Error(t);"undefined"!=typeof console&&console.error(t)}function ge(e,t){var r=e;Tt(r,0);var n={FileIndex:[],FullPaths:[]};C(n,{root:t.root});for(var a=r.length-4;(80!=r[a]||75!=r[a+1]||5!=r[a+2]||6!=r[a+3])&&a>=0;)--a;r.l=a+4,r.l+=4;var i=r.read_shift(2);r.l+=6;var o=r.read_shift(4);for(r.l=o,a=0;a>>=5);r>>>=4,n.setMilliseconds(0),n.setFullYear(r+1980),n.setMonth(i-1),n.setDate(a);var o=31&t,s=63&(t>>>=5);return t>>>=6,n.setHours(t),n.setMinutes(s),n.setSeconds(o<<1),n}(e);if(8257&i)throw new Error("Unsupported ZIP encryption");e.read_shift(4);for(var l=e.read_shift(4),c=e.read_shift(4),f=e.read_shift(2),h=e.read_shift(2),u="",p=0;p>2,s=(3&n)<<4|(a=e[f++])>>4,l=(15&a)<<2|(i=e[f++])>>6,c=63&i,isNaN(a)?l=c=64:isNaN(i)&&(c=64),r+=t.charAt(o)+t.charAt(s)+t.charAt(l)+t.charAt(c);return r}(new Uint8Array(ne(a)));return chrome.downloads.download({url:l,filename:e,saveAs:!0})}}if("undefined"!=typeof $&&"undefined"!=typeof File&&"undefined"!=typeof Folder)try{var c=File(e);return c.open("w"),c.encoding="binary",Array.isArray(r)&&(r=function(e){if(Array.isArray(e))return e.map((function(e){return String.fromCharCode(e)})).join("");for(var t=[],r=0;r=60&&e<61)return e;var t=new Date;return t.setTime(24*(e>60?e:e+1)*60*60*1e3+se),t}var ue=/^(\d+):(\d+)(:\d+)?(\.\d+)?$/,pe=/^(\d+)-(\d+)-(\d+)$/,de=/^(\d+)-(\d+)-(\d+)[T ](\d+):(\d+)(:\d+)?(\.\d+)?$/;function me(e,t){if(e instanceof Date)return e;var r=e.match(ue);return r?new Date((t?ce:le)+1e3*(60*(60*parseInt(r[1],10)+parseInt(r[2],10))+(r[3]?parseInt(r[3].slice(1),10):0))+(r[4]?parseInt((r[4]+"000").slice(1,4),10):0)):(r=e.match(pe))?new Date(Date.UTC(+r[1],+r[2]-1,+r[3],0,0,0,0)):(r=e.match(de))?new Date(Date.UTC(+r[1],+r[2]-1,+r[3],+r[4],+r[5],r[6]&&parseInt(r[6].slice(1),10)||0,r[7]&&parseInt((r[7]+"0000").slice(1,4),10)||0)):new Date(e)}function ge(e){if("undefined"!=typeof JSON&&!Array.isArray(e))return JSON.parse(JSON.stringify(e));if("object"!=typeof e||null==e)return e;if(e instanceof Date)return new Date(e.getTime());var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=ge(e[r]));return t}function ve(e,t){for(var r="";r.length3&&-1==Se.indexOf(t))return i}else if(t.replace(/[ap]m?/,"").match(/[a-z]/))return i;return o<0||o>8099||e.match(/[^-0-9:,\/\\\ ]/)?i:a}function _e(e){return new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()))}function Ae(e,t,r){if(e.FullPaths){var n;if(Array.isArray(r)&&"string"==typeof r[0]&&(r=r.join("")),"string"==typeof r)return n=a?i(r):function(e){for(var t=[],r=0,n=e.length+250,a=s(e.length+255),i=0;i>6&31,a[r++]=128|63&o;else if(o>=55296&&o<57344){o=64+(1023&o);var l=1023&e.charCodeAt(++i);a[r++]=240|o>>8&7,a[r++]=128|o>>2&63,a[r++]=128|l>>6&15|(3&o)<<4,a[r++]=128|63&l}else a[r++]=224|o>>12&15,a[r++]=128|o>>6&63,a[r++]=128|63&o;r>n&&(t.push(a.slice(0,r)),r=0,a=s(65535),n=65530)}return t.push(a.slice(0,r)),h(t)}(r),re.utils.cfb_add(e,t,n);re.utils.cfb_add(e,t,r)}else e.file(t,r)}var Te='\r\n',De=oe({""":'"',"'":"'",">":">","<":"<","&":"&"}),Oe=/[&<>'"]/g,Fe=/[\u0000-\u0008\u000b-\u001f\uFFFE-\uFFFF]/g;function Ee(e){return(e+"").replace(Oe,(function(e){return De[e]})).replace(Fe,(function(e){return"_x"+("000"+e.charCodeAt(0).toString(16)).slice(-4)+"_"}))}var Me=/[\u0000-\u001f]/g;function Ne(e){return(e+"").replace(Oe,(function(e){return De[e]})).replace(/\n/g,"
").replace(Me,(function(e){return"&#x"+("000"+e.charCodeAt(0).toString(16)).slice(-4)+";"}))}function Ie(e){for(var t="",r=0,n=0,a=0,i=0,o=0,s=0;r191&&n<224?(o=(31&n)<<6,o|=63&a,t+=String.fromCharCode(o)):(i=e.charCodeAt(r++),n<240?t+=String.fromCharCode((15&n)<<12|(63&a)<<6|63&i):(s=((7&n)<<18|(63&a)<<12|(63&i)<<6|63&(o=e.charCodeAt(r++)))-65536,t+=String.fromCharCode(55296+(s>>>10&1023)),t+=String.fromCharCode(56320+(1023&s)))));return t}function Pe(e){var t,r,n,a=s(2*e.length),i=1,o=0,l=0;for(r=0;r>>10&1023),t=56320+(1023&t)),0!==l&&(a[o++]=255&l,a[o++]=l>>>8,l=0),a[o++]=t%256,a[o++]=t>>>8;return a.slice(0,o).toString("ucs2")}function Re(e){return i(e,"binary").toString("utf8")}var Le="foo bar baz☃🍣",Ue=a&&(Re(Le)==Ie(Le)&&Re||Pe(Le)==Ie(Le)&&Pe)||Ie,$e=a?function(e){return i(e,"utf8").toString("binary")}:function(e){for(var t=[],r=0,n=0,a=0;r>6))),t.push(String.fromCharCode(128+(63&n)));break;case n>=55296&&n<57344:n-=55296,a=e.charCodeAt(r++)-56320+(n<<10),t.push(String.fromCharCode(240+(a>>18&7))),t.push(String.fromCharCode(144+(a>>12&63))),t.push(String.fromCharCode(128+(a>>6&63))),t.push(String.fromCharCode(128+(63&a)));break;default:t.push(String.fromCharCode(224+(n>>12))),t.push(String.fromCharCode(128+(n>>6&63))),t.push(String.fromCharCode(128+(63&n)))}return t.join("")},ze=function(){var e=[["nbsp"," "],["middot","·"],["quot",'"'],["apos","'"],["gt",">"],["lt","<"],["amp","&"]].map((function(e){return[new RegExp("&"+e[0]+";","ig"),e[1]]}));return function(t){for(var r=t.replace(/^[\t\n\r ]+/,"").replace(/(^|[^\t\n\r ])[\t\n\r ]+$/,"$1").replace(/>\s+/g,">").replace(/\b\s+/g,"\n").replace(/<[^<>]*>/g,""),n=0;n"+t+""}function We(e){return ie(e).map((function(t){return" "+t+'="'+e[t]+'"'})).join("")}function He(e,t,r){return"<"+e+(null!=r?We(r):"")+(null!=t?(t.match(je)?' xml:space="preserve"':"")+">"+t+""}function Xe(e,t){try{return e.toISOString().replace(/\.\d*/,"")}catch(e){if(t)throw e}return""}var Ve={CORE_PROPS:"http://schemas.openxmlformats.org/package/2006/metadata/core-properties",CUST_PROPS:"http://schemas.openxmlformats.org/officeDocument/2006/custom-properties",EXT_PROPS:"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties",CT:"http://schemas.openxmlformats.org/package/2006/content-types",RELS:"http://schemas.openxmlformats.org/package/2006/relationships",TCMNT:"http://schemas.microsoft.com/office/spreadsheetml/2018/threadedcomments",dc:"http://purl.org/dc/elements/1.1/",dcterms:"http://purl.org/dc/terms/",dcmitype:"http://purl.org/dc/dcmitype/",mx:"http://schemas.microsoft.com/office/mac/excel/2008/main",r:"http://schemas.openxmlformats.org/officeDocument/2006/relationships",sjs:"http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties",vt:"http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes",xsi:"http://www.w3.org/2001/XMLSchema-instance",xsd:"http://www.w3.org/2001/XMLSchema"},Ge=["http://schemas.openxmlformats.org/spreadsheetml/2006/main","http://purl.oclc.org/ooxml/spreadsheetml/main","http://schemas.microsoft.com/office/excel/2006/main","http://schemas.microsoft.com/office/excel/2006/2"],Je={o:"urn:schemas-microsoft-com:office:office",x:"urn:schemas-microsoft-com:office:excel",ss:"urn:schemas-microsoft-com:office:spreadsheet",dt:"uuid:C2F41010-65B3-11d1-A29F-00AA00C14882",mv:"http://macVmlSchemaUri",v:"urn:schemas-microsoft-com:vml",html:"http://www.w3.org/TR/REC-html40"};var qe=function(e){for(var t=[],r=0;r0&&Buffer.isBuffer(e[0][0])?Buffer.concat(e[0].map((function(e){return Buffer.isBuffer(e)?e:i(e)}))):qe(e)}:qe,Ze=function(e,t,r){for(var n=[],a=t;a0?rt(e,t+4,t+4+r-1):""},at=nt,it=function(e,t){var r=bt(e,t);return r>0?rt(e,t+4,t+4+r-1):""},ot=it,st=function(e,t){var r=2*bt(e,t);return r>0?rt(e,t+4,t+4+r-1):""},lt=st,ct=function(e,t){var r=bt(e,t);return r>0?Ke(e,t+4,t+4+r):""},ft=ct,ht=function(e,t){var r=bt(e,t);return r>0?rt(e,t+4,t+4+r):""},ut=ht,pt=function(e,t){return function(e,t){for(var r=1-2*(e[t+7]>>>7),n=((127&e[t+7])<<4)+(e[t+6]>>>4&15),a=15&e[t+6],i=5;i>=0;--i)a=256*a+e[t+i];return 2047==n?0==a?r*(1/0):NaN:(0==n?n=-1022:(n-=1023,a+=Math.pow(2,52)),r*Math.pow(2,n-52)*a)}(e,t)},dt=pt;a&&(at=function(e,t){if(!Buffer.isBuffer(e))return nt(e,t);var r=e.readUInt32LE(t);return r>0?e.toString("utf8",t+4,t+4+r-1):""},ot=function(e,t){if(!Buffer.isBuffer(e))return it(e,t);var r=e.readUInt32LE(t);return r>0?e.toString("utf8",t+4,t+4+r-1):""},lt=function(e,t){if(!Buffer.isBuffer(e)||!o)return st(e,t);var r=2*e.readUInt32LE(t);return e.toString("utf16le",t+4,t+4+r-1)},ft=function(e,t){if(!Buffer.isBuffer(e)||!o)return ct(e,t);var r=e.readUInt32LE(t);return e.toString("utf16le",t+4,t+4+r)},ut=function(e,t){if(!Buffer.isBuffer(e))return ht(e,t);var r=e.readUInt32LE(t);return e.toString("utf8",t+4,t+4+r)},dt=function(e,t){return Buffer.isBuffer(e)?e.readDoubleLE(t):pt(e,t)});var mt=function(e,t){return e[t]},gt=function(e,t){return 256*e[t+1]+e[t]},vt=function(e,t){var r=256*e[t+1]+e[t];return r<32768?r:-1*(65535-r+1)},bt=function(e,t){return e[t+3]*(1<<24)+(e[t+2]<<16)+(e[t+1]<<8)+e[t]},xt=function(e,t){return e[t+3]<<24|e[t+2]<<16|e[t+1]<<8|e[t]},wt=function(e,t){return e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3]};function yt(t,r){var n,i,s,l,c,f,h="",u=[];switch(r){case"dbcs":if(f=this.l,a&&Buffer.isBuffer(this)&&o)h=this.slice(this.l,this.l+2*t).toString("utf16le");else for(c=0;c0?xt:wt)(this,this.l),this.l+=4,n);case 8:case-8:if("f"===r)return i=8==t?dt(this,this.l):dt([this[this.l+7],this[this.l+6],this[this.l+5],this[this.l+4],this[this.l+3],this[this.l+2],this[this.l+1],this[this.l+0]],0),this.l+=8,i;t=8;case 16:h=et(this,this.l,t)}}return this.l+=t,h}var Ct=function(e,t,r){e[r]=255&t,e[r+1]=t>>>8&255,e[r+2]=t>>>16&255,e[r+3]=t>>>24&255},St=function(e,t,r){e[r]=255&t,e[r+1]=t>>8&255,e[r+2]=t>>16&255,e[r+3]=t>>24&255},kt=function(e,t,r){e[r]=255&t,e[r+1]=t>>>8&255};function _t(e,t,r){var n=0,a=0;if("dbcs"===r){for(a=0;a!=t.length;++a)kt(this,t.charCodeAt(a),this.l+2*a);n=2*t.length}else if("sbcs"===r||"cpstr"==r){for(t=t.replace(/[^\x00-\x7F]/g,"_"),a=0;a!=t.length;++a)this[this.l+a]=255&t.charCodeAt(a);n=t.length}else{if("hex"===r){for(;a>8}for(;this.l>>=8,this[this.l+1]=255&t;break;case 3:n=3,this[this.l]=255&t,t>>>=8,this[this.l+1]=255&t,t>>>=8,this[this.l+2]=255&t;break;case 4:n=4,Ct(this,t,this.l);break;case 8:if(n=8,"f"===r){!function(e,t,r){var n=(t<0||1/t==-1/0?1:0)<<7,a=0,i=0,o=n?-t:t;isFinite(o)?0==o?a=i=0:(a=Math.floor(Math.log(o)/Math.LN2),i=o*Math.pow(2,52-a),a<=-1023&&(!isFinite(i)||i>4|n}(this,t,this.l);break}case 16:break;case-4:n=4,St(this,t,this.l)}}return this.l+=n,this}function At(e,t){var r=et(this,this.l,e.length>>1);if(r!==e)throw new Error(t+"Expected "+e+" saw "+r);this.l+=e.length>>1}function Tt(e,t){e.l=t,e.read_shift=yt,e.chk=At,e.write_shift=_t}function Dt(e){var t=s(e);return Tt(t,0),t}function Ot(e){return""+(e+1)}function Ft(e){if(e<0)throw new Error("invalid column "+e);var t="";for(++e;e;e=Math.floor((e-1)/26))t=String.fromCharCode((e-1)%26+65)+t;return t}function Et(e){for(var t=0,r=0,n=0;n=48&&a<=57?t=10*t+(a-48):a>=65&&a<=90&&(r=26*r+(a-64))}return{c:r-1,r:t-1}}function Mt(e){for(var t=e.c+1,r="";t;t=(t-1)/26|0)r=String.fromCharCode((t-1)%26+65)+r;return r+(e.r+1)}function Nt(e){var t=e.indexOf(":");return-1==t?{s:Et(e),e:Et(e)}:{s:Et(e.slice(0,t)),e:Et(e.slice(t+1))}}function It(e,t){return void 0===t||"number"==typeof t?It(e.s,e.e):("string"!=typeof e&&(e=Mt(e)),"string"!=typeof t&&(t=Mt(t)),e==t?e:e+":"+t)}function Pt(e){var t=Nt(e);return"$"+Ft(t.s.c)+"$"+Ot(t.s.r)+":$"+Ft(t.e.c)+"$"+Ot(t.e.r)}function Rt(e,t){if(!(e||t&&t.biff<=5&&t.biff>=2))throw new Error("empty sheet name");return/[^\w\u4E00-\u9FFF\u3040-\u30FF]/.test(e)?"'"+e.replace(/'/g,"''")+"'":e}function Lt(e){var t={s:{c:0,r:0},e:{c:0,r:0}},r=0,n=0,a=0,i=e.length;for(r=0;n26);++n)r=26*r+a;for(t.s.c=--r,r=0;n9);++n)r=10*r+a;if(t.s.r=--r,n===i||10!=a)return t.e.c=t.s.c,t.e.r=t.s.r,t;for(++n,r=0;n!=i&&!((a=e.charCodeAt(n)-64)<1||a>26);++n)r=26*r+a;for(t.e.c=--r,r=0;n!=i&&!((a=e.charCodeAt(n)-48)<0||a>9);++n)r=10*r+a;return t.e.r=--r,t}function Ut(e,t){var r="d"==e.t&&t instanceof Date;if(null!=e.z)try{return e.w=K(e.z,r?fe(t):t)}catch(e){}try{return e.w=K((e.XF||{}).numFmtId||(r?14:0),r?fe(t):t)}catch(e){return""+t}}function $t(e,t,r){return null==e||null==e.t||"z"==e.t?"":void 0!==e.w?e.w:("d"==e.t&&!e.z&&r&&r.dateNF&&(e.z=r.dateNF),"e"==e.t?jt[e.v]||e.v:Ut(e,null==t?e.v:t))}function zt(e,t,r){var n=r||{},a=e?null!=e["!data"]:n.dense,i=e||(a?{"!data":[]}:{});a&&!i["!data"]&&(i["!data"]=[]);var o=0,s=0;if(i&&null!=n.origin)if("number"==typeof n.origin)o=n.origin;else{var l="string"==typeof n.origin?Et(n.origin):n.origin;o=l.r,s=l.c}var c={s:{c:1e7,r:1e7},e:{c:0,r:0}};if(i["!ref"]){var f=Lt(i["!ref"]);c.s.c=f.s.c,c.s.r=f.s.r,c.e.c=Math.max(c.e.c,f.e.c),c.e.r=Math.max(c.e.r,f.e.r),-1==o&&(c.e.r=o=i["!ref"]?f.e.r+1:0)}else c.s.c=c.e.c=c.s.r=c.e.r=0;for(var h=[],u=!1,p=0;p!=t.length;++p)if(t[p]){if(!Array.isArray(t[p]))throw new Error("aoa_to_sheet expects an array of arrays");var d=o+p;a&&(i["!data"][d]||(i["!data"][d]=[]),h=i["!data"][d]);for(var m=t[p],g=0;g!=m.length;++g)if(void 0!==m[g]){var v={v:m[g],t:""},b=s+g;if(c.s.r>d&&(c.s.r=d),c.s.c>b&&(c.s.c=b),c.e.r0&&(n=e[r][0],i[i.length]=He("Override",null,{PartName:("/"==n[0]?"":"/")+n,ContentType:Ht[r][t.bookType]||Ht[r].xlsx}))},s=function(r){(e[r]||[]).forEach((function(e){i[i.length]=He("Override",null,{PartName:("/"==e[0]?"":"/")+e,ContentType:Ht[r][t.bookType]||Ht[r].xlsx})}))},l=function(t){(e[t]||[]).forEach((function(e){i[i.length]=He("Override",null,{PartName:("/"==e[0]?"":"/")+e,ContentType:a[t][0]})}))};return o("workbooks"),s("sheets"),s("charts"),l("themes"),["strs","styles"].forEach(o),["coreprops","extprops","custprops"].forEach(l),l("vba"),l("comments"),l("threadedcomments"),l("drawings"),s("metadata"),l("people"),!r&&i.length>2&&(i[i.length]="",i[1]=i[1].replace("/>",">")),i.join("")}var Vt={WB:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument",SHEET:"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument",HLINK:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink",VML:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing",XPATH:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath",XMISS:"http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing",XLINK:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink",CXML:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml",CXMLP:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps",CMNT:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments",CORE_PROPS:"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties",EXT_PROPS:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties",CUST_PROPS:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties",SST:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings",STY:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles",THEME:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme",CHART:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart",CHARTEX:"http://schemas.microsoft.com/office/2014/relationships/chartEx",CS:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet",WS:["http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet","http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet"],DS:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet",MS:"http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet",IMG:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",DRAW:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing",XLMETA:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sheetMetadata",TCMNT:"http://schemas.microsoft.com/office/2017/10/relationships/threadedComment",PEOPLE:"http://schemas.microsoft.com/office/2017/10/relationships/person",CONN:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/connections",VBA:"http://schemas.microsoft.com/office/2006/relationships/vbaProject"};function Gt(e){var t=[Te,He("Relationships",null,{xmlns:Ve.RELS})];return ie(e["!id"]).forEach((function(r){t[t.length]=He("Relationship",null,e["!id"][r])})),t.length>2&&(t[t.length]="",t[1]=t[1].replace("/>",">")),t.join("")}function Jt(e,t,r,n,a,i){if(a||(a={}),e["!id"]||(e["!id"]={}),e["!idx"]||(e["!idx"]=1),t<0)for(t=e["!idx"];e["!id"]["rId"+t];++t);if(e["!idx"]=t+1,a.Id="rId"+t,a.Type=n,a.Target=r,i?a.TargetMode=i:[Vt.HLINK,Vt.XPATH,Vt.XMISS].indexOf(a.Type)>-1&&(a.TargetMode="External"),e["!id"][a.Id])throw new Error("Cannot rewrite rId "+t);return e["!id"][a.Id]=a,e[("/"+a.Target).replace("//","/")]=a,t}var qt=[["cp:category","Category"],["cp:contentStatus","ContentStatus"],["cp:keywords","Keywords"],["cp:lastModifiedBy","LastAuthor"],["cp:lastPrinted","LastPrinted"],["cp:revision","RevNumber"],["cp:version","Version"],["dc:creator","Author"],["dc:description","Comments"],["dc:identifier","Identifier"],["dc:language","Language"],["dc:subject","Subject"],["dc:title","Title"],["dcterms:created","CreatedDate","date"],["dcterms:modified","ModifiedDate","date"]];function Yt(e,t,r,n,a){null==a[e]&&null!=t&&""!==t&&(a[e]=t,t=Ee(t),n[n.length]=r?He(e,t,r):Be(e,t))}var Zt=[["Application","Application","string"],["AppVersion","AppVersion","string"],["Company","Company","string"],["DocSecurity","DocSecurity","string"],["Manager","Manager","string"],["HyperlinksChanged","HyperlinksChanged","bool"],["SharedDoc","SharedDoc","bool"],["LinksUpToDate","LinksUpToDate","bool"],["ScaleCrop","ScaleCrop","bool"],["HeadingPairs","HeadingPairs","raw"],["TitlesOfParts","TitlesOfParts","raw"]];function Kt(e){var t=[Te,He("Properties",null,{xmlns:Ve.CUST_PROPS,"xmlns:vt":Ve.vt})];if(!e)return t.join("");var r=1;return ie(e).forEach((function(n){++r,t[t.length]=He("property",function(e,t){switch(typeof e){case"string":var r=He("vt:lpwstr",Ee(e));return t&&(r=r.replace(/"/g,"_x0022_")),r;case"number":return He((0|e)==e?"vt:i4":"vt:r8",Ee(String(e)));case"boolean":return He("vt:bool",e?"true":"false")}if(e instanceof Date)return He("vt:filetime",Xe(e));throw new Error("Unable to serialize "+e)}(e[n],!0),{fmtid:"{D5CDD505-2E9C-101B-9397-08002B2CF9AE}",pid:r,name:Ee(n)})})),t.length>2&&(t[t.length]="",t[1]=t[1].replace("/>",">")),t.join("")}var Qt=/^\s|\s$|[\t\n\r]/;var er=6;var tr=96;function rr(e){return 96*e/tr}function nr(e,t){var r,n=[Te,He("styleSheet",null,{xmlns:Ge[0],"xmlns:vt":Ve.vt})];return e.SSF&&null!=(r=function(e){var t=[""];return[[5,8],[23,26],[41,44],[50,392]].forEach((function(r){for(var n=r[0];n<=r[1];++n)null!=e[n]&&(t[t.length]=He("numFmt",null,{numFmtId:n,formatCode:Ee(e[n])}))})),1===t.length?"":(t[t.length]="",t[0]=He("numFmts",null,{count:t.length-2}).replace("/>",">"),t.join(""))}(e.SSF))&&(n[n.length]=r),n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',(r=function(e){var t=[];return t[t.length]=He("cellXfs",null),e.forEach((function(e){t[t.length]=He("xf",null,e)})),t[t.length]="",2===t.length?"":(t[0]=He("cellXfs",null,{count:t.length-2}).replace("/>",">"),t.join(""))}(t.cellXfs))&&(n[n.length]=r),n[n.length]='',n[n.length]='',n[n.length]='',n.length>2&&(n[n.length]="",n[1]=n[1].replace("/>",">")),n.join("")}function ar(e,t,r){var n=[21600,21600],a=["m0,0l0",n[1],n[0],n[1],n[0],"0xe"].join(","),i=[He("xml",null,{"xmlns:v":Je.v,"xmlns:o":Je.o,"xmlns:x":Je.x,"xmlns:mv":Je.mv}).replace(/\/>/,">"),He("o:shapelayout",He("o:idmap",null,{"v:ext":"edit",data:e}),{"v:ext":"edit"})],o=65536*e,s=t||[];return s.length>0&&i.push(He("v:shapetype",[He("v:stroke",null,{joinstyle:"miter"}),He("v:path",null,{gradientshapeok:"t","o:connecttype":"rect"})].join(""),{id:"_x0000_t202",coordsize:n.join(","),"o:spt":202,path:a})),s.forEach((function(e){++o,i.push(function(e,t,r){var n=Et(e[0]),a={color2:"#BEFF82",type:"gradient"};"gradient"==a.type&&(a.angle="-180");var i="gradient"==a.type?He("o:fill",null,{type:"gradientUnscaled","v:ext":"view"}):null,o=He("v:fill",i,a),s={on:"t",obscured:"t"};return["",o,He("v:shadow",null,s),He("v:path",null,{"o:connecttype":"none"}),'
','',"","",Be("x:Anchor",[n.c+1,0,n.r+1,0,n.c+3,20,n.r+5,20].join(",")),Be("x:AutoFill","False"),Be("x:Row",String(n.r)),Be("x:Column",String(n.c)),e[1].hidden?"":"","",""].join("")}(e,o))})),i.push(""),i.join("")}function ir(e){var t=[Te,He("comments",null,{xmlns:Ge[0]})],r=[];return t.push(""),e.forEach((function(e){e[1].forEach((function(e){var n=Ee(e.a);-1==r.indexOf(n)&&(r.push(n),t.push(""+n+"")),e.T&&e.ID&&-1==r.indexOf("tc="+e.ID)&&(r.push("tc="+e.ID),t.push("tc="+e.ID+""))}))})),0==r.length&&(r.push("SheetJ5"),t.push("SheetJ5")),t.push(""),t.push(""),e.forEach((function(e){var n=0,a=[],i=0;if(e[1][0]&&e[1][0].T&&e[1][0].ID&&(n=r.indexOf("tc="+e[1][0].ID)),e[1].forEach((function(e){e.a&&(n=r.indexOf(Ee(e.a))),e.T&&++i,a.push(null==e.t?"":Ee(e.t))})),0===i)e[1].forEach((function(n){t.push(''),t.push(Be("t",null==n.t?"":Ee(n.t))),t.push("")}));else{e[1][0]&&e[1][0].T&&e[1][0].ID&&(n=r.indexOf("tc="+e[1][0].ID)),t.push('');for(var o="Comment:\n "+a[0]+"\n",s=1;s")}})),t.push(""),t.length>2&&(t[t.length]="",t[1]=t[1].replace("/>",">")),t.join("")}function or(e,t,r){var n=[Te,He("ThreadedComments",null,{xmlns:Ve.TCMNT}).replace(/[\/]>/,">")];return e.forEach((function(e){var a="";(e[1]||[]).forEach((function(i,o){if(i.T){i.a&&-1==t.indexOf(i.a)&&t.push(i.a);var s={ref:e[0],id:"{54EE7951-7262-4200-6969-"+("000000000000"+r.tcid++).slice(-12)+"}"};0==o?a=s.id:s.parentId=a,i.ID=s.id,i.a&&(s.personId="{54EE7950-7262-4200-6969-"+("000000000000"+t.indexOf(i.a)).slice(-12)+"}"),n.push(He("threadedComment",Be("text",i.t||""),s))}else delete i.ID}))})),n.push(""),n.join("")}var sr=["xlsb","xlsm","xlam","biff8","xla"];try{/(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)(10[0-3]\d{4}|104[0-7]\d{3}|1048[0-4]\d{2}|10485[0-6]\d|104857[0-6]|[1-9]\d{0,5})(?![_.\(A-Za-z0-9])/g}catch(e){}var lr="undefined"!=typeof Map;function cr(e,t){var r,n,a={min:e+1,max:e+1},i=-1;return t.MDW&&(er=t.MDW),null!=t.width?a.customWidth=1:null!=t.wpx?(r=t.wpx,i=Math.floor((r-5)/er*100+.5)/100):null!=t.wch&&(i=t.wch),i>-1?(a.width=(n=i,Math.round((n*er+5)/er*256)/256),a.customWidth=1):null!=t.width&&(a.width=t.width),t.hidden&&(a.hidden=!0),null!=t.level&&(a.outlineLevel=a.level=t.level),a}function fr(e,t,r){var n,a,i=r.revssf[null!=t.z?t.z:"General"],o=60,s=e.length;if(null==i&&r.ssf)for(;o<392;++o)if(null==r.ssf[o]){n=t.z,a=o,Q(ee[n]||n,a),r.ssf[o]=t.z,r.revssf[t.z]=i=o;break}for(o=0;o!=s;++o)if(e[o].numFmtId===i)return o;return e[s]={numFmtId:i,fontId:0,fillId:0,borderId:0,xfId:0,applyNumberFormat:1},s}function hr(e,t,r){if(e&&e["!ref"]){var n=Lt(e["!ref"]);if(n.e.c=0;--r)n=((16384&n?1:0)|n<<1&32767)^t[r];return 52811^n}(e.password).toString(16).toUpperCase()),He("sheetProtection",null,t)}function mr(e,t,r,n,a,i,o){if(e.c&&r["!comments"].push([t,e.c]),(void 0===e.v||"z"===e.t&&!(n||{}).sheetStubs)&&"string"!=typeof e.f&&void 0===e.z)return"";var s="",l=e.t,c=e.v;if("z"!==e.t)switch(e.t){case"b":s=e.v?"1":"0";break;case"n":isNaN(e.v)?(e.t="e",s=jt[e.v=36]):isFinite(e.v)?s=""+e.v:(e.t="e",s=jt[e.v=7]);break;case"e":s=jt[e.v];break;case"d":if(n&&n.cellDates){var f=me(e.v,o);s=f.toISOString(),f.getUTCFullYear()<1900&&(s=s.slice(s.indexOf("T")+1).replace("Z",""))}else(e=ge(e)).t="n",s=""+(e.v=fe(me(e.v,o),o));void 0===e.z&&(e.z=S[14]);break;default:s=e.v}var h="z"==e.t||null==e.v?"":Be("v",Ee(s)),u={r:t},p=fr(n.cellXfs,e,n);switch(0!==p&&(u.s=p),e.t){case"n":case"z":break;case"d":u.t="d";break;case"b":u.t="b";break;case"e":u.t="e";break;default:if(null==e.v){delete e.t;break}if(e.v.length>32767)throw new Error("Text length must not exceed 32767 characters");if(n&&n.bookSST){h=Be("v",""+function(e,t,r){var n=0,a=e.length;if(r){if(lr?r.has(t):Object.prototype.hasOwnProperty.call(r,t))for(var i=lr?r.get(t):r[t];n16383||f.e.r>1048575){if(t.WTF)throw new Error("Range "+c+" exceeds format limit A1:XFD1048576");f.e.c=Math.min(f.e.c,16383),f.e.r=Math.min(f.e.c,1048575),c=It(f)}n||(n={}),l["!comments"]=[];var h=[];!function(e,t,r,n,a){var i=!1,o={},s=null;if("xlsx"!==n.bookType&&t.vbaraw){var l=t.SheetNames[r];try{t.Workbook&&(l=t.Workbook.Sheets[r].CodeName||l)}catch(e){}i=!0,o.codeName=$e(Ee(l))}if(e&&e["!outline"]){var c={summaryBelow:1,summaryRight:1};e["!outline"].above&&(c.summaryBelow=0),e["!outline"].left&&(c.summaryRight=0),s=(s||"")+He("outlinePr",null,c)}(i||s)&&(a[a.length]=He("sheetPr",s,o))}(l,r,e,t,i),i[i.length]=He("dimension",null,{ref:c}),i[i.length]=function(e,t,r,n){var a={workbookViewId:"0"};return(((n||{}).Workbook||{}).Views||[])[0]&&(a.rightToLeft=n.Workbook.Views[0].RTL?"1":"0"),He("sheetViews",He("sheetView",null,a),{})}(0,0,0,r),t.sheetFormat&&(i[i.length]=He("sheetFormatPr",null,{defaultRowHeight:t.sheetFormat.defaultRowHeight||"16",baseColWidth:t.sheetFormat.baseColWidth||"10",outlineLevelRow:t.sheetFormat.outlineLevelRow||"7"})),null!=l["!cols"]&&l["!cols"].length>0&&(i[i.length]=function(e,t){for(var r,n=[""],a=0;a!=t.length;++a)(r=t[a])&&(n[n.length]=He("col",null,cr(a,r)));return n[n.length]="",n.join("")}(0,l["!cols"])),i[a=i.length]="",l["!links"]=[],null!=l["!ref"]&&(s=function(e,t,r,n){var a,i,o=[],s=[],l=Lt(e["!ref"]),c="",f="",h=[],u=0,p=0,d=e["!rows"],m=null!=e["!data"],g=m?e["!data"]:[],v={r:f},b=-1,x=(((n||{}).Workbook||{}).WBProps||{}).date1904;for(p=l.s.c;p<=l.e.c;++p)h[p]=Ft(p);for(u=l.s.r;u<=l.e.r;++u){s=[],f=Ot(u);var w=m?g[u]:[];for(p=l.s.c;p<=l.e.c;++p){a=h[p]+f;var y=m?w[p]:e[a];void 0!==y&&null!=(c=mr(y,a,e,t,0,0,x))&&s.push(c)}(s.length>0||d&&d[u])&&(v={r:f},d&&d[u]&&((i=d[u]).hidden&&(v.hidden=1),b=-1,i.hpx?b=rr(i.hpx):i.hpt&&(b=i.hpt),b>-1&&(v.ht=b,v.customHeight=1),i.level&&(v.outlineLevel=i.level)),o[o.length]=He("row",s.join(""),v))}if(d)for(;u-1&&(v.ht=b,v.customHeight=1),i.level&&(v.outlineLevel=i.level),o[o.length]=He("row","",v));return o.join("")}(l,t,0,r),s.length>0&&(i[i.length]=s)),i.length>a+1&&(i[i.length]="",i[a]=i[a].replace("/>",">")),l["!protect"]&&(i[i.length]=dr(l["!protect"])),null!=l["!autofilter"]&&(i[i.length]=function(e,t,r,n){var a="string"==typeof e.ref?e.ref:It(e.ref);r.Workbook||(r.Workbook={Sheets:[]}),r.Workbook.Names||(r.Workbook.Names=[]);var i=r.Workbook.Names,o=Nt(a);o.s.r==o.e.r&&(o.e.r=Nt(t["!ref"]).e.r,a=It(o));for(var s=0;s0&&(i[i.length]=function(e){if(0===e.length)return"";for(var t='',r=0;r!=e.length;++r)t+='';return t+""}(l["!merges"]));var u,p,d=-1,m=-1;return l["!links"].length>0&&(i[i.length]="",l["!links"].forEach((function(e){e[1].Target&&(u={ref:e[0]},"#"!=e[1].Target.charAt(0)&&(m=Jt(n,-1,Ee(e[1].Target).replace(/#[\s\S]*$/,""),Vt.HLINK),u["r:id"]="rId"+m),(d=e[1].Target.indexOf("#"))>-1&&(u.location=Ee(e[1].Target.slice(d+1))),e[1].Tooltip&&(u.tooltip=Ee(e[1].Tooltip)),u.display=e[1].display,i[i.length]=He("hyperlink",null,u))})),i[i.length]=""),delete l["!links"],null!=l["!margins"]&&(i[i.length]=(function(e,t){if(e){var r=[.7,.7,.75,.75,.3,.3];null==e.left&&(e.left=r[0]),null==e.right&&(e.right=r[1]),null==e.top&&(e.top=r[2]),null==e.bottom&&(e.bottom=r[3]),null==e.header&&(e.header=r[4]),null==e.footer&&(e.footer=r[5])}}(p=l["!margins"]),He("pageMargins",null,p))),t&&!t.ignoreEC&&null!=t.ignoreEC||(i[i.length]=Be("ignoredErrors",He("ignoredError",null,{numberStoredAsText:1,sqref:c}))),h.length>0&&(m=Jt(n,-1,"../drawings/drawing"+(e+1)+".xml",Vt.DRAW),i[i.length]=He("drawing",null,{"r:id":"rId"+m}),l["!drawing"]=h),l["!comments"].length>0&&(m=Jt(n,-1,"../drawings/vmlDrawing"+(e+1)+".vml",Vt.VML),i[i.length]=He("legacyDrawing",null,{"r:id":"rId"+m}),l["!legacy"]=m),i.length>1&&(i[i.length]="",i[1]=i[1].replace("/>",">")),i.join("")}var vr=[["allowRefreshQuery",!1,"bool"],["autoCompressPictures",!0,"bool"],["backupFile",!1,"bool"],["checkCompatibility",!1,"bool"],["CodeName",""],["date1904",!1,"bool"],["defaultThemeVersion",0,"int"],["filterPrivacy",!1,"bool"],["hidePivotFieldList",!1,"bool"],["promptedSolutions",!1,"bool"],["publishItems",!1,"bool"],["refreshAllConnections",!1,"bool"],["saveExternalLinkValues",!0,"bool"],["showBorderUnselectedTables",!0,"bool"],["showInkAnnotation",!0,"bool"],["showObjects","all"],["showPivotChartFilter",!1,"bool"],["updateLinks","userSet"]],br=":][*?/\\".split("");function xr(e,t){try{if(""==e)throw new Error("Sheet name cannot be blank");if(e.length>31)throw new Error("Sheet name cannot exceed 31 chars");if(39==e.charCodeAt(0)||39==e.charCodeAt(e.length-1))throw new Error("Sheet name cannot start or end with apostrophe (')");if("history"==e.toLowerCase())throw new Error("Sheet name cannot be 'History'");br.forEach((function(t){if(-1!=e.indexOf(t))throw new Error("Sheet name cannot contain : \\ / ? * [ ]")}))}catch(e){if(t)return!1;throw e}return!0}function wr(e){if(!e||!e.SheetNames||!e.Sheets)throw new Error("Invalid Workbook");if(!e.SheetNames.length)throw new Error("Workbook is empty");var t,r,n,a=e.Workbook&&e.Workbook.Sheets||[];t=e.SheetNames,r=a,n=!!e.vbaraw,t.forEach((function(e,a){xr(e);for(var i=0;i22)throw new Error("Bad Code Name: Worksheet"+o)}}));for(var i=0;ir||a[h].s.c>l||a[h].e.r1&&(o.rowspan=c),f>1&&(o.colspan=f),n.editable?d=''+d+"":p&&(o["data-t"]=p&&p.t||"z",null!=p.v&&(o["data-v"]=Ne(p.v instanceof Date?p.v.toISOString():p.v)),null!=p.z&&(o["data-z"]=p.z),p.l&&"#"!=(p.l.Target||"#").charAt(0)&&(d=''+d+"")),o.id=(n.id||"sjs")+"-"+u,i.push(He("td",d,o))}}return""+i.join("")+""}function Cr(e,t,r){var n=t.rows;if(!n)throw"Unsupported origin when "+t.tagName+" is not a TABLE";var a=r||{},i=null!=e["!data"],o=0,s=0;if(null!=a.origin)if("number"==typeof a.origin)o=a.origin;else{var l="string"==typeof a.origin?Et(a.origin):a.origin;o=l.r,s=l.c}var c=Math.min(a.sheetRows||1e7,n.length),f={s:{r:0,c:0},e:{r:o,c:s}};if(e["!ref"]){var h=Nt(e["!ref"]);f.s.r=Math.min(f.s.r,h.s.r),f.s.c=Math.min(f.s.c,h.s.c),f.e.r=Math.max(f.e.r,h.e.r),f.e.c=Math.max(f.e.c,h.e.c),-1==o&&(f.e.r=o=h.e.r+1)}var u=[],p=0,d=e["!rows"]||(e["!rows"]=[]),m=0,g=0,v=0,b=0,x=0,w=0;for(e["!cols"]||(e["!cols"]=[]);m1||w>1)&&u.push({s:{r:g+o,c:b+s},e:{r:g+o+(x||1)-1,c:b+s+(w||1)-1}});var D={t:"s",v:_},O=k.getAttribute("data-t")||k.getAttribute("t")||"";null!=_&&(0==_.length?D.t=O||"z":a.raw||0==_.trim().length||"s"==O||("e"==O&&jt[+_]?D={t:"e",v:+_,w:jt[+_]}:"TRUE"===_?D={t:"b",v:!0}:"FALSE"===_?D={t:"b",v:!1}:isNaN(be(_))?isNaN(ke(_).getDate())?35==_.charCodeAt(0)&&null!=Bt[_]&&(D={t:"e",v:Bt[_],w:_}):(D={t:"d",v:me(_)},a.UTC&&(D.v=_e(D.v)),a.cellDates||(D={t:"n",v:fe(D.v)}),D.z=a.dateNF||S[14]):D={t:"n",v:be(_)})),void 0===D.z&&null!=A&&(D.z=A);var F="",E=k.getElementsByTagName("A");if(E&&E.length)for(var M=0;M=c&&(e["!fullref"]=It((f.e.r=n.length-m+g-1+o,f))),e}function Sr(e,t){var r={};return(t||{}).dense&&(r["!data"]=[]),Cr(r,e,t)}function kr(e){var t="",r=function(e){return e.ownerDocument.defaultView&&"function"==typeof e.ownerDocument.defaultView.getComputedStyle?e.ownerDocument.defaultView.getComputedStyle:"function"==typeof getComputedStyle?getComputedStyle:null} +/*! sheetjs (C) 2013-present SheetJS -- http://sheetjs.com */(e);return r&&(t=r(e).getPropertyValue("display")),t||(t=e.style&&e.style.display),"none"===t}function _r(e){var t;(t=[["cellDates",!1],["bookSST",!1],["bookType","xlsx"],["compression",!1],["WTF",!1]],function(e){for(var r=0;r!=t.length;++r){var n=t[r];void 0===e[n[0]]&&(e[n[0]]=n[1]),"n"===n[2]&&(e[n[0]]=Number(e[n[0]]))}})(e)}function Ar(e,t){var r;e&&!e.SSF&&(e.SSF=ge(S)),e&&e.SSF&&(r||(r={}),r[0]="General",r[1]="0",r[2]="0.00",r[3]="#,##0",r[4]="#,##0.00",r[9]="0%",r[10]="0.00%",r[11]="0.00E+00",r[12]="# ?/?",r[13]="# ??/??",r[14]="m/d/yy",r[15]="d-mmm-yy",r[16]="d-mmm",r[17]="mmm-yy",r[18]="h:mm AM/PM",r[19]="h:mm:ss AM/PM",r[20]="h:mm",r[21]="h:mm:ss",r[22]="m/d/yy h:mm",r[37]="#,##0 ;(#,##0)",r[38]="#,##0 ;[Red](#,##0)",r[39]="#,##0.00;(#,##0.00)",r[40]="#,##0.00;[Red](#,##0.00)",r[45]="mm:ss",r[46]="[h]:mm:ss",r[47]="mmss.0",r[48]="##0.0E+0",r[49]="@",r[56]='"上午/下午 "hh"時"mm"分"ss"秒 "',S=r,function(e){for(var t=0;392!=t;++t)void 0!==e[t]&&Q(e[t],t)}(e.SSF),t.revssf=function(e){for(var t=[],r=ie(e),n=0;n!==r.length;++n)t[e[r[n]]]=parseInt(r[n],10);return t}(e.SSF),t.revssf[e.SSF[65535]]=0,t.ssf=e.SSF),t.rels={},t.wbrels={},t.Strings=[],t.Strings.Count=0,t.Strings.Unique=0,lr?t.revStrings=new Map:(t.revStrings={},t.revStrings.foo=[],delete t.revStrings.foo);var n="xml",a=sr.indexOf(t.bookType)>-1,i={workbooks:[],sheets:[],charts:[],dialogs:[],macros:[],rels:[],strs:[],comments:[],threadedcomments:[],links:[],coreprops:[],extprops:[],custprops:[],themes:[],styles:[],calcchains:[],vba:[],drawings:[],metadata:[],people:[],TODO:[],xmlns:""};_r(t=t||{});var o,s,l,c=re.utils.cfb_new(),f="",h=0;if(t.cellXfs=[],fr(t.cellXfs,{},{revssf:{General:0}}),e.Props||(e.Props={}),Ae(c,f="docProps/core.xml",function(e,t){var r=t||{},n=[Te,He("cp:coreProperties",null,{"xmlns:cp":Ve.CORE_PROPS,"xmlns:dc":Ve.dc,"xmlns:dcterms":Ve.dcterms,"xmlns:dcmitype":Ve.dcmitype,"xmlns:xsi":Ve.xsi})],a={};if(!e&&!r.Props)return n.join("");e&&(null!=e.CreatedDate&&Yt("dcterms:created","string"==typeof e.CreatedDate?e.CreatedDate:Xe(e.CreatedDate,r.WTF),{"xsi:type":"dcterms:W3CDTF"},n,a),null!=e.ModifiedDate&&Yt("dcterms:modified","string"==typeof e.ModifiedDate?e.ModifiedDate:Xe(e.ModifiedDate,r.WTF),{"xsi:type":"dcterms:W3CDTF"},n,a));for(var i=0;i!=qt.length;++i){var o=qt[i],s=r.Props&&null!=r.Props[o[1]]?r.Props[o[1]]:e?e[o[1]]:null;!0===s?s="1":!1===s?s="0":"number"==typeof s&&(s=String(s)),null!=s&&Yt(o[0],s,null,n,a)}return n.length>2&&(n[n.length]="",n[1]=n[1].replace("/>",">")),n.join("")}(e.Props,t)),i.coreprops.push(f),Jt(t.rels,2,f,Vt.CORE_PROPS),f="docProps/app.xml",e.Props&&e.Props.SheetNames);else if(e.Workbook&&e.Workbook.Sheets){for(var u=[],p=0;pWorksheets")+l("vt:variant",l("vt:i4",String(o.Worksheets))),{size:2,baseType:"variant"})),s[s.length]=l("TitlesOfParts",l("vt:vector",o.SheetNames.map((function(e){return""+Ee(e)+""})).join(""),{size:o.Worksheets,baseType:"lpstr"})),s.length>2&&(s[s.length]="",s[1]=s[1].replace("/>",">")),s.join(""))),i.extprops.push(f),Jt(t.rels,3,f,Vt.EXT_PROPS),e.Custprops!==e.Props&&ie(e.Custprops||{}).length>0&&(Ae(c,f="docProps/custom.xml",Kt(e.Custprops)),i.custprops.push(f),Jt(t.rels,4,f,Vt.CUST_PROPS));var d,m,g=["SheetJ5"];for(t.tcid=0,h=1;h<=e.SheetNames.length;++h){var v={"!id":{}},b=e.Sheets[e.SheetNames[h-1]];(b||{})["!type"];if(Ae(c,f="xl/worksheets/sheet"+h+"."+n,gr(h-1,t,e,v)),i.sheets.push(f),Jt(t.wbrels,-1,"worksheets/sheet"+h+"."+n,Vt.WS[0]),b){var x=b["!comments"],w=!1,y="";if(x&&x.length>0){var C=!1;x.forEach((function(e){e[1].forEach((function(e){1==e.T&&(C=!0)}))})),C&&(Ae(c,y="xl/threadedComments/threadedComment"+h+".xml",or(x,g,t)),i.threadedcomments.push(y),Jt(v,-1,"../threadedComments/threadedComment"+h+".xml",Vt.TCMNT)),Ae(c,y="xl/comments"+h+"."+n,ir(x)),i.comments.push(y),Jt(v,-1,"../comments"+h+"."+n,Vt.CMNT),w=!0}b["!legacy"]&&w&&Ae(c,"xl/drawings/vmlDrawing"+h+".vml",ar(h,b["!comments"])),delete b["!comments"],delete b["!legacy"]}v["!id"].rId1&&Ae(c,(m=void 0,m=(d=f).lastIndexOf("/"),d.slice(0,m+1)+"_rels/"+d.slice(m+1)+".rels"),Gt(v))}return null!=t.Strings&&t.Strings.length>0&&(Ae(c,f="xl/sharedStrings."+n,function(e,t){if(!t.bookSST)return"";var r=[Te];r[r.length]=He("sst",null,{xmlns:Ge[0],count:e.Count,uniqueCount:e.Unique});for(var n=0;n!=e.length;++n)if(null!=e[n]){var a=e[n],i="";a.r?i+=a.r:(i+=""),i+="",r[r.length]=i}return r.length>2&&(r[r.length]="",r[1]=r[1].replace("/>",">")),r.join("")}(t.Strings,t)),i.strs.push(f),Jt(t.wbrels,-1,"sharedStrings."+n,Vt.SST)),Ae(c,f="xl/workbook."+n,function(e){var t=[Te];t[t.length]=He("workbook",null,{xmlns:Ge[0],"xmlns:r":Ve.r});var r=e.Workbook&&(e.Workbook.Names||[]).length>0,n={codeName:"ThisWorkbook"};e.Workbook&&e.Workbook.WBProps&&(vr.forEach((function(t){null!=e.Workbook.WBProps[t[0]]&&e.Workbook.WBProps[t[0]]!=t[1]&&(n[t[0]]=e.Workbook.WBProps[t[0]])})),e.Workbook.WBProps.CodeName&&(n.codeName=e.Workbook.WBProps.CodeName,delete n.CodeName)),t[t.length]=He("workbookPr",null,n);var a=e.Workbook&&e.Workbook.Sheets||[],i=0;if(a&&a[0]&&a[0].Hidden){for(t[t.length]="",i=0;i!=e.SheetNames.length&&a[i]&&a[i].Hidden;++i);i==e.SheetNames.length&&(i=0),t[t.length]='',t[t.length]=""}for(t[t.length]="",i=0;i!=e.SheetNames.length;++i){var o={name:Ee(e.SheetNames[i].slice(0,31))};if(o.sheetId=""+(i+1),o["r:id"]="rId"+(i+1),a[i])switch(a[i].Hidden){case 1:o.state="hidden";break;case 2:o.state="veryHidden"}t[t.length]=He("sheet",null,o)}return t[t.length]="",r&&(t[t.length]="",e.Workbook&&e.Workbook.Names&&e.Workbook.Names.forEach((function(e){var r={name:e.Name};e.Comment&&(r.comment=e.Comment),null!=e.Sheet&&(r.localSheetId=""+e.Sheet),e.Hidden&&(r.hidden="1"),e.Ref&&(t[t.length]=He("definedName",Ee(e.Ref),r))})),t[t.length]=""),t.length>2&&(t[t.length]="",t[1]=t[1].replace("/>",">")),t.join("")}(e)),i.workbooks.push(f),Jt(t.rels,1,f,Vt.WB),Ae(c,f="xl/theme/theme1.xml",function(e,t){if(t&&t.themeXLSX)return t.themeXLSX;if(e&&"string"==typeof e.raw)return e.raw;var r=[Te];return r[r.length]='',r[r.length]="",r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]="",r[r.length]='',r[r.length]="",r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]="",r[r.length]="",r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]="",r[r.length]="",r[r.length]='',r[r.length]="",r[r.length]='',r[r.length]='',r[r.length]="",r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]="",r[r.length]='',r[r.length]="",r[r.length]='',r[r.length]="",r[r.length]='',r[r.length]='',r[r.length]="",r[r.length]='',r[r.length]="",r[r.length]="",r[r.length]="",r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]="",r[r.length]="",r[r.length]="",r[r.length]="",r[r.length]='',r[r.length]="",r[r.length]="",r[r.length]="",r[r.length]="",r[r.length]='',r[r.length]="",r[r.length]="",r[r.length]="",r[r.length]="",r[r.length]='',r[r.length]="",r[r.length]='',r[r.length]='',r[r.length]="",r[r.length]="",r[r.length]="",r[r.length]='',r[r.length]='',r[r.length]="",r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]="",r[r.length]='',r[r.length]="",r[r.length]='',r[r.length]="",r[r.length]='',r[r.length]='',r[r.length]="",r[r.length]='',r[r.length]="",r[r.length]="",r[r.length]="",r[r.length]="",r[r.length]="",r[r.length]="",r[r.length]='',r[r.length]="",r[r.length]="",r[r.length]='',r[r.length]="",r[r.length]="",r[r.length]="",r[r.length]="",r.join("")}(e.Themes,t)),i.themes.push(f),Jt(t.wbrels,-1,"theme/theme1.xml",Vt.THEME),Ae(c,f="xl/styles."+n,nr(e,t)),i.styles.push(f),Jt(t.wbrels,-1,"styles."+n,Vt.STY),e.vbaraw&&a&&(Ae(c,f="xl/vbaProject.bin",e.vbaraw),i.vba.push(f),Jt(t.wbrels,-1,"vbaProject.bin",Vt.VBA)),Ae(c,f="xl/metadata."+n,function(){var e=[Te];return e.push('\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n'),e.join("")}()),i.metadata.push(f),Jt(t.wbrels,-1,"metadata."+n,Vt.XLMETA),g.length>1&&(Ae(c,f="xl/persons/person.xml",function(e){var t=[Te,He("personList",null,{xmlns:Ve.TCMNT,"xmlns:x":Ge[0]}).replace(/[\/]>/,">")];return e.forEach((function(e,r){t.push(He("person",null,{displayName:e,id:"{54EE7950-7262-4200-6969-"+("000000000000"+r).slice(-12)+"}",userId:e,providerId:"None"}))})),t.push(""),t.join("")}(g)),i.people.push(f),Jt(t.wbrels,-1,"persons/person.xml",Vt.PEOPLE)),Ae(c,"[Content_Types].xml",Xt(i,t)),Ae(c,"_rels/.rels",Gt(t.rels)),Ae(c,"xl/_rels/workbook.xml.rels",Gt(t.wbrels)),delete t.revssf,delete t.ssf,c}function Tr(e,t){var r=ge(t||{});return function(e,t){var r={},n=a?"nodebuffer":"undefined"!=typeof Uint8Array?"array":"string";t.compression&&(r.compression="DEFLATE");if(t.password)r.type=n;else switch(t.type){case"base64":r.type="base64";break;case"binary":r.type="string";break;case"string":throw new Error("'string' output type invalid for '"+t.bookType+"' files");case"buffer":case"file":r.type=n;break;default:throw new Error("Unrecognized type "+t.type)}var i=e.FullPaths?re.write(e,{fileType:"zip",type:{nodebuffer:"buffer",string:"binary"}[r.type]||r.type,compression:!!t.compression}):e.generate(r);if("undefined"!=typeof Deno&&"string"==typeof i){if("binary"==t.type||"base64"==t.type)return i;i=new Uint8Array(f(i))}return t.password&&"undefined"!=typeof encrypt_agile?function(e,t){switch(t.type){case"base64":case"binary":break;case"buffer":case"array":t.type="";break;case"file":return ae(t.file,re.write(e,{type:a?"buffer":""}));case"string":throw new Error("'string' output type invalid for '"+t.bookType+"' files");default:throw new Error("Unrecognized type "+t.type)}return re.write(e,t)}(encrypt_agile(i,t.password),t):"file"===t.type?ae(t.file,i):"string"==t.type?Ue(i):i}(Ar(e,r),r)}function Dr(e,t){wr(e);var r=ge(t||{});if(r.cellStyles&&(r.cellNF=!0,r.sheetStubs=!0),"array"==r.type){r.type="binary";var n=Dr(e,r);return r.type="array",f(n)}return Tr(e,r)}function Or(e,t,r){var n=r||{};return n.type="file",n.file=t,function(e){if(!e.bookType){var t=e.file.slice(e.file.lastIndexOf(".")).toLowerCase();t.match(/^\.[a-z]+$/)&&(e.bookType=t.slice(1)),e.bookType={xls:"biff8",htm:"html",slk:"sylk",socialcalc:"eth",Sh33tJS:"WTF"}[e.bookType]||e.bookType}}(n),Dr(e,n)}function Fr(e,t,r,n,a,i,o){var s,l=Ot(r),c=o.defval,f=o.raw||!Object.prototype.hasOwnProperty.call(o,"raw"),h=!0,u=null!=e["!data"],p=1===a?[]:{};if(1!==a)if(Object.defineProperty)try{Object.defineProperty(p,"__rowNum__",{value:r,enumerable:!1})}catch(e){p.__rowNum__=r}else p.__rowNum__=r;if(!u||e["!data"][r])for(var d=t.s.c;d<=t.e.c;++d){var m=u?(e["!data"][r]||[])[d]:e[n[d]+l];if(null!=m&&void 0!==m.t){var g=m.v;switch(m.t){case"z":if(null==g)break;continue;case"e":g=0==g?null:void 0;break;case"s":case"b":case"n":if(!m.z||!J(m.z))break;if("number"==typeof(g=he(g)))break;case"d":o&&(o.UTC||!1===o.raw)||(s=new Date(g),g=new Date(s.getUTCFullYear(),s.getUTCMonth(),s.getUTCDate(),s.getUTCHours(),s.getUTCMinutes(),s.getUTCSeconds(),s.getUTCMilliseconds()));break;default:throw new Error("unrecognized type "+m.t)}if(null!=i[d]){if(null==g)if("e"==m.t&&null===g)p[i[d]]=null;else if(void 0!==c)p[i[d]]=c;else{if(!f||null!==g)continue;p[i[d]]=null}else p[i[d]]=("n"===m.t&&"boolean"==typeof o.rawNumbers?o.rawNumbers:f)?g:$t(m,g,o);null!=g&&(h=!1)}}else{if(void 0===c)continue;null!=i[d]&&(p[i[d]]=c)}}return{row:p,isempty:h}}function Er(e,t){if(null==e||null==e["!ref"])return[];var r={t:"n",v:0},n=0,a=1,i=[],o=0,s="",l={s:{r:0,c:0},e:{r:0,c:0}},c=t||{},f=null!=c.range?c.range:e["!ref"];switch(1===c.header?n=1:"A"===c.header?n=2:Array.isArray(c.header)?n=3:null==c.header&&(n=0),typeof f){case"string":l=Lt(f);break;case"number":(l=Lt(e["!ref"])).s.r=f;break;default:l=f}n>0&&(a=0);var h=Ot(l.s.r),u=[],p=[],d=0,m=0,g=null!=e["!data"],v=l.s.r,b=0,x={};g&&!e["!data"][v]&&(e["!data"][v]=[]);var w=c.skipHidden&&e["!cols"]||[],y=c.skipHidden&&e["!rows"]||[];for(b=l.s.c;b<=l.e.c;++b)if(!(w[b]||{}).hidden)switch(u[b]=Ft(b),r=g?e["!data"][v][b]:e[u[b]+h],n){case 1:i[b]=b-l.s.c;break;case 2:i[b]=u[b];break;case 3:i[b]=c.header[b-l.s.c];break;default:if(null==r&&(r={w:"__EMPTY",t:"s"}),s=o=$t(r,null,c),m=x[o]||0){do{s=o+"_"+m++}while(x[s]);x[o]=m,x[s]=1}else x[o]=1;i[b]=s}for(v=l.s.r+a;v<=l.e.r;++v)if(!(y[v]||{}).hidden){var C=Fr(e,l,v,u,n,i,c);(!1===C.isempty||(1===n?!1!==c.blankrows:c.blankrows))&&(p[d++]=C.row)}return p.length=d,p}!function(){try{return"undefined"==typeof Uint8Array||void 0===Uint8Array.prototype.subarray?"slice":"undefined"!=typeof Buffer?void 0===Buffer.prototype.subarray?"slice":("function"==typeof Buffer.from?Buffer.from([72,62]):new Buffer([72,62]))instanceof Uint8Array?"subarray":"slice":"subarray"}catch(e){return"slice"}}();var Mr=/"/g;function Nr(e,t,r,n,a,i,o,s,l){for(var c=!0,f=[],h="",u=Ot(r),p=null!=e["!data"],d=p&&e["!data"][r]||[],m=t.s.c;m<=t.e.c;++m)if(n[m]){var g=p?d[m]:e[n[m]+u];if(null==g)h="";else if(null!=g.v){c=!1,h=""+(l.rawNumbers&&"n"==g.t?g.v:$t(g,null,l));for(var v=0,b=0;v!==h.length;++v)if((b=h.charCodeAt(v))===a||b===i||34===b||l.forceQuotes){h='"'+h.replace(Mr,'""')+'"';break}"ID"==h&&0==s&&0==f.length&&(h='"ID"')}else null==g.f||g.F?h="":(c=!1,(h="="+g.f).indexOf(",")>=0&&(h='"'+h.replace(Mr,'""')+'"'));f.push(h)}if(l.strip)for(;""===f[f.length-1];)--f.length;return!1===l.blankrows&&c?null:f.join(o)}function Ir(e,t){var r=[],n=null==t?{}:t;if(null==e||null==e["!ref"])return"";for(var a=Lt(e["!ref"]),i=void 0!==n.FS?n.FS:",",o=i.charCodeAt(0),s=void 0!==n.RS?n.RS:"\n",l=s.charCodeAt(0),c="",f=[],h=n.skipHidden&&e["!cols"]||[],u=n.skipHidden&&e["!rows"]||[],p=a.s.c;p<=a.e.c;++p)(h[p]||{}).hidden||(f[p]=Ft(p));for(var d=0,m=a.s.r;m<=a.e.r;++m)(u[m]||{}).hidden||null!=(c=Nr(e,a,m,f,o,l,i,d,n))&&(c||!1!==n.blankrows)&&r.push((d++?s:"")+c);return r.join("")}function Pr(e,t,r){var n=r||{},a=e?null!=e["!data"]:n.dense,i=+!n.skipHeader,o=e||{};!e&&a&&(o["!data"]=[]);var s=0,l=0;if(o&&null!=n.origin)if("number"==typeof n.origin)s=n.origin;else{var c="string"==typeof n.origin?Et(n.origin):n.origin;s=c.r,l=c.c}var f={s:{c:0,r:0},e:{c:l,r:s+t.length-1+i}};if(o["!ref"]){var h=Lt(o["!ref"]);f.e.c=Math.max(f.e.c,h.e.c),f.e.r=Math.max(f.e.r,h.e.r),-1==s&&(s=h.e.r+1,f.e.r=s+t.length-1+i)}else-1==s&&(s=0,f.e.r=t.length-1+i);var u=n.header||[],p=0,d=[];t.forEach((function(e,t){a&&!o["!data"][s+t+i]&&(o["!data"][s+t+i]=[]),a&&(d=o["!data"][s+t+i]),ie(e).forEach((function(r){-1==(p=u.indexOf(r))&&(u[p=u.length]=r);var c=e[r],f="z",h="",m=a?"":Ft(l+p)+Ot(s+t+i),g=a?d[l+p]:o[m];!c||"object"!=typeof c||c instanceof Date?("number"==typeof c?f="n":"boolean"==typeof c?f="b":"string"==typeof c?f="s":c instanceof Date?(f="d",n.UTC||(c=_e(c)),n.cellDates||(f="n",c=fe(c)),h=null!=g&&g.z&&J(g.z)?g.z:n.dateNF||S[14]):null===c&&n.nullError&&(f="e",c=0),g?(g.t=f,g.v=c,delete g.w,delete g.R,h&&(g.z=h)):a?d[l+p]=g={t:f,v:c}:o[m]=g={t:f,v:c},h&&(g.z=h)):a?d[l+p]=c:o[m]=c}))})),f.e.c=Math.max(f.e.c,l+u.length-1);var m=Ot(s);if(a&&!o["!data"][s]&&(o["!data"][s]=[]),i)for(p=0;p=65535)throw new Error("Too many worksheets");if(n&&e.SheetNames.indexOf(r)>=0&&r.length<32){var i=r.match(/\d+$/);a=i&&+i[0]||0;var o=i&&r.slice(0,i.index)||r;for(++a;a<=65535&&-1!=e.SheetNames.indexOf(r=o+a);++a);}if(xr(r),e.SheetNames.indexOf(r)>=0)throw new Error("Worksheet with name |"+r+"| already exists!");return e.SheetNames.push(r),e.Sheets[r]=t,r}function Ur(e,t,r){return t?(e.l={Target:t},r&&(e.l.Tooltip=r)):delete e.l,e}var $r={encode_col:Ft,encode_row:Ot,encode_cell:Mt,encode_range:It,decode_col:function(e){for(var t=e.replace(/^\$([A-Z])/,"$1"),r=0,n=0;n!==t.length;++n)r=26*r+t.charCodeAt(n)-64;return r-1},decode_row:function(e){return parseInt(e.replace(/\$(\d+)$/,"$1"),10)-1},split_cell:function(e){return e.replace(/(\$?[A-Z]*)(\$?\d*)/,"$1,$2").split(",")},decode_cell:Et,decode_range:Nt,format_cell:$t,sheet_new:function(e){var t={};return(e||{}).dense&&(t["!data"]=[]),t},sheet_add_aoa:zt,sheet_add_json:Pr,sheet_add_dom:Cr,aoa_to_sheet:function(e,t){return zt(null,e,t)},json_to_sheet:function(e,t){return Pr(null,e,t)},table_to_sheet:Sr,table_to_book:function(e,t){return function(e,t){var r=t&&t.sheet?t.sheet:"Sheet1",n={};return n[r]=e,{SheetNames:[r],Sheets:n}}(Sr(e,t),t)},sheet_to_csv:Ir,sheet_to_txt:function(e,t){return t||(t={}),t.FS="\t",t.RS="\n",Ir(e,t)},sheet_to_json:Er,sheet_to_html:function(e,t){var r=t||{},n=null!=r.header?r.header:'SheetJS Table Export',a=null!=r.footer?r.footer:"",i=[n],o=Nt(e["!ref"]||"A1");if(i.push(function(e,t,r){return[].join("")+""}(0,0,r)),e["!ref"])for(var s=o.s.r;s<=o.e.r;++s)i.push(yr(e,o,s,r));return i.push(""+a),i.join("")},sheet_to_formulae:function(e,t){var r,n="",a="";if(null==e||null==e["!ref"])return[];var i,o=Lt(e["!ref"]),s="",l=[],c=[],f=null!=e["!data"];for(i=o.s.c;i<=o.e.c;++i)l[i]=Ft(i);for(var h=o.s.r;h<=o.e.r;++h)for(s=Ot(h),i=o.s.c;i<=o.e.c;++i)if(n=l[i]+s,a="",void 0!==(r=f?(e["!data"][h]||[])[i]:e[n])){if(null!=r.F){if(n=r.F,!r.f)continue;a=r.f,-1==n.indexOf(":")&&(n=n+":"+n)}if(null!=r.f)a=r.f;else{if(t&&!1===t.values)continue;if("z"==r.t)continue;if("n"==r.t&&null!=r.v)a=""+r.v;else if("b"==r.t)a=r.v?"TRUE":"FALSE";else if(void 0!==r.w)a="'"+r.w;else{if(void 0===r.v)continue;a="s"==r.t?"'"+r.v:""+r.v}}c[c.length]=n+"="+a}return c},sheet_to_row_object_array:Er,sheet_get_cell:Rr,book_new:function(e,t){var r={SheetNames:[],Sheets:{}};return e&&Lr(r,e,t||"Sheet1"),r},book_append_sheet:Lr,book_set_sheet_visibility:function(e,t,r){e.Workbook||(e.Workbook={}),e.Workbook.Sheets||(e.Workbook.Sheets=[]);var n=function(e,t){if("number"==typeof t){if(t>=0&&e.SheetNames.length>t)return t;throw new Error("Cannot find sheet # "+t)}if("string"==typeof t){var r=e.SheetNames.indexOf(t);if(r>-1)return r;throw new Error("Cannot find sheet name |"+t+"|")}throw new Error("Cannot find sheet |"+t+"|")}(e,t);switch(e.Workbook.Sheets[n]||(e.Workbook.Sheets[n]={}),r){case 0:case 1:case 2:break;default:throw new Error("Bad sheet visibility setting "+r)}e.Workbook.Sheets[n].Hidden=r},cell_set_number_format:function(e,t){return e.z=t,e},cell_set_hyperlink:Ur,cell_set_internal_link:function(e,t,r){return Ur(e,"#"+t,r)},cell_add_comment:function(e,t,r){e.c||(e.c=[]),e.c.push({t,a:r||"SheetJS"})},sheet_set_array_formula:function(e,t,r,n){for(var a="string"!=typeof t?t:Lt(t),i="string"==typeof t?t:It(t),o=a.s.r;o<=a.e.r;++o)for(var s=a.s.c;s<=a.e.c;++s){var l=Rr(e,o,s);l.t="n",l.F=i,delete l.v,o==a.s.r&&s==a.s.c&&(l.f=r,n&&(l.D=!0))}var c=Nt(e["!ref"]);return c.s.r>a.s.r&&(c.s.r=a.s.r),c.s.c>a.s.c&&(c.s.c=a.s.c),c.e.r} + */ +export async function JS_OpenSignInPage(url) { + // BEGIN USER CODE + window.location.href = url; + // END USER CODE +} diff --git a/javascriptsource/feedbackmodule/actions/GetStorageItemObject.js b/javascriptsource/feedbackmodule/actions/GetStorageItemObject.js new file mode 100644 index 0000000..7f73a5b --- /dev/null +++ b/javascriptsource/feedbackmodule/actions/GetStorageItemObject.js @@ -0,0 +1,104 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import "mx-global"; +import { Big } from "big.js"; +import AsyncStorage from '@react-native-community/async-storage'; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * What does this JavaScript action do? + * + * Get locally stored JSON object stored in clients internet browser. Identified by a unique key. Can be accessed by the GetStorageItemObject action. Please note that users can clear the device storage. + * @param {string} key - This field is required. + * @param {string} entity - This field is required. + * @returns {Promise.} + */ +export async function GetStorageItemObject(key, entity) { + // BEGIN USER CODE + if (!key) { + return Promise.reject(new Error("Input parameter 'Key' is required")); + } + if (!entity) { + return Promise.reject(new Error("Input parameter 'Entity' is required")); + } + return getItem(key).then(result => { + if (result === null) { + return Promise.reject(new Error(`Storage item '${key}' does not exist`)); + } + const value = JSON.parse(result); + return getOrCreateMxObject(entity, value).then(newObject => { + const newValue = serializeMxObject(newObject); + return setItem(key, JSON.stringify(newValue)).then(() => newObject); + }); + }); + function getItem(key) { + if (navigator && navigator.product === "ReactNative") { + return AsyncStorage.getItem(key); + } + if (window) { + const value = window.localStorage.getItem(key); + return Promise.resolve(value); + } + return Promise.reject(new Error("No storage API available")); + } + function setItem(key, value) { + if (navigator && navigator.product === "ReactNative") { + return AsyncStorage.setItem(key, value); + } + if (window) { + window.localStorage.setItem(key, value); + return Promise.resolve(); + } + return Promise.reject(new Error("No storage API available")); + } + function getOrCreateMxObject(entity, value) { + return getMxObject(value.guid).then(existingObject => { + if (existingObject) { + return existingObject; + } + else { + return createMxObject(entity, value); + } + }); + } + function getMxObject(guid) { + return new Promise((resolve, reject) => { + mx.data.get({ + guid, + callback: mxObject => resolve(mxObject), + error: error => reject(error) + }); + }); + } + function createMxObject(entity, value) { + return new Promise((resolve, reject) => { + mx.data.create({ + entity, + callback: mxObject => { + Object.keys(value) + .filter(attribute => attribute !== "guid") + .forEach(attributeName => { + const attributeValue = value[attributeName]; + mxObject.set(attributeName, attributeValue); + }); + resolve(mxObject); + }, + error: () => reject(new Error(`Could not create '${entity}' object`)) + }); + }); + } + function serializeMxObject(object) { + return object.getAttributes().reduce((accumulator, attributeName) => { + accumulator[attributeName] = object.get(attributeName); + return accumulator; + }, { guid: object.getGuid() }); + } + // END USER CODE +} diff --git a/javascriptsource/feedbackmodule/actions/JS_PopulateFeedbackMetadata.js b/javascriptsource/feedbackmodule/actions/JS_PopulateFeedbackMetadata.js new file mode 100644 index 0000000..79ff1f2 --- /dev/null +++ b/javascriptsource/feedbackmodule/actions/JS_PopulateFeedbackMetadata.js @@ -0,0 +1,72 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import "mx-global"; +import { Big } from "big.js"; + +// BEGIN EXTRA CODE + const handleUserRoles = async () => { + if(!mx) return undefined; + try { + return await mx.session.getUserRoleNames(); + } catch (error){ + console.error("Error getting user role names", error); + return undefined; + } + }; + const handlePagePath = async () => { + if(!mx) return undefined; + try { + const mendixVersion = mx.version + const mendixMajorVersion = mendixVersion.split('.')[0]; + switch(mendixMajorVersion) { + case '9': + case '10': + return mx.ui.getContentForm().path.toString(); + default: + return undefined; + }; + } catch { + console.error("Error getting page path", error); + return undefined + } + }; +// END EXTRA CODE + +/** + * What does this JavaScript action do? + * + * Returns meta data from the clients internet browser. + * + * This includes; + * + * ActiveUserRoles + * PageName + * EnvironmentURL + * Browser + * ScreenWidth + * ScreenHeight + * @param {MxObject} feedback + * @returns {Promise.} + */ +export async function JS_PopulateFeedbackMetadata(feedback) { + // BEGIN USER CODE + try { + const userRoles = await handleUserRoles(); + const pagePath = await handlePagePath(); + feedback.set("ActiveUserRoles", userRoles); + feedback.set("PageName", pagePath); + feedback.set("EnvironmentURL", window.location.href); + feedback.set("Browser", navigator.userAgent); + feedback.set("ScreenWidth", window.screen.width); + feedback.set("ScreenHeight", window.screen.height); + return feedback; + } catch (error) { + console.error("Error setting meta data", error); + } + // END USER CODE +} diff --git a/javascriptsource/feedbackmodule/actions/JS_Recalculate_MendixModal_Error_PopUp_Zindex.js b/javascriptsource/feedbackmodule/actions/JS_Recalculate_MendixModal_Error_PopUp_Zindex.js new file mode 100644 index 0000000..eadee7d --- /dev/null +++ b/javascriptsource/feedbackmodule/actions/JS_Recalculate_MendixModal_Error_PopUp_Zindex.js @@ -0,0 +1,40 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import "mx-global"; +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * @returns {Promise.} + */ +export async function JS_Recalculate_MendixModal_Error_PopUp_Zindex() { + // BEGIN USER CODE + + function setModalZindex(cssSelector, zIndexValue) { + try { + const htmlElement = document.querySelectorAll(cssSelector); + + if(!htmlElement.length) { + return; + } + + htmlElement.forEach(item => item.style.zIndex = zIndexValue); + + } catch(error) { + console.warn("Feedback Module JS_Recalculate_Modal_Zindex could not execute correctly", error); + } + }; + + setTimeout(() => { + setModalZindex(".mx-dialog-info, mx-dialog-warning, .mx-dialog-error", "90"); + setModalZindex(".mx-underlay", "80"); + },500); + // END USER CODE +} diff --git a/javascriptsource/feedbackmodule/actions/JS_RevokeUploadedFileFromMemory.js b/javascriptsource/feedbackmodule/actions/JS_RevokeUploadedFileFromMemory.js new file mode 100644 index 0000000..6791c87 --- /dev/null +++ b/javascriptsource/feedbackmodule/actions/JS_RevokeUploadedFileFromMemory.js @@ -0,0 +1,50 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import "mx-global"; +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * What does this JavaScript action do? + * + * After you have uploaded an image it removes locally stored image from memory. This is a custom build action. + * + * Dependency Note: + * This JavaScript action should be used only when you have inserted the Image Upload JavaScript Action called 'JS_UploadAndConvertToFileBlobURL' into your nanoflow. + * + * More detailed explanation: Memory management. + * + * To upload a image we use a custom build Javascript action called 'JS_UploadAndConvertToFileBlobURL'. + * Inside this action we use a JavaScript method called createObjectURL() to upload and store files in local memory. We can access and cosume this in memory image resource via the URL path that is returned from the createObjectURL() method. + * + * However, each time you call createObjectURL(), a new object is created in memory, even if you've already created one for the same object. + * So each of these must be released by calling this action called 'JS_RevokeUploadedFileFromMemory' when you no longer need them. + * + * Browsers will release object URLs automatically when the document is unloaded; however, for optimal performance and memory usage, if there are safe times when you can explicitly unload them, you should do so with the JavaScriptAction called 'JS_RevokeUploadedFileFromMemory'. + * @param {string} fileBlobURL - You have to pass the fileBlobURL that was created using the URL.createObjectURL() in the JS Action called 'JS_UploadAndConvertToFileBlobURL' + * @returns {Promise.} + */ +export async function JS_RevokeUploadedFileFromMemory(fileBlobURL) { + // BEGIN USER CODE + /* We use the URL.createObjectURL() static method which creates a string containing a URL representing the + image uploaded. + The image blob is stored in the clients browser and takes up memory whilst the session is active. So here we + revoke the image when the user deletes the image. Note that the image is automaticlly revoked when the browser refreshes + or closes. + + You have to pass the fileBlobURL that was created using the URL.createObjectURL() in the JS Action called 'JS_UploadAndConvertToFileBlobURL' + */ + if(fileBlobURL && typeof fileBlobURL === "string"){ + URL.revokeObjectURL(fileBlobURL); + } else { + throw new Error("Image was not removed from browser memory"); + } + // END USER CODE +} diff --git a/javascriptsource/feedbackmodule/actions/JS_ToggleFeedbackAnnotateWidget.js b/javascriptsource/feedbackmodule/actions/JS_ToggleFeedbackAnnotateWidget.js new file mode 100644 index 0000000..35382f2 --- /dev/null +++ b/javascriptsource/feedbackmodule/actions/JS_ToggleFeedbackAnnotateWidget.js @@ -0,0 +1,74 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import "mx-global"; +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +// messageActionTypes are to identify the postMessage types between the JS Action & Feedback Widget. +const messageAction_toggleAnnotateMode = "mxFeedbackWidget_toggleAnnotateMode"; // The Feedback widget reads this to trigger a specific screenshot mode stage. +const messageAction_isBase64 = "mxFeedbackWidget_convertedToBase64"; // We expect this string from the widget when screenshot mode in enabled. +const messageAction_actionCancelled = "mxFeedbackWidget_actionCancelled" // The Feedback widget will send this back if screenshot/annotation actions are cancelled by the user. + +const parseJSON = (event) => { + try { + return JSON.parse(event); + } catch { + return undefined; + } +}; +// END EXTRA CODE + +/** + * What does this JavaScript action do? + * + * When you upload a screenshot manually the image can be annotatated. + * + * More detailed explanation: + * The Mendix Feedback Widget handles annotation and also renders a default styled button on your page. + * + * In order to trigger the annotation mode you have to use this JavaScript action to send the widget the correct image payload. + * + * Return Type: + * Will return base 64 image string + * @param {string} fileBlobURL + * @returns {Promise.} + */ +export async function JS_ToggleFeedbackAnnotateWidget(fileBlobURL) { + // BEGIN USER CODE + /* + The widget and JS action communicate with the following postMessage object structure: + messageObject = {messageActionType: string;messageData: string;} + */ + const messageObject = { + "messageActionType": messageAction_toggleAnnotateMode, // The widget reads this to trigger the Annotate Mode. + "messageData": fileBlobURL // The widget uses this URL reference to get access to the locally stored image blob. + }; + + postMessage(JSON.stringify(messageObject), window.origin); // Send the serialized message object to Feedback Wiget to trigger annotate mode. + + return new Promise(resolve => { + function handleEvent(event) { + const parsedData = parseJSON(event.data); // Convert the received string to an object. + + if(event.origin === window.origin) { + if (parsedData && parsedData.messageActionType === messageAction_isBase64) { + window.removeEventListener("message", handleEvent); + resolve(parsedData.messageData); // Resolve & return the base64 image to the nanoflow. + }; + if(parsedData && parsedData.messageActionType === messageAction_actionCancelled) { + resolve(); + } + } + + }; + + window.addEventListener("message", handleEvent); // Listen and wait for the Feedback Widget to send the base64 image. + + }); + // END USER CODE +} diff --git a/javascriptsource/feedbackmodule/actions/JS_ToggleFeedbackScreenshotWidget.js b/javascriptsource/feedbackmodule/actions/JS_ToggleFeedbackScreenshotWidget.js new file mode 100644 index 0000000..fafc71c --- /dev/null +++ b/javascriptsource/feedbackmodule/actions/JS_ToggleFeedbackScreenshotWidget.js @@ -0,0 +1,73 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import "mx-global"; +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +// messageActionTypes are to identify the postMessage types between the JS Action & Feedback Widget. +const messageAction_toggleAnnotateMode = "mxFeedbackWidget_toggleScreenshotMode"; // The Feedback widget reads this to trigger a specific screenshot mode stage. +const messageAction_isBase64 = "mxFeedbackWidget_convertedToBase64"; // We expect this string from the widget when screenshot mode in enabled. +const messageAction_actionCancelled = "mxFeedbackWidget_actionCancelled" // The Feedback widget will send this back if screenshot/annotation actions are cancelled by the user. + +/* + The widget and JS action communicate with the following postMessage object structure: + messageObject = {messageActionType: string;messageData: string;} +*/ +const messageObject = { + "messageActionType": messageAction_toggleAnnotateMode //The Feedback widget reads this to trigger a specific Mode. +}; + +const parseJson = (event) => { + try { + return JSON.parse(event); + } catch { + return undefined; + } +}; +// END EXTRA CODE + +/** + * What does this JavaScript action do? + * + * Lets to take a screenshot of the current visible page + * + * More detailed explanation: + * The Mendix Feedback Widget handles annotation, screenshot and also renders a default styled button on your page. + * + * Usage: + * You should use this JavaScript action to trigger the screenshot functionality. + * + * Return Type: + * Will return a image base64 string + * + * @returns {Promise.} + */ +export async function JS_ToggleFeedbackScreenshotWidget() { + // BEGIN USER CODE + postMessage(JSON.stringify(messageObject), window.origin); // Send a message to the Feedback Wiget to trigger screenshot mode. + + return new Promise(resolve => { + + function handleEvent(event){ + const parsedData = parseJson(event.data); + if(parsedData && event.origin === window.origin) { + if (parsedData.messageActionType === messageAction_isBase64) { + window.removeEventListener("message", handleEvent); + resolve(parsedData.messageData); // Resolve & return the base64 image to the nanoflow. + }; + if(parsedData.messageActionType === messageAction_actionCancelled){ + resolve("uploadCancelled"); + } + } + }; + + window.addEventListener("message", handleEvent); // Listen and wait for the Feedback Widget to send back the edited screenshot as base64. + + }); + // END USER CODE +} diff --git a/javascriptsource/feedbackmodule/actions/JS_UploadAndConvertToFileBlobURL.js b/javascriptsource/feedbackmodule/actions/JS_UploadAndConvertToFileBlobURL.js new file mode 100644 index 0000000..2e50fe3 --- /dev/null +++ b/javascriptsource/feedbackmodule/actions/JS_UploadAndConvertToFileBlobURL.js @@ -0,0 +1,113 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; +import "mx-global"; + +// BEGIN EXTRA CODE + var isUploading = false; + +    async function storeFileAndGetResourceUrl(file) { +        return URL.createObjectURL(file); // Saves the file to locally memory and returns a URL path to the Blob object. +    }; + +    function removeDomElements({fileInput, progressId}) { +        if(progressId) mx.ui.hideProgress(progressId); +        if(fileInput) document.body.removeChild(fileInput); + isUploading = false;     +    } + +    function validateFileTypes ({acceptedTypes, fileType}) { +        if(!acceptedTypes && !fileType) return false; +        const accepted = acceptedTypes.split(","); +        return accepted.some(type => new RegExp(type).test(fileType)); +    } + +    function validateFileSize ({uploadedFile, maxSize}) { +        if(!uploadedFile && !maxSize) return false; +        const uploadedSize = uploadedFile.size / 1024 / 1024; // Convert to MB +        return uploadedSize < (maxSize.c[0] + 0.1); // 0.1 MB extra tolerance +    } +// END EXTRA CODE + +/** + * What does this JavaScript Action do? + * + * This is a custom build JavaScript Action that triggers the file upload dialog box to open in your internet browser. + * + * Dependency Note: + * This JavaScript action should be used with the JavaScript Action called 'JS_RevokeUploadedFileFromMemory' so that the image uploaded is removed from local memory :) + * + * Explanation of this JavaScript Action & Memory management. + * + * We use createObjectURL() to upload and store files in local memory. We can access and cosume this in memory image resource via the URL path that is returned from the createObjectURL() method. + * + * However, each time you call createObjectURL(), a new object is created in memory, even if you've already created one for the same object. + * So each of these must be released by calling the JS Action called 'JS_RevokeUploadedFileFromMemory' when you no longer need them. + * + * Browsers will release object URLs automatically when the document is unloaded; however, for optimal performance and memory usage, if there are safe times when you can explicitly unload them, you should do so with the JavaScriptAction called 'JS_RevokeUploadedFileFromMemory'. + * @param {string} userDefined_mimeTypes + * @param {Big} userDefined_fileUploadSize + * @returns {Promise.} + */ +export async function JS_UploadAndConvertToFileBlobURL(userDefined_mimeTypes, userDefined_fileUploadSize) { + // BEGIN USER CODE +    return new Promise((resolve, reject) => { +        try { +            // Create and append the HTML input element to the body +            const fileInput = document.createElement("input"); +            fileInput.style.position = "absolute"; +            fileInput.style.left = "-9999px"; +            fileInput.name = "fileupload"; +            fileInput.id = "fileupload"; +            fileInput.type = "file"; +            if(userDefined_mimeTypes){ +                fileInput.accept = userDefined_mimeTypes; +            } +            fileInput.multiple = false; +            fileInput.onchange = handleFileUpload; +            document.body.appendChild(fileInput); + fileInput.addEventListener("cancel", () => resolve("uploadCancelled")); +            fileInput.click(); + +            // A function used to validate & store the uploaded file to local memory. +            function handleFileUpload(event) { + isUploading = true; + +                const newFile = event.target.files[0]; +                const progressId = mx.ui.showProgress(null, true); + +                // Check if the uploaded file type matches the user defined accepted types. +                if (!validateFileTypes({acceptedTypes: fileInput.accept, fileType: newFile.type})) { +                    removeDomElements({fileInput, progressId}); +                    resolve("fileTypeNotAccepted"); +                    return; +                } +                // Check if the uploaded file matches the user defined upload size. +                if (!validateFileSize({uploadedFile: newFile, maxSize: userDefined_fileUploadSize})) { +                    removeDomElements({fileInput, progressId}); +                    resolve("fileSizeNotAccepted"); +                    return; +                } +                // Store file locally on users device and return path to resource. +                storeFileAndGetResourceUrl(newFile).then((fileBlobURL) => { +                    if(fileBlobURL && typeof fileBlobURL === "string") { +                        removeDomElements({fileInput, progressId}); +                        resolve(fileBlobURL); +                    } else { +                        removeDomElements({fileInput, progressId}); +                        resolve("fileNotConverted"); +                    } +                }) +                return; +            }; +        } catch (error) { +            reject(error); +        } +    }); + // END USER CODE +} diff --git a/javascriptsource/feedbackmodule/actions/SetStorageItemObject.js b/javascriptsource/feedbackmodule/actions/SetStorageItemObject.js new file mode 100644 index 0000000..f4ecff9 --- /dev/null +++ b/javascriptsource/feedbackmodule/actions/SetStorageItemObject.js @@ -0,0 +1,47 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; +import AsyncStorage from '@react-native-community/async-storage'; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * Store a Mendix object in device storage, identified by a unique key. Can be accesed by the GetStargeItemObject action. Please note that users can clear the device storage. + * @param {string} key - This field is required. + * @param {MxObject} value - This field is required. + * @returns {Promise.} + */ +export async function SetStorageItemObject(key, value) { + // BEGIN USER CODE + if (!key) { + return Promise.reject(new Error("Input parameter 'Key' is required")); + } + if (!value) { + return Promise.reject(new Error("Input parameter 'Value' is required")); + } + const serializedObject = serializeMxObject(value); + return setItem(key, JSON.stringify(serializedObject)); + function setItem(key, value) { + if (navigator && navigator.product === "ReactNative") { + return AsyncStorage.setItem(key, value); + } + if (window) { + window.localStorage.setItem(key, value); + return Promise.resolve(); + } + return Promise.reject(new Error("No storage API available")); + } + function serializeMxObject(object) { + return object.getAttributes().reduce((accumulator, attributeName) => { + accumulator[attributeName] = object.get(attributeName); + return accumulator; + }, { guid: object.getGuid() }); + } + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/Base64Decode.js b/javascriptsource/nanoflowcommons/actions/Base64Decode.js new file mode 100644 index 0000000..7079518 --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/Base64Decode.js @@ -0,0 +1,22 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; +import { Base64 } from 'js-base64'; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * @param {string} base64 + * @returns {Promise.} + */ +export async function Base64Decode(base64) { + // BEGIN USER CODE + return Base64.decode(base64); + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/Base64DecodeToImage.js b/javascriptsource/nanoflowcommons/actions/Base64DecodeToImage.js new file mode 100644 index 0000000..055f7fc --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/Base64DecodeToImage.js @@ -0,0 +1,32 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; +import { Base64 } from 'js-base64'; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * @param {string} base64 + * @param {MxObject} image + * @returns {Promise.} + */ +export async function Base64DecodeToImage(base64, image) { + // BEGIN USER CODE + if (!base64) { + throw new Error("base64 String should not be empty"); + } + if (!image) { + throw new Error("image should not be null"); + } + const blob = new Blob([Base64.toUint8Array(base64)], { type: "image/png" }); + return new Promise((resolve, reject) => { + mx.data.saveDocument(image.getGuid(), "camera image", {}, blob, () => resolve(true), reject); + }); + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/Base64Encode.js b/javascriptsource/nanoflowcommons/actions/Base64Encode.js new file mode 100644 index 0000000..643579f --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/Base64Encode.js @@ -0,0 +1,23 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import "mx-global"; +import { Big } from "big.js"; +import { Base64 } from 'js-base64'; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * @param {string} string + * @returns {Promise.} + */ +export async function Base64Encode(string) { + // BEGIN USER CODE + return Base64.encode(base64); + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/CallPhoneNumber.js b/javascriptsource/nanoflowcommons/actions/CallPhoneNumber.js new file mode 100644 index 0000000..7639e64 --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/CallPhoneNumber.js @@ -0,0 +1,46 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * This action can be used to launch a phone app on the devices and initiate dialing of the specified phone number. The user has to confirm to initate the actual call. + * @param {string} phoneNumber - This field is required. + * @returns {Promise.} + */ +export async function CallPhoneNumber(phoneNumber) { + // BEGIN USER CODE + if (!phoneNumber) { + return Promise.reject(new Error("Input parameter 'Phone number' is required")); + } + const url = `tel:${encodeURI(phoneNumber)}`; + // Native platform + if (navigator && navigator.product === "ReactNative") { + const Linking = require("react-native").Linking; + return Linking.canOpenURL(url).then(supported => { + if (!supported) { + return false; + } + return Linking.openURL(url).then(() => true); + }); + } + // Hybrid platform + if (window && window.cordova) { + window.open(url, "_system"); + return Promise.resolve(true); + } + // Web platform + if (window) { + window.location.href = url; + return Promise.resolve(true); + } + return Promise.resolve(false); + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/ClearCachedSessionData.js b/javascriptsource/nanoflowcommons/actions/ClearCachedSessionData.js new file mode 100644 index 0000000..5c4b97f --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/ClearCachedSessionData.js @@ -0,0 +1,24 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * Clears saved session data from the local storage for offline native and PWAs. + * @returns {Promise.} + */ +export async function ClearCachedSessionData() { + // BEGIN USER CODE + if (mx.session && mx.session.clearCachedSessionData === undefined) { + return Promise.reject(new Error("JS action 'Clear cached session data' is not supported prior to Mendix client v9.14")); + } + await mx.session.clearCachedSessionData(); + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/ClearLocalStorage.js b/javascriptsource/nanoflowcommons/actions/ClearLocalStorage.js new file mode 100644 index 0000000..67e6067 --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/ClearLocalStorage.js @@ -0,0 +1,27 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * @returns {Promise.} + */ +export async function ClearLocalStorage() { + // BEGIN USER CODE + try { + localStorage.clear(); + return true; + } + catch (e) { + console.error(e); + return false; + } + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/DraftEmail.js b/javascriptsource/nanoflowcommons/actions/DraftEmail.js new file mode 100644 index 0000000..99ed516 --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/DraftEmail.js @@ -0,0 +1,64 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * Start drafting an email in the platform specified email client. This might work differently for each user depending on their platform and local configuration. + * @param {string} recipient - The recipient, or recipients, separated by comma's. + * @param {string} cc - The Carbon Copy recipient, or recipients, separated by comma's. + * @param {string} bcc - The Blind Carbon Copy recipient, or recipients, separated by comma's. + * @param {string} subject + * @param {string} body + * @returns {Promise.} + */ +export async function DraftEmail(recipient, cc, bcc, subject, body) { + // BEGIN USER CODE + let url = "mailto:"; + if (recipient) { + url += `${encodeURI(recipient)}?`; + } + if (cc) { + url += `cc=${encodeURIComponent(cc)}&`; + } + if (bcc) { + url += `bcc=${encodeURIComponent(bcc)}&`; + } + if (subject) { + url += `subject=${encodeURIComponent(subject)}&`; + } + if (body) { + url += `body=${encodeURIComponent(body)}&`; + } + // Remove the last '?' or '&' + url = url.slice(0, -1); + // Native platform + if (navigator && navigator.product === "ReactNative") { + const Linking = require("react-native").Linking; + return Linking.canOpenURL(url).then(supported => { + if (!supported) { + return false; + } + return Linking.openURL(url).then(() => true); + }); + } + // Hybrid platform + if (window && window.cordova) { + window.open(url, "_system"); + return Promise.resolve(true); + } + // Web platform + if (window) { + window.location.href = url; + return Promise.resolve(true); + } + return Promise.resolve(false); + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/FindObjectWithGUID.js b/javascriptsource/nanoflowcommons/actions/FindObjectWithGUID.js new file mode 100644 index 0000000..e6b22a0 --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/FindObjectWithGUID.js @@ -0,0 +1,22 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * @param {MxObject[]} list + * @param {string} objectGUID + * @returns {Promise.} + */ +export async function FindObjectWithGUID(list, objectGUID) { + // BEGIN USER CODE + return list.find(element => element.getGuid() === objectGUID); + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/GenerateUniqueID.js b/javascriptsource/nanoflowcommons/actions/GenerateUniqueID.js new file mode 100644 index 0000000..e6a6f77 --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/GenerateUniqueID.js @@ -0,0 +1,62 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +const COUNTER_STORE = "idCounter"; +let locked = false; +let currentCounter; +function sleep(time) { + return new Promise(resolve => setTimeout(resolve, time)); +} +async function initializeCounter() { + currentCounter = JSON.parse((await getItem(COUNTER_STORE)) || "-1"); +} +async function getItem(key) { + if (navigator && navigator.product === "ReactNative") { + const AsyncStorage = (await import('@react-native-community/async-storage')).default; + return AsyncStorage.getItem(key); + } + if (window) { + return window.localStorage.getItem(key); + } + throw new Error("No storage API available"); +} +async function setItem(key, value) { + if (navigator && navigator.product === "ReactNative") { + const AsyncStorage = (await import('@react-native-community/async-storage')).default; + return AsyncStorage.setItem(key, value); + } + if (window) { + return window.localStorage.setItem(key, value); + } + throw new Error("No storage API available"); +} +// END EXTRA CODE + +/** + * Generates a unique ID based on the current session. + * @returns {Promise.} + */ +export async function GenerateUniqueID() { + // BEGIN USER CODE + const sessionId = mx.session.getConfig("sessionObjectId"); + const rnd = Math.round(Math.random() * 10000); + // eslint-disable-next-line no-unmodified-loop-condition + while (locked) { + await sleep(10); + } + locked = true; + if (typeof currentCounter === "undefined") { + await initializeCounter(); + } + await setItem(COUNTER_STORE, JSON.stringify(++currentCounter)); + locked = false; + return `${sessionId}:${currentCounter}:${rnd}`; + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/GenerateUniqueID.json b/javascriptsource/nanoflowcommons/actions/GenerateUniqueID.json new file mode 100644 index 0000000..a560d6d --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/GenerateUniqueID.json @@ -0,0 +1,5 @@ +{ + "nativeDependencies": { + "@react-native-community/async-storage": "1.12.1" + } +} diff --git a/javascriptsource/nanoflowcommons/actions/Geocode.js b/javascriptsource/nanoflowcommons/actions/Geocode.js new file mode 100644 index 0000000..818ed57 --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/Geocode.js @@ -0,0 +1,119 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; +import Geodecoder from 'react-native-geocoder'; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * Geocoding is the process of converting addresses (like a street address) into geographic coordinates (latitude and longitude), which you can use to place markers on a map, or position the map. + * @param {string} address - This field is required. + * @param {"NanoflowCommons.GeocodingProvider.Google"|"NanoflowCommons.GeocodingProvider.Geocodio"|"NanoflowCommons.GeocodingProvider.LocationIQ"|"NanoflowCommons.GeocodingProvider.MapQuest"} geocodingProvider - This field is required for use on web. + * @param {string} providerApiKey - This field is required for use on web. Note that the keys are accessible by the end users and should be protected in other ways; for example restricted domain name. + * @returns {Promise.} + */ +export async function Geocode(address, geocodingProvider, providerApiKey) { + // BEGIN USER CODE + /** + * Documentation: + * - Native: https://github.com/devfd/react-native-geocoder + * - Google: https://developers.google.com/maps/documentation/geocoding/intro#GeocodingRequests + * - Geocodio: https://www.geocod.io/docs/#geocoding + * - LocationIQ: https://locationiq.com/docs-html/index.html#search-forward-geocoding + * - MapQuest: https://developer.mapquest.com/documentation/open/geocoding-api/address/get/ + */ + if (!address) { + return Promise.reject(new Error("Input parameter 'Address' is required")); + } + if (navigator && navigator.product === "ReactNative") { + return Geodecoder.geocodeAddress(address).then(results => { + if (results.length === 0) { + return Promise.reject(new Error("No results found")); + } + return createMxObject(String(results[0].position.lat), String(results[0].position.lng)); + }); + } + if (!geocodingProvider) { + return Promise.reject(new Error("Input parameter 'Geocoding provider' is required for use on web")); + } + if (!providerApiKey) { + return Promise.reject(new Error("Input parameter 'Provider api key' is required for use on web")); + } + const url = getApiUrl(geocodingProvider, address, providerApiKey); + return fetch(url) + .then(response => response.json().catch(() => response.text().then(text => { + return Promise.reject(new Error(text)); + }))) + .then(response => getLatLong(geocodingProvider, response)) + .then(latLong => createMxObject(latLong[0], latLong[1])) + .catch(error => Promise.reject(error)); + function getApiUrl(provider, query, key) { + query = encodeURIComponent(query); + key = encodeURIComponent(key); + switch (provider) { + case "Google": + return `https://maps.googleapis.com/maps/api/geocode/json?address=${query}&key=${key}`; + case "Geocodio": + return `https://api.geocod.io/v1.3/geocode?q=${query}&api_key=${key}`; + case "LocationIQ": + return `https://eu1.locationiq.com/v1/search.php?format=json&q=${query}&key=${key}`; + case "MapQuest": + return `https://open.mapquestapi.com/geocoding/v1/address?location=${query}&key=${key}`; + } + } + function getLatLong(provider, response) { + switch (provider) { + case "Google": + if (response.status !== "OK") { + throw new Error(response.error_message); + } + return [response.results[0].geometry.location.lat, response.results[0].geometry.location.lng]; + case "Geocodio": + if (response.error) { + throw new Error(response.error); + } + if (response.results.length === 0) { + throw new Error("No results found"); + } + return [response.results[0].location.lat, response.results[0].location.lng]; + case "LocationIQ": + if (response.error) { + throw new Error(response.error); + } + if (response.length === 0) { + throw new Error("No results found"); + } + return [response[0].lat, response[0].lon]; + case "MapQuest": + if (response.info.statuscode !== 0) { + throw new Error(response.info.messages.join(", ")); + } + if (response.results.length === 0) { + throw new Error("No results found"); + } + return [response.results[0].locations[0].latLng.lat, response.results[0].locations[0].latLng.lng]; + } + } + function createMxObject(lat, long) { + return new Promise((resolve, reject) => { + mx.data.create({ + entity: "NanoflowCommons.Position", + callback: mxObject => { + mxObject.set("Latitude", lat); + mxObject.set("Longitude", long); + resolve(mxObject); + }, + error: () => { + reject(new Error("Could not create 'NanoflowCommons.Position' object to store coordinates")); + } + }); + }); + } + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/Geocode.json b/javascriptsource/nanoflowcommons/actions/Geocode.json new file mode 100644 index 0000000..aa3b0e5 --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/Geocode.json @@ -0,0 +1,5 @@ +{ + "nativeDependencies": { + "react-native-geocoder": "0.5.0" + } +} diff --git a/javascriptsource/nanoflowcommons/actions/GetCurrentLocation.js b/javascriptsource/nanoflowcommons/actions/GetCurrentLocation.js new file mode 100644 index 0000000..fd6fa3d --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/GetCurrentLocation.js @@ -0,0 +1,110 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; +import Geolocation from '@react-native-community/geolocation'; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * This action retrieves the current geographical position of a user/device. + * + * Since this can compromise privacy, the position is not available unless the user approves it. The web browser will request the permission at the first time the location is requested. When denied by the user it will not prompt a second time. + * + * On hybrid and native platforms the permission can be requested with the `RequestLocationPermission` action. + * + * Best practices: + * https://developers.google.com/web/fundamentals/native-hardware/user-location/ + * @param {Big} timeout - The maximum length of time (in milliseconds) the device is allowed to take in order to return a location. If set as empty, default value will be 30 second timeout. + * @param {Big} maximumAge - The maximum age (in milliseconds) of a possible cached position that is acceptable to return. If set to 0, it means that the device cannot use a cached position and must attempt to retrieve the real current position. By default the device will always return a cached position regardless of its age. + * @param {boolean} highAccuracy - Use a higher accuracy method to determine the current location. Setting this to false saves battery life. + * @returns {Promise.} + */ +export async function GetCurrentLocation(timeout, maximumAge, highAccuracy) { + // BEGIN USER CODE + let reactNativeModule; + let geolocationModule; + if (navigator && navigator.product === "ReactNative") { + reactNativeModule = require("react-native"); + if (!reactNativeModule) { + return Promise.reject(new Error("React Native module could not be found")); + } + if (reactNativeModule.NativeModules.RNFusedLocation) { + geolocationModule = (await import('react-native-geolocation-service')).default; + } + else if (reactNativeModule.NativeModules.RNCGeolocation) { + geolocationModule = Geolocation; + } + else { + return Promise.reject(new Error("Geolocation module could not be found")); + } + } + else if (navigator && navigator.geolocation) { + geolocationModule = navigator.geolocation; + } + else { + return Promise.reject(new Error("Geolocation module could not be found")); + } + return new Promise((resolve, reject) => { + const options = getOptions(); + geolocationModule === null || geolocationModule === void 0 ? void 0 : geolocationModule.getCurrentPosition(onSuccess, onError, options); + function onSuccess(position) { + mx.data.create({ + entity: "NanoflowCommons.Geolocation", + callback: mxObject => { + const geolocation = mapPositionToMxObject(mxObject, position); + resolve(geolocation); + }, + error: () => reject(new Error("Could not create 'NanoflowCommons.Geolocation' object to store location")) + }); + } + function onError(error) { + return reject(new Error(error.message)); + } + function getOptions() { + let timeoutNumber = timeout && Number(timeout.toString()); + const maximumAgeNumber = maximumAge && Number(maximumAge.toString()); + // If the timeout is 0 or undefined (empty), it causes a crash on iOS. + // If the timeout is undefined (empty); we set timeout to 30 sec (default timeout) + // If the timeout is 0; we set timeout to 1 hour (no timeout) + if ((reactNativeModule === null || reactNativeModule === void 0 ? void 0 : reactNativeModule.Platform.OS) === "ios") { + if (timeoutNumber === undefined) { + timeoutNumber = 30000; + } + else if (timeoutNumber === 0) { + timeoutNumber = 3600000; + } + } + return { + timeout: timeoutNumber, + maximumAge: maximumAgeNumber, + enableHighAccuracy: highAccuracy + }; + } + function mapPositionToMxObject(mxObject, position) { + mxObject.set("Timestamp", new Date(position.timestamp)); + mxObject.set("Latitude", new Big(position.coords.latitude.toFixed(8))); + mxObject.set("Longitude", new Big(position.coords.longitude.toFixed(8))); + mxObject.set("Accuracy", new Big(position.coords.accuracy.toFixed(8))); + if (position.coords.altitude != null) { + mxObject.set("Altitude", new Big(position.coords.altitude.toFixed(8))); + } + if (position.coords.altitudeAccuracy != null && position.coords.altitudeAccuracy !== -1) { + mxObject.set("AltitudeAccuracy", new Big(position.coords.altitudeAccuracy.toFixed(8))); + } + if (position.coords.heading != null && position.coords.heading !== -1) { + mxObject.set("Heading", new Big(position.coords.heading.toFixed(8))); + } + if (position.coords.speed != null && position.coords.speed !== -1) { + mxObject.set("Speed", new Big(position.coords.speed.toFixed(8))); + } + return mxObject; + } + }); + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/GetCurrentLocation.json b/javascriptsource/nanoflowcommons/actions/GetCurrentLocation.json new file mode 100644 index 0000000..9fd572c --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/GetCurrentLocation.json @@ -0,0 +1,6 @@ +{ + "nativeDependencies": { + "@react-native-community/geolocation": "2.0.2", + "react-native-geolocation-service": "5.2.0" + } +} diff --git a/javascriptsource/nanoflowcommons/actions/GetCurrentLocationMinimumAccuracy.js b/javascriptsource/nanoflowcommons/actions/GetCurrentLocationMinimumAccuracy.js new file mode 100644 index 0000000..4252667 --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/GetCurrentLocationMinimumAccuracy.js @@ -0,0 +1,143 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; +import Geolocation from '@react-native-community/geolocation'; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * This action retrieves the current geographical position of a user/device with a minimum accuracy as parameter. If a position is not acquired with minimum accuracy within a specific timeout it will retrieve the last most precise location. + * + * Since this can compromise privacy, the position is not available unless the user approves it. The web browser will request the permission at the first time the location is requested. When denied by the user it will not prompt a second time. + * + * On hybrid and native platforms the permission can be requested with the `RequestLocationPermission` action. + * + * Best practices: + * https://developers.google.com/web/fundamentals/native-hardware/user-location/ + * @param {Big} timeout - The maximum length of time (in milliseconds) the device is allowed to take in order to return a location. If set as empty, default value will be 30 second timeout. + * @param {Big} maximumAge - The maximum age (in milliseconds) of a possible cached position that is acceptable to return. If set to 0, it means that the device cannot use a cached position and must attempt to retrieve the real current position. By default the device will always return a cached position regardless of its age. + * @param {boolean} highAccuracy - Use a higher accuracy method to determine the current location. Setting this to false saves battery life. + * @param {Big} minimumAccuracy - The minimum accuracy to be received in meters. Less amount of meters, more precise is the location. + * @returns {Promise.} + */ +export async function GetCurrentLocationMinimumAccuracy(timeout, maximumAge, highAccuracy, minimumAccuracy) { + // BEGIN USER CODE + let reactNativeModule; + let geolocationModule; + if (navigator && navigator.product === "ReactNative") { + reactNativeModule = require("react-native"); + if (!reactNativeModule) { + return Promise.reject(new Error("React Native module could not be found")); + } + if (reactNativeModule.NativeModules.RNFusedLocation) { + geolocationModule = (await import('react-native-geolocation-service')).default; + } + else if (reactNativeModule.NativeModules.RNCGeolocation) { + geolocationModule = Geolocation; + } + else { + return Promise.reject(new Error("Geolocation module could not be found")); + } + } + else if (navigator && navigator.geolocation) { + geolocationModule = navigator.geolocation; + } + else { + return Promise.reject(new Error("Geolocation module could not be found")); + } + return new Promise((resolve, reject) => { + if (!geolocationModule) { + return reject(new Error("Geolocation module could not be found")); + } + const options = getOptions(); + // This action is only required while running in PWA or hybrid. + if (navigator && (!navigator.product || navigator.product !== "ReactNative")) { + // This ensures the browser will not ignore the maximumAge https://stackoverflow.com/questions/3397585/navigator-geolocation-getcurrentposition-sometimes-works-sometimes-doesnt/31916631#31916631 + geolocationModule.getCurrentPosition( + // eslint-disable-next-line @typescript-eslint/no-empty-function + () => { }, + // eslint-disable-next-line @typescript-eslint/no-empty-function + () => { }, {}); + } + const timeoutId = setTimeout(onTimeout, Number(timeout)); + const watchId = geolocationModule.watchPosition(onSuccess, onError, options); + let lastAccruedPosition; + function createGeolocationObject(position) { + mx.data.create({ + entity: "NanoflowCommons.Geolocation", + callback: mxObject => resolve(mapPositionToMxObject(mxObject, position)), + error: () => reject(new Error("Could not create 'NanoflowCommons.Geolocation' object to store location")) + }); + } + function onTimeout() { + geolocationModule === null || geolocationModule === void 0 ? void 0 : geolocationModule.clearWatch(watchId); + if (lastAccruedPosition) { + createGeolocationObject(lastAccruedPosition); + } + else { + reject(new Error("Timeout expired")); + } + } + function onSuccess(position) { + if (!minimumAccuracy || Number(minimumAccuracy) >= position.coords.accuracy) { + clearTimeout(timeoutId); + geolocationModule === null || geolocationModule === void 0 ? void 0 : geolocationModule.clearWatch(watchId); + createGeolocationObject(position); + } + else { + if (!lastAccruedPosition || position.coords.accuracy < lastAccruedPosition.coords.accuracy) { + lastAccruedPosition = position; + } + } + } + function onError(error) { + return reject(new Error(error.message)); + } + function getOptions() { + let timeoutNumber = timeout && Number(timeout.toString()); + const maximumAgeNumber = maximumAge && Number(maximumAge.toString()); + // If the timeout is 0 or undefined (empty), it causes a crash on iOS. + // If the timeout is undefined (empty); we set timeout to 30 sec (default timeout) + // If the timeout is 0; we set timeout to 1 hour (no timeout) + if ((reactNativeModule === null || reactNativeModule === void 0 ? void 0 : reactNativeModule.Platform.OS) === "ios") { + if (timeoutNumber === undefined) { + timeoutNumber = 30000; + } + else if (timeoutNumber === 0) { + timeoutNumber = 3600000; + } + } + return { + timeout: timeoutNumber, + maximumAge: maximumAgeNumber, + enableHighAccuracy: highAccuracy + }; + } + function mapPositionToMxObject(mxObject, position) { + mxObject.set("Timestamp", new Date(position.timestamp)); + mxObject.set("Latitude", new Big(position.coords.latitude.toFixed(8))); + mxObject.set("Longitude", new Big(position.coords.longitude.toFixed(8))); + mxObject.set("Accuracy", new Big(position.coords.accuracy.toFixed(8))); + if (position.coords.altitude != null) { + mxObject.set("Altitude", new Big(position.coords.altitude.toFixed(8))); + } + if (position.coords.altitudeAccuracy != null && position.coords.altitudeAccuracy !== -1) { + mxObject.set("AltitudeAccuracy", new Big(position.coords.altitudeAccuracy.toFixed(8))); + } + if (position.coords.heading != null && position.coords.heading !== -1) { + mxObject.set("Heading", new Big(position.coords.heading.toFixed(8))); + } + if (position.coords.speed != null && position.coords.speed !== -1) { + mxObject.set("Speed", new Big(position.coords.speed.toFixed(8))); + } + return mxObject; + } + }); + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/GetCurrentLocationMinimumAccuracy.json b/javascriptsource/nanoflowcommons/actions/GetCurrentLocationMinimumAccuracy.json new file mode 100644 index 0000000..9fd572c --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/GetCurrentLocationMinimumAccuracy.json @@ -0,0 +1,6 @@ +{ + "nativeDependencies": { + "@react-native-community/geolocation": "2.0.2", + "react-native-geolocation-service": "5.2.0" + } +} diff --git a/javascriptsource/nanoflowcommons/actions/GetGuid.js b/javascriptsource/nanoflowcommons/actions/GetGuid.js new file mode 100644 index 0000000..195ae99 --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/GetGuid.js @@ -0,0 +1,25 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * Get the Mendix Object GUID. + * @param {MxObject} entityObject - This field is required. + * @returns {Promise.} + */ +export async function GetGuid(entityObject) { + // BEGIN USER CODE + if (!entityObject) { + return Promise.reject(new Error("Input parameter 'Entity object' is required.")); + } + return Promise.resolve(entityObject.getGuid()); + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/GetObjectByGuid.js b/javascriptsource/nanoflowcommons/actions/GetObjectByGuid.js new file mode 100644 index 0000000..8843428 --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/GetObjectByGuid.js @@ -0,0 +1,41 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * Get a Mendix object by its GUID. + * @param {string} entity - This field is required. + * @param {string} objectGuid - This field is required. + * @returns {Promise.} + */ +export async function GetObjectByGuid(entity, objectGuid) { + // BEGIN USER CODE + if (!entity) { + return Promise.reject(new Error("Input parameter 'Entity' is required.")); + } + if (!objectGuid) { + return Promise.reject(new Error("Input parameter 'Object guid' is required.")); + } + return new Promise((resolve, reject) => { + mx.data.get({ + guid: objectGuid, + callback: object => { + if (object) { + resolve(object); + } + else { + reject(new Error("'Object guid' not found")); + } + } + }); + }); + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/GetPlatform.js b/javascriptsource/nanoflowcommons/actions/GetPlatform.js new file mode 100644 index 0000000..b65bffe --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/GetPlatform.js @@ -0,0 +1,29 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * Get the client platform (NanoflowCommons.Platform) where the action is running. + * @returns {Promise.<"NanoflowCommons.Platform.Web"|"NanoflowCommons.Platform.Native_mobile"|"NanoflowCommons.Platform.Hybrid_mobile">} + */ +export async function GetPlatform() { + // BEGIN USER CODE + if (window && window.cordova) { + return Promise.resolve("Hybrid_mobile"); + } + else if (navigator && navigator.product === "ReactNative") { + return Promise.resolve("Native_mobile"); + } + else { + return Promise.resolve("Web"); + } + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/GetRemoteUrl.js b/javascriptsource/nanoflowcommons/actions/GetRemoteUrl.js new file mode 100644 index 0000000..cd950b0 --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/GetRemoteUrl.js @@ -0,0 +1,20 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * @returns {Promise.} + */ +export async function GetRemoteUrl() { + // BEGIN USER CODE + return mx.remoteUrl; + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/GetStorageItemObject.js b/javascriptsource/nanoflowcommons/actions/GetStorageItemObject.js new file mode 100644 index 0000000..77a84f4 --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/GetStorageItemObject.js @@ -0,0 +1,101 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; +import AsyncStorage from '@react-native-community/async-storage'; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * Store a Mendix object in device storage, identified by a unique key. Can be accessed by the GetStorageItemObject action. Please note that users can clear the device storage. + * @param {string} key - This field is required. + * @param {string} entity - This field is required. + * @returns {Promise.} + */ +export async function GetStorageItemObject(key, entity) { + // BEGIN USER CODE + if (!key) { + return Promise.reject(new Error("Input parameter 'Key' is required")); + } + if (!entity) { + return Promise.reject(new Error("Input parameter 'Entity' is required")); + } + return getItem(key).then(result => { + if (result === null) { + return Promise.reject(new Error(`Storage item '${key}' does not exist`)); + } + const value = JSON.parse(result); + return getOrCreateMxObject(entity, value).then(newObject => { + const newValue = serializeMxObject(newObject); + return setItem(key, JSON.stringify(newValue)).then(() => newObject); + }); + }); + function getItem(key) { + if (navigator && navigator.product === "ReactNative") { + return AsyncStorage.getItem(key); + } + if (window) { + const value = window.localStorage.getItem(key); + return Promise.resolve(value); + } + return Promise.reject(new Error("No storage API available")); + } + function setItem(key, value) { + if (navigator && navigator.product === "ReactNative") { + return AsyncStorage.setItem(key, value); + } + if (window) { + window.localStorage.setItem(key, value); + return Promise.resolve(); + } + return Promise.reject(new Error("No storage API available")); + } + function getOrCreateMxObject(entity, value) { + return getMxObject(value.guid).then(existingObject => { + if (existingObject) { + return existingObject; + } + else { + return createMxObject(entity, value); + } + }); + } + function getMxObject(guid) { + return new Promise((resolve, reject) => { + mx.data.get({ + guid, + callback: mxObject => resolve(mxObject), + error: error => reject(error) + }); + }); + } + function createMxObject(entity, value) { + return new Promise((resolve, reject) => { + mx.data.create({ + entity, + callback: mxObject => { + Object.keys(value) + .filter(attribute => attribute !== "guid") + .forEach(attributeName => { + const attributeValue = value[attributeName]; + mxObject.set(attributeName, attributeValue); + }); + resolve(mxObject); + }, + error: () => reject(new Error(`Could not create '${entity}' object`)) + }); + }); + } + function serializeMxObject(object) { + return object.getAttributes().reduce((accumulator, attributeName) => { + accumulator[attributeName] = object.get(attributeName); + return accumulator; + }, { guid: object.getGuid() }); + } + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/GetStorageItemObject.json b/javascriptsource/nanoflowcommons/actions/GetStorageItemObject.json new file mode 100644 index 0000000..a560d6d --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/GetStorageItemObject.json @@ -0,0 +1,5 @@ +{ + "nativeDependencies": { + "@react-native-community/async-storage": "1.12.1" + } +} diff --git a/javascriptsource/nanoflowcommons/actions/GetStorageItemObjectList.js b/javascriptsource/nanoflowcommons/actions/GetStorageItemObjectList.js new file mode 100644 index 0000000..05e4aba --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/GetStorageItemObjectList.js @@ -0,0 +1,101 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; +import AsyncStorage from '@react-native-community/async-storage'; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * Retrieve a local stored list of Mendix objects identified by a unique key. When objects are the client state it will be returned, if not they will be re-created. Note: when re-creating the local Mendix object the Mendix Object ID will never be the same. + * @param {string} key - This field is required. + * @param {string} entity - This field is required. + * @returns {Promise.} + */ +export async function GetStorageItemObjectList(key, entity) { + // BEGIN USER CODE + if (!key) { + return Promise.reject(new Error("Input parameter 'Key' is required")); + } + if (!entity) { + return Promise.reject(new Error("Input parameter 'Entity' is required")); + } + return getItem(key).then(result => { + if (result === null) { + return Promise.reject(new Error(`Storage item '${key}' does not exist`)); + } + const values = JSON.parse(result); + return Promise.all(values.map(value => getOrCreateMxObject(entity, value))).then(newObjects => { + const newValues = newObjects.map(newObject => serializeMxObject(newObject)); + return setItem(key, JSON.stringify(newValues)).then(() => newObjects); + }); + }); + function getItem(key) { + if (navigator && navigator.product === "ReactNative") { + return AsyncStorage.getItem(key); + } + if (window) { + const value = window.localStorage.getItem(key); + return Promise.resolve(value); + } + return Promise.reject(new Error("No storage API available")); + } + function setItem(key, value) { + if (navigator && navigator.product === "ReactNative") { + return AsyncStorage.setItem(key, value); + } + if (window) { + window.localStorage.setItem(key, value); + return Promise.resolve(); + } + return Promise.reject(new Error("No storage API available")); + } + function getOrCreateMxObject(entity, value) { + return getMxObject(value.guid).then(existingObject => { + if (existingObject) { + return existingObject; + } + else { + return createMxObject(entity, value); + } + }); + } + function getMxObject(guid) { + return new Promise((resolve, reject) => { + mx.data.get({ + guid, + callback: mxObject => resolve(mxObject), + error: error => reject(error) + }); + }); + } + function createMxObject(entity, value) { + return new Promise((resolve, reject) => { + mx.data.create({ + entity, + callback: mxObject => { + Object.keys(value) + .filter(attribute => attribute !== "guid") + .forEach(attributeName => { + const attributeValue = value[attributeName]; + mxObject.set(attributeName, attributeValue); + }); + resolve(mxObject); + }, + error: () => reject(new Error(`Could not create '${entity}' object`)) + }); + }); + } + function serializeMxObject(object) { + return object.getAttributes().reduce((accumulator, attributeName) => { + accumulator[attributeName] = object.get(attributeName); + return accumulator; + }, { guid: object.getGuid() }); + } + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/GetStorageItemObjectList.json b/javascriptsource/nanoflowcommons/actions/GetStorageItemObjectList.json new file mode 100644 index 0000000..a560d6d --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/GetStorageItemObjectList.json @@ -0,0 +1,5 @@ +{ + "nativeDependencies": { + "@react-native-community/async-storage": "1.12.1" + } +} diff --git a/javascriptsource/nanoflowcommons/actions/GetStorageItemString.js b/javascriptsource/nanoflowcommons/actions/GetStorageItemString.js new file mode 100644 index 0000000..8c0d212 --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/GetStorageItemString.js @@ -0,0 +1,42 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; +import AsyncStorage from '@react-native-community/async-storage'; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * Retrieve a local stored string value identified by a unique key. This could be set via the SetStorageItemString JavaScript action. + * + * @param {string} key - This field is required. + * @returns {Promise.} + */ +export async function GetStorageItemString(key) { + // BEGIN USER CODE + if (!key) { + return Promise.reject(new Error("Input parameter 'Key' is required")); + } + return getItem(key).then(result => { + if (result === null) { + return Promise.reject(new Error(`Storage item '${key}' does not exist`)); + } + return result; + }); + async function getItem(key) { + if (navigator && navigator.product === "ReactNative") { + return AsyncStorage.getItem(key); + } + if (window) { + const value = window.localStorage.getItem(key); + return Promise.resolve(value); + } + return Promise.reject(new Error("No storage API available")); + } + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/GetStorageItemString.json b/javascriptsource/nanoflowcommons/actions/GetStorageItemString.json new file mode 100644 index 0000000..a560d6d --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/GetStorageItemString.json @@ -0,0 +1,5 @@ +{ + "nativeDependencies": { + "@react-native-community/async-storage": "1.12.1" + } +} diff --git a/javascriptsource/nanoflowcommons/actions/GetStraightLineDistance.js b/javascriptsource/nanoflowcommons/actions/GetStraightLineDistance.js new file mode 100644 index 0000000..ef03b45 --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/GetStraightLineDistance.js @@ -0,0 +1,56 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +function deg2rad(deg) { + return deg.times(Math.PI / 180); +} +function kmToStatueMile(km) { + return km.div(1.609344); +} +function kmToNauticalMile(km) { + return km.div(1.852); +} +// END EXTRA CODE + +/** + * @param {Big} latitudePoint1 + * @param {Big} longitudePoint1 + * @param {Big} latitudePoint2 + * @param {Big} longitudePoint2 + * @param {"NanoflowCommons.Enum_DistanceUnit.KILOMETER"|"NanoflowCommons.Enum_DistanceUnit.STATUTE_MILE"|"NanoflowCommons.Enum_DistanceUnit.NAUTICAL_MILE"} unit + * @returns {Promise.} + */ +export async function GetStraightLineDistance(latitudePoint1, longitudePoint1, latitudePoint2, longitudePoint2, unit) { + // BEGIN USER CODE + const R = 6371; // Radius of the earth in km + const dLat = deg2rad(latitudePoint2.minus(latitudePoint1)).toNumber(); + const dLon = deg2rad(longitudePoint2.minus(longitudePoint1)).toNumber(); + const a = Math.sin(dLat / 2) * Math.sin(dLat / 2) + + Math.cos(deg2rad(latitudePoint1).toNumber()) * + Math.cos(deg2rad(latitudePoint2).toNumber()) * + Math.sin(dLon / 2) * + Math.sin(dLon / 2); + const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); + const d = new Big(R * c); // Distance in km + switch (unit) { + case "KILOMETER": { + return d; + } + case "STATUTE_MILE": { + return kmToStatueMile(d); + } + case "NAUTICAL_MILE": { + return kmToNauticalMile(d); + } + default: + throw new Error(`Unknown unit: ${unit}`); + } + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/HideProgress.js b/javascriptsource/nanoflowcommons/actions/HideProgress.js new file mode 100644 index 0000000..50a0e95 --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/HideProgress.js @@ -0,0 +1,26 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * Hides default progress bar + * @param {Big} identifier - Identifier of ui which should be hidden. This param is required + * @returns {Promise.} + */ +export async function HideProgress(identifier) { + // BEGIN USER CODE + if (identifier == null) { + return Promise.reject(new Error("Input parameter 'Identifier' is required")); + } + mx.ui.hideProgress(Number(identifier)); + return Promise.resolve(); + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/IsConnectedToServer.js b/javascriptsource/nanoflowcommons/actions/IsConnectedToServer.js new file mode 100644 index 0000000..2717e2c --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/IsConnectedToServer.js @@ -0,0 +1,27 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * @returns {Promise.} + */ +export async function IsConnectedToServer() { + // BEGIN USER CODE + try { + const response = await fetch(mx.remoteUrl); + return response.ok; + } + catch (err) { + console.error(err); + return false; + } + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/LICENSE b/javascriptsource/nanoflowcommons/actions/LICENSE new file mode 100644 index 0000000..564e565 --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/LICENSE @@ -0,0 +1,202 @@ +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2019 Mendix BV + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + \ No newline at end of file diff --git a/javascriptsource/nanoflowcommons/actions/NavigateTo.js b/javascriptsource/nanoflowcommons/actions/NavigateTo.js new file mode 100644 index 0000000..8944d1c --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/NavigateTo.js @@ -0,0 +1,72 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * Opens a navigation application on your device or a web browser showing Google Maps directions. + * @param {string} location - This field is required. + * @returns {Promise.} + */ +export async function NavigateTo(location) { + // BEGIN USER CODE + if (!location) { + return Promise.reject(new Error("Input parameter 'Location' is required")); + } + location = encodeURIComponent(location); + const iosUrl = `maps://maps.apple.com/?daddr=${location}`; + const androidUrl = `google.navigation:q=${location}`; + const webUrl = `https://maps.google.com/maps?daddr=${location}`; + // Native platform + if (navigator && navigator.product === "ReactNative") { + const Linking = require("react-native").Linking; + const Platform = require("react-native").Platform; + const url = Platform.select({ + ios: iosUrl, + default: androidUrl + }); + return Linking.canOpenURL(url).then(supported => { + if (!supported) { + return false; + } + return Linking.openURL(url).then(() => true); + }); + } + // Hybrid or mobile web platform + if (window && window.navigator.userAgent) { + // iOS platform + if (/iPad|iPhone|iPod/i.test(window.navigator.userAgent)) { + openUrl(iosUrl); + return Promise.resolve(true); + } + // Android platform + if (/android|sink/i.test(window.navigator.userAgent)) { + openUrl(androidUrl); + return Promise.resolve(true); + } + } + // Desktop web or other platform + if (window) { + window.location.href = webUrl; + return Promise.resolve(true); + } + return Promise.resolve(false); + function openUrl(url) { + // Hybrid platform + if (window && window.cordova) { + window.open(url, "_system"); + } + // Mobile web platform + if (window) { + window.location.href = url; + } + } + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/OpenMap.js b/javascriptsource/nanoflowcommons/actions/OpenMap.js new file mode 100644 index 0000000..be6ebc1 --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/OpenMap.js @@ -0,0 +1,72 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * Opens a map application on your device or a web browser showing Google Maps. + * @param {string} location - Can be either address, latitude/longitude (51.906, 4.488) or interest point.This field is required. + * @returns {Promise.} + */ +export async function OpenMap(location) { + // BEGIN USER CODE + if (!location) { + return Promise.reject(new Error("Input parameter 'Location' is required")); + } + location = encodeURIComponent(location); + const iosUrl = `maps://maps.apple.com/?q=${location}`; + const androidUrl = `geo:0,0?q=${location}`; + const webUrl = `https://maps.google.com/maps?q=${location}`; + // Native platform + if (navigator && navigator.product === "ReactNative") { + const Linking = require("react-native").Linking; + const Platform = require("react-native").Platform; + const url = Platform.select({ + ios: iosUrl, + default: androidUrl + }); + return Linking.canOpenURL(url).then(supported => { + if (!supported) { + return false; + } + return Linking.openURL(url).then(() => true); + }); + } + // Hybrid or mobile web platform + if (window && window.navigator.userAgent) { + // iOS platform + if (/iPad|iPhone|iPod/i.test(window.navigator.userAgent)) { + openUrl(iosUrl); + return Promise.resolve(true); + } + // Android platform + if (/android|sink/i.test(window.navigator.userAgent)) { + openUrl(androidUrl); + return Promise.resolve(true); + } + } + // Desktop web or other platform + if (window) { + window.location.href = webUrl; + return Promise.resolve(true); + } + return Promise.resolve(false); + function openUrl(url) { + // Hybrid platform + if (window && window.cordova) { + window.open(url, "_system"); + } + // Mobile web platform + if (window) { + window.location.href = url; + } + } + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/OpenURL.js b/javascriptsource/nanoflowcommons/actions/OpenURL.js new file mode 100644 index 0000000..e96b3bd --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/OpenURL.js @@ -0,0 +1,45 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * Opens the provided URL in the web browser. + * @param {string} url - This field is required. + * @returns {Promise.} + */ +export async function OpenURL(url) { + // BEGIN USER CODE + if (!url) { + return Promise.reject(new Error("Input parameter 'Url' is required")); + } + // Native platform + if (navigator && navigator.product === "ReactNative") { + const Linking = require("react-native").Linking; + return Linking.canOpenURL(url).then(supported => { + if (!supported) { + return false; + } + return Linking.openURL(url).then(() => true); + }); + } + // Hybrid platform + if (window && window.cordova) { + window.open(url, "_system"); + return Promise.resolve(true); + } + // Web platform + if (window) { + window.location.href = url; + return Promise.resolve(true); + } + return Promise.resolve(false); + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/RefreshEntity.js b/javascriptsource/nanoflowcommons/actions/RefreshEntity.js new file mode 100644 index 0000000..973ddbc --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/RefreshEntity.js @@ -0,0 +1,30 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * Updates an entity without needing to refresh the whole page via passing an entity. + * @param {string} entityToRefresh - Entity which will be refreshed. + * @returns {Promise.} + */ +export async function RefreshEntity(entityToRefresh) { + // BEGIN USER CODE + if (!entityToRefresh) { + return Promise.reject(new Error("EntityToRefresh parameter is required")); + } + return new Promise(resolve => { + mx.data.update({ + entity: entityToRefresh, + callback: () => resolve(true) + }); + }); + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/RefreshObject.js b/javascriptsource/nanoflowcommons/actions/RefreshObject.js new file mode 100644 index 0000000..6216ae4 --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/RefreshObject.js @@ -0,0 +1,30 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * Updates an entity object without needing to refresh the whole page via passing an entity object. + * @param {MxObject} objectToRefresh - Object which will be refreshed. + * @returns {Promise.} + */ +export async function RefreshObject(objectToRefresh) { + // BEGIN USER CODE + if (!objectToRefresh) { + return Promise.reject(new Error("ObjectToRefresh parameter is required")); + } + return new Promise(resolve => { + mx.data.update({ + guid: objectToRefresh.getGuid(), + callback: () => resolve(true) + }); + }); + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/Reload.js b/javascriptsource/nanoflowcommons/actions/Reload.js new file mode 100644 index 0000000..363e682 --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/Reload.js @@ -0,0 +1,25 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * Reloads web and native applications. + * @returns {Promise.} + */ +export async function Reload() { + // BEGIN USER CODE + mx.reload(); + return new Promise(() => { + // Never resolve this pormise to ensure that the next action in the nanoflow (if any) + // will not be executed before the actual reload is happended. + }); + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/RemoveStorageItem.js b/javascriptsource/nanoflowcommons/actions/RemoveStorageItem.js new file mode 100644 index 0000000..e0b9d2d --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/RemoveStorageItem.js @@ -0,0 +1,36 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; +import AsyncStorage from '@react-native-community/async-storage'; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * Remove a content identified by a unique key. This could be set via any of the Set Storage Item JavaScript actions + * @param {string} key - This field is required. + * @returns {Promise.} + */ +export async function RemoveStorageItem(key) { + // BEGIN USER CODE + if (!key) { + return Promise.reject(new Error("Input parameter 'Key' is required")); + } + return removeItem(key).then(() => true); + function removeItem(key) { + if (navigator && navigator.product === "ReactNative") { + return AsyncStorage.removeItem(key); + } + if (window) { + window.localStorage.removeItem(key); + return Promise.resolve(); + } + return Promise.reject(new Error("No storage API available")); + } + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/RemoveStorageItem.json b/javascriptsource/nanoflowcommons/actions/RemoveStorageItem.json new file mode 100644 index 0000000..a560d6d --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/RemoveStorageItem.json @@ -0,0 +1,5 @@ +{ + "nativeDependencies": { + "@react-native-community/async-storage": "1.12.1" + } +} diff --git a/javascriptsource/nanoflowcommons/actions/RequestLocationPermission.js b/javascriptsource/nanoflowcommons/actions/RequestLocationPermission.js new file mode 100644 index 0000000..9867ad6 --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/RequestLocationPermission.js @@ -0,0 +1,129 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; +import Geolocation from '@react-native-community/geolocation'; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * On the native platform a request for permission should be made before the `GetCurrentLocation` action would work. + * @returns {Promise.} + */ +export async function RequestLocationPermission() { + // BEGIN USER CODE + var _a; + let reactNativeModule; + let geolocationModule; + const hasPermissionIOS = async () => { + const openSetting = () => { + reactNativeModule === null || reactNativeModule === void 0 ? void 0 : reactNativeModule.Linking.openSettings().catch(() => { + reactNativeModule === null || reactNativeModule === void 0 ? void 0 : reactNativeModule.Alert.alert("Unable to open settings."); + }); + }; + return geolocationModule + .requestAuthorization("whenInUse") + .then((status) => { + if (status === "granted") { + return true; + } + if (status === "denied") { + reactNativeModule === null || reactNativeModule === void 0 ? void 0 : reactNativeModule.Alert.alert("Location permission denied."); + } + if (status === "disabled") { + reactNativeModule === null || reactNativeModule === void 0 ? void 0 : reactNativeModule.Alert.alert("Location Services must be enabled to determine your location.", "", [ + { text: "Go to Settings", onPress: openSetting }, + { + text: "Don't Use Location" + } + ]); + } + return false; + }); + }; + const hasPermissionAndroid = async () => { + var _a, _b; + if (typeof ((_a = reactNativeModule === null || reactNativeModule === void 0 ? void 0 : reactNativeModule.Platform) === null || _a === void 0 ? void 0 : _a.Version) === "number" && ((_b = reactNativeModule === null || reactNativeModule === void 0 ? void 0 : reactNativeModule.Platform) === null || _b === void 0 ? void 0 : _b.Version) < 23) { + return true; + } + const androidLocationPermission = reactNativeModule === null || reactNativeModule === void 0 ? void 0 : reactNativeModule.PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION; + if (!androidLocationPermission) { + return false; + } + return reactNativeModule === null || reactNativeModule === void 0 ? void 0 : reactNativeModule.PermissionsAndroid.check(androidLocationPermission).then(hasPermission => { + var _a; + return hasPermission + ? true + : (_a = reactNativeModule === null || reactNativeModule === void 0 ? void 0 : reactNativeModule.PermissionsAndroid) === null || _a === void 0 ? void 0 : _a.request(androidLocationPermission).then(status => { + if (status === (reactNativeModule === null || reactNativeModule === void 0 ? void 0 : reactNativeModule.PermissionsAndroid.RESULTS.GRANTED)) { + return true; + } + if (status === (reactNativeModule === null || reactNativeModule === void 0 ? void 0 : reactNativeModule.PermissionsAndroid.RESULTS.DENIED)) { + reactNativeModule.ToastAndroid.show("Location permission denied by user.", reactNativeModule.ToastAndroid.LONG); + } + else if (status === (reactNativeModule === null || reactNativeModule === void 0 ? void 0 : reactNativeModule.PermissionsAndroid.RESULTS.NEVER_ASK_AGAIN)) { + reactNativeModule.ToastAndroid.show("Location permission revoked by user.", reactNativeModule.ToastAndroid.LONG); + } + return false; + }); + }); + }; + const hasLocationPermission = async () => { + if ((reactNativeModule === null || reactNativeModule === void 0 ? void 0 : reactNativeModule.Platform.OS) === "ios") { + const hasPermission = await hasPermissionIOS(); + return hasPermission; + } + if ((reactNativeModule === null || reactNativeModule === void 0 ? void 0 : reactNativeModule.Platform.OS) === "android") { + const hasPermission = await hasPermissionAndroid(); + return hasPermission !== null && hasPermission !== void 0 ? hasPermission : false; + } + return Promise.reject(new Error("Unsupported platform")); + }; + const hasLocationPermissionForOldLibrary = async () => { + if ((reactNativeModule === null || reactNativeModule === void 0 ? void 0 : reactNativeModule.Platform.OS) === "android") { + const locationPermission = reactNativeModule.PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION; + return reactNativeModule.PermissionsAndroid.check(locationPermission).then(hasPermission => hasPermission + ? true + : reactNativeModule === null || reactNativeModule === void 0 ? void 0 : reactNativeModule.PermissionsAndroid.request(locationPermission).then(status => status === (reactNativeModule === null || reactNativeModule === void 0 ? void 0 : reactNativeModule.PermissionsAndroid.RESULTS.GRANTED))); + } + else if (geolocationModule && geolocationModule.requestAuthorization) { + try { + geolocationModule.requestAuthorization(); + return Promise.resolve(true); + } + catch (error) { + return Promise.reject(error); + } + } + return false; + }; + if (navigator && navigator.product === "ReactNative") { + reactNativeModule = require("react-native"); + if (!reactNativeModule) { + return Promise.reject(new Error("React Native module could not be found")); + } + if (reactNativeModule.NativeModules.RNFusedLocation) { + geolocationModule = (await import('react-native-geolocation-service')).default; + return hasLocationPermission(); + } + else if (reactNativeModule.NativeModules.RNCGeolocation) { + geolocationModule = Geolocation; + return (_a = (await hasLocationPermissionForOldLibrary())) !== null && _a !== void 0 ? _a : false; + } + else { + return Promise.reject(new Error("Geolocation module could not be found")); + } + } + else if (navigator && navigator.geolocation) { + return Promise.reject(new Error("No permission request for location is required for web/hybrid platform")); + } + else { + return Promise.reject(new Error("Geolocation module could not be found")); + } + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/RequestLocationPermission.json b/javascriptsource/nanoflowcommons/actions/RequestLocationPermission.json new file mode 100644 index 0000000..9fd572c --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/RequestLocationPermission.json @@ -0,0 +1,6 @@ +{ + "nativeDependencies": { + "@react-native-community/geolocation": "2.0.2", + "react-native-geolocation-service": "5.2.0" + } +} diff --git a/javascriptsource/nanoflowcommons/actions/ReverseGeocode.js b/javascriptsource/nanoflowcommons/actions/ReverseGeocode.js new file mode 100644 index 0000000..5da0cce --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/ReverseGeocode.js @@ -0,0 +1,109 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; +import Geodecoder from 'react-native-geocoder'; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * Reverse geocoding is the process of converting geographic coordinates (latitude and longitude) into a human-readable address. + * @param {string} latitude - This field is required. + * @param {string} longitude - This field is required. + * @param {"NanoflowCommons.GeocodingProvider.Google"|"NanoflowCommons.GeocodingProvider.Geocodio"|"NanoflowCommons.GeocodingProvider.LocationIQ"|"NanoflowCommons.GeocodingProvider.MapQuest"} geocodingProvider - This field is required for use on web. + * @param {string} providerApiKey - This field is required for use on web. Note that the keys are accessible by the end users and should be protected in other ways; for example restricted domain name. + * @returns {Promise.} + */ +export async function ReverseGeocode(latitude, longitude, geocodingProvider, providerApiKey) { + // BEGIN USER CODE + /** + * Documentation: + * - Native: https://github.com/devfd/react-native-geocoder + * - Google: https://developers.google.com/maps/documentation/geocoding/intro#ReverseGeocoding + * - Geocodio: https://www.geocod.io/docs/#reverse-geocoding + * - LocationIQ: https://locationiq.com/docs-html/index.html#reverse-geocoding + * - MapQuest: https://developer.mapquest.com/documentation/open/geocoding-api/address/get/ + */ + if (!latitude) { + return Promise.reject(new Error("Input parameter 'Latitude' is required")); + } + if (!longitude) { + return Promise.reject(new Error("Input parameter 'Longitude' is required")); + } + if (navigator && navigator.product === "ReactNative") { + const position = { lat: Number(latitude), lng: Number(longitude) }; + return Geodecoder.geocodePosition(position).then(results => { + if (results.length === 0) { + return Promise.reject(new Error("No results found")); + } + return results[0].formattedAddress; + }); + } + if (!geocodingProvider) { + return Promise.reject(new Error("Input parameter 'Geocoding provider' is required for use on web")); + } + if (!providerApiKey) { + return Promise.reject(new Error("Input parameter 'Provider api key' is required for use on web")); + } + latitude = encodeURIComponent(latitude); + longitude = encodeURIComponent(longitude); + providerApiKey = encodeURIComponent(providerApiKey); + const url = getApiUrl(geocodingProvider, latitude, longitude, providerApiKey); + return fetch(url) + .then(response => response.json().catch(() => response.text().then(text => { + return Promise.reject(new Error(text)); + }))) + .then(response => getAddress(geocodingProvider, response)) + .catch(error => Promise.reject(error)); + function getApiUrl(provider, lat, long, key) { + switch (provider) { + case "Google": + return `https://maps.googleapis.com/maps/api/geocode/json?latlng=${lat},${long}&key=${key}`; + case "Geocodio": + return `https://api.geocod.io/v1.3/reverse?q=${lat},${long}&api_key=${key}`; + case "LocationIQ": + return `https://eu1.locationiq.com/v1/reverse.php?format=json&lat=${lat}&lon=${long}&key=${key}`; + case "MapQuest": + return `https://www.mapquestapi.com/geocoding/v1/reverse?location=${lat},${long}&key=${key}`; + } + } + function getAddress(provider, response) { + switch (provider) { + case "Google": + if (response.status !== "OK") { + throw new Error(response.error_message); + } + return response.results[0].formatted_address; + case "Geocodio": + if (response.error) { + throw new Error(response.error); + } + if (response.results.length === 0) { + throw new Error("No results found"); + } + return response.results[0].formatted_address; + case "LocationIQ": + if (response.error) { + throw new Error(response.error); + } + return response.display_name; + case "MapQuest": + if (response.info.statuscode !== 0) { + throw new Error(response.info.messages.join(", ")); + } + if (response.results.length === 0) { + throw new Error("No results found"); + } + const location = response.results[0].locations[0]; + const city = location.adminArea5; + const country = location.adminArea1; + return `${location.street}, ${location.postalCode} ${city}, ${country}`; + } + } + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/ReverseGeocode.json b/javascriptsource/nanoflowcommons/actions/ReverseGeocode.json new file mode 100644 index 0000000..aa3b0e5 --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/ReverseGeocode.json @@ -0,0 +1,5 @@ +{ + "nativeDependencies": { + "react-native-geocoder": "0.5.0" + } +} diff --git a/javascriptsource/nanoflowcommons/actions/SendTextMessage.js b/javascriptsource/nanoflowcommons/actions/SendTextMessage.js new file mode 100644 index 0000000..e83fb07 --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/SendTextMessage.js @@ -0,0 +1,46 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * Launches the text messaging app on your device. + * @param {string} phoneNumber - This field is required. + * @returns {Promise.} + */ +export async function SendTextMessage(phoneNumber) { + // BEGIN USER CODE + if (!phoneNumber) { + return Promise.reject(new Error("Input parameter 'Phone number' is required")); + } + const url = `sms:${encodeURI(phoneNumber)}`; + // Native platform + if (navigator && navigator.product === "ReactNative") { + const Linking = require("react-native").Linking; + return Linking.canOpenURL(url).then(supported => { + if (!supported) { + return false; + } + return Linking.openURL(url).then(() => true); + }); + } + // Hybrid platform + if (window && window.cordova) { + window.open(url, "_system"); + return Promise.resolve(true); + } + // Web platform + if (window) { + window.location.href = url; + return Promise.resolve(true); + } + return Promise.resolve(false); + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/SetStorageItemObject.js b/javascriptsource/nanoflowcommons/actions/SetStorageItemObject.js new file mode 100644 index 0000000..f4ecff9 --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/SetStorageItemObject.js @@ -0,0 +1,47 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; +import AsyncStorage from '@react-native-community/async-storage'; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * Store a Mendix object in device storage, identified by a unique key. Can be accesed by the GetStargeItemObject action. Please note that users can clear the device storage. + * @param {string} key - This field is required. + * @param {MxObject} value - This field is required. + * @returns {Promise.} + */ +export async function SetStorageItemObject(key, value) { + // BEGIN USER CODE + if (!key) { + return Promise.reject(new Error("Input parameter 'Key' is required")); + } + if (!value) { + return Promise.reject(new Error("Input parameter 'Value' is required")); + } + const serializedObject = serializeMxObject(value); + return setItem(key, JSON.stringify(serializedObject)); + function setItem(key, value) { + if (navigator && navigator.product === "ReactNative") { + return AsyncStorage.setItem(key, value); + } + if (window) { + window.localStorage.setItem(key, value); + return Promise.resolve(); + } + return Promise.reject(new Error("No storage API available")); + } + function serializeMxObject(object) { + return object.getAttributes().reduce((accumulator, attributeName) => { + accumulator[attributeName] = object.get(attributeName); + return accumulator; + }, { guid: object.getGuid() }); + } + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/SetStorageItemObject.json b/javascriptsource/nanoflowcommons/actions/SetStorageItemObject.json new file mode 100644 index 0000000..a560d6d --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/SetStorageItemObject.json @@ -0,0 +1,5 @@ +{ + "nativeDependencies": { + "@react-native-community/async-storage": "1.12.1" + } +} diff --git a/javascriptsource/nanoflowcommons/actions/SetStorageItemObjectList.js b/javascriptsource/nanoflowcommons/actions/SetStorageItemObjectList.js new file mode 100644 index 0000000..004a1d3 --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/SetStorageItemObjectList.js @@ -0,0 +1,47 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; +import AsyncStorage from '@react-native-community/async-storage'; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * Store a list of Mendix objects in device storage, identified by a unique key. Can be accessed by the GetStorageItemObject action. Please note that users can clear the device storage. + * @param {string} key - This field is required. + * @param {MxObject[]} value - This field is required. + * @returns {Promise.} + */ +export async function SetStorageItemObjectList(key, value) { + // BEGIN USER CODE + if (!key) { + return Promise.reject(new Error("Input parameter 'Key' is required")); + } + if (!value) { + return Promise.reject(new Error("Input parameter 'Value' is required")); + } + const serializedObjects = value.map(serializeMxObject); + return setItem(key, JSON.stringify(serializedObjects)); + function setItem(key, value) { + if (navigator && navigator.product === "ReactNative") { + return AsyncStorage.setItem(key, value); + } + if (window) { + window.localStorage.setItem(key, value); + return Promise.resolve(); + } + return Promise.reject(new Error("No storage API available")); + } + function serializeMxObject(object) { + return object.getAttributes().reduce((accumulator, attributeName) => { + accumulator[attributeName] = object.get(attributeName); + return accumulator; + }, { guid: object.getGuid() }); + } + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/SetStorageItemObjectList.json b/javascriptsource/nanoflowcommons/actions/SetStorageItemObjectList.json new file mode 100644 index 0000000..a560d6d --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/SetStorageItemObjectList.json @@ -0,0 +1,5 @@ +{ + "nativeDependencies": { + "@react-native-community/async-storage": "1.12.1" + } +} diff --git a/javascriptsource/nanoflowcommons/actions/SetStorageItemString.js b/javascriptsource/nanoflowcommons/actions/SetStorageItemString.js new file mode 100644 index 0000000..7c0460a --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/SetStorageItemString.js @@ -0,0 +1,40 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; +import AsyncStorage from '@react-native-community/async-storage'; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * Store a string value in the device storage, identified by a unique key. Can be accessed by the GetStorageItemObject action. Please note that users can clear the device storage. + * @param {string} key - This field is required. + * @param {string} value - This field is required. + * @returns {Promise.} + */ +export async function SetStorageItemString(key, value) { + // BEGIN USER CODE + if (!key) { + return Promise.reject(new Error("Input parameter 'Key' is required")); + } + if (!value) { + return Promise.reject(new Error("Input parameter 'Value' is required")); + } + return setItem(key, value); + function setItem(key, value) { + if (navigator && navigator.product === "ReactNative") { + return AsyncStorage.setItem(key, value); + } + if (window) { + window.localStorage.setItem(key, value); + return Promise.resolve(); + } + return Promise.reject(new Error("No storage API available")); + } + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/SetStorageItemString.json b/javascriptsource/nanoflowcommons/actions/SetStorageItemString.json new file mode 100644 index 0000000..a560d6d --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/SetStorageItemString.json @@ -0,0 +1,5 @@ +{ + "nativeDependencies": { + "@react-native-community/async-storage": "1.12.1" + } +} diff --git a/javascriptsource/nanoflowcommons/actions/Share.js b/javascriptsource/nanoflowcommons/actions/Share.js new file mode 100644 index 0000000..dd18881 --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/Share.js @@ -0,0 +1,58 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * Action to invoke the native sharing mechanism of the device. + * @param {string} url - The url to share. + * @param {string} text - The text to share. + * @param {string} title - An optional title for the message or url to share. Only some share targets use this value. + * @returns {Promise.} + */ +export async function Share(url, text, title) { + // BEGIN USER CODE + if (!text && !url) { + return Promise.reject(new Error("It is required to provide at least one of input parameters 'Text' and 'Url'")); + } + // Native platform + // Documentation https://facebook.github.io/react-native/docs/share + if (navigator && navigator.product === "ReactNative") { + const RNShare = require("react-native").Share; + const content = url && text ? { message: text + "\n" + url, title } : url ? { url, title } : { message: text, title }; + return RNShare.share(content).then(result => { + if (result.action === RNShare.dismissedAction) { + return false; + } + return true; + }); + } + // Web platform + // Documentation https://developer.mozilla.org/en-US/docs/Web/API/Navigator/share + if (navigator && navigator.share) { + return navigator.share({ url, text, title }).then(() => true); + } + // Hybrid platform + // Documentation https://github.com/EddyVerbruggen/SocialSharing-PhoneGap-Plugin + if (window && window.plugins && window.plugins.socialsharing) { + return new Promise((resolve, reject) => { + window.plugins.socialsharing.shareWithOptions({ + message: text, + subject: title, + url + }, result => resolve(result.completed), errorMessage => reject(new Error(errorMessage))); + }); + } + if (document && document.location && document.location.protocol === "http:") { + return Promise.reject(new Error("This action requires a secure https: connection")); + } + return Promise.reject(new Error("This action is not supported by this browser")); + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/ShowConfirmation.js b/javascriptsource/nanoflowcommons/actions/ShowConfirmation.js new file mode 100644 index 0000000..03e26d7 --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/ShowConfirmation.js @@ -0,0 +1,50 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * Shows a confirmation dialog during the execution of a nanoflow, to make perform actions based on the user input. + * @param {string} titleCaption - Set to empty to use default text 'Confirmation'. (Only for native) + * @param {string} question - This field is required. + * @param {string} cancelButtonCaption - Set to empty to use default text 'Cancel'. + * @param {string} proceedButtonCaption - Set to empty to use default text 'OK'. + * @returns {Promise.} + */ +export async function ShowConfirmation(titleCaption, question, cancelButtonCaption, proceedButtonCaption) { + // BEGIN USER CODE + if (!question) { + return Promise.reject(new Error("Input parameter 'Question' is required")); + } + const cancel = cancelButtonCaption || "Cancel"; + const proceed = proceedButtonCaption || "OK"; + const title = titleCaption || "Confirmation"; + // Native platform + if (navigator && navigator.product === "ReactNative") { + const Alert = require("react-native").Alert; + return new Promise(resolve => { + Alert.alert(title, question, [ + { text: cancel, onPress: () => resolve(false), style: "cancel" }, + { text: proceed, onPress: () => resolve(true) } + ]); + }); + } + // Other platforms + return new Promise(resolve => { + mx.ui.confirmation({ + content: question, + proceed, + cancel, + handler: () => resolve(true), + onCancel: () => resolve(false) + }); + }); + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/ShowProgress.js b/javascriptsource/nanoflowcommons/actions/ShowProgress.js new file mode 100644 index 0000000..990f9dd --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/ShowProgress.js @@ -0,0 +1,27 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * Shows default progress bar + * @param {string} message - The text to show while loading. + * @param {boolean} blocking - Block the user interface immediately. + * @returns {Promise.} + */ +export async function ShowProgress(message, blocking) { + // BEGIN USER CODE + const id = mx.ui.showProgress(message, blocking); + if (id !== undefined) { + return Promise.resolve(new Big(id)); + } + return Promise.reject(new Error("Could not open the loading dialog")); + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/SignIn.js b/javascriptsource/nanoflowcommons/actions/SignIn.js new file mode 100644 index 0000000..ebb6bfd --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/SignIn.js @@ -0,0 +1,36 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * Tries to login using a username and password. + * + * Returns an HTTP response status code, for example: + * - 200 when the login succeeds + * - 401 when the entered username or password is incorrect + * - 0 when the network connection is unavailable + * + * @param {string} username - This field is required. + * @param {string} password - This field is required. + * @returns {Promise.} + */ +export async function SignIn(username, password) { + // BEGIN USER CODE + if (!username || !password) { + return Promise.resolve(new Big(401)); + } + return new Promise(resolve => { + const onSuccess = () => resolve(new Big(200)); + const onError = (error) => resolve(new Big(error.status)); + mx.login(username, password, onSuccess, onError); + }); + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/SignOut.js b/javascriptsource/nanoflowcommons/actions/SignOut.js new file mode 100644 index 0000000..e6652ad --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/SignOut.js @@ -0,0 +1,28 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * If the user is logged in, logs out the user and restarts the client. + * + * If the user is not logged in, the return value is false + * + * @returns {Promise.} + */ +export async function SignOut() { + // BEGIN USER CODE + if (!mx.session.isGuest()) { + mx.logout(); + return Promise.resolve(true); + } + return Promise.resolve(false); + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/StorageItemExists.js b/javascriptsource/nanoflowcommons/actions/StorageItemExists.js new file mode 100644 index 0000000..6ce9b48 --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/StorageItemExists.js @@ -0,0 +1,36 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; +import AsyncStorage from '@react-native-community/async-storage'; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * Check if an item exists in a device storage, identified by a unique key. The value could be set by a Set Storage Item action. + * @param {string} key - This field is required. + * @returns {Promise.} + */ +export async function StorageItemExists(key) { + // BEGIN USER CODE + if (!key) { + return Promise.reject(new Error("Input parameter 'Key' is required")); + } + return getItem(key).then(result => result !== null); + function getItem(key) { + if (navigator && navigator.product === "ReactNative") { + return AsyncStorage.getItem(key); + } + if (window) { + const value = window.localStorage.getItem(key); + return Promise.resolve(value); + } + return Promise.reject(new Error("No storage API available")); + } + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/StorageItemExists.json b/javascriptsource/nanoflowcommons/actions/StorageItemExists.json new file mode 100644 index 0000000..a560d6d --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/StorageItemExists.json @@ -0,0 +1,5 @@ +{ + "nativeDependencies": { + "@react-native-community/async-storage": "1.12.1" + } +} diff --git a/javascriptsource/nanoflowcommons/actions/TimeBetween.js b/javascriptsource/nanoflowcommons/actions/TimeBetween.js new file mode 100644 index 0000000..a321f61 --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/TimeBetween.js @@ -0,0 +1,50 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * The TimeBetween function calculates the difference between the input Date and times in milliseconds, seconds, minutes, hours or days, depending on the unitOfTime. + * @param {Date} startDate + * @param {Date} endDate + * @param {string} unitOfTime - Must be one of: "MILLISECOND"|"SECOND"|"MINUTE"|"HOUR"|"DAY" + * @returns {Promise.} + */ +export async function TimeBetween(startDate, endDate, unitOfTime) { + // BEGIN USER CODE + if (startDate == null) { + throw new Error("Required field: startDate"); + } + if (endDate == null) { + throw new Error("Required field: endDate"); + } + if (unitOfTime == null) { + throw new Error("Required field: unitOfTime"); + } + const difference = endDate.getTime() - startDate.getTime(); + function getDiff(difference, unit) { + switch (unit) { + case "MILLISECOND": + return difference; + case "SECOND": + return difference / 1000; + case "MINUTE": + return difference / 60000; + case "HOUR": + return difference / 3600000; + case "DAY": + return difference / 86400000; + default: + throw new Error("Unit of time not supported: " + unit); + } + } + return new Big(getDiff(difference, unitOfTime)); + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/ToggleSidebar.js b/javascriptsource/nanoflowcommons/actions/ToggleSidebar.js new file mode 100644 index 0000000..9579cd3 --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/ToggleSidebar.js @@ -0,0 +1,25 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * @returns {Promise.} + */ +export async function ToggleSidebar() { + // BEGIN USER CODE + mx.ui.toggleSidebar(); + // Web platform + if (window && !(navigator && navigator.product === "ReactNative")) { + document.dispatchEvent(new CustomEvent("toggleSidebar")); + } + return Promise.resolve(); + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/Wait.js b/javascriptsource/nanoflowcommons/actions/Wait.js new file mode 100644 index 0000000..09474df --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/Wait.js @@ -0,0 +1,27 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * Wait for number of milliseconds before continuing nanoflow execution. + * @param {Big} delay - The number of milliseconds to wait. This field is required. + * @returns {Promise.} + */ +export async function Wait(delay) { + // BEGIN USER CODE + if (delay == null) { + return Promise.reject(new Error("Input parameter 'delay' is required.")); + } + return new Promise(resolve => { + setTimeout(() => resolve(), Number(delay)); + }); + // END USER CODE +} diff --git a/javascriptsource/nanoflowcommons/actions/dependencies.json b/javascriptsource/nanoflowcommons/actions/dependencies.json new file mode 100644 index 0000000..624d87b --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/dependencies.json @@ -0,0 +1 @@ +[{"react-native-geocoder":{"version":"0.5.0","transitive":false,"url":"https://github.com/devfd/react-native-geocoder"}},{"@react-native-community/geolocation":{"version":"2.0.2","transitive":false,"url":"https://github.com/react-native-community/react-native-geolocation#README.md"}},{"react-native-geolocation-service":{"version":"5.2.0","transitive":false,"url":"https://github.com/Agontuk/react-native-geolocation-service"}},{"@react-native-community/async-storage":{"version":"1.12.1","transitive":false,"url":"https://github.com/react-native-community/react-native-async-storage#readme"}},{"deep-assign":{"version":"3.0.0","transitive":true,"url":null}},{"is-obj":{"version":"1.0.1","transitive":true,"url":null}},{"js-base64":{"version":"3.7.2","transitive":false,"url":null}}] \ No newline at end of file diff --git a/javascriptsource/nanoflowcommons/actions/dependencies.txt b/javascriptsource/nanoflowcommons/actions/dependencies.txt new file mode 100644 index 0000000..60f76f9 --- /dev/null +++ b/javascriptsource/nanoflowcommons/actions/dependencies.txt @@ -0,0 +1,217 @@ +Name: react-native-geocoder +Version: 0.5.0 +License: MIT +Private: false +Description: react native geocoding and reverse geocoding +Repository: https://github.com/devfd/react-native-geocoder +Homepage: https://github.com/devfd/react-native-geocoder +License Copyright: +=== + +The MIT License (MIT) + +Copyright (c) 2015 Alexey + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + +--- + +Name: @react-native-community/geolocation +Version: 2.0.2 +License: MIT +Private: false +Description: React Native Geolocation Module for iOS and Android +Homepage: https://github.com/react-native-community/react-native-geolocation#README.md + +--- + +Name: react-native-geolocation-service +Version: 5.2.0 +License: MIT +Private: false +Description: React native geolocation service for iOS and android +Repository: https://github.com/Agontuk/react-native-geolocation-service +Homepage: https://github.com/Agontuk/react-native-geolocation-service +License Copyright: +=== + +The MIT License (MIT) +Copyright (c) 2018 Iftekhar Rifat + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE +OR OTHER DEALINGS IN THE SOFTWARE. + + +--- + +Name: @react-native-community/async-storage +Version: 1.12.1 +License: MIT +Private: false +Description: Asynchronous, persistent, key-value storage system for React Native. +Repository: https://github.com/react-native-community/react-native-async-storage.git +Homepage: https://github.com/react-native-community/react-native-async-storage#readme +License Copyright: +=== + +MIT License + +Copyright (c) 2015-present, Facebook, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +--- + +Name: deep-assign +Version: 3.0.0 +License: MIT +Private: false +Description: Recursive Object.assign() +Repository: sindresorhus/deep-assign +License Copyright: +=== + +The MIT License (MIT) + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +--- + +Name: is-obj +Version: 1.0.1 +License: MIT +Private: false +Description: Check if a value is an object +Repository: sindresorhus/is-obj +License Copyright: +=== + +The MIT License (MIT) + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +--- + +Name: js-base64 +Version: 3.7.2 +License: BSD-3-Clause +Private: false +Description: Yet another Base64 transcoder in pure-JS +Repository: git+https://github.com/dankogai/js-base64.git +License Copyright: +=== + +Copyright (c) 2014, Dan Kogai +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of {{{project}}} nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/javascriptsource/webactions/.version b/javascriptsource/webactions/.version new file mode 100644 index 0000000..f161b5d --- /dev/null +++ b/javascriptsource/webactions/.version @@ -0,0 +1 @@ +2.10.0 \ No newline at end of file diff --git a/javascriptsource/webactions/LICENSE b/javascriptsource/webactions/LICENSE new file mode 100644 index 0000000..51dfbf5 --- /dev/null +++ b/javascriptsource/webactions/LICENSE @@ -0,0 +1,201 @@ +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2020 Mendix Technology BV + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/javascriptsource/webactions/actions/FocusHelper.js b/javascriptsource/webactions/actions/FocusHelper.js new file mode 100644 index 0000000..68a7273 --- /dev/null +++ b/javascriptsource/webactions/actions/FocusHelper.js @@ -0,0 +1,322 @@ +export function setFocus(element) { + clearSelection(); + element.focus(); + selectText(element); +} + +function clearSelection() { + // This is necessary for IE and Edge + const selection = document.getSelection(); + if (selection === null || isEmptySelection(selection)) { + // Prevent IE11 from switching focus to document.body unless absolutely necessary + return; + } + selection.removeAllRanges(); + selection.addRange(document.createRange()); +} + +function isEmptySelection(selection) { + if (selection.rangeCount === 1) { + const range = selection.getRangeAt(0); + return range.startOffset === range.endOffset; + } + return selection.rangeCount === 0; +} + +function selectText(element) { + const input = element; + if (input.type === "text" || input.type === "password") { + input.select(); + } +} + +export function getFocus() { + const activeElement = document.activeElement && getHTMLElement(document.activeElement); + return activeElement !== document.body ? activeElement : null; +} + +export function clearFocus() { + const current = getFocus(); + if (current) { + current.blur(); + } +} + +export function focusFirst(container) { + const first = findFirst(container); + if (first) { + setFocus(first); + } +} + +export function focusNext() { + const next = findNext(getFocus()); + if (next) { + setFocus(next); + } +} + +export function findFirst(container) { + return findNextInContainer(container, false); +} + +export function findNext(target, reverse = false) { + var _a; + const element = target && getHTMLElement(target); + const next = () => element && findNextNonWrapping(element, reverse); + const wrapAround = () => { + var _a; + return findNextNonWrapping( + (_a = getFocusCapturingRoot(element)) !== null && _a !== void 0 ? _a : document.body, + reverse + ); + }; + return (_a = next()) !== null && _a !== void 0 ? _a : wrapAround(); +} + +function findNextNonWrapping(element, reverse = false) { + const focusRoot = getFocusRoot(element); + let current; + if (!focusRoot.contains(element)) { + if (isFocusable(focusRoot)) { + return focusRoot; + } + current = focusRoot; + } else { + current = element; + } + let found; + if (!reverse && isFocusContext(current) && !skipContainer(current)) { + found = findNextInContainer(current, !!reverse); + if (found) { + return found; + } + } + do { + const context = findFocusContext(current, focusRoot); + found = findNextInContainer(context, !!reverse, current); + if (found) { + return found; + } + if (reverse && isFocusable(context)) { + return context; + } + current = context; + } while (current !== focusRoot); + return null; +} + +const FOCUS_CONTEXT_ATTRIBUTE = "data-focusindex"; +const FOCUS_CAPTURING_ATTRIBUTE = "data-focus-capturing"; +const FOCUS_CAPTURING_MODAL = "modal"; +const FOCUS_CAPTURING_NON_MODAL = "non-modal"; + +function findFocusContext(element, focusRoot) { + if (element === focusRoot) { + return focusRoot; + } + let current = element; + while (current !== focusRoot && current.parentElement) { + current = current.parentElement; + if (isFocusContext(current)) { + return current; + } + } + return focusRoot; +} + +function getFocusRoot(element) { + var _a; + const capturingRoot = getFocusCapturingRoot(element); + if (!capturingRoot) { + // We're outside all focus capturing elements, e.g. in a floating popup + return document.body; + } + return (_a = getModalFocusRoot()) !== null && _a !== void 0 ? _a : capturingRoot; +} + +function getModalFocusRoot() { + const focusRoots = document.querySelectorAll(`[${FOCUS_CAPTURING_ATTRIBUTE}=${FOCUS_CAPTURING_MODAL}]`); + const focusRoot = focusRoots.length ? focusRoots[focusRoots.length - 1] : null; + return focusRoot && isHTMLElement(focusRoot) ? focusRoot : null; +} + +function getFocusCapturingRoot(element) { + if (!element || element === document.body) { + return document.body; + } + let current = element; + while (current && isHTMLElement(current)) { + const captureMode = current.getAttribute(FOCUS_CAPTURING_ATTRIBUTE); + if (captureMode === FOCUS_CAPTURING_MODAL || captureMode === FOCUS_CAPTURING_NON_MODAL) { + return current; + } + current = current.parentElement; + } + return null; +} + +function findNextInContainer(container, reverse, afterElement) { + const startTabIndex = afterElement && afterElement !== container ? getEffectiveTabIndex(afterElement) : undefined; + const candidates = gatherDescendants(container); + const tabIndices = Object.keys(candidates) + .map(s => parseInt(s, 10)) + .filter(tabIndexFilter(startTabIndex, reverse)) + .sort(compareTabIndex); + if (reverse) { + tabIndices.reverse(); + } + for (const tabIndex of tabIndices) { + let array = candidates[tabIndex]; + if (array !== undefined) { + if (reverse) { + array.reverse(); + } + if (tabIndex === startTabIndex) { + array = array.slice(array.indexOf(afterElement) + 1); + } + const candidate = findNextInArray(array, reverse); + if (candidate) { + return candidate; + } + } + } + return null; +} + +function findNextInArray(array, reverse) { + for (const element of array) { + if (!reverse && isFocusable(element)) { + return element; + } + if (isFocusContext(element) && !skipContainer(element)) { + const candidate = findNextInContainer(element, reverse); + if (candidate) { + return candidate; + } + } + if (reverse && isFocusable(element)) { + return element; + } + } + return null; +} + +function gatherDescendants(e, output = {}) { + for (let i = 0; i < e.children.length; i++) { + const child = e.children.item(i); + if (!isHTMLElement(child)) { + continue; + } + const tabIndex = getEffectiveTabIndex(child); + const elements = (output[tabIndex] = tabIndex in output ? output[tabIndex] : []); + elements.push(child); + if (!isFocusContext(child)) { + gatherDescendants(child, output); + } + } + return output; +} + +function tabIndexFilter(startTabIndex, reverse) { + return startTabIndex === undefined + ? () => true + : reverse + ? t => compareTabIndex(t, startTabIndex) <= 0 + : t => compareTabIndex(t, startTabIndex) >= 0; +} + +function compareTabIndex(a, b) { + return a === b ? 0 : a === 0 ? 1 : b === 0 ? -1 : a - b; +} + +function isFocusContext(element) { + return element === document.body || element.getAttribute(FOCUS_CONTEXT_ATTRIBUTE) !== null; +} + +function getEffectiveTabIndex(element) { + const focusIndex = getIntAttribute(element, FOCUS_CONTEXT_ATTRIBUTE); + const tabIndexValue = focusIndex !== null ? focusIndex : getTabIndex(element); + // An element with tabindex -1 is placed within the natural order of elements with effective tabindex 0 + return Math.max(0, tabIndexValue !== null && tabIndexValue !== void 0 ? tabIndexValue : 0); +} + +function getTabIndex(element) { + const tabIndex = getIntAttribute(element, "tabindex"); + return tabIndex !== -32768 ? tabIndex : null; // -32768 is returned by IE/Edge for tabindex="" :( +} + +function getIntAttribute(element, attribute) { + const value = element.getAttribute(attribute); + return value ? parseInt(value, 10) : null; +} + +function skipContainer(element) { + return element.getAttribute(FOCUS_CONTEXT_ATTRIBUTE) === "-1"; +} + +export function isFocusable(element) { + return isNavigableElement(element) && isInteractive(element); +} + +export function isNavigableElement(element) { + if (skipContainer(element)) { + return false; + } + const tabIndex = getTabIndex(element); + return (tabIndex === null ? getDefaultTabIndex(element) : tabIndex) >= 0; +} + +export function getFocusableContainer(target) { + let element = getHTMLElement(target); + while (element) { + if (getTabIndex(element) !== null || getDefaultTabIndex(element) === 0) { + return element; + } + element = element.parentElement; + } + return null; +} + +function getDefaultTabIndex(element) { + // We have to check this ourselves, because IE and Edge return the wrong default value for the tabIndex JS property. + switch (element.tagName.toLowerCase()) { + case "a": + case "area": + case "button": + case "input": + case "object": + case "select": + case "textarea": + return 0; + default: + return element.getAttribute("contenteditable") ? 0 : -1; + } +} + +export function isInteractive(element) { + return isVisible(element) && isEnabled(element); +} + +function isVisible(element) { + if (element.offsetWidth === 0 && element.offsetHeight === 0) { + return false; + } + return window.getComputedStyle(element).visibility === "visible"; +} + +function isEnabled(element) { + return !element.disabled; +} + +export function getHTMLElement(target) { + return isHTMLElement(target) ? target : isNode(target) ? target.parentElement : null; +} + +function isNode(target) { + return target.parentElement !== undefined; +} + +export function isHTMLElement(target) { + return target.offsetParent !== undefined; +} diff --git a/javascriptsource/webactions/actions/FocusNext.js b/javascriptsource/webactions/actions/FocusNext.js new file mode 100644 index 0000000..3ad313b --- /dev/null +++ b/javascriptsource/webactions/actions/FocusNext.js @@ -0,0 +1,23 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; +import { focusNext } from "./FocusHelper"; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * Move the keyboard focus to the next element that can be focused. + * @returns {Promise.} + */ +export async function FocusNext() { + // BEGIN USER CODE + focusNext(); + return Promise.resolve(); + // END USER CODE +} diff --git a/javascriptsource/webactions/actions/FocusPrevious.js b/javascriptsource/webactions/actions/FocusPrevious.js new file mode 100644 index 0000000..4e27285 --- /dev/null +++ b/javascriptsource/webactions/actions/FocusPrevious.js @@ -0,0 +1,29 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; +import { findNext, getFocus, setFocus } from "./FocusHelper"; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * Move the keyboard focus to the previous element that can be focused. + * @returns {Promise.} + */ +export async function FocusPrevious() { + // BEGIN USER CODE + function focusPrevious() { + const previous = findNext(getFocus(), true); + if (previous) { + setFocus(previous); + } + } + focusPrevious(); + return Promise.resolve(); + // END USER CODE +} diff --git a/javascriptsource/webactions/actions/ReadCookie.js b/javascriptsource/webactions/actions/ReadCookie.js new file mode 100644 index 0000000..b61c418 --- /dev/null +++ b/javascriptsource/webactions/actions/ReadCookie.js @@ -0,0 +1,23 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * @param {string} key + * @returns {Promise.} + */ +export async function ReadCookie(key) { + // BEGIN USER CODE + const entry = document.cookie.split("; ").find(row => row.startsWith(`${key}=`)); + const value = entry ? entry.split("=")[1] : undefined; + return value ? value : ""; + // END USER CODE +} diff --git a/javascriptsource/webactions/actions/ScrollTo.js b/javascriptsource/webactions/actions/ScrollTo.js new file mode 100644 index 0000000..30312f9 --- /dev/null +++ b/javascriptsource/webactions/actions/ScrollTo.js @@ -0,0 +1,31 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * Scroll the window to make targeted element visible + * @param {string} targetSelector - Selector to reach the element to be scrolled to. Examples: .warning to scroll to an element with the class warning, or .mx-name-textBox1 to scroll to a text box with the class mx-name-textBox1 (and name textBox1). + * @returns {Promise.} + */ +export async function ScrollTo(targetSelector) { + // BEGIN USER CODE + const element = document.querySelector(targetSelector); + if (element) { + element.scrollIntoView({ + behavior: "smooth", + block: "start", + inline: "nearest" + }); + } else { + console.log("no item found"); + } + // END USER CODE +} diff --git a/javascriptsource/webactions/actions/SetCookie.js b/javascriptsource/webactions/actions/SetCookie.js new file mode 100644 index 0000000..db44f1a --- /dev/null +++ b/javascriptsource/webactions/actions/SetCookie.js @@ -0,0 +1,26 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * @param {string} key + * @param {string} value + * @returns {Promise.} + */ +export async function SetCookie(key, value) { + // BEGIN USER CODE + try { + document.cookie = key + "=" + value + ";"; + } catch (e) { + console.error(e); + } + // END USER CODE +} diff --git a/javascriptsource/webactions/actions/SetFavicon.js b/javascriptsource/webactions/actions/SetFavicon.js new file mode 100644 index 0000000..3756d4b --- /dev/null +++ b/javascriptsource/webactions/actions/SetFavicon.js @@ -0,0 +1,56 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +function cloneWithNewUrl(link, href) { + const target = link.cloneNode(); + const search = new URL(link.href).search; + target.href = href; + const targetHref = new URL(target.href); + targetHref.search = search; + target.href = targetHref.toString(); + return target; +} +// END EXTRA CODE + +/** + * @param {string} iconUrl16x16 + * @param {string} iconUrl32x32 + * @param {string} appleTouchIconUrl + * @returns {Promise.} + */ +export async function SetFavicon(iconUrl16x16, iconUrl32x32, appleTouchIconUrl) { + // BEGIN USER CODE + const entries = [ + ['link[rel="icon"][sizes="16x16"]', iconUrl16x16, "16x16"], + ['link[rel="icon"][sizes="32x32"]', iconUrl32x32, "32x32"], + ['link[rel="apple-touch-icon"]', appleTouchIconUrl] + ]; + const links = entries.reduce((acc, [selector, href, sizes]) => { + const element = document.querySelector(selector); + if (element) { + acc.push(cloneWithNewUrl(element, href)); + element.remove(); + } else { + const link = document.createElement("link"); + link.href = href; + const bypassCacheHref = new URL(link.href); + bypassCacheHref.search = "v" + Date.now(); + link.href = bypassCacheHref.toString(); + link.rel = "icon"; + if (sizes) { + link.sizes = sizes; + } + acc.push(link); + } + return acc; + }, []); + document.head.append(...links); + // END USER CODE +} diff --git a/javascriptsource/webactions/actions/SetFocus.js b/javascriptsource/webactions/actions/SetFocus.js new file mode 100644 index 0000000..fcf6046 --- /dev/null +++ b/javascriptsource/webactions/actions/SetFocus.js @@ -0,0 +1,33 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; +import { isFocusable, focusFirst, setFocus } from "./FocusHelper"; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * Set focus to the element found with the selector, The element should be able to hold focus like a link, button, or input. + * @param {string} targetSelector - Selector to reach the element to give focus. Examples: .warning to scroll to focus element with the class warning, or .mx-name-textBox1 to focus to a text box with the class mx-name-textBox1 (and name textBox1). + * @returns {Promise.} + */ +export async function SetFocus(targetSelector) { + // BEGIN USER CODE + const targetNode = targetSelector ? document.querySelector(targetSelector) : null; + if (targetNode) { + if (isFocusable(targetNode)) { + setFocus(targetNode); + } else { + // If the target is not focusable, select the first focusable within + focusFirst(targetNode); + } + } else { + console.warn(`No DOM node found to set focus for query selector ${targetSelector}`); + } + // END USER CODE +} diff --git a/javascriptsource/webactions/actions/TakePicture.js b/javascriptsource/webactions/actions/TakePicture.js new file mode 100644 index 0000000..f97e54f --- /dev/null +++ b/javascriptsource/webactions/actions/TakePicture.js @@ -0,0 +1,412 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * Take a picture using the device's camera. + * @param {MxObject} picture - This is required. + * @param {boolean} showConfirmationScreen + * @param {"WebActions.PictureQuality.original"|"WebActions.PictureQuality.low"|"WebActions.PictureQuality.medium"|"WebActions.PictureQuality.high"|"WebActions.PictureQuality.custom"} pictureQuality - The default picture quality is 'Medium'. + * @param {Big} maximumWidth - The picture will be scaled to this maximum pixel width, while maintaining the aspect ratio. + * @param {Big} maximumHeight - The picture will be scaled to this maximum pixel height, while maintaining the aspect ratio. + * @returns {Promise.} + */ +export async function TakePicture(picture, showConfirmationScreen, pictureQuality, maximumWidth, maximumHeight) { + // BEGIN USER CODE + const CAMERA_POSITION = { + BACK_CAMERA: "environment", + FRONT_CAMERA: "user" + }; + const getUserText = prepareLanguage(); + if (!picture) { + return Promise.reject(new Error("Input parameter 'Picture' is required.")); + } + if (!picture.inheritsFrom("System.Image")) { + return Promise.reject(new Error(`Entity ${picture.getEntity()} does not inherit from 'System.Image'.`)); + } + if (!("mediaDevices" in navigator) || !("getUserMedia" in navigator.mediaDevices)) { + return Promise.reject(new Error("Media devices are not supported.")); + } + if (pictureQuality === "custom" && !maximumHeight && !maximumWidth) { + return Promise.reject( + new Error("Picture quality is set to 'Custom', but no maximum width or height was provided") + ); + } + // TODO: WC-463 rollup has a bug where comments are removed from the top of files, disallowing imports between "extra code" comments. Until this is fixed, SVGs are manually encoded and added here. + const closeSVG = + "PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xOC4yMjIyIDE2LjAwMDNMMjYuNTM5NyA3LjY4MjhDMjcuMTU0MSA3LjA2ODM4IDI3LjE1NDEgNi4wNzUyNCAyNi41Mzk3IDUuNDYwODJDMjUuOTI1MyA0Ljg0NjM5IDI0LjkzMjEgNC44NDYzOSAyNC4zMTc3IDUuNDYwODJMMTYuMDAwMiAxMy43NzgzTDcuNjgyNzkgNS40NjA4MkM3LjA2ODM3IDQuODQ2MzkgNi4wNzUyNCA0Ljg0NjM5IDUuNDYwODIgNS40NjA4MkM0Ljg0NjM5IDYuMDc1MjQgNC44NDYzOSA3LjA2ODM4IDUuNDYwODIgNy42ODI4TDEzLjc3ODMgMTYuMDAwM0w1LjQ2MDgyIDI0LjMxNzhDNC44NDYzOSAyNC45MzIzIDQuODQ2MzkgMjUuOTI1NCA1LjQ2MDgyIDI2LjUzOThDNS43NjcyNCAyNi44NDYzIDYuMTY5NTIgMjcuMDAwMyA2LjU3MTggMjcuMDAwM0M2Ljk3NDA4IDI3LjAwMDMgNy4zNzYzNiAyNi44NDYzIDcuNjgyNzkgMjYuNTM5OEwxNi4wMDAyIDE4LjIyMjNMMjQuMzE3NyAyNi41Mzk4QzI0LjYyNDEgMjYuODQ2MyAyNS4wMjY0IDI3LjAwMDMgMjUuNDI4NyAyNy4wMDAzQzI1LjgzMSAyNy4wMDAzIDI2LjIzMzMgMjYuODQ2MyAyNi41Mzk3IDI2LjUzOThDMjcuMTU0MSAyNS45MjU0IDI3LjE1NDEgMjQuOTMyMyAyNi41Mzk3IDI0LjMxNzhMMTguMjIyMiAxNi4wMDAzWiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg=="; + const syncSVG = + "PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNS45OTk5IDVDMTIuNzA5MyA1IDkuNzU0NzQgNi40NDQ1NCA3LjczNzY2IDguNzM3NjJMMTAuMTQ2NCAxMS4xNDY0QzEwLjQ2MTQgMTEuNDYxNCAxMC4yMzgzIDEyIDkuNzkyOSAxMkgyLjVDMi4yMjM4NiAxMiAyIDExLjc3NjEgMiAxMS41VjQuMjA3MDZDMiAzLjc2MTYgMi41Mzg1OCAzLjUzODUyIDIuODUzNTYgMy44NTM1TDUuNjEzMiA2LjYxMzE2QzguMTczOTIgMy43ODE1IDExLjg3ODIgMiAxNS45OTk5IDJDMjMuMTY0NCAyIDI5LjA3MDIgNy4zODA0MiAyOS45MDAyIDE0LjMyMTlDMjkuOTk4NiAxNS4xNDQ0IDI5LjQxMTYgMTUuODkxIDI4LjU4OSAxNS45ODk0QzI3Ljc2NjQgMTYuMDg3OCAyNy4wMTk4IDE1LjUwMDcgMjYuOTIxNCAxNC42NzgxQzI2LjI2OTYgOS4yMjY5IDIxLjYyNzIgNSAxNS45OTk5IDVaTTMuNDEwOSAxNi4wMTA2QzQuMjMzNDYgMTUuOTEyMiA0Ljk4MDAyIDE2LjQ5OTMgNS4wNzg0IDE3LjMyMTlDNS43MzAzMiAyMi43NzMgMTAuMzcyNiAyNyAxNS45OTk5IDI3QzE5LjI5MDYgMjcgMjIuMjQ1MiAyNS41NTU0IDI0LjI2MjIgMjMuMjYyNEwyMS44NTM2IDIwLjg1MzZDMjEuNTM4NiAyMC41Mzg2IDIxLjc2MTYgMjAgMjIuMjA3MiAyMEgyOS41QzI5Ljc3NjIgMjAgMzAgMjAuMjI0IDMwIDIwLjVWMjcuNzkzQzMwIDI4LjIzODQgMjkuNDYxNCAyOC40NjE0IDI5LjE0NjQgMjguMTQ2NEwyNi4zODY4IDI1LjM4NjhDMjMuODI2IDI4LjIxODQgMjAuMTIxNiAzMCAxNS45OTk5IDMwQzguODM1NDIgMzAgMi45Mjk3OCAyNC42MTk2IDIuMDk5NjIgMTcuNjc4MUMyLjAwMTI2IDE2Ljg1NTYgMi41ODgzNCAxNi4xMDkgMy40MTA5IDE2LjAxMDZaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K"; + const cameraButtonSVG = + "PHN2ZyB3aWR0aD0iNzAiIGhlaWdodD0iNzAiIHZpZXdCb3g9IjAgMCA3MCA3MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGNpcmNsZSBjeD0iMzUiIGN5PSIzNSIgcj0iMzUiIGZpbGw9IndoaXRlIi8+CjxjaXJjbGUgY3g9IjM1IiBjeT0iMzUiIHI9IjI4IiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSIyIi8+Cjwvc3ZnPgo="; + const saveSVG = + "PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI5Ljc1ODMgNS4zOTY5NEMzMC40MDY5IDUuOTczNTMgMzAuNDY1NCA2Ljk2Njc5IDI5Ljg4ODggNy42MTU0NEwxMy4xMjY5IDI2LjQ3MjZDMTIuODI4NyAyNi44MDgxIDEyLjQwMTIgMjcgMTEuOTUyNCAyN0MxMS41MDM1IDI3IDExLjA3NjEgMjYuODA4MSAxMC43Nzc5IDI2LjQ3MjZMMi4zOTY5NCAxNy4wNDRDMS44MjAzNiAxNi4zOTUzIDEuODc4NzkgMTUuNDAyMSAyLjUyNzQ0IDE0LjgyNTVDMy4xNzYxIDE0LjI0ODkgNC4xNjkzNiAxNC4zMDc0IDQuNzQ1OTQgMTQuOTU2TDExLjk1MjQgMjMuMDYzM0wyNy41Mzk4IDUuNTI3NDRDMjguMTE2NCA0Ljg3ODc5IDI5LjEwOTYgNC44MjAzNiAyOS43NTgzIDUuMzk2OTRaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K"; + // eslint-disable-next-line no-async-promise-executor + return new Promise(async (resolve, reject) => { + let error; + let stream; + let videoIsReady = false; + let shouldFaceEnvironment = true; + const { + video, + wrapper, + actionControl, + switchControl, + closeControl, + createAction, + controlsWrapper, + createActionAndSwitch, + addAllControlButtons, + removeAllControlButtons + } = createFirstScreenElements(); + document.body.appendChild(wrapper); + await startCamera(CAMERA_POSITION.BACK_CAMERA); + const { handler: takePictureHandler, cleanup: secondScreenCleanup } = prepareSecondScreen(); + if (await hasMultipleCameras()) { + controlsWrapper.classList.add("take-picture-action-switch-control-wrapper"); + createActionAndSwitch(); + } else { + controlsWrapper.classList.add("take-picture-action-control-wrapper"); + createAction(); + } + closeControl.addEventListener("click", () => { + closeControlHandler(); + secondScreenCleanup(); + resolve(false); + }); + switchControl.addEventListener("click", switchControlHandler); + actionControl.addEventListener("click", () => { + removeAllControlButtons(); + if (showConfirmationScreen) { + // Delay the `takePictureHandler` to the next cycle so the UI preparations can go first. Otherwise, the control-buttons are not removed while the second screen is being set up. + setTimeout(() => { + takePictureHandler(() => { + addAllControlButtons(); + video.play(); + }); + }, 0); + } else { + video.pause(); + const videoCanvas = getVideoCanvas(); + savePicture(videoCanvas, () => { + videoCanvas.remove(); + closeControlHandler(); + }); + } + }); + video.addEventListener("loadedmetadata", () => (videoIsReady = true)); + function getVideoCanvas() { + const videoCanvas = document.createElement("canvas"); + videoCanvas.height = video.videoHeight; + videoCanvas.width = video.videoWidth; + const videoContext = videoCanvas.getContext("2d"); + videoContext === null || videoContext === void 0 ? void 0 : videoContext.drawImage(video, 0, 0); + return videoCanvas; + } + function createFirstScreenElements() { + const wrapper = document.createElement("div"); + wrapper.setAttribute("role", "dialog"); + wrapper.setAttribute("aria-labelledby", "take-picture-modal-label"); + wrapper.classList.add("take-picture-wrapper"); + const video = document.createElement("video"); + video.classList.add("take-picture-video-element"); + video.setAttribute("autoplay", ""); + video.setAttribute("muted", ""); + video.setAttribute("playsinline", ""); + const controlsWrapper = document.createElement("div"); + const closeControlWrapper = document.createElement("div"); + closeControlWrapper.classList.add("take-picture-close-control-wrapper"); + const actionControl = document.createElement("button"); + actionControl.setAttribute("aria-label", getUserText("Take picture", "Foto nemen")); + actionControl.classList.add("take-picture-action-control"); + const actionControlWrapper = document.createElement("div"); + actionControlWrapper.classList.add("take-picture-action-spacing"); + const switchControl = document.createElement("button"); + switchControl.setAttribute("aria-label", getUserText("Switch camera", "Van camera wisselen")); + switchControl.classList.add("take-picture-switch-control"); + const switchControlWrapper = document.createElement("div"); + switchControlWrapper.classList.add("take-picture-switch-spacing"); + const closeControl = document.createElement("button"); + closeControl.setAttribute("aria-label", getUserText("Close", "Afsluiten")); + closeControl.classList.add("take-picture-close-control"); + const closeImg = document.createElement("img"); + closeImg.src = `data:image/svg+xml;base64,${closeSVG}`; + const switchImg = document.createElement("img"); + switchImg.src = `data:image/svg+xml;base64,${syncSVG}`; + const takePictureImg = document.createElement("img"); + takePictureImg.src = `data:image/svg+xml;base64,${cameraButtonSVG}`; + closeControl.appendChild(closeImg); + switchControl.appendChild(switchImg); + actionControl.appendChild(takePictureImg); + function createActionAndSwitch() { + const spacingDiv = document.createElement("div"); + spacingDiv.classList.add("take-picture-spacing-div"); + actionControlWrapper.appendChild(actionControl); + switchControlWrapper.appendChild(switchControl); + controlsWrapper.appendChild(spacingDiv); + controlsWrapper.appendChild(actionControlWrapper); + controlsWrapper.appendChild(switchControlWrapper); + } + closeControlWrapper.appendChild(closeControl); + function addAllControlButtons() { + wrapper.appendChild(controlsWrapper); + wrapper.appendChild(closeControlWrapper); + } + function removeAllControlButtons() { + wrapper.removeChild(controlsWrapper); + wrapper.removeChild(closeControlWrapper); + } + addAllControlButtons(); + wrapper.appendChild(video); + return { + video, + wrapper, + controlsWrapper, + actionControl, + switchControl, + closeControl, + createActionAndSwitch, + createAction: () => controlsWrapper.appendChild(actionControl), + addAllControlButtons, + removeAllControlButtons + }; + } + function prepareSecondScreen() { + let confirmationWrapper; + return { + handler: onResumeFirstScreen => { + if (videoIsReady) { + confirmationWrapper = document.createElement("div"); + confirmationWrapper.classList.add("take-picture-confirm-wrapper"); + video.pause(); + // Element to retrieve the blob from mediaStream (not rendered on the screen) + const videoCanvas = getVideoCanvas(); + const pictureImg = document.createElement("img"); + pictureImg.classList.add("take-picture-image"); + pictureImg.src = videoCanvas.toDataURL(); + const buttonWrapper = document.createElement("div"); + buttonWrapper.classList.add("take-picture-button-wrapper"); + const saveBtn = document.createElement("button"); + saveBtn.setAttribute("aria-label", getUserText("Save", "Opslaan")); + saveBtn.classList.add("take-picture-save-control"); + const saveImg = document.createElement("img"); + saveImg.src = `data:image/svg+xml;base64,${saveSVG}`; + saveBtn.appendChild(saveImg); + const closeBtn = document.createElement("button"); + closeBtn.setAttribute("aria-label", getUserText("Close", "Afsluiten")); + closeBtn.classList.add("take-picture-close-control"); + const closeImg = document.createElement("img"); + closeImg.src = `data:image/svg+xml;base64,${closeSVG}`; + closeBtn.appendChild(closeImg); + buttonWrapper.appendChild(closeBtn); + buttonWrapper.appendChild(saveBtn); + confirmationWrapper.appendChild(buttonWrapper); + confirmationWrapper.appendChild(pictureImg); + document.body.appendChild(confirmationWrapper); + saveBtn.addEventListener("click", () => { + confirmationWrapper.removeChild(buttonWrapper); + savePicture(videoCanvas, () => { + closeControlHandler(); + cleanupConfirmationElements(); + }); + }); + closeBtn.addEventListener("click", () => { + cleanupConfirmationElements(); + onResumeFirstScreen(); + }); + // eslint-disable-next-line no-inner-declarations + function cleanupConfirmationElements() { + document.body.removeChild(confirmationWrapper); + videoCanvas.remove(); + } + } + }, + cleanup: () => { + try { + document.body.removeChild(confirmationWrapper); + } catch (e) { + // silently handle case where node already removed. + } + } + }; + } + async function switchControlHandler() { + if (!stream) { + return; + } + stopCamera(); + if (await hasMultipleCameras()) { + shouldFaceEnvironment = !shouldFaceEnvironment; + } + await startCamera(shouldFaceEnvironment ? CAMERA_POSITION.BACK_CAMERA : CAMERA_POSITION.FRONT_CAMERA); + } + function closeControlHandler() { + stopCamera(); + document.body.removeChild(wrapper); + } + async function startCamera(facingMode) { + var _a; + try { + stream = await navigator.mediaDevices.getUserMedia({ + video: Object.assign({ facingMode }, getCameraQuality()) + }); + (_a = stream === null || stream === void 0 ? void 0 : stream.getTracks()) === null || _a === void 0 + ? void 0 + : _a.forEach(track => { + track.addEventListener("ended", () => { + closeControlHandler(); + reject(new Error("Video stream unexpectedly ended.")); + }); + }); + } catch (e) { + if (e instanceof Error) { + switch (e.name) { + case "NotAllowedError": + error = getUserText("Permission denied.", "Geen toestemming."); + break; + case "NotFoundError": + error = getUserText("Media not available.", "Media niet beschikbaar."); + break; + case "NotReadableError": + error = getUserText( + "Media not available, is it already in use elsewhere?", + "Media niet beschikbaar, wordt deze al ergens anders gebruikt?" + ); + break; + default: + error = e.message; + break; + } + } + } + if (error) { + closeControlHandler(); + mx.ui.error(error); + resolve(false); + } + if (stream) { + video.srcObject = stream; + } + } + function stopCamera() { + videoIsReady = false; + const tracks = stream === null || stream === void 0 ? void 0 : stream.getTracks(); + tracks === null || tracks === void 0 + ? void 0 + : tracks.forEach(track => { + track.stop(); + }); + stream = undefined; + } + function savePicture(videoCanvas, onSuccess) { + const progressId = mx.ui.showProgress(); + const filename = `device-camera-picture-${new Date().getTime()}.png`; // `toBlob` defaults to PNG. + new Promise((resolve, reject) => { + videoCanvas.toBlob(blob => { + if (blob) { + resolve(blob); + } else { + mx.ui.hideProgress(progressId); + reject(new Error("Couldn't save picture, please try again.")); + } + }); + }) + .then(blob => { + mx.data.saveDocument( + picture.getGuid(), + filename, + {}, + blob, + () => { + picture.set("Name", filename); + mx.data.commit({ + mxobj: picture, + callback: () => { + mx.ui.hideProgress(progressId); + onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(); + resolve(true); + }, + error: error => { + mx.ui.hideProgress(progressId); + reject( + new Error( + `An error occurred while trying to save the file${ + error.message ? `: ${error.message}` : "" + }. Please try again.` + ) + ); + } + }); + }, + error => { + mx.ui.hideProgress(progressId); + reject( + new Error( + `An error occurred while trying to save the file${ + error.message ? `: ${error.message}` : "" + }. Please try again.` + ) + ); + } + ); + }) + .catch(message => { + mx.ui.hideProgress(progressId); + reject(new Error(message)); + }); + } + function getCameraQuality() { + switch (pictureQuality) { + case "low": + return { + width: { ideal: 1024 }, + height: { ideal: 1024 } + }; + case "medium": + default: + return { + width: { ideal: 2048 }, + height: { ideal: 2048 } + }; + case "high": + return { + width: { ideal: 4096 }, + height: { ideal: 4096 } + }; + case "custom": + return { + width: { ideal: Number(maximumWidth) }, + height: { ideal: Number(maximumHeight) } + }; + } + } + }); + function prepareLanguage() { + const englishFn = english => english; + try { + return mx.session.sessionData.locale.code.toLowerCase().includes("en") + ? englishFn + : (_english, dutch) => dutch; + } catch (_) { + return englishFn; + } + } + async function hasMultipleCameras() { + const videoDevices = (await navigator.mediaDevices.enumerateDevices()).filter( + deviceInfo => deviceInfo.kind === "videoinput" + ); + if (!videoDevices.length) { + return Promise.reject(new Error("Your device does not have a camera.")); + } + return videoDevices.length > 1; + } + // END USER CODE +} diff --git a/javasource/administration/proxies/Account.java b/javasource/administration/proxies/Account.java deleted file mode 100644 index e5dbdb3..0000000 --- a/javasource/administration/proxies/Account.java +++ /dev/null @@ -1,238 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package administration.proxies; - -public class Account extends system.proxies.User -{ - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "Administration.Account"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - FullName("FullName"), - Email("Email"), - IsLocalUser("IsLocalUser"), - Name("Name"), - Password("Password"), - LastLogin("LastLogin"), - Blocked("Blocked"), - Active("Active"), - FailedLogins("FailedLogins"), - WebServiceUser("WebServiceUser"), - IsAnonymous("IsAnonymous"), - UserRoles("System.UserRoles"), - User_Language("System.User_Language"), - User_TimeZone("System.User_TimeZone"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public Account(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "Administration.Account")); - } - - protected Account(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject accountMendixObject) - { - super(context, accountMendixObject); - if (!com.mendix.core.Core.isSubClassOf("Administration.Account", accountMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a Administration.Account"); - } - - /** - * @deprecated Use 'Account.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static administration.proxies.Account initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return administration.proxies.Account.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static administration.proxies.Account initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new administration.proxies.Account(context, mendixObject); - } - - public static administration.proxies.Account load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return administration.proxies.Account.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//Administration.Account" + xpathConstraint)) - result.add(administration.proxies.Account.initialize(context, obj)); - return result; - } - - /** - * @return value of FullName - */ - public final java.lang.String getFullName() - { - return getFullName(getContext()); - } - - /** - * @param context - * @return value of FullName - */ - public final java.lang.String getFullName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.FullName.toString()); - } - - /** - * Set value of FullName - * @param fullname - */ - public final void setFullName(java.lang.String fullname) - { - setFullName(getContext(), fullname); - } - - /** - * Set value of FullName - * @param context - * @param fullname - */ - public final void setFullName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String fullname) - { - getMendixObject().setValue(context, MemberNames.FullName.toString(), fullname); - } - - /** - * @return value of Email - */ - public final java.lang.String getEmail() - { - return getEmail(getContext()); - } - - /** - * @param context - * @return value of Email - */ - public final java.lang.String getEmail(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Email.toString()); - } - - /** - * Set value of Email - * @param email - */ - public final void setEmail(java.lang.String email) - { - setEmail(getContext(), email); - } - - /** - * Set value of Email - * @param context - * @param email - */ - public final void setEmail(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String email) - { - getMendixObject().setValue(context, MemberNames.Email.toString(), email); - } - - /** - * @return value of IsLocalUser - */ - public final java.lang.Boolean getIsLocalUser() - { - return getIsLocalUser(getContext()); - } - - /** - * @param context - * @return value of IsLocalUser - */ - public final java.lang.Boolean getIsLocalUser(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.IsLocalUser.toString()); - } - - /** - * Set value of IsLocalUser - * @param islocaluser - */ - public final void setIsLocalUser(java.lang.Boolean islocaluser) - { - setIsLocalUser(getContext(), islocaluser); - } - - /** - * Set value of IsLocalUser - * @param context - * @param islocaluser - */ - public final void setIsLocalUser(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean islocaluser) - { - getMendixObject().setValue(context, MemberNames.IsLocalUser.toString(), islocaluser); - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final administration.proxies.Account that = (administration.proxies.Account) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "Administration.Account"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Override - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/administration/proxies/AccountPasswordData.java b/javasource/administration/proxies/AccountPasswordData.java deleted file mode 100644 index 76846d3..0000000 --- a/javasource/administration/proxies/AccountPasswordData.java +++ /dev/null @@ -1,317 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package administration.proxies; - -public class AccountPasswordData -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject accountPasswordDataMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "Administration.AccountPasswordData"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - OldPassword("OldPassword"), - NewPassword("NewPassword"), - ConfirmPassword("ConfirmPassword"), - AccountPasswordData_Account("Administration.AccountPasswordData_Account"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public AccountPasswordData(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "Administration.AccountPasswordData")); - } - - protected AccountPasswordData(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject accountPasswordDataMendixObject) - { - if (accountPasswordDataMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("Administration.AccountPasswordData", accountPasswordDataMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a Administration.AccountPasswordData"); - - this.accountPasswordDataMendixObject = accountPasswordDataMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'AccountPasswordData.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static administration.proxies.AccountPasswordData initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return administration.proxies.AccountPasswordData.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static administration.proxies.AccountPasswordData initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new administration.proxies.AccountPasswordData(context, mendixObject); - } - - public static administration.proxies.AccountPasswordData load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return administration.proxies.AccountPasswordData.initialize(context, mendixObject); - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of OldPassword - */ - public final java.lang.String getOldPassword() - { - return getOldPassword(getContext()); - } - - /** - * @param context - * @return value of OldPassword - */ - public final java.lang.String getOldPassword(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.OldPassword.toString()); - } - - /** - * Set value of OldPassword - * @param oldpassword - */ - public final void setOldPassword(java.lang.String oldpassword) - { - setOldPassword(getContext(), oldpassword); - } - - /** - * Set value of OldPassword - * @param context - * @param oldpassword - */ - public final void setOldPassword(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String oldpassword) - { - getMendixObject().setValue(context, MemberNames.OldPassword.toString(), oldpassword); - } - - /** - * @return value of NewPassword - */ - public final java.lang.String getNewPassword() - { - return getNewPassword(getContext()); - } - - /** - * @param context - * @return value of NewPassword - */ - public final java.lang.String getNewPassword(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.NewPassword.toString()); - } - - /** - * Set value of NewPassword - * @param newpassword - */ - public final void setNewPassword(java.lang.String newpassword) - { - setNewPassword(getContext(), newpassword); - } - - /** - * Set value of NewPassword - * @param context - * @param newpassword - */ - public final void setNewPassword(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String newpassword) - { - getMendixObject().setValue(context, MemberNames.NewPassword.toString(), newpassword); - } - - /** - * @return value of ConfirmPassword - */ - public final java.lang.String getConfirmPassword() - { - return getConfirmPassword(getContext()); - } - - /** - * @param context - * @return value of ConfirmPassword - */ - public final java.lang.String getConfirmPassword(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.ConfirmPassword.toString()); - } - - /** - * Set value of ConfirmPassword - * @param confirmpassword - */ - public final void setConfirmPassword(java.lang.String confirmpassword) - { - setConfirmPassword(getContext(), confirmpassword); - } - - /** - * Set value of ConfirmPassword - * @param context - * @param confirmpassword - */ - public final void setConfirmPassword(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String confirmpassword) - { - getMendixObject().setValue(context, MemberNames.ConfirmPassword.toString(), confirmpassword); - } - - /** - * @return value of AccountPasswordData_Account - */ - public final administration.proxies.Account getAccountPasswordData_Account() throws com.mendix.core.CoreException - { - return getAccountPasswordData_Account(getContext()); - } - - /** - * @param context - * @return value of AccountPasswordData_Account - */ - public final administration.proxies.Account getAccountPasswordData_Account(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - administration.proxies.Account result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.AccountPasswordData_Account.toString()); - if (identifier != null) - result = administration.proxies.Account.load(context, identifier); - return result; - } - - /** - * Set value of AccountPasswordData_Account - * @param accountpassworddata_account - */ - public final void setAccountPasswordData_Account(administration.proxies.Account accountpassworddata_account) - { - setAccountPasswordData_Account(getContext(), accountpassworddata_account); - } - - /** - * Set value of AccountPasswordData_Account - * @param context - * @param accountpassworddata_account - */ - public final void setAccountPasswordData_Account(com.mendix.systemwideinterfaces.core.IContext context, administration.proxies.Account accountpassworddata_account) - { - if (accountpassworddata_account == null) - getMendixObject().setValue(context, MemberNames.AccountPasswordData_Account.toString(), null); - else - getMendixObject().setValue(context, MemberNames.AccountPasswordData_Account.toString(), accountpassworddata_account.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return accountPasswordDataMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final administration.proxies.AccountPasswordData that = (administration.proxies.AccountPasswordData) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "Administration.AccountPasswordData"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/administration/proxies/microflows/Microflows.java b/javasource/administration/proxies/microflows/Microflows.java deleted file mode 100644 index cf4d0e7..0000000 --- a/javasource/administration/proxies/microflows/Microflows.java +++ /dev/null @@ -1,80 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package administration.proxies.microflows; - -import java.util.HashMap; -import java.util.Map; -import com.mendix.core.Core; -import com.mendix.core.CoreException; -import com.mendix.systemwideinterfaces.MendixRuntimeException; -import com.mendix.systemwideinterfaces.core.IContext; -import com.mendix.systemwideinterfaces.core.IMendixObject; - -public class Microflows -{ - // These are the microflows for the Administration module - public static void changeMyPassword(IContext context, administration.proxies.AccountPasswordData _accountPasswordData) - { - Map params = new HashMap<>(); - params.put("AccountPasswordData", _accountPasswordData == null ? null : _accountPasswordData.getMendixObject()); - Core.microflowCall("Administration.ChangeMyPassword").withParams(params).execute(context); - } - public static void changePassword(IContext context, administration.proxies.AccountPasswordData _accountPasswordData) - { - Map params = new HashMap<>(); - params.put("AccountPasswordData", _accountPasswordData == null ? null : _accountPasswordData.getMendixObject()); - Core.microflowCall("Administration.ChangePassword").withParams(params).execute(context); - } - public static void manageMyAccount(IContext context) - { - Map params = new HashMap<>(); - Core.microflowCall("Administration.ManageMyAccount").withParams(params).execute(context); - } - public static void newAccount(IContext context) - { - Map params = new HashMap<>(); - Core.microflowCall("Administration.NewAccount").withParams(params).execute(context); - } - /** - * Create a new user object and change the default attribute values so the user will be handled as a webservice user. - * Finally open the User_NewEdit form so all remaing user information can be set. - */ - public static void newWebServiceAccount(IContext context) - { - Map params = new HashMap<>(); - Core.microflowCall("Administration.NewWebServiceAccount").withParams(params).execute(context); - } - public static java.util.List retrieveTimeZones(IContext context) - { - Map params = new HashMap<>(); - java.util.List objs = Core.microflowCall("Administration.RetrieveTimeZones").withParams(params).execute(context); - java.util.List result = null; - if (objs != null) - { - result = new java.util.ArrayList<>(); - for (IMendixObject obj : objs) - result.add(system.proxies.TimeZone.initialize(context, obj)); - } - return result; - } - public static void saveNewAccount(IContext context, administration.proxies.AccountPasswordData _accountPasswordData) - { - Map params = new HashMap<>(); - params.put("AccountPasswordData", _accountPasswordData == null ? null : _accountPasswordData.getMendixObject()); - Core.microflowCall("Administration.SaveNewAccount").withParams(params).execute(context); - } - public static void showMyPasswordForm(IContext context, administration.proxies.Account _account) - { - Map params = new HashMap<>(); - params.put("Account", _account == null ? null : _account.getMendixObject()); - Core.microflowCall("Administration.ShowMyPasswordForm").withParams(params).execute(context); - } - public static void showPasswordForm(IContext context, administration.proxies.Account _account) - { - Map params = new HashMap<>(); - params.put("Account", _account == null ? null : _account.getMendixObject()); - Core.microflowCall("Administration.ShowPasswordForm").withParams(params).execute(context); - } -} \ No newline at end of file diff --git a/javasource/atlas_ui_resources/proxies/constants/Constants.java b/javasource/atlas_ui_resources/proxies/constants/Constants.java deleted file mode 100644 index c11d979..0000000 --- a/javasource/atlas_ui_resources/proxies/constants/Constants.java +++ /dev/null @@ -1,17 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package atlas_ui_resources.proxies.constants; - -import com.mendix.core.Core; - -public class Constants -{ - // These are the constants for the Atlas_UI_Resources module - - public static java.lang.String getAtlas_UI_Resources_Version() - { - return (java.lang.String)Core.getConfiguration().getConstantValue("Atlas_UI_Resources.Atlas_UI_Resources_Version"); - } -} \ No newline at end of file diff --git a/javasource/email_connector/actions/CalculateIncomingAccountMetrics.java b/javasource/email_connector/actions/CalculateIncomingAccountMetrics.java index dfb3bda..067d245 100644 --- a/javasource/email_connector/actions/CalculateIncomingAccountMetrics.java +++ b/javasource/email_connector/actions/CalculateIncomingAccountMetrics.java @@ -10,64 +10,119 @@ package email_connector.actions; import com.mendix.core.Core; +import com.mendix.core.CoreException; import com.mendix.datahub.connector.eventtracking.Metrics; import com.mendix.systemwideinterfaces.core.IContext; import com.mendix.webui.CustomJavaAction; -import email_connector.proxies.ENUM_IncomingProtocol; -import email_connector.proxies.EmailAccount; -import email_connector.proxies.IncomingEmailConfiguration; +import email_connector.proxies.*; +import com.mendix.systemwideinterfaces.core.IMendixObject; +import email_connector.proxies.constants.Constants; +import java.util.Map; +import java.util.stream.Collectors; +import static java.util.stream.Collectors.counting; public class CalculateIncomingAccountMetrics extends CustomJavaAction { - public CalculateIncomingAccountMetrics(IContext context) + private java.util.List __EmailAccountList; + private java.util.List EmailAccountList; + + public CalculateIncomingAccountMetrics(IContext context, java.util.List EmailAccountList) { super(context); + this.__EmailAccountList = EmailAccountList; } @java.lang.Override public java.lang.Void executeAction() throws Exception { + this.EmailAccountList = java.util.Optional.ofNullable(this.__EmailAccountList) + .orElse(java.util.Collections.emptyList()) + .stream() + .map(__EmailAccountListElement -> email_connector.proxies.EmailAccount.initialize(getContext(), __EmailAccountListElement)) + .collect(java.util.stream.Collectors.toList()); + // BEGIN USER CODE for (var protocol : ENUM_IncomingProtocol.values()) { - var query = "SELECT "+ EmailAccount.entityName +"/"+ EmailAccount.MemberNames.isOAuthUsed.toString() +" FROM " - + IncomingEmailConfiguration.entityName +" INNER JOIN " - + IncomingEmailConfiguration.entityName +"/"+IncomingEmailConfiguration.MemberNames.IncomingEmailConfiguration_EmailAccount.toString() +"/"+ EmailAccount.entityName - + " WHERE " + IncomingEmailConfiguration.MemberNames.IncomingProtocol.toString() + "='" + protocol.getCaption() + "';"; - var request = Core.createOQLTextGetRequest(); - request.setQuery(query); - var dataTable = Core.retrieveOQLDataTable(getContext(), request); - var oauthAccCnt=0; - var basicAccCnt=0; - if (dataTable.getRowCount() > 0) { - for (com.mendix.systemwideinterfaces.connectionbus.data.IDataRow row : dataTable) { - if((boolean) row.getValue(getContext(), 0)) - oauthAccCnt++; - else - basicAccCnt++; + var basicAccCount = this.EmailAccountList.stream() + .filter(emailAccount -> { + try { + return protocol.equals(emailAccount.getIncomingEmailConfiguration_EmailAccount().getIncomingProtocol()) && !emailAccount.getisOAuthUsed(); + } catch (CoreException e) { + Core.getLogger(Constants.getLogNode()).error(e); + } + return false; + }) + .count(); + + Map mailBoxTypeAccounts = this.EmailAccountList.stream().filter(emailAccount -> { + try { + return protocol.equals(emailAccount.getIncomingEmailConfiguration_EmailAccount().getIncomingProtocol()); + } catch (CoreException e) { + Core.getLogger(Constants.getLogNode()).error(e); + } + return false; + }).collect(Collectors.groupingBy(EmailAccount::getIsSharedMailbox, counting())); + + Map oAuthAccounts = this.EmailAccountList.stream().filter(emailAccount -> { + try { + return protocol.equals(emailAccount.getIncomingEmailConfiguration_EmailAccount().getIncomingProtocol()) && emailAccount.getEmailAccount_OAuthProvider() != null; + } catch (CoreException e) { + Core.getLogger(Constants.getLogNode()).error(e); + } + return false; + }).collect(Collectors.groupingBy(emailAccount -> { + try { + return emailAccount.getEmailAccount_OAuthProvider().getOAuthType(); + } catch (CoreException e) { + throw new IllegalStateException(e); } - } + }, counting())); + + Metrics.createGauge("dnl_connectors_ec_account_configuration") + .addTag("type", protocol.getCaption()) + .addTag("auth_method", "basic") + .addTag("setup", "incoming") + .setDescription("User sets up account configuration") + .build() + .recordValue(basicAccCount); + Metrics.createGauge("dnl_connectors_ec_account_configuration") + .addTag("type", protocol.getCaption()) + .addTag("auth_method", ENUM_OAuthType.AUTH_CODE.name().toLowerCase()) + .addTag("setup", "incoming") + .setDescription("User sets up account configuration") + .build() + .recordValue(oAuthAccounts.getOrDefault(ENUM_OAuthType.AUTH_CODE, 0L)); Metrics.createGauge("dnl_connectors_ec_account_configuration") - .addTag("type", protocol.getCaption()) - .addTag("auth_method", "basic") - .addTag("setup", "incoming") - .setDescription("User sets up account configuration") - .build() - .recordValue(basicAccCnt); + .addTag("type", protocol.getCaption()) + .addTag("auth_method", ENUM_OAuthType.CLIENT_CRED.name().toLowerCase()) + .addTag("setup", "incoming") + .setDescription("User sets up account configuration") + .build() + .recordValue(oAuthAccounts.getOrDefault(ENUM_OAuthType.CLIENT_CRED, 0L)); Metrics.createGauge("dnl_connectors_ec_account_configuration") - .addTag("type", protocol.getCaption()) - .addTag("auth_method", "oauth") - .addTag("setup", "incoming") - .setDescription("User sets up account configuration") - .build() - .recordValue(oauthAccCnt); + .addTag("type", protocol.getCaption()) + .addTag("setup", "incoming") + .addTag("mailbox_type", "shared") + .setDescription("User sets up account configuration") + .build() + .recordValue(mailBoxTypeAccounts.getOrDefault(Boolean.TRUE, 0L)); + Metrics.createGauge("dnl_connectors_ec_account_configuration") + .addTag("type", protocol.getCaption()) + .addTag("setup", "incoming") + .addTag("mailbox_type", "primary") + .setDescription("User sets up account configuration") + .build() + .recordValue(mailBoxTypeAccounts.getOrDefault(Boolean.FALSE, 0L)); } + return null; // END USER CODE } /** * Returns a string representation of this action + * @return a string representation of this action */ @java.lang.Override public java.lang.String toString() diff --git a/javasource/email_connector/actions/CalculateOutgoingAccountMetrics.java b/javasource/email_connector/actions/CalculateOutgoingAccountMetrics.java index 2db3666..10b6d97 100644 --- a/javasource/email_connector/actions/CalculateOutgoingAccountMetrics.java +++ b/javasource/email_connector/actions/CalculateOutgoingAccountMetrics.java @@ -10,58 +10,112 @@ package email_connector.actions; import com.mendix.core.Core; +import com.mendix.core.CoreException; import com.mendix.datahub.connector.eventtracking.Metrics; import com.mendix.systemwideinterfaces.core.IContext; import com.mendix.webui.CustomJavaAction; +import email_connector.proxies.ENUM_OAuthType; import email_connector.proxies.ENUM_OutgoingProtocol; import email_connector.proxies.EmailAccount; -import email_connector.proxies.OutgoingEmailConfiguration; +import com.mendix.systemwideinterfaces.core.IMendixObject; +import email_connector.proxies.constants.Constants; +import java.util.Map; +import java.util.stream.Collectors; +import static java.util.stream.Collectors.counting; public class CalculateOutgoingAccountMetrics extends CustomJavaAction { - public CalculateOutgoingAccountMetrics(IContext context) + private java.util.List __EmailAccountList; + private java.util.List EmailAccountList; + + public CalculateOutgoingAccountMetrics(IContext context, java.util.List EmailAccountList) { super(context); + this.__EmailAccountList = EmailAccountList; } @java.lang.Override public java.lang.Void executeAction() throws Exception { + this.EmailAccountList = java.util.Optional.ofNullable(this.__EmailAccountList) + .orElse(java.util.Collections.emptyList()) + .stream() + .map(__EmailAccountListElement -> email_connector.proxies.EmailAccount.initialize(getContext(), __EmailAccountListElement)) + .collect(java.util.stream.Collectors.toList()); + // BEGIN USER CODE for (var protocol : ENUM_OutgoingProtocol.values()) { + var basicAccCount = this.EmailAccountList.stream() + .filter(emailAccount -> { + try { + return protocol.equals(emailAccount.getOutgoingEmailConfiguration_EmailAccount().getOutgoingProtocol()) && !emailAccount.getisOAuthUsed(); + } catch (CoreException e) { + Core.getLogger(Constants.getLogNode()).error(e); + } + return false; + }) + .count(); + + Map mailBoxTypeAccounts = this.EmailAccountList.stream().filter(emailAccount -> { + try { + return protocol.equals(emailAccount.getOutgoingEmailConfiguration_EmailAccount().getOutgoingProtocol()); + } catch (CoreException e) { + Core.getLogger(Constants.getLogNode()).error(e); + } + return false; + }).collect(Collectors.groupingBy(EmailAccount::getIsSharedMailbox, counting())); - var query = "SELECT "+ EmailAccount.entityName +"/"+ EmailAccount.MemberNames.isOAuthUsed.toString() +" FROM " - + OutgoingEmailConfiguration.entityName +" INNER JOIN " - + OutgoingEmailConfiguration.entityName +"/"+OutgoingEmailConfiguration.MemberNames.OutgoingEmailConfiguration_EmailAccount.toString() +"/"+ EmailAccount.entityName - + " WHERE " + OutgoingEmailConfiguration.MemberNames.OutgoingProtocol.toString() + "='" + protocol.getCaption() + "';"; - var request = Core.createOQLTextGetRequest(); - request.setQuery(query); - var dataTable = Core.retrieveOQLDataTable(getContext(), request); - var oauthAccCnt=0; - var basicAccCnt=0; - if (dataTable.getRowCount() > 0) { - for (com.mendix.systemwideinterfaces.connectionbus.data.IDataRow row : dataTable) { - if((boolean) row.getValue(getContext(), 0)) - oauthAccCnt++; - else - basicAccCnt++; + Map oAuthAccounts = this.EmailAccountList.stream().filter(emailAccount -> { + try { + return protocol.equals(emailAccount.getOutgoingEmailConfiguration_EmailAccount().getOutgoingProtocol()) && emailAccount.getEmailAccount_OAuthProvider() != null; + } catch (CoreException e) { + Core.getLogger(Constants.getLogNode()).error(e); + } + return false; + }).collect(Collectors.groupingBy(emailAccount -> { + try { + return emailAccount.getEmailAccount_OAuthProvider().getOAuthType(); + } catch (CoreException e) { + throw new IllegalStateException(e); } - } + }, counting())); + Metrics.createGauge("dnl_connectors_ec_account_configuration") .addTag("type", protocol.getCaption()) .addTag("auth_method", "basic") .addTag("setup", "outgoing") .setDescription("User sets up account configuration") .build() - .recordValue(basicAccCnt); + .recordValue(basicAccCount); + Metrics.createGauge("dnl_connectors_ec_account_configuration") + .addTag("type", protocol.getCaption()) + .addTag("auth_method", ENUM_OAuthType.AUTH_CODE.name().toLowerCase()) + .addTag("setup", "outgoing") + .setDescription("User sets up account configuration") + .build() + .recordValue(oAuthAccounts.getOrDefault(ENUM_OAuthType.AUTH_CODE, 0L)); + Metrics.createGauge("dnl_connectors_ec_account_configuration") + .addTag("type", protocol.getCaption()) + .addTag("auth_method", ENUM_OAuthType.CLIENT_CRED.name().toLowerCase()) + .addTag("setup", "outgoing") + .setDescription("User sets up account configuration") + .build() + .recordValue(oAuthAccounts.getOrDefault(ENUM_OAuthType.CLIENT_CRED, 0L)); + Metrics.createGauge("dnl_connectors_ec_account_configuration") + .addTag("type", protocol.getCaption()) + .addTag("setup", "outgoing") + .addTag("mailbox_type", "shared") + .setDescription("User sets up account configuration") + .build() + .recordValue(mailBoxTypeAccounts.getOrDefault(Boolean.TRUE, 0L)); Metrics.createGauge("dnl_connectors_ec_account_configuration") .addTag("type", protocol.getCaption()) - .addTag("auth_method", "oauth") .addTag("setup", "outgoing") + .addTag("mailbox_type", "primary") .setDescription("User sets up account configuration") .build() - .recordValue(oauthAccCnt); + .recordValue(mailBoxTypeAccounts.getOrDefault(Boolean.FALSE, 0L)); } return null; // END USER CODE @@ -69,6 +123,7 @@ public java.lang.Void executeAction() throws Exception /** * Returns a string representation of this action + * @return a string representation of this action */ @java.lang.Override public java.lang.String toString() diff --git a/javasource/email_connector/actions/CheckServerConnection.java b/javasource/email_connector/actions/CheckServerConnection.java index d9286d7..933ca4f 100644 --- a/javasource/email_connector/actions/CheckServerConnection.java +++ b/javasource/email_connector/actions/CheckServerConnection.java @@ -40,7 +40,7 @@ public CheckServerConnection(IContext context, IMendixObject EmailAccount) @java.lang.Override public java.lang.Void executeAction() throws Exception { - this.EmailAccount = __EmailAccount == null ? null : email_connector.proxies.EmailAccount.initialize(getContext(), __EmailAccount); + this.EmailAccount = this.__EmailAccount == null ? null : email_connector.proxies.EmailAccount.initialize(getContext(), __EmailAccount); // BEGIN USER CODE if (this.EmailAccount == null) { @@ -61,6 +61,7 @@ public java.lang.Void executeAction() throws Exception /** * Returns a string representation of this action + * @return a string representation of this action */ @java.lang.Override public java.lang.String toString() diff --git a/javasource/email_connector/actions/ConvertHTMLBodyToPlainText.java b/javasource/email_connector/actions/ConvertHTMLBodyToPlainText.java index b315b29..cadff20 100644 --- a/javasource/email_connector/actions/ConvertHTMLBodyToPlainText.java +++ b/javasource/email_connector/actions/ConvertHTMLBodyToPlainText.java @@ -41,6 +41,7 @@ public java.lang.String executeAction() throws Exception /** * Returns a string representation of this action + * @return a string representation of this action */ @java.lang.Override public java.lang.String toString() diff --git a/javasource/email_connector/actions/CopyAttachmentContent.java b/javasource/email_connector/actions/CopyAttachmentContent.java index 54404b2..1d92011 100644 --- a/javasource/email_connector/actions/CopyAttachmentContent.java +++ b/javasource/email_connector/actions/CopyAttachmentContent.java @@ -32,9 +32,9 @@ public CopyAttachmentContent(IContext context, IMendixObject CopyFrom, IMendixOb @java.lang.Override public java.lang.Boolean executeAction() throws Exception { - this.CopyFrom = __CopyFrom == null ? null : system.proxies.FileDocument.initialize(getContext(), __CopyFrom); + this.CopyFrom = this.__CopyFrom == null ? null : system.proxies.FileDocument.initialize(getContext(), __CopyFrom); - this.CopyTo = __CopyTo == null ? null : system.proxies.FileDocument.initialize(getContext(), __CopyTo); + this.CopyTo = this.__CopyTo == null ? null : system.proxies.FileDocument.initialize(getContext(), __CopyTo); // BEGIN USER CODE IContext context = this.getContext(); @@ -50,6 +50,7 @@ public java.lang.Boolean executeAction() throws Exception /** * Returns a string representation of this action + * @return a string representation of this action */ @java.lang.Override public java.lang.String toString() diff --git a/javasource/email_connector/actions/CreateEmailFromTemplate.java b/javasource/email_connector/actions/CreateEmailFromTemplate.java index b0180c6..3ad6c00 100644 --- a/javasource/email_connector/actions/CreateEmailFromTemplate.java +++ b/javasource/email_connector/actions/CreateEmailFromTemplate.java @@ -40,7 +40,7 @@ public CreateEmailFromTemplate(IContext context, IMendixObject DataObject, IMend @java.lang.Override public IMendixObject executeAction() throws Exception { - this.EmailTemplate = __EmailTemplate == null ? null : email_connector.proxies.EmailTemplate.initialize(getContext(), __EmailTemplate); + this.EmailTemplate = this.__EmailTemplate == null ? null : email_connector.proxies.EmailTemplate.initialize(getContext(), __EmailTemplate); // BEGIN USER CODE if (this.EmailTemplate == null) @@ -63,6 +63,7 @@ public IMendixObject executeAction() throws Exception /** * Returns a string representation of this action + * @return a string representation of this action */ @java.lang.Override public java.lang.String toString() diff --git a/javasource/email_connector/actions/DeleteDuplicateMxReflectionObject.java b/javasource/email_connector/actions/DeleteDuplicateMxReflectionObject.java new file mode 100644 index 0000000..03d66f0 --- /dev/null +++ b/javasource/email_connector/actions/DeleteDuplicateMxReflectionObject.java @@ -0,0 +1,206 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +// Special characters, e.g., é, ö, à, etc. are supported in comments. + +package email_connector.actions; + +import com.mendix.core.Core; +import com.mendix.core.CoreException; +import com.mendix.systemwideinterfaces.core.IContext; +import com.mendix.systemwideinterfaces.core.IMendixIdentifier; +import com.mendix.systemwideinterfaces.core.IMendixObject; +import com.mendix.webui.CustomJavaAction; +import email_connector.proxies.EmailTemplate; +import email_connector.proxies.constants.Constants; +import mxmodelreflection.proxies.MxObjectMember; +import mxmodelreflection.proxies.MxObjectReference; +import mxmodelreflection.proxies.MxObjectType; +import mxmodelreflection.proxies.Token; +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; + +public class DeleteDuplicateMxReflectionObject extends CustomJavaAction +{ + private java.util.List __TokenList; + private java.util.List TokenList; + private java.util.List __MxObjectMemberList; + private java.util.List MxObjectMemberList; + private java.util.List __MxObjectReferenceList; + private java.util.List MxObjectReferenceList; + private java.util.List __MxObjectTypeList; + private java.util.List MxObjectTypeList; + private java.util.List __EmailTemplateList; + private java.util.List EmailTemplateList; + + public DeleteDuplicateMxReflectionObject(IContext context, java.util.List TokenList, java.util.List MxObjectMemberList, java.util.List MxObjectReferenceList, java.util.List MxObjectTypeList, java.util.List EmailTemplateList) + { + super(context); + this.__TokenList = TokenList; + this.__MxObjectMemberList = MxObjectMemberList; + this.__MxObjectReferenceList = MxObjectReferenceList; + this.__MxObjectTypeList = MxObjectTypeList; + this.__EmailTemplateList = EmailTemplateList; + } + + @java.lang.Override + public java.lang.Void executeAction() throws Exception + { + this.TokenList = java.util.Optional.ofNullable(this.__TokenList) + .orElse(java.util.Collections.emptyList()) + .stream() + .map(__TokenListElement -> mxmodelreflection.proxies.Token.initialize(getContext(), __TokenListElement)) + .collect(java.util.stream.Collectors.toList()); + + this.MxObjectMemberList = java.util.Optional.ofNullable(this.__MxObjectMemberList) + .orElse(java.util.Collections.emptyList()) + .stream() + .map(__MxObjectMemberListElement -> mxmodelreflection.proxies.MxObjectMember.initialize(getContext(), __MxObjectMemberListElement)) + .collect(java.util.stream.Collectors.toList()); + + this.MxObjectReferenceList = java.util.Optional.ofNullable(this.__MxObjectReferenceList) + .orElse(java.util.Collections.emptyList()) + .stream() + .map(__MxObjectReferenceListElement -> mxmodelreflection.proxies.MxObjectReference.initialize(getContext(), __MxObjectReferenceListElement)) + .collect(java.util.stream.Collectors.toList()); + + this.MxObjectTypeList = java.util.Optional.ofNullable(this.__MxObjectTypeList) + .orElse(java.util.Collections.emptyList()) + .stream() + .map(__MxObjectTypeListElement -> mxmodelreflection.proxies.MxObjectType.initialize(getContext(), __MxObjectTypeListElement)) + .collect(java.util.stream.Collectors.toList()); + + this.EmailTemplateList = java.util.Optional.ofNullable(this.__EmailTemplateList) + .orElse(java.util.Collections.emptyList()) + .stream() + .map(__EmailTemplateListElement -> email_connector.proxies.EmailTemplate.initialize(getContext(), __EmailTemplateListElement)) + .collect(java.util.stream.Collectors.toList()); + + // BEGIN USER CODE + int mxObjectMemberDuplicateCount = 0; + int mxObjectReferenceDuplicateCount = 0; + int mxObjectTypeDuplicateCount = 0; + if (!this.MxObjectMemberList.isEmpty()) { + List duplicateMxObjectMemberList = filterDuplicates(this.MxObjectMemberList, MxObjectMember::getCompleteName); + if (!duplicateMxObjectMemberList.isEmpty()) { + List mxObjectMemberIMendixObjectList = sortAndMapToMendixObjects(duplicateMxObjectMemberList, MxObjectMember::getMendixObject); + List mxObjectMemberOriginalList = new ArrayList<>(); + // Process tokens + for (IMendixObject token : this.__TokenList) { + processTokenAndEmailTemplates(mxObjectMemberIMendixObjectList, token, Token.MemberNames.Token_MxObjectMember.toString(), MxObjectMember.MemberNames.CompleteName.toString(), mxObjectMemberOriginalList); + Core.commit(this.getContext(), token); + } + // Remove original objects from list of all duplicates + mxObjectMemberIMendixObjectList.removeAll(mxObjectMemberOriginalList); + mxObjectMemberDuplicateCount = mxObjectMemberIMendixObjectList.size(); + // Delete objects which are created due to duplication of templates + Core.delete(this.getContext(), mxObjectMemberIMendixObjectList); + } + } + if (!this.MxObjectReferenceList.isEmpty()) { + List duplicateMxObjectReferenceList = filterMxObjectReferenceDuplicates(this.MxObjectReferenceList, MxObjectReference::getCompleteName, MxObjectReference::getParentEntity); + if (!duplicateMxObjectReferenceList.isEmpty()) { + List mxObjectReferenceIMendixObjectList = sortAndMapToMendixObjects(duplicateMxObjectReferenceList, MxObjectReference::getMendixObject); + List mxObjectReferenceOriginalList = new ArrayList<>(); + // Process tokens + for (IMendixObject token : this.__TokenList) { + processTokenAndEmailTemplates(mxObjectReferenceIMendixObjectList, token, Token.MemberNames.Token_MxObjectReference.toString(), MxObjectReference.MemberNames.CompleteName.toString(), mxObjectReferenceOriginalList); + Core.commit(this.getContext(), token); + } + // Remove original objects from list of all duplicates + mxObjectReferenceIMendixObjectList.removeAll(mxObjectReferenceOriginalList); + mxObjectReferenceDuplicateCount = mxObjectReferenceIMendixObjectList.size(); + // Delete objects which are created due to duplication of templates + Core.delete(this.getContext(), mxObjectReferenceIMendixObjectList); + } + } + + if (!this.MxObjectTypeList.isEmpty()) { + List duplicateMxObjectTypeList = filterDuplicates(this.MxObjectTypeList, MxObjectType::getCompleteName); + if (!duplicateMxObjectTypeList.isEmpty()) { + List mxObjectTypeIMendixObjectList = sortAndMapToMendixObjects(duplicateMxObjectTypeList, MxObjectType::getMendixObject); + List mxObjectTypeOriginalList = new ArrayList<>(); + // Process tokens + for (IMendixObject token : this.__TokenList) { + processTokenAndEmailTemplates(mxObjectTypeIMendixObjectList, token, Token.MemberNames.Token_MxObjectType_Start.toString(), MxObjectType.MemberNames.CompleteName.toString(), mxObjectTypeOriginalList); + processTokenAndEmailTemplates(mxObjectTypeIMendixObjectList, token, Token.MemberNames.Token_MxObjectType_Referenced.toString(), MxObjectType.MemberNames.CompleteName.toString(), mxObjectTypeOriginalList); + Core.commit(this.getContext(), token); + } + // Process email templates + for (IMendixObject emailTemplate : this.__EmailTemplateList) { + processTokenAndEmailTemplates(mxObjectTypeIMendixObjectList, emailTemplate, EmailTemplate.MemberNames.EmailTemplate_MxObjectType.toString(), MxObjectType.MemberNames.CompleteName.toString(), mxObjectTypeOriginalList); + Core.commit(this.getContext(), emailTemplate); + } + // Remove original objects from list of all duplicates + mxObjectTypeIMendixObjectList.removeAll(mxObjectTypeOriginalList); + mxObjectTypeDuplicateCount = mxObjectTypeIMendixObjectList.size(); + // Delete objects which are created due to duplication of templates + Core.delete(this.getContext(), mxObjectTypeIMendixObjectList); + } + } + Core.getLogger(Constants.getLogNode()).info(String.format("Successfully deleted %d record(s) from entity '%s'.", mxObjectMemberDuplicateCount, "MxObjectMember")); + Core.getLogger(Constants.getLogNode()).info(String.format("Successfully deleted %d record(s) from entity '%s'.", mxObjectReferenceDuplicateCount, "MxObjectReference")); + Core.getLogger(Constants.getLogNode()).info(String.format("Successfully deleted %d record(s) from entity '%s'.", mxObjectTypeDuplicateCount, "MxObjectType")); + return null; + // END USER CODE + } + + /** + * Returns a string representation of this action + * @return a string representation of this action + */ + @java.lang.Override + public java.lang.String toString() + { + return "DeleteDuplicateMxReflectionObject"; + } + + // BEGIN EXTRA CODE + private List filterDuplicates(List list, Function getCompleteName) { + return list.stream() + .collect(Collectors.groupingBy(getCompleteName)) + .values().stream() + .filter(l -> l.size() > 1) + .flatMap(List::stream) + .collect(Collectors.toList()); + } + + private List filterMxObjectReferenceDuplicates(List list, Function getCompleteName, Function getParentEntity) { + return list.stream() + .collect(Collectors.groupingBy(getCompleteName, Collectors.groupingBy(getParentEntity, Collectors.toList()))) + .values().stream() + .flatMap(map -> map.values().stream()) + .filter(l -> l.size() > 1) + .flatMap(List::stream) + .collect(Collectors.toList()); + } + + private List sortAndMapToMendixObjects(List list, Function getMendixObject) { + return list.stream() + .map(getMendixObject) + .sorted(Comparator.comparingLong(obj -> obj.getId().toLong())) + .collect(Collectors.toList()); + } + + private void processTokenAndEmailTemplates(List duplicateMendixObjectsList, IMendixObject mendixObject, String referenceName, String completeNameReference, List originalList) throws CoreException { + IMendixIdentifier mxIdentifier = mendixObject.getValue(this.getContext(), referenceName); + if (mxIdentifier != null) { + IMendixObject object = Core.retrieveId(this.getContext(), mxIdentifier); + for (IMendixObject duplicateMxObject : duplicateMendixObjectsList) { + if (duplicateMxObject.getValue(this.getContext(), completeNameReference).equals(object.getValue(this.getContext(), completeNameReference))) { + mendixObject.setValue(this.getContext(), referenceName, duplicateMxObject.getId()); + if(!originalList.contains(duplicateMxObject)) { + originalList.add(duplicateMxObject); + } + break; + } + } + } + } + // END EXTRA CODE +} diff --git a/javasource/email_connector/actions/EndTransaction.java b/javasource/email_connector/actions/EndTransaction.java index 0f30c6c..6e4db6d 100644 --- a/javasource/email_connector/actions/EndTransaction.java +++ b/javasource/email_connector/actions/EndTransaction.java @@ -30,6 +30,7 @@ public java.lang.Void executeAction() throws Exception /** * Returns a string representation of this action + * @return a string representation of this action */ @java.lang.Override public java.lang.String toString() diff --git a/javasource/email_connector/actions/GenerateOAuthNonce.java b/javasource/email_connector/actions/GenerateOAuthNonce.java index a84de4b..895eb55 100644 --- a/javasource/email_connector/actions/GenerateOAuthNonce.java +++ b/javasource/email_connector/actions/GenerateOAuthNonce.java @@ -30,6 +30,7 @@ public java.lang.String executeAction() throws Exception /** * Returns a string representation of this action + * @return a string representation of this action */ @java.lang.Override public java.lang.String toString() diff --git a/javasource/email_connector/actions/GetAppRootURL.java b/javasource/email_connector/actions/GetAppRootURL.java index 54df9d7..b390177 100644 --- a/javasource/email_connector/actions/GetAppRootURL.java +++ b/javasource/email_connector/actions/GetAppRootURL.java @@ -31,6 +31,7 @@ public java.lang.String executeAction() throws Exception /** * Returns a string representation of this action + * @return a string representation of this action */ @java.lang.Override public java.lang.String toString() diff --git a/javasource/email_connector/actions/GetAutoConfig.java b/javasource/email_connector/actions/GetAutoConfig.java index 892fd1a..41935e6 100644 --- a/javasource/email_connector/actions/GetAutoConfig.java +++ b/javasource/email_connector/actions/GetAutoConfig.java @@ -42,6 +42,7 @@ public IMendixObject executeAction() throws Exception /** * Returns a string representation of this action + * @return a string representation of this action */ @java.lang.Override public java.lang.String toString() diff --git a/javasource/email_connector/actions/GetBaseDNList.java b/javasource/email_connector/actions/GetBaseDNList.java index fa4a9fd..31a5a48 100644 --- a/javasource/email_connector/actions/GetBaseDNList.java +++ b/javasource/email_connector/actions/GetBaseDNList.java @@ -34,7 +34,7 @@ public GetBaseDNList(IContext context, IMendixObject LDAPConfiguration) @java.lang.Override public java.util.List executeAction() throws Exception { - this.LDAPConfiguration = __LDAPConfiguration == null ? null : email_connector.proxies.LDAPConfiguration.initialize(getContext(), __LDAPConfiguration); + this.LDAPConfiguration = this.__LDAPConfiguration == null ? null : email_connector.proxies.LDAPConfiguration.initialize(getContext(), __LDAPConfiguration); // BEGIN USER CODE if (this.LDAPConfiguration == null) @@ -62,6 +62,7 @@ public java.util.List executeAction() throws Exception /** * Returns a string representation of this action + * @return a string representation of this action */ @java.lang.Override public java.lang.String toString() diff --git a/javasource/email_connector/actions/GetFolderNames.java b/javasource/email_connector/actions/GetFolderNames.java index 15fbd60..11f07e7 100644 --- a/javasource/email_connector/actions/GetFolderNames.java +++ b/javasource/email_connector/actions/GetFolderNames.java @@ -36,7 +36,7 @@ public GetFolderNames(IContext context, IMendixObject MxEmailAccount) @java.lang.Override public java.util.List executeAction() throws Exception { - this.MxEmailAccount = __MxEmailAccount == null ? null : email_connector.proxies.EmailAccount.initialize(getContext(), __MxEmailAccount); + this.MxEmailAccount = this.__MxEmailAccount == null ? null : email_connector.proxies.EmailAccount.initialize(getContext(), __MxEmailAccount); // BEGIN USER CODE if (this.MxEmailAccount == null) @@ -57,6 +57,7 @@ public java.util.List executeAction() throws Exception /** * Returns a string representation of this action + * @return a string representation of this action */ @java.lang.Override public java.lang.String toString() diff --git a/javasource/email_connector/actions/GetMendixID.java b/javasource/email_connector/actions/GetMendixID.java index 295e88e..2812440 100644 --- a/javasource/email_connector/actions/GetMendixID.java +++ b/javasource/email_connector/actions/GetMendixID.java @@ -33,6 +33,7 @@ public java.lang.Long executeAction() throws Exception /** * Returns a string representation of this action + * @return a string representation of this action */ @java.lang.Override public java.lang.String toString() diff --git a/javasource/email_connector/actions/GetPayloadFromJWT.java b/javasource/email_connector/actions/GetPayloadFromJWT.java index f360d09..83a8dfa 100644 --- a/javasource/email_connector/actions/GetPayloadFromJWT.java +++ b/javasource/email_connector/actions/GetPayloadFromJWT.java @@ -35,6 +35,7 @@ public java.lang.String executeAction() throws Exception /** * Returns a string representation of this action + * @return a string representation of this action */ @java.lang.Override public java.lang.String toString() diff --git a/javasource/email_connector/actions/RetrieveEmailMessages.java b/javasource/email_connector/actions/RetrieveEmailMessages.java index 77c48dd..93ccd11 100644 --- a/javasource/email_connector/actions/RetrieveEmailMessages.java +++ b/javasource/email_connector/actions/RetrieveEmailMessages.java @@ -42,7 +42,7 @@ public RetrieveEmailMessages(IContext context, IMendixObject emailAccount, java. @java.lang.Override public java.lang.Void executeAction() throws Exception { - this.emailAccount = __emailAccount == null ? null : email_connector.proxies.EmailAccount.initialize(getContext(), __emailAccount); + this.emailAccount = this.__emailAccount == null ? null : email_connector.proxies.EmailAccount.initialize(getContext(), __emailAccount); // BEGIN USER CODE if (this.emailAccount == null) @@ -63,6 +63,7 @@ public java.lang.Void executeAction() throws Exception /** * Returns a string representation of this action + * @return a string representation of this action */ @java.lang.Override public java.lang.String toString() diff --git a/javasource/email_connector/actions/SendEmail.java b/javasource/email_connector/actions/SendEmail.java index ea267cd..047455a 100644 --- a/javasource/email_connector/actions/SendEmail.java +++ b/javasource/email_connector/actions/SendEmail.java @@ -43,9 +43,9 @@ public SendEmail(IContext context, IMendixObject EmailAccount, IMendixObject Ema @java.lang.Override public java.lang.Boolean executeAction() throws Exception { - this.EmailAccount = __EmailAccount == null ? null : email_connector.proxies.EmailAccount.initialize(getContext(), __EmailAccount); + this.EmailAccount = this.__EmailAccount == null ? null : email_connector.proxies.EmailAccount.initialize(getContext(), __EmailAccount); - this.EmailMessage = __EmailMessage == null ? null : email_connector.proxies.EmailMessage.initialize(getContext(), __EmailMessage); + this.EmailMessage = this.__EmailMessage == null ? null : email_connector.proxies.EmailMessage.initialize(getContext(), __EmailMessage); // BEGIN USER CODE if (this.EmailAccount == null) @@ -85,6 +85,7 @@ public java.lang.Boolean executeAction() throws Exception /** * Returns a string representation of this action + * @return a string representation of this action */ @java.lang.Override public java.lang.String toString() diff --git a/javasource/email_connector/actions/SendEmailWithTemplate.java b/javasource/email_connector/actions/SendEmailWithTemplate.java index 2e7af95..fd424b1 100644 --- a/javasource/email_connector/actions/SendEmailWithTemplate.java +++ b/javasource/email_connector/actions/SendEmailWithTemplate.java @@ -44,9 +44,9 @@ public SendEmailWithTemplate(IContext context, IMendixObject DataObject, IMendix @java.lang.Override public java.lang.Void executeAction() throws Exception { - this.EmailAccount = __EmailAccount == null ? null : email_connector.proxies.EmailAccount.initialize(getContext(), __EmailAccount); + this.EmailAccount = this.__EmailAccount == null ? null : email_connector.proxies.EmailAccount.initialize(getContext(), __EmailAccount); - this.EmailTemplate = __EmailTemplate == null ? null : email_connector.proxies.EmailTemplate.initialize(getContext(), __EmailTemplate); + this.EmailTemplate = this.__EmailTemplate == null ? null : email_connector.proxies.EmailTemplate.initialize(getContext(), __EmailTemplate); // BEGIN USER CODE if (this.EmailAccount == null) @@ -84,6 +84,7 @@ public java.lang.Void executeAction() throws Exception /** * Returns a string representation of this action + * @return a string representation of this action */ @java.lang.Override public java.lang.String toString() diff --git a/javasource/email_connector/actions/SubscribeToIncomingEmail.java b/javasource/email_connector/actions/SubscribeToIncomingEmail.java index 1aad320..a9072f7 100644 --- a/javasource/email_connector/actions/SubscribeToIncomingEmail.java +++ b/javasource/email_connector/actions/SubscribeToIncomingEmail.java @@ -39,7 +39,7 @@ public SubscribeToIncomingEmail(IContext context, IMendixObject account, java.la @java.lang.Override public java.lang.Void executeAction() throws Exception { - this.account = __account == null ? null : email_connector.proxies.EmailAccount.initialize(getContext(), __account); + this.account = this.__account == null ? null : email_connector.proxies.EmailAccount.initialize(getContext(), __account); // BEGIN USER CODE if (this.account == null) @@ -57,6 +57,7 @@ public java.lang.Void executeAction() throws Exception /** * Returns a string representation of this action + * @return a string representation of this action */ @java.lang.Override public java.lang.String toString() diff --git a/javasource/email_connector/actions/UnsubscribeFromIncomingEmail.java b/javasource/email_connector/actions/UnsubscribeFromIncomingEmail.java index 486d9b8..9e64a2e 100644 --- a/javasource/email_connector/actions/UnsubscribeFromIncomingEmail.java +++ b/javasource/email_connector/actions/UnsubscribeFromIncomingEmail.java @@ -34,7 +34,7 @@ public UnsubscribeFromIncomingEmail(IContext context, IMendixObject account) @java.lang.Override public java.lang.Void executeAction() throws Exception { - this.account = __account == null ? null : email_connector.proxies.EmailAccount.initialize(getContext(), __account); + this.account = this.__account == null ? null : email_connector.proxies.EmailAccount.initialize(getContext(), __account); // BEGIN USER CODE if (this.account == null) @@ -50,6 +50,7 @@ public java.lang.Void executeAction() throws Exception /** * Returns a string representation of this action + * @return a string representation of this action */ @java.lang.Override public java.lang.String toString() diff --git a/javasource/email_connector/implementation/Commons.java b/javasource/email_connector/implementation/Commons.java index 4bd1b18..ad4a85d 100644 --- a/javasource/email_connector/implementation/Commons.java +++ b/javasource/email_connector/implementation/Commons.java @@ -49,7 +49,7 @@ else if (attachmentPosition.equalsIgnoreCase("attachment")) } public static String getHandling(ENUM_MessageHandling messageHandling) throws EmailConnectorException { - if(messageHandling == null) + if (messageHandling == null) throw new EmailConnectorException(Error.EMPTY_MESSAGE_HANDLING.getMessage()); else if (messageHandling.equals(ENUM_MessageHandling.DeleteMessage)) return "DeleteMessage"; @@ -60,7 +60,7 @@ else if (messageHandling.equals(ENUM_MessageHandling.MoveMessage)) } public static FetchStrategy getFetchStrategy(email_connector.proxies.ENUM_FetchStrategy fetchStrategy) throws EmailConnectorException { - if(fetchStrategy == null) + if (fetchStrategy == null) throw new EmailConnectorException(Error.EMPTY_FETCH_STRATEGY.getMessage()); else if (fetchStrategy.name().equalsIgnoreCase("Latest")) return FetchStrategy.LATEST; diff --git a/javasource/email_connector/implementation/EmailListener.java b/javasource/email_connector/implementation/EmailListener.java index 1af3b2a..f3b13fd 100644 --- a/javasource/email_connector/implementation/EmailListener.java +++ b/javasource/email_connector/implementation/EmailListener.java @@ -58,7 +58,7 @@ public void onBatchReceived(List messageList) { } catch (CoreRuntimeException | EmailConnectorException | CoreException e) { log.error(e.getMessage(), e); if (context != null && context.isInTransaction()) - context.rollbackTransAction(); + context.rollbackTransaction(); } } diff --git a/javasource/email_connector/implementation/MxMailMapper.java b/javasource/email_connector/implementation/MxMailMapper.java index 2b39c30..1f0f9a2 100644 --- a/javasource/email_connector/implementation/MxMailMapper.java +++ b/javasource/email_connector/implementation/MxMailMapper.java @@ -15,9 +15,7 @@ import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +import java.util.*; import static email_connector.implementation.Commons.*; @@ -50,18 +48,23 @@ public static void setReceiveAccountConfigurations(EmailAccount mxEmailAccount, } - private static void setCommonAccountConfiguration(EmailAccount mxEmailAccount, Account serverAccount) { + private static void setCommonAccountConfiguration(EmailAccount mxEmailAccount, Account serverAccount) throws EmailConnectorException { serverAccount.setSanitizeEmailBodyForXSSScript(mxEmailAccount.getsanitizeEmailBodyForXSSScript()); - serverAccount.setConnectionTimeout(String.valueOf(mxEmailAccount.getTimeout())); + if (mxEmailAccount.getTimeout() > 0) serverAccount.setConnectionTimeout(mxEmailAccount.getTimeout()); serverAccount.setFromDisplayName(mxEmailAccount.getFromDisplayName()); serverAccount.setUseSSLServerCheckIdentity(mxEmailAccount.getUseSSLCheckServerIdentity()); + serverAccount.setSharedMailbox(mxEmailAccount.getIsSharedMailbox()); + if (mxEmailAccount.getIsSharedMailbox() && (mxEmailAccount.getMailAddress() == null || mxEmailAccount.getMailAddress().isBlank())) { + throw new EmailConnectorException(Error.EMPTY_MAIL_ADDRESS.getMessage()); + } + serverAccount.setMailAddress(mxEmailAccount.getMailAddress()); serverAccount.setOAuthUsed(mxEmailAccount.getisOAuthUsed()); - if (serverAccount.isOAuthUsed() && mxEmailAccount.getOAuthSetupComplete().equals(true)) { + if (serverAccount.isOAuthUsed()) { serverAccount.setoAuthAccessTokenWorker(new OAuthTokenWorker(mxEmailAccount)); } } - private static void processAttachment(Message serverMessage, EmailMessage mxEmailMessage, boolean processInlineAttachment,IContext context) throws EmailConnectorException { + private static void processAttachment(Message serverMessage, EmailMessage mxEmailMessage, boolean processInlineAttachment, IContext context) throws EmailConnectorException { List serverAttachmentList = serverMessage.getAttachment(); for (Attachment serverAttachment : serverAttachmentList) { var mxAttachment = new email_connector.proxies.Attachment(context); @@ -75,7 +78,6 @@ private static void processAttachment(Message serverMessage, EmailMessage mxEmai mxAttachment.setattachmentSize(serverAttachment.getAttachmentSize()); if (serverAttachment.getAttachmentPosition() != null) mxAttachment.setPosition(getPosition(serverAttachment.getAttachmentPosition())); - var byteStream = new ByteArrayInputStream(serverAttachment.getAttachmentContent()); Core.storeFileDocumentContent(context, mxAttachment.getMendixObject(), byteStream); if (serverAttachment.getAttachmentPosition() != null && processInlineAttachment) { @@ -84,12 +86,11 @@ private static void processAttachment(Message serverMessage, EmailMessage mxEmai } } - private static void displayInlineAttachment(EmailMessage mxEmailMessage, Attachment serverAttachment, email_connector.proxies.Attachment mxAttachment) { - var url = "/file?target=window&fileID="; + var url = "/file?target=window&guid="; if (serverAttachment.getAttachmentPosition().equalsIgnoreCase("inline")) { String source = "cid:" + serverAttachment.getAttachmentContentID(); - String target = url + mxAttachment.getFileID(); + String target = url + mxAttachment.getMendixObject().getId().toLong(); mxEmailMessage.setContent(mxEmailMessage.getContent().replaceAll(source, target)); } } @@ -111,12 +112,10 @@ private static EmailMessage getMxEmailMessage(EmailAccount mxEmailAccount, Messa mxEmailMessage.setReplyTo(serverMessage.getReplyTo()); mxEmailMessage.setFromDisplayName(serverMessage.getFromDisplayName()); if (serverMessage.isHasAttachments()) { - processAttachment(serverMessage, mxEmailMessage, mxEmailAccount.getIncomingEmailConfiguration_EmailAccount().getProcessInlineImage(),context); + processAttachment(serverMessage, mxEmailMessage, mxEmailAccount.getIncomingEmailConfiguration_EmailAccount().getProcessInlineImage(), context); } - if(serverMessage.getHeaders() != null && !serverMessage.getHeaders().isEmpty()) - { - for (var header: serverMessage.getHeaders().entrySet()) - { + if (serverMessage.getHeaders() != null && !serverMessage.getHeaders().isEmpty()) { + for (var header : serverMessage.getHeaders().entrySet()) { var mxHeader = new EmailHeader(context); mxHeader.setKey(header.getKey()); mxHeader.setValue(header.getValue()); @@ -160,17 +159,23 @@ public static void setServerSendEmailMessage(EmailMessage emailMessage, SendEmai sendEmailMsg.setSubject(emailMessage.getSubject()); sendEmailMsg.setFromDisplayName(emailMessage.getFromDisplayName()); setRecipients(emailMessage, sendEmailMsg); - sendEmailMsg.setContent(emailMessage.getContent()); sendEmailMsg.setPlainBody(emailMessage.getPlainBody()); sendEmailMsg.setUseOnlyPlainText(emailMessage.getUseOnlyPlainText()); sendEmailMsg.setSigned(emailMessage.getisSigned()); - sendEmailMsg.setEncrypted(emailMessage.getisEncrypted()); + Map headerMap = new HashMap<>(); + List emailHeaders = Core.retrieveByPath(context, emailMessage.getMendixObject(), EmailHeader.MemberNames.EmailHeader_EmailMessage.toString()); + if (emailHeaders != null) { + for (IMendixObject header : emailHeaders) { + headerMap.put(EmailHeader.initialize(context, header).getKey(), EmailHeader.initialize(context, header).getValue()); + } + } + + sendEmailMsg.setHeaders(headerMap); if (emailMessage.getReplyTo() != null && !emailMessage.getReplyTo().isEmpty()) sendEmailMsg.setReplyTo(emailMessage.getReplyTo()); - if (attachmentList != null && !attachmentList.isEmpty()) { List serverAttachmentList = new ArrayList<>(); for (email_connector.proxies.Attachment mxAttachment : attachmentList) { @@ -186,7 +191,6 @@ public static void setServerSendEmailMessage(EmailMessage emailMessage, SendEmai } catch (IOException ex) { throw new EmailConnectorException(Error.ERROR_FETCH_ATTACHMENT_CONTENT.getMessage()); } - } sendEmailMsg.setAttachment(serverAttachmentList); } @@ -195,19 +199,15 @@ public static void setServerSendEmailMessage(EmailMessage emailMessage, SendEmai private static void setRecipients(EmailMessage emailMessage, SendEmailMessage sendEmailMsg) { if (emailMessage.getFrom() != null && !emailMessage.getFrom().isEmpty()) sendEmailMsg.setFrom(Arrays.asList(emailMessage.getFrom().trim().split(ADDRESSSEPARATORREGEX))); - if (emailMessage.getTo() != null && !emailMessage.getTo().isEmpty()) sendEmailMsg.setTo(Arrays.asList(emailMessage.getTo().trim().split(ADDRESSSEPARATORREGEX))); - if (emailMessage.getCC() != null && !emailMessage.getCC().isEmpty()) sendEmailMsg.setCc(Arrays.asList(emailMessage.getCC().trim().split(ADDRESSSEPARATORREGEX))); - if (emailMessage.getBCC() != null && !emailMessage.getBCC().isEmpty()) sendEmailMsg.setBcc(Arrays.asList(emailMessage.getBCC().trim().split(ADDRESSSEPARATORREGEX))); } public static void getMappedEmailProvider(IContext context, EmailProvider emailProviders, email_connector.proxies.EmailProvider mxEmailProvider) throws EmailConnectorException { - for (com.mendix.datahub.connector.email.model.autoconfig.IncomingServer incomingServer : emailProviders.getIncomingServers()) { var mxIncomingServer = new IncomingServer(context); mxIncomingServer.setIncomingServer_EmailProvider(mxEmailProvider); @@ -216,8 +216,6 @@ public static void getMappedEmailProvider(IContext context, EmailProvider emailP mxIncomingServer.setSocketType(incomingServer.getSocketType()); mxIncomingServer.setIncomingProtocol(getIncomingProxyProtocol(incomingServer.getType())); } - - for (com.mendix.datahub.connector.email.model.autoconfig.OutgoingServer outgoingServer : emailProviders.getOutgoingServers()) { var mxOutgoingServer = new OutgoingServer(context); mxOutgoingServer.setOutgoingServer_EmailProvider(mxEmailProvider); @@ -242,6 +240,7 @@ public static EmailMessage getEmailMessageFromTemplate(IContext context, EmailTe emailMessage.setUseOnlyPlainText(emailTemplate.getUseOnlyPlainText()); emailMessage.setReplyTo(emailTemplate.getReplyTo()); emailMessage.setFromDisplayName(emailTemplate.getFromDisplayName()); + emailMessage.setFrom(emailTemplate.getFromAddress()); if (Boolean.TRUE.equals(queued)) { emailMessage.setQueuedForSending(true); emailMessage.setStatus(ENUM_EmailStatus.QUEUED); diff --git a/javasource/email_connector/implementation/NotificationListener.java b/javasource/email_connector/implementation/NotificationListener.java index 4655a5f..ee8193d 100644 --- a/javasource/email_connector/implementation/NotificationListener.java +++ b/javasource/email_connector/implementation/NotificationListener.java @@ -56,7 +56,7 @@ public void onEmailNotificationReceived(List messageList) { } catch (CoreRuntimeException | EmailConnectorException | CoreException e) { log.error(e.getMessage(), e); if (context != null && context.isInTransaction()) - context.rollbackTransAction(); + context.rollbackTransaction(); } } diff --git a/javasource/email_connector/proxies/Attachment.java b/javasource/email_connector/proxies/Attachment.java deleted file mode 100644 index 9883a08..0000000 --- a/javasource/email_connector/proxies/Attachment.java +++ /dev/null @@ -1,403 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package email_connector.proxies; - -public class Attachment extends system.proxies.FileDocument -{ - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "Email_Connector.Attachment"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - ContentID("ContentID"), - attachmentName("attachmentName"), - attachmentSize("attachmentSize"), - attachmentContentType("attachmentContentType"), - Position("Position"), - FileID("FileID"), - Name("Name"), - DeleteAfterDownload("DeleteAfterDownload"), - Contents("Contents"), - HasContents("HasContents"), - Size("Size"), - Attachment_EmailMessage("Email_Connector.Attachment_EmailMessage"), - Attachment_EmailTemplate("Email_Connector.Attachment_EmailTemplate"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public Attachment(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "Email_Connector.Attachment")); - } - - protected Attachment(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject attachmentMendixObject) - { - super(context, attachmentMendixObject); - if (!com.mendix.core.Core.isSubClassOf("Email_Connector.Attachment", attachmentMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a Email_Connector.Attachment"); - } - - /** - * @deprecated Use 'Attachment.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static email_connector.proxies.Attachment initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return email_connector.proxies.Attachment.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static email_connector.proxies.Attachment initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new email_connector.proxies.Attachment(context, mendixObject); - } - - public static email_connector.proxies.Attachment load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return email_connector.proxies.Attachment.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//Email_Connector.Attachment" + xpathConstraint)) - result.add(email_connector.proxies.Attachment.initialize(context, obj)); - return result; - } - - /** - * @return value of ContentID - */ - public final java.lang.String getContentID() - { - return getContentID(getContext()); - } - - /** - * @param context - * @return value of ContentID - */ - public final java.lang.String getContentID(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.ContentID.toString()); - } - - /** - * Set value of ContentID - * @param contentid - */ - public final void setContentID(java.lang.String contentid) - { - setContentID(getContext(), contentid); - } - - /** - * Set value of ContentID - * @param context - * @param contentid - */ - public final void setContentID(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String contentid) - { - getMendixObject().setValue(context, MemberNames.ContentID.toString(), contentid); - } - - /** - * @return value of attachmentName - */ - public final java.lang.String getattachmentName() - { - return getattachmentName(getContext()); - } - - /** - * @param context - * @return value of attachmentName - */ - public final java.lang.String getattachmentName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.attachmentName.toString()); - } - - /** - * Set value of attachmentName - * @param attachmentname - */ - public final void setattachmentName(java.lang.String attachmentname) - { - setattachmentName(getContext(), attachmentname); - } - - /** - * Set value of attachmentName - * @param context - * @param attachmentname - */ - public final void setattachmentName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String attachmentname) - { - getMendixObject().setValue(context, MemberNames.attachmentName.toString(), attachmentname); - } - - /** - * @return value of attachmentSize - */ - public final java.lang.Integer getattachmentSize() - { - return getattachmentSize(getContext()); - } - - /** - * @param context - * @return value of attachmentSize - */ - public final java.lang.Integer getattachmentSize(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Integer) getMendixObject().getValue(context, MemberNames.attachmentSize.toString()); - } - - /** - * Set value of attachmentSize - * @param attachmentsize - */ - public final void setattachmentSize(java.lang.Integer attachmentsize) - { - setattachmentSize(getContext(), attachmentsize); - } - - /** - * Set value of attachmentSize - * @param context - * @param attachmentsize - */ - public final void setattachmentSize(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Integer attachmentsize) - { - getMendixObject().setValue(context, MemberNames.attachmentSize.toString(), attachmentsize); - } - - /** - * @return value of attachmentContentType - */ - public final java.lang.String getattachmentContentType() - { - return getattachmentContentType(getContext()); - } - - /** - * @param context - * @return value of attachmentContentType - */ - public final java.lang.String getattachmentContentType(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.attachmentContentType.toString()); - } - - /** - * Set value of attachmentContentType - * @param attachmentcontenttype - */ - public final void setattachmentContentType(java.lang.String attachmentcontenttype) - { - setattachmentContentType(getContext(), attachmentcontenttype); - } - - /** - * Set value of attachmentContentType - * @param context - * @param attachmentcontenttype - */ - public final void setattachmentContentType(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String attachmentcontenttype) - { - getMendixObject().setValue(context, MemberNames.attachmentContentType.toString(), attachmentcontenttype); - } - - /** - * Set value of Position - * @param position - */ - public final email_connector.proxies.ENUM_AttachmentPosition getPosition() - { - return getPosition(getContext()); - } - - /** - * @param context - * @return value of Position - */ - public final email_connector.proxies.ENUM_AttachmentPosition getPosition(com.mendix.systemwideinterfaces.core.IContext context) - { - Object obj = getMendixObject().getValue(context, MemberNames.Position.toString()); - if (obj == null) - return null; - - return email_connector.proxies.ENUM_AttachmentPosition.valueOf((java.lang.String) obj); - } - - /** - * Set value of Position - * @param position - */ - public final void setPosition(email_connector.proxies.ENUM_AttachmentPosition position) - { - setPosition(getContext(), position); - } - - /** - * Set value of Position - * @param context - * @param position - */ - public final void setPosition(com.mendix.systemwideinterfaces.core.IContext context, email_connector.proxies.ENUM_AttachmentPosition position) - { - if (position != null) - getMendixObject().setValue(context, MemberNames.Position.toString(), position.toString()); - else - getMendixObject().setValue(context, MemberNames.Position.toString(), null); - } - - /** - * @return value of Attachment_EmailMessage - */ - public final email_connector.proxies.EmailMessage getAttachment_EmailMessage() throws com.mendix.core.CoreException - { - return getAttachment_EmailMessage(getContext()); - } - - /** - * @param context - * @return value of Attachment_EmailMessage - */ - public final email_connector.proxies.EmailMessage getAttachment_EmailMessage(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - email_connector.proxies.EmailMessage result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.Attachment_EmailMessage.toString()); - if (identifier != null) - result = email_connector.proxies.EmailMessage.load(context, identifier); - return result; - } - - /** - * Set value of Attachment_EmailMessage - * @param attachment_emailmessage - */ - public final void setAttachment_EmailMessage(email_connector.proxies.EmailMessage attachment_emailmessage) - { - setAttachment_EmailMessage(getContext(), attachment_emailmessage); - } - - /** - * Set value of Attachment_EmailMessage - * @param context - * @param attachment_emailmessage - */ - public final void setAttachment_EmailMessage(com.mendix.systemwideinterfaces.core.IContext context, email_connector.proxies.EmailMessage attachment_emailmessage) - { - if (attachment_emailmessage == null) - getMendixObject().setValue(context, MemberNames.Attachment_EmailMessage.toString(), null); - else - getMendixObject().setValue(context, MemberNames.Attachment_EmailMessage.toString(), attachment_emailmessage.getMendixObject().getId()); - } - - /** - * @return value of Attachment_EmailTemplate - */ - public final email_connector.proxies.EmailTemplate getAttachment_EmailTemplate() throws com.mendix.core.CoreException - { - return getAttachment_EmailTemplate(getContext()); - } - - /** - * @param context - * @return value of Attachment_EmailTemplate - */ - public final email_connector.proxies.EmailTemplate getAttachment_EmailTemplate(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - email_connector.proxies.EmailTemplate result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.Attachment_EmailTemplate.toString()); - if (identifier != null) - result = email_connector.proxies.EmailTemplate.load(context, identifier); - return result; - } - - /** - * Set value of Attachment_EmailTemplate - * @param attachment_emailtemplate - */ - public final void setAttachment_EmailTemplate(email_connector.proxies.EmailTemplate attachment_emailtemplate) - { - setAttachment_EmailTemplate(getContext(), attachment_emailtemplate); - } - - /** - * Set value of Attachment_EmailTemplate - * @param context - * @param attachment_emailtemplate - */ - public final void setAttachment_EmailTemplate(com.mendix.systemwideinterfaces.core.IContext context, email_connector.proxies.EmailTemplate attachment_emailtemplate) - { - if (attachment_emailtemplate == null) - getMendixObject().setValue(context, MemberNames.Attachment_EmailTemplate.toString(), null); - else - getMendixObject().setValue(context, MemberNames.Attachment_EmailTemplate.toString(), attachment_emailtemplate.getMendixObject().getId()); - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final email_connector.proxies.Attachment that = (email_connector.proxies.Attachment) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "Email_Connector.Attachment"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Override - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/email_connector/proxies/ENUM_AttachmentPosition.java b/javasource/email_connector/proxies/ENUM_AttachmentPosition.java deleted file mode 100644 index 2a3af74..0000000 --- a/javasource/email_connector/proxies/ENUM_AttachmentPosition.java +++ /dev/null @@ -1,32 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package email_connector.proxies; - -public enum ENUM_AttachmentPosition -{ - Attachment(new java.lang.String[][] { new java.lang.String[] { "en_US", "Attachment" } }), - Inline(new java.lang.String[][] { new java.lang.String[] { "en_US", "Inline" } }); - - private java.util.Map captions; - - private ENUM_AttachmentPosition(java.lang.String[][] captionStrings) - { - this.captions = new java.util.HashMap(); - for (java.lang.String[] captionString : captionStrings) - captions.put(captionString[0], captionString[1]); - } - - public java.lang.String getCaption(java.lang.String languageCode) - { - if (captions.containsKey(languageCode)) - return captions.get(languageCode); - return captions.get("en_US"); - } - - public java.lang.String getCaption() - { - return captions.get("en_US"); - } -} diff --git a/javasource/email_connector/proxies/ENUM_EmailStatus.java b/javasource/email_connector/proxies/ENUM_EmailStatus.java deleted file mode 100644 index 658eb5b..0000000 --- a/javasource/email_connector/proxies/ENUM_EmailStatus.java +++ /dev/null @@ -1,35 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package email_connector.proxies; - -public enum ENUM_EmailStatus -{ - QUEUED(new java.lang.String[][] { new java.lang.String[] { "en_US", "Queued" } }), - SENT(new java.lang.String[][] { new java.lang.String[] { "en_US", "Sent" } }), - FAILED(new java.lang.String[][] { new java.lang.String[] { "en_US", "Failed" } }), - ERROR(new java.lang.String[][] { new java.lang.String[] { "en_US", "Error" } }), - RECEIVED(new java.lang.String[][] { new java.lang.String[] { "en_US", "Received" } }); - - private java.util.Map captions; - - private ENUM_EmailStatus(java.lang.String[][] captionStrings) - { - this.captions = new java.util.HashMap(); - for (java.lang.String[] captionString : captionStrings) - captions.put(captionString[0], captionString[1]); - } - - public java.lang.String getCaption(java.lang.String languageCode) - { - if (captions.containsKey(languageCode)) - return captions.get(languageCode); - return captions.get("en_US"); - } - - public java.lang.String getCaption() - { - return captions.get("en_US"); - } -} diff --git a/javasource/email_connector/proxies/ENUM_FetchStrategy.java b/javasource/email_connector/proxies/ENUM_FetchStrategy.java deleted file mode 100644 index 0031612..0000000 --- a/javasource/email_connector/proxies/ENUM_FetchStrategy.java +++ /dev/null @@ -1,32 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package email_connector.proxies; - -public enum ENUM_FetchStrategy -{ - Latest(new java.lang.String[][] { new java.lang.String[] { "en_US", "Latest" } }), - Oldest(new java.lang.String[][] { new java.lang.String[] { "en_US", "Oldest" } }); - - private java.util.Map captions; - - private ENUM_FetchStrategy(java.lang.String[][] captionStrings) - { - this.captions = new java.util.HashMap(); - for (java.lang.String[] captionString : captionStrings) - captions.put(captionString[0], captionString[1]); - } - - public java.lang.String getCaption(java.lang.String languageCode) - { - if (captions.containsKey(languageCode)) - return captions.get(languageCode); - return captions.get("en_US"); - } - - public java.lang.String getCaption() - { - return captions.get("en_US"); - } -} diff --git a/javasource/email_connector/proxies/ENUM_IncomingProtocol.java b/javasource/email_connector/proxies/ENUM_IncomingProtocol.java deleted file mode 100644 index d4baca9..0000000 --- a/javasource/email_connector/proxies/ENUM_IncomingProtocol.java +++ /dev/null @@ -1,34 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package email_connector.proxies; - -public enum ENUM_IncomingProtocol -{ - IMAP(new java.lang.String[][] { new java.lang.String[] { "en_US", "IMAP" } }), - IMAPS(new java.lang.String[][] { new java.lang.String[] { "en_US", "IMAPS" } }), - POP3(new java.lang.String[][] { new java.lang.String[] { "en_US", "POP3" } }), - POP3S(new java.lang.String[][] { new java.lang.String[] { "en_US", "POP3S" } }); - - private java.util.Map captions; - - private ENUM_IncomingProtocol(java.lang.String[][] captionStrings) - { - this.captions = new java.util.HashMap(); - for (java.lang.String[] captionString : captionStrings) - captions.put(captionString[0], captionString[1]); - } - - public java.lang.String getCaption(java.lang.String languageCode) - { - if (captions.containsKey(languageCode)) - return captions.get(languageCode); - return captions.get("en_US"); - } - - public java.lang.String getCaption() - { - return captions.get("en_US"); - } -} diff --git a/javasource/email_connector/proxies/ENUM_LDAPAuthType.java b/javasource/email_connector/proxies/ENUM_LDAPAuthType.java deleted file mode 100644 index ee32ce2..0000000 --- a/javasource/email_connector/proxies/ENUM_LDAPAuthType.java +++ /dev/null @@ -1,32 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package email_connector.proxies; - -public enum ENUM_LDAPAuthType -{ - none(new java.lang.String[][] { new java.lang.String[] { "en_US", "No Authentication" } }), - simple(new java.lang.String[][] { new java.lang.String[] { "en_US", "Simple Authentication" } }); - - private java.util.Map captions; - - private ENUM_LDAPAuthType(java.lang.String[][] captionStrings) - { - this.captions = new java.util.HashMap(); - for (java.lang.String[] captionString : captionStrings) - captions.put(captionString[0], captionString[1]); - } - - public java.lang.String getCaption(java.lang.String languageCode) - { - if (captions.containsKey(languageCode)) - return captions.get(languageCode); - return captions.get("en_US"); - } - - public java.lang.String getCaption() - { - return captions.get("en_US"); - } -} diff --git a/javasource/email_connector/proxies/ENUM_LogType.java b/javasource/email_connector/proxies/ENUM_LogType.java deleted file mode 100644 index b0e0c2d..0000000 --- a/javasource/email_connector/proxies/ENUM_LogType.java +++ /dev/null @@ -1,33 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package email_connector.proxies; - -public enum ENUM_LogType -{ - Message(new java.lang.String[][] { new java.lang.String[] { "en_US", "Message" } }), - Warning(new java.lang.String[][] { new java.lang.String[] { "en_US", "Warning" } }), - Error(new java.lang.String[][] { new java.lang.String[] { "en_US", "Error" } }); - - private java.util.Map captions; - - private ENUM_LogType(java.lang.String[][] captionStrings) - { - this.captions = new java.util.HashMap(); - for (java.lang.String[] captionString : captionStrings) - captions.put(captionString[0], captionString[1]); - } - - public java.lang.String getCaption(java.lang.String languageCode) - { - if (captions.containsKey(languageCode)) - return captions.get(languageCode); - return captions.get("en_US"); - } - - public java.lang.String getCaption() - { - return captions.get("en_US"); - } -} diff --git a/javasource/email_connector/proxies/ENUM_MessageHandling.java b/javasource/email_connector/proxies/ENUM_MessageHandling.java deleted file mode 100644 index 63f074d..0000000 --- a/javasource/email_connector/proxies/ENUM_MessageHandling.java +++ /dev/null @@ -1,33 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package email_connector.proxies; - -public enum ENUM_MessageHandling -{ - NoHandling(new java.lang.String[][] { new java.lang.String[] { "en_US", "None" } }), - DeleteMessage(new java.lang.String[][] { new java.lang.String[] { "en_US", "Remove original emails from server" } }), - MoveMessage(new java.lang.String[][] { new java.lang.String[] { "en_US", "Move emails on server to another (existing) folder" } }); - - private java.util.Map captions; - - private ENUM_MessageHandling(java.lang.String[][] captionStrings) - { - this.captions = new java.util.HashMap(); - for (java.lang.String[] captionString : captionStrings) - captions.put(captionString[0], captionString[1]); - } - - public java.lang.String getCaption(java.lang.String languageCode) - { - if (captions.containsKey(languageCode)) - return captions.get(languageCode); - return captions.get("en_US"); - } - - public java.lang.String getCaption() - { - return captions.get("en_US"); - } -} diff --git a/javasource/email_connector/proxies/ENUM_OutgoingProtocol.java b/javasource/email_connector/proxies/ENUM_OutgoingProtocol.java deleted file mode 100644 index 59a391a..0000000 --- a/javasource/email_connector/proxies/ENUM_OutgoingProtocol.java +++ /dev/null @@ -1,31 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package email_connector.proxies; - -public enum ENUM_OutgoingProtocol -{ - SMTP(new java.lang.String[][] { new java.lang.String[] { "en_US", "SMTP" } }); - - private java.util.Map captions; - - private ENUM_OutgoingProtocol(java.lang.String[][] captionStrings) - { - this.captions = new java.util.HashMap(); - for (java.lang.String[] captionString : captionStrings) - captions.put(captionString[0], captionString[1]); - } - - public java.lang.String getCaption(java.lang.String languageCode) - { - if (captions.containsKey(languageCode)) - return captions.get(languageCode); - return captions.get("en_US"); - } - - public java.lang.String getCaption() - { - return captions.get("en_US"); - } -} diff --git a/javasource/email_connector/proxies/ENUM_RecipientsRegEx.java b/javasource/email_connector/proxies/ENUM_RecipientsRegEx.java deleted file mode 100644 index abb22e6..0000000 --- a/javasource/email_connector/proxies/ENUM_RecipientsRegEx.java +++ /dev/null @@ -1,31 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package email_connector.proxies; - -public enum ENUM_RecipientsRegEx -{ - regex(new java.lang.String[][] { new java.lang.String[] { "en_US", "^(?:(?:\"?(?:[^\";]*)\"?\\s?)??;\\s?))*(?:(?:(?:\"?(?:[^\";]*)\"?\\s?)??\\s?)))$" } }); - - private java.util.Map captions; - - private ENUM_RecipientsRegEx(java.lang.String[][] captionStrings) - { - this.captions = new java.util.HashMap(); - for (java.lang.String[] captionString : captionStrings) - captions.put(captionString[0], captionString[1]); - } - - public java.lang.String getCaption(java.lang.String languageCode) - { - if (captions.containsKey(languageCode)) - return captions.get(languageCode); - return captions.get("en_US"); - } - - public java.lang.String getCaption() - { - return captions.get("en_US"); - } -} diff --git a/javasource/email_connector/proxies/EmailAccount.java b/javasource/email_connector/proxies/EmailAccount.java deleted file mode 100644 index 8c83641..0000000 --- a/javasource/email_connector/proxies/EmailAccount.java +++ /dev/null @@ -1,915 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package email_connector.proxies; - -public class EmailAccount -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject emailAccountMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "Email_Connector.EmailAccount"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - Username("Username"), - Password("Password"), - Timeout("Timeout"), - sanitizeEmailBodyForXSSScript("sanitizeEmailBodyForXSSScript"), - isP12Configured("isP12Configured"), - isLDAPConfigured("isLDAPConfigured"), - isIncomingEmailConfigured("isIncomingEmailConfigured"), - isOutgoingEmailConfigured("isOutgoingEmailConfigured"), - FromDisplayName("FromDisplayName"), - UseSSLCheckServerIdentity("UseSSLCheckServerIdentity"), - isOAuthUsed("isOAuthUsed"), - OAuthSetupComplete("OAuthSetupComplete"), - isEmailConfigAutoDetect("isEmailConfigAutoDetect"), - OutgoingEmailConfiguration_EmailAccount("Email_Connector.OutgoingEmailConfiguration_EmailAccount"), - IncomingEmailConfiguration_EmailAccount("Email_Connector.IncomingEmailConfiguration_EmailAccount"), - Pk12Certificate_EmailAccount("Email_Connector.Pk12Certificate_EmailAccount"), - EmailAccount_LDAPConfiguration("Email_Connector.EmailAccount_LDAPConfiguration"), - EmailAccount_OAuthProvider("Email_Connector.EmailAccount_OAuthProvider"), - EmailAccount_OAuthToken("Email_Connector.EmailAccount_OAuthToken"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public EmailAccount(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "Email_Connector.EmailAccount")); - } - - protected EmailAccount(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject emailAccountMendixObject) - { - if (emailAccountMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("Email_Connector.EmailAccount", emailAccountMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a Email_Connector.EmailAccount"); - - this.emailAccountMendixObject = emailAccountMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'EmailAccount.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static email_connector.proxies.EmailAccount initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return email_connector.proxies.EmailAccount.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static email_connector.proxies.EmailAccount initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new email_connector.proxies.EmailAccount(context, mendixObject); - } - - public static email_connector.proxies.EmailAccount load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return email_connector.proxies.EmailAccount.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//Email_Connector.EmailAccount" + xpathConstraint)) - result.add(email_connector.proxies.EmailAccount.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of Username - */ - public final java.lang.String getUsername() - { - return getUsername(getContext()); - } - - /** - * @param context - * @return value of Username - */ - public final java.lang.String getUsername(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Username.toString()); - } - - /** - * Set value of Username - * @param username - */ - public final void setUsername(java.lang.String username) - { - setUsername(getContext(), username); - } - - /** - * Set value of Username - * @param context - * @param username - */ - public final void setUsername(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String username) - { - getMendixObject().setValue(context, MemberNames.Username.toString(), username); - } - - /** - * @return value of Password - */ - public final java.lang.String getPassword() - { - return getPassword(getContext()); - } - - /** - * @param context - * @return value of Password - */ - public final java.lang.String getPassword(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Password.toString()); - } - - /** - * Set value of Password - * @param password - */ - public final void setPassword(java.lang.String password) - { - setPassword(getContext(), password); - } - - /** - * Set value of Password - * @param context - * @param password - */ - public final void setPassword(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String password) - { - getMendixObject().setValue(context, MemberNames.Password.toString(), password); - } - - /** - * @return value of Timeout - */ - public final java.lang.Integer getTimeout() - { - return getTimeout(getContext()); - } - - /** - * @param context - * @return value of Timeout - */ - public final java.lang.Integer getTimeout(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Integer) getMendixObject().getValue(context, MemberNames.Timeout.toString()); - } - - /** - * Set value of Timeout - * @param timeout - */ - public final void setTimeout(java.lang.Integer timeout) - { - setTimeout(getContext(), timeout); - } - - /** - * Set value of Timeout - * @param context - * @param timeout - */ - public final void setTimeout(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Integer timeout) - { - getMendixObject().setValue(context, MemberNames.Timeout.toString(), timeout); - } - - /** - * @return value of sanitizeEmailBodyForXSSScript - */ - public final java.lang.Boolean getsanitizeEmailBodyForXSSScript() - { - return getsanitizeEmailBodyForXSSScript(getContext()); - } - - /** - * @param context - * @return value of sanitizeEmailBodyForXSSScript - */ - public final java.lang.Boolean getsanitizeEmailBodyForXSSScript(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.sanitizeEmailBodyForXSSScript.toString()); - } - - /** - * Set value of sanitizeEmailBodyForXSSScript - * @param sanitizeemailbodyforxssscript - */ - public final void setsanitizeEmailBodyForXSSScript(java.lang.Boolean sanitizeemailbodyforxssscript) - { - setsanitizeEmailBodyForXSSScript(getContext(), sanitizeemailbodyforxssscript); - } - - /** - * Set value of sanitizeEmailBodyForXSSScript - * @param context - * @param sanitizeemailbodyforxssscript - */ - public final void setsanitizeEmailBodyForXSSScript(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean sanitizeemailbodyforxssscript) - { - getMendixObject().setValue(context, MemberNames.sanitizeEmailBodyForXSSScript.toString(), sanitizeemailbodyforxssscript); - } - - /** - * @return value of isP12Configured - */ - public final java.lang.Boolean getisP12Configured() - { - return getisP12Configured(getContext()); - } - - /** - * @param context - * @return value of isP12Configured - */ - public final java.lang.Boolean getisP12Configured(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.isP12Configured.toString()); - } - - /** - * Set value of isP12Configured - * @param isp12configured - */ - public final void setisP12Configured(java.lang.Boolean isp12configured) - { - setisP12Configured(getContext(), isp12configured); - } - - /** - * Set value of isP12Configured - * @param context - * @param isp12configured - */ - public final void setisP12Configured(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean isp12configured) - { - getMendixObject().setValue(context, MemberNames.isP12Configured.toString(), isp12configured); - } - - /** - * @return value of isLDAPConfigured - */ - public final java.lang.Boolean getisLDAPConfigured() - { - return getisLDAPConfigured(getContext()); - } - - /** - * @param context - * @return value of isLDAPConfigured - */ - public final java.lang.Boolean getisLDAPConfigured(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.isLDAPConfigured.toString()); - } - - /** - * Set value of isLDAPConfigured - * @param isldapconfigured - */ - public final void setisLDAPConfigured(java.lang.Boolean isldapconfigured) - { - setisLDAPConfigured(getContext(), isldapconfigured); - } - - /** - * Set value of isLDAPConfigured - * @param context - * @param isldapconfigured - */ - public final void setisLDAPConfigured(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean isldapconfigured) - { - getMendixObject().setValue(context, MemberNames.isLDAPConfigured.toString(), isldapconfigured); - } - - /** - * @return value of isIncomingEmailConfigured - */ - public final java.lang.Boolean getisIncomingEmailConfigured() - { - return getisIncomingEmailConfigured(getContext()); - } - - /** - * @param context - * @return value of isIncomingEmailConfigured - */ - public final java.lang.Boolean getisIncomingEmailConfigured(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.isIncomingEmailConfigured.toString()); - } - - /** - * Set value of isIncomingEmailConfigured - * @param isincomingemailconfigured - */ - public final void setisIncomingEmailConfigured(java.lang.Boolean isincomingemailconfigured) - { - setisIncomingEmailConfigured(getContext(), isincomingemailconfigured); - } - - /** - * Set value of isIncomingEmailConfigured - * @param context - * @param isincomingemailconfigured - */ - public final void setisIncomingEmailConfigured(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean isincomingemailconfigured) - { - getMendixObject().setValue(context, MemberNames.isIncomingEmailConfigured.toString(), isincomingemailconfigured); - } - - /** - * @return value of isOutgoingEmailConfigured - */ - public final java.lang.Boolean getisOutgoingEmailConfigured() - { - return getisOutgoingEmailConfigured(getContext()); - } - - /** - * @param context - * @return value of isOutgoingEmailConfigured - */ - public final java.lang.Boolean getisOutgoingEmailConfigured(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.isOutgoingEmailConfigured.toString()); - } - - /** - * Set value of isOutgoingEmailConfigured - * @param isoutgoingemailconfigured - */ - public final void setisOutgoingEmailConfigured(java.lang.Boolean isoutgoingemailconfigured) - { - setisOutgoingEmailConfigured(getContext(), isoutgoingemailconfigured); - } - - /** - * Set value of isOutgoingEmailConfigured - * @param context - * @param isoutgoingemailconfigured - */ - public final void setisOutgoingEmailConfigured(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean isoutgoingemailconfigured) - { - getMendixObject().setValue(context, MemberNames.isOutgoingEmailConfigured.toString(), isoutgoingemailconfigured); - } - - /** - * @return value of FromDisplayName - */ - public final java.lang.String getFromDisplayName() - { - return getFromDisplayName(getContext()); - } - - /** - * @param context - * @return value of FromDisplayName - */ - public final java.lang.String getFromDisplayName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.FromDisplayName.toString()); - } - - /** - * Set value of FromDisplayName - * @param fromdisplayname - */ - public final void setFromDisplayName(java.lang.String fromdisplayname) - { - setFromDisplayName(getContext(), fromdisplayname); - } - - /** - * Set value of FromDisplayName - * @param context - * @param fromdisplayname - */ - public final void setFromDisplayName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String fromdisplayname) - { - getMendixObject().setValue(context, MemberNames.FromDisplayName.toString(), fromdisplayname); - } - - /** - * @return value of UseSSLCheckServerIdentity - */ - public final java.lang.Boolean getUseSSLCheckServerIdentity() - { - return getUseSSLCheckServerIdentity(getContext()); - } - - /** - * @param context - * @return value of UseSSLCheckServerIdentity - */ - public final java.lang.Boolean getUseSSLCheckServerIdentity(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.UseSSLCheckServerIdentity.toString()); - } - - /** - * Set value of UseSSLCheckServerIdentity - * @param usesslcheckserveridentity - */ - public final void setUseSSLCheckServerIdentity(java.lang.Boolean usesslcheckserveridentity) - { - setUseSSLCheckServerIdentity(getContext(), usesslcheckserveridentity); - } - - /** - * Set value of UseSSLCheckServerIdentity - * @param context - * @param usesslcheckserveridentity - */ - public final void setUseSSLCheckServerIdentity(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean usesslcheckserveridentity) - { - getMendixObject().setValue(context, MemberNames.UseSSLCheckServerIdentity.toString(), usesslcheckserveridentity); - } - - /** - * @return value of isOAuthUsed - */ - public final java.lang.Boolean getisOAuthUsed() - { - return getisOAuthUsed(getContext()); - } - - /** - * @param context - * @return value of isOAuthUsed - */ - public final java.lang.Boolean getisOAuthUsed(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.isOAuthUsed.toString()); - } - - /** - * Set value of isOAuthUsed - * @param isoauthused - */ - public final void setisOAuthUsed(java.lang.Boolean isoauthused) - { - setisOAuthUsed(getContext(), isoauthused); - } - - /** - * Set value of isOAuthUsed - * @param context - * @param isoauthused - */ - public final void setisOAuthUsed(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean isoauthused) - { - getMendixObject().setValue(context, MemberNames.isOAuthUsed.toString(), isoauthused); - } - - /** - * @return value of OAuthSetupComplete - */ - public final java.lang.Boolean getOAuthSetupComplete() - { - return getOAuthSetupComplete(getContext()); - } - - /** - * @param context - * @return value of OAuthSetupComplete - */ - public final java.lang.Boolean getOAuthSetupComplete(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.OAuthSetupComplete.toString()); - } - - /** - * Set value of OAuthSetupComplete - * @param oauthsetupcomplete - */ - public final void setOAuthSetupComplete(java.lang.Boolean oauthsetupcomplete) - { - setOAuthSetupComplete(getContext(), oauthsetupcomplete); - } - - /** - * Set value of OAuthSetupComplete - * @param context - * @param oauthsetupcomplete - */ - public final void setOAuthSetupComplete(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean oauthsetupcomplete) - { - getMendixObject().setValue(context, MemberNames.OAuthSetupComplete.toString(), oauthsetupcomplete); - } - - /** - * @return value of isEmailConfigAutoDetect - */ - public final java.lang.Boolean getisEmailConfigAutoDetect() - { - return getisEmailConfigAutoDetect(getContext()); - } - - /** - * @param context - * @return value of isEmailConfigAutoDetect - */ - public final java.lang.Boolean getisEmailConfigAutoDetect(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.isEmailConfigAutoDetect.toString()); - } - - /** - * Set value of isEmailConfigAutoDetect - * @param isemailconfigautodetect - */ - public final void setisEmailConfigAutoDetect(java.lang.Boolean isemailconfigautodetect) - { - setisEmailConfigAutoDetect(getContext(), isemailconfigautodetect); - } - - /** - * Set value of isEmailConfigAutoDetect - * @param context - * @param isemailconfigautodetect - */ - public final void setisEmailConfigAutoDetect(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean isemailconfigautodetect) - { - getMendixObject().setValue(context, MemberNames.isEmailConfigAutoDetect.toString(), isemailconfigautodetect); - } - - /** - * @return value of OutgoingEmailConfiguration_EmailAccount - */ - public final email_connector.proxies.OutgoingEmailConfiguration getOutgoingEmailConfiguration_EmailAccount() throws com.mendix.core.CoreException - { - return getOutgoingEmailConfiguration_EmailAccount(getContext()); - } - - /** - * @param context - * @return value of OutgoingEmailConfiguration_EmailAccount - */ - public final email_connector.proxies.OutgoingEmailConfiguration getOutgoingEmailConfiguration_EmailAccount(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - email_connector.proxies.OutgoingEmailConfiguration result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.OutgoingEmailConfiguration_EmailAccount.toString()); - if (identifier != null) - result = email_connector.proxies.OutgoingEmailConfiguration.load(context, identifier); - return result; - } - - /** - * Set value of OutgoingEmailConfiguration_EmailAccount - * @param outgoingemailconfiguration_emailaccount - */ - public final void setOutgoingEmailConfiguration_EmailAccount(email_connector.proxies.OutgoingEmailConfiguration outgoingemailconfiguration_emailaccount) - { - setOutgoingEmailConfiguration_EmailAccount(getContext(), outgoingemailconfiguration_emailaccount); - } - - /** - * Set value of OutgoingEmailConfiguration_EmailAccount - * @param context - * @param outgoingemailconfiguration_emailaccount - */ - public final void setOutgoingEmailConfiguration_EmailAccount(com.mendix.systemwideinterfaces.core.IContext context, email_connector.proxies.OutgoingEmailConfiguration outgoingemailconfiguration_emailaccount) - { - if (outgoingemailconfiguration_emailaccount == null) - getMendixObject().setValue(context, MemberNames.OutgoingEmailConfiguration_EmailAccount.toString(), null); - else - getMendixObject().setValue(context, MemberNames.OutgoingEmailConfiguration_EmailAccount.toString(), outgoingemailconfiguration_emailaccount.getMendixObject().getId()); - } - - /** - * @return value of IncomingEmailConfiguration_EmailAccount - */ - public final email_connector.proxies.IncomingEmailConfiguration getIncomingEmailConfiguration_EmailAccount() throws com.mendix.core.CoreException - { - return getIncomingEmailConfiguration_EmailAccount(getContext()); - } - - /** - * @param context - * @return value of IncomingEmailConfiguration_EmailAccount - */ - public final email_connector.proxies.IncomingEmailConfiguration getIncomingEmailConfiguration_EmailAccount(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - email_connector.proxies.IncomingEmailConfiguration result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.IncomingEmailConfiguration_EmailAccount.toString()); - if (identifier != null) - result = email_connector.proxies.IncomingEmailConfiguration.load(context, identifier); - return result; - } - - /** - * Set value of IncomingEmailConfiguration_EmailAccount - * @param incomingemailconfiguration_emailaccount - */ - public final void setIncomingEmailConfiguration_EmailAccount(email_connector.proxies.IncomingEmailConfiguration incomingemailconfiguration_emailaccount) - { - setIncomingEmailConfiguration_EmailAccount(getContext(), incomingemailconfiguration_emailaccount); - } - - /** - * Set value of IncomingEmailConfiguration_EmailAccount - * @param context - * @param incomingemailconfiguration_emailaccount - */ - public final void setIncomingEmailConfiguration_EmailAccount(com.mendix.systemwideinterfaces.core.IContext context, email_connector.proxies.IncomingEmailConfiguration incomingemailconfiguration_emailaccount) - { - if (incomingemailconfiguration_emailaccount == null) - getMendixObject().setValue(context, MemberNames.IncomingEmailConfiguration_EmailAccount.toString(), null); - else - getMendixObject().setValue(context, MemberNames.IncomingEmailConfiguration_EmailAccount.toString(), incomingemailconfiguration_emailaccount.getMendixObject().getId()); - } - - /** - * @return value of Pk12Certificate_EmailAccount - */ - public final email_connector.proxies.Pk12Certificate getPk12Certificate_EmailAccount() throws com.mendix.core.CoreException - { - return getPk12Certificate_EmailAccount(getContext()); - } - - /** - * @param context - * @return value of Pk12Certificate_EmailAccount - */ - public final email_connector.proxies.Pk12Certificate getPk12Certificate_EmailAccount(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - email_connector.proxies.Pk12Certificate result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.Pk12Certificate_EmailAccount.toString()); - if (identifier != null) - result = email_connector.proxies.Pk12Certificate.load(context, identifier); - return result; - } - - /** - * Set value of Pk12Certificate_EmailAccount - * @param pk12certificate_emailaccount - */ - public final void setPk12Certificate_EmailAccount(email_connector.proxies.Pk12Certificate pk12certificate_emailaccount) - { - setPk12Certificate_EmailAccount(getContext(), pk12certificate_emailaccount); - } - - /** - * Set value of Pk12Certificate_EmailAccount - * @param context - * @param pk12certificate_emailaccount - */ - public final void setPk12Certificate_EmailAccount(com.mendix.systemwideinterfaces.core.IContext context, email_connector.proxies.Pk12Certificate pk12certificate_emailaccount) - { - if (pk12certificate_emailaccount == null) - getMendixObject().setValue(context, MemberNames.Pk12Certificate_EmailAccount.toString(), null); - else - getMendixObject().setValue(context, MemberNames.Pk12Certificate_EmailAccount.toString(), pk12certificate_emailaccount.getMendixObject().getId()); - } - - /** - * @return value of EmailAccount_LDAPConfiguration - */ - public final email_connector.proxies.LDAPConfiguration getEmailAccount_LDAPConfiguration() throws com.mendix.core.CoreException - { - return getEmailAccount_LDAPConfiguration(getContext()); - } - - /** - * @param context - * @return value of EmailAccount_LDAPConfiguration - */ - public final email_connector.proxies.LDAPConfiguration getEmailAccount_LDAPConfiguration(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - email_connector.proxies.LDAPConfiguration result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.EmailAccount_LDAPConfiguration.toString()); - if (identifier != null) - result = email_connector.proxies.LDAPConfiguration.load(context, identifier); - return result; - } - - /** - * Set value of EmailAccount_LDAPConfiguration - * @param emailaccount_ldapconfiguration - */ - public final void setEmailAccount_LDAPConfiguration(email_connector.proxies.LDAPConfiguration emailaccount_ldapconfiguration) - { - setEmailAccount_LDAPConfiguration(getContext(), emailaccount_ldapconfiguration); - } - - /** - * Set value of EmailAccount_LDAPConfiguration - * @param context - * @param emailaccount_ldapconfiguration - */ - public final void setEmailAccount_LDAPConfiguration(com.mendix.systemwideinterfaces.core.IContext context, email_connector.proxies.LDAPConfiguration emailaccount_ldapconfiguration) - { - if (emailaccount_ldapconfiguration == null) - getMendixObject().setValue(context, MemberNames.EmailAccount_LDAPConfiguration.toString(), null); - else - getMendixObject().setValue(context, MemberNames.EmailAccount_LDAPConfiguration.toString(), emailaccount_ldapconfiguration.getMendixObject().getId()); - } - - /** - * @return value of EmailAccount_OAuthProvider - */ - public final email_connector.proxies.OAuthProvider getEmailAccount_OAuthProvider() throws com.mendix.core.CoreException - { - return getEmailAccount_OAuthProvider(getContext()); - } - - /** - * @param context - * @return value of EmailAccount_OAuthProvider - */ - public final email_connector.proxies.OAuthProvider getEmailAccount_OAuthProvider(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - email_connector.proxies.OAuthProvider result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.EmailAccount_OAuthProvider.toString()); - if (identifier != null) - result = email_connector.proxies.OAuthProvider.load(context, identifier); - return result; - } - - /** - * Set value of EmailAccount_OAuthProvider - * @param emailaccount_oauthprovider - */ - public final void setEmailAccount_OAuthProvider(email_connector.proxies.OAuthProvider emailaccount_oauthprovider) - { - setEmailAccount_OAuthProvider(getContext(), emailaccount_oauthprovider); - } - - /** - * Set value of EmailAccount_OAuthProvider - * @param context - * @param emailaccount_oauthprovider - */ - public final void setEmailAccount_OAuthProvider(com.mendix.systemwideinterfaces.core.IContext context, email_connector.proxies.OAuthProvider emailaccount_oauthprovider) - { - if (emailaccount_oauthprovider == null) - getMendixObject().setValue(context, MemberNames.EmailAccount_OAuthProvider.toString(), null); - else - getMendixObject().setValue(context, MemberNames.EmailAccount_OAuthProvider.toString(), emailaccount_oauthprovider.getMendixObject().getId()); - } - - /** - * @return value of EmailAccount_OAuthToken - */ - public final email_connector.proxies.OAuthToken getEmailAccount_OAuthToken() throws com.mendix.core.CoreException - { - return getEmailAccount_OAuthToken(getContext()); - } - - /** - * @param context - * @return value of EmailAccount_OAuthToken - */ - public final email_connector.proxies.OAuthToken getEmailAccount_OAuthToken(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - email_connector.proxies.OAuthToken result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.EmailAccount_OAuthToken.toString()); - if (identifier != null) - result = email_connector.proxies.OAuthToken.load(context, identifier); - return result; - } - - /** - * Set value of EmailAccount_OAuthToken - * @param emailaccount_oauthtoken - */ - public final void setEmailAccount_OAuthToken(email_connector.proxies.OAuthToken emailaccount_oauthtoken) - { - setEmailAccount_OAuthToken(getContext(), emailaccount_oauthtoken); - } - - /** - * Set value of EmailAccount_OAuthToken - * @param context - * @param emailaccount_oauthtoken - */ - public final void setEmailAccount_OAuthToken(com.mendix.systemwideinterfaces.core.IContext context, email_connector.proxies.OAuthToken emailaccount_oauthtoken) - { - if (emailaccount_oauthtoken == null) - getMendixObject().setValue(context, MemberNames.EmailAccount_OAuthToken.toString(), null); - else - getMendixObject().setValue(context, MemberNames.EmailAccount_OAuthToken.toString(), emailaccount_oauthtoken.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return emailAccountMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final email_connector.proxies.EmailAccount that = (email_connector.proxies.EmailAccount) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "Email_Connector.EmailAccount"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/email_connector/proxies/EmailConnectorLog.java b/javasource/email_connector/proxies/EmailConnectorLog.java deleted file mode 100644 index 02d6d9e..0000000 --- a/javasource/email_connector/proxies/EmailConnectorLog.java +++ /dev/null @@ -1,525 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package email_connector.proxies; - -public class EmailConnectorLog -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject emailConnectorLogMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "Email_Connector.EmailConnectorLog"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - Created("Created"), - Logtype("Logtype"), - ErrorMessage("ErrorMessage"), - TriggeredInMF("TriggeredInMF"), - StackTrace("StackTrace"), - Message("Message"), - IsUnread("IsUnread"), - EmailConnectorLog_EmailMessage("Email_Connector.EmailConnectorLog_EmailMessage"), - EmailConnectorLog_EmailAccount("Email_Connector.EmailConnectorLog_EmailAccount"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public EmailConnectorLog(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "Email_Connector.EmailConnectorLog")); - } - - protected EmailConnectorLog(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject emailConnectorLogMendixObject) - { - if (emailConnectorLogMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("Email_Connector.EmailConnectorLog", emailConnectorLogMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a Email_Connector.EmailConnectorLog"); - - this.emailConnectorLogMendixObject = emailConnectorLogMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'EmailConnectorLog.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static email_connector.proxies.EmailConnectorLog initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return email_connector.proxies.EmailConnectorLog.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static email_connector.proxies.EmailConnectorLog initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new email_connector.proxies.EmailConnectorLog(context, mendixObject); - } - - public static email_connector.proxies.EmailConnectorLog load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return email_connector.proxies.EmailConnectorLog.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//Email_Connector.EmailConnectorLog" + xpathConstraint)) - result.add(email_connector.proxies.EmailConnectorLog.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of Created - */ - public final java.util.Date getCreated() - { - return getCreated(getContext()); - } - - /** - * @param context - * @return value of Created - */ - public final java.util.Date getCreated(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.util.Date) getMendixObject().getValue(context, MemberNames.Created.toString()); - } - - /** - * Set value of Created - * @param created - */ - public final void setCreated(java.util.Date created) - { - setCreated(getContext(), created); - } - - /** - * Set value of Created - * @param context - * @param created - */ - public final void setCreated(com.mendix.systemwideinterfaces.core.IContext context, java.util.Date created) - { - getMendixObject().setValue(context, MemberNames.Created.toString(), created); - } - - /** - * Set value of Logtype - * @param logtype - */ - public final email_connector.proxies.ENUM_LogType getLogtype() - { - return getLogtype(getContext()); - } - - /** - * @param context - * @return value of Logtype - */ - public final email_connector.proxies.ENUM_LogType getLogtype(com.mendix.systemwideinterfaces.core.IContext context) - { - Object obj = getMendixObject().getValue(context, MemberNames.Logtype.toString()); - if (obj == null) - return null; - - return email_connector.proxies.ENUM_LogType.valueOf((java.lang.String) obj); - } - - /** - * Set value of Logtype - * @param logtype - */ - public final void setLogtype(email_connector.proxies.ENUM_LogType logtype) - { - setLogtype(getContext(), logtype); - } - - /** - * Set value of Logtype - * @param context - * @param logtype - */ - public final void setLogtype(com.mendix.systemwideinterfaces.core.IContext context, email_connector.proxies.ENUM_LogType logtype) - { - if (logtype != null) - getMendixObject().setValue(context, MemberNames.Logtype.toString(), logtype.toString()); - else - getMendixObject().setValue(context, MemberNames.Logtype.toString(), null); - } - - /** - * @return value of ErrorMessage - */ - public final java.lang.String getErrorMessage() - { - return getErrorMessage(getContext()); - } - - /** - * @param context - * @return value of ErrorMessage - */ - public final java.lang.String getErrorMessage(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.ErrorMessage.toString()); - } - - /** - * Set value of ErrorMessage - * @param errormessage - */ - public final void setErrorMessage(java.lang.String errormessage) - { - setErrorMessage(getContext(), errormessage); - } - - /** - * Set value of ErrorMessage - * @param context - * @param errormessage - */ - public final void setErrorMessage(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String errormessage) - { - getMendixObject().setValue(context, MemberNames.ErrorMessage.toString(), errormessage); - } - - /** - * @return value of TriggeredInMF - */ - public final java.lang.String getTriggeredInMF() - { - return getTriggeredInMF(getContext()); - } - - /** - * @param context - * @return value of TriggeredInMF - */ - public final java.lang.String getTriggeredInMF(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.TriggeredInMF.toString()); - } - - /** - * Set value of TriggeredInMF - * @param triggeredinmf - */ - public final void setTriggeredInMF(java.lang.String triggeredinmf) - { - setTriggeredInMF(getContext(), triggeredinmf); - } - - /** - * Set value of TriggeredInMF - * @param context - * @param triggeredinmf - */ - public final void setTriggeredInMF(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String triggeredinmf) - { - getMendixObject().setValue(context, MemberNames.TriggeredInMF.toString(), triggeredinmf); - } - - /** - * @return value of StackTrace - */ - public final java.lang.String getStackTrace() - { - return getStackTrace(getContext()); - } - - /** - * @param context - * @return value of StackTrace - */ - public final java.lang.String getStackTrace(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.StackTrace.toString()); - } - - /** - * Set value of StackTrace - * @param stacktrace - */ - public final void setStackTrace(java.lang.String stacktrace) - { - setStackTrace(getContext(), stacktrace); - } - - /** - * Set value of StackTrace - * @param context - * @param stacktrace - */ - public final void setStackTrace(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String stacktrace) - { - getMendixObject().setValue(context, MemberNames.StackTrace.toString(), stacktrace); - } - - /** - * @return value of Message - */ - public final java.lang.String getMessage() - { - return getMessage(getContext()); - } - - /** - * @param context - * @return value of Message - */ - public final java.lang.String getMessage(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Message.toString()); - } - - /** - * Set value of Message - * @param message - */ - public final void setMessage(java.lang.String message) - { - setMessage(getContext(), message); - } - - /** - * Set value of Message - * @param context - * @param message - */ - public final void setMessage(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String message) - { - getMendixObject().setValue(context, MemberNames.Message.toString(), message); - } - - /** - * @return value of IsUnread - */ - public final java.lang.Boolean getIsUnread() - { - return getIsUnread(getContext()); - } - - /** - * @param context - * @return value of IsUnread - */ - public final java.lang.Boolean getIsUnread(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.IsUnread.toString()); - } - - /** - * Set value of IsUnread - * @param isunread - */ - public final void setIsUnread(java.lang.Boolean isunread) - { - setIsUnread(getContext(), isunread); - } - - /** - * Set value of IsUnread - * @param context - * @param isunread - */ - public final void setIsUnread(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean isunread) - { - getMendixObject().setValue(context, MemberNames.IsUnread.toString(), isunread); - } - - /** - * @return value of EmailConnectorLog_EmailMessage - */ - public final email_connector.proxies.EmailMessage getEmailConnectorLog_EmailMessage() throws com.mendix.core.CoreException - { - return getEmailConnectorLog_EmailMessage(getContext()); - } - - /** - * @param context - * @return value of EmailConnectorLog_EmailMessage - */ - public final email_connector.proxies.EmailMessage getEmailConnectorLog_EmailMessage(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - email_connector.proxies.EmailMessage result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.EmailConnectorLog_EmailMessage.toString()); - if (identifier != null) - result = email_connector.proxies.EmailMessage.load(context, identifier); - return result; - } - - /** - * Set value of EmailConnectorLog_EmailMessage - * @param emailconnectorlog_emailmessage - */ - public final void setEmailConnectorLog_EmailMessage(email_connector.proxies.EmailMessage emailconnectorlog_emailmessage) - { - setEmailConnectorLog_EmailMessage(getContext(), emailconnectorlog_emailmessage); - } - - /** - * Set value of EmailConnectorLog_EmailMessage - * @param context - * @param emailconnectorlog_emailmessage - */ - public final void setEmailConnectorLog_EmailMessage(com.mendix.systemwideinterfaces.core.IContext context, email_connector.proxies.EmailMessage emailconnectorlog_emailmessage) - { - if (emailconnectorlog_emailmessage == null) - getMendixObject().setValue(context, MemberNames.EmailConnectorLog_EmailMessage.toString(), null); - else - getMendixObject().setValue(context, MemberNames.EmailConnectorLog_EmailMessage.toString(), emailconnectorlog_emailmessage.getMendixObject().getId()); - } - - /** - * @return value of EmailConnectorLog_EmailAccount - */ - public final email_connector.proxies.EmailAccount getEmailConnectorLog_EmailAccount() throws com.mendix.core.CoreException - { - return getEmailConnectorLog_EmailAccount(getContext()); - } - - /** - * @param context - * @return value of EmailConnectorLog_EmailAccount - */ - public final email_connector.proxies.EmailAccount getEmailConnectorLog_EmailAccount(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - email_connector.proxies.EmailAccount result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.EmailConnectorLog_EmailAccount.toString()); - if (identifier != null) - result = email_connector.proxies.EmailAccount.load(context, identifier); - return result; - } - - /** - * Set value of EmailConnectorLog_EmailAccount - * @param emailconnectorlog_emailaccount - */ - public final void setEmailConnectorLog_EmailAccount(email_connector.proxies.EmailAccount emailconnectorlog_emailaccount) - { - setEmailConnectorLog_EmailAccount(getContext(), emailconnectorlog_emailaccount); - } - - /** - * Set value of EmailConnectorLog_EmailAccount - * @param context - * @param emailconnectorlog_emailaccount - */ - public final void setEmailConnectorLog_EmailAccount(com.mendix.systemwideinterfaces.core.IContext context, email_connector.proxies.EmailAccount emailconnectorlog_emailaccount) - { - if (emailconnectorlog_emailaccount == null) - getMendixObject().setValue(context, MemberNames.EmailConnectorLog_EmailAccount.toString(), null); - else - getMendixObject().setValue(context, MemberNames.EmailConnectorLog_EmailAccount.toString(), emailconnectorlog_emailaccount.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return emailConnectorLogMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final email_connector.proxies.EmailConnectorLog that = (email_connector.proxies.EmailConnectorLog) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "Email_Connector.EmailConnectorLog"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/email_connector/proxies/EmailMessage.java b/javasource/email_connector/proxies/EmailMessage.java deleted file mode 100644 index e5679e7..0000000 --- a/javasource/email_connector/proxies/EmailMessage.java +++ /dev/null @@ -1,1080 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package email_connector.proxies; - -public class EmailMessage -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject emailMessageMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "Email_Connector.EmailMessage"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - Subject("Subject"), - SentDate("SentDate"), - RetrieveDate("RetrieveDate"), - From("From"), - To("To"), - CC("CC"), - BCC("BCC"), - Content("Content"), - UseOnlyPlainText("UseOnlyPlainText"), - hasAttachments("hasAttachments"), - Size("Size"), - FromDisplayName("FromDisplayName"), - ReplyTo("ReplyTo"), - PlainBody("PlainBody"), - QueuedForSending("QueuedForSending"), - ResendAttempts("ResendAttempts"), - LastSendError("LastSendError"), - LastSendAttemptAt("LastSendAttemptAt"), - Status("Status"), - isSigned("isSigned"), - isEncrypted("isEncrypted"), - RecipientsToggle("RecipientsToggle"), - EmailMessage_EmailTemplate("Email_Connector.EmailMessage_EmailTemplate"), - EmailMessage_EmailAccount("Email_Connector.EmailMessage_EmailAccount"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public EmailMessage(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "Email_Connector.EmailMessage")); - } - - protected EmailMessage(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject emailMessageMendixObject) - { - if (emailMessageMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("Email_Connector.EmailMessage", emailMessageMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a Email_Connector.EmailMessage"); - - this.emailMessageMendixObject = emailMessageMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'EmailMessage.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static email_connector.proxies.EmailMessage initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return email_connector.proxies.EmailMessage.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static email_connector.proxies.EmailMessage initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new email_connector.proxies.EmailMessage(context, mendixObject); - } - - public static email_connector.proxies.EmailMessage load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return email_connector.proxies.EmailMessage.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//Email_Connector.EmailMessage" + xpathConstraint)) - result.add(email_connector.proxies.EmailMessage.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of Subject - */ - public final java.lang.String getSubject() - { - return getSubject(getContext()); - } - - /** - * @param context - * @return value of Subject - */ - public final java.lang.String getSubject(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Subject.toString()); - } - - /** - * Set value of Subject - * @param subject - */ - public final void setSubject(java.lang.String subject) - { - setSubject(getContext(), subject); - } - - /** - * Set value of Subject - * @param context - * @param subject - */ - public final void setSubject(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String subject) - { - getMendixObject().setValue(context, MemberNames.Subject.toString(), subject); - } - - /** - * @return value of SentDate - */ - public final java.util.Date getSentDate() - { - return getSentDate(getContext()); - } - - /** - * @param context - * @return value of SentDate - */ - public final java.util.Date getSentDate(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.util.Date) getMendixObject().getValue(context, MemberNames.SentDate.toString()); - } - - /** - * Set value of SentDate - * @param sentdate - */ - public final void setSentDate(java.util.Date sentdate) - { - setSentDate(getContext(), sentdate); - } - - /** - * Set value of SentDate - * @param context - * @param sentdate - */ - public final void setSentDate(com.mendix.systemwideinterfaces.core.IContext context, java.util.Date sentdate) - { - getMendixObject().setValue(context, MemberNames.SentDate.toString(), sentdate); - } - - /** - * @return value of RetrieveDate - */ - public final java.util.Date getRetrieveDate() - { - return getRetrieveDate(getContext()); - } - - /** - * @param context - * @return value of RetrieveDate - */ - public final java.util.Date getRetrieveDate(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.util.Date) getMendixObject().getValue(context, MemberNames.RetrieveDate.toString()); - } - - /** - * Set value of RetrieveDate - * @param retrievedate - */ - public final void setRetrieveDate(java.util.Date retrievedate) - { - setRetrieveDate(getContext(), retrievedate); - } - - /** - * Set value of RetrieveDate - * @param context - * @param retrievedate - */ - public final void setRetrieveDate(com.mendix.systemwideinterfaces.core.IContext context, java.util.Date retrievedate) - { - getMendixObject().setValue(context, MemberNames.RetrieveDate.toString(), retrievedate); - } - - /** - * @return value of From - */ - public final java.lang.String getFrom() - { - return getFrom(getContext()); - } - - /** - * @param context - * @return value of From - */ - public final java.lang.String getFrom(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.From.toString()); - } - - /** - * Set value of From - * @param from - */ - public final void setFrom(java.lang.String from) - { - setFrom(getContext(), from); - } - - /** - * Set value of From - * @param context - * @param from - */ - public final void setFrom(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String from) - { - getMendixObject().setValue(context, MemberNames.From.toString(), from); - } - - /** - * @return value of To - */ - public final java.lang.String getTo() - { - return getTo(getContext()); - } - - /** - * @param context - * @return value of To - */ - public final java.lang.String getTo(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.To.toString()); - } - - /** - * Set value of To - * @param to - */ - public final void setTo(java.lang.String to) - { - setTo(getContext(), to); - } - - /** - * Set value of To - * @param context - * @param to - */ - public final void setTo(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String to) - { - getMendixObject().setValue(context, MemberNames.To.toString(), to); - } - - /** - * @return value of CC - */ - public final java.lang.String getCC() - { - return getCC(getContext()); - } - - /** - * @param context - * @return value of CC - */ - public final java.lang.String getCC(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.CC.toString()); - } - - /** - * Set value of CC - * @param cc - */ - public final void setCC(java.lang.String cc) - { - setCC(getContext(), cc); - } - - /** - * Set value of CC - * @param context - * @param cc - */ - public final void setCC(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String cc) - { - getMendixObject().setValue(context, MemberNames.CC.toString(), cc); - } - - /** - * @return value of BCC - */ - public final java.lang.String getBCC() - { - return getBCC(getContext()); - } - - /** - * @param context - * @return value of BCC - */ - public final java.lang.String getBCC(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.BCC.toString()); - } - - /** - * Set value of BCC - * @param bcc - */ - public final void setBCC(java.lang.String bcc) - { - setBCC(getContext(), bcc); - } - - /** - * Set value of BCC - * @param context - * @param bcc - */ - public final void setBCC(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String bcc) - { - getMendixObject().setValue(context, MemberNames.BCC.toString(), bcc); - } - - /** - * @return value of Content - */ - public final java.lang.String getContent() - { - return getContent(getContext()); - } - - /** - * @param context - * @return value of Content - */ - public final java.lang.String getContent(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Content.toString()); - } - - /** - * Set value of Content - * @param content - */ - public final void setContent(java.lang.String content) - { - setContent(getContext(), content); - } - - /** - * Set value of Content - * @param context - * @param content - */ - public final void setContent(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String content) - { - getMendixObject().setValue(context, MemberNames.Content.toString(), content); - } - - /** - * @return value of UseOnlyPlainText - */ - public final java.lang.Boolean getUseOnlyPlainText() - { - return getUseOnlyPlainText(getContext()); - } - - /** - * @param context - * @return value of UseOnlyPlainText - */ - public final java.lang.Boolean getUseOnlyPlainText(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.UseOnlyPlainText.toString()); - } - - /** - * Set value of UseOnlyPlainText - * @param useonlyplaintext - */ - public final void setUseOnlyPlainText(java.lang.Boolean useonlyplaintext) - { - setUseOnlyPlainText(getContext(), useonlyplaintext); - } - - /** - * Set value of UseOnlyPlainText - * @param context - * @param useonlyplaintext - */ - public final void setUseOnlyPlainText(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean useonlyplaintext) - { - getMendixObject().setValue(context, MemberNames.UseOnlyPlainText.toString(), useonlyplaintext); - } - - /** - * @return value of hasAttachments - */ - public final java.lang.Boolean gethasAttachments() - { - return gethasAttachments(getContext()); - } - - /** - * @param context - * @return value of hasAttachments - */ - public final java.lang.Boolean gethasAttachments(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.hasAttachments.toString()); - } - - /** - * Set value of hasAttachments - * @param hasattachments - */ - public final void sethasAttachments(java.lang.Boolean hasattachments) - { - sethasAttachments(getContext(), hasattachments); - } - - /** - * Set value of hasAttachments - * @param context - * @param hasattachments - */ - public final void sethasAttachments(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean hasattachments) - { - getMendixObject().setValue(context, MemberNames.hasAttachments.toString(), hasattachments); - } - - /** - * @return value of Size - */ - public final java.lang.Integer getSize() - { - return getSize(getContext()); - } - - /** - * @param context - * @return value of Size - */ - public final java.lang.Integer getSize(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Integer) getMendixObject().getValue(context, MemberNames.Size.toString()); - } - - /** - * Set value of Size - * @param size - */ - public final void setSize(java.lang.Integer size) - { - setSize(getContext(), size); - } - - /** - * Set value of Size - * @param context - * @param size - */ - public final void setSize(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Integer size) - { - getMendixObject().setValue(context, MemberNames.Size.toString(), size); - } - - /** - * @return value of FromDisplayName - */ - public final java.lang.String getFromDisplayName() - { - return getFromDisplayName(getContext()); - } - - /** - * @param context - * @return value of FromDisplayName - */ - public final java.lang.String getFromDisplayName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.FromDisplayName.toString()); - } - - /** - * Set value of FromDisplayName - * @param fromdisplayname - */ - public final void setFromDisplayName(java.lang.String fromdisplayname) - { - setFromDisplayName(getContext(), fromdisplayname); - } - - /** - * Set value of FromDisplayName - * @param context - * @param fromdisplayname - */ - public final void setFromDisplayName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String fromdisplayname) - { - getMendixObject().setValue(context, MemberNames.FromDisplayName.toString(), fromdisplayname); - } - - /** - * @return value of ReplyTo - */ - public final java.lang.String getReplyTo() - { - return getReplyTo(getContext()); - } - - /** - * @param context - * @return value of ReplyTo - */ - public final java.lang.String getReplyTo(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.ReplyTo.toString()); - } - - /** - * Set value of ReplyTo - * @param replyto - */ - public final void setReplyTo(java.lang.String replyto) - { - setReplyTo(getContext(), replyto); - } - - /** - * Set value of ReplyTo - * @param context - * @param replyto - */ - public final void setReplyTo(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String replyto) - { - getMendixObject().setValue(context, MemberNames.ReplyTo.toString(), replyto); - } - - /** - * @return value of PlainBody - */ - public final java.lang.String getPlainBody() - { - return getPlainBody(getContext()); - } - - /** - * @param context - * @return value of PlainBody - */ - public final java.lang.String getPlainBody(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.PlainBody.toString()); - } - - /** - * Set value of PlainBody - * @param plainbody - */ - public final void setPlainBody(java.lang.String plainbody) - { - setPlainBody(getContext(), plainbody); - } - - /** - * Set value of PlainBody - * @param context - * @param plainbody - */ - public final void setPlainBody(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String plainbody) - { - getMendixObject().setValue(context, MemberNames.PlainBody.toString(), plainbody); - } - - /** - * @return value of QueuedForSending - */ - public final java.lang.Boolean getQueuedForSending() - { - return getQueuedForSending(getContext()); - } - - /** - * @param context - * @return value of QueuedForSending - */ - public final java.lang.Boolean getQueuedForSending(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.QueuedForSending.toString()); - } - - /** - * Set value of QueuedForSending - * @param queuedforsending - */ - public final void setQueuedForSending(java.lang.Boolean queuedforsending) - { - setQueuedForSending(getContext(), queuedforsending); - } - - /** - * Set value of QueuedForSending - * @param context - * @param queuedforsending - */ - public final void setQueuedForSending(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean queuedforsending) - { - getMendixObject().setValue(context, MemberNames.QueuedForSending.toString(), queuedforsending); - } - - /** - * @return value of ResendAttempts - */ - public final java.lang.Integer getResendAttempts() - { - return getResendAttempts(getContext()); - } - - /** - * @param context - * @return value of ResendAttempts - */ - public final java.lang.Integer getResendAttempts(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Integer) getMendixObject().getValue(context, MemberNames.ResendAttempts.toString()); - } - - /** - * Set value of ResendAttempts - * @param resendattempts - */ - public final void setResendAttempts(java.lang.Integer resendattempts) - { - setResendAttempts(getContext(), resendattempts); - } - - /** - * Set value of ResendAttempts - * @param context - * @param resendattempts - */ - public final void setResendAttempts(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Integer resendattempts) - { - getMendixObject().setValue(context, MemberNames.ResendAttempts.toString(), resendattempts); - } - - /** - * @return value of LastSendError - */ - public final java.lang.String getLastSendError() - { - return getLastSendError(getContext()); - } - - /** - * @param context - * @return value of LastSendError - */ - public final java.lang.String getLastSendError(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.LastSendError.toString()); - } - - /** - * Set value of LastSendError - * @param lastsenderror - */ - public final void setLastSendError(java.lang.String lastsenderror) - { - setLastSendError(getContext(), lastsenderror); - } - - /** - * Set value of LastSendError - * @param context - * @param lastsenderror - */ - public final void setLastSendError(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String lastsenderror) - { - getMendixObject().setValue(context, MemberNames.LastSendError.toString(), lastsenderror); - } - - /** - * @return value of LastSendAttemptAt - */ - public final java.util.Date getLastSendAttemptAt() - { - return getLastSendAttemptAt(getContext()); - } - - /** - * @param context - * @return value of LastSendAttemptAt - */ - public final java.util.Date getLastSendAttemptAt(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.util.Date) getMendixObject().getValue(context, MemberNames.LastSendAttemptAt.toString()); - } - - /** - * Set value of LastSendAttemptAt - * @param lastsendattemptat - */ - public final void setLastSendAttemptAt(java.util.Date lastsendattemptat) - { - setLastSendAttemptAt(getContext(), lastsendattemptat); - } - - /** - * Set value of LastSendAttemptAt - * @param context - * @param lastsendattemptat - */ - public final void setLastSendAttemptAt(com.mendix.systemwideinterfaces.core.IContext context, java.util.Date lastsendattemptat) - { - getMendixObject().setValue(context, MemberNames.LastSendAttemptAt.toString(), lastsendattemptat); - } - - /** - * Set value of Status - * @param status - */ - public final email_connector.proxies.ENUM_EmailStatus getStatus() - { - return getStatus(getContext()); - } - - /** - * @param context - * @return value of Status - */ - public final email_connector.proxies.ENUM_EmailStatus getStatus(com.mendix.systemwideinterfaces.core.IContext context) - { - Object obj = getMendixObject().getValue(context, MemberNames.Status.toString()); - if (obj == null) - return null; - - return email_connector.proxies.ENUM_EmailStatus.valueOf((java.lang.String) obj); - } - - /** - * Set value of Status - * @param status - */ - public final void setStatus(email_connector.proxies.ENUM_EmailStatus status) - { - setStatus(getContext(), status); - } - - /** - * Set value of Status - * @param context - * @param status - */ - public final void setStatus(com.mendix.systemwideinterfaces.core.IContext context, email_connector.proxies.ENUM_EmailStatus status) - { - if (status != null) - getMendixObject().setValue(context, MemberNames.Status.toString(), status.toString()); - else - getMendixObject().setValue(context, MemberNames.Status.toString(), null); - } - - /** - * @return value of isSigned - */ - public final java.lang.Boolean getisSigned() - { - return getisSigned(getContext()); - } - - /** - * @param context - * @return value of isSigned - */ - public final java.lang.Boolean getisSigned(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.isSigned.toString()); - } - - /** - * Set value of isSigned - * @param issigned - */ - public final void setisSigned(java.lang.Boolean issigned) - { - setisSigned(getContext(), issigned); - } - - /** - * Set value of isSigned - * @param context - * @param issigned - */ - public final void setisSigned(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean issigned) - { - getMendixObject().setValue(context, MemberNames.isSigned.toString(), issigned); - } - - /** - * @return value of isEncrypted - */ - public final java.lang.Boolean getisEncrypted() - { - return getisEncrypted(getContext()); - } - - /** - * @param context - * @return value of isEncrypted - */ - public final java.lang.Boolean getisEncrypted(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.isEncrypted.toString()); - } - - /** - * Set value of isEncrypted - * @param isencrypted - */ - public final void setisEncrypted(java.lang.Boolean isencrypted) - { - setisEncrypted(getContext(), isencrypted); - } - - /** - * Set value of isEncrypted - * @param context - * @param isencrypted - */ - public final void setisEncrypted(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean isencrypted) - { - getMendixObject().setValue(context, MemberNames.isEncrypted.toString(), isencrypted); - } - - /** - * @return value of RecipientsToggle - */ - public final java.lang.Boolean getRecipientsToggle() - { - return getRecipientsToggle(getContext()); - } - - /** - * @param context - * @return value of RecipientsToggle - */ - public final java.lang.Boolean getRecipientsToggle(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.RecipientsToggle.toString()); - } - - /** - * Set value of RecipientsToggle - * @param recipientstoggle - */ - public final void setRecipientsToggle(java.lang.Boolean recipientstoggle) - { - setRecipientsToggle(getContext(), recipientstoggle); - } - - /** - * Set value of RecipientsToggle - * @param context - * @param recipientstoggle - */ - public final void setRecipientsToggle(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean recipientstoggle) - { - getMendixObject().setValue(context, MemberNames.RecipientsToggle.toString(), recipientstoggle); - } - - /** - * @return value of EmailMessage_EmailTemplate - */ - public final email_connector.proxies.EmailTemplate getEmailMessage_EmailTemplate() throws com.mendix.core.CoreException - { - return getEmailMessage_EmailTemplate(getContext()); - } - - /** - * @param context - * @return value of EmailMessage_EmailTemplate - */ - public final email_connector.proxies.EmailTemplate getEmailMessage_EmailTemplate(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - email_connector.proxies.EmailTemplate result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.EmailMessage_EmailTemplate.toString()); - if (identifier != null) - result = email_connector.proxies.EmailTemplate.load(context, identifier); - return result; - } - - /** - * Set value of EmailMessage_EmailTemplate - * @param emailmessage_emailtemplate - */ - public final void setEmailMessage_EmailTemplate(email_connector.proxies.EmailTemplate emailmessage_emailtemplate) - { - setEmailMessage_EmailTemplate(getContext(), emailmessage_emailtemplate); - } - - /** - * Set value of EmailMessage_EmailTemplate - * @param context - * @param emailmessage_emailtemplate - */ - public final void setEmailMessage_EmailTemplate(com.mendix.systemwideinterfaces.core.IContext context, email_connector.proxies.EmailTemplate emailmessage_emailtemplate) - { - if (emailmessage_emailtemplate == null) - getMendixObject().setValue(context, MemberNames.EmailMessage_EmailTemplate.toString(), null); - else - getMendixObject().setValue(context, MemberNames.EmailMessage_EmailTemplate.toString(), emailmessage_emailtemplate.getMendixObject().getId()); - } - - /** - * @return value of EmailMessage_EmailAccount - */ - public final email_connector.proxies.EmailAccount getEmailMessage_EmailAccount() throws com.mendix.core.CoreException - { - return getEmailMessage_EmailAccount(getContext()); - } - - /** - * @param context - * @return value of EmailMessage_EmailAccount - */ - public final email_connector.proxies.EmailAccount getEmailMessage_EmailAccount(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - email_connector.proxies.EmailAccount result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.EmailMessage_EmailAccount.toString()); - if (identifier != null) - result = email_connector.proxies.EmailAccount.load(context, identifier); - return result; - } - - /** - * Set value of EmailMessage_EmailAccount - * @param emailmessage_emailaccount - */ - public final void setEmailMessage_EmailAccount(email_connector.proxies.EmailAccount emailmessage_emailaccount) - { - setEmailMessage_EmailAccount(getContext(), emailmessage_emailaccount); - } - - /** - * Set value of EmailMessage_EmailAccount - * @param context - * @param emailmessage_emailaccount - */ - public final void setEmailMessage_EmailAccount(com.mendix.systemwideinterfaces.core.IContext context, email_connector.proxies.EmailAccount emailmessage_emailaccount) - { - if (emailmessage_emailaccount == null) - getMendixObject().setValue(context, MemberNames.EmailMessage_EmailAccount.toString(), null); - else - getMendixObject().setValue(context, MemberNames.EmailMessage_EmailAccount.toString(), emailmessage_emailaccount.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return emailMessageMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final email_connector.proxies.EmailMessage that = (email_connector.proxies.EmailMessage) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "Email_Connector.EmailMessage"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/email_connector/proxies/EmailProvider.java b/javasource/email_connector/proxies/EmailProvider.java deleted file mode 100644 index e7b29aa..0000000 --- a/javasource/email_connector/proxies/EmailProvider.java +++ /dev/null @@ -1,472 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package email_connector.proxies; - -public class EmailProvider -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject emailProviderMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "Email_Connector.EmailProvider"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - Username("Username"), - Password("Password"), - ReceiveEmails("ReceiveEmails"), - SendEmails("SendEmails"), - FromDisplayName("FromDisplayName"), - isOAuthUsed("isOAuthUsed"), - SelectedConfiguration_EmailProvider("Email_Connector.SelectedConfiguration_EmailProvider"), - EmailProvider_OAuthProvider("Email_Connector.EmailProvider_OAuthProvider"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public EmailProvider(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "Email_Connector.EmailProvider")); - } - - protected EmailProvider(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject emailProviderMendixObject) - { - if (emailProviderMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("Email_Connector.EmailProvider", emailProviderMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a Email_Connector.EmailProvider"); - - this.emailProviderMendixObject = emailProviderMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'EmailProvider.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static email_connector.proxies.EmailProvider initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return email_connector.proxies.EmailProvider.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static email_connector.proxies.EmailProvider initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new email_connector.proxies.EmailProvider(context, mendixObject); - } - - public static email_connector.proxies.EmailProvider load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return email_connector.proxies.EmailProvider.initialize(context, mendixObject); - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of Username - */ - public final java.lang.String getUsername() - { - return getUsername(getContext()); - } - - /** - * @param context - * @return value of Username - */ - public final java.lang.String getUsername(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Username.toString()); - } - - /** - * Set value of Username - * @param username - */ - public final void setUsername(java.lang.String username) - { - setUsername(getContext(), username); - } - - /** - * Set value of Username - * @param context - * @param username - */ - public final void setUsername(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String username) - { - getMendixObject().setValue(context, MemberNames.Username.toString(), username); - } - - /** - * @return value of Password - */ - public final java.lang.String getPassword() - { - return getPassword(getContext()); - } - - /** - * @param context - * @return value of Password - */ - public final java.lang.String getPassword(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Password.toString()); - } - - /** - * Set value of Password - * @param password - */ - public final void setPassword(java.lang.String password) - { - setPassword(getContext(), password); - } - - /** - * Set value of Password - * @param context - * @param password - */ - public final void setPassword(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String password) - { - getMendixObject().setValue(context, MemberNames.Password.toString(), password); - } - - /** - * @return value of ReceiveEmails - */ - public final java.lang.Boolean getReceiveEmails() - { - return getReceiveEmails(getContext()); - } - - /** - * @param context - * @return value of ReceiveEmails - */ - public final java.lang.Boolean getReceiveEmails(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.ReceiveEmails.toString()); - } - - /** - * Set value of ReceiveEmails - * @param receiveemails - */ - public final void setReceiveEmails(java.lang.Boolean receiveemails) - { - setReceiveEmails(getContext(), receiveemails); - } - - /** - * Set value of ReceiveEmails - * @param context - * @param receiveemails - */ - public final void setReceiveEmails(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean receiveemails) - { - getMendixObject().setValue(context, MemberNames.ReceiveEmails.toString(), receiveemails); - } - - /** - * @return value of SendEmails - */ - public final java.lang.Boolean getSendEmails() - { - return getSendEmails(getContext()); - } - - /** - * @param context - * @return value of SendEmails - */ - public final java.lang.Boolean getSendEmails(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.SendEmails.toString()); - } - - /** - * Set value of SendEmails - * @param sendemails - */ - public final void setSendEmails(java.lang.Boolean sendemails) - { - setSendEmails(getContext(), sendemails); - } - - /** - * Set value of SendEmails - * @param context - * @param sendemails - */ - public final void setSendEmails(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean sendemails) - { - getMendixObject().setValue(context, MemberNames.SendEmails.toString(), sendemails); - } - - /** - * @return value of FromDisplayName - */ - public final java.lang.String getFromDisplayName() - { - return getFromDisplayName(getContext()); - } - - /** - * @param context - * @return value of FromDisplayName - */ - public final java.lang.String getFromDisplayName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.FromDisplayName.toString()); - } - - /** - * Set value of FromDisplayName - * @param fromdisplayname - */ - public final void setFromDisplayName(java.lang.String fromdisplayname) - { - setFromDisplayName(getContext(), fromdisplayname); - } - - /** - * Set value of FromDisplayName - * @param context - * @param fromdisplayname - */ - public final void setFromDisplayName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String fromdisplayname) - { - getMendixObject().setValue(context, MemberNames.FromDisplayName.toString(), fromdisplayname); - } - - /** - * @return value of isOAuthUsed - */ - public final java.lang.Boolean getisOAuthUsed() - { - return getisOAuthUsed(getContext()); - } - - /** - * @param context - * @return value of isOAuthUsed - */ - public final java.lang.Boolean getisOAuthUsed(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.isOAuthUsed.toString()); - } - - /** - * Set value of isOAuthUsed - * @param isoauthused - */ - public final void setisOAuthUsed(java.lang.Boolean isoauthused) - { - setisOAuthUsed(getContext(), isoauthused); - } - - /** - * Set value of isOAuthUsed - * @param context - * @param isoauthused - */ - public final void setisOAuthUsed(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean isoauthused) - { - getMendixObject().setValue(context, MemberNames.isOAuthUsed.toString(), isoauthused); - } - - /** - * @return value of SelectedConfiguration_EmailProvider - */ - public final email_connector.proxies.SelectedConfiguration getSelectedConfiguration_EmailProvider() throws com.mendix.core.CoreException - { - return getSelectedConfiguration_EmailProvider(getContext()); - } - - /** - * @param context - * @return value of SelectedConfiguration_EmailProvider - */ - public final email_connector.proxies.SelectedConfiguration getSelectedConfiguration_EmailProvider(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - email_connector.proxies.SelectedConfiguration result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.SelectedConfiguration_EmailProvider.toString()); - if (identifier != null) - result = email_connector.proxies.SelectedConfiguration.load(context, identifier); - return result; - } - - /** - * Set value of SelectedConfiguration_EmailProvider - * @param selectedconfiguration_emailprovider - */ - public final void setSelectedConfiguration_EmailProvider(email_connector.proxies.SelectedConfiguration selectedconfiguration_emailprovider) - { - setSelectedConfiguration_EmailProvider(getContext(), selectedconfiguration_emailprovider); - } - - /** - * Set value of SelectedConfiguration_EmailProvider - * @param context - * @param selectedconfiguration_emailprovider - */ - public final void setSelectedConfiguration_EmailProvider(com.mendix.systemwideinterfaces.core.IContext context, email_connector.proxies.SelectedConfiguration selectedconfiguration_emailprovider) - { - if (selectedconfiguration_emailprovider == null) - getMendixObject().setValue(context, MemberNames.SelectedConfiguration_EmailProvider.toString(), null); - else - getMendixObject().setValue(context, MemberNames.SelectedConfiguration_EmailProvider.toString(), selectedconfiguration_emailprovider.getMendixObject().getId()); - } - - /** - * @return value of EmailProvider_OAuthProvider - */ - public final email_connector.proxies.OAuthProvider getEmailProvider_OAuthProvider() throws com.mendix.core.CoreException - { - return getEmailProvider_OAuthProvider(getContext()); - } - - /** - * @param context - * @return value of EmailProvider_OAuthProvider - */ - public final email_connector.proxies.OAuthProvider getEmailProvider_OAuthProvider(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - email_connector.proxies.OAuthProvider result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.EmailProvider_OAuthProvider.toString()); - if (identifier != null) - result = email_connector.proxies.OAuthProvider.load(context, identifier); - return result; - } - - /** - * Set value of EmailProvider_OAuthProvider - * @param emailprovider_oauthprovider - */ - public final void setEmailProvider_OAuthProvider(email_connector.proxies.OAuthProvider emailprovider_oauthprovider) - { - setEmailProvider_OAuthProvider(getContext(), emailprovider_oauthprovider); - } - - /** - * Set value of EmailProvider_OAuthProvider - * @param context - * @param emailprovider_oauthprovider - */ - public final void setEmailProvider_OAuthProvider(com.mendix.systemwideinterfaces.core.IContext context, email_connector.proxies.OAuthProvider emailprovider_oauthprovider) - { - if (emailprovider_oauthprovider == null) - getMendixObject().setValue(context, MemberNames.EmailProvider_OAuthProvider.toString(), null); - else - getMendixObject().setValue(context, MemberNames.EmailProvider_OAuthProvider.toString(), emailprovider_oauthprovider.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return emailProviderMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final email_connector.proxies.EmailProvider that = (email_connector.proxies.EmailProvider) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "Email_Connector.EmailProvider"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/email_connector/proxies/EmailTemplate.java b/javasource/email_connector/proxies/EmailTemplate.java deleted file mode 100644 index edae2a5..0000000 --- a/javasource/email_connector/proxies/EmailTemplate.java +++ /dev/null @@ -1,890 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package email_connector.proxies; - -public class EmailTemplate -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject emailTemplateMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "Email_Connector.EmailTemplate"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - TemplateName("TemplateName"), - CreationDate("CreationDate"), - Subject("Subject"), - SentDate("SentDate"), - To("To"), - CC("CC"), - BCC("BCC"), - Content("Content"), - UseOnlyPlainText("UseOnlyPlainText"), - hasAttachment("hasAttachment"), - ReplyTo("ReplyTo"), - PlainBody("PlainBody"), - FromDisplayName("FromDisplayName"), - Signed("Signed"), - Encrypted("Encrypted"), - RecipientsToggle("RecipientsToggle"), - FromAddress("FromAddress"), - EmailTemplate_Token("Email_Connector.EmailTemplate_Token"), - EmailTemplate_MxObjectType("Email_Connector.EmailTemplate_MxObjectType"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public EmailTemplate(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "Email_Connector.EmailTemplate")); - } - - protected EmailTemplate(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject emailTemplateMendixObject) - { - if (emailTemplateMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("Email_Connector.EmailTemplate", emailTemplateMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a Email_Connector.EmailTemplate"); - - this.emailTemplateMendixObject = emailTemplateMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'EmailTemplate.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static email_connector.proxies.EmailTemplate initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return email_connector.proxies.EmailTemplate.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static email_connector.proxies.EmailTemplate initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new email_connector.proxies.EmailTemplate(context, mendixObject); - } - - public static email_connector.proxies.EmailTemplate load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return email_connector.proxies.EmailTemplate.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//Email_Connector.EmailTemplate" + xpathConstraint)) - result.add(email_connector.proxies.EmailTemplate.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of TemplateName - */ - public final java.lang.String getTemplateName() - { - return getTemplateName(getContext()); - } - - /** - * @param context - * @return value of TemplateName - */ - public final java.lang.String getTemplateName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.TemplateName.toString()); - } - - /** - * Set value of TemplateName - * @param templatename - */ - public final void setTemplateName(java.lang.String templatename) - { - setTemplateName(getContext(), templatename); - } - - /** - * Set value of TemplateName - * @param context - * @param templatename - */ - public final void setTemplateName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String templatename) - { - getMendixObject().setValue(context, MemberNames.TemplateName.toString(), templatename); - } - - /** - * @return value of CreationDate - */ - public final java.util.Date getCreationDate() - { - return getCreationDate(getContext()); - } - - /** - * @param context - * @return value of CreationDate - */ - public final java.util.Date getCreationDate(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.util.Date) getMendixObject().getValue(context, MemberNames.CreationDate.toString()); - } - - /** - * Set value of CreationDate - * @param creationdate - */ - public final void setCreationDate(java.util.Date creationdate) - { - setCreationDate(getContext(), creationdate); - } - - /** - * Set value of CreationDate - * @param context - * @param creationdate - */ - public final void setCreationDate(com.mendix.systemwideinterfaces.core.IContext context, java.util.Date creationdate) - { - getMendixObject().setValue(context, MemberNames.CreationDate.toString(), creationdate); - } - - /** - * @return value of Subject - */ - public final java.lang.String getSubject() - { - return getSubject(getContext()); - } - - /** - * @param context - * @return value of Subject - */ - public final java.lang.String getSubject(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Subject.toString()); - } - - /** - * Set value of Subject - * @param subject - */ - public final void setSubject(java.lang.String subject) - { - setSubject(getContext(), subject); - } - - /** - * Set value of Subject - * @param context - * @param subject - */ - public final void setSubject(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String subject) - { - getMendixObject().setValue(context, MemberNames.Subject.toString(), subject); - } - - /** - * @return value of SentDate - */ - public final java.util.Date getSentDate() - { - return getSentDate(getContext()); - } - - /** - * @param context - * @return value of SentDate - */ - public final java.util.Date getSentDate(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.util.Date) getMendixObject().getValue(context, MemberNames.SentDate.toString()); - } - - /** - * Set value of SentDate - * @param sentdate - */ - public final void setSentDate(java.util.Date sentdate) - { - setSentDate(getContext(), sentdate); - } - - /** - * Set value of SentDate - * @param context - * @param sentdate - */ - public final void setSentDate(com.mendix.systemwideinterfaces.core.IContext context, java.util.Date sentdate) - { - getMendixObject().setValue(context, MemberNames.SentDate.toString(), sentdate); - } - - /** - * @return value of To - */ - public final java.lang.String getTo() - { - return getTo(getContext()); - } - - /** - * @param context - * @return value of To - */ - public final java.lang.String getTo(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.To.toString()); - } - - /** - * Set value of To - * @param to - */ - public final void setTo(java.lang.String to) - { - setTo(getContext(), to); - } - - /** - * Set value of To - * @param context - * @param to - */ - public final void setTo(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String to) - { - getMendixObject().setValue(context, MemberNames.To.toString(), to); - } - - /** - * @return value of CC - */ - public final java.lang.String getCC() - { - return getCC(getContext()); - } - - /** - * @param context - * @return value of CC - */ - public final java.lang.String getCC(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.CC.toString()); - } - - /** - * Set value of CC - * @param cc - */ - public final void setCC(java.lang.String cc) - { - setCC(getContext(), cc); - } - - /** - * Set value of CC - * @param context - * @param cc - */ - public final void setCC(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String cc) - { - getMendixObject().setValue(context, MemberNames.CC.toString(), cc); - } - - /** - * @return value of BCC - */ - public final java.lang.String getBCC() - { - return getBCC(getContext()); - } - - /** - * @param context - * @return value of BCC - */ - public final java.lang.String getBCC(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.BCC.toString()); - } - - /** - * Set value of BCC - * @param bcc - */ - public final void setBCC(java.lang.String bcc) - { - setBCC(getContext(), bcc); - } - - /** - * Set value of BCC - * @param context - * @param bcc - */ - public final void setBCC(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String bcc) - { - getMendixObject().setValue(context, MemberNames.BCC.toString(), bcc); - } - - /** - * @return value of Content - */ - public final java.lang.String getContent() - { - return getContent(getContext()); - } - - /** - * @param context - * @return value of Content - */ - public final java.lang.String getContent(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Content.toString()); - } - - /** - * Set value of Content - * @param content - */ - public final void setContent(java.lang.String content) - { - setContent(getContext(), content); - } - - /** - * Set value of Content - * @param context - * @param content - */ - public final void setContent(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String content) - { - getMendixObject().setValue(context, MemberNames.Content.toString(), content); - } - - /** - * @return value of UseOnlyPlainText - */ - public final java.lang.Boolean getUseOnlyPlainText() - { - return getUseOnlyPlainText(getContext()); - } - - /** - * @param context - * @return value of UseOnlyPlainText - */ - public final java.lang.Boolean getUseOnlyPlainText(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.UseOnlyPlainText.toString()); - } - - /** - * Set value of UseOnlyPlainText - * @param useonlyplaintext - */ - public final void setUseOnlyPlainText(java.lang.Boolean useonlyplaintext) - { - setUseOnlyPlainText(getContext(), useonlyplaintext); - } - - /** - * Set value of UseOnlyPlainText - * @param context - * @param useonlyplaintext - */ - public final void setUseOnlyPlainText(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean useonlyplaintext) - { - getMendixObject().setValue(context, MemberNames.UseOnlyPlainText.toString(), useonlyplaintext); - } - - /** - * @return value of hasAttachment - */ - public final java.lang.Boolean gethasAttachment() - { - return gethasAttachment(getContext()); - } - - /** - * @param context - * @return value of hasAttachment - */ - public final java.lang.Boolean gethasAttachment(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.hasAttachment.toString()); - } - - /** - * Set value of hasAttachment - * @param hasattachment - */ - public final void sethasAttachment(java.lang.Boolean hasattachment) - { - sethasAttachment(getContext(), hasattachment); - } - - /** - * Set value of hasAttachment - * @param context - * @param hasattachment - */ - public final void sethasAttachment(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean hasattachment) - { - getMendixObject().setValue(context, MemberNames.hasAttachment.toString(), hasattachment); - } - - /** - * @return value of ReplyTo - */ - public final java.lang.String getReplyTo() - { - return getReplyTo(getContext()); - } - - /** - * @param context - * @return value of ReplyTo - */ - public final java.lang.String getReplyTo(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.ReplyTo.toString()); - } - - /** - * Set value of ReplyTo - * @param replyto - */ - public final void setReplyTo(java.lang.String replyto) - { - setReplyTo(getContext(), replyto); - } - - /** - * Set value of ReplyTo - * @param context - * @param replyto - */ - public final void setReplyTo(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String replyto) - { - getMendixObject().setValue(context, MemberNames.ReplyTo.toString(), replyto); - } - - /** - * @return value of PlainBody - */ - public final java.lang.String getPlainBody() - { - return getPlainBody(getContext()); - } - - /** - * @param context - * @return value of PlainBody - */ - public final java.lang.String getPlainBody(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.PlainBody.toString()); - } - - /** - * Set value of PlainBody - * @param plainbody - */ - public final void setPlainBody(java.lang.String plainbody) - { - setPlainBody(getContext(), plainbody); - } - - /** - * Set value of PlainBody - * @param context - * @param plainbody - */ - public final void setPlainBody(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String plainbody) - { - getMendixObject().setValue(context, MemberNames.PlainBody.toString(), plainbody); - } - - /** - * @return value of FromDisplayName - */ - public final java.lang.String getFromDisplayName() - { - return getFromDisplayName(getContext()); - } - - /** - * @param context - * @return value of FromDisplayName - */ - public final java.lang.String getFromDisplayName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.FromDisplayName.toString()); - } - - /** - * Set value of FromDisplayName - * @param fromdisplayname - */ - public final void setFromDisplayName(java.lang.String fromdisplayname) - { - setFromDisplayName(getContext(), fromdisplayname); - } - - /** - * Set value of FromDisplayName - * @param context - * @param fromdisplayname - */ - public final void setFromDisplayName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String fromdisplayname) - { - getMendixObject().setValue(context, MemberNames.FromDisplayName.toString(), fromdisplayname); - } - - /** - * @return value of Signed - */ - public final java.lang.Boolean getSigned() - { - return getSigned(getContext()); - } - - /** - * @param context - * @return value of Signed - */ - public final java.lang.Boolean getSigned(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.Signed.toString()); - } - - /** - * Set value of Signed - * @param signed - */ - public final void setSigned(java.lang.Boolean signed) - { - setSigned(getContext(), signed); - } - - /** - * Set value of Signed - * @param context - * @param signed - */ - public final void setSigned(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean signed) - { - getMendixObject().setValue(context, MemberNames.Signed.toString(), signed); - } - - /** - * @return value of Encrypted - */ - public final java.lang.Boolean getEncrypted() - { - return getEncrypted(getContext()); - } - - /** - * @param context - * @return value of Encrypted - */ - public final java.lang.Boolean getEncrypted(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.Encrypted.toString()); - } - - /** - * Set value of Encrypted - * @param encrypted - */ - public final void setEncrypted(java.lang.Boolean encrypted) - { - setEncrypted(getContext(), encrypted); - } - - /** - * Set value of Encrypted - * @param context - * @param encrypted - */ - public final void setEncrypted(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean encrypted) - { - getMendixObject().setValue(context, MemberNames.Encrypted.toString(), encrypted); - } - - /** - * @return value of RecipientsToggle - */ - public final java.lang.Boolean getRecipientsToggle() - { - return getRecipientsToggle(getContext()); - } - - /** - * @param context - * @return value of RecipientsToggle - */ - public final java.lang.Boolean getRecipientsToggle(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.RecipientsToggle.toString()); - } - - /** - * Set value of RecipientsToggle - * @param recipientstoggle - */ - public final void setRecipientsToggle(java.lang.Boolean recipientstoggle) - { - setRecipientsToggle(getContext(), recipientstoggle); - } - - /** - * Set value of RecipientsToggle - * @param context - * @param recipientstoggle - */ - public final void setRecipientsToggle(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean recipientstoggle) - { - getMendixObject().setValue(context, MemberNames.RecipientsToggle.toString(), recipientstoggle); - } - - /** - * @return value of FromAddress - */ - public final java.lang.String getFromAddress() - { - return getFromAddress(getContext()); - } - - /** - * @param context - * @return value of FromAddress - */ - public final java.lang.String getFromAddress(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.FromAddress.toString()); - } - - /** - * Set value of FromAddress - * @param fromaddress - */ - public final void setFromAddress(java.lang.String fromaddress) - { - setFromAddress(getContext(), fromaddress); - } - - /** - * Set value of FromAddress - * @param context - * @param fromaddress - */ - public final void setFromAddress(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String fromaddress) - { - getMendixObject().setValue(context, MemberNames.FromAddress.toString(), fromaddress); - } - - /** - * @return value of EmailTemplate_Token - */ - public final java.util.List getEmailTemplate_Token() throws com.mendix.core.CoreException - { - return getEmailTemplate_Token(getContext()); - } - - /** - * @param context - * @return value of EmailTemplate_Token - */ - @SuppressWarnings("unchecked") - public final java.util.List getEmailTemplate_Token(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - Object valueObject = getMendixObject().getValue(context, MemberNames.EmailTemplate_Token.toString()); - if (valueObject == null) - return result; - for (com.mendix.systemwideinterfaces.core.IMendixObject mendixObject : com.mendix.core.Core.retrieveIdList(context, (java.util.List) valueObject)) - result.add(mxmodelreflection.proxies.Token.initialize(context, mendixObject)); - return result; - } - - /** - * Set value of EmailTemplate_Token - * @param emailtemplate_token - */ - public final void setEmailTemplate_Token(java.util.List emailtemplate_token) - { - setEmailTemplate_Token(getContext(), emailtemplate_token); - } - - /** - * Set value of EmailTemplate_Token - * @param context - * @param emailtemplate_token - */ - public final void setEmailTemplate_Token(com.mendix.systemwideinterfaces.core.IContext context, java.util.List emailtemplate_token) - { - java.util.List identifiers = new java.util.ArrayList(); - for (mxmodelreflection.proxies.Token proxyObject : emailtemplate_token) - identifiers.add(proxyObject.getMendixObject().getId()); - getMendixObject().setValue(context, MemberNames.EmailTemplate_Token.toString(), identifiers); - } - - /** - * @return value of EmailTemplate_MxObjectType - */ - public final mxmodelreflection.proxies.MxObjectType getEmailTemplate_MxObjectType() throws com.mendix.core.CoreException - { - return getEmailTemplate_MxObjectType(getContext()); - } - - /** - * @param context - * @return value of EmailTemplate_MxObjectType - */ - public final mxmodelreflection.proxies.MxObjectType getEmailTemplate_MxObjectType(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - mxmodelreflection.proxies.MxObjectType result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.EmailTemplate_MxObjectType.toString()); - if (identifier != null) - result = mxmodelreflection.proxies.MxObjectType.load(context, identifier); - return result; - } - - /** - * Set value of EmailTemplate_MxObjectType - * @param emailtemplate_mxobjecttype - */ - public final void setEmailTemplate_MxObjectType(mxmodelreflection.proxies.MxObjectType emailtemplate_mxobjecttype) - { - setEmailTemplate_MxObjectType(getContext(), emailtemplate_mxobjecttype); - } - - /** - * Set value of EmailTemplate_MxObjectType - * @param context - * @param emailtemplate_mxobjecttype - */ - public final void setEmailTemplate_MxObjectType(com.mendix.systemwideinterfaces.core.IContext context, mxmodelreflection.proxies.MxObjectType emailtemplate_mxobjecttype) - { - if (emailtemplate_mxobjecttype == null) - getMendixObject().setValue(context, MemberNames.EmailTemplate_MxObjectType.toString(), null); - else - getMendixObject().setValue(context, MemberNames.EmailTemplate_MxObjectType.toString(), emailtemplate_mxobjecttype.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return emailTemplateMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final email_connector.proxies.EmailTemplate that = (email_connector.proxies.EmailTemplate) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "Email_Connector.EmailTemplate"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/email_connector/proxies/Folder.java b/javasource/email_connector/proxies/Folder.java deleted file mode 100644 index 1a54525..0000000 --- a/javasource/email_connector/proxies/Folder.java +++ /dev/null @@ -1,199 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package email_connector.proxies; - -public class Folder -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject folderMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "Email_Connector.Folder"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - Name("Name"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public Folder(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "Email_Connector.Folder")); - } - - protected Folder(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject folderMendixObject) - { - if (folderMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("Email_Connector.Folder", folderMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a Email_Connector.Folder"); - - this.folderMendixObject = folderMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'Folder.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static email_connector.proxies.Folder initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return email_connector.proxies.Folder.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static email_connector.proxies.Folder initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new email_connector.proxies.Folder(context, mendixObject); - } - - public static email_connector.proxies.Folder load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return email_connector.proxies.Folder.initialize(context, mendixObject); - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of Name - */ - public final java.lang.String getName() - { - return getName(getContext()); - } - - /** - * @param context - * @return value of Name - */ - public final java.lang.String getName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Name.toString()); - } - - /** - * Set value of Name - * @param name - */ - public final void setName(java.lang.String name) - { - setName(getContext(), name); - } - - /** - * Set value of Name - * @param context - * @param name - */ - public final void setName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String name) - { - getMendixObject().setValue(context, MemberNames.Name.toString(), name); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return folderMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final email_connector.proxies.Folder that = (email_connector.proxies.Folder) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "Email_Connector.Folder"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/email_connector/proxies/IncomingEmailConfiguration.java b/javasource/email_connector/proxies/IncomingEmailConfiguration.java deleted file mode 100644 index 95e3aff..0000000 --- a/javasource/email_connector/proxies/IncomingEmailConfiguration.java +++ /dev/null @@ -1,645 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package email_connector.proxies; - -public class IncomingEmailConfiguration -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject incomingEmailConfigurationMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "Email_Connector.IncomingEmailConfiguration"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - IncomingProtocol("IncomingProtocol"), - Folder("Folder"), - UseBatchImport("UseBatchImport"), - BatchSize("BatchSize"), - Handling("Handling"), - MoveFolder("MoveFolder"), - ProcessInlineImage("ProcessInlineImage"), - FetchStrategy("FetchStrategy"), - NotifyOnNewEmails("NotifyOnNewEmails"), - ServerHost("ServerHost"), - ServerPort("ServerPort"), - IncomingEmailConfiguration_EmailAccount("Email_Connector.IncomingEmailConfiguration_EmailAccount"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public IncomingEmailConfiguration(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "Email_Connector.IncomingEmailConfiguration")); - } - - protected IncomingEmailConfiguration(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject incomingEmailConfigurationMendixObject) - { - if (incomingEmailConfigurationMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("Email_Connector.IncomingEmailConfiguration", incomingEmailConfigurationMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a Email_Connector.IncomingEmailConfiguration"); - - this.incomingEmailConfigurationMendixObject = incomingEmailConfigurationMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'IncomingEmailConfiguration.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static email_connector.proxies.IncomingEmailConfiguration initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return email_connector.proxies.IncomingEmailConfiguration.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static email_connector.proxies.IncomingEmailConfiguration initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new email_connector.proxies.IncomingEmailConfiguration(context, mendixObject); - } - - public static email_connector.proxies.IncomingEmailConfiguration load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return email_connector.proxies.IncomingEmailConfiguration.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//Email_Connector.IncomingEmailConfiguration" + xpathConstraint)) - result.add(email_connector.proxies.IncomingEmailConfiguration.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * Set value of IncomingProtocol - * @param incomingprotocol - */ - public final email_connector.proxies.ENUM_IncomingProtocol getIncomingProtocol() - { - return getIncomingProtocol(getContext()); - } - - /** - * @param context - * @return value of IncomingProtocol - */ - public final email_connector.proxies.ENUM_IncomingProtocol getIncomingProtocol(com.mendix.systemwideinterfaces.core.IContext context) - { - Object obj = getMendixObject().getValue(context, MemberNames.IncomingProtocol.toString()); - if (obj == null) - return null; - - return email_connector.proxies.ENUM_IncomingProtocol.valueOf((java.lang.String) obj); - } - - /** - * Set value of IncomingProtocol - * @param incomingprotocol - */ - public final void setIncomingProtocol(email_connector.proxies.ENUM_IncomingProtocol incomingprotocol) - { - setIncomingProtocol(getContext(), incomingprotocol); - } - - /** - * Set value of IncomingProtocol - * @param context - * @param incomingprotocol - */ - public final void setIncomingProtocol(com.mendix.systemwideinterfaces.core.IContext context, email_connector.proxies.ENUM_IncomingProtocol incomingprotocol) - { - if (incomingprotocol != null) - getMendixObject().setValue(context, MemberNames.IncomingProtocol.toString(), incomingprotocol.toString()); - else - getMendixObject().setValue(context, MemberNames.IncomingProtocol.toString(), null); - } - - /** - * @return value of Folder - */ - public final java.lang.String getFolder() - { - return getFolder(getContext()); - } - - /** - * @param context - * @return value of Folder - */ - public final java.lang.String getFolder(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Folder.toString()); - } - - /** - * Set value of Folder - * @param folder - */ - public final void setFolder(java.lang.String folder) - { - setFolder(getContext(), folder); - } - - /** - * Set value of Folder - * @param context - * @param folder - */ - public final void setFolder(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String folder) - { - getMendixObject().setValue(context, MemberNames.Folder.toString(), folder); - } - - /** - * @return value of UseBatchImport - */ - public final java.lang.Boolean getUseBatchImport() - { - return getUseBatchImport(getContext()); - } - - /** - * @param context - * @return value of UseBatchImport - */ - public final java.lang.Boolean getUseBatchImport(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.UseBatchImport.toString()); - } - - /** - * Set value of UseBatchImport - * @param usebatchimport - */ - public final void setUseBatchImport(java.lang.Boolean usebatchimport) - { - setUseBatchImport(getContext(), usebatchimport); - } - - /** - * Set value of UseBatchImport - * @param context - * @param usebatchimport - */ - public final void setUseBatchImport(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean usebatchimport) - { - getMendixObject().setValue(context, MemberNames.UseBatchImport.toString(), usebatchimport); - } - - /** - * @return value of BatchSize - */ - public final java.lang.Integer getBatchSize() - { - return getBatchSize(getContext()); - } - - /** - * @param context - * @return value of BatchSize - */ - public final java.lang.Integer getBatchSize(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Integer) getMendixObject().getValue(context, MemberNames.BatchSize.toString()); - } - - /** - * Set value of BatchSize - * @param batchsize - */ - public final void setBatchSize(java.lang.Integer batchsize) - { - setBatchSize(getContext(), batchsize); - } - - /** - * Set value of BatchSize - * @param context - * @param batchsize - */ - public final void setBatchSize(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Integer batchsize) - { - getMendixObject().setValue(context, MemberNames.BatchSize.toString(), batchsize); - } - - /** - * Set value of Handling - * @param handling - */ - public final email_connector.proxies.ENUM_MessageHandling getHandling() - { - return getHandling(getContext()); - } - - /** - * @param context - * @return value of Handling - */ - public final email_connector.proxies.ENUM_MessageHandling getHandling(com.mendix.systemwideinterfaces.core.IContext context) - { - Object obj = getMendixObject().getValue(context, MemberNames.Handling.toString()); - if (obj == null) - return null; - - return email_connector.proxies.ENUM_MessageHandling.valueOf((java.lang.String) obj); - } - - /** - * Set value of Handling - * @param handling - */ - public final void setHandling(email_connector.proxies.ENUM_MessageHandling handling) - { - setHandling(getContext(), handling); - } - - /** - * Set value of Handling - * @param context - * @param handling - */ - public final void setHandling(com.mendix.systemwideinterfaces.core.IContext context, email_connector.proxies.ENUM_MessageHandling handling) - { - if (handling != null) - getMendixObject().setValue(context, MemberNames.Handling.toString(), handling.toString()); - else - getMendixObject().setValue(context, MemberNames.Handling.toString(), null); - } - - /** - * @return value of MoveFolder - */ - public final java.lang.String getMoveFolder() - { - return getMoveFolder(getContext()); - } - - /** - * @param context - * @return value of MoveFolder - */ - public final java.lang.String getMoveFolder(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.MoveFolder.toString()); - } - - /** - * Set value of MoveFolder - * @param movefolder - */ - public final void setMoveFolder(java.lang.String movefolder) - { - setMoveFolder(getContext(), movefolder); - } - - /** - * Set value of MoveFolder - * @param context - * @param movefolder - */ - public final void setMoveFolder(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String movefolder) - { - getMendixObject().setValue(context, MemberNames.MoveFolder.toString(), movefolder); - } - - /** - * @return value of ProcessInlineImage - */ - public final java.lang.Boolean getProcessInlineImage() - { - return getProcessInlineImage(getContext()); - } - - /** - * @param context - * @return value of ProcessInlineImage - */ - public final java.lang.Boolean getProcessInlineImage(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.ProcessInlineImage.toString()); - } - - /** - * Set value of ProcessInlineImage - * @param processinlineimage - */ - public final void setProcessInlineImage(java.lang.Boolean processinlineimage) - { - setProcessInlineImage(getContext(), processinlineimage); - } - - /** - * Set value of ProcessInlineImage - * @param context - * @param processinlineimage - */ - public final void setProcessInlineImage(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean processinlineimage) - { - getMendixObject().setValue(context, MemberNames.ProcessInlineImage.toString(), processinlineimage); - } - - /** - * Set value of FetchStrategy - * @param fetchstrategy - */ - public final email_connector.proxies.ENUM_FetchStrategy getFetchStrategy() - { - return getFetchStrategy(getContext()); - } - - /** - * @param context - * @return value of FetchStrategy - */ - public final email_connector.proxies.ENUM_FetchStrategy getFetchStrategy(com.mendix.systemwideinterfaces.core.IContext context) - { - Object obj = getMendixObject().getValue(context, MemberNames.FetchStrategy.toString()); - if (obj == null) - return null; - - return email_connector.proxies.ENUM_FetchStrategy.valueOf((java.lang.String) obj); - } - - /** - * Set value of FetchStrategy - * @param fetchstrategy - */ - public final void setFetchStrategy(email_connector.proxies.ENUM_FetchStrategy fetchstrategy) - { - setFetchStrategy(getContext(), fetchstrategy); - } - - /** - * Set value of FetchStrategy - * @param context - * @param fetchstrategy - */ - public final void setFetchStrategy(com.mendix.systemwideinterfaces.core.IContext context, email_connector.proxies.ENUM_FetchStrategy fetchstrategy) - { - if (fetchstrategy != null) - getMendixObject().setValue(context, MemberNames.FetchStrategy.toString(), fetchstrategy.toString()); - else - getMendixObject().setValue(context, MemberNames.FetchStrategy.toString(), null); - } - - /** - * @return value of NotifyOnNewEmails - */ - public final java.lang.Boolean getNotifyOnNewEmails() - { - return getNotifyOnNewEmails(getContext()); - } - - /** - * @param context - * @return value of NotifyOnNewEmails - */ - public final java.lang.Boolean getNotifyOnNewEmails(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.NotifyOnNewEmails.toString()); - } - - /** - * Set value of NotifyOnNewEmails - * @param notifyonnewemails - */ - public final void setNotifyOnNewEmails(java.lang.Boolean notifyonnewemails) - { - setNotifyOnNewEmails(getContext(), notifyonnewemails); - } - - /** - * Set value of NotifyOnNewEmails - * @param context - * @param notifyonnewemails - */ - public final void setNotifyOnNewEmails(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean notifyonnewemails) - { - getMendixObject().setValue(context, MemberNames.NotifyOnNewEmails.toString(), notifyonnewemails); - } - - /** - * @return value of ServerHost - */ - public final java.lang.String getServerHost() - { - return getServerHost(getContext()); - } - - /** - * @param context - * @return value of ServerHost - */ - public final java.lang.String getServerHost(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.ServerHost.toString()); - } - - /** - * Set value of ServerHost - * @param serverhost - */ - public final void setServerHost(java.lang.String serverhost) - { - setServerHost(getContext(), serverhost); - } - - /** - * Set value of ServerHost - * @param context - * @param serverhost - */ - public final void setServerHost(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String serverhost) - { - getMendixObject().setValue(context, MemberNames.ServerHost.toString(), serverhost); - } - - /** - * @return value of ServerPort - */ - public final java.lang.Integer getServerPort() - { - return getServerPort(getContext()); - } - - /** - * @param context - * @return value of ServerPort - */ - public final java.lang.Integer getServerPort(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Integer) getMendixObject().getValue(context, MemberNames.ServerPort.toString()); - } - - /** - * Set value of ServerPort - * @param serverport - */ - public final void setServerPort(java.lang.Integer serverport) - { - setServerPort(getContext(), serverport); - } - - /** - * Set value of ServerPort - * @param context - * @param serverport - */ - public final void setServerPort(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Integer serverport) - { - getMendixObject().setValue(context, MemberNames.ServerPort.toString(), serverport); - } - - /** - * @return value of IncomingEmailConfiguration_EmailAccount - */ - public final email_connector.proxies.EmailAccount getIncomingEmailConfiguration_EmailAccount() throws com.mendix.core.CoreException - { - return getIncomingEmailConfiguration_EmailAccount(getContext()); - } - - /** - * @param context - * @return value of IncomingEmailConfiguration_EmailAccount - */ - public final email_connector.proxies.EmailAccount getIncomingEmailConfiguration_EmailAccount(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - email_connector.proxies.EmailAccount result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.IncomingEmailConfiguration_EmailAccount.toString()); - if (identifier != null) - result = email_connector.proxies.EmailAccount.load(context, identifier); - return result; - } - - /** - * Set value of IncomingEmailConfiguration_EmailAccount - * @param incomingemailconfiguration_emailaccount - */ - public final void setIncomingEmailConfiguration_EmailAccount(email_connector.proxies.EmailAccount incomingemailconfiguration_emailaccount) - { - setIncomingEmailConfiguration_EmailAccount(getContext(), incomingemailconfiguration_emailaccount); - } - - /** - * Set value of IncomingEmailConfiguration_EmailAccount - * @param context - * @param incomingemailconfiguration_emailaccount - */ - public final void setIncomingEmailConfiguration_EmailAccount(com.mendix.systemwideinterfaces.core.IContext context, email_connector.proxies.EmailAccount incomingemailconfiguration_emailaccount) - { - if (incomingemailconfiguration_emailaccount == null) - getMendixObject().setValue(context, MemberNames.IncomingEmailConfiguration_EmailAccount.toString(), null); - else - getMendixObject().setValue(context, MemberNames.IncomingEmailConfiguration_EmailAccount.toString(), incomingemailconfiguration_emailaccount.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return incomingEmailConfigurationMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final email_connector.proxies.IncomingEmailConfiguration that = (email_connector.proxies.IncomingEmailConfiguration) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "Email_Connector.IncomingEmailConfiguration"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/email_connector/proxies/IncomingServer.java b/javasource/email_connector/proxies/IncomingServer.java deleted file mode 100644 index e6174ee..0000000 --- a/javasource/email_connector/proxies/IncomingServer.java +++ /dev/null @@ -1,473 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package email_connector.proxies; - -public class IncomingServer -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject incomingServerMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "Email_Connector.IncomingServer"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - HostName("HostName"), - Port("Port"), - SocketType("SocketType"), - IncomingProtocol("IncomingProtocol"), - ReceiveIMAPS("ReceiveIMAPS"), - ReceivePOP3S("ReceivePOP3S"), - SelectedIncomingServer("SelectedIncomingServer"), - IncomingServer_EmailProvider("Email_Connector.IncomingServer_EmailProvider"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public IncomingServer(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "Email_Connector.IncomingServer")); - } - - protected IncomingServer(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject incomingServerMendixObject) - { - if (incomingServerMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("Email_Connector.IncomingServer", incomingServerMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a Email_Connector.IncomingServer"); - - this.incomingServerMendixObject = incomingServerMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'IncomingServer.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static email_connector.proxies.IncomingServer initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return email_connector.proxies.IncomingServer.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static email_connector.proxies.IncomingServer initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new email_connector.proxies.IncomingServer(context, mendixObject); - } - - public static email_connector.proxies.IncomingServer load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return email_connector.proxies.IncomingServer.initialize(context, mendixObject); - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of HostName - */ - public final java.lang.String getHostName() - { - return getHostName(getContext()); - } - - /** - * @param context - * @return value of HostName - */ - public final java.lang.String getHostName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.HostName.toString()); - } - - /** - * Set value of HostName - * @param hostname - */ - public final void setHostName(java.lang.String hostname) - { - setHostName(getContext(), hostname); - } - - /** - * Set value of HostName - * @param context - * @param hostname - */ - public final void setHostName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String hostname) - { - getMendixObject().setValue(context, MemberNames.HostName.toString(), hostname); - } - - /** - * @return value of Port - */ - public final java.lang.Integer getPort() - { - return getPort(getContext()); - } - - /** - * @param context - * @return value of Port - */ - public final java.lang.Integer getPort(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Integer) getMendixObject().getValue(context, MemberNames.Port.toString()); - } - - /** - * Set value of Port - * @param port - */ - public final void setPort(java.lang.Integer port) - { - setPort(getContext(), port); - } - - /** - * Set value of Port - * @param context - * @param port - */ - public final void setPort(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Integer port) - { - getMendixObject().setValue(context, MemberNames.Port.toString(), port); - } - - /** - * @return value of SocketType - */ - public final java.lang.String getSocketType() - { - return getSocketType(getContext()); - } - - /** - * @param context - * @return value of SocketType - */ - public final java.lang.String getSocketType(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.SocketType.toString()); - } - - /** - * Set value of SocketType - * @param sockettype - */ - public final void setSocketType(java.lang.String sockettype) - { - setSocketType(getContext(), sockettype); - } - - /** - * Set value of SocketType - * @param context - * @param sockettype - */ - public final void setSocketType(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String sockettype) - { - getMendixObject().setValue(context, MemberNames.SocketType.toString(), sockettype); - } - - /** - * Set value of IncomingProtocol - * @param incomingprotocol - */ - public final email_connector.proxies.ENUM_IncomingProtocol getIncomingProtocol() - { - return getIncomingProtocol(getContext()); - } - - /** - * @param context - * @return value of IncomingProtocol - */ - public final email_connector.proxies.ENUM_IncomingProtocol getIncomingProtocol(com.mendix.systemwideinterfaces.core.IContext context) - { - Object obj = getMendixObject().getValue(context, MemberNames.IncomingProtocol.toString()); - if (obj == null) - return null; - - return email_connector.proxies.ENUM_IncomingProtocol.valueOf((java.lang.String) obj); - } - - /** - * Set value of IncomingProtocol - * @param incomingprotocol - */ - public final void setIncomingProtocol(email_connector.proxies.ENUM_IncomingProtocol incomingprotocol) - { - setIncomingProtocol(getContext(), incomingprotocol); - } - - /** - * Set value of IncomingProtocol - * @param context - * @param incomingprotocol - */ - public final void setIncomingProtocol(com.mendix.systemwideinterfaces.core.IContext context, email_connector.proxies.ENUM_IncomingProtocol incomingprotocol) - { - if (incomingprotocol != null) - getMendixObject().setValue(context, MemberNames.IncomingProtocol.toString(), incomingprotocol.toString()); - else - getMendixObject().setValue(context, MemberNames.IncomingProtocol.toString(), null); - } - - /** - * @return value of ReceiveIMAPS - */ - public final java.lang.Boolean getReceiveIMAPS() - { - return getReceiveIMAPS(getContext()); - } - - /** - * @param context - * @return value of ReceiveIMAPS - */ - public final java.lang.Boolean getReceiveIMAPS(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.ReceiveIMAPS.toString()); - } - - /** - * Set value of ReceiveIMAPS - * @param receiveimaps - */ - public final void setReceiveIMAPS(java.lang.Boolean receiveimaps) - { - setReceiveIMAPS(getContext(), receiveimaps); - } - - /** - * Set value of ReceiveIMAPS - * @param context - * @param receiveimaps - */ - public final void setReceiveIMAPS(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean receiveimaps) - { - getMendixObject().setValue(context, MemberNames.ReceiveIMAPS.toString(), receiveimaps); - } - - /** - * @return value of ReceivePOP3S - */ - public final java.lang.Boolean getReceivePOP3S() - { - return getReceivePOP3S(getContext()); - } - - /** - * @param context - * @return value of ReceivePOP3S - */ - public final java.lang.Boolean getReceivePOP3S(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.ReceivePOP3S.toString()); - } - - /** - * Set value of ReceivePOP3S - * @param receivepop3s - */ - public final void setReceivePOP3S(java.lang.Boolean receivepop3s) - { - setReceivePOP3S(getContext(), receivepop3s); - } - - /** - * Set value of ReceivePOP3S - * @param context - * @param receivepop3s - */ - public final void setReceivePOP3S(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean receivepop3s) - { - getMendixObject().setValue(context, MemberNames.ReceivePOP3S.toString(), receivepop3s); - } - - /** - * @return value of SelectedIncomingServer - */ - public final java.lang.Boolean getSelectedIncomingServer() - { - return getSelectedIncomingServer(getContext()); - } - - /** - * @param context - * @return value of SelectedIncomingServer - */ - public final java.lang.Boolean getSelectedIncomingServer(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.SelectedIncomingServer.toString()); - } - - /** - * Set value of SelectedIncomingServer - * @param selectedincomingserver - */ - public final void setSelectedIncomingServer(java.lang.Boolean selectedincomingserver) - { - setSelectedIncomingServer(getContext(), selectedincomingserver); - } - - /** - * Set value of SelectedIncomingServer - * @param context - * @param selectedincomingserver - */ - public final void setSelectedIncomingServer(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean selectedincomingserver) - { - getMendixObject().setValue(context, MemberNames.SelectedIncomingServer.toString(), selectedincomingserver); - } - - /** - * @return value of IncomingServer_EmailProvider - */ - public final email_connector.proxies.EmailProvider getIncomingServer_EmailProvider() throws com.mendix.core.CoreException - { - return getIncomingServer_EmailProvider(getContext()); - } - - /** - * @param context - * @return value of IncomingServer_EmailProvider - */ - public final email_connector.proxies.EmailProvider getIncomingServer_EmailProvider(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - email_connector.proxies.EmailProvider result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.IncomingServer_EmailProvider.toString()); - if (identifier != null) - result = email_connector.proxies.EmailProvider.load(context, identifier); - return result; - } - - /** - * Set value of IncomingServer_EmailProvider - * @param incomingserver_emailprovider - */ - public final void setIncomingServer_EmailProvider(email_connector.proxies.EmailProvider incomingserver_emailprovider) - { - setIncomingServer_EmailProvider(getContext(), incomingserver_emailprovider); - } - - /** - * Set value of IncomingServer_EmailProvider - * @param context - * @param incomingserver_emailprovider - */ - public final void setIncomingServer_EmailProvider(com.mendix.systemwideinterfaces.core.IContext context, email_connector.proxies.EmailProvider incomingserver_emailprovider) - { - if (incomingserver_emailprovider == null) - getMendixObject().setValue(context, MemberNames.IncomingServer_EmailProvider.toString(), null); - else - getMendixObject().setValue(context, MemberNames.IncomingServer_EmailProvider.toString(), incomingserver_emailprovider.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return incomingServerMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final email_connector.proxies.IncomingServer that = (email_connector.proxies.IncomingServer) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "Email_Connector.IncomingServer"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/email_connector/proxies/LDAPBaseDN.java b/javasource/email_connector/proxies/LDAPBaseDN.java deleted file mode 100644 index e41ea25..0000000 --- a/javasource/email_connector/proxies/LDAPBaseDN.java +++ /dev/null @@ -1,199 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package email_connector.proxies; - -public class LDAPBaseDN -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject lDAPBaseDNMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "Email_Connector.LDAPBaseDN"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - Name("Name"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public LDAPBaseDN(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "Email_Connector.LDAPBaseDN")); - } - - protected LDAPBaseDN(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject lDAPBaseDNMendixObject) - { - if (lDAPBaseDNMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("Email_Connector.LDAPBaseDN", lDAPBaseDNMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a Email_Connector.LDAPBaseDN"); - - this.lDAPBaseDNMendixObject = lDAPBaseDNMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'LDAPBaseDN.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static email_connector.proxies.LDAPBaseDN initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return email_connector.proxies.LDAPBaseDN.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static email_connector.proxies.LDAPBaseDN initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new email_connector.proxies.LDAPBaseDN(context, mendixObject); - } - - public static email_connector.proxies.LDAPBaseDN load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return email_connector.proxies.LDAPBaseDN.initialize(context, mendixObject); - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of Name - */ - public final java.lang.String getName() - { - return getName(getContext()); - } - - /** - * @param context - * @return value of Name - */ - public final java.lang.String getName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Name.toString()); - } - - /** - * Set value of Name - * @param name - */ - public final void setName(java.lang.String name) - { - setName(getContext(), name); - } - - /** - * Set value of Name - * @param context - * @param name - */ - public final void setName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String name) - { - getMendixObject().setValue(context, MemberNames.Name.toString(), name); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return lDAPBaseDNMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final email_connector.proxies.LDAPBaseDN that = (email_connector.proxies.LDAPBaseDN) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "Email_Connector.LDAPBaseDN"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/email_connector/proxies/LDAPConfiguration.java b/javasource/email_connector/proxies/LDAPConfiguration.java deleted file mode 100644 index 425415f..0000000 --- a/javasource/email_connector/proxies/LDAPConfiguration.java +++ /dev/null @@ -1,481 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package email_connector.proxies; - -public class LDAPConfiguration -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject lDAPConfigurationMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "Email_Connector.LDAPConfiguration"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - LDAPHost("LDAPHost"), - LDAPPort("LDAPPort"), - LDAPUsername("LDAPUsername"), - LDAPPassword("LDAPPassword"), - isSSL("isSSL"), - BaseDN("BaseDN"), - AuthType("AuthType"), - EmailAccount_LDAPConfiguration("Email_Connector.EmailAccount_LDAPConfiguration"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public LDAPConfiguration(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "Email_Connector.LDAPConfiguration")); - } - - protected LDAPConfiguration(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject lDAPConfigurationMendixObject) - { - if (lDAPConfigurationMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("Email_Connector.LDAPConfiguration", lDAPConfigurationMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a Email_Connector.LDAPConfiguration"); - - this.lDAPConfigurationMendixObject = lDAPConfigurationMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'LDAPConfiguration.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static email_connector.proxies.LDAPConfiguration initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return email_connector.proxies.LDAPConfiguration.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static email_connector.proxies.LDAPConfiguration initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new email_connector.proxies.LDAPConfiguration(context, mendixObject); - } - - public static email_connector.proxies.LDAPConfiguration load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return email_connector.proxies.LDAPConfiguration.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//Email_Connector.LDAPConfiguration" + xpathConstraint)) - result.add(email_connector.proxies.LDAPConfiguration.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of LDAPHost - */ - public final java.lang.String getLDAPHost() - { - return getLDAPHost(getContext()); - } - - /** - * @param context - * @return value of LDAPHost - */ - public final java.lang.String getLDAPHost(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.LDAPHost.toString()); - } - - /** - * Set value of LDAPHost - * @param ldaphost - */ - public final void setLDAPHost(java.lang.String ldaphost) - { - setLDAPHost(getContext(), ldaphost); - } - - /** - * Set value of LDAPHost - * @param context - * @param ldaphost - */ - public final void setLDAPHost(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String ldaphost) - { - getMendixObject().setValue(context, MemberNames.LDAPHost.toString(), ldaphost); - } - - /** - * @return value of LDAPPort - */ - public final java.lang.Integer getLDAPPort() - { - return getLDAPPort(getContext()); - } - - /** - * @param context - * @return value of LDAPPort - */ - public final java.lang.Integer getLDAPPort(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Integer) getMendixObject().getValue(context, MemberNames.LDAPPort.toString()); - } - - /** - * Set value of LDAPPort - * @param ldapport - */ - public final void setLDAPPort(java.lang.Integer ldapport) - { - setLDAPPort(getContext(), ldapport); - } - - /** - * Set value of LDAPPort - * @param context - * @param ldapport - */ - public final void setLDAPPort(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Integer ldapport) - { - getMendixObject().setValue(context, MemberNames.LDAPPort.toString(), ldapport); - } - - /** - * @return value of LDAPUsername - */ - public final java.lang.String getLDAPUsername() - { - return getLDAPUsername(getContext()); - } - - /** - * @param context - * @return value of LDAPUsername - */ - public final java.lang.String getLDAPUsername(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.LDAPUsername.toString()); - } - - /** - * Set value of LDAPUsername - * @param ldapusername - */ - public final void setLDAPUsername(java.lang.String ldapusername) - { - setLDAPUsername(getContext(), ldapusername); - } - - /** - * Set value of LDAPUsername - * @param context - * @param ldapusername - */ - public final void setLDAPUsername(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String ldapusername) - { - getMendixObject().setValue(context, MemberNames.LDAPUsername.toString(), ldapusername); - } - - /** - * @return value of LDAPPassword - */ - public final java.lang.String getLDAPPassword() - { - return getLDAPPassword(getContext()); - } - - /** - * @param context - * @return value of LDAPPassword - */ - public final java.lang.String getLDAPPassword(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.LDAPPassword.toString()); - } - - /** - * Set value of LDAPPassword - * @param ldappassword - */ - public final void setLDAPPassword(java.lang.String ldappassword) - { - setLDAPPassword(getContext(), ldappassword); - } - - /** - * Set value of LDAPPassword - * @param context - * @param ldappassword - */ - public final void setLDAPPassword(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String ldappassword) - { - getMendixObject().setValue(context, MemberNames.LDAPPassword.toString(), ldappassword); - } - - /** - * @return value of isSSL - */ - public final java.lang.Boolean getisSSL() - { - return getisSSL(getContext()); - } - - /** - * @param context - * @return value of isSSL - */ - public final java.lang.Boolean getisSSL(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.isSSL.toString()); - } - - /** - * Set value of isSSL - * @param isssl - */ - public final void setisSSL(java.lang.Boolean isssl) - { - setisSSL(getContext(), isssl); - } - - /** - * Set value of isSSL - * @param context - * @param isssl - */ - public final void setisSSL(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean isssl) - { - getMendixObject().setValue(context, MemberNames.isSSL.toString(), isssl); - } - - /** - * @return value of BaseDN - */ - public final java.lang.String getBaseDN() - { - return getBaseDN(getContext()); - } - - /** - * @param context - * @return value of BaseDN - */ - public final java.lang.String getBaseDN(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.BaseDN.toString()); - } - - /** - * Set value of BaseDN - * @param basedn - */ - public final void setBaseDN(java.lang.String basedn) - { - setBaseDN(getContext(), basedn); - } - - /** - * Set value of BaseDN - * @param context - * @param basedn - */ - public final void setBaseDN(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String basedn) - { - getMendixObject().setValue(context, MemberNames.BaseDN.toString(), basedn); - } - - /** - * Set value of AuthType - * @param authtype - */ - public final email_connector.proxies.ENUM_LDAPAuthType getAuthType() - { - return getAuthType(getContext()); - } - - /** - * @param context - * @return value of AuthType - */ - public final email_connector.proxies.ENUM_LDAPAuthType getAuthType(com.mendix.systemwideinterfaces.core.IContext context) - { - Object obj = getMendixObject().getValue(context, MemberNames.AuthType.toString()); - if (obj == null) - return null; - - return email_connector.proxies.ENUM_LDAPAuthType.valueOf((java.lang.String) obj); - } - - /** - * Set value of AuthType - * @param authtype - */ - public final void setAuthType(email_connector.proxies.ENUM_LDAPAuthType authtype) - { - setAuthType(getContext(), authtype); - } - - /** - * Set value of AuthType - * @param context - * @param authtype - */ - public final void setAuthType(com.mendix.systemwideinterfaces.core.IContext context, email_connector.proxies.ENUM_LDAPAuthType authtype) - { - if (authtype != null) - getMendixObject().setValue(context, MemberNames.AuthType.toString(), authtype.toString()); - else - getMendixObject().setValue(context, MemberNames.AuthType.toString(), null); - } - - /** - * @return value of EmailAccount_LDAPConfiguration - */ - public final email_connector.proxies.EmailAccount getEmailAccount_LDAPConfiguration() throws com.mendix.core.CoreException - { - return getEmailAccount_LDAPConfiguration(getContext()); - } - - /** - * @param context - * @return value of EmailAccount_LDAPConfiguration - */ - public final email_connector.proxies.EmailAccount getEmailAccount_LDAPConfiguration(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - email_connector.proxies.EmailAccount result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.EmailAccount_LDAPConfiguration.toString()); - if (identifier != null) - result = email_connector.proxies.EmailAccount.load(context, identifier); - return result; - } - - /** - * Set value of EmailAccount_LDAPConfiguration - * @param emailaccount_ldapconfiguration - */ - public final void setEmailAccount_LDAPConfiguration(email_connector.proxies.EmailAccount emailaccount_ldapconfiguration) - { - setEmailAccount_LDAPConfiguration(getContext(), emailaccount_ldapconfiguration); - } - - /** - * Set value of EmailAccount_LDAPConfiguration - * @param context - * @param emailaccount_ldapconfiguration - */ - public final void setEmailAccount_LDAPConfiguration(com.mendix.systemwideinterfaces.core.IContext context, email_connector.proxies.EmailAccount emailaccount_ldapconfiguration) - { - if (emailaccount_ldapconfiguration == null) - getMendixObject().setValue(context, MemberNames.EmailAccount_LDAPConfiguration.toString(), null); - else - getMendixObject().setValue(context, MemberNames.EmailAccount_LDAPConfiguration.toString(), emailaccount_ldapconfiguration.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return lDAPConfigurationMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final email_connector.proxies.LDAPConfiguration that = (email_connector.proxies.LDAPConfiguration) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "Email_Connector.LDAPConfiguration"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/email_connector/proxies/ModelReflectionChecker.java b/javasource/email_connector/proxies/ModelReflectionChecker.java deleted file mode 100644 index 60fabab..0000000 --- a/javasource/email_connector/proxies/ModelReflectionChecker.java +++ /dev/null @@ -1,243 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package email_connector.proxies; - -public class ModelReflectionChecker -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject modelReflectionCheckerMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "Email_Connector.ModelReflectionChecker"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - ModelReflectionSynced("ModelReflectionSynced"), - ModelReflectionChecker_EmailTemplate("Email_Connector.ModelReflectionChecker_EmailTemplate"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public ModelReflectionChecker(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "Email_Connector.ModelReflectionChecker")); - } - - protected ModelReflectionChecker(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject modelReflectionCheckerMendixObject) - { - if (modelReflectionCheckerMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("Email_Connector.ModelReflectionChecker", modelReflectionCheckerMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a Email_Connector.ModelReflectionChecker"); - - this.modelReflectionCheckerMendixObject = modelReflectionCheckerMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'ModelReflectionChecker.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static email_connector.proxies.ModelReflectionChecker initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return email_connector.proxies.ModelReflectionChecker.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static email_connector.proxies.ModelReflectionChecker initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new email_connector.proxies.ModelReflectionChecker(context, mendixObject); - } - - public static email_connector.proxies.ModelReflectionChecker load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return email_connector.proxies.ModelReflectionChecker.initialize(context, mendixObject); - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of ModelReflectionSynced - */ - public final java.lang.Boolean getModelReflectionSynced() - { - return getModelReflectionSynced(getContext()); - } - - /** - * @param context - * @return value of ModelReflectionSynced - */ - public final java.lang.Boolean getModelReflectionSynced(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.ModelReflectionSynced.toString()); - } - - /** - * Set value of ModelReflectionSynced - * @param modelreflectionsynced - */ - public final void setModelReflectionSynced(java.lang.Boolean modelreflectionsynced) - { - setModelReflectionSynced(getContext(), modelreflectionsynced); - } - - /** - * Set value of ModelReflectionSynced - * @param context - * @param modelreflectionsynced - */ - public final void setModelReflectionSynced(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean modelreflectionsynced) - { - getMendixObject().setValue(context, MemberNames.ModelReflectionSynced.toString(), modelreflectionsynced); - } - - /** - * @return value of ModelReflectionChecker_EmailTemplate - */ - public final email_connector.proxies.EmailTemplate getModelReflectionChecker_EmailTemplate() throws com.mendix.core.CoreException - { - return getModelReflectionChecker_EmailTemplate(getContext()); - } - - /** - * @param context - * @return value of ModelReflectionChecker_EmailTemplate - */ - public final email_connector.proxies.EmailTemplate getModelReflectionChecker_EmailTemplate(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - email_connector.proxies.EmailTemplate result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.ModelReflectionChecker_EmailTemplate.toString()); - if (identifier != null) - result = email_connector.proxies.EmailTemplate.load(context, identifier); - return result; - } - - /** - * Set value of ModelReflectionChecker_EmailTemplate - * @param modelreflectionchecker_emailtemplate - */ - public final void setModelReflectionChecker_EmailTemplate(email_connector.proxies.EmailTemplate modelreflectionchecker_emailtemplate) - { - setModelReflectionChecker_EmailTemplate(getContext(), modelreflectionchecker_emailtemplate); - } - - /** - * Set value of ModelReflectionChecker_EmailTemplate - * @param context - * @param modelreflectionchecker_emailtemplate - */ - public final void setModelReflectionChecker_EmailTemplate(com.mendix.systemwideinterfaces.core.IContext context, email_connector.proxies.EmailTemplate modelreflectionchecker_emailtemplate) - { - if (modelreflectionchecker_emailtemplate == null) - getMendixObject().setValue(context, MemberNames.ModelReflectionChecker_EmailTemplate.toString(), null); - else - getMendixObject().setValue(context, MemberNames.ModelReflectionChecker_EmailTemplate.toString(), modelreflectionchecker_emailtemplate.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return modelReflectionCheckerMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final email_connector.proxies.ModelReflectionChecker that = (email_connector.proxies.ModelReflectionChecker) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "Email_Connector.ModelReflectionChecker"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/email_connector/proxies/OAuthError.java b/javasource/email_connector/proxies/OAuthError.java deleted file mode 100644 index 57b2c1b..0000000 --- a/javasource/email_connector/proxies/OAuthError.java +++ /dev/null @@ -1,244 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package email_connector.proxies; - -public class OAuthError -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject oAuthErrorMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "Email_Connector.OAuthError"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - HTTPStatusCode("HTTPStatusCode"), - Error("Error"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public OAuthError(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "Email_Connector.OAuthError")); - } - - protected OAuthError(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject oAuthErrorMendixObject) - { - if (oAuthErrorMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("Email_Connector.OAuthError", oAuthErrorMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a Email_Connector.OAuthError"); - - this.oAuthErrorMendixObject = oAuthErrorMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'OAuthError.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static email_connector.proxies.OAuthError initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return email_connector.proxies.OAuthError.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static email_connector.proxies.OAuthError initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new email_connector.proxies.OAuthError(context, mendixObject); - } - - public static email_connector.proxies.OAuthError load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return email_connector.proxies.OAuthError.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//Email_Connector.OAuthError" + xpathConstraint)) - result.add(email_connector.proxies.OAuthError.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of HTTPStatusCode - */ - public final java.lang.Integer getHTTPStatusCode() - { - return getHTTPStatusCode(getContext()); - } - - /** - * @param context - * @return value of HTTPStatusCode - */ - public final java.lang.Integer getHTTPStatusCode(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Integer) getMendixObject().getValue(context, MemberNames.HTTPStatusCode.toString()); - } - - /** - * Set value of HTTPStatusCode - * @param httpstatuscode - */ - public final void setHTTPStatusCode(java.lang.Integer httpstatuscode) - { - setHTTPStatusCode(getContext(), httpstatuscode); - } - - /** - * Set value of HTTPStatusCode - * @param context - * @param httpstatuscode - */ - public final void setHTTPStatusCode(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Integer httpstatuscode) - { - getMendixObject().setValue(context, MemberNames.HTTPStatusCode.toString(), httpstatuscode); - } - - /** - * @return value of Error - */ - public final java.lang.String getError() - { - return getError(getContext()); - } - - /** - * @param context - * @return value of Error - */ - public final java.lang.String getError(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Error.toString()); - } - - /** - * Set value of Error - * @param error - */ - public final void setError(java.lang.String error) - { - setError(getContext(), error); - } - - /** - * Set value of Error - * @param context - * @param error - */ - public final void setError(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String error) - { - getMendixObject().setValue(context, MemberNames.Error.toString(), error); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return oAuthErrorMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final email_connector.proxies.OAuthError that = (email_connector.proxies.OAuthError) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "Email_Connector.OAuthError"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/email_connector/proxies/OAuthNonce.java b/javasource/email_connector/proxies/OAuthNonce.java deleted file mode 100644 index c621563..0000000 --- a/javasource/email_connector/proxies/OAuthNonce.java +++ /dev/null @@ -1,251 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package email_connector.proxies; - -public class OAuthNonce -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject oAuthNonceMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "Email_Connector.OAuthNonce"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - State("State"), - OAuthNonce_EmailAccount("Email_Connector.OAuthNonce_EmailAccount"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public OAuthNonce(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "Email_Connector.OAuthNonce")); - } - - protected OAuthNonce(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject oAuthNonceMendixObject) - { - if (oAuthNonceMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("Email_Connector.OAuthNonce", oAuthNonceMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a Email_Connector.OAuthNonce"); - - this.oAuthNonceMendixObject = oAuthNonceMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'OAuthNonce.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static email_connector.proxies.OAuthNonce initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return email_connector.proxies.OAuthNonce.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static email_connector.proxies.OAuthNonce initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new email_connector.proxies.OAuthNonce(context, mendixObject); - } - - public static email_connector.proxies.OAuthNonce load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return email_connector.proxies.OAuthNonce.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//Email_Connector.OAuthNonce" + xpathConstraint)) - result.add(email_connector.proxies.OAuthNonce.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of State - */ - public final java.lang.String getState() - { - return getState(getContext()); - } - - /** - * @param context - * @return value of State - */ - public final java.lang.String getState(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.State.toString()); - } - - /** - * Set value of State - * @param state - */ - public final void setState(java.lang.String state) - { - setState(getContext(), state); - } - - /** - * Set value of State - * @param context - * @param state - */ - public final void setState(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String state) - { - getMendixObject().setValue(context, MemberNames.State.toString(), state); - } - - /** - * @return value of OAuthNonce_EmailAccount - */ - public final email_connector.proxies.EmailAccount getOAuthNonce_EmailAccount() throws com.mendix.core.CoreException - { - return getOAuthNonce_EmailAccount(getContext()); - } - - /** - * @param context - * @return value of OAuthNonce_EmailAccount - */ - public final email_connector.proxies.EmailAccount getOAuthNonce_EmailAccount(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - email_connector.proxies.EmailAccount result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.OAuthNonce_EmailAccount.toString()); - if (identifier != null) - result = email_connector.proxies.EmailAccount.load(context, identifier); - return result; - } - - /** - * Set value of OAuthNonce_EmailAccount - * @param oauthnonce_emailaccount - */ - public final void setOAuthNonce_EmailAccount(email_connector.proxies.EmailAccount oauthnonce_emailaccount) - { - setOAuthNonce_EmailAccount(getContext(), oauthnonce_emailaccount); - } - - /** - * Set value of OAuthNonce_EmailAccount - * @param context - * @param oauthnonce_emailaccount - */ - public final void setOAuthNonce_EmailAccount(com.mendix.systemwideinterfaces.core.IContext context, email_connector.proxies.EmailAccount oauthnonce_emailaccount) - { - if (oauthnonce_emailaccount == null) - getMendixObject().setValue(context, MemberNames.OAuthNonce_EmailAccount.toString(), null); - else - getMendixObject().setValue(context, MemberNames.OAuthNonce_EmailAccount.toString(), oauthnonce_emailaccount.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return oAuthNonceMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final email_connector.proxies.OAuthNonce that = (email_connector.proxies.OAuthNonce) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "Email_Connector.OAuthNonce"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/email_connector/proxies/OAuthProvider.java b/javasource/email_connector/proxies/OAuthProvider.java deleted file mode 100644 index 456aa28..0000000 --- a/javasource/email_connector/proxies/OAuthProvider.java +++ /dev/null @@ -1,503 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package email_connector.proxies; - -public class OAuthProvider -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject oAuthProviderMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "Email_Connector.OAuthProvider"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - Name("Name"), - ClientID("ClientID"), - ClientSecret("ClientSecret"), - OpenIDWellKnownMetadataUri("OpenIDWellKnownMetadataUri"), - AuthorizationEndpoint("AuthorizationEndpoint"), - TokenEndpoint("TokenEndpoint"), - EmailDomain("EmailDomain"), - CallbackOperationPath("CallbackOperationPath"), - CallbackURL("CallbackURL"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public OAuthProvider(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "Email_Connector.OAuthProvider")); - } - - protected OAuthProvider(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject oAuthProviderMendixObject) - { - if (oAuthProviderMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("Email_Connector.OAuthProvider", oAuthProviderMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a Email_Connector.OAuthProvider"); - - this.oAuthProviderMendixObject = oAuthProviderMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'OAuthProvider.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static email_connector.proxies.OAuthProvider initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return email_connector.proxies.OAuthProvider.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static email_connector.proxies.OAuthProvider initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new email_connector.proxies.OAuthProvider(context, mendixObject); - } - - public static email_connector.proxies.OAuthProvider load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return email_connector.proxies.OAuthProvider.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//Email_Connector.OAuthProvider" + xpathConstraint)) - result.add(email_connector.proxies.OAuthProvider.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of Name - */ - public final java.lang.String getName() - { - return getName(getContext()); - } - - /** - * @param context - * @return value of Name - */ - public final java.lang.String getName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Name.toString()); - } - - /** - * Set value of Name - * @param name - */ - public final void setName(java.lang.String name) - { - setName(getContext(), name); - } - - /** - * Set value of Name - * @param context - * @param name - */ - public final void setName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String name) - { - getMendixObject().setValue(context, MemberNames.Name.toString(), name); - } - - /** - * @return value of ClientID - */ - public final java.lang.String getClientID() - { - return getClientID(getContext()); - } - - /** - * @param context - * @return value of ClientID - */ - public final java.lang.String getClientID(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.ClientID.toString()); - } - - /** - * Set value of ClientID - * @param clientid - */ - public final void setClientID(java.lang.String clientid) - { - setClientID(getContext(), clientid); - } - - /** - * Set value of ClientID - * @param context - * @param clientid - */ - public final void setClientID(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String clientid) - { - getMendixObject().setValue(context, MemberNames.ClientID.toString(), clientid); - } - - /** - * @return value of ClientSecret - */ - public final java.lang.String getClientSecret() - { - return getClientSecret(getContext()); - } - - /** - * @param context - * @return value of ClientSecret - */ - public final java.lang.String getClientSecret(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.ClientSecret.toString()); - } - - /** - * Set value of ClientSecret - * @param clientsecret - */ - public final void setClientSecret(java.lang.String clientsecret) - { - setClientSecret(getContext(), clientsecret); - } - - /** - * Set value of ClientSecret - * @param context - * @param clientsecret - */ - public final void setClientSecret(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String clientsecret) - { - getMendixObject().setValue(context, MemberNames.ClientSecret.toString(), clientsecret); - } - - /** - * @return value of OpenIDWellKnownMetadataUri - */ - public final java.lang.String getOpenIDWellKnownMetadataUri() - { - return getOpenIDWellKnownMetadataUri(getContext()); - } - - /** - * @param context - * @return value of OpenIDWellKnownMetadataUri - */ - public final java.lang.String getOpenIDWellKnownMetadataUri(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.OpenIDWellKnownMetadataUri.toString()); - } - - /** - * Set value of OpenIDWellKnownMetadataUri - * @param openidwellknownmetadatauri - */ - public final void setOpenIDWellKnownMetadataUri(java.lang.String openidwellknownmetadatauri) - { - setOpenIDWellKnownMetadataUri(getContext(), openidwellknownmetadatauri); - } - - /** - * Set value of OpenIDWellKnownMetadataUri - * @param context - * @param openidwellknownmetadatauri - */ - public final void setOpenIDWellKnownMetadataUri(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String openidwellknownmetadatauri) - { - getMendixObject().setValue(context, MemberNames.OpenIDWellKnownMetadataUri.toString(), openidwellknownmetadatauri); - } - - /** - * @return value of AuthorizationEndpoint - */ - public final java.lang.String getAuthorizationEndpoint() - { - return getAuthorizationEndpoint(getContext()); - } - - /** - * @param context - * @return value of AuthorizationEndpoint - */ - public final java.lang.String getAuthorizationEndpoint(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.AuthorizationEndpoint.toString()); - } - - /** - * Set value of AuthorizationEndpoint - * @param authorizationendpoint - */ - public final void setAuthorizationEndpoint(java.lang.String authorizationendpoint) - { - setAuthorizationEndpoint(getContext(), authorizationendpoint); - } - - /** - * Set value of AuthorizationEndpoint - * @param context - * @param authorizationendpoint - */ - public final void setAuthorizationEndpoint(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String authorizationendpoint) - { - getMendixObject().setValue(context, MemberNames.AuthorizationEndpoint.toString(), authorizationendpoint); - } - - /** - * @return value of TokenEndpoint - */ - public final java.lang.String getTokenEndpoint() - { - return getTokenEndpoint(getContext()); - } - - /** - * @param context - * @return value of TokenEndpoint - */ - public final java.lang.String getTokenEndpoint(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.TokenEndpoint.toString()); - } - - /** - * Set value of TokenEndpoint - * @param tokenendpoint - */ - public final void setTokenEndpoint(java.lang.String tokenendpoint) - { - setTokenEndpoint(getContext(), tokenendpoint); - } - - /** - * Set value of TokenEndpoint - * @param context - * @param tokenendpoint - */ - public final void setTokenEndpoint(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String tokenendpoint) - { - getMendixObject().setValue(context, MemberNames.TokenEndpoint.toString(), tokenendpoint); - } - - /** - * @return value of EmailDomain - */ - public final java.lang.String getEmailDomain() - { - return getEmailDomain(getContext()); - } - - /** - * @param context - * @return value of EmailDomain - */ - public final java.lang.String getEmailDomain(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.EmailDomain.toString()); - } - - /** - * Set value of EmailDomain - * @param emaildomain - */ - public final void setEmailDomain(java.lang.String emaildomain) - { - setEmailDomain(getContext(), emaildomain); - } - - /** - * Set value of EmailDomain - * @param context - * @param emaildomain - */ - public final void setEmailDomain(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String emaildomain) - { - getMendixObject().setValue(context, MemberNames.EmailDomain.toString(), emaildomain); - } - - /** - * @return value of CallbackOperationPath - */ - public final java.lang.String getCallbackOperationPath() - { - return getCallbackOperationPath(getContext()); - } - - /** - * @param context - * @return value of CallbackOperationPath - */ - public final java.lang.String getCallbackOperationPath(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.CallbackOperationPath.toString()); - } - - /** - * Set value of CallbackOperationPath - * @param callbackoperationpath - */ - public final void setCallbackOperationPath(java.lang.String callbackoperationpath) - { - setCallbackOperationPath(getContext(), callbackoperationpath); - } - - /** - * Set value of CallbackOperationPath - * @param context - * @param callbackoperationpath - */ - public final void setCallbackOperationPath(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String callbackoperationpath) - { - getMendixObject().setValue(context, MemberNames.CallbackOperationPath.toString(), callbackoperationpath); - } - - /** - * @return value of CallbackURL - */ - public final java.lang.String getCallbackURL() - { - return getCallbackURL(getContext()); - } - - /** - * @param context - * @return value of CallbackURL - */ - public final java.lang.String getCallbackURL(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.CallbackURL.toString()); - } - - /** - * Set value of CallbackURL - * @param callbackurl - */ - public final void setCallbackURL(java.lang.String callbackurl) - { - setCallbackURL(getContext(), callbackurl); - } - - /** - * Set value of CallbackURL - * @param context - * @param callbackurl - */ - public final void setCallbackURL(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String callbackurl) - { - getMendixObject().setValue(context, MemberNames.CallbackURL.toString(), callbackurl); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return oAuthProviderMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final email_connector.proxies.OAuthProvider that = (email_connector.proxies.OAuthProvider) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "Email_Connector.OAuthProvider"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/email_connector/proxies/OAuthToken.java b/javasource/email_connector/proxies/OAuthToken.java deleted file mode 100644 index bca5ea3..0000000 --- a/javasource/email_connector/proxies/OAuthToken.java +++ /dev/null @@ -1,436 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package email_connector.proxies; - -public class OAuthToken -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject oAuthTokenMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "Email_Connector.OAuthToken"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - token_type("token_type"), - scope("scope"), - expires_in("expires_in"), - access_token("access_token"), - refresh_token("refresh_token"), - id_token("id_token"), - EmailAccount_OAuthToken("Email_Connector.EmailAccount_OAuthToken"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public OAuthToken(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "Email_Connector.OAuthToken")); - } - - protected OAuthToken(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject oAuthTokenMendixObject) - { - if (oAuthTokenMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("Email_Connector.OAuthToken", oAuthTokenMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a Email_Connector.OAuthToken"); - - this.oAuthTokenMendixObject = oAuthTokenMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'OAuthToken.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static email_connector.proxies.OAuthToken initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return email_connector.proxies.OAuthToken.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static email_connector.proxies.OAuthToken initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new email_connector.proxies.OAuthToken(context, mendixObject); - } - - public static email_connector.proxies.OAuthToken load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return email_connector.proxies.OAuthToken.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//Email_Connector.OAuthToken" + xpathConstraint)) - result.add(email_connector.proxies.OAuthToken.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of token_type - */ - public final java.lang.String gettoken_type() - { - return gettoken_type(getContext()); - } - - /** - * @param context - * @return value of token_type - */ - public final java.lang.String gettoken_type(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.token_type.toString()); - } - - /** - * Set value of token_type - * @param token_type - */ - public final void settoken_type(java.lang.String token_type) - { - settoken_type(getContext(), token_type); - } - - /** - * Set value of token_type - * @param context - * @param token_type - */ - public final void settoken_type(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String token_type) - { - getMendixObject().setValue(context, MemberNames.token_type.toString(), token_type); - } - - /** - * @return value of scope - */ - public final java.lang.String getscope() - { - return getscope(getContext()); - } - - /** - * @param context - * @return value of scope - */ - public final java.lang.String getscope(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.scope.toString()); - } - - /** - * Set value of scope - * @param scope - */ - public final void setscope(java.lang.String scope) - { - setscope(getContext(), scope); - } - - /** - * Set value of scope - * @param context - * @param scope - */ - public final void setscope(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String scope) - { - getMendixObject().setValue(context, MemberNames.scope.toString(), scope); - } - - /** - * @return value of expires_in - */ - public final java.lang.Integer getexpires_in() - { - return getexpires_in(getContext()); - } - - /** - * @param context - * @return value of expires_in - */ - public final java.lang.Integer getexpires_in(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Integer) getMendixObject().getValue(context, MemberNames.expires_in.toString()); - } - - /** - * Set value of expires_in - * @param expires_in - */ - public final void setexpires_in(java.lang.Integer expires_in) - { - setexpires_in(getContext(), expires_in); - } - - /** - * Set value of expires_in - * @param context - * @param expires_in - */ - public final void setexpires_in(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Integer expires_in) - { - getMendixObject().setValue(context, MemberNames.expires_in.toString(), expires_in); - } - - /** - * @return value of access_token - */ - public final java.lang.String getaccess_token() - { - return getaccess_token(getContext()); - } - - /** - * @param context - * @return value of access_token - */ - public final java.lang.String getaccess_token(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.access_token.toString()); - } - - /** - * Set value of access_token - * @param access_token - */ - public final void setaccess_token(java.lang.String access_token) - { - setaccess_token(getContext(), access_token); - } - - /** - * Set value of access_token - * @param context - * @param access_token - */ - public final void setaccess_token(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String access_token) - { - getMendixObject().setValue(context, MemberNames.access_token.toString(), access_token); - } - - /** - * @return value of refresh_token - */ - public final java.lang.String getrefresh_token() - { - return getrefresh_token(getContext()); - } - - /** - * @param context - * @return value of refresh_token - */ - public final java.lang.String getrefresh_token(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.refresh_token.toString()); - } - - /** - * Set value of refresh_token - * @param refresh_token - */ - public final void setrefresh_token(java.lang.String refresh_token) - { - setrefresh_token(getContext(), refresh_token); - } - - /** - * Set value of refresh_token - * @param context - * @param refresh_token - */ - public final void setrefresh_token(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String refresh_token) - { - getMendixObject().setValue(context, MemberNames.refresh_token.toString(), refresh_token); - } - - /** - * @return value of id_token - */ - public final java.lang.String getid_token() - { - return getid_token(getContext()); - } - - /** - * @param context - * @return value of id_token - */ - public final java.lang.String getid_token(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.id_token.toString()); - } - - /** - * Set value of id_token - * @param id_token - */ - public final void setid_token(java.lang.String id_token) - { - setid_token(getContext(), id_token); - } - - /** - * Set value of id_token - * @param context - * @param id_token - */ - public final void setid_token(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String id_token) - { - getMendixObject().setValue(context, MemberNames.id_token.toString(), id_token); - } - - /** - * @return value of EmailAccount_OAuthToken - */ - public final email_connector.proxies.EmailAccount getEmailAccount_OAuthToken() throws com.mendix.core.CoreException - { - return getEmailAccount_OAuthToken(getContext()); - } - - /** - * @param context - * @return value of EmailAccount_OAuthToken - */ - public final email_connector.proxies.EmailAccount getEmailAccount_OAuthToken(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - email_connector.proxies.EmailAccount result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.EmailAccount_OAuthToken.toString()); - if (identifier != null) - result = email_connector.proxies.EmailAccount.load(context, identifier); - return result; - } - - /** - * Set value of EmailAccount_OAuthToken - * @param emailaccount_oauthtoken - */ - public final void setEmailAccount_OAuthToken(email_connector.proxies.EmailAccount emailaccount_oauthtoken) - { - setEmailAccount_OAuthToken(getContext(), emailaccount_oauthtoken); - } - - /** - * Set value of EmailAccount_OAuthToken - * @param context - * @param emailaccount_oauthtoken - */ - public final void setEmailAccount_OAuthToken(com.mendix.systemwideinterfaces.core.IContext context, email_connector.proxies.EmailAccount emailaccount_oauthtoken) - { - if (emailaccount_oauthtoken == null) - getMendixObject().setValue(context, MemberNames.EmailAccount_OAuthToken.toString(), null); - else - getMendixObject().setValue(context, MemberNames.EmailAccount_OAuthToken.toString(), emailaccount_oauthtoken.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return oAuthTokenMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final email_connector.proxies.OAuthToken that = (email_connector.proxies.OAuthToken) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "Email_Connector.OAuthToken"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/email_connector/proxies/OutgoingEmailConfiguration.java b/javasource/email_connector/proxies/OutgoingEmailConfiguration.java deleted file mode 100644 index bc03ab3..0000000 --- a/javasource/email_connector/proxies/OutgoingEmailConfiguration.java +++ /dev/null @@ -1,444 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package email_connector.proxies; - -public class OutgoingEmailConfiguration -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject outgoingEmailConfigurationMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "Email_Connector.OutgoingEmailConfiguration"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - OutgoingProtocol("OutgoingProtocol"), - SSL("SSL"), - TLS("TLS"), - SendMaxAttempts("SendMaxAttempts"), - ServerHost("ServerHost"), - ServerPort("ServerPort"), - OutgoingEmailConfiguration_EmailAccount("Email_Connector.OutgoingEmailConfiguration_EmailAccount"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public OutgoingEmailConfiguration(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "Email_Connector.OutgoingEmailConfiguration")); - } - - protected OutgoingEmailConfiguration(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject outgoingEmailConfigurationMendixObject) - { - if (outgoingEmailConfigurationMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("Email_Connector.OutgoingEmailConfiguration", outgoingEmailConfigurationMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a Email_Connector.OutgoingEmailConfiguration"); - - this.outgoingEmailConfigurationMendixObject = outgoingEmailConfigurationMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'OutgoingEmailConfiguration.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static email_connector.proxies.OutgoingEmailConfiguration initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return email_connector.proxies.OutgoingEmailConfiguration.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static email_connector.proxies.OutgoingEmailConfiguration initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new email_connector.proxies.OutgoingEmailConfiguration(context, mendixObject); - } - - public static email_connector.proxies.OutgoingEmailConfiguration load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return email_connector.proxies.OutgoingEmailConfiguration.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//Email_Connector.OutgoingEmailConfiguration" + xpathConstraint)) - result.add(email_connector.proxies.OutgoingEmailConfiguration.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * Set value of OutgoingProtocol - * @param outgoingprotocol - */ - public final email_connector.proxies.ENUM_OutgoingProtocol getOutgoingProtocol() - { - return getOutgoingProtocol(getContext()); - } - - /** - * @param context - * @return value of OutgoingProtocol - */ - public final email_connector.proxies.ENUM_OutgoingProtocol getOutgoingProtocol(com.mendix.systemwideinterfaces.core.IContext context) - { - Object obj = getMendixObject().getValue(context, MemberNames.OutgoingProtocol.toString()); - if (obj == null) - return null; - - return email_connector.proxies.ENUM_OutgoingProtocol.valueOf((java.lang.String) obj); - } - - /** - * Set value of OutgoingProtocol - * @param outgoingprotocol - */ - public final void setOutgoingProtocol(email_connector.proxies.ENUM_OutgoingProtocol outgoingprotocol) - { - setOutgoingProtocol(getContext(), outgoingprotocol); - } - - /** - * Set value of OutgoingProtocol - * @param context - * @param outgoingprotocol - */ - public final void setOutgoingProtocol(com.mendix.systemwideinterfaces.core.IContext context, email_connector.proxies.ENUM_OutgoingProtocol outgoingprotocol) - { - if (outgoingprotocol != null) - getMendixObject().setValue(context, MemberNames.OutgoingProtocol.toString(), outgoingprotocol.toString()); - else - getMendixObject().setValue(context, MemberNames.OutgoingProtocol.toString(), null); - } - - /** - * @return value of SSL - */ - public final java.lang.Boolean getSSL() - { - return getSSL(getContext()); - } - - /** - * @param context - * @return value of SSL - */ - public final java.lang.Boolean getSSL(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.SSL.toString()); - } - - /** - * Set value of SSL - * @param ssl - */ - public final void setSSL(java.lang.Boolean ssl) - { - setSSL(getContext(), ssl); - } - - /** - * Set value of SSL - * @param context - * @param ssl - */ - public final void setSSL(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean ssl) - { - getMendixObject().setValue(context, MemberNames.SSL.toString(), ssl); - } - - /** - * @return value of TLS - */ - public final java.lang.Boolean getTLS() - { - return getTLS(getContext()); - } - - /** - * @param context - * @return value of TLS - */ - public final java.lang.Boolean getTLS(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.TLS.toString()); - } - - /** - * Set value of TLS - * @param tls - */ - public final void setTLS(java.lang.Boolean tls) - { - setTLS(getContext(), tls); - } - - /** - * Set value of TLS - * @param context - * @param tls - */ - public final void setTLS(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean tls) - { - getMendixObject().setValue(context, MemberNames.TLS.toString(), tls); - } - - /** - * @return value of SendMaxAttempts - */ - public final java.lang.Integer getSendMaxAttempts() - { - return getSendMaxAttempts(getContext()); - } - - /** - * @param context - * @return value of SendMaxAttempts - */ - public final java.lang.Integer getSendMaxAttempts(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Integer) getMendixObject().getValue(context, MemberNames.SendMaxAttempts.toString()); - } - - /** - * Set value of SendMaxAttempts - * @param sendmaxattempts - */ - public final void setSendMaxAttempts(java.lang.Integer sendmaxattempts) - { - setSendMaxAttempts(getContext(), sendmaxattempts); - } - - /** - * Set value of SendMaxAttempts - * @param context - * @param sendmaxattempts - */ - public final void setSendMaxAttempts(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Integer sendmaxattempts) - { - getMendixObject().setValue(context, MemberNames.SendMaxAttempts.toString(), sendmaxattempts); - } - - /** - * @return value of ServerHost - */ - public final java.lang.String getServerHost() - { - return getServerHost(getContext()); - } - - /** - * @param context - * @return value of ServerHost - */ - public final java.lang.String getServerHost(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.ServerHost.toString()); - } - - /** - * Set value of ServerHost - * @param serverhost - */ - public final void setServerHost(java.lang.String serverhost) - { - setServerHost(getContext(), serverhost); - } - - /** - * Set value of ServerHost - * @param context - * @param serverhost - */ - public final void setServerHost(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String serverhost) - { - getMendixObject().setValue(context, MemberNames.ServerHost.toString(), serverhost); - } - - /** - * @return value of ServerPort - */ - public final java.lang.Integer getServerPort() - { - return getServerPort(getContext()); - } - - /** - * @param context - * @return value of ServerPort - */ - public final java.lang.Integer getServerPort(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Integer) getMendixObject().getValue(context, MemberNames.ServerPort.toString()); - } - - /** - * Set value of ServerPort - * @param serverport - */ - public final void setServerPort(java.lang.Integer serverport) - { - setServerPort(getContext(), serverport); - } - - /** - * Set value of ServerPort - * @param context - * @param serverport - */ - public final void setServerPort(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Integer serverport) - { - getMendixObject().setValue(context, MemberNames.ServerPort.toString(), serverport); - } - - /** - * @return value of OutgoingEmailConfiguration_EmailAccount - */ - public final email_connector.proxies.EmailAccount getOutgoingEmailConfiguration_EmailAccount() throws com.mendix.core.CoreException - { - return getOutgoingEmailConfiguration_EmailAccount(getContext()); - } - - /** - * @param context - * @return value of OutgoingEmailConfiguration_EmailAccount - */ - public final email_connector.proxies.EmailAccount getOutgoingEmailConfiguration_EmailAccount(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - email_connector.proxies.EmailAccount result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.OutgoingEmailConfiguration_EmailAccount.toString()); - if (identifier != null) - result = email_connector.proxies.EmailAccount.load(context, identifier); - return result; - } - - /** - * Set value of OutgoingEmailConfiguration_EmailAccount - * @param outgoingemailconfiguration_emailaccount - */ - public final void setOutgoingEmailConfiguration_EmailAccount(email_connector.proxies.EmailAccount outgoingemailconfiguration_emailaccount) - { - setOutgoingEmailConfiguration_EmailAccount(getContext(), outgoingemailconfiguration_emailaccount); - } - - /** - * Set value of OutgoingEmailConfiguration_EmailAccount - * @param context - * @param outgoingemailconfiguration_emailaccount - */ - public final void setOutgoingEmailConfiguration_EmailAccount(com.mendix.systemwideinterfaces.core.IContext context, email_connector.proxies.EmailAccount outgoingemailconfiguration_emailaccount) - { - if (outgoingemailconfiguration_emailaccount == null) - getMendixObject().setValue(context, MemberNames.OutgoingEmailConfiguration_EmailAccount.toString(), null); - else - getMendixObject().setValue(context, MemberNames.OutgoingEmailConfiguration_EmailAccount.toString(), outgoingemailconfiguration_emailaccount.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return outgoingEmailConfigurationMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final email_connector.proxies.OutgoingEmailConfiguration that = (email_connector.proxies.OutgoingEmailConfiguration) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "Email_Connector.OutgoingEmailConfiguration"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/email_connector/proxies/OutgoingServer.java b/javasource/email_connector/proxies/OutgoingServer.java deleted file mode 100644 index c24b5e5..0000000 --- a/javasource/email_connector/proxies/OutgoingServer.java +++ /dev/null @@ -1,473 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package email_connector.proxies; - -public class OutgoingServer -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject outgoingServerMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "Email_Connector.OutgoingServer"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - HostName("HostName"), - Port("Port"), - OutgoingProtocol("OutgoingProtocol"), - SSL("SSL"), - TLS("TLS"), - SendSMTP("SendSMTP"), - SelectedOutgoingServer("SelectedOutgoingServer"), - OutgoingServer_EmailProvider("Email_Connector.OutgoingServer_EmailProvider"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public OutgoingServer(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "Email_Connector.OutgoingServer")); - } - - protected OutgoingServer(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject outgoingServerMendixObject) - { - if (outgoingServerMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("Email_Connector.OutgoingServer", outgoingServerMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a Email_Connector.OutgoingServer"); - - this.outgoingServerMendixObject = outgoingServerMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'OutgoingServer.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static email_connector.proxies.OutgoingServer initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return email_connector.proxies.OutgoingServer.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static email_connector.proxies.OutgoingServer initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new email_connector.proxies.OutgoingServer(context, mendixObject); - } - - public static email_connector.proxies.OutgoingServer load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return email_connector.proxies.OutgoingServer.initialize(context, mendixObject); - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of HostName - */ - public final java.lang.String getHostName() - { - return getHostName(getContext()); - } - - /** - * @param context - * @return value of HostName - */ - public final java.lang.String getHostName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.HostName.toString()); - } - - /** - * Set value of HostName - * @param hostname - */ - public final void setHostName(java.lang.String hostname) - { - setHostName(getContext(), hostname); - } - - /** - * Set value of HostName - * @param context - * @param hostname - */ - public final void setHostName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String hostname) - { - getMendixObject().setValue(context, MemberNames.HostName.toString(), hostname); - } - - /** - * @return value of Port - */ - public final java.lang.Integer getPort() - { - return getPort(getContext()); - } - - /** - * @param context - * @return value of Port - */ - public final java.lang.Integer getPort(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Integer) getMendixObject().getValue(context, MemberNames.Port.toString()); - } - - /** - * Set value of Port - * @param port - */ - public final void setPort(java.lang.Integer port) - { - setPort(getContext(), port); - } - - /** - * Set value of Port - * @param context - * @param port - */ - public final void setPort(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Integer port) - { - getMendixObject().setValue(context, MemberNames.Port.toString(), port); - } - - /** - * Set value of OutgoingProtocol - * @param outgoingprotocol - */ - public final email_connector.proxies.ENUM_OutgoingProtocol getOutgoingProtocol() - { - return getOutgoingProtocol(getContext()); - } - - /** - * @param context - * @return value of OutgoingProtocol - */ - public final email_connector.proxies.ENUM_OutgoingProtocol getOutgoingProtocol(com.mendix.systemwideinterfaces.core.IContext context) - { - Object obj = getMendixObject().getValue(context, MemberNames.OutgoingProtocol.toString()); - if (obj == null) - return null; - - return email_connector.proxies.ENUM_OutgoingProtocol.valueOf((java.lang.String) obj); - } - - /** - * Set value of OutgoingProtocol - * @param outgoingprotocol - */ - public final void setOutgoingProtocol(email_connector.proxies.ENUM_OutgoingProtocol outgoingprotocol) - { - setOutgoingProtocol(getContext(), outgoingprotocol); - } - - /** - * Set value of OutgoingProtocol - * @param context - * @param outgoingprotocol - */ - public final void setOutgoingProtocol(com.mendix.systemwideinterfaces.core.IContext context, email_connector.proxies.ENUM_OutgoingProtocol outgoingprotocol) - { - if (outgoingprotocol != null) - getMendixObject().setValue(context, MemberNames.OutgoingProtocol.toString(), outgoingprotocol.toString()); - else - getMendixObject().setValue(context, MemberNames.OutgoingProtocol.toString(), null); - } - - /** - * @return value of SSL - */ - public final java.lang.Boolean getSSL() - { - return getSSL(getContext()); - } - - /** - * @param context - * @return value of SSL - */ - public final java.lang.Boolean getSSL(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.SSL.toString()); - } - - /** - * Set value of SSL - * @param ssl - */ - public final void setSSL(java.lang.Boolean ssl) - { - setSSL(getContext(), ssl); - } - - /** - * Set value of SSL - * @param context - * @param ssl - */ - public final void setSSL(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean ssl) - { - getMendixObject().setValue(context, MemberNames.SSL.toString(), ssl); - } - - /** - * @return value of TLS - */ - public final java.lang.Boolean getTLS() - { - return getTLS(getContext()); - } - - /** - * @param context - * @return value of TLS - */ - public final java.lang.Boolean getTLS(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.TLS.toString()); - } - - /** - * Set value of TLS - * @param tls - */ - public final void setTLS(java.lang.Boolean tls) - { - setTLS(getContext(), tls); - } - - /** - * Set value of TLS - * @param context - * @param tls - */ - public final void setTLS(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean tls) - { - getMendixObject().setValue(context, MemberNames.TLS.toString(), tls); - } - - /** - * @return value of SendSMTP - */ - public final java.lang.Boolean getSendSMTP() - { - return getSendSMTP(getContext()); - } - - /** - * @param context - * @return value of SendSMTP - */ - public final java.lang.Boolean getSendSMTP(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.SendSMTP.toString()); - } - - /** - * Set value of SendSMTP - * @param sendsmtp - */ - public final void setSendSMTP(java.lang.Boolean sendsmtp) - { - setSendSMTP(getContext(), sendsmtp); - } - - /** - * Set value of SendSMTP - * @param context - * @param sendsmtp - */ - public final void setSendSMTP(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean sendsmtp) - { - getMendixObject().setValue(context, MemberNames.SendSMTP.toString(), sendsmtp); - } - - /** - * @return value of SelectedOutgoingServer - */ - public final java.lang.Boolean getSelectedOutgoingServer() - { - return getSelectedOutgoingServer(getContext()); - } - - /** - * @param context - * @return value of SelectedOutgoingServer - */ - public final java.lang.Boolean getSelectedOutgoingServer(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.SelectedOutgoingServer.toString()); - } - - /** - * Set value of SelectedOutgoingServer - * @param selectedoutgoingserver - */ - public final void setSelectedOutgoingServer(java.lang.Boolean selectedoutgoingserver) - { - setSelectedOutgoingServer(getContext(), selectedoutgoingserver); - } - - /** - * Set value of SelectedOutgoingServer - * @param context - * @param selectedoutgoingserver - */ - public final void setSelectedOutgoingServer(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean selectedoutgoingserver) - { - getMendixObject().setValue(context, MemberNames.SelectedOutgoingServer.toString(), selectedoutgoingserver); - } - - /** - * @return value of OutgoingServer_EmailProvider - */ - public final email_connector.proxies.EmailProvider getOutgoingServer_EmailProvider() throws com.mendix.core.CoreException - { - return getOutgoingServer_EmailProvider(getContext()); - } - - /** - * @param context - * @return value of OutgoingServer_EmailProvider - */ - public final email_connector.proxies.EmailProvider getOutgoingServer_EmailProvider(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - email_connector.proxies.EmailProvider result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.OutgoingServer_EmailProvider.toString()); - if (identifier != null) - result = email_connector.proxies.EmailProvider.load(context, identifier); - return result; - } - - /** - * Set value of OutgoingServer_EmailProvider - * @param outgoingserver_emailprovider - */ - public final void setOutgoingServer_EmailProvider(email_connector.proxies.EmailProvider outgoingserver_emailprovider) - { - setOutgoingServer_EmailProvider(getContext(), outgoingserver_emailprovider); - } - - /** - * Set value of OutgoingServer_EmailProvider - * @param context - * @param outgoingserver_emailprovider - */ - public final void setOutgoingServer_EmailProvider(com.mendix.systemwideinterfaces.core.IContext context, email_connector.proxies.EmailProvider outgoingserver_emailprovider) - { - if (outgoingserver_emailprovider == null) - getMendixObject().setValue(context, MemberNames.OutgoingServer_EmailProvider.toString(), null); - else - getMendixObject().setValue(context, MemberNames.OutgoingServer_EmailProvider.toString(), outgoingserver_emailprovider.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return outgoingServerMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final email_connector.proxies.OutgoingServer that = (email_connector.proxies.OutgoingServer) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "Email_Connector.OutgoingServer"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/email_connector/proxies/Pk12Certificate.java b/javasource/email_connector/proxies/Pk12Certificate.java deleted file mode 100644 index f3c6eab..0000000 --- a/javasource/email_connector/proxies/Pk12Certificate.java +++ /dev/null @@ -1,203 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package email_connector.proxies; - -public class Pk12Certificate extends system.proxies.FileDocument -{ - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "Email_Connector.Pk12Certificate"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - Passphrase("Passphrase"), - FileID("FileID"), - Name("Name"), - DeleteAfterDownload("DeleteAfterDownload"), - Contents("Contents"), - HasContents("HasContents"), - Size("Size"), - Pk12Certificate_EmailAccount("Email_Connector.Pk12Certificate_EmailAccount"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public Pk12Certificate(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "Email_Connector.Pk12Certificate")); - } - - protected Pk12Certificate(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject pk12CertificateMendixObject) - { - super(context, pk12CertificateMendixObject); - if (!com.mendix.core.Core.isSubClassOf("Email_Connector.Pk12Certificate", pk12CertificateMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a Email_Connector.Pk12Certificate"); - } - - /** - * @deprecated Use 'Pk12Certificate.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static email_connector.proxies.Pk12Certificate initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return email_connector.proxies.Pk12Certificate.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static email_connector.proxies.Pk12Certificate initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new email_connector.proxies.Pk12Certificate(context, mendixObject); - } - - public static email_connector.proxies.Pk12Certificate load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return email_connector.proxies.Pk12Certificate.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//Email_Connector.Pk12Certificate" + xpathConstraint)) - result.add(email_connector.proxies.Pk12Certificate.initialize(context, obj)); - return result; - } - - /** - * @return value of Passphrase - */ - public final java.lang.String getPassphrase() - { - return getPassphrase(getContext()); - } - - /** - * @param context - * @return value of Passphrase - */ - public final java.lang.String getPassphrase(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Passphrase.toString()); - } - - /** - * Set value of Passphrase - * @param passphrase - */ - public final void setPassphrase(java.lang.String passphrase) - { - setPassphrase(getContext(), passphrase); - } - - /** - * Set value of Passphrase - * @param context - * @param passphrase - */ - public final void setPassphrase(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String passphrase) - { - getMendixObject().setValue(context, MemberNames.Passphrase.toString(), passphrase); - } - - /** - * @return value of Pk12Certificate_EmailAccount - */ - public final email_connector.proxies.EmailAccount getPk12Certificate_EmailAccount() throws com.mendix.core.CoreException - { - return getPk12Certificate_EmailAccount(getContext()); - } - - /** - * @param context - * @return value of Pk12Certificate_EmailAccount - */ - public final email_connector.proxies.EmailAccount getPk12Certificate_EmailAccount(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - email_connector.proxies.EmailAccount result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.Pk12Certificate_EmailAccount.toString()); - if (identifier != null) - result = email_connector.proxies.EmailAccount.load(context, identifier); - return result; - } - - /** - * Set value of Pk12Certificate_EmailAccount - * @param pk12certificate_emailaccount - */ - public final void setPk12Certificate_EmailAccount(email_connector.proxies.EmailAccount pk12certificate_emailaccount) - { - setPk12Certificate_EmailAccount(getContext(), pk12certificate_emailaccount); - } - - /** - * Set value of Pk12Certificate_EmailAccount - * @param context - * @param pk12certificate_emailaccount - */ - public final void setPk12Certificate_EmailAccount(com.mendix.systemwideinterfaces.core.IContext context, email_connector.proxies.EmailAccount pk12certificate_emailaccount) - { - if (pk12certificate_emailaccount == null) - getMendixObject().setValue(context, MemberNames.Pk12Certificate_EmailAccount.toString(), null); - else - getMendixObject().setValue(context, MemberNames.Pk12Certificate_EmailAccount.toString(), pk12certificate_emailaccount.getMendixObject().getId()); - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final email_connector.proxies.Pk12Certificate that = (email_connector.proxies.Pk12Certificate) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "Email_Connector.Pk12Certificate"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Override - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/email_connector/proxies/Profile.java b/javasource/email_connector/proxies/Profile.java deleted file mode 100644 index 3af44e8..0000000 --- a/javasource/email_connector/proxies/Profile.java +++ /dev/null @@ -1,236 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package email_connector.proxies; - -public class Profile -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject profileMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "Email_Connector.Profile"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - Email("Email"), - Name("Name"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public Profile(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "Email_Connector.Profile")); - } - - protected Profile(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject profileMendixObject) - { - if (profileMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("Email_Connector.Profile", profileMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a Email_Connector.Profile"); - - this.profileMendixObject = profileMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'Profile.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static email_connector.proxies.Profile initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return email_connector.proxies.Profile.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static email_connector.proxies.Profile initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new email_connector.proxies.Profile(context, mendixObject); - } - - public static email_connector.proxies.Profile load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return email_connector.proxies.Profile.initialize(context, mendixObject); - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of Email - */ - public final java.lang.String getEmail() - { - return getEmail(getContext()); - } - - /** - * @param context - * @return value of Email - */ - public final java.lang.String getEmail(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Email.toString()); - } - - /** - * Set value of Email - * @param email - */ - public final void setEmail(java.lang.String email) - { - setEmail(getContext(), email); - } - - /** - * Set value of Email - * @param context - * @param email - */ - public final void setEmail(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String email) - { - getMendixObject().setValue(context, MemberNames.Email.toString(), email); - } - - /** - * @return value of Name - */ - public final java.lang.String getName() - { - return getName(getContext()); - } - - /** - * @param context - * @return value of Name - */ - public final java.lang.String getName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Name.toString()); - } - - /** - * Set value of Name - * @param name - */ - public final void setName(java.lang.String name) - { - setName(getContext(), name); - } - - /** - * Set value of Name - * @param context - * @param name - */ - public final void setName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String name) - { - getMendixObject().setValue(context, MemberNames.Name.toString(), name); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return profileMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final email_connector.proxies.Profile that = (email_connector.proxies.Profile) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "Email_Connector.Profile"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/email_connector/proxies/QueryString.java b/javasource/email_connector/proxies/QueryString.java deleted file mode 100644 index 684d6cd..0000000 --- a/javasource/email_connector/proxies/QueryString.java +++ /dev/null @@ -1,251 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package email_connector.proxies; - -public class QueryString -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject queryStringMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "Email_Connector.QueryString"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - Param("Param"), - QueryString_OAuthProvider("Email_Connector.QueryString_OAuthProvider"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public QueryString(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "Email_Connector.QueryString")); - } - - protected QueryString(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject queryStringMendixObject) - { - if (queryStringMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("Email_Connector.QueryString", queryStringMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a Email_Connector.QueryString"); - - this.queryStringMendixObject = queryStringMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'QueryString.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static email_connector.proxies.QueryString initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return email_connector.proxies.QueryString.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static email_connector.proxies.QueryString initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new email_connector.proxies.QueryString(context, mendixObject); - } - - public static email_connector.proxies.QueryString load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return email_connector.proxies.QueryString.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//Email_Connector.QueryString" + xpathConstraint)) - result.add(email_connector.proxies.QueryString.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of Param - */ - public final java.lang.String getParam() - { - return getParam(getContext()); - } - - /** - * @param context - * @return value of Param - */ - public final java.lang.String getParam(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Param.toString()); - } - - /** - * Set value of Param - * @param param - */ - public final void setParam(java.lang.String param) - { - setParam(getContext(), param); - } - - /** - * Set value of Param - * @param context - * @param param - */ - public final void setParam(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String param) - { - getMendixObject().setValue(context, MemberNames.Param.toString(), param); - } - - /** - * @return value of QueryString_OAuthProvider - */ - public final email_connector.proxies.OAuthProvider getQueryString_OAuthProvider() throws com.mendix.core.CoreException - { - return getQueryString_OAuthProvider(getContext()); - } - - /** - * @param context - * @return value of QueryString_OAuthProvider - */ - public final email_connector.proxies.OAuthProvider getQueryString_OAuthProvider(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - email_connector.proxies.OAuthProvider result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.QueryString_OAuthProvider.toString()); - if (identifier != null) - result = email_connector.proxies.OAuthProvider.load(context, identifier); - return result; - } - - /** - * Set value of QueryString_OAuthProvider - * @param querystring_oauthprovider - */ - public final void setQueryString_OAuthProvider(email_connector.proxies.OAuthProvider querystring_oauthprovider) - { - setQueryString_OAuthProvider(getContext(), querystring_oauthprovider); - } - - /** - * Set value of QueryString_OAuthProvider - * @param context - * @param querystring_oauthprovider - */ - public final void setQueryString_OAuthProvider(com.mendix.systemwideinterfaces.core.IContext context, email_connector.proxies.OAuthProvider querystring_oauthprovider) - { - if (querystring_oauthprovider == null) - getMendixObject().setValue(context, MemberNames.QueryString_OAuthProvider.toString(), null); - else - getMendixObject().setValue(context, MemberNames.QueryString_OAuthProvider.toString(), querystring_oauthprovider.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return queryStringMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final email_connector.proxies.QueryString that = (email_connector.proxies.QueryString) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "Email_Connector.QueryString"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/email_connector/proxies/ScopeSelected.java b/javasource/email_connector/proxies/ScopeSelected.java deleted file mode 100644 index 9adf592..0000000 --- a/javasource/email_connector/proxies/ScopeSelected.java +++ /dev/null @@ -1,251 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package email_connector.proxies; - -public class ScopeSelected -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject scopeSelectedMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "Email_Connector.ScopeSelected"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - ScopeString("ScopeString"), - ScopeSelected_OAuthProvider("Email_Connector.ScopeSelected_OAuthProvider"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public ScopeSelected(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "Email_Connector.ScopeSelected")); - } - - protected ScopeSelected(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject scopeSelectedMendixObject) - { - if (scopeSelectedMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("Email_Connector.ScopeSelected", scopeSelectedMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a Email_Connector.ScopeSelected"); - - this.scopeSelectedMendixObject = scopeSelectedMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'ScopeSelected.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static email_connector.proxies.ScopeSelected initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return email_connector.proxies.ScopeSelected.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static email_connector.proxies.ScopeSelected initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new email_connector.proxies.ScopeSelected(context, mendixObject); - } - - public static email_connector.proxies.ScopeSelected load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return email_connector.proxies.ScopeSelected.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//Email_Connector.ScopeSelected" + xpathConstraint)) - result.add(email_connector.proxies.ScopeSelected.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of ScopeString - */ - public final java.lang.String getScopeString() - { - return getScopeString(getContext()); - } - - /** - * @param context - * @return value of ScopeString - */ - public final java.lang.String getScopeString(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.ScopeString.toString()); - } - - /** - * Set value of ScopeString - * @param scopestring - */ - public final void setScopeString(java.lang.String scopestring) - { - setScopeString(getContext(), scopestring); - } - - /** - * Set value of ScopeString - * @param context - * @param scopestring - */ - public final void setScopeString(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String scopestring) - { - getMendixObject().setValue(context, MemberNames.ScopeString.toString(), scopestring); - } - - /** - * @return value of ScopeSelected_OAuthProvider - */ - public final email_connector.proxies.OAuthProvider getScopeSelected_OAuthProvider() throws com.mendix.core.CoreException - { - return getScopeSelected_OAuthProvider(getContext()); - } - - /** - * @param context - * @return value of ScopeSelected_OAuthProvider - */ - public final email_connector.proxies.OAuthProvider getScopeSelected_OAuthProvider(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - email_connector.proxies.OAuthProvider result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.ScopeSelected_OAuthProvider.toString()); - if (identifier != null) - result = email_connector.proxies.OAuthProvider.load(context, identifier); - return result; - } - - /** - * Set value of ScopeSelected_OAuthProvider - * @param scopeselected_oauthprovider - */ - public final void setScopeSelected_OAuthProvider(email_connector.proxies.OAuthProvider scopeselected_oauthprovider) - { - setScopeSelected_OAuthProvider(getContext(), scopeselected_oauthprovider); - } - - /** - * Set value of ScopeSelected_OAuthProvider - * @param context - * @param scopeselected_oauthprovider - */ - public final void setScopeSelected_OAuthProvider(com.mendix.systemwideinterfaces.core.IContext context, email_connector.proxies.OAuthProvider scopeselected_oauthprovider) - { - if (scopeselected_oauthprovider == null) - getMendixObject().setValue(context, MemberNames.ScopeSelected_OAuthProvider.toString(), null); - else - getMendixObject().setValue(context, MemberNames.ScopeSelected_OAuthProvider.toString(), scopeselected_oauthprovider.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return scopeSelectedMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final email_connector.proxies.ScopeSelected that = (email_connector.proxies.ScopeSelected) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "Email_Connector.ScopeSelected"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/email_connector/proxies/SelectedConfiguration.java b/javasource/email_connector/proxies/SelectedConfiguration.java deleted file mode 100644 index 287a30a..0000000 --- a/javasource/email_connector/proxies/SelectedConfiguration.java +++ /dev/null @@ -1,555 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package email_connector.proxies; - -public class SelectedConfiguration -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject selectedConfigurationMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "Email_Connector.SelectedConfiguration"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - IncomingHost("IncomingHost"), - IncomingPort("IncomingPort"), - IncomingSocketType("IncomingSocketType"), - IncomingProtocol("IncomingProtocol"), - OutgoingHost("OutgoingHost"), - OutgoingPort("OutgoingPort"), - OutgoingProtocol("OutgoingProtocol"), - OutgoingSSL("OutgoingSSL"), - OutgoingTLS("OutgoingTLS"), - SelectedConfiguration_EmailProvider("Email_Connector.SelectedConfiguration_EmailProvider"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public SelectedConfiguration(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "Email_Connector.SelectedConfiguration")); - } - - protected SelectedConfiguration(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject selectedConfigurationMendixObject) - { - if (selectedConfigurationMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("Email_Connector.SelectedConfiguration", selectedConfigurationMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a Email_Connector.SelectedConfiguration"); - - this.selectedConfigurationMendixObject = selectedConfigurationMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'SelectedConfiguration.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static email_connector.proxies.SelectedConfiguration initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return email_connector.proxies.SelectedConfiguration.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static email_connector.proxies.SelectedConfiguration initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new email_connector.proxies.SelectedConfiguration(context, mendixObject); - } - - public static email_connector.proxies.SelectedConfiguration load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return email_connector.proxies.SelectedConfiguration.initialize(context, mendixObject); - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of IncomingHost - */ - public final java.lang.String getIncomingHost() - { - return getIncomingHost(getContext()); - } - - /** - * @param context - * @return value of IncomingHost - */ - public final java.lang.String getIncomingHost(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.IncomingHost.toString()); - } - - /** - * Set value of IncomingHost - * @param incominghost - */ - public final void setIncomingHost(java.lang.String incominghost) - { - setIncomingHost(getContext(), incominghost); - } - - /** - * Set value of IncomingHost - * @param context - * @param incominghost - */ - public final void setIncomingHost(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String incominghost) - { - getMendixObject().setValue(context, MemberNames.IncomingHost.toString(), incominghost); - } - - /** - * @return value of IncomingPort - */ - public final java.lang.Integer getIncomingPort() - { - return getIncomingPort(getContext()); - } - - /** - * @param context - * @return value of IncomingPort - */ - public final java.lang.Integer getIncomingPort(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Integer) getMendixObject().getValue(context, MemberNames.IncomingPort.toString()); - } - - /** - * Set value of IncomingPort - * @param incomingport - */ - public final void setIncomingPort(java.lang.Integer incomingport) - { - setIncomingPort(getContext(), incomingport); - } - - /** - * Set value of IncomingPort - * @param context - * @param incomingport - */ - public final void setIncomingPort(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Integer incomingport) - { - getMendixObject().setValue(context, MemberNames.IncomingPort.toString(), incomingport); - } - - /** - * @return value of IncomingSocketType - */ - public final java.lang.String getIncomingSocketType() - { - return getIncomingSocketType(getContext()); - } - - /** - * @param context - * @return value of IncomingSocketType - */ - public final java.lang.String getIncomingSocketType(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.IncomingSocketType.toString()); - } - - /** - * Set value of IncomingSocketType - * @param incomingsockettype - */ - public final void setIncomingSocketType(java.lang.String incomingsockettype) - { - setIncomingSocketType(getContext(), incomingsockettype); - } - - /** - * Set value of IncomingSocketType - * @param context - * @param incomingsockettype - */ - public final void setIncomingSocketType(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String incomingsockettype) - { - getMendixObject().setValue(context, MemberNames.IncomingSocketType.toString(), incomingsockettype); - } - - /** - * Set value of IncomingProtocol - * @param incomingprotocol - */ - public final email_connector.proxies.ENUM_IncomingProtocol getIncomingProtocol() - { - return getIncomingProtocol(getContext()); - } - - /** - * @param context - * @return value of IncomingProtocol - */ - public final email_connector.proxies.ENUM_IncomingProtocol getIncomingProtocol(com.mendix.systemwideinterfaces.core.IContext context) - { - Object obj = getMendixObject().getValue(context, MemberNames.IncomingProtocol.toString()); - if (obj == null) - return null; - - return email_connector.proxies.ENUM_IncomingProtocol.valueOf((java.lang.String) obj); - } - - /** - * Set value of IncomingProtocol - * @param incomingprotocol - */ - public final void setIncomingProtocol(email_connector.proxies.ENUM_IncomingProtocol incomingprotocol) - { - setIncomingProtocol(getContext(), incomingprotocol); - } - - /** - * Set value of IncomingProtocol - * @param context - * @param incomingprotocol - */ - public final void setIncomingProtocol(com.mendix.systemwideinterfaces.core.IContext context, email_connector.proxies.ENUM_IncomingProtocol incomingprotocol) - { - if (incomingprotocol != null) - getMendixObject().setValue(context, MemberNames.IncomingProtocol.toString(), incomingprotocol.toString()); - else - getMendixObject().setValue(context, MemberNames.IncomingProtocol.toString(), null); - } - - /** - * @return value of OutgoingHost - */ - public final java.lang.String getOutgoingHost() - { - return getOutgoingHost(getContext()); - } - - /** - * @param context - * @return value of OutgoingHost - */ - public final java.lang.String getOutgoingHost(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.OutgoingHost.toString()); - } - - /** - * Set value of OutgoingHost - * @param outgoinghost - */ - public final void setOutgoingHost(java.lang.String outgoinghost) - { - setOutgoingHost(getContext(), outgoinghost); - } - - /** - * Set value of OutgoingHost - * @param context - * @param outgoinghost - */ - public final void setOutgoingHost(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String outgoinghost) - { - getMendixObject().setValue(context, MemberNames.OutgoingHost.toString(), outgoinghost); - } - - /** - * @return value of OutgoingPort - */ - public final java.lang.Integer getOutgoingPort() - { - return getOutgoingPort(getContext()); - } - - /** - * @param context - * @return value of OutgoingPort - */ - public final java.lang.Integer getOutgoingPort(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Integer) getMendixObject().getValue(context, MemberNames.OutgoingPort.toString()); - } - - /** - * Set value of OutgoingPort - * @param outgoingport - */ - public final void setOutgoingPort(java.lang.Integer outgoingport) - { - setOutgoingPort(getContext(), outgoingport); - } - - /** - * Set value of OutgoingPort - * @param context - * @param outgoingport - */ - public final void setOutgoingPort(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Integer outgoingport) - { - getMendixObject().setValue(context, MemberNames.OutgoingPort.toString(), outgoingport); - } - - /** - * Set value of OutgoingProtocol - * @param outgoingprotocol - */ - public final email_connector.proxies.ENUM_OutgoingProtocol getOutgoingProtocol() - { - return getOutgoingProtocol(getContext()); - } - - /** - * @param context - * @return value of OutgoingProtocol - */ - public final email_connector.proxies.ENUM_OutgoingProtocol getOutgoingProtocol(com.mendix.systemwideinterfaces.core.IContext context) - { - Object obj = getMendixObject().getValue(context, MemberNames.OutgoingProtocol.toString()); - if (obj == null) - return null; - - return email_connector.proxies.ENUM_OutgoingProtocol.valueOf((java.lang.String) obj); - } - - /** - * Set value of OutgoingProtocol - * @param outgoingprotocol - */ - public final void setOutgoingProtocol(email_connector.proxies.ENUM_OutgoingProtocol outgoingprotocol) - { - setOutgoingProtocol(getContext(), outgoingprotocol); - } - - /** - * Set value of OutgoingProtocol - * @param context - * @param outgoingprotocol - */ - public final void setOutgoingProtocol(com.mendix.systemwideinterfaces.core.IContext context, email_connector.proxies.ENUM_OutgoingProtocol outgoingprotocol) - { - if (outgoingprotocol != null) - getMendixObject().setValue(context, MemberNames.OutgoingProtocol.toString(), outgoingprotocol.toString()); - else - getMendixObject().setValue(context, MemberNames.OutgoingProtocol.toString(), null); - } - - /** - * @return value of OutgoingSSL - */ - public final java.lang.Boolean getOutgoingSSL() - { - return getOutgoingSSL(getContext()); - } - - /** - * @param context - * @return value of OutgoingSSL - */ - public final java.lang.Boolean getOutgoingSSL(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.OutgoingSSL.toString()); - } - - /** - * Set value of OutgoingSSL - * @param outgoingssl - */ - public final void setOutgoingSSL(java.lang.Boolean outgoingssl) - { - setOutgoingSSL(getContext(), outgoingssl); - } - - /** - * Set value of OutgoingSSL - * @param context - * @param outgoingssl - */ - public final void setOutgoingSSL(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean outgoingssl) - { - getMendixObject().setValue(context, MemberNames.OutgoingSSL.toString(), outgoingssl); - } - - /** - * @return value of OutgoingTLS - */ - public final java.lang.Boolean getOutgoingTLS() - { - return getOutgoingTLS(getContext()); - } - - /** - * @param context - * @return value of OutgoingTLS - */ - public final java.lang.Boolean getOutgoingTLS(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.OutgoingTLS.toString()); - } - - /** - * Set value of OutgoingTLS - * @param outgoingtls - */ - public final void setOutgoingTLS(java.lang.Boolean outgoingtls) - { - setOutgoingTLS(getContext(), outgoingtls); - } - - /** - * Set value of OutgoingTLS - * @param context - * @param outgoingtls - */ - public final void setOutgoingTLS(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean outgoingtls) - { - getMendixObject().setValue(context, MemberNames.OutgoingTLS.toString(), outgoingtls); - } - - /** - * @return value of SelectedConfiguration_EmailProvider - */ - public final email_connector.proxies.EmailProvider getSelectedConfiguration_EmailProvider() throws com.mendix.core.CoreException - { - return getSelectedConfiguration_EmailProvider(getContext()); - } - - /** - * @param context - * @return value of SelectedConfiguration_EmailProvider - */ - public final email_connector.proxies.EmailProvider getSelectedConfiguration_EmailProvider(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - email_connector.proxies.EmailProvider result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.SelectedConfiguration_EmailProvider.toString()); - if (identifier != null) - result = email_connector.proxies.EmailProvider.load(context, identifier); - return result; - } - - /** - * Set value of SelectedConfiguration_EmailProvider - * @param selectedconfiguration_emailprovider - */ - public final void setSelectedConfiguration_EmailProvider(email_connector.proxies.EmailProvider selectedconfiguration_emailprovider) - { - setSelectedConfiguration_EmailProvider(getContext(), selectedconfiguration_emailprovider); - } - - /** - * Set value of SelectedConfiguration_EmailProvider - * @param context - * @param selectedconfiguration_emailprovider - */ - public final void setSelectedConfiguration_EmailProvider(com.mendix.systemwideinterfaces.core.IContext context, email_connector.proxies.EmailProvider selectedconfiguration_emailprovider) - { - if (selectedconfiguration_emailprovider == null) - getMendixObject().setValue(context, MemberNames.SelectedConfiguration_EmailProvider.toString(), null); - else - getMendixObject().setValue(context, MemberNames.SelectedConfiguration_EmailProvider.toString(), selectedconfiguration_emailprovider.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return selectedConfigurationMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final email_connector.proxies.SelectedConfiguration that = (email_connector.proxies.SelectedConfiguration) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "Email_Connector.SelectedConfiguration"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/email_connector/proxies/constants/Constants.java b/javasource/email_connector/proxies/constants/Constants.java deleted file mode 100644 index abbf2e3..0000000 --- a/javasource/email_connector/proxies/constants/Constants.java +++ /dev/null @@ -1,35 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package email_connector.proxies.constants; - -import com.mendix.core.Core; - -public class Constants -{ - // These are the constants for the Email_Connector module - - public static java.lang.String getazure_defaultConfig() - { - return (java.lang.String)Core.getConfiguration().getConstantValue("Email_Connector.azure_defaultConfig"); - } - - public static java.lang.String getEmail_Connector_Version() - { - return (java.lang.String)Core.getConfiguration().getConstantValue("Email_Connector.Email_Connector_Version"); - } - - /** - * The amount of days to preserve error messages. - */ - public static java.lang.Long getEmailLogRetention() - { - return (java.lang.Long)Core.getConfiguration().getConstantValue("Email_Connector.EmailLogRetention"); - } - - public static java.lang.String getLogNode() - { - return (java.lang.String)Core.getConfiguration().getConstantValue("Email_Connector.LogNode"); - } -} \ No newline at end of file diff --git a/javasource/email_connector/proxies/microflows/Microflows.java b/javasource/email_connector/proxies/microflows/Microflows.java deleted file mode 100644 index 004aa69..0000000 --- a/javasource/email_connector/proxies/microflows/Microflows.java +++ /dev/null @@ -1,677 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package email_connector.proxies.microflows; - -import java.util.HashMap; -import java.util.Map; -import com.mendix.core.Core; -import com.mendix.core.CoreException; -import com.mendix.systemwideinterfaces.MendixRuntimeException; -import com.mendix.systemwideinterfaces.core.IContext; -import com.mendix.systemwideinterfaces.core.IMendixObject; - -public class Microflows -{ - // These are the microflows for the Email_Connector module - public static void aCO_ADE_IncomingAccountMetrics(IContext context) - { - Map params = new HashMap<>(); - Core.microflowCall("Email_Connector.ACO_ADE_IncomingAccountMetrics").withParams(params).execute(context); - } - public static void aCO_ADE_OutgoingAccountMetrics(IContext context) - { - Map params = new HashMap<>(); - Core.microflowCall("Email_Connector.ACO_ADE_OutgoingAccountMetrics").withParams(params).execute(context); - } - public static void aCT_Attachment_Download(IContext context, email_connector.proxies.Attachment _attachment) - { - Map params = new HashMap<>(); - params.put("Attachment", _attachment == null ? null : _attachment.getMendixObject()); - Core.microflowCall("Email_Connector.ACT_Attachment_Download").withParams(params).execute(context); - } - public static void aCT_CheckServerConnectionAndClosePage(IContext context, email_connector.proxies.EmailAccount _emailAccount) - { - Map params = new HashMap<>(); - params.put("EmailAccount", _emailAccount == null ? null : _emailAccount.getMendixObject()); - Core.microflowCall("Email_Connector.ACT_CheckServerConnectionAndClosePage").withParams(params).execute(context); - } - public static void aCT_EmailAccount_DeleteAndClosePage(IContext context, email_connector.proxies.EmailAccount _emailAccount) - { - Map params = new HashMap<>(); - params.put("EmailAccount", _emailAccount == null ? null : _emailAccount.getMendixObject()); - Core.microflowCall("Email_Connector.ACT_EmailAccount_DeleteAndClosePage").withParams(params).execute(context); - } - public static java.lang.String aCT_EmailAccount_GetOrRenewTokenJavaAction(IContext context, email_connector.proxies.EmailAccount _emailAccount) - { - Map params = new HashMap<>(); - params.put("EmailAccount", _emailAccount == null ? null : _emailAccount.getMendixObject()); - return (java.lang.String) Core.microflowCall("Email_Connector.ACT_EmailAccount_GetOrRenewTokenJavaAction").withParams(params).execute(context); - } - public static void aCT_EmailAccount_RetrieveEmails(IContext context, email_connector.proxies.EmailAccount _emailAccount) - { - Map params = new HashMap<>(); - params.put("EmailAccount", _emailAccount == null ? null : _emailAccount.getMendixObject()); - Core.microflowCall("Email_Connector.ACT_EmailAccount_RetrieveEmails").withParams(params).execute(context); - } - public static void aCT_EmailAccount_SaveAutoConfig(IContext context, email_connector.proxies.EmailProvider _emailProvider) - { - Map params = new HashMap<>(); - params.put("EmailProvider", _emailProvider == null ? null : _emailProvider.getMendixObject()); - Core.microflowCall("Email_Connector.ACT_EmailAccount_SaveAutoConfig").withParams(params).execute(context); - } - public static void aCT_EmailAccount_SaveEmailSecurityConfiguration(IContext context, email_connector.proxies.EmailAccount _emailAccount) - { - Map params = new HashMap<>(); - params.put("EmailAccount", _emailAccount == null ? null : _emailAccount.getMendixObject()); - Core.microflowCall("Email_Connector.ACT_EmailAccount_SaveEmailSecurityConfiguration").withParams(params).execute(context); - } - public static void aCT_EmailAccount_SaveManualConfig(IContext context, email_connector.proxies.EmailAccount _emailAccount) - { - Map params = new HashMap<>(); - params.put("EmailAccount", _emailAccount == null ? null : _emailAccount.getMendixObject()); - Core.microflowCall("Email_Connector.ACT_EmailAccount_SaveManualConfig").withParams(params).execute(context); - } - public static void aCT_EmailMessage_ComposeReply(IContext context, email_connector.proxies.EmailMessage _emailMessage, email_connector.proxies.EmailAccount _emailAccount) - { - Map params = new HashMap<>(); - params.put("EmailMessage", _emailMessage == null ? null : _emailMessage.getMendixObject()); - params.put("EmailAccount", _emailAccount == null ? null : _emailAccount.getMendixObject()); - Core.microflowCall("Email_Connector.ACT_EmailMessage_ComposeReply").withParams(params).execute(context); - } - public static void aCT_EmailMessage_Delete(IContext context, email_connector.proxies.EmailMessage _emailMessage) - { - Map params = new HashMap<>(); - params.put("EmailMessage", _emailMessage == null ? null : _emailMessage.getMendixObject()); - Core.microflowCall("Email_Connector.ACT_EmailMessage_Delete").withParams(params).execute(context); - } - public static void aCT_EmailMessage_DeleteQueuedEmails(IContext context, email_connector.proxies.EmailAccount _emailAccount) - { - Map params = new HashMap<>(); - params.put("EmailAccount", _emailAccount == null ? null : _emailAccount.getMendixObject()); - Core.microflowCall("Email_Connector.ACT_EmailMessage_DeleteQueuedEmails").withParams(params).execute(context); - } - public static void aCT_EmailMessage_ResetQueuedStatus(IContext context, email_connector.proxies.EmailMessage _emailMessage) - { - Map params = new HashMap<>(); - params.put("EmailMessage", _emailMessage == null ? null : _emailMessage.getMendixObject()); - Core.microflowCall("Email_Connector.ACT_EmailMessage_ResetQueuedStatus").withParams(params).execute(context); - } - public static void aCT_EmailMessage_SendEmailAndClosePage(IContext context, email_connector.proxies.EmailMessage _emailMessage) - { - Map params = new HashMap<>(); - params.put("EmailMessage", _emailMessage == null ? null : _emailMessage.getMendixObject()); - Core.microflowCall("Email_Connector.ACT_EmailMessage_SendEmailAndClosePage").withParams(params).execute(context); - } - public static void aCT_EmailMessage_SendQueuedEmails(IContext context, email_connector.proxies.EmailAccount _emailAccount) - { - Map params = new HashMap<>(); - params.put("EmailAccount", _emailAccount == null ? null : _emailAccount.getMendixObject()); - Core.microflowCall("Email_Connector.ACT_EmailMessage_SendQueuedEmails").withParams(params).execute(context); - } - public static void aCT_EmailMessage_ShowComposeEmailPage(IContext context, email_connector.proxies.EmailAccount _emailAccount) - { - Map params = new HashMap<>(); - params.put("EmailAccount", _emailAccount == null ? null : _emailAccount.getMendixObject()); - Core.microflowCall("Email_Connector.ACT_EmailMessage_ShowComposeEmailPage").withParams(params).execute(context); - } - public static void aCT_EmailMessageList_ResetQueuedStatus(IContext context, java.util.List _emailList) - { - Map params = new HashMap<>(); - java.util.ArrayList listparam_emailList = null; - if (_emailList != null) - { - listparam_emailList = new java.util.ArrayList<>(); - for (email_connector.proxies.EmailMessage obj : _emailList) - listparam_emailList.add(obj.getMendixObject()); - } - params.put("EmailList", listparam_emailList); - - Core.microflowCall("Email_Connector.ACT_EmailMessageList_ResetQueuedStatus").withParams(params).execute(context); - } - public static void aCT_Emailtemplate_CreateToken(IContext context, email_connector.proxies.EmailTemplate _emailTemplate) - { - Map params = new HashMap<>(); - params.put("EmailTemplate", _emailTemplate == null ? null : _emailTemplate.getMendixObject()); - Core.microflowCall("Email_Connector.ACT_Emailtemplate_CreateToken").withParams(params).execute(context); - } - public static void aCT_EmailTemplate_DuplicateAndShowPage(IContext context, email_connector.proxies.EmailTemplate _emailTemplate) - { - Map params = new HashMap<>(); - params.put("EmailTemplate", _emailTemplate == null ? null : _emailTemplate.getMendixObject()); - Core.microflowCall("Email_Connector.ACT_EmailTemplate_DuplicateAndShowPage").withParams(params).execute(context); - } - public static void aCT_EmailTemplate_GenerateAndSetPlainText(IContext context, email_connector.proxies.EmailTemplate _emailTemplate) - { - Map params = new HashMap<>(); - params.put("EmailTemplate", _emailTemplate == null ? null : _emailTemplate.getMendixObject()); - Core.microflowCall("Email_Connector.ACT_EmailTemplate_GenerateAndSetPlainText").withParams(params).execute(context); - } - public static void aCT_EmailTemplate_Save(IContext context, email_connector.proxies.EmailTemplate _emailTemplate) - { - Map params = new HashMap<>(); - params.put("EmailTemplate", _emailTemplate == null ? null : _emailTemplate.getMendixObject()); - Core.microflowCall("Email_Connector.ACT_EmailTemplate_Save").withParams(params).execute(context); - } - public static void aCT_EmailTemplate_ShowModelReflectionPage(IContext context, email_connector.proxies.EmailTemplate _emailTemplate) - { - Map params = new HashMap<>(); - params.put("EmailTemplate", _emailTemplate == null ? null : _emailTemplate.getMendixObject()); - Core.microflowCall("Email_Connector.ACT_EmailTemplate_ShowModelReflectionPage").withParams(params).execute(context); - } - public static void aCT_IncomingEmailConfiguration_ChangeMoveToFolder(IContext context, email_connector.proxies.Folder _folder, email_connector.proxies.IncomingEmailConfiguration _incomingEmailConfiguration) - { - Map params = new HashMap<>(); - params.put("Folder", _folder == null ? null : _folder.getMendixObject()); - params.put("IncomingEmailConfiguration", _incomingEmailConfiguration == null ? null : _incomingEmailConfiguration.getMendixObject()); - Core.microflowCall("Email_Connector.ACT_IncomingEmailConfiguration_ChangeMoveToFolder").withParams(params).execute(context); - } - public static void aCT_IncomingEmailConfiguration_FolderSelect(IContext context, email_connector.proxies.Folder _folder, email_connector.proxies.IncomingEmailConfiguration _incomingEmailConfiguration) - { - Map params = new HashMap<>(); - params.put("Folder", _folder == null ? null : _folder.getMendixObject()); - params.put("IncomingEmailConfiguration", _incomingEmailConfiguration == null ? null : _incomingEmailConfiguration.getMendixObject()); - Core.microflowCall("Email_Connector.ACT_IncomingEmailConfiguration_FolderSelect").withParams(params).execute(context); - } - public static void aCT_LDAPConfiguration_ChangeBaseName(IContext context, email_connector.proxies.LDAPBaseDN _lDAPBaseName, email_connector.proxies.LDAPConfiguration _lDAPConfiguration) - { - Map params = new HashMap<>(); - params.put("LDAPBaseName", _lDAPBaseName == null ? null : _lDAPBaseName.getMendixObject()); - params.put("LDAPConfiguration", _lDAPConfiguration == null ? null : _lDAPConfiguration.getMendixObject()); - Core.microflowCall("Email_Connector.ACT_LDAPConfiguration_ChangeBaseName").withParams(params).execute(context); - } - public static void aCT_OAuthError_DeleteAndRedirectToHomePage(IContext context, email_connector.proxies.OAuthError _oAuthError) - { - Map params = new HashMap<>(); - params.put("OAuthError", _oAuthError == null ? null : _oAuthError.getMendixObject()); - Core.microflowCall("Email_Connector.ACT_OAuthError_DeleteAndRedirectToHomePage").withParams(params).execute(context); - } - public static void aCT_OAuthProvider_Create(IContext context) - { - Map params = new HashMap<>(); - Core.microflowCall("Email_Connector.ACT_OAuthProvider_Create").withParams(params).execute(context); - } - public static void aCT_OAuthProvider_DeleteProvider(IContext context, email_connector.proxies.OAuthProvider _oAuthProvider) - { - Map params = new HashMap<>(); - params.put("OAuthProvider", _oAuthProvider == null ? null : _oAuthProvider.getMendixObject()); - Core.microflowCall("Email_Connector.ACT_OAuthProvider_DeleteProvider").withParams(params).execute(context); - } - public static void aCT_OAuthProvider_Save(IContext context, email_connector.proxies.OAuthProvider _oAuthProvider) - { - Map params = new HashMap<>(); - params.put("OAuthProvider", _oAuthProvider == null ? null : _oAuthProvider.getMendixObject()); - Core.microflowCall("Email_Connector.ACT_OAuthProvider_Save").withParams(params).execute(context); - } - public static void aCT_OAuthProvider_ShowOAuthProviderPage(IContext context, email_connector.proxies.OAuthProvider _oAuthProvider) - { - Map params = new HashMap<>(); - params.put("OAuthProvider", _oAuthProvider == null ? null : _oAuthProvider.getMendixObject()); - Core.microflowCall("Email_Connector.ACT_OAuthProvider_ShowOAuthProviderPage").withParams(params).execute(context); - } - public static void aCT_SelectedConfiguration_FetchEmailServerConfigAndShowConfigPage(IContext context, email_connector.proxies.EmailAccount _emailAccount) - { - Map params = new HashMap<>(); - params.put("EmailAccount", _emailAccount == null ? null : _emailAccount.getMendixObject()); - Core.microflowCall("Email_Connector.ACT_SelectedConfiguration_FetchEmailServerConfigAndShowConfigPage").withParams(params).execute(context); - } - public static void aCT_ShowAccountLoginPage(IContext context) - { - Map params = new HashMap<>(); - Core.microflowCall("Email_Connector.ACT_ShowAccountLoginPage").withParams(params).execute(context); - } - public static void aCT_ShowAccountSettingsPage(IContext context, email_connector.proxies.EmailAccount _emailAccount) - { - Map params = new HashMap<>(); - params.put("EmailAccount", _emailAccount == null ? null : _emailAccount.getMendixObject()); - Core.microflowCall("Email_Connector.ACT_ShowAccountSettingsPage").withParams(params).execute(context); - } - public static void aCT_ShowEmailSecurityPage(IContext context, email_connector.proxies.EmailAccount _emailAccount) - { - Map params = new HashMap<>(); - params.put("EmailAccount", _emailAccount == null ? null : _emailAccount.getMendixObject()); - Core.microflowCall("Email_Connector.ACT_ShowEmailSecurityPage").withParams(params).execute(context); - } - public static boolean bCO_EmailAccount_EncryptPassword(IContext context, email_connector.proxies.EmailAccount _emailAccount) - { - Map params = new HashMap<>(); - params.put("EmailAccount", _emailAccount == null ? null : _emailAccount.getMendixObject()); - return (java.lang.Boolean) Core.microflowCall("Email_Connector.BCO_EmailAccount_EncryptPassword").withParams(params).execute(context); - } - public static boolean bCO_LDAPConfiguration_EncryptPassword(IContext context, email_connector.proxies.LDAPConfiguration _lDAPConfiguration) - { - Map params = new HashMap<>(); - params.put("LDAPConfiguration", _lDAPConfiguration == null ? null : _lDAPConfiguration.getMendixObject()); - return (java.lang.Boolean) Core.microflowCall("Email_Connector.BCO_LDAPConfiguration_EncryptPassword").withParams(params).execute(context); - } - public static boolean bCO_OAuthProvider_EncryptPassword(IContext context, email_connector.proxies.OAuthProvider _oAuthProvider) - { - Map params = new HashMap<>(); - params.put("OAuthProvider", _oAuthProvider == null ? null : _oAuthProvider.getMendixObject()); - return (java.lang.Boolean) Core.microflowCall("Email_Connector.BCO_OAuthProvider_EncryptPassword").withParams(params).execute(context); - } - public static boolean bCO_OAuthToken_EncryptTokens(IContext context, email_connector.proxies.OAuthToken _oAuthToken) - { - Map params = new HashMap<>(); - params.put("OAuthToken", _oAuthToken == null ? null : _oAuthToken.getMendixObject()); - return (java.lang.Boolean) Core.microflowCall("Email_Connector.BCO_OAuthToken_EncryptTokens").withParams(params).execute(context); - } - public static boolean bCO_Pk12Certificate_EncryptPassphrase(IContext context, email_connector.proxies.Pk12Certificate _pk12Certificate) - { - Map params = new HashMap<>(); - params.put("Pk12Certificate", _pk12Certificate == null ? null : _pk12Certificate.getMendixObject()); - return (java.lang.Boolean) Core.microflowCall("Email_Connector.BCO_Pk12Certificate_EncryptPassphrase").withParams(params).execute(context); - } - public static email_connector.proxies.EmailAccount dS_EmailAccount_CreateDummyAccount(IContext context) - { - Map params = new HashMap<>(); - IMendixObject result = (IMendixObject)Core.microflowCall("Email_Connector.DS_EmailAccount_CreateDummyAccount").withParams(params).execute(context); - return result == null ? null : email_connector.proxies.EmailAccount.initialize(context, result); - } - public static java.util.List dS_FolderList(IContext context, email_connector.proxies.IncomingEmailConfiguration _incomingEmailConfiguration) - { - Map params = new HashMap<>(); - params.put("IncomingEmailConfiguration", _incomingEmailConfiguration == null ? null : _incomingEmailConfiguration.getMendixObject()); - java.util.List objs = Core.microflowCall("Email_Connector.DS_FolderList").withParams(params).execute(context); - java.util.List result = null; - if (objs != null) - { - result = new java.util.ArrayList<>(); - for (IMendixObject obj : objs) - result.add(email_connector.proxies.Folder.initialize(context, obj)); - } - return result; - } - public static email_connector.proxies.LDAPConfiguration dS_GetLDAPConfiguration(IContext context, email_connector.proxies.EmailAccount _emailAccount) - { - Map params = new HashMap<>(); - params.put("EmailAccount", _emailAccount == null ? null : _emailAccount.getMendixObject()); - IMendixObject result = (IMendixObject)Core.microflowCall("Email_Connector.DS_GetLDAPConfiguration").withParams(params).execute(context); - return result == null ? null : email_connector.proxies.LDAPConfiguration.initialize(context, result); - } - public static email_connector.proxies.Pk12Certificate dS_GetPKCS12Certificate(IContext context, email_connector.proxies.EmailAccount _emailAccount) - { - Map params = new HashMap<>(); - params.put("EmailAccount", _emailAccount == null ? null : _emailAccount.getMendixObject()); - IMendixObject result = (IMendixObject)Core.microflowCall("Email_Connector.DS_GetPKCS12Certificate").withParams(params).execute(context); - return result == null ? null : email_connector.proxies.Pk12Certificate.initialize(context, result); - } - public static java.util.List dS_LDAPBaseDNList(IContext context, email_connector.proxies.LDAPConfiguration _lDAPConfiguration) - { - Map params = new HashMap<>(); - params.put("LDAPConfiguration", _lDAPConfiguration == null ? null : _lDAPConfiguration.getMendixObject()); - java.util.List objs = Core.microflowCall("Email_Connector.DS_LDAPBaseDNList").withParams(params).execute(context); - java.util.List result = null; - if (objs != null) - { - result = new java.util.ArrayList<>(); - for (IMendixObject obj : objs) - result.add(email_connector.proxies.LDAPBaseDN.initialize(context, obj)); - } - return result; - } - public static email_connector.proxies.ModelReflectionChecker dS_ModelReflectionChecker(IContext context, email_connector.proxies.EmailTemplate _emailTemplate) - { - Map params = new HashMap<>(); - params.put("EmailTemplate", _emailTemplate == null ? null : _emailTemplate.getMendixObject()); - IMendixObject result = (IMendixObject)Core.microflowCall("Email_Connector.DS_ModelReflectionChecker").withParams(params).execute(context); - return result == null ? null : email_connector.proxies.ModelReflectionChecker.initialize(context, result); - } - public static email_connector.proxies.EmailAccount dS_SelectFirstEmailAccount(IContext context) - { - Map params = new HashMap<>(); - IMendixObject result = (IMendixObject)Core.microflowCall("Email_Connector.DS_SelectFirstEmailAccount").withParams(params).execute(context); - return result == null ? null : email_connector.proxies.EmailAccount.initialize(context, result); - } - public static java.util.List dS_ShowErrorLogPage(IContext context, email_connector.proxies.EmailAccount _emailAccount) - { - Map params = new HashMap<>(); - params.put("EmailAccount", _emailAccount == null ? null : _emailAccount.getMendixObject()); - java.util.List objs = Core.microflowCall("Email_Connector.DS_ShowErrorLogPage").withParams(params).execute(context); - java.util.List result = null; - if (objs != null) - { - result = new java.util.ArrayList<>(); - for (IMendixObject obj : objs) - result.add(email_connector.proxies.EmailConnectorLog.initialize(context, obj)); - } - return result; - } - public static java.util.List oCH_Background_EmailFetchMicroflow(IContext context, java.util.List _emailMessageList) - { - Map params = new HashMap<>(); - java.util.ArrayList listparam_emailMessageList = null; - if (_emailMessageList != null) - { - listparam_emailMessageList = new java.util.ArrayList<>(); - for (email_connector.proxies.EmailMessage obj : _emailMessageList) - listparam_emailMessageList.add(obj.getMendixObject()); - } - params.put("EmailMessageList", listparam_emailMessageList); - - java.util.List objs = Core.microflowCall("Email_Connector.OCH_Background_EmailFetchMicroflow").withParams(params).execute(context); - java.util.List result = null; - if (objs != null) - { - result = new java.util.ArrayList<>(); - for (IMendixObject obj : objs) - result.add(email_connector.proxies.EmailMessage.initialize(context, obj)); - } - return result; - } - public static void oCH_Background_EmailReceiveComplete(IContext context) - { - Map params = new HashMap<>(); - Core.microflowCall("Email_Connector.OCH_Background_EmailReceiveComplete").withParams(params).execute(context); - } - public static void oCH_Background_ReceiveBatchFailed(IContext context, java.lang.String _message, java.lang.String _errorType, java.lang.String _stackTrace, email_connector.proxies.EmailAccount _emailAccount) - { - Map params = new HashMap<>(); - params.put("Message", _message); - params.put("ErrorType", _errorType); - params.put("StackTrace", _stackTrace); - params.put("EmailAccount", _emailAccount == null ? null : _emailAccount.getMendixObject()); - Core.microflowCall("Email_Connector.OCH_Background_ReceiveBatchFailed").withParams(params).execute(context); - } - public static void oCH_Background_SubscriptionStateChanged(IContext context, java.lang.String _state, java.lang.String _comment) - { - Map params = new HashMap<>(); - params.put("State", _state); - params.put("Comment", _comment); - Core.microflowCall("Email_Connector.OCH_Background_SubscriptionStateChanged").withParams(params).execute(context); - } - public static void oCH_EmailMessage_ToggleRecipients(IContext context, email_connector.proxies.EmailMessage _emailMessage) - { - Map params = new HashMap<>(); - params.put("EmailMessage", _emailMessage == null ? null : _emailMessage.getMendixObject()); - Core.microflowCall("Email_Connector.OCH_EmailMessage_ToggleRecipients").withParams(params).execute(context); - } - public static void oCH_EmailTemplate_ToggleRecipients(IContext context, email_connector.proxies.EmailTemplate _emailTemplate) - { - Map params = new HashMap<>(); - params.put("EmailTemplate", _emailTemplate == null ? null : _emailTemplate.getMendixObject()); - Core.microflowCall("Email_Connector.OCH_EmailTemplate_ToggleRecipients").withParams(params).execute(context); - } - public static void oCH_IncomingEmailConfiguration_Select(IContext context, email_connector.proxies.EmailProvider _emailProvider) - { - Map params = new HashMap<>(); - params.put("EmailProvider", _emailProvider == null ? null : _emailProvider.getMendixObject()); - Core.microflowCall("Email_Connector.OCH_IncomingEmailConfiguration_Select").withParams(params).execute(context); - } - public static void oCH_LDAPConfiguration_DeleteConfiguration(IContext context, email_connector.proxies.EmailAccount _emailAccount) - { - Map params = new HashMap<>(); - params.put("EmailAccount", _emailAccount == null ? null : _emailAccount.getMendixObject()); - Core.microflowCall("Email_Connector.OCH_LDAPConfiguration_DeleteConfiguration").withParams(params).execute(context); - } - public static void oCH_OAuthProvider_CreateNew(IContext context, email_connector.proxies.EmailAccount _emailAccount) - { - Map params = new HashMap<>(); - params.put("EmailAccount", _emailAccount == null ? null : _emailAccount.getMendixObject()); - Core.microflowCall("Email_Connector.OCH_OAuthProvider_CreateNew").withParams(params).execute(context); - } - public static void oCH_OAuthProvider_GetOrCreateOAuthProvider(IContext context, email_connector.proxies.EmailAccount _emailAccount) - { - Map params = new HashMap<>(); - params.put("EmailAccount", _emailAccount == null ? null : _emailAccount.getMendixObject()); - Core.microflowCall("Email_Connector.OCH_OAuthProvider_GetOrCreateOAuthProvider").withParams(params).execute(context); - } - public static void oCH_OAuthProvider_SetCallbackURL(IContext context, email_connector.proxies.OAuthProvider _oAuthProvider) - { - Map params = new HashMap<>(); - params.put("OAuthProvider", _oAuthProvider == null ? null : _oAuthProvider.getMendixObject()); - Core.microflowCall("Email_Connector.OCH_OAuthProvider_SetCallbackURL").withParams(params).execute(context); - } - public static void oCH_OutgoingEmailConfiguration_Select(IContext context, email_connector.proxies.EmailProvider _emailProvider) - { - Map params = new HashMap<>(); - params.put("EmailProvider", _emailProvider == null ? null : _emailProvider.getMendixObject()); - Core.microflowCall("Email_Connector.OCH_OutgoingEmailConfiguration_Select").withParams(params).execute(context); - } - public static void oCH_Pk12Certificate_DeleteCertificate(IContext context, email_connector.proxies.EmailAccount _emailAccount) - { - Map params = new HashMap<>(); - params.put("EmailAccount", _emailAccount == null ? null : _emailAccount.getMendixObject()); - Core.microflowCall("Email_Connector.OCH_Pk12Certificate_DeleteCertificate").withParams(params).execute(context); - } - public static void oEN_SetIncomingServer(IContext context, email_connector.proxies.IncomingServer _incomingServer) - { - Map params = new HashMap<>(); - params.put("IncomingServer", _incomingServer == null ? null : _incomingServer.getMendixObject()); - Core.microflowCall("Email_Connector.OEN_SetIncomingServer").withParams(params).execute(context); - } - public static void oEN_SetOutgoingServer(IContext context, email_connector.proxies.OutgoingServer _outgoingServer) - { - Map params = new HashMap<>(); - params.put("OutgoingServer", _outgoingServer == null ? null : _outgoingServer.getMendixObject()); - Core.microflowCall("Email_Connector.OEN_SetOutgoingServer").withParams(params).execute(context); - } - public static java.lang.String pRS_AuthCodeCallbackGET(IContext context, system.proxies.HttpRequest _httpRequest, system.proxies.HttpResponse _httpResponse, java.lang.String _customOpPath, java.lang.String _code, java.lang.String _state, java.lang.String _error, java.lang.String _errorDescription) - { - Map params = new HashMap<>(); - params.put("httpRequest", _httpRequest == null ? null : _httpRequest.getMendixObject()); - params.put("httpResponse", _httpResponse == null ? null : _httpResponse.getMendixObject()); - params.put("customOpPath", _customOpPath); - params.put("code", _code); - params.put("state", _state); - params.put("error", _error); - params.put("errorDescription", _errorDescription); - return (java.lang.String) Core.microflowCall("Email_Connector.PRS_AuthCodeCallbackGET").withParams(params).execute(context); - } - public static void sample_ACT_CreateEmailFromTemplateAndThenSend(IContext context, email_connector.proxies.EmailAccount _emailAccountAsDataObject, email_connector.proxies.EmailTemplate _emailTemplate) - { - Map params = new HashMap<>(); - params.put("EmailAccountAsDataObject", _emailAccountAsDataObject == null ? null : _emailAccountAsDataObject.getMendixObject()); - params.put("EmailTemplate", _emailTemplate == null ? null : _emailTemplate.getMendixObject()); - Core.microflowCall("Email_Connector.Sample_ACT_CreateEmailFromTemplateAndThenSend").withParams(params).execute(context); - } - public static void sample_ACT_SendEmailWithTemplate(IContext context, email_connector.proxies.EmailAccount _emailAccountAsDataObject, email_connector.proxies.EmailTemplate _emailTemplate) - { - Map params = new HashMap<>(); - params.put("EmailAccountAsDataObject", _emailAccountAsDataObject == null ? null : _emailAccountAsDataObject.getMendixObject()); - params.put("EmailTemplate", _emailTemplate == null ? null : _emailTemplate.getMendixObject()); - Core.microflowCall("Email_Connector.Sample_ACT_SendEmailWithTemplate").withParams(params).execute(context); - } - public static boolean sample_ASU_SubscribeForEmailNotification(IContext context) - { - Map params = new HashMap<>(); - return (java.lang.Boolean) Core.microflowCall("Email_Connector.Sample_ASU_SubscribeForEmailNotification").withParams(params).execute(context); - } - public static void sE_Cleanup(IContext context) - { - Map params = new HashMap<>(); - Core.microflowCall("Email_Connector.SE_Cleanup").withParams(params).execute(context); - } - public static void sE_SendQueuedEmails(IContext context, email_connector.proxies.EmailAccount _emailAccount) - { - Map params = new HashMap<>(); - params.put("EmailAccount", _emailAccount == null ? null : _emailAccount.getMendixObject()); - Core.microflowCall("Email_Connector.SE_SendQueuedEmails").withParams(params).execute(context); - } - public static void sUB_CreateLogItem(IContext context, java.lang.String _triggeredInMF, email_connector.proxies.ENUM_LogType _logType, java.lang.String _message, email_connector.proxies.EmailMessage _emailMessage, email_connector.proxies.EmailAccount _emailAccount, boolean _isUnread, system.proxies.Error _error) - { - Map params = new HashMap<>(); - params.put("TriggeredInMF", _triggeredInMF); - params.put("LogType", _logType == null ? null : _logType.name()); - params.put("Message", _message); - params.put("EmailMessage", _emailMessage == null ? null : _emailMessage.getMendixObject()); - params.put("EmailAccount", _emailAccount == null ? null : _emailAccount.getMendixObject()); - params.put("isUnread", _isUnread); - params.put("Error", _error == null ? null : _error.getMendixObject()); - Core.microflowCall("Email_Connector.SUB_CreateLogItem").withParams(params).execute(context); - } - public static java.util.List sUB_DuplicateTokenList(IContext context, java.util.List _tokenList) - { - Map params = new HashMap<>(); - java.util.ArrayList listparam_tokenList = null; - if (_tokenList != null) - { - listparam_tokenList = new java.util.ArrayList<>(); - for (mxmodelreflection.proxies.Token obj : _tokenList) - listparam_tokenList.add(obj.getMendixObject()); - } - params.put("TokenList", listparam_tokenList); - - java.util.List objs = Core.microflowCall("Email_Connector.SUB_DuplicateTokenList").withParams(params).execute(context); - java.util.List result = null; - if (objs != null) - { - result = new java.util.ArrayList<>(); - for (IMendixObject obj : objs) - result.add(mxmodelreflection.proxies.Token.initialize(context, obj)); - } - return result; - } - public static boolean sUB_EmailAccount_CheckServerConnection(IContext context, email_connector.proxies.EmailAccount _emailAccount) - { - Map params = new HashMap<>(); - params.put("EmailAccount", _emailAccount == null ? null : _emailAccount.getMendixObject()); - return (java.lang.Boolean) Core.microflowCall("Email_Connector.SUB_EmailAccount_CheckServerConnection").withParams(params).execute(context); - } - public static void sUB_EmailAccount_Delete(IContext context, email_connector.proxies.EmailAccount _emailAccount) - { - Map params = new HashMap<>(); - params.put("EmailAccount", _emailAccount == null ? null : _emailAccount.getMendixObject()); - Core.microflowCall("Email_Connector.SUB_EmailAccount_Delete").withParams(params).execute(context); - } - public static void sUB_EmailAccount_Save(IContext context, email_connector.proxies.EmailAccount _emailAccount) - { - Map params = new HashMap<>(); - params.put("EmailAccount", _emailAccount == null ? null : _emailAccount.getMendixObject()); - Core.microflowCall("Email_Connector.SUB_EmailAccount_Save").withParams(params).execute(context); - } - public static void sUB_EmailAccount_SubscribeForEmailNotification(IContext context, email_connector.proxies.EmailAccount _emailAccount) - { - Map params = new HashMap<>(); - params.put("EmailAccount", _emailAccount == null ? null : _emailAccount.getMendixObject()); - Core.microflowCall("Email_Connector.SUB_EmailAccount_SubscribeForEmailNotification").withParams(params).execute(context); - } - public static java.util.List sUB_EmailMessage_SetAttachments(IContext context, java.util.List _fileDocumentList, email_connector.proxies.EmailMessage _email) - { - Map params = new HashMap<>(); - java.util.ArrayList listparam_fileDocumentList = null; - if (_fileDocumentList != null) - { - listparam_fileDocumentList = new java.util.ArrayList<>(); - for (system.proxies.FileDocument obj : _fileDocumentList) - listparam_fileDocumentList.add(obj.getMendixObject()); - } - params.put("FileDocumentList", listparam_fileDocumentList); - - params.put("Email", _email == null ? null : _email.getMendixObject()); - java.util.List objs = Core.microflowCall("Email_Connector.SUB_EmailMessage_SetAttachments").withParams(params).execute(context); - java.util.List result = null; - if (objs != null) - { - result = new java.util.ArrayList<>(); - for (IMendixObject obj : objs) - result.add(email_connector.proxies.Attachment.initialize(context, obj)); - } - return result; - } - public static java.lang.String sUB_GenerateOAuthNonce(IContext context) - { - Map params = new HashMap<>(); - return (java.lang.String) Core.microflowCall("Email_Connector.SUB_GenerateOAuthNonce").withParams(params).execute(context); - } - public static java.util.List sUB_GetEmailTemplateAttachments(IContext context, java.util.List _fileDocumentList, email_connector.proxies.EmailTemplate _emailTemplate) - { - Map params = new HashMap<>(); - java.util.ArrayList listparam_fileDocumentList = null; - if (_fileDocumentList != null) - { - listparam_fileDocumentList = new java.util.ArrayList<>(); - for (system.proxies.FileDocument obj : _fileDocumentList) - listparam_fileDocumentList.add(obj.getMendixObject()); - } - params.put("FileDocumentList", listparam_fileDocumentList); - - params.put("EmailTemplate", _emailTemplate == null ? null : _emailTemplate.getMendixObject()); - java.util.List objs = Core.microflowCall("Email_Connector.SUB_GetEmailTemplateAttachments").withParams(params).execute(context); - java.util.List result = null; - if (objs != null) - { - result = new java.util.ArrayList<>(); - for (IMendixObject obj : objs) - result.add(email_connector.proxies.Attachment.initialize(context, obj)); - } - return result; - } - public static email_connector.proxies.OAuthProvider sUB_GetFirstOAuthProvider(IContext context) - { - Map params = new HashMap<>(); - IMendixObject result = (IMendixObject)Core.microflowCall("Email_Connector.SUB_GetFirstOAuthProvider").withParams(params).execute(context); - return result == null ? null : email_connector.proxies.OAuthProvider.initialize(context, result); - } - public static java.lang.String sUB_GetOAuthURL(IContext context, email_connector.proxies.EmailAccount _emailAccount) - { - Map params = new HashMap<>(); - params.put("EmailAccount", _emailAccount == null ? null : _emailAccount.getMendixObject()); - return (java.lang.String) Core.microflowCall("Email_Connector.SUB_GetOAuthURL").withParams(params).execute(context); - } - public static void sUB_RetrieveEmails(IContext context, email_connector.proxies.EmailAccount _emailAccount) - { - Map params = new HashMap<>(); - params.put("EmailAccount", _emailAccount == null ? null : _emailAccount.getMendixObject()); - Core.microflowCall("Email_Connector.SUB_RetrieveEmails").withParams(params).execute(context); - } - public static boolean sUB_SendEmail(IContext context, email_connector.proxies.EmailMessage _emailMessage) - { - Map params = new HashMap<>(); - params.put("EmailMessage", _emailMessage == null ? null : _emailMessage.getMendixObject()); - return (java.lang.Boolean) Core.microflowCall("Email_Connector.SUB_SendEmail").withParams(params).execute(context); - } - public static void sUB_SendEmailFromJavaAction(IContext context, email_connector.proxies.EmailAccount _emailAccount, email_connector.proxies.EmailMessage _emailMessage, email_connector.proxies.EmailTemplate _emailTemplate) - { - Map params = new HashMap<>(); - params.put("EmailAccount", _emailAccount == null ? null : _emailAccount.getMendixObject()); - params.put("EmailMessage", _emailMessage == null ? null : _emailMessage.getMendixObject()); - params.put("EmailTemplate", _emailTemplate == null ? null : _emailTemplate.getMendixObject()); - Core.microflowCall("Email_Connector.SUB_SendEmailFromJavaAction").withParams(params).execute(context); - } - public static void sUB_SendQueuedEmail(IContext context, email_connector.proxies.EmailMessage _emailMessage, email_connector.proxies.EmailAccount _emailAccount) - { - Map params = new HashMap<>(); - params.put("EmailMessage", _emailMessage == null ? null : _emailMessage.getMendixObject()); - params.put("EmailAccount", _emailAccount == null ? null : _emailAccount.getMendixObject()); - Core.microflowCall("Email_Connector.SUB_SendQueuedEmail").withParams(params).execute(context); - } - public static void sUB_ShowOAuthError(IContext context, email_connector.proxies.OAuthError _oAuthError, system.proxies.HttpResponse _httpResponse) - { - Map params = new HashMap<>(); - params.put("OAuthError", _oAuthError == null ? null : _oAuthError.getMendixObject()); - params.put("httpResponse", _httpResponse == null ? null : _httpResponse.getMendixObject()); - Core.microflowCall("Email_Connector.SUB_ShowOAuthError").withParams(params).execute(context); - } - public static boolean vAL_BatchDetails(IContext context, email_connector.proxies.IncomingEmailConfiguration _incomingEmailConfiguration) - { - Map params = new HashMap<>(); - params.put("IncomingEmailConfiguration", _incomingEmailConfiguration == null ? null : _incomingEmailConfiguration.getMendixObject()); - return (java.lang.Boolean) Core.microflowCall("Email_Connector.VAL_BatchDetails").withParams(params).execute(context); - } - public static boolean vAL_EmailRecipients(IContext context, email_connector.proxies.EmailMessage _emailMessage) - { - Map params = new HashMap<>(); - params.put("EmailMessage", _emailMessage == null ? null : _emailMessage.getMendixObject()); - return (java.lang.Boolean) Core.microflowCall("Email_Connector.VAL_EmailRecipients").withParams(params).execute(context); - } - public static boolean vAL_EmailTemplateRecipients(IContext context, email_connector.proxies.EmailTemplate _emailTemplate) - { - Map params = new HashMap<>(); - params.put("EmailTemplate", _emailTemplate == null ? null : _emailTemplate.getMendixObject()); - return (java.lang.Boolean) Core.microflowCall("Email_Connector.VAL_EmailTemplateRecipients").withParams(params).execute(context); - } - public static void vAL_LDAPConfiguration(IContext context, email_connector.proxies.EmailMessage _emailMessage) - { - Map params = new HashMap<>(); - params.put("EmailMessage", _emailMessage == null ? null : _emailMessage.getMendixObject()); - Core.microflowCall("Email_Connector.VAL_LDAPConfiguration").withParams(params).execute(context); - } - public static void vAL_Pk12Certificate(IContext context, email_connector.proxies.EmailMessage _emailMessage) - { - Map params = new HashMap<>(); - params.put("EmailMessage", _emailMessage == null ? null : _emailMessage.getMendixObject()); - Core.microflowCall("Email_Connector.VAL_Pk12Certificate").withParams(params).execute(context); - } -} \ No newline at end of file diff --git a/javasource/emailtemplate/actions/ConvertHTMLBodyToPlainText.java b/javasource/emailtemplate/actions/ConvertHTMLBodyToPlainText.java index bdfc6cf..39ffdf6 100644 --- a/javasource/emailtemplate/actions/ConvertHTMLBodyToPlainText.java +++ b/javasource/emailtemplate/actions/ConvertHTMLBodyToPlainText.java @@ -41,6 +41,7 @@ public java.lang.String executeAction() throws Exception /** * Returns a string representation of this action + * @return a string representation of this action */ @java.lang.Override public java.lang.String toString() diff --git a/javasource/emailtemplate/actions/CopyAttachmentContent.java b/javasource/emailtemplate/actions/CopyAttachmentContent.java index 1589095..25702f9 100644 --- a/javasource/emailtemplate/actions/CopyAttachmentContent.java +++ b/javasource/emailtemplate/actions/CopyAttachmentContent.java @@ -32,9 +32,9 @@ public CopyAttachmentContent(IContext context, IMendixObject CopyFrom, IMendixOb @java.lang.Override public java.lang.Boolean executeAction() throws Exception { - this.CopyFrom = __CopyFrom == null ? null : system.proxies.FileDocument.initialize(getContext(), __CopyFrom); + this.CopyFrom = this.__CopyFrom == null ? null : system.proxies.FileDocument.initialize(getContext(), __CopyFrom); - this.CopyTo = __CopyTo == null ? null : system.proxies.FileDocument.initialize(getContext(), __CopyTo); + this.CopyTo = this.__CopyTo == null ? null : system.proxies.FileDocument.initialize(getContext(), __CopyTo); // BEGIN USER CODE IContext context = this.getContext(); @@ -51,6 +51,7 @@ public java.lang.Boolean executeAction() throws Exception /** * Returns a string representation of this action + * @return a string representation of this action */ @java.lang.Override public java.lang.String toString() diff --git a/javasource/emailtemplate/actions/GetEmailSettingsByID.java b/javasource/emailtemplate/actions/GetEmailSettingsByID.java index 1b968fb..c18e9a4 100644 --- a/javasource/emailtemplate/actions/GetEmailSettingsByID.java +++ b/javasource/emailtemplate/actions/GetEmailSettingsByID.java @@ -36,6 +36,7 @@ public IMendixObject executeAction() throws Exception /** * Returns a string representation of this action + * @return a string representation of this action */ @java.lang.Override public java.lang.String toString() diff --git a/javasource/emailtemplate/actions/OAuthRequestsHandler.java b/javasource/emailtemplate/actions/OAuthRequestsHandler.java index a819600..7238c75 100644 --- a/javasource/emailtemplate/actions/OAuthRequestsHandler.java +++ b/javasource/emailtemplate/actions/OAuthRequestsHandler.java @@ -40,6 +40,7 @@ public java.lang.Boolean executeAction() throws Exception /** * Returns a string representation of this action + * @return a string representation of this action */ @java.lang.Override public java.lang.String toString() diff --git a/javasource/emailtemplate/actions/ReplaceCustomToken.java b/javasource/emailtemplate/actions/ReplaceCustomToken.java index a26030d..fd8cbfe 100644 --- a/javasource/emailtemplate/actions/ReplaceCustomToken.java +++ b/javasource/emailtemplate/actions/ReplaceCustomToken.java @@ -31,7 +31,7 @@ public ReplaceCustomToken(IContext context, java.lang.String Tokenobject, java.l @java.lang.Override public java.lang.Boolean executeAction() throws Exception { - this.Emailobject = __Emailobject == null ? null : emailtemplate.proxies.Email.initialize(getContext(), __Emailobject); + this.Emailobject = this.__Emailobject == null ? null : emailtemplate.proxies.Email.initialize(getContext(), __Emailobject); // BEGIN USER CODE if( !this.Emailobject.getUseOnlyPlainText().equals(true) ) @@ -43,6 +43,7 @@ public java.lang.Boolean executeAction() throws Exception /** * Returns a string representation of this action + * @return a string representation of this action */ @java.lang.Override public java.lang.String toString() diff --git a/javasource/emailtemplate/actions/ReplaceEmailTemplateTokens.java b/javasource/emailtemplate/actions/ReplaceEmailTemplateTokens.java index d782bf5..e6af116 100644 --- a/javasource/emailtemplate/actions/ReplaceEmailTemplateTokens.java +++ b/javasource/emailtemplate/actions/ReplaceEmailTemplateTokens.java @@ -37,12 +37,13 @@ public ReplaceEmailTemplateTokens(IContext context, IMendixObject DataObject, IM @java.lang.Override public java.lang.Boolean executeAction() throws Exception { - this.email = __email == null ? null : emailtemplate.proxies.Email.initialize(getContext(), __email); + this.email = this.__email == null ? null : emailtemplate.proxies.Email.initialize(getContext(), __email); - this.TokenList = new java.util.ArrayList(); - if (__TokenList != null) - for (IMendixObject __TokenListElement : __TokenList) - this.TokenList.add(mxmodelreflection.proxies.Token.initialize(getContext(), __TokenListElement)); + this.TokenList = java.util.Optional.ofNullable(this.__TokenList) + .orElse(java.util.Collections.emptyList()) + .stream() + .map(__TokenListElement -> mxmodelreflection.proxies.Token.initialize(getContext(), __TokenListElement)) + .collect(java.util.stream.Collectors.toList()); // BEGIN USER CODE @@ -62,6 +63,7 @@ public java.lang.Boolean executeAction() throws Exception /** * Returns a string representation of this action + * @return a string representation of this action */ @java.lang.Override public java.lang.String toString() diff --git a/javasource/emailtemplate/actions/SendEmail.java b/javasource/emailtemplate/actions/SendEmail.java index 95173d7..159e5d3 100644 --- a/javasource/emailtemplate/actions/SendEmail.java +++ b/javasource/emailtemplate/actions/SendEmail.java @@ -74,17 +74,19 @@ public SendEmail(IContext context, java.lang.String SMTPHost, java.lang.String S @java.lang.Override public java.lang.Boolean executeAction() throws Exception { - this.AttachmentList = new java.util.ArrayList(); - if (__AttachmentList != null) - for (IMendixObject __AttachmentListElement : __AttachmentList) - this.AttachmentList.add(system.proxies.FileDocument.initialize(getContext(), __AttachmentListElement)); + this.AttachmentList = java.util.Optional.ofNullable(this.__AttachmentList) + .orElse(java.util.Collections.emptyList()) + .stream() + .map(__AttachmentListElement -> system.proxies.FileDocument.initialize(getContext(), __AttachmentListElement)) + .collect(java.util.stream.Collectors.toList()); - this.HeaderList = new java.util.ArrayList(); - if (__HeaderList != null) - for (IMendixObject __HeaderListElement : __HeaderList) - this.HeaderList.add(emailtemplate.proxies.Header.initialize(getContext(), __HeaderListElement)); + this.HeaderList = java.util.Optional.ofNullable(this.__HeaderList) + .orElse(java.util.Collections.emptyList()) + .stream() + .map(__HeaderListElement -> emailtemplate.proxies.Header.initialize(getContext(), __HeaderListElement)) + .collect(java.util.stream.Collectors.toList()); - this.EmailSettings = __EmailSettings == null ? null : emailtemplate.proxies.EmailSettings.initialize(getContext(), __EmailSettings); + this.EmailSettings = this.__EmailSettings == null ? null : emailtemplate.proxies.EmailSettings.initialize(getContext(), __EmailSettings); // BEGIN USER CODE @@ -189,6 +191,7 @@ public java.lang.Boolean executeAction() throws Exception /** * Returns a string representation of this action + * @return a string representation of this action */ @java.lang.Override public java.lang.String toString() diff --git a/javasource/emailtemplate/proxies/Attachment.java b/javasource/emailtemplate/proxies/Attachment.java deleted file mode 100644 index 615fcc0..0000000 --- a/javasource/emailtemplate/proxies/Attachment.java +++ /dev/null @@ -1,210 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package emailtemplate.proxies; - -public class Attachment extends system.proxies.FileDocument -{ - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "EmailTemplate.Attachment"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - FileID("FileID"), - Name("Name"), - DeleteAfterDownload("DeleteAfterDownload"), - Contents("Contents"), - HasContents("HasContents"), - Size("Size"), - Attachment_Email("EmailTemplate.Attachment_Email"), - Attachment_EmailTemplate("EmailTemplate.Attachment_EmailTemplate"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public Attachment(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "EmailTemplate.Attachment")); - } - - protected Attachment(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject attachmentMendixObject) - { - super(context, attachmentMendixObject); - if (!com.mendix.core.Core.isSubClassOf("EmailTemplate.Attachment", attachmentMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a EmailTemplate.Attachment"); - } - - /** - * @deprecated Use 'Attachment.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static emailtemplate.proxies.Attachment initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return emailtemplate.proxies.Attachment.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static emailtemplate.proxies.Attachment initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new emailtemplate.proxies.Attachment(context, mendixObject); - } - - public static emailtemplate.proxies.Attachment load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return emailtemplate.proxies.Attachment.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//EmailTemplate.Attachment" + xpathConstraint)) - result.add(emailtemplate.proxies.Attachment.initialize(context, obj)); - return result; - } - - /** - * @return value of Attachment_Email - */ - public final emailtemplate.proxies.Email getAttachment_Email() throws com.mendix.core.CoreException - { - return getAttachment_Email(getContext()); - } - - /** - * @param context - * @return value of Attachment_Email - */ - public final emailtemplate.proxies.Email getAttachment_Email(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - emailtemplate.proxies.Email result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.Attachment_Email.toString()); - if (identifier != null) - result = emailtemplate.proxies.Email.load(context, identifier); - return result; - } - - /** - * Set value of Attachment_Email - * @param attachment_email - */ - public final void setAttachment_Email(emailtemplate.proxies.Email attachment_email) - { - setAttachment_Email(getContext(), attachment_email); - } - - /** - * Set value of Attachment_Email - * @param context - * @param attachment_email - */ - public final void setAttachment_Email(com.mendix.systemwideinterfaces.core.IContext context, emailtemplate.proxies.Email attachment_email) - { - if (attachment_email == null) - getMendixObject().setValue(context, MemberNames.Attachment_Email.toString(), null); - else - getMendixObject().setValue(context, MemberNames.Attachment_Email.toString(), attachment_email.getMendixObject().getId()); - } - - /** - * @return value of Attachment_EmailTemplate - */ - public final emailtemplate.proxies.EmailTemplate getAttachment_EmailTemplate() throws com.mendix.core.CoreException - { - return getAttachment_EmailTemplate(getContext()); - } - - /** - * @param context - * @return value of Attachment_EmailTemplate - */ - public final emailtemplate.proxies.EmailTemplate getAttachment_EmailTemplate(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - emailtemplate.proxies.EmailTemplate result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.Attachment_EmailTemplate.toString()); - if (identifier != null) - result = emailtemplate.proxies.EmailTemplate.load(context, identifier); - return result; - } - - /** - * Set value of Attachment_EmailTemplate - * @param attachment_emailtemplate - */ - public final void setAttachment_EmailTemplate(emailtemplate.proxies.EmailTemplate attachment_emailtemplate) - { - setAttachment_EmailTemplate(getContext(), attachment_emailtemplate); - } - - /** - * Set value of Attachment_EmailTemplate - * @param context - * @param attachment_emailtemplate - */ - public final void setAttachment_EmailTemplate(com.mendix.systemwideinterfaces.core.IContext context, emailtemplate.proxies.EmailTemplate attachment_emailtemplate) - { - if (attachment_emailtemplate == null) - getMendixObject().setValue(context, MemberNames.Attachment_EmailTemplate.toString(), null); - else - getMendixObject().setValue(context, MemberNames.Attachment_EmailTemplate.toString(), attachment_emailtemplate.getMendixObject().getId()); - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final emailtemplate.proxies.Attachment that = (emailtemplate.proxies.Attachment) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "EmailTemplate.Attachment"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Override - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/emailtemplate/proxies/Email.java b/javasource/emailtemplate/proxies/Email.java deleted file mode 100644 index 54b5f9a..0000000 --- a/javasource/emailtemplate/proxies/Email.java +++ /dev/null @@ -1,851 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package emailtemplate.proxies; - -public class Email -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject emailMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "EmailTemplate.Email"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - To("To"), - From("From"), - FromDisplayName("FromDisplayName"), - ReplyTo("ReplyTo"), - CC("CC"), - BCC("BCC"), - Subject("Subject"), - Date("Date"), - UseOnlyPlainText("UseOnlyPlainText"), - HtmlBody("HtmlBody"), - PlainBody("PlainBody"), - Queued("Queued"), - Attempts("Attempts"), - DateSent("DateSent"), - LastError("LastError"), - LastAttempt("LastAttempt"), - Status("Status"), - Email_EmailTemplate("EmailTemplate.Email_EmailTemplate"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public Email(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "EmailTemplate.Email")); - } - - protected Email(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject emailMendixObject) - { - if (emailMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("EmailTemplate.Email", emailMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a EmailTemplate.Email"); - - this.emailMendixObject = emailMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'Email.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static emailtemplate.proxies.Email initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return emailtemplate.proxies.Email.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static emailtemplate.proxies.Email initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new emailtemplate.proxies.Email(context, mendixObject); - } - - public static emailtemplate.proxies.Email load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return emailtemplate.proxies.Email.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//EmailTemplate.Email" + xpathConstraint)) - result.add(emailtemplate.proxies.Email.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of To - */ - public final java.lang.String getTo() - { - return getTo(getContext()); - } - - /** - * @param context - * @return value of To - */ - public final java.lang.String getTo(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.To.toString()); - } - - /** - * Set value of To - * @param to - */ - public final void setTo(java.lang.String to) - { - setTo(getContext(), to); - } - - /** - * Set value of To - * @param context - * @param to - */ - public final void setTo(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String to) - { - getMendixObject().setValue(context, MemberNames.To.toString(), to); - } - - /** - * @return value of From - */ - public final java.lang.String getFrom() - { - return getFrom(getContext()); - } - - /** - * @param context - * @return value of From - */ - public final java.lang.String getFrom(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.From.toString()); - } - - /** - * Set value of From - * @param from - */ - public final void setFrom(java.lang.String from) - { - setFrom(getContext(), from); - } - - /** - * Set value of From - * @param context - * @param from - */ - public final void setFrom(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String from) - { - getMendixObject().setValue(context, MemberNames.From.toString(), from); - } - - /** - * @return value of FromDisplayName - */ - public final java.lang.String getFromDisplayName() - { - return getFromDisplayName(getContext()); - } - - /** - * @param context - * @return value of FromDisplayName - */ - public final java.lang.String getFromDisplayName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.FromDisplayName.toString()); - } - - /** - * Set value of FromDisplayName - * @param fromdisplayname - */ - public final void setFromDisplayName(java.lang.String fromdisplayname) - { - setFromDisplayName(getContext(), fromdisplayname); - } - - /** - * Set value of FromDisplayName - * @param context - * @param fromdisplayname - */ - public final void setFromDisplayName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String fromdisplayname) - { - getMendixObject().setValue(context, MemberNames.FromDisplayName.toString(), fromdisplayname); - } - - /** - * @return value of ReplyTo - */ - public final java.lang.String getReplyTo() - { - return getReplyTo(getContext()); - } - - /** - * @param context - * @return value of ReplyTo - */ - public final java.lang.String getReplyTo(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.ReplyTo.toString()); - } - - /** - * Set value of ReplyTo - * @param replyto - */ - public final void setReplyTo(java.lang.String replyto) - { - setReplyTo(getContext(), replyto); - } - - /** - * Set value of ReplyTo - * @param context - * @param replyto - */ - public final void setReplyTo(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String replyto) - { - getMendixObject().setValue(context, MemberNames.ReplyTo.toString(), replyto); - } - - /** - * @return value of CC - */ - public final java.lang.String getCC() - { - return getCC(getContext()); - } - - /** - * @param context - * @return value of CC - */ - public final java.lang.String getCC(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.CC.toString()); - } - - /** - * Set value of CC - * @param cc - */ - public final void setCC(java.lang.String cc) - { - setCC(getContext(), cc); - } - - /** - * Set value of CC - * @param context - * @param cc - */ - public final void setCC(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String cc) - { - getMendixObject().setValue(context, MemberNames.CC.toString(), cc); - } - - /** - * @return value of BCC - */ - public final java.lang.String getBCC() - { - return getBCC(getContext()); - } - - /** - * @param context - * @return value of BCC - */ - public final java.lang.String getBCC(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.BCC.toString()); - } - - /** - * Set value of BCC - * @param bcc - */ - public final void setBCC(java.lang.String bcc) - { - setBCC(getContext(), bcc); - } - - /** - * Set value of BCC - * @param context - * @param bcc - */ - public final void setBCC(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String bcc) - { - getMendixObject().setValue(context, MemberNames.BCC.toString(), bcc); - } - - /** - * @return value of Subject - */ - public final java.lang.String getSubject() - { - return getSubject(getContext()); - } - - /** - * @param context - * @return value of Subject - */ - public final java.lang.String getSubject(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Subject.toString()); - } - - /** - * Set value of Subject - * @param subject - */ - public final void setSubject(java.lang.String subject) - { - setSubject(getContext(), subject); - } - - /** - * Set value of Subject - * @param context - * @param subject - */ - public final void setSubject(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String subject) - { - getMendixObject().setValue(context, MemberNames.Subject.toString(), subject); - } - - /** - * @return value of Date - */ - public final java.util.Date getDate() - { - return getDate(getContext()); - } - - /** - * @param context - * @return value of Date - */ - public final java.util.Date getDate(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.util.Date) getMendixObject().getValue(context, MemberNames.Date.toString()); - } - - /** - * Set value of Date - * @param date - */ - public final void setDate(java.util.Date date) - { - setDate(getContext(), date); - } - - /** - * Set value of Date - * @param context - * @param date - */ - public final void setDate(com.mendix.systemwideinterfaces.core.IContext context, java.util.Date date) - { - getMendixObject().setValue(context, MemberNames.Date.toString(), date); - } - - /** - * @return value of UseOnlyPlainText - */ - public final java.lang.Boolean getUseOnlyPlainText() - { - return getUseOnlyPlainText(getContext()); - } - - /** - * @param context - * @return value of UseOnlyPlainText - */ - public final java.lang.Boolean getUseOnlyPlainText(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.UseOnlyPlainText.toString()); - } - - /** - * Set value of UseOnlyPlainText - * @param useonlyplaintext - */ - public final void setUseOnlyPlainText(java.lang.Boolean useonlyplaintext) - { - setUseOnlyPlainText(getContext(), useonlyplaintext); - } - - /** - * Set value of UseOnlyPlainText - * @param context - * @param useonlyplaintext - */ - public final void setUseOnlyPlainText(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean useonlyplaintext) - { - getMendixObject().setValue(context, MemberNames.UseOnlyPlainText.toString(), useonlyplaintext); - } - - /** - * @return value of HtmlBody - */ - public final java.lang.String getHtmlBody() - { - return getHtmlBody(getContext()); - } - - /** - * @param context - * @return value of HtmlBody - */ - public final java.lang.String getHtmlBody(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.HtmlBody.toString()); - } - - /** - * Set value of HtmlBody - * @param htmlbody - */ - public final void setHtmlBody(java.lang.String htmlbody) - { - setHtmlBody(getContext(), htmlbody); - } - - /** - * Set value of HtmlBody - * @param context - * @param htmlbody - */ - public final void setHtmlBody(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String htmlbody) - { - getMendixObject().setValue(context, MemberNames.HtmlBody.toString(), htmlbody); - } - - /** - * @return value of PlainBody - */ - public final java.lang.String getPlainBody() - { - return getPlainBody(getContext()); - } - - /** - * @param context - * @return value of PlainBody - */ - public final java.lang.String getPlainBody(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.PlainBody.toString()); - } - - /** - * Set value of PlainBody - * @param plainbody - */ - public final void setPlainBody(java.lang.String plainbody) - { - setPlainBody(getContext(), plainbody); - } - - /** - * Set value of PlainBody - * @param context - * @param plainbody - */ - public final void setPlainBody(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String plainbody) - { - getMendixObject().setValue(context, MemberNames.PlainBody.toString(), plainbody); - } - - /** - * @return value of Queued - */ - public final java.lang.Boolean getQueued() - { - return getQueued(getContext()); - } - - /** - * @param context - * @return value of Queued - */ - public final java.lang.Boolean getQueued(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.Queued.toString()); - } - - /** - * Set value of Queued - * @param queued - */ - public final void setQueued(java.lang.Boolean queued) - { - setQueued(getContext(), queued); - } - - /** - * Set value of Queued - * @param context - * @param queued - */ - public final void setQueued(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean queued) - { - getMendixObject().setValue(context, MemberNames.Queued.toString(), queued); - } - - /** - * @return value of Attempts - */ - public final java.lang.Integer getAttempts() - { - return getAttempts(getContext()); - } - - /** - * @param context - * @return value of Attempts - */ - public final java.lang.Integer getAttempts(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Integer) getMendixObject().getValue(context, MemberNames.Attempts.toString()); - } - - /** - * Set value of Attempts - * @param attempts - */ - public final void setAttempts(java.lang.Integer attempts) - { - setAttempts(getContext(), attempts); - } - - /** - * Set value of Attempts - * @param context - * @param attempts - */ - public final void setAttempts(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Integer attempts) - { - getMendixObject().setValue(context, MemberNames.Attempts.toString(), attempts); - } - - /** - * @return value of DateSent - */ - public final java.util.Date getDateSent() - { - return getDateSent(getContext()); - } - - /** - * @param context - * @return value of DateSent - */ - public final java.util.Date getDateSent(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.util.Date) getMendixObject().getValue(context, MemberNames.DateSent.toString()); - } - - /** - * Set value of DateSent - * @param datesent - */ - public final void setDateSent(java.util.Date datesent) - { - setDateSent(getContext(), datesent); - } - - /** - * Set value of DateSent - * @param context - * @param datesent - */ - public final void setDateSent(com.mendix.systemwideinterfaces.core.IContext context, java.util.Date datesent) - { - getMendixObject().setValue(context, MemberNames.DateSent.toString(), datesent); - } - - /** - * @return value of LastError - */ - public final java.lang.String getLastError() - { - return getLastError(getContext()); - } - - /** - * @param context - * @return value of LastError - */ - public final java.lang.String getLastError(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.LastError.toString()); - } - - /** - * Set value of LastError - * @param lasterror - */ - public final void setLastError(java.lang.String lasterror) - { - setLastError(getContext(), lasterror); - } - - /** - * Set value of LastError - * @param context - * @param lasterror - */ - public final void setLastError(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String lasterror) - { - getMendixObject().setValue(context, MemberNames.LastError.toString(), lasterror); - } - - /** - * @return value of LastAttempt - */ - public final java.util.Date getLastAttempt() - { - return getLastAttempt(getContext()); - } - - /** - * @param context - * @return value of LastAttempt - */ - public final java.util.Date getLastAttempt(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.util.Date) getMendixObject().getValue(context, MemberNames.LastAttempt.toString()); - } - - /** - * Set value of LastAttempt - * @param lastattempt - */ - public final void setLastAttempt(java.util.Date lastattempt) - { - setLastAttempt(getContext(), lastattempt); - } - - /** - * Set value of LastAttempt - * @param context - * @param lastattempt - */ - public final void setLastAttempt(com.mendix.systemwideinterfaces.core.IContext context, java.util.Date lastattempt) - { - getMendixObject().setValue(context, MemberNames.LastAttempt.toString(), lastattempt); - } - - /** - * Set value of Status - * @param status - */ - public final emailtemplate.proxies.Status getStatus() - { - return getStatus(getContext()); - } - - /** - * @param context - * @return value of Status - */ - public final emailtemplate.proxies.Status getStatus(com.mendix.systemwideinterfaces.core.IContext context) - { - Object obj = getMendixObject().getValue(context, MemberNames.Status.toString()); - if (obj == null) - return null; - - return emailtemplate.proxies.Status.valueOf((java.lang.String) obj); - } - - /** - * Set value of Status - * @param status - */ - public final void setStatus(emailtemplate.proxies.Status status) - { - setStatus(getContext(), status); - } - - /** - * Set value of Status - * @param context - * @param status - */ - public final void setStatus(com.mendix.systemwideinterfaces.core.IContext context, emailtemplate.proxies.Status status) - { - if (status != null) - getMendixObject().setValue(context, MemberNames.Status.toString(), status.toString()); - else - getMendixObject().setValue(context, MemberNames.Status.toString(), null); - } - - /** - * @return value of Email_EmailTemplate - */ - public final emailtemplate.proxies.EmailTemplate getEmail_EmailTemplate() throws com.mendix.core.CoreException - { - return getEmail_EmailTemplate(getContext()); - } - - /** - * @param context - * @return value of Email_EmailTemplate - */ - public final emailtemplate.proxies.EmailTemplate getEmail_EmailTemplate(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - emailtemplate.proxies.EmailTemplate result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.Email_EmailTemplate.toString()); - if (identifier != null) - result = emailtemplate.proxies.EmailTemplate.load(context, identifier); - return result; - } - - /** - * Set value of Email_EmailTemplate - * @param email_emailtemplate - */ - public final void setEmail_EmailTemplate(emailtemplate.proxies.EmailTemplate email_emailtemplate) - { - setEmail_EmailTemplate(getContext(), email_emailtemplate); - } - - /** - * Set value of Email_EmailTemplate - * @param context - * @param email_emailtemplate - */ - public final void setEmail_EmailTemplate(com.mendix.systemwideinterfaces.core.IContext context, emailtemplate.proxies.EmailTemplate email_emailtemplate) - { - if (email_emailtemplate == null) - getMendixObject().setValue(context, MemberNames.Email_EmailTemplate.toString(), null); - else - getMendixObject().setValue(context, MemberNames.Email_EmailTemplate.toString(), email_emailtemplate.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return emailMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final emailtemplate.proxies.Email that = (emailtemplate.proxies.Email) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "EmailTemplate.Email"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/emailtemplate/proxies/EmailLog.java b/javasource/emailtemplate/proxies/EmailLog.java deleted file mode 100644 index fbdd75b..0000000 --- a/javasource/emailtemplate/proxies/EmailLog.java +++ /dev/null @@ -1,400 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package emailtemplate.proxies; - -public class EmailLog -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject emailLogMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "EmailTemplate.EmailLog"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - Created("Created"), - Logtype("Logtype"), - Message("Message"), - ErrorMessage("ErrorMessage"), - TriggeredInMF("TriggeredInMF"), - StackTrace("StackTrace"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public EmailLog(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "EmailTemplate.EmailLog")); - } - - protected EmailLog(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject emailLogMendixObject) - { - if (emailLogMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("EmailTemplate.EmailLog", emailLogMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a EmailTemplate.EmailLog"); - - this.emailLogMendixObject = emailLogMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'EmailLog.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static emailtemplate.proxies.EmailLog initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return emailtemplate.proxies.EmailLog.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static emailtemplate.proxies.EmailLog initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new emailtemplate.proxies.EmailLog(context, mendixObject); - } - - public static emailtemplate.proxies.EmailLog load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return emailtemplate.proxies.EmailLog.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//EmailTemplate.EmailLog" + xpathConstraint)) - result.add(emailtemplate.proxies.EmailLog.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of Created - */ - public final java.util.Date getCreated() - { - return getCreated(getContext()); - } - - /** - * @param context - * @return value of Created - */ - public final java.util.Date getCreated(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.util.Date) getMendixObject().getValue(context, MemberNames.Created.toString()); - } - - /** - * Set value of Created - * @param created - */ - public final void setCreated(java.util.Date created) - { - setCreated(getContext(), created); - } - - /** - * Set value of Created - * @param context - * @param created - */ - public final void setCreated(com.mendix.systemwideinterfaces.core.IContext context, java.util.Date created) - { - getMendixObject().setValue(context, MemberNames.Created.toString(), created); - } - - /** - * Set value of Logtype - * @param logtype - */ - public final emailtemplate.proxies.LogType getLogtype() - { - return getLogtype(getContext()); - } - - /** - * @param context - * @return value of Logtype - */ - public final emailtemplate.proxies.LogType getLogtype(com.mendix.systemwideinterfaces.core.IContext context) - { - Object obj = getMendixObject().getValue(context, MemberNames.Logtype.toString()); - if (obj == null) - return null; - - return emailtemplate.proxies.LogType.valueOf((java.lang.String) obj); - } - - /** - * Set value of Logtype - * @param logtype - */ - public final void setLogtype(emailtemplate.proxies.LogType logtype) - { - setLogtype(getContext(), logtype); - } - - /** - * Set value of Logtype - * @param context - * @param logtype - */ - public final void setLogtype(com.mendix.systemwideinterfaces.core.IContext context, emailtemplate.proxies.LogType logtype) - { - if (logtype != null) - getMendixObject().setValue(context, MemberNames.Logtype.toString(), logtype.toString()); - else - getMendixObject().setValue(context, MemberNames.Logtype.toString(), null); - } - - /** - * @return value of Message - */ - public final java.lang.String getMessage() - { - return getMessage(getContext()); - } - - /** - * @param context - * @return value of Message - */ - public final java.lang.String getMessage(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Message.toString()); - } - - /** - * Set value of Message - * @param message - */ - public final void setMessage(java.lang.String message) - { - setMessage(getContext(), message); - } - - /** - * Set value of Message - * @param context - * @param message - */ - public final void setMessage(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String message) - { - getMendixObject().setValue(context, MemberNames.Message.toString(), message); - } - - /** - * @return value of ErrorMessage - */ - public final java.lang.String getErrorMessage() - { - return getErrorMessage(getContext()); - } - - /** - * @param context - * @return value of ErrorMessage - */ - public final java.lang.String getErrorMessage(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.ErrorMessage.toString()); - } - - /** - * Set value of ErrorMessage - * @param errormessage - */ - public final void setErrorMessage(java.lang.String errormessage) - { - setErrorMessage(getContext(), errormessage); - } - - /** - * Set value of ErrorMessage - * @param context - * @param errormessage - */ - public final void setErrorMessage(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String errormessage) - { - getMendixObject().setValue(context, MemberNames.ErrorMessage.toString(), errormessage); - } - - /** - * @return value of TriggeredInMF - */ - public final java.lang.String getTriggeredInMF() - { - return getTriggeredInMF(getContext()); - } - - /** - * @param context - * @return value of TriggeredInMF - */ - public final java.lang.String getTriggeredInMF(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.TriggeredInMF.toString()); - } - - /** - * Set value of TriggeredInMF - * @param triggeredinmf - */ - public final void setTriggeredInMF(java.lang.String triggeredinmf) - { - setTriggeredInMF(getContext(), triggeredinmf); - } - - /** - * Set value of TriggeredInMF - * @param context - * @param triggeredinmf - */ - public final void setTriggeredInMF(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String triggeredinmf) - { - getMendixObject().setValue(context, MemberNames.TriggeredInMF.toString(), triggeredinmf); - } - - /** - * @return value of StackTrace - */ - public final java.lang.String getStackTrace() - { - return getStackTrace(getContext()); - } - - /** - * @param context - * @return value of StackTrace - */ - public final java.lang.String getStackTrace(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.StackTrace.toString()); - } - - /** - * Set value of StackTrace - * @param stacktrace - */ - public final void setStackTrace(java.lang.String stacktrace) - { - setStackTrace(getContext(), stacktrace); - } - - /** - * Set value of StackTrace - * @param context - * @param stacktrace - */ - public final void setStackTrace(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String stacktrace) - { - getMendixObject().setValue(context, MemberNames.StackTrace.toString(), stacktrace); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return emailLogMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final emailtemplate.proxies.EmailLog that = (emailtemplate.proxies.EmailLog) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "EmailTemplate.EmailLog"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/emailtemplate/proxies/EmailSettings.java b/javasource/emailtemplate/proxies/EmailSettings.java deleted file mode 100644 index a7ed32c..0000000 --- a/javasource/emailtemplate/proxies/EmailSettings.java +++ /dev/null @@ -1,665 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package emailtemplate.proxies; - -public class EmailSettings -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject emailSettingsMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "EmailTemplate.EmailSettings"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - UserName("UserName"), - Password("Password"), - Server("Server"), - Port("Port"), - FromAddress("FromAddress"), - FromDisplayName("FromDisplayName"), - UseSSL("UseSSL"), - UseTLS("UseTLS"), - MaxAttempts("MaxAttempts"), - UseSSLCheckServerIdentity("UseSSLCheckServerIdentity"), - isOAuthUsed("isOAuthUsed"), - EmailSettings_OAuthProviderDetails("EmailTemplate.EmailSettings_OAuthProviderDetails"), - Token_EmailSettings("EmailTemplate.Token_EmailSettings"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public EmailSettings(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "EmailTemplate.EmailSettings")); - } - - protected EmailSettings(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject emailSettingsMendixObject) - { - if (emailSettingsMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("EmailTemplate.EmailSettings", emailSettingsMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a EmailTemplate.EmailSettings"); - - this.emailSettingsMendixObject = emailSettingsMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'EmailSettings.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static emailtemplate.proxies.EmailSettings initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return emailtemplate.proxies.EmailSettings.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static emailtemplate.proxies.EmailSettings initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new emailtemplate.proxies.EmailSettings(context, mendixObject); - } - - public static emailtemplate.proxies.EmailSettings load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return emailtemplate.proxies.EmailSettings.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//EmailTemplate.EmailSettings" + xpathConstraint)) - result.add(emailtemplate.proxies.EmailSettings.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of UserName - */ - public final java.lang.String getUserName() - { - return getUserName(getContext()); - } - - /** - * @param context - * @return value of UserName - */ - public final java.lang.String getUserName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.UserName.toString()); - } - - /** - * Set value of UserName - * @param username - */ - public final void setUserName(java.lang.String username) - { - setUserName(getContext(), username); - } - - /** - * Set value of UserName - * @param context - * @param username - */ - public final void setUserName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String username) - { - getMendixObject().setValue(context, MemberNames.UserName.toString(), username); - } - - /** - * @return value of Password - */ - public final java.lang.String getPassword() - { - return getPassword(getContext()); - } - - /** - * @param context - * @return value of Password - */ - public final java.lang.String getPassword(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Password.toString()); - } - - /** - * Set value of Password - * @param password - */ - public final void setPassword(java.lang.String password) - { - setPassword(getContext(), password); - } - - /** - * Set value of Password - * @param context - * @param password - */ - public final void setPassword(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String password) - { - getMendixObject().setValue(context, MemberNames.Password.toString(), password); - } - - /** - * @return value of Server - */ - public final java.lang.String getServer() - { - return getServer(getContext()); - } - - /** - * @param context - * @return value of Server - */ - public final java.lang.String getServer(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Server.toString()); - } - - /** - * Set value of Server - * @param server - */ - public final void setServer(java.lang.String server) - { - setServer(getContext(), server); - } - - /** - * Set value of Server - * @param context - * @param server - */ - public final void setServer(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String server) - { - getMendixObject().setValue(context, MemberNames.Server.toString(), server); - } - - /** - * @return value of Port - */ - public final java.lang.Integer getPort() - { - return getPort(getContext()); - } - - /** - * @param context - * @return value of Port - */ - public final java.lang.Integer getPort(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Integer) getMendixObject().getValue(context, MemberNames.Port.toString()); - } - - /** - * Set value of Port - * @param port - */ - public final void setPort(java.lang.Integer port) - { - setPort(getContext(), port); - } - - /** - * Set value of Port - * @param context - * @param port - */ - public final void setPort(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Integer port) - { - getMendixObject().setValue(context, MemberNames.Port.toString(), port); - } - - /** - * @return value of FromAddress - */ - public final java.lang.String getFromAddress() - { - return getFromAddress(getContext()); - } - - /** - * @param context - * @return value of FromAddress - */ - public final java.lang.String getFromAddress(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.FromAddress.toString()); - } - - /** - * Set value of FromAddress - * @param fromaddress - */ - public final void setFromAddress(java.lang.String fromaddress) - { - setFromAddress(getContext(), fromaddress); - } - - /** - * Set value of FromAddress - * @param context - * @param fromaddress - */ - public final void setFromAddress(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String fromaddress) - { - getMendixObject().setValue(context, MemberNames.FromAddress.toString(), fromaddress); - } - - /** - * @return value of FromDisplayName - */ - public final java.lang.String getFromDisplayName() - { - return getFromDisplayName(getContext()); - } - - /** - * @param context - * @return value of FromDisplayName - */ - public final java.lang.String getFromDisplayName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.FromDisplayName.toString()); - } - - /** - * Set value of FromDisplayName - * @param fromdisplayname - */ - public final void setFromDisplayName(java.lang.String fromdisplayname) - { - setFromDisplayName(getContext(), fromdisplayname); - } - - /** - * Set value of FromDisplayName - * @param context - * @param fromdisplayname - */ - public final void setFromDisplayName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String fromdisplayname) - { - getMendixObject().setValue(context, MemberNames.FromDisplayName.toString(), fromdisplayname); - } - - /** - * @return value of UseSSL - */ - public final java.lang.Boolean getUseSSL() - { - return getUseSSL(getContext()); - } - - /** - * @param context - * @return value of UseSSL - */ - public final java.lang.Boolean getUseSSL(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.UseSSL.toString()); - } - - /** - * Set value of UseSSL - * @param usessl - */ - public final void setUseSSL(java.lang.Boolean usessl) - { - setUseSSL(getContext(), usessl); - } - - /** - * Set value of UseSSL - * @param context - * @param usessl - */ - public final void setUseSSL(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean usessl) - { - getMendixObject().setValue(context, MemberNames.UseSSL.toString(), usessl); - } - - /** - * @return value of UseTLS - */ - public final java.lang.Boolean getUseTLS() - { - return getUseTLS(getContext()); - } - - /** - * @param context - * @return value of UseTLS - */ - public final java.lang.Boolean getUseTLS(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.UseTLS.toString()); - } - - /** - * Set value of UseTLS - * @param usetls - */ - public final void setUseTLS(java.lang.Boolean usetls) - { - setUseTLS(getContext(), usetls); - } - - /** - * Set value of UseTLS - * @param context - * @param usetls - */ - public final void setUseTLS(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean usetls) - { - getMendixObject().setValue(context, MemberNames.UseTLS.toString(), usetls); - } - - /** - * @return value of MaxAttempts - */ - public final java.lang.Integer getMaxAttempts() - { - return getMaxAttempts(getContext()); - } - - /** - * @param context - * @return value of MaxAttempts - */ - public final java.lang.Integer getMaxAttempts(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Integer) getMendixObject().getValue(context, MemberNames.MaxAttempts.toString()); - } - - /** - * Set value of MaxAttempts - * @param maxattempts - */ - public final void setMaxAttempts(java.lang.Integer maxattempts) - { - setMaxAttempts(getContext(), maxattempts); - } - - /** - * Set value of MaxAttempts - * @param context - * @param maxattempts - */ - public final void setMaxAttempts(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Integer maxattempts) - { - getMendixObject().setValue(context, MemberNames.MaxAttempts.toString(), maxattempts); - } - - /** - * @return value of UseSSLCheckServerIdentity - */ - public final java.lang.Boolean getUseSSLCheckServerIdentity() - { - return getUseSSLCheckServerIdentity(getContext()); - } - - /** - * @param context - * @return value of UseSSLCheckServerIdentity - */ - public final java.lang.Boolean getUseSSLCheckServerIdentity(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.UseSSLCheckServerIdentity.toString()); - } - - /** - * Set value of UseSSLCheckServerIdentity - * @param usesslcheckserveridentity - */ - public final void setUseSSLCheckServerIdentity(java.lang.Boolean usesslcheckserveridentity) - { - setUseSSLCheckServerIdentity(getContext(), usesslcheckserveridentity); - } - - /** - * Set value of UseSSLCheckServerIdentity - * @param context - * @param usesslcheckserveridentity - */ - public final void setUseSSLCheckServerIdentity(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean usesslcheckserveridentity) - { - getMendixObject().setValue(context, MemberNames.UseSSLCheckServerIdentity.toString(), usesslcheckserveridentity); - } - - /** - * @return value of isOAuthUsed - */ - public final java.lang.Boolean getisOAuthUsed() - { - return getisOAuthUsed(getContext()); - } - - /** - * @param context - * @return value of isOAuthUsed - */ - public final java.lang.Boolean getisOAuthUsed(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.isOAuthUsed.toString()); - } - - /** - * Set value of isOAuthUsed - * @param isoauthused - */ - public final void setisOAuthUsed(java.lang.Boolean isoauthused) - { - setisOAuthUsed(getContext(), isoauthused); - } - - /** - * Set value of isOAuthUsed - * @param context - * @param isoauthused - */ - public final void setisOAuthUsed(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean isoauthused) - { - getMendixObject().setValue(context, MemberNames.isOAuthUsed.toString(), isoauthused); - } - - /** - * @return value of EmailSettings_OAuthProviderDetails - */ - public final emailtemplate.proxies.OAuthProviderDetails getEmailSettings_OAuthProviderDetails() throws com.mendix.core.CoreException - { - return getEmailSettings_OAuthProviderDetails(getContext()); - } - - /** - * @param context - * @return value of EmailSettings_OAuthProviderDetails - */ - public final emailtemplate.proxies.OAuthProviderDetails getEmailSettings_OAuthProviderDetails(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - emailtemplate.proxies.OAuthProviderDetails result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.EmailSettings_OAuthProviderDetails.toString()); - if (identifier != null) - result = emailtemplate.proxies.OAuthProviderDetails.load(context, identifier); - return result; - } - - /** - * Set value of EmailSettings_OAuthProviderDetails - * @param emailsettings_oauthproviderdetails - */ - public final void setEmailSettings_OAuthProviderDetails(emailtemplate.proxies.OAuthProviderDetails emailsettings_oauthproviderdetails) - { - setEmailSettings_OAuthProviderDetails(getContext(), emailsettings_oauthproviderdetails); - } - - /** - * Set value of EmailSettings_OAuthProviderDetails - * @param context - * @param emailsettings_oauthproviderdetails - */ - public final void setEmailSettings_OAuthProviderDetails(com.mendix.systemwideinterfaces.core.IContext context, emailtemplate.proxies.OAuthProviderDetails emailsettings_oauthproviderdetails) - { - if (emailsettings_oauthproviderdetails == null) - getMendixObject().setValue(context, MemberNames.EmailSettings_OAuthProviderDetails.toString(), null); - else - getMendixObject().setValue(context, MemberNames.EmailSettings_OAuthProviderDetails.toString(), emailsettings_oauthproviderdetails.getMendixObject().getId()); - } - - /** - * @return value of Token_EmailSettings - */ - public final emailtemplate.proxies.Token getToken_EmailSettings() throws com.mendix.core.CoreException - { - return getToken_EmailSettings(getContext()); - } - - /** - * @param context - * @return value of Token_EmailSettings - */ - public final emailtemplate.proxies.Token getToken_EmailSettings(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - emailtemplate.proxies.Token result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.Token_EmailSettings.toString()); - if (identifier != null) - result = emailtemplate.proxies.Token.load(context, identifier); - return result; - } - - /** - * Set value of Token_EmailSettings - * @param token_emailsettings - */ - public final void setToken_EmailSettings(emailtemplate.proxies.Token token_emailsettings) - { - setToken_EmailSettings(getContext(), token_emailsettings); - } - - /** - * Set value of Token_EmailSettings - * @param context - * @param token_emailsettings - */ - public final void setToken_EmailSettings(com.mendix.systemwideinterfaces.core.IContext context, emailtemplate.proxies.Token token_emailsettings) - { - if (token_emailsettings == null) - getMendixObject().setValue(context, MemberNames.Token_EmailSettings.toString(), null); - else - getMendixObject().setValue(context, MemberNames.Token_EmailSettings.toString(), token_emailsettings.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return emailSettingsMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final emailtemplate.proxies.EmailSettings that = (emailtemplate.proxies.EmailSettings) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "EmailTemplate.EmailSettings"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/emailtemplate/proxies/EmailTemplate.java b/javasource/emailtemplate/proxies/EmailTemplate.java deleted file mode 100644 index d2933fb..0000000 --- a/javasource/emailtemplate/proxies/EmailTemplate.java +++ /dev/null @@ -1,705 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package emailtemplate.proxies; - -public class EmailTemplate -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject emailTemplateMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "EmailTemplate.EmailTemplate"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - TemplateName("TemplateName"), - To("To"), - From("From"), - FromDisplayName("FromDisplayName"), - ReplyTo("ReplyTo"), - CC("CC"), - BCC("BCC"), - Subject("Subject"), - HtmlBody("HtmlBody"), - PlainBody("PlainBody"), - CreationDate("CreationDate"), - UseOnlyPlainText("UseOnlyPlainText"), - EmailTemplate_MxObjectType("EmailTemplate.EmailTemplate_MxObjectType"), - EmailTemplate_Token("EmailTemplate.EmailTemplate_Token"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public EmailTemplate(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "EmailTemplate.EmailTemplate")); - } - - protected EmailTemplate(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject emailTemplateMendixObject) - { - if (emailTemplateMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("EmailTemplate.EmailTemplate", emailTemplateMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a EmailTemplate.EmailTemplate"); - - this.emailTemplateMendixObject = emailTemplateMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'EmailTemplate.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static emailtemplate.proxies.EmailTemplate initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return emailtemplate.proxies.EmailTemplate.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static emailtemplate.proxies.EmailTemplate initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new emailtemplate.proxies.EmailTemplate(context, mendixObject); - } - - public static emailtemplate.proxies.EmailTemplate load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return emailtemplate.proxies.EmailTemplate.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//EmailTemplate.EmailTemplate" + xpathConstraint)) - result.add(emailtemplate.proxies.EmailTemplate.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of TemplateName - */ - public final java.lang.String getTemplateName() - { - return getTemplateName(getContext()); - } - - /** - * @param context - * @return value of TemplateName - */ - public final java.lang.String getTemplateName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.TemplateName.toString()); - } - - /** - * Set value of TemplateName - * @param templatename - */ - public final void setTemplateName(java.lang.String templatename) - { - setTemplateName(getContext(), templatename); - } - - /** - * Set value of TemplateName - * @param context - * @param templatename - */ - public final void setTemplateName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String templatename) - { - getMendixObject().setValue(context, MemberNames.TemplateName.toString(), templatename); - } - - /** - * @return value of To - */ - public final java.lang.String getTo() - { - return getTo(getContext()); - } - - /** - * @param context - * @return value of To - */ - public final java.lang.String getTo(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.To.toString()); - } - - /** - * Set value of To - * @param to - */ - public final void setTo(java.lang.String to) - { - setTo(getContext(), to); - } - - /** - * Set value of To - * @param context - * @param to - */ - public final void setTo(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String to) - { - getMendixObject().setValue(context, MemberNames.To.toString(), to); - } - - /** - * @return value of From - */ - public final java.lang.String getFrom() - { - return getFrom(getContext()); - } - - /** - * @param context - * @return value of From - */ - public final java.lang.String getFrom(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.From.toString()); - } - - /** - * Set value of From - * @param from - */ - public final void setFrom(java.lang.String from) - { - setFrom(getContext(), from); - } - - /** - * Set value of From - * @param context - * @param from - */ - public final void setFrom(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String from) - { - getMendixObject().setValue(context, MemberNames.From.toString(), from); - } - - /** - * @return value of FromDisplayName - */ - public final java.lang.String getFromDisplayName() - { - return getFromDisplayName(getContext()); - } - - /** - * @param context - * @return value of FromDisplayName - */ - public final java.lang.String getFromDisplayName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.FromDisplayName.toString()); - } - - /** - * Set value of FromDisplayName - * @param fromdisplayname - */ - public final void setFromDisplayName(java.lang.String fromdisplayname) - { - setFromDisplayName(getContext(), fromdisplayname); - } - - /** - * Set value of FromDisplayName - * @param context - * @param fromdisplayname - */ - public final void setFromDisplayName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String fromdisplayname) - { - getMendixObject().setValue(context, MemberNames.FromDisplayName.toString(), fromdisplayname); - } - - /** - * @return value of ReplyTo - */ - public final java.lang.String getReplyTo() - { - return getReplyTo(getContext()); - } - - /** - * @param context - * @return value of ReplyTo - */ - public final java.lang.String getReplyTo(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.ReplyTo.toString()); - } - - /** - * Set value of ReplyTo - * @param replyto - */ - public final void setReplyTo(java.lang.String replyto) - { - setReplyTo(getContext(), replyto); - } - - /** - * Set value of ReplyTo - * @param context - * @param replyto - */ - public final void setReplyTo(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String replyto) - { - getMendixObject().setValue(context, MemberNames.ReplyTo.toString(), replyto); - } - - /** - * @return value of CC - */ - public final java.lang.String getCC() - { - return getCC(getContext()); - } - - /** - * @param context - * @return value of CC - */ - public final java.lang.String getCC(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.CC.toString()); - } - - /** - * Set value of CC - * @param cc - */ - public final void setCC(java.lang.String cc) - { - setCC(getContext(), cc); - } - - /** - * Set value of CC - * @param context - * @param cc - */ - public final void setCC(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String cc) - { - getMendixObject().setValue(context, MemberNames.CC.toString(), cc); - } - - /** - * @return value of BCC - */ - public final java.lang.String getBCC() - { - return getBCC(getContext()); - } - - /** - * @param context - * @return value of BCC - */ - public final java.lang.String getBCC(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.BCC.toString()); - } - - /** - * Set value of BCC - * @param bcc - */ - public final void setBCC(java.lang.String bcc) - { - setBCC(getContext(), bcc); - } - - /** - * Set value of BCC - * @param context - * @param bcc - */ - public final void setBCC(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String bcc) - { - getMendixObject().setValue(context, MemberNames.BCC.toString(), bcc); - } - - /** - * @return value of Subject - */ - public final java.lang.String getSubject() - { - return getSubject(getContext()); - } - - /** - * @param context - * @return value of Subject - */ - public final java.lang.String getSubject(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Subject.toString()); - } - - /** - * Set value of Subject - * @param subject - */ - public final void setSubject(java.lang.String subject) - { - setSubject(getContext(), subject); - } - - /** - * Set value of Subject - * @param context - * @param subject - */ - public final void setSubject(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String subject) - { - getMendixObject().setValue(context, MemberNames.Subject.toString(), subject); - } - - /** - * @return value of HtmlBody - */ - public final java.lang.String getHtmlBody() - { - return getHtmlBody(getContext()); - } - - /** - * @param context - * @return value of HtmlBody - */ - public final java.lang.String getHtmlBody(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.HtmlBody.toString()); - } - - /** - * Set value of HtmlBody - * @param htmlbody - */ - public final void setHtmlBody(java.lang.String htmlbody) - { - setHtmlBody(getContext(), htmlbody); - } - - /** - * Set value of HtmlBody - * @param context - * @param htmlbody - */ - public final void setHtmlBody(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String htmlbody) - { - getMendixObject().setValue(context, MemberNames.HtmlBody.toString(), htmlbody); - } - - /** - * @return value of PlainBody - */ - public final java.lang.String getPlainBody() - { - return getPlainBody(getContext()); - } - - /** - * @param context - * @return value of PlainBody - */ - public final java.lang.String getPlainBody(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.PlainBody.toString()); - } - - /** - * Set value of PlainBody - * @param plainbody - */ - public final void setPlainBody(java.lang.String plainbody) - { - setPlainBody(getContext(), plainbody); - } - - /** - * Set value of PlainBody - * @param context - * @param plainbody - */ - public final void setPlainBody(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String plainbody) - { - getMendixObject().setValue(context, MemberNames.PlainBody.toString(), plainbody); - } - - /** - * @return value of CreationDate - */ - public final java.util.Date getCreationDate() - { - return getCreationDate(getContext()); - } - - /** - * @param context - * @return value of CreationDate - */ - public final java.util.Date getCreationDate(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.util.Date) getMendixObject().getValue(context, MemberNames.CreationDate.toString()); - } - - /** - * Set value of CreationDate - * @param creationdate - */ - public final void setCreationDate(java.util.Date creationdate) - { - setCreationDate(getContext(), creationdate); - } - - /** - * Set value of CreationDate - * @param context - * @param creationdate - */ - public final void setCreationDate(com.mendix.systemwideinterfaces.core.IContext context, java.util.Date creationdate) - { - getMendixObject().setValue(context, MemberNames.CreationDate.toString(), creationdate); - } - - /** - * @return value of UseOnlyPlainText - */ - public final java.lang.Boolean getUseOnlyPlainText() - { - return getUseOnlyPlainText(getContext()); - } - - /** - * @param context - * @return value of UseOnlyPlainText - */ - public final java.lang.Boolean getUseOnlyPlainText(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.UseOnlyPlainText.toString()); - } - - /** - * Set value of UseOnlyPlainText - * @param useonlyplaintext - */ - public final void setUseOnlyPlainText(java.lang.Boolean useonlyplaintext) - { - setUseOnlyPlainText(getContext(), useonlyplaintext); - } - - /** - * Set value of UseOnlyPlainText - * @param context - * @param useonlyplaintext - */ - public final void setUseOnlyPlainText(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean useonlyplaintext) - { - getMendixObject().setValue(context, MemberNames.UseOnlyPlainText.toString(), useonlyplaintext); - } - - /** - * @return value of EmailTemplate_MxObjectType - */ - public final mxmodelreflection.proxies.MxObjectType getEmailTemplate_MxObjectType() throws com.mendix.core.CoreException - { - return getEmailTemplate_MxObjectType(getContext()); - } - - /** - * @param context - * @return value of EmailTemplate_MxObjectType - */ - public final mxmodelreflection.proxies.MxObjectType getEmailTemplate_MxObjectType(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - mxmodelreflection.proxies.MxObjectType result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.EmailTemplate_MxObjectType.toString()); - if (identifier != null) - result = mxmodelreflection.proxies.MxObjectType.load(context, identifier); - return result; - } - - /** - * Set value of EmailTemplate_MxObjectType - * @param emailtemplate_mxobjecttype - */ - public final void setEmailTemplate_MxObjectType(mxmodelreflection.proxies.MxObjectType emailtemplate_mxobjecttype) - { - setEmailTemplate_MxObjectType(getContext(), emailtemplate_mxobjecttype); - } - - /** - * Set value of EmailTemplate_MxObjectType - * @param context - * @param emailtemplate_mxobjecttype - */ - public final void setEmailTemplate_MxObjectType(com.mendix.systemwideinterfaces.core.IContext context, mxmodelreflection.proxies.MxObjectType emailtemplate_mxobjecttype) - { - if (emailtemplate_mxobjecttype == null) - getMendixObject().setValue(context, MemberNames.EmailTemplate_MxObjectType.toString(), null); - else - getMendixObject().setValue(context, MemberNames.EmailTemplate_MxObjectType.toString(), emailtemplate_mxobjecttype.getMendixObject().getId()); - } - - /** - * @return value of EmailTemplate_Token - */ - public final java.util.List getEmailTemplate_Token() throws com.mendix.core.CoreException - { - return getEmailTemplate_Token(getContext()); - } - - /** - * @param context - * @return value of EmailTemplate_Token - */ - @SuppressWarnings("unchecked") - public final java.util.List getEmailTemplate_Token(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - Object valueObject = getMendixObject().getValue(context, MemberNames.EmailTemplate_Token.toString()); - if (valueObject == null) - return result; - for (com.mendix.systemwideinterfaces.core.IMendixObject mendixObject : com.mendix.core.Core.retrieveIdList(context, (java.util.List) valueObject)) - result.add(mxmodelreflection.proxies.Token.initialize(context, mendixObject)); - return result; - } - - /** - * Set value of EmailTemplate_Token - * @param emailtemplate_token - */ - public final void setEmailTemplate_Token(java.util.List emailtemplate_token) - { - setEmailTemplate_Token(getContext(), emailtemplate_token); - } - - /** - * Set value of EmailTemplate_Token - * @param context - * @param emailtemplate_token - */ - public final void setEmailTemplate_Token(com.mendix.systemwideinterfaces.core.IContext context, java.util.List emailtemplate_token) - { - java.util.List identifiers = new java.util.ArrayList(); - for (mxmodelreflection.proxies.Token proxyObject : emailtemplate_token) - identifiers.add(proxyObject.getMendixObject().getId()); - getMendixObject().setValue(context, MemberNames.EmailTemplate_Token.toString(), identifiers); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return emailTemplateMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final emailtemplate.proxies.EmailTemplate that = (emailtemplate.proxies.EmailTemplate) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "EmailTemplate.EmailTemplate"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/emailtemplate/proxies/Header.java b/javasource/emailtemplate/proxies/Header.java deleted file mode 100644 index 62dced2..0000000 --- a/javasource/emailtemplate/proxies/Header.java +++ /dev/null @@ -1,288 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package emailtemplate.proxies; - -public class Header -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject headerMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "EmailTemplate.Header"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - Name("Name"), - Value("Value"), - Header_Email("EmailTemplate.Header_Email"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public Header(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "EmailTemplate.Header")); - } - - protected Header(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject headerMendixObject) - { - if (headerMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("EmailTemplate.Header", headerMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a EmailTemplate.Header"); - - this.headerMendixObject = headerMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'Header.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static emailtemplate.proxies.Header initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return emailtemplate.proxies.Header.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static emailtemplate.proxies.Header initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new emailtemplate.proxies.Header(context, mendixObject); - } - - public static emailtemplate.proxies.Header load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return emailtemplate.proxies.Header.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//EmailTemplate.Header" + xpathConstraint)) - result.add(emailtemplate.proxies.Header.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of Name - */ - public final java.lang.String getName() - { - return getName(getContext()); - } - - /** - * @param context - * @return value of Name - */ - public final java.lang.String getName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Name.toString()); - } - - /** - * Set value of Name - * @param name - */ - public final void setName(java.lang.String name) - { - setName(getContext(), name); - } - - /** - * Set value of Name - * @param context - * @param name - */ - public final void setName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String name) - { - getMendixObject().setValue(context, MemberNames.Name.toString(), name); - } - - /** - * @return value of Value - */ - public final java.lang.String getValue() - { - return getValue(getContext()); - } - - /** - * @param context - * @return value of Value - */ - public final java.lang.String getValue(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Value.toString()); - } - - /** - * Set value of Value - * @param value - */ - public final void setValue(java.lang.String value) - { - setValue(getContext(), value); - } - - /** - * Set value of Value - * @param context - * @param value - */ - public final void setValue(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String value) - { - getMendixObject().setValue(context, MemberNames.Value.toString(), value); - } - - /** - * @return value of Header_Email - */ - public final emailtemplate.proxies.Email getHeader_Email() throws com.mendix.core.CoreException - { - return getHeader_Email(getContext()); - } - - /** - * @param context - * @return value of Header_Email - */ - public final emailtemplate.proxies.Email getHeader_Email(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - emailtemplate.proxies.Email result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.Header_Email.toString()); - if (identifier != null) - result = emailtemplate.proxies.Email.load(context, identifier); - return result; - } - - /** - * Set value of Header_Email - * @param header_email - */ - public final void setHeader_Email(emailtemplate.proxies.Email header_email) - { - setHeader_Email(getContext(), header_email); - } - - /** - * Set value of Header_Email - * @param context - * @param header_email - */ - public final void setHeader_Email(com.mendix.systemwideinterfaces.core.IContext context, emailtemplate.proxies.Email header_email) - { - if (header_email == null) - getMendixObject().setValue(context, MemberNames.Header_Email.toString(), null); - else - getMendixObject().setValue(context, MemberNames.Header_Email.toString(), header_email.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return headerMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final emailtemplate.proxies.Header that = (emailtemplate.proxies.Header) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "EmailTemplate.Header"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/emailtemplate/proxies/LogType.java b/javasource/emailtemplate/proxies/LogType.java deleted file mode 100644 index fee4314..0000000 --- a/javasource/emailtemplate/proxies/LogType.java +++ /dev/null @@ -1,33 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package emailtemplate.proxies; - -public enum LogType -{ - Message(new java.lang.String[][] { new java.lang.String[] { "en_US", "Message" }, new java.lang.String[] { "en_GB", "Message" }, new java.lang.String[] { "en_ZA", "Message" }, new java.lang.String[] { "nl_NL", "Bericht" } }), - Warning(new java.lang.String[][] { new java.lang.String[] { "en_US", "Warning" }, new java.lang.String[] { "en_GB", "Warning" }, new java.lang.String[] { "en_ZA", "Warning" }, new java.lang.String[] { "nl_NL", "Waarschuwing" } }), - Error(new java.lang.String[][] { new java.lang.String[] { "en_US", "Error" }, new java.lang.String[] { "en_GB", "Error" }, new java.lang.String[] { "en_ZA", "Error" }, new java.lang.String[] { "nl_NL", "Foutmelding" } }); - - private java.util.Map captions; - - private LogType(java.lang.String[][] captionStrings) - { - this.captions = new java.util.HashMap(); - for (java.lang.String[] captionString : captionStrings) - captions.put(captionString[0], captionString[1]); - } - - public java.lang.String getCaption(java.lang.String languageCode) - { - if (captions.containsKey(languageCode)) - return captions.get(languageCode); - return captions.get("en_US"); - } - - public java.lang.String getCaption() - { - return captions.get("en_US"); - } -} diff --git a/javasource/emailtemplate/proxies/ModelReflectionChecker.java b/javasource/emailtemplate/proxies/ModelReflectionChecker.java deleted file mode 100644 index 6221452..0000000 --- a/javasource/emailtemplate/proxies/ModelReflectionChecker.java +++ /dev/null @@ -1,243 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package emailtemplate.proxies; - -public class ModelReflectionChecker -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject modelReflectionCheckerMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "EmailTemplate.ModelReflectionChecker"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - ModelReflectionSynced("ModelReflectionSynced"), - ModelReflectionChecker_EmailTemplate("EmailTemplate.ModelReflectionChecker_EmailTemplate"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public ModelReflectionChecker(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "EmailTemplate.ModelReflectionChecker")); - } - - protected ModelReflectionChecker(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject modelReflectionCheckerMendixObject) - { - if (modelReflectionCheckerMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("EmailTemplate.ModelReflectionChecker", modelReflectionCheckerMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a EmailTemplate.ModelReflectionChecker"); - - this.modelReflectionCheckerMendixObject = modelReflectionCheckerMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'ModelReflectionChecker.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static emailtemplate.proxies.ModelReflectionChecker initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return emailtemplate.proxies.ModelReflectionChecker.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static emailtemplate.proxies.ModelReflectionChecker initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new emailtemplate.proxies.ModelReflectionChecker(context, mendixObject); - } - - public static emailtemplate.proxies.ModelReflectionChecker load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return emailtemplate.proxies.ModelReflectionChecker.initialize(context, mendixObject); - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of ModelReflectionSynced - */ - public final java.lang.Boolean getModelReflectionSynced() - { - return getModelReflectionSynced(getContext()); - } - - /** - * @param context - * @return value of ModelReflectionSynced - */ - public final java.lang.Boolean getModelReflectionSynced(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.ModelReflectionSynced.toString()); - } - - /** - * Set value of ModelReflectionSynced - * @param modelreflectionsynced - */ - public final void setModelReflectionSynced(java.lang.Boolean modelreflectionsynced) - { - setModelReflectionSynced(getContext(), modelreflectionsynced); - } - - /** - * Set value of ModelReflectionSynced - * @param context - * @param modelreflectionsynced - */ - public final void setModelReflectionSynced(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean modelreflectionsynced) - { - getMendixObject().setValue(context, MemberNames.ModelReflectionSynced.toString(), modelreflectionsynced); - } - - /** - * @return value of ModelReflectionChecker_EmailTemplate - */ - public final emailtemplate.proxies.EmailTemplate getModelReflectionChecker_EmailTemplate() throws com.mendix.core.CoreException - { - return getModelReflectionChecker_EmailTemplate(getContext()); - } - - /** - * @param context - * @return value of ModelReflectionChecker_EmailTemplate - */ - public final emailtemplate.proxies.EmailTemplate getModelReflectionChecker_EmailTemplate(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - emailtemplate.proxies.EmailTemplate result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.ModelReflectionChecker_EmailTemplate.toString()); - if (identifier != null) - result = emailtemplate.proxies.EmailTemplate.load(context, identifier); - return result; - } - - /** - * Set value of ModelReflectionChecker_EmailTemplate - * @param modelreflectionchecker_emailtemplate - */ - public final void setModelReflectionChecker_EmailTemplate(emailtemplate.proxies.EmailTemplate modelreflectionchecker_emailtemplate) - { - setModelReflectionChecker_EmailTemplate(getContext(), modelreflectionchecker_emailtemplate); - } - - /** - * Set value of ModelReflectionChecker_EmailTemplate - * @param context - * @param modelreflectionchecker_emailtemplate - */ - public final void setModelReflectionChecker_EmailTemplate(com.mendix.systemwideinterfaces.core.IContext context, emailtemplate.proxies.EmailTemplate modelreflectionchecker_emailtemplate) - { - if (modelreflectionchecker_emailtemplate == null) - getMendixObject().setValue(context, MemberNames.ModelReflectionChecker_EmailTemplate.toString(), null); - else - getMendixObject().setValue(context, MemberNames.ModelReflectionChecker_EmailTemplate.toString(), modelreflectionchecker_emailtemplate.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return modelReflectionCheckerMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final emailtemplate.proxies.ModelReflectionChecker that = (emailtemplate.proxies.ModelReflectionChecker) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "EmailTemplate.ModelReflectionChecker"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/emailtemplate/proxies/ModuleSetup.java b/javasource/emailtemplate/proxies/ModuleSetup.java deleted file mode 100644 index f58b919..0000000 --- a/javasource/emailtemplate/proxies/ModuleSetup.java +++ /dev/null @@ -1,325 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package emailtemplate.proxies; - -public class ModuleSetup -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject moduleSetupMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "EmailTemplate.ModuleSetup"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - Completed("Completed"), - NrOfTemplates("NrOfTemplates"), - SentSuccessful("SentSuccessful"), - ModuleSetup_EmailSettings("EmailTemplate.ModuleSetup_EmailSettings"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public ModuleSetup(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "EmailTemplate.ModuleSetup")); - } - - protected ModuleSetup(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject moduleSetupMendixObject) - { - if (moduleSetupMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("EmailTemplate.ModuleSetup", moduleSetupMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a EmailTemplate.ModuleSetup"); - - this.moduleSetupMendixObject = moduleSetupMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'ModuleSetup.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static emailtemplate.proxies.ModuleSetup initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return emailtemplate.proxies.ModuleSetup.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static emailtemplate.proxies.ModuleSetup initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new emailtemplate.proxies.ModuleSetup(context, mendixObject); - } - - public static emailtemplate.proxies.ModuleSetup load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return emailtemplate.proxies.ModuleSetup.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//EmailTemplate.ModuleSetup" + xpathConstraint)) - result.add(emailtemplate.proxies.ModuleSetup.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of Completed - */ - public final java.lang.Boolean getCompleted() - { - return getCompleted(getContext()); - } - - /** - * @param context - * @return value of Completed - */ - public final java.lang.Boolean getCompleted(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.Completed.toString()); - } - - /** - * Set value of Completed - * @param completed - */ - public final void setCompleted(java.lang.Boolean completed) - { - setCompleted(getContext(), completed); - } - - /** - * Set value of Completed - * @param context - * @param completed - */ - public final void setCompleted(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean completed) - { - getMendixObject().setValue(context, MemberNames.Completed.toString(), completed); - } - - /** - * @return value of NrOfTemplates - */ - public final java.lang.Integer getNrOfTemplates() - { - return getNrOfTemplates(getContext()); - } - - /** - * @param context - * @return value of NrOfTemplates - */ - public final java.lang.Integer getNrOfTemplates(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Integer) getMendixObject().getValue(context, MemberNames.NrOfTemplates.toString()); - } - - /** - * Set value of NrOfTemplates - * @param nroftemplates - */ - public final void setNrOfTemplates(java.lang.Integer nroftemplates) - { - setNrOfTemplates(getContext(), nroftemplates); - } - - /** - * Set value of NrOfTemplates - * @param context - * @param nroftemplates - */ - public final void setNrOfTemplates(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Integer nroftemplates) - { - getMendixObject().setValue(context, MemberNames.NrOfTemplates.toString(), nroftemplates); - } - - /** - * @return value of SentSuccessful - */ - public final java.lang.Boolean getSentSuccessful() - { - return getSentSuccessful(getContext()); - } - - /** - * @param context - * @return value of SentSuccessful - */ - public final java.lang.Boolean getSentSuccessful(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.SentSuccessful.toString()); - } - - /** - * Set value of SentSuccessful - * @param sentsuccessful - */ - public final void setSentSuccessful(java.lang.Boolean sentsuccessful) - { - setSentSuccessful(getContext(), sentsuccessful); - } - - /** - * Set value of SentSuccessful - * @param context - * @param sentsuccessful - */ - public final void setSentSuccessful(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean sentsuccessful) - { - getMendixObject().setValue(context, MemberNames.SentSuccessful.toString(), sentsuccessful); - } - - /** - * @return value of ModuleSetup_EmailSettings - */ - public final emailtemplate.proxies.EmailSettings getModuleSetup_EmailSettings() throws com.mendix.core.CoreException - { - return getModuleSetup_EmailSettings(getContext()); - } - - /** - * @param context - * @return value of ModuleSetup_EmailSettings - */ - public final emailtemplate.proxies.EmailSettings getModuleSetup_EmailSettings(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - emailtemplate.proxies.EmailSettings result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.ModuleSetup_EmailSettings.toString()); - if (identifier != null) - result = emailtemplate.proxies.EmailSettings.load(context, identifier); - return result; - } - - /** - * Set value of ModuleSetup_EmailSettings - * @param modulesetup_emailsettings - */ - public final void setModuleSetup_EmailSettings(emailtemplate.proxies.EmailSettings modulesetup_emailsettings) - { - setModuleSetup_EmailSettings(getContext(), modulesetup_emailsettings); - } - - /** - * Set value of ModuleSetup_EmailSettings - * @param context - * @param modulesetup_emailsettings - */ - public final void setModuleSetup_EmailSettings(com.mendix.systemwideinterfaces.core.IContext context, emailtemplate.proxies.EmailSettings modulesetup_emailsettings) - { - if (modulesetup_emailsettings == null) - getMendixObject().setValue(context, MemberNames.ModuleSetup_EmailSettings.toString(), null); - else - getMendixObject().setValue(context, MemberNames.ModuleSetup_EmailSettings.toString(), modulesetup_emailsettings.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return moduleSetupMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final emailtemplate.proxies.ModuleSetup that = (emailtemplate.proxies.ModuleSetup) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "EmailTemplate.ModuleSetup"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/emailtemplate/proxies/OAuthErrors.java b/javasource/emailtemplate/proxies/OAuthErrors.java deleted file mode 100644 index 8142f0d..0000000 --- a/javasource/emailtemplate/proxies/OAuthErrors.java +++ /dev/null @@ -1,473 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package emailtemplate.proxies; - -public class OAuthErrors -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject oAuthErrorsMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "EmailTemplate.OAuthErrors"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - HTTPStatusCode("HTTPStatusCode"), - ErrorType("ErrorType"), - Message("Message"), - TraceID("TraceID"), - CorrelationID("CorrelationID"), - Timestamp("Timestamp"), - ErrorCodes("ErrorCodes"), - OAuthErrors_Session("EmailTemplate.OAuthErrors_Session"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public OAuthErrors(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "EmailTemplate.OAuthErrors")); - } - - protected OAuthErrors(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject oAuthErrorsMendixObject) - { - if (oAuthErrorsMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("EmailTemplate.OAuthErrors", oAuthErrorsMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a EmailTemplate.OAuthErrors"); - - this.oAuthErrorsMendixObject = oAuthErrorsMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'OAuthErrors.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static emailtemplate.proxies.OAuthErrors initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return emailtemplate.proxies.OAuthErrors.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static emailtemplate.proxies.OAuthErrors initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new emailtemplate.proxies.OAuthErrors(context, mendixObject); - } - - public static emailtemplate.proxies.OAuthErrors load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return emailtemplate.proxies.OAuthErrors.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//EmailTemplate.OAuthErrors" + xpathConstraint)) - result.add(emailtemplate.proxies.OAuthErrors.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of HTTPStatusCode - */ - public final java.lang.Integer getHTTPStatusCode() - { - return getHTTPStatusCode(getContext()); - } - - /** - * @param context - * @return value of HTTPStatusCode - */ - public final java.lang.Integer getHTTPStatusCode(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Integer) getMendixObject().getValue(context, MemberNames.HTTPStatusCode.toString()); - } - - /** - * Set value of HTTPStatusCode - * @param httpstatuscode - */ - public final void setHTTPStatusCode(java.lang.Integer httpstatuscode) - { - setHTTPStatusCode(getContext(), httpstatuscode); - } - - /** - * Set value of HTTPStatusCode - * @param context - * @param httpstatuscode - */ - public final void setHTTPStatusCode(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Integer httpstatuscode) - { - getMendixObject().setValue(context, MemberNames.HTTPStatusCode.toString(), httpstatuscode); - } - - /** - * @return value of ErrorType - */ - public final java.lang.String getErrorType() - { - return getErrorType(getContext()); - } - - /** - * @param context - * @return value of ErrorType - */ - public final java.lang.String getErrorType(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.ErrorType.toString()); - } - - /** - * Set value of ErrorType - * @param errortype - */ - public final void setErrorType(java.lang.String errortype) - { - setErrorType(getContext(), errortype); - } - - /** - * Set value of ErrorType - * @param context - * @param errortype - */ - public final void setErrorType(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String errortype) - { - getMendixObject().setValue(context, MemberNames.ErrorType.toString(), errortype); - } - - /** - * @return value of Message - */ - public final java.lang.String getMessage() - { - return getMessage(getContext()); - } - - /** - * @param context - * @return value of Message - */ - public final java.lang.String getMessage(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Message.toString()); - } - - /** - * Set value of Message - * @param message - */ - public final void setMessage(java.lang.String message) - { - setMessage(getContext(), message); - } - - /** - * Set value of Message - * @param context - * @param message - */ - public final void setMessage(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String message) - { - getMendixObject().setValue(context, MemberNames.Message.toString(), message); - } - - /** - * @return value of TraceID - */ - public final java.lang.String getTraceID() - { - return getTraceID(getContext()); - } - - /** - * @param context - * @return value of TraceID - */ - public final java.lang.String getTraceID(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.TraceID.toString()); - } - - /** - * Set value of TraceID - * @param traceid - */ - public final void setTraceID(java.lang.String traceid) - { - setTraceID(getContext(), traceid); - } - - /** - * Set value of TraceID - * @param context - * @param traceid - */ - public final void setTraceID(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String traceid) - { - getMendixObject().setValue(context, MemberNames.TraceID.toString(), traceid); - } - - /** - * @return value of CorrelationID - */ - public final java.lang.String getCorrelationID() - { - return getCorrelationID(getContext()); - } - - /** - * @param context - * @return value of CorrelationID - */ - public final java.lang.String getCorrelationID(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.CorrelationID.toString()); - } - - /** - * Set value of CorrelationID - * @param correlationid - */ - public final void setCorrelationID(java.lang.String correlationid) - { - setCorrelationID(getContext(), correlationid); - } - - /** - * Set value of CorrelationID - * @param context - * @param correlationid - */ - public final void setCorrelationID(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String correlationid) - { - getMendixObject().setValue(context, MemberNames.CorrelationID.toString(), correlationid); - } - - /** - * @return value of Timestamp - */ - public final java.lang.String getTimestamp() - { - return getTimestamp(getContext()); - } - - /** - * @param context - * @return value of Timestamp - */ - public final java.lang.String getTimestamp(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Timestamp.toString()); - } - - /** - * Set value of Timestamp - * @param timestamp - */ - public final void setTimestamp(java.lang.String timestamp) - { - setTimestamp(getContext(), timestamp); - } - - /** - * Set value of Timestamp - * @param context - * @param timestamp - */ - public final void setTimestamp(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String timestamp) - { - getMendixObject().setValue(context, MemberNames.Timestamp.toString(), timestamp); - } - - /** - * @return value of ErrorCodes - */ - public final java.lang.String getErrorCodes() - { - return getErrorCodes(getContext()); - } - - /** - * @param context - * @return value of ErrorCodes - */ - public final java.lang.String getErrorCodes(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.ErrorCodes.toString()); - } - - /** - * Set value of ErrorCodes - * @param errorcodes - */ - public final void setErrorCodes(java.lang.String errorcodes) - { - setErrorCodes(getContext(), errorcodes); - } - - /** - * Set value of ErrorCodes - * @param context - * @param errorcodes - */ - public final void setErrorCodes(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String errorcodes) - { - getMendixObject().setValue(context, MemberNames.ErrorCodes.toString(), errorcodes); - } - - /** - * @return value of OAuthErrors_Session - */ - public final system.proxies.Session getOAuthErrors_Session() throws com.mendix.core.CoreException - { - return getOAuthErrors_Session(getContext()); - } - - /** - * @param context - * @return value of OAuthErrors_Session - */ - public final system.proxies.Session getOAuthErrors_Session(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - system.proxies.Session result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.OAuthErrors_Session.toString()); - if (identifier != null) - result = system.proxies.Session.load(context, identifier); - return result; - } - - /** - * Set value of OAuthErrors_Session - * @param oautherrors_session - */ - public final void setOAuthErrors_Session(system.proxies.Session oautherrors_session) - { - setOAuthErrors_Session(getContext(), oautherrors_session); - } - - /** - * Set value of OAuthErrors_Session - * @param context - * @param oautherrors_session - */ - public final void setOAuthErrors_Session(com.mendix.systemwideinterfaces.core.IContext context, system.proxies.Session oautherrors_session) - { - if (oautherrors_session == null) - getMendixObject().setValue(context, MemberNames.OAuthErrors_Session.toString(), null); - else - getMendixObject().setValue(context, MemberNames.OAuthErrors_Session.toString(), oautherrors_session.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return oAuthErrorsMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final emailtemplate.proxies.OAuthErrors that = (emailtemplate.proxies.OAuthErrors) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "EmailTemplate.OAuthErrors"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/emailtemplate/proxies/OAuthPayload.java b/javasource/emailtemplate/proxies/OAuthPayload.java deleted file mode 100644 index 1618ec2..0000000 --- a/javasource/emailtemplate/proxies/OAuthPayload.java +++ /dev/null @@ -1,407 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package emailtemplate.proxies; - -public class OAuthPayload -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject oAuthPayloadMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "EmailTemplate.OAuthPayload"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - payload("payload"), - emailAddress("emailAddress"), - provider("provider"), - isReAuthPayload("isReAuthPayload"), - reauthAccountId("reauthAccountId"), - OAuthPayload_Session("EmailTemplate.OAuthPayload_Session"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public OAuthPayload(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "EmailTemplate.OAuthPayload")); - } - - protected OAuthPayload(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject oAuthPayloadMendixObject) - { - if (oAuthPayloadMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("EmailTemplate.OAuthPayload", oAuthPayloadMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a EmailTemplate.OAuthPayload"); - - this.oAuthPayloadMendixObject = oAuthPayloadMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'OAuthPayload.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static emailtemplate.proxies.OAuthPayload initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return emailtemplate.proxies.OAuthPayload.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static emailtemplate.proxies.OAuthPayload initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new emailtemplate.proxies.OAuthPayload(context, mendixObject); - } - - public static emailtemplate.proxies.OAuthPayload load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return emailtemplate.proxies.OAuthPayload.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//EmailTemplate.OAuthPayload" + xpathConstraint)) - result.add(emailtemplate.proxies.OAuthPayload.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of payload - */ - public final java.lang.String getpayload() - { - return getpayload(getContext()); - } - - /** - * @param context - * @return value of payload - */ - public final java.lang.String getpayload(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.payload.toString()); - } - - /** - * Set value of payload - * @param payload - */ - public final void setpayload(java.lang.String payload) - { - setpayload(getContext(), payload); - } - - /** - * Set value of payload - * @param context - * @param payload - */ - public final void setpayload(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String payload) - { - getMendixObject().setValue(context, MemberNames.payload.toString(), payload); - } - - /** - * @return value of emailAddress - */ - public final java.lang.String getemailAddress() - { - return getemailAddress(getContext()); - } - - /** - * @param context - * @return value of emailAddress - */ - public final java.lang.String getemailAddress(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.emailAddress.toString()); - } - - /** - * Set value of emailAddress - * @param emailaddress - */ - public final void setemailAddress(java.lang.String emailaddress) - { - setemailAddress(getContext(), emailaddress); - } - - /** - * Set value of emailAddress - * @param context - * @param emailaddress - */ - public final void setemailAddress(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String emailaddress) - { - getMendixObject().setValue(context, MemberNames.emailAddress.toString(), emailaddress); - } - - /** - * Set value of provider - * @param provider - */ - public final emailtemplate.proxies.SupportedOAuthProvider getprovider() - { - return getprovider(getContext()); - } - - /** - * @param context - * @return value of provider - */ - public final emailtemplate.proxies.SupportedOAuthProvider getprovider(com.mendix.systemwideinterfaces.core.IContext context) - { - Object obj = getMendixObject().getValue(context, MemberNames.provider.toString()); - if (obj == null) - return null; - - return emailtemplate.proxies.SupportedOAuthProvider.valueOf((java.lang.String) obj); - } - - /** - * Set value of provider - * @param provider - */ - public final void setprovider(emailtemplate.proxies.SupportedOAuthProvider provider) - { - setprovider(getContext(), provider); - } - - /** - * Set value of provider - * @param context - * @param provider - */ - public final void setprovider(com.mendix.systemwideinterfaces.core.IContext context, emailtemplate.proxies.SupportedOAuthProvider provider) - { - if (provider != null) - getMendixObject().setValue(context, MemberNames.provider.toString(), provider.toString()); - else - getMendixObject().setValue(context, MemberNames.provider.toString(), null); - } - - /** - * @return value of isReAuthPayload - */ - public final java.lang.Boolean getisReAuthPayload() - { - return getisReAuthPayload(getContext()); - } - - /** - * @param context - * @return value of isReAuthPayload - */ - public final java.lang.Boolean getisReAuthPayload(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.isReAuthPayload.toString()); - } - - /** - * Set value of isReAuthPayload - * @param isreauthpayload - */ - public final void setisReAuthPayload(java.lang.Boolean isreauthpayload) - { - setisReAuthPayload(getContext(), isreauthpayload); - } - - /** - * Set value of isReAuthPayload - * @param context - * @param isreauthpayload - */ - public final void setisReAuthPayload(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean isreauthpayload) - { - getMendixObject().setValue(context, MemberNames.isReAuthPayload.toString(), isreauthpayload); - } - - /** - * @return value of reauthAccountId - */ - public final java.lang.String getreauthAccountId() - { - return getreauthAccountId(getContext()); - } - - /** - * @param context - * @return value of reauthAccountId - */ - public final java.lang.String getreauthAccountId(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.reauthAccountId.toString()); - } - - /** - * Set value of reauthAccountId - * @param reauthaccountid - */ - public final void setreauthAccountId(java.lang.String reauthaccountid) - { - setreauthAccountId(getContext(), reauthaccountid); - } - - /** - * Set value of reauthAccountId - * @param context - * @param reauthaccountid - */ - public final void setreauthAccountId(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String reauthaccountid) - { - getMendixObject().setValue(context, MemberNames.reauthAccountId.toString(), reauthaccountid); - } - - /** - * @return value of OAuthPayload_Session - */ - public final system.proxies.Session getOAuthPayload_Session() throws com.mendix.core.CoreException - { - return getOAuthPayload_Session(getContext()); - } - - /** - * @param context - * @return value of OAuthPayload_Session - */ - public final system.proxies.Session getOAuthPayload_Session(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - system.proxies.Session result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.OAuthPayload_Session.toString()); - if (identifier != null) - result = system.proxies.Session.load(context, identifier); - return result; - } - - /** - * Set value of OAuthPayload_Session - * @param oauthpayload_session - */ - public final void setOAuthPayload_Session(system.proxies.Session oauthpayload_session) - { - setOAuthPayload_Session(getContext(), oauthpayload_session); - } - - /** - * Set value of OAuthPayload_Session - * @param context - * @param oauthpayload_session - */ - public final void setOAuthPayload_Session(com.mendix.systemwideinterfaces.core.IContext context, system.proxies.Session oauthpayload_session) - { - if (oauthpayload_session == null) - getMendixObject().setValue(context, MemberNames.OAuthPayload_Session.toString(), null); - else - getMendixObject().setValue(context, MemberNames.OAuthPayload_Session.toString(), oauthpayload_session.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return oAuthPayloadMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final emailtemplate.proxies.OAuthPayload that = (emailtemplate.proxies.OAuthPayload) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "EmailTemplate.OAuthPayload"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/emailtemplate/proxies/OAuthProviderDetails.java b/javasource/emailtemplate/proxies/OAuthProviderDetails.java deleted file mode 100644 index 9b6fa9b..0000000 --- a/javasource/emailtemplate/proxies/OAuthProviderDetails.java +++ /dev/null @@ -1,326 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package emailtemplate.proxies; - -public class OAuthProviderDetails -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject oAuthProviderDetailsMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "EmailTemplate.OAuthProviderDetails"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - Provider("Provider"), - ClientID("ClientID"), - ClientSecret("ClientSecret"), - TenantID("TenantID"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public OAuthProviderDetails(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "EmailTemplate.OAuthProviderDetails")); - } - - protected OAuthProviderDetails(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject oAuthProviderDetailsMendixObject) - { - if (oAuthProviderDetailsMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("EmailTemplate.OAuthProviderDetails", oAuthProviderDetailsMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a EmailTemplate.OAuthProviderDetails"); - - this.oAuthProviderDetailsMendixObject = oAuthProviderDetailsMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'OAuthProviderDetails.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static emailtemplate.proxies.OAuthProviderDetails initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return emailtemplate.proxies.OAuthProviderDetails.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static emailtemplate.proxies.OAuthProviderDetails initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new emailtemplate.proxies.OAuthProviderDetails(context, mendixObject); - } - - public static emailtemplate.proxies.OAuthProviderDetails load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return emailtemplate.proxies.OAuthProviderDetails.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//EmailTemplate.OAuthProviderDetails" + xpathConstraint)) - result.add(emailtemplate.proxies.OAuthProviderDetails.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * Set value of Provider - * @param provider - */ - public final emailtemplate.proxies.SupportedOAuthProvider getProvider() - { - return getProvider(getContext()); - } - - /** - * @param context - * @return value of Provider - */ - public final emailtemplate.proxies.SupportedOAuthProvider getProvider(com.mendix.systemwideinterfaces.core.IContext context) - { - Object obj = getMendixObject().getValue(context, MemberNames.Provider.toString()); - if (obj == null) - return null; - - return emailtemplate.proxies.SupportedOAuthProvider.valueOf((java.lang.String) obj); - } - - /** - * Set value of Provider - * @param provider - */ - public final void setProvider(emailtemplate.proxies.SupportedOAuthProvider provider) - { - setProvider(getContext(), provider); - } - - /** - * Set value of Provider - * @param context - * @param provider - */ - public final void setProvider(com.mendix.systemwideinterfaces.core.IContext context, emailtemplate.proxies.SupportedOAuthProvider provider) - { - if (provider != null) - getMendixObject().setValue(context, MemberNames.Provider.toString(), provider.toString()); - else - getMendixObject().setValue(context, MemberNames.Provider.toString(), null); - } - - /** - * @return value of ClientID - */ - public final java.lang.String getClientID() - { - return getClientID(getContext()); - } - - /** - * @param context - * @return value of ClientID - */ - public final java.lang.String getClientID(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.ClientID.toString()); - } - - /** - * Set value of ClientID - * @param clientid - */ - public final void setClientID(java.lang.String clientid) - { - setClientID(getContext(), clientid); - } - - /** - * Set value of ClientID - * @param context - * @param clientid - */ - public final void setClientID(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String clientid) - { - getMendixObject().setValue(context, MemberNames.ClientID.toString(), clientid); - } - - /** - * @return value of ClientSecret - */ - public final java.lang.String getClientSecret() - { - return getClientSecret(getContext()); - } - - /** - * @param context - * @return value of ClientSecret - */ - public final java.lang.String getClientSecret(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.ClientSecret.toString()); - } - - /** - * Set value of ClientSecret - * @param clientsecret - */ - public final void setClientSecret(java.lang.String clientsecret) - { - setClientSecret(getContext(), clientsecret); - } - - /** - * Set value of ClientSecret - * @param context - * @param clientsecret - */ - public final void setClientSecret(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String clientsecret) - { - getMendixObject().setValue(context, MemberNames.ClientSecret.toString(), clientsecret); - } - - /** - * @return value of TenantID - */ - public final java.lang.String getTenantID() - { - return getTenantID(getContext()); - } - - /** - * @param context - * @return value of TenantID - */ - public final java.lang.String getTenantID(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.TenantID.toString()); - } - - /** - * Set value of TenantID - * @param tenantid - */ - public final void setTenantID(java.lang.String tenantid) - { - setTenantID(getContext(), tenantid); - } - - /** - * Set value of TenantID - * @param context - * @param tenantid - */ - public final void setTenantID(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String tenantid) - { - getMendixObject().setValue(context, MemberNames.TenantID.toString(), tenantid); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return oAuthProviderDetailsMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final emailtemplate.proxies.OAuthProviderDetails that = (emailtemplate.proxies.OAuthProviderDetails) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "EmailTemplate.OAuthProviderDetails"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/emailtemplate/proxies/PrivateConstants.java b/javasource/emailtemplate/proxies/PrivateConstants.java deleted file mode 100644 index f3962dc..0000000 --- a/javasource/emailtemplate/proxies/PrivateConstants.java +++ /dev/null @@ -1,31 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package emailtemplate.proxies; - -public enum PrivateConstants -{ - regex(new java.lang.String[][] { new java.lang.String[] { "en_US", "^[^\\s\\@,]+?@([a-zA-Z0-9-]+\\.)+?[a-zA-Z]{2,}$" } }); - - private java.util.Map captions; - - private PrivateConstants(java.lang.String[][] captionStrings) - { - this.captions = new java.util.HashMap(); - for (java.lang.String[] captionString : captionStrings) - captions.put(captionString[0], captionString[1]); - } - - public java.lang.String getCaption(java.lang.String languageCode) - { - if (captions.containsKey(languageCode)) - return captions.get(languageCode); - return captions.get("en_US"); - } - - public java.lang.String getCaption() - { - return captions.get("en_US"); - } -} diff --git a/javasource/emailtemplate/proxies/Status.java b/javasource/emailtemplate/proxies/Status.java deleted file mode 100644 index 1a9a6c0..0000000 --- a/javasource/emailtemplate/proxies/Status.java +++ /dev/null @@ -1,34 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package emailtemplate.proxies; - -public enum Status -{ - QUEUED(new java.lang.String[][] { new java.lang.String[] { "en_US", "Queued" }, new java.lang.String[] { "en_GB", "Queued" }, new java.lang.String[] { "en_ZA", "Queued" }, new java.lang.String[] { "nl_NL", "In wachtrij" } }), - SENT(new java.lang.String[][] { new java.lang.String[] { "en_US", "Sent" }, new java.lang.String[] { "en_GB", "Sent" }, new java.lang.String[] { "en_ZA", "Sent" }, new java.lang.String[] { "nl_NL", "Verzonden" } }), - FAILED(new java.lang.String[][] { new java.lang.String[] { "en_US", "Failed" }, new java.lang.String[] { "en_GB", "Failed" }, new java.lang.String[] { "en_ZA", "Failed" }, new java.lang.String[] { "nl_NL", "Mislukt" } }), - ERROR(new java.lang.String[][] { new java.lang.String[] { "en_US", "Error" }, new java.lang.String[] { "en_GB", "Error" }, new java.lang.String[] { "en_ZA", "Error" }, new java.lang.String[] { "nl_NL", "Foutmelding" } }); - - private java.util.Map captions; - - private Status(java.lang.String[][] captionStrings) - { - this.captions = new java.util.HashMap(); - for (java.lang.String[] captionString : captionStrings) - captions.put(captionString[0], captionString[1]); - } - - public java.lang.String getCaption(java.lang.String languageCode) - { - if (captions.containsKey(languageCode)) - return captions.get(languageCode); - return captions.get("en_US"); - } - - public java.lang.String getCaption() - { - return captions.get("en_US"); - } -} diff --git a/javasource/emailtemplate/proxies/SupportedOAuthProvider.java b/javasource/emailtemplate/proxies/SupportedOAuthProvider.java deleted file mode 100644 index 415403b..0000000 --- a/javasource/emailtemplate/proxies/SupportedOAuthProvider.java +++ /dev/null @@ -1,32 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package emailtemplate.proxies; - -public enum SupportedOAuthProvider -{ - NONE(new java.lang.String[][] { new java.lang.String[] { "en_US", "none" } }), - AZURE(new java.lang.String[][] { new java.lang.String[] { "en_US", "azure" } }); - - private java.util.Map captions; - - private SupportedOAuthProvider(java.lang.String[][] captionStrings) - { - this.captions = new java.util.HashMap(); - for (java.lang.String[] captionString : captionStrings) - captions.put(captionString[0], captionString[1]); - } - - public java.lang.String getCaption(java.lang.String languageCode) - { - if (captions.containsKey(languageCode)) - return captions.get(languageCode); - return captions.get("en_US"); - } - - public java.lang.String getCaption() - { - return captions.get("en_US"); - } -} diff --git a/javasource/emailtemplate/proxies/TestMessage.java b/javasource/emailtemplate/proxies/TestMessage.java deleted file mode 100644 index 07dd1a3..0000000 --- a/javasource/emailtemplate/proxies/TestMessage.java +++ /dev/null @@ -1,517 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package emailtemplate.proxies; - -public class TestMessage -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject testMessageMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "EmailTemplate.TestMessage"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - From("From"), - To("To"), - Status("Status"), - Result("Result"), - Stacktrace("Stacktrace"), - ReplyTo("ReplyTo"), - PersistEmail("PersistEmail"), - TestMessage_EmailSettings("EmailTemplate.TestMessage_EmailSettings"), - TestMessage_ModuleSetup("EmailTemplate.TestMessage_ModuleSetup"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public TestMessage(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "EmailTemplate.TestMessage")); - } - - protected TestMessage(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject testMessageMendixObject) - { - if (testMessageMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("EmailTemplate.TestMessage", testMessageMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a EmailTemplate.TestMessage"); - - this.testMessageMendixObject = testMessageMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'TestMessage.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static emailtemplate.proxies.TestMessage initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return emailtemplate.proxies.TestMessage.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static emailtemplate.proxies.TestMessage initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new emailtemplate.proxies.TestMessage(context, mendixObject); - } - - public static emailtemplate.proxies.TestMessage load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return emailtemplate.proxies.TestMessage.initialize(context, mendixObject); - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of From - */ - public final java.lang.String getFrom() - { - return getFrom(getContext()); - } - - /** - * @param context - * @return value of From - */ - public final java.lang.String getFrom(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.From.toString()); - } - - /** - * Set value of From - * @param from - */ - public final void setFrom(java.lang.String from) - { - setFrom(getContext(), from); - } - - /** - * Set value of From - * @param context - * @param from - */ - public final void setFrom(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String from) - { - getMendixObject().setValue(context, MemberNames.From.toString(), from); - } - - /** - * @return value of To - */ - public final java.lang.String getTo() - { - return getTo(getContext()); - } - - /** - * @param context - * @return value of To - */ - public final java.lang.String getTo(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.To.toString()); - } - - /** - * Set value of To - * @param to - */ - public final void setTo(java.lang.String to) - { - setTo(getContext(), to); - } - - /** - * Set value of To - * @param context - * @param to - */ - public final void setTo(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String to) - { - getMendixObject().setValue(context, MemberNames.To.toString(), to); - } - - /** - * Set value of Status - * @param status - */ - public final emailtemplate.proxies.Status getStatus() - { - return getStatus(getContext()); - } - - /** - * @param context - * @return value of Status - */ - public final emailtemplate.proxies.Status getStatus(com.mendix.systemwideinterfaces.core.IContext context) - { - Object obj = getMendixObject().getValue(context, MemberNames.Status.toString()); - if (obj == null) - return null; - - return emailtemplate.proxies.Status.valueOf((java.lang.String) obj); - } - - /** - * Set value of Status - * @param status - */ - public final void setStatus(emailtemplate.proxies.Status status) - { - setStatus(getContext(), status); - } - - /** - * Set value of Status - * @param context - * @param status - */ - public final void setStatus(com.mendix.systemwideinterfaces.core.IContext context, emailtemplate.proxies.Status status) - { - if (status != null) - getMendixObject().setValue(context, MemberNames.Status.toString(), status.toString()); - else - getMendixObject().setValue(context, MemberNames.Status.toString(), null); - } - - /** - * @return value of Result - */ - public final java.lang.String getResult() - { - return getResult(getContext()); - } - - /** - * @param context - * @return value of Result - */ - public final java.lang.String getResult(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Result.toString()); - } - - /** - * Set value of Result - * @param result - */ - public final void setResult(java.lang.String result) - { - setResult(getContext(), result); - } - - /** - * Set value of Result - * @param context - * @param result - */ - public final void setResult(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String result) - { - getMendixObject().setValue(context, MemberNames.Result.toString(), result); - } - - /** - * @return value of Stacktrace - */ - public final java.lang.String getStacktrace() - { - return getStacktrace(getContext()); - } - - /** - * @param context - * @return value of Stacktrace - */ - public final java.lang.String getStacktrace(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Stacktrace.toString()); - } - - /** - * Set value of Stacktrace - * @param stacktrace - */ - public final void setStacktrace(java.lang.String stacktrace) - { - setStacktrace(getContext(), stacktrace); - } - - /** - * Set value of Stacktrace - * @param context - * @param stacktrace - */ - public final void setStacktrace(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String stacktrace) - { - getMendixObject().setValue(context, MemberNames.Stacktrace.toString(), stacktrace); - } - - /** - * @return value of ReplyTo - */ - public final java.lang.String getReplyTo() - { - return getReplyTo(getContext()); - } - - /** - * @param context - * @return value of ReplyTo - */ - public final java.lang.String getReplyTo(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.ReplyTo.toString()); - } - - /** - * Set value of ReplyTo - * @param replyto - */ - public final void setReplyTo(java.lang.String replyto) - { - setReplyTo(getContext(), replyto); - } - - /** - * Set value of ReplyTo - * @param context - * @param replyto - */ - public final void setReplyTo(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String replyto) - { - getMendixObject().setValue(context, MemberNames.ReplyTo.toString(), replyto); - } - - /** - * @return value of PersistEmail - */ - public final java.lang.Boolean getPersistEmail() - { - return getPersistEmail(getContext()); - } - - /** - * @param context - * @return value of PersistEmail - */ - public final java.lang.Boolean getPersistEmail(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.PersistEmail.toString()); - } - - /** - * Set value of PersistEmail - * @param persistemail - */ - public final void setPersistEmail(java.lang.Boolean persistemail) - { - setPersistEmail(getContext(), persistemail); - } - - /** - * Set value of PersistEmail - * @param context - * @param persistemail - */ - public final void setPersistEmail(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean persistemail) - { - getMendixObject().setValue(context, MemberNames.PersistEmail.toString(), persistemail); - } - - /** - * @return value of TestMessage_EmailSettings - */ - public final emailtemplate.proxies.EmailSettings getTestMessage_EmailSettings() throws com.mendix.core.CoreException - { - return getTestMessage_EmailSettings(getContext()); - } - - /** - * @param context - * @return value of TestMessage_EmailSettings - */ - public final emailtemplate.proxies.EmailSettings getTestMessage_EmailSettings(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - emailtemplate.proxies.EmailSettings result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.TestMessage_EmailSettings.toString()); - if (identifier != null) - result = emailtemplate.proxies.EmailSettings.load(context, identifier); - return result; - } - - /** - * Set value of TestMessage_EmailSettings - * @param testmessage_emailsettings - */ - public final void setTestMessage_EmailSettings(emailtemplate.proxies.EmailSettings testmessage_emailsettings) - { - setTestMessage_EmailSettings(getContext(), testmessage_emailsettings); - } - - /** - * Set value of TestMessage_EmailSettings - * @param context - * @param testmessage_emailsettings - */ - public final void setTestMessage_EmailSettings(com.mendix.systemwideinterfaces.core.IContext context, emailtemplate.proxies.EmailSettings testmessage_emailsettings) - { - if (testmessage_emailsettings == null) - getMendixObject().setValue(context, MemberNames.TestMessage_EmailSettings.toString(), null); - else - getMendixObject().setValue(context, MemberNames.TestMessage_EmailSettings.toString(), testmessage_emailsettings.getMendixObject().getId()); - } - - /** - * @return value of TestMessage_ModuleSetup - */ - public final emailtemplate.proxies.ModuleSetup getTestMessage_ModuleSetup() throws com.mendix.core.CoreException - { - return getTestMessage_ModuleSetup(getContext()); - } - - /** - * @param context - * @return value of TestMessage_ModuleSetup - */ - public final emailtemplate.proxies.ModuleSetup getTestMessage_ModuleSetup(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - emailtemplate.proxies.ModuleSetup result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.TestMessage_ModuleSetup.toString()); - if (identifier != null) - result = emailtemplate.proxies.ModuleSetup.load(context, identifier); - return result; - } - - /** - * Set value of TestMessage_ModuleSetup - * @param testmessage_modulesetup - */ - public final void setTestMessage_ModuleSetup(emailtemplate.proxies.ModuleSetup testmessage_modulesetup) - { - setTestMessage_ModuleSetup(getContext(), testmessage_modulesetup); - } - - /** - * Set value of TestMessage_ModuleSetup - * @param context - * @param testmessage_modulesetup - */ - public final void setTestMessage_ModuleSetup(com.mendix.systemwideinterfaces.core.IContext context, emailtemplate.proxies.ModuleSetup testmessage_modulesetup) - { - if (testmessage_modulesetup == null) - getMendixObject().setValue(context, MemberNames.TestMessage_ModuleSetup.toString(), null); - else - getMendixObject().setValue(context, MemberNames.TestMessage_ModuleSetup.toString(), testmessage_modulesetup.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return testMessageMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final emailtemplate.proxies.TestMessage that = (emailtemplate.proxies.TestMessage) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "EmailTemplate.TestMessage"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/emailtemplate/proxies/Token.java b/javasource/emailtemplate/proxies/Token.java deleted file mode 100644 index fa18333..0000000 --- a/javasource/emailtemplate/proxies/Token.java +++ /dev/null @@ -1,473 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package emailtemplate.proxies; - -public class Token -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject tokenMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "EmailTemplate.Token"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - token_type("token_type"), - scope("scope"), - expires_in("expires_in"), - ext_expires_in("ext_expires_in"), - access_token("access_token"), - refresh_token("refresh_token"), - id_token("id_token"), - Token_EmailSettings("EmailTemplate.Token_EmailSettings"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public Token(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "EmailTemplate.Token")); - } - - protected Token(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject tokenMendixObject) - { - if (tokenMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("EmailTemplate.Token", tokenMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a EmailTemplate.Token"); - - this.tokenMendixObject = tokenMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'Token.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static emailtemplate.proxies.Token initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return emailtemplate.proxies.Token.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static emailtemplate.proxies.Token initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new emailtemplate.proxies.Token(context, mendixObject); - } - - public static emailtemplate.proxies.Token load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return emailtemplate.proxies.Token.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//EmailTemplate.Token" + xpathConstraint)) - result.add(emailtemplate.proxies.Token.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of token_type - */ - public final java.lang.String gettoken_type() - { - return gettoken_type(getContext()); - } - - /** - * @param context - * @return value of token_type - */ - public final java.lang.String gettoken_type(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.token_type.toString()); - } - - /** - * Set value of token_type - * @param token_type - */ - public final void settoken_type(java.lang.String token_type) - { - settoken_type(getContext(), token_type); - } - - /** - * Set value of token_type - * @param context - * @param token_type - */ - public final void settoken_type(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String token_type) - { - getMendixObject().setValue(context, MemberNames.token_type.toString(), token_type); - } - - /** - * @return value of scope - */ - public final java.lang.String getscope() - { - return getscope(getContext()); - } - - /** - * @param context - * @return value of scope - */ - public final java.lang.String getscope(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.scope.toString()); - } - - /** - * Set value of scope - * @param scope - */ - public final void setscope(java.lang.String scope) - { - setscope(getContext(), scope); - } - - /** - * Set value of scope - * @param context - * @param scope - */ - public final void setscope(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String scope) - { - getMendixObject().setValue(context, MemberNames.scope.toString(), scope); - } - - /** - * @return value of expires_in - */ - public final java.lang.Integer getexpires_in() - { - return getexpires_in(getContext()); - } - - /** - * @param context - * @return value of expires_in - */ - public final java.lang.Integer getexpires_in(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Integer) getMendixObject().getValue(context, MemberNames.expires_in.toString()); - } - - /** - * Set value of expires_in - * @param expires_in - */ - public final void setexpires_in(java.lang.Integer expires_in) - { - setexpires_in(getContext(), expires_in); - } - - /** - * Set value of expires_in - * @param context - * @param expires_in - */ - public final void setexpires_in(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Integer expires_in) - { - getMendixObject().setValue(context, MemberNames.expires_in.toString(), expires_in); - } - - /** - * @return value of ext_expires_in - */ - public final java.lang.Integer getext_expires_in() - { - return getext_expires_in(getContext()); - } - - /** - * @param context - * @return value of ext_expires_in - */ - public final java.lang.Integer getext_expires_in(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Integer) getMendixObject().getValue(context, MemberNames.ext_expires_in.toString()); - } - - /** - * Set value of ext_expires_in - * @param ext_expires_in - */ - public final void setext_expires_in(java.lang.Integer ext_expires_in) - { - setext_expires_in(getContext(), ext_expires_in); - } - - /** - * Set value of ext_expires_in - * @param context - * @param ext_expires_in - */ - public final void setext_expires_in(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Integer ext_expires_in) - { - getMendixObject().setValue(context, MemberNames.ext_expires_in.toString(), ext_expires_in); - } - - /** - * @return value of access_token - */ - public final java.lang.String getaccess_token() - { - return getaccess_token(getContext()); - } - - /** - * @param context - * @return value of access_token - */ - public final java.lang.String getaccess_token(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.access_token.toString()); - } - - /** - * Set value of access_token - * @param access_token - */ - public final void setaccess_token(java.lang.String access_token) - { - setaccess_token(getContext(), access_token); - } - - /** - * Set value of access_token - * @param context - * @param access_token - */ - public final void setaccess_token(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String access_token) - { - getMendixObject().setValue(context, MemberNames.access_token.toString(), access_token); - } - - /** - * @return value of refresh_token - */ - public final java.lang.String getrefresh_token() - { - return getrefresh_token(getContext()); - } - - /** - * @param context - * @return value of refresh_token - */ - public final java.lang.String getrefresh_token(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.refresh_token.toString()); - } - - /** - * Set value of refresh_token - * @param refresh_token - */ - public final void setrefresh_token(java.lang.String refresh_token) - { - setrefresh_token(getContext(), refresh_token); - } - - /** - * Set value of refresh_token - * @param context - * @param refresh_token - */ - public final void setrefresh_token(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String refresh_token) - { - getMendixObject().setValue(context, MemberNames.refresh_token.toString(), refresh_token); - } - - /** - * @return value of id_token - */ - public final java.lang.String getid_token() - { - return getid_token(getContext()); - } - - /** - * @param context - * @return value of id_token - */ - public final java.lang.String getid_token(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.id_token.toString()); - } - - /** - * Set value of id_token - * @param id_token - */ - public final void setid_token(java.lang.String id_token) - { - setid_token(getContext(), id_token); - } - - /** - * Set value of id_token - * @param context - * @param id_token - */ - public final void setid_token(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String id_token) - { - getMendixObject().setValue(context, MemberNames.id_token.toString(), id_token); - } - - /** - * @return value of Token_EmailSettings - */ - public final emailtemplate.proxies.EmailSettings getToken_EmailSettings() throws com.mendix.core.CoreException - { - return getToken_EmailSettings(getContext()); - } - - /** - * @param context - * @return value of Token_EmailSettings - */ - public final emailtemplate.proxies.EmailSettings getToken_EmailSettings(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - emailtemplate.proxies.EmailSettings result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.Token_EmailSettings.toString()); - if (identifier != null) - result = emailtemplate.proxies.EmailSettings.load(context, identifier); - return result; - } - - /** - * Set value of Token_EmailSettings - * @param token_emailsettings - */ - public final void setToken_EmailSettings(emailtemplate.proxies.EmailSettings token_emailsettings) - { - setToken_EmailSettings(getContext(), token_emailsettings); - } - - /** - * Set value of Token_EmailSettings - * @param context - * @param token_emailsettings - */ - public final void setToken_EmailSettings(com.mendix.systemwideinterfaces.core.IContext context, emailtemplate.proxies.EmailSettings token_emailsettings) - { - if (token_emailsettings == null) - getMendixObject().setValue(context, MemberNames.Token_EmailSettings.toString(), null); - else - getMendixObject().setValue(context, MemberNames.Token_EmailSettings.toString(), token_emailsettings.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return tokenMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final emailtemplate.proxies.Token that = (emailtemplate.proxies.Token) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "EmailTemplate.Token"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/emailtemplate/proxies/constants/Constants.java b/javasource/emailtemplate/proxies/constants/Constants.java deleted file mode 100644 index b425408..0000000 --- a/javasource/emailtemplate/proxies/constants/Constants.java +++ /dev/null @@ -1,72 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package emailtemplate.proxies.constants; - -import com.mendix.core.Core; - -public class Constants -{ - // These are the constants for the EmailTemplate module - - public static java.lang.String getazure_emailServerHostURL() - { - return (java.lang.String)Core.getConfiguration().getConstantValue("EmailTemplate.azure_emailServerHostURL"); - } - - public static java.lang.String getEmailAddressSeparator() - { - return (java.lang.String)Core.getConfiguration().getConstantValue("EmailTemplate.EmailAddressSeparator"); - } - - /** - * The amount of days to preserve error messages. - */ - public static java.lang.Long getEmailLogRetention() - { - return (java.lang.Long)Core.getConfiguration().getConstantValue("EmailTemplate.EmailLogRetention"); - } - - /** - * The amount of days to preserve emails which were sent. - */ - public static java.lang.Long getEmailRetention() - { - return (java.lang.Long)Core.getConfiguration().getConstantValue("EmailTemplate.EmailRetention"); - } - - public static java.lang.String getLogNode() - { - return (java.lang.String)Core.getConfiguration().getConstantValue("EmailTemplate.LogNode"); - } - - /** - * Using this path Redirect URI will formed. For eg. if constant value is "callback_et/" then in case of Microsoft Azure AD the Redirect URI will be https://appRootURL/callback_et/azure. - * - * Make sure value of this constant has just one "/" and it is placed at the end. - */ - public static java.lang.String getOAuthCallbackPath() - { - return (java.lang.String)Core.getConfiguration().getConstantValue("EmailTemplate.OAuthCallbackPath"); - } - - /** - * This constant should be exposed to client. - * - * Make sure value of this constant has just one "/" and it is placed at the end. - */ - public static java.lang.String getOAuthSignInPath() - { - return (java.lang.String)Core.getConfiguration().getConstantValue("EmailTemplate.OAuthSignInPath"); - } - - /** - * Sending emails is enabled by default. - * When setting this value to false emails won't be send. This is useful on test environments for example. - */ - public static boolean getSendingEnabled() - { - return (java.lang.Boolean)Core.getConfiguration().getConstantValue("EmailTemplate.SendingEnabled"); - } -} \ No newline at end of file diff --git a/javasource/emailtemplate/proxies/microflows/Microflows.java b/javasource/emailtemplate/proxies/microflows/Microflows.java deleted file mode 100644 index fcad25c..0000000 --- a/javasource/emailtemplate/proxies/microflows/Microflows.java +++ /dev/null @@ -1,359 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package emailtemplate.proxies.microflows; - -import java.util.HashMap; -import java.util.Map; -import com.mendix.core.Core; -import com.mendix.core.CoreException; -import com.mendix.systemwideinterfaces.MendixRuntimeException; -import com.mendix.systemwideinterfaces.core.IContext; -import com.mendix.systemwideinterfaces.core.IMendixObject; - -public class Microflows -{ - // These are the microflows for the EmailTemplate module - public static boolean aSU_RegisterHandlers(IContext context) - { - Map params = new HashMap<>(); - return (java.lang.Boolean) Core.microflowCall("EmailTemplate.ASU_RegisterHandlers").withParams(params).execute(context); - } - public static boolean bCo_EmailSettings(IContext context, emailtemplate.proxies.EmailSettings _emailSettings) - { - Map params = new HashMap<>(); - params.put("EmailSettings", _emailSettings == null ? null : _emailSettings.getMendixObject()); - return (java.lang.Boolean) Core.microflowCall("EmailTemplate.BCo_EmailSettings").withParams(params).execute(context); - } - public static boolean bCO_OAuthProviderDetails(IContext context, emailtemplate.proxies.OAuthProviderDetails _oAuthProviderDetails) - { - Map params = new HashMap<>(); - params.put("OAuthProviderDetails", _oAuthProviderDetails == null ? null : _oAuthProviderDetails.getMendixObject()); - return (java.lang.Boolean) Core.microflowCall("EmailTemplate.BCO_OAuthProviderDetails").withParams(params).execute(context); - } - public static boolean bCO_Token(IContext context, emailtemplate.proxies.Token _token) - { - Map params = new HashMap<>(); - params.put("Token", _token == null ? null : _token.getMendixObject()); - return (java.lang.Boolean) Core.microflowCall("EmailTemplate.BCO_Token").withParams(params).execute(context); - } - public static java.lang.Long countNrOfTemplates(IContext context) - { - Map params = new HashMap<>(); - return (java.lang.Long) Core.microflowCall("EmailTemplate.CountNrOfTemplates").withParams(params).execute(context); - } - public static emailtemplate.proxies.ModuleSetup dS_CheckForSetup(IContext context) - { - Map params = new HashMap<>(); - IMendixObject result = (IMendixObject)Core.microflowCall("EmailTemplate.DS_CheckForSetup").withParams(params).execute(context); - return result == null ? null : emailtemplate.proxies.ModuleSetup.initialize(context, result); - } - public static emailtemplate.proxies.EmailSettings dS_GetEmailSettings(IContext context) - { - Map params = new HashMap<>(); - IMendixObject result = (IMendixObject)Core.microflowCall("EmailTemplate.DS_GetEmailSettings").withParams(params).execute(context); - return result == null ? null : emailtemplate.proxies.EmailSettings.initialize(context, result); - } - public static emailtemplate.proxies.EmailTemplate dS_GetFirstTemplate(IContext context) - { - Map params = new HashMap<>(); - IMendixObject result = (IMendixObject)Core.microflowCall("EmailTemplate.DS_GetFirstTemplate").withParams(params).execute(context); - return result == null ? null : emailtemplate.proxies.EmailTemplate.initialize(context, result); - } - public static emailtemplate.proxies.ModelReflectionChecker dS_LoadModelReflectionHelper(IContext context, emailtemplate.proxies.EmailTemplate _emailTemplate) - { - Map params = new HashMap<>(); - params.put("EmailTemplate", _emailTemplate == null ? null : _emailTemplate.getMendixObject()); - IMendixObject result = (IMendixObject)Core.microflowCall("EmailTemplate.DS_LoadModelReflectionHelper").withParams(params).execute(context); - return result == null ? null : emailtemplate.proxies.ModelReflectionChecker.initialize(context, result); - } - public static void iVK_ChangePortSSL(IContext context, emailtemplate.proxies.EmailSettings _emailSettings) - { - Map params = new HashMap<>(); - params.put("EmailSettings", _emailSettings == null ? null : _emailSettings.getMendixObject()); - Core.microflowCall("EmailTemplate.IVK_ChangePortSSL").withParams(params).execute(context); - } - public static void iVK_ChangePortTLS(IContext context, emailtemplate.proxies.EmailSettings _emailSettings) - { - Map params = new HashMap<>(); - params.put("EmailSettings", _emailSettings == null ? null : _emailSettings.getMendixObject()); - Core.microflowCall("EmailTemplate.IVK_ChangePortTLS").withParams(params).execute(context); - } - public static void iVK_CreateTestEmail(IContext context, emailtemplate.proxies.ModuleSetup _moduleSetup) - { - Map params = new HashMap<>(); - params.put("ModuleSetup", _moduleSetup == null ? null : _moduleSetup.getMendixObject()); - Core.microflowCall("EmailTemplate.IVK_CreateTestEmail").withParams(params).execute(context); - } - public static void iVK_CreateTestMessage(IContext context, emailtemplate.proxies.EmailSettings _emailSettings) - { - Map params = new HashMap<>(); - params.put("EmailSettings", _emailSettings == null ? null : _emailSettings.getMendixObject()); - Core.microflowCall("EmailTemplate.IVK_CreateTestMessage").withParams(params).execute(context); - } - public static void iVK_DeleteToken(IContext context, mxmodelreflection.proxies.Token _token) - { - Map params = new HashMap<>(); - params.put("Token", _token == null ? null : _token.getMendixObject()); - Core.microflowCall("EmailTemplate.IVK_DeleteToken").withParams(params).execute(context); - } - public static void iVK_DownloadAttachment(IContext context, emailtemplate.proxies.Attachment _attachment) - { - Map params = new HashMap<>(); - params.put("Attachment", _attachment == null ? null : _attachment.getMendixObject()); - Core.microflowCall("EmailTemplate.IVK_DownloadAttachment").withParams(params).execute(context); - } - public static void iVK_DuplicateEmailTemplate(IContext context, emailtemplate.proxies.EmailTemplate _emailTemplate) - { - Map params = new HashMap<>(); - params.put("EmailTemplate", _emailTemplate == null ? null : _emailTemplate.getMendixObject()); - Core.microflowCall("EmailTemplate.IVK_DuplicateEmailTemplate").withParams(params).execute(context); - } - public static void iVK_EmailSettingsWizard_edit(IContext context, emailtemplate.proxies.TestMessage _testMessage) - { - Map params = new HashMap<>(); - params.put("TestMessage", _testMessage == null ? null : _testMessage.getMendixObject()); - Core.microflowCall("EmailTemplate.IVK_EmailSettingsWizard_edit").withParams(params).execute(context); - } - public static void iVK_Emailtemplate_NewToken(IContext context, emailtemplate.proxies.EmailTemplate _emailTemplate) - { - Map params = new HashMap<>(); - params.put("EmailTemplate", _emailTemplate == null ? null : _emailTemplate.getMendixObject()); - Core.microflowCall("EmailTemplate.IVK_Emailtemplate_NewToken").withParams(params).execute(context); - } - public static void iVK_GeneratePlainText(IContext context, emailtemplate.proxies.EmailTemplate _emailTemplate) - { - Map params = new HashMap<>(); - params.put("EmailTemplate", _emailTemplate == null ? null : _emailTemplate.getMendixObject()); - Core.microflowCall("EmailTemplate.IVK_GeneratePlainText").withParams(params).execute(context); - } - public static void iVK_OpenModelReflection(IContext context, emailtemplate.proxies.EmailTemplate _emailTemplate) - { - Map params = new HashMap<>(); - params.put("EmailTemplate", _emailTemplate == null ? null : _emailTemplate.getMendixObject()); - Core.microflowCall("EmailTemplate.IVK_OpenModelReflection").withParams(params).execute(context); - } - public static void iVK_ResendFailedEmail(IContext context, emailtemplate.proxies.Email _email) - { - Map params = new HashMap<>(); - params.put("Email", _email == null ? null : _email.getMendixObject()); - Core.microflowCall("EmailTemplate.IVK_ResendFailedEmail").withParams(params).execute(context); - } - public static void iVK_ResendFailedEmails(IContext context, java.util.List _emailList) - { - Map params = new HashMap<>(); - java.util.ArrayList listparam_emailList = null; - if (_emailList != null) - { - listparam_emailList = new java.util.ArrayList<>(); - for (emailtemplate.proxies.Email obj : _emailList) - listparam_emailList.add(obj.getMendixObject()); - } - params.put("EmailList", listparam_emailList); - - Core.microflowCall("EmailTemplate.IVK_ResendFailedEmails").withParams(params).execute(context); - } - public static void iVK_SaveEmailSettings(IContext context, emailtemplate.proxies.EmailSettings _emailSettings) - { - Map params = new HashMap<>(); - params.put("EmailSettings", _emailSettings == null ? null : _emailSettings.getMendixObject()); - Core.microflowCall("EmailTemplate.IVK_SaveEmailSettings").withParams(params).execute(context); - } - public static void iVK_SaveEmailSettingsFromTestMessage(IContext context, emailtemplate.proxies.TestMessage _testMessage) - { - Map params = new HashMap<>(); - params.put("TestMessage", _testMessage == null ? null : _testMessage.getMendixObject()); - Core.microflowCall("EmailTemplate.IVK_SaveEmailSettingsFromTestMessage").withParams(params).execute(context); - } - public static void iVK_SaveEmailTemplate(IContext context, emailtemplate.proxies.EmailTemplate _emailTemplate) - { - Map params = new HashMap<>(); - params.put("EmailTemplate", _emailTemplate == null ? null : _emailTemplate.getMendixObject()); - Core.microflowCall("EmailTemplate.IVK_SaveEmailTemplate").withParams(params).execute(context); - } - public static void iVK_SaveStep1(IContext context, emailtemplate.proxies.TestMessage _testMessage) - { - Map params = new HashMap<>(); - params.put("TestMessage", _testMessage == null ? null : _testMessage.getMendixObject()); - Core.microflowCall("EmailTemplate.IVK_SaveStep1").withParams(params).execute(context); - } - public static void iVK_SaveStep2(IContext context, emailtemplate.proxies.ModuleSetup _moduleSetup) - { - Map params = new HashMap<>(); - params.put("ModuleSetup", _moduleSetup == null ? null : _moduleSetup.getMendixObject()); - Core.microflowCall("EmailTemplate.IVK_SaveStep2").withParams(params).execute(context); - } - public static boolean iVK_SendEmail(IContext context, emailtemplate.proxies.Email _newEmail) - { - Map params = new HashMap<>(); - params.put("NewEmail", _newEmail == null ? null : _newEmail.getMendixObject()); - return (java.lang.Boolean) Core.microflowCall("EmailTemplate.IVK_SendEmail").withParams(params).execute(context); - } - public static void iVK_SendTestMessage(IContext context, emailtemplate.proxies.TestMessage _testMessage) - { - Map params = new HashMap<>(); - params.put("TestMessage", _testMessage == null ? null : _testMessage.getMendixObject()); - Core.microflowCall("EmailTemplate.IVK_SendTestMessage").withParams(params).execute(context); - } - public static void iVK_SkipTestEmail(IContext context, emailtemplate.proxies.TestMessage _testMessage) - { - Map params = new HashMap<>(); - params.put("TestMessage", _testMessage == null ? null : _testMessage.getMendixObject()); - Core.microflowCall("EmailTemplate.IVK_SkipTestEmail").withParams(params).execute(context); - } - public static void jS_ShowOAuthErrorPage(IContext context, emailtemplate.proxies.OAuthErrors _oAuthErrors) - { - Map params = new HashMap<>(); - params.put("OAuthErrors", _oAuthErrors == null ? null : _oAuthErrors.getMendixObject()); - Core.microflowCall("EmailTemplate.JS_ShowOAuthErrorPage").withParams(params).execute(context); - } - public static boolean jS_ValidateAndSaveOAuthProvider(IContext context, emailtemplate.proxies.OAuthProviderDetails _oAuthProviderDetails) - { - Map params = new HashMap<>(); - params.put("OAuthProviderDetails", _oAuthProviderDetails == null ? null : _oAuthProviderDetails.getMendixObject()); - return (java.lang.Boolean) Core.microflowCall("EmailTemplate.JS_ValidateAndSaveOAuthProvider").withParams(params).execute(context); - } - public static void oCH_isOAuthUsed(IContext context, emailtemplate.proxies.EmailSettings _emailSettings) - { - Map params = new HashMap<>(); - params.put("EmailSettings", _emailSettings == null ? null : _emailSettings.getMendixObject()); - Core.microflowCall("EmailTemplate.OCH_isOAuthUsed").withParams(params).execute(context); - } - public static void oCh_SSL(IContext context, emailtemplate.proxies.EmailSettings _emailSettings) - { - Map params = new HashMap<>(); - params.put("EmailSettings", _emailSettings == null ? null : _emailSettings.getMendixObject()); - Core.microflowCall("EmailTemplate.OCh_SSL").withParams(params).execute(context); - } - public static void oCh_TLS(IContext context, emailtemplate.proxies.EmailSettings _emailSettings) - { - Map params = new HashMap<>(); - params.put("EmailSettings", _emailSettings == null ? null : _emailSettings.getMendixObject()); - Core.microflowCall("EmailTemplate.OCh_TLS").withParams(params).execute(context); - } - public static void sE_Cleanup(IContext context) - { - Map params = new HashMap<>(); - Core.microflowCall("EmailTemplate.SE_Cleanup").withParams(params).execute(context); - } - public static void sE_SendQueuedEmails(IContext context) - { - Map params = new HashMap<>(); - Core.microflowCall("EmailTemplate.SE_SendQueuedEmails").withParams(params).execute(context); - } - public static boolean sendEmailMessage(IContext context, java.lang.String _from, java.lang.String _to, java.lang.String _subject, java.lang.String _hTMLBody, java.lang.String _plainTextBody, java.lang.String _cC, java.lang.String _bCC, emailtemplate.proxies.EmailSettings _emailSettings, java.util.List _attachmentList, java.util.List _headerList, java.lang.String _replyTo, java.lang.String _fromDisplayName) - { - Map params = new HashMap<>(); - params.put("From", _from); - params.put("To", _to); - params.put("Subject", _subject); - params.put("HTMLBody", _hTMLBody); - params.put("PlainTextBody", _plainTextBody); - params.put("CC", _cC); - params.put("BCC", _bCC); - params.put("EmailSettings", _emailSettings == null ? null : _emailSettings.getMendixObject()); - java.util.ArrayList listparam_attachmentList = null; - if (_attachmentList != null) - { - listparam_attachmentList = new java.util.ArrayList<>(); - for (emailtemplate.proxies.Attachment obj : _attachmentList) - listparam_attachmentList.add(obj.getMendixObject()); - } - params.put("AttachmentList", listparam_attachmentList); - - java.util.ArrayList listparam_headerList = null; - if (_headerList != null) - { - listparam_headerList = new java.util.ArrayList<>(); - for (emailtemplate.proxies.Header obj : _headerList) - listparam_headerList.add(obj.getMendixObject()); - } - params.put("HeaderList", listparam_headerList); - - params.put("ReplyTo", _replyTo); - params.put("FromDisplayName", _fromDisplayName); - return (java.lang.Boolean) Core.microflowCall("EmailTemplate.SendEmailMessage").withParams(params).execute(context); - } - public static java.util.List sub_CreateAttachments(IContext context, java.util.List _fileDocumentList, emailtemplate.proxies.Email _email) - { - Map params = new HashMap<>(); - java.util.ArrayList listparam_fileDocumentList = null; - if (_fileDocumentList != null) - { - listparam_fileDocumentList = new java.util.ArrayList<>(); - for (system.proxies.FileDocument obj : _fileDocumentList) - listparam_fileDocumentList.add(obj.getMendixObject()); - } - params.put("FileDocumentList", listparam_fileDocumentList); - - params.put("Email", _email == null ? null : _email.getMendixObject()); - java.util.List objs = Core.microflowCall("EmailTemplate.Sub_CreateAttachments").withParams(params).execute(context); - java.util.List result = null; - if (objs != null) - { - result = new java.util.ArrayList<>(); - for (IMendixObject obj : objs) - result.add(emailtemplate.proxies.Attachment.initialize(context, obj)); - } - return result; - } - public static void sub_CreateLogItem(IContext context, java.lang.String _triggeredInMF, emailtemplate.proxies.LogType _logType, java.lang.String _message, java.lang.String _errorMessage, java.lang.String _stackTrace) - { - Map params = new HashMap<>(); - params.put("TriggeredInMF", _triggeredInMF); - params.put("LogType", _logType == null ? null : _logType.name()); - params.put("Message", _message); - params.put("ErrorMessage", _errorMessage); - params.put("StackTrace", _stackTrace); - Core.microflowCall("EmailTemplate.Sub_CreateLogItem").withParams(params).execute(context); - } - public static java.util.List sub_DuplicateTokenList(IContext context, java.util.List _tokenList) - { - Map params = new HashMap<>(); - java.util.ArrayList listparam_tokenList = null; - if (_tokenList != null) - { - listparam_tokenList = new java.util.ArrayList<>(); - for (mxmodelreflection.proxies.Token obj : _tokenList) - listparam_tokenList.add(obj.getMendixObject()); - } - params.put("TokenList", listparam_tokenList); - - java.util.List objs = Core.microflowCall("EmailTemplate.Sub_DuplicateTokenList").withParams(params).execute(context); - java.util.List result = null; - if (objs != null) - { - result = new java.util.ArrayList<>(); - for (IMendixObject obj : objs) - result.add(mxmodelreflection.proxies.Token.initialize(context, obj)); - } - return result; - } - public static void sub_SendQueuedEmail(IContext context, emailtemplate.proxies.Email _email, emailtemplate.proxies.EmailSettings _emailSettings, java.lang.String _decryptedPassword) - { - Map params = new HashMap<>(); - params.put("Email", _email == null ? null : _email.getMendixObject()); - params.put("EmailSettings", _emailSettings == null ? null : _emailSettings.getMendixObject()); - params.put("DecryptedPassword", _decryptedPassword); - Core.microflowCall("EmailTemplate.Sub_SendQueuedEmail").withParams(params).execute(context); - } - public static void sub_SendSimpleEmail(IContext context, java.lang.String _to) - { - Map params = new HashMap<>(); - params.put("To", _to); - Core.microflowCall("EmailTemplate.Sub_SendSimpleEmail").withParams(params).execute(context); - } - public static void vAL_ProcessOAuthPayload(IContext context, emailtemplate.proxies.OAuthPayload _oAuthPayload) - { - Map params = new HashMap<>(); - params.put("OAuthPayload", _oAuthPayload == null ? null : _oAuthPayload.getMendixObject()); - Core.microflowCall("EmailTemplate.VAL_ProcessOAuthPayload").withParams(params).execute(context); - } - public static boolean vAL_ValidateOAuthProviderDetails(IContext context, emailtemplate.proxies.OAuthProviderDetails _oAuthProviderDetails) - { - Map params = new HashMap<>(); - params.put("OAuthProviderDetails", _oAuthProviderDetails == null ? null : _oAuthProviderDetails.getMendixObject()); - return (java.lang.Boolean) Core.microflowCall("EmailTemplate.VAL_ValidateOAuthProviderDetails").withParams(params).execute(context); - } -} \ No newline at end of file diff --git a/javasource/encryption/actions/DecryptString.java b/javasource/encryption/actions/DecryptString.java index 401f7f7..f4f840c 100644 --- a/javasource/encryption/actions/DecryptString.java +++ b/javasource/encryption/actions/DecryptString.java @@ -63,6 +63,7 @@ public java.lang.String executeAction() throws Exception /** * Returns a string representation of this action + * @return a string representation of this action */ @java.lang.Override public java.lang.String toString() @@ -117,7 +118,7 @@ private String decryptUsingGcm() throws Exception { if (s.length < 2) throw new MendixRuntimeException("Unexpected prefix when trying to decrypt string using legacy algorithm."); - Cipher c = Cipher.getInstance("AES/GCM/PKCS5PADDING"); + Cipher c = Cipher.getInstance("AES/GCM/NoPadding"); SecretKeySpec k = new SecretKeySpec(this.legacyKey.getBytes(), "AES"); // ignore Snyk Code warning; false positive byte[] iv = Base64.getDecoder().decode(s[0].getBytes()); diff --git a/javasource/encryption/actions/EncryptString.java b/javasource/encryption/actions/EncryptString.java index 05c3f4d..516afea 100644 --- a/javasource/encryption/actions/EncryptString.java +++ b/javasource/encryption/actions/EncryptString.java @@ -64,6 +64,7 @@ public java.lang.String executeAction() throws Exception /** * Returns a string representation of this action + * @return a string representation of this action */ @java.lang.Override public java.lang.String toString() diff --git a/javasource/encryption/actions/GeneratePGPKeyRing.java b/javasource/encryption/actions/GeneratePGPKeyRing.java index 7afbc6a..2f31785 100644 --- a/javasource/encryption/actions/GeneratePGPKeyRing.java +++ b/javasource/encryption/actions/GeneratePGPKeyRing.java @@ -61,47 +61,37 @@ public GeneratePGPKeyRing(IContext context, IMendixObject CertPrivateKey, IMendi @java.lang.Override public java.lang.Boolean executeAction() throws Exception { - this.CertPrivateKey = __CertPrivateKey == null ? null : encryption.proxies.PGPCertificate.initialize(getContext(), __CertPrivateKey); + this.CertPrivateKey = this.__CertPrivateKey == null ? null : encryption.proxies.PGPCertificate.initialize(getContext(), __CertPrivateKey); - this.CertPublicKey = __CertPublicKey == null ? null : encryption.proxies.PGPCertificate.initialize(getContext(), __CertPublicKey); + this.CertPublicKey = this.__CertPublicKey == null ? null : encryption.proxies.PGPCertificate.initialize(getContext(), __CertPublicKey); // BEGIN USER CODE - - //Do we generate all files as ASCII armored files? - boolean armor = true; - - char pass[] = this.CertPrivateKey.getPassPhrase_Plain().toCharArray(); PGPKeyRingGenerator krgen = generateKeyRingGenerator(this.CertPrivateKey.getEmailAddress(), pass); - - + // Generate public key ring, dump to file. String tempASC = PGPFileProcessor.getNewTempFile("pub"); PGPPublicKeyRing pkr = krgen.generatePublicKeyRing(); String pubFilename = "publicKey.pub"; - OutputStream pubout = new BufferedOutputStream(new FileOutputStream(tempASC)); - if( armor ) { - pubout = new ArmoredOutputStream(pubout); - pubFilename = "publicKey.asc"; + try (OutputStream nestedStream = new BufferedOutputStream(new FileOutputStream(tempASC))) { + try (OutputStream pubout = new ArmoredOutputStream(nestedStream)) { + pubFilename = "publicKey.asc"; + pkr.encode(pubout); + } } - pkr.encode(pubout); - pubout.close(); Core.storeFileDocumentContent(getContext(), this.CertPublicKey.getMendixObject(), pubFilename, new FileInputStream(tempASC)); (new File(tempASC)).delete(); - // Generate private key, dump to file. String tempSKR = PGPFileProcessor.getNewTempFile("skr"); PGPSecretKeyRing skr = krgen.generateSecretKeyRing(); String skrFilename = "privateKey.skr"; OutputStream secout = new BufferedOutputStream(new FileOutputStream(tempSKR)); - if ( armor ) { - secout = new ArmoredOutputStream(secout); - skrFilename = "privateKey.asc"; - } + secout = new ArmoredOutputStream(secout); + skrFilename = "privateKey.asc"; skr.encode(secout); secout.close(); @@ -109,19 +99,13 @@ public java.lang.Boolean executeAction() throws Exception Core.storeFileDocumentContent(getContext(), this.CertPrivateKey.getMendixObject(), skrFilename, new FileInputStream(tempSKR)); (new File(tempSKR)).delete(); - - // Random code stuff - // PGPSecretKey skey = new Pg - // PGPSecretKeyRing.insertSecretKey(skr, ) - // skr.getSecretKey().encode(secout); - - return true; // END USER CODE } /** * Returns a string representation of this action + * @return a string representation of this action */ @java.lang.Override public java.lang.String toString() diff --git a/javasource/encryption/actions/PGPDecryptDocument.java b/javasource/encryption/actions/PGPDecryptDocument.java index 91b5fd9..b9955fc 100644 --- a/javasource/encryption/actions/PGPDecryptDocument.java +++ b/javasource/encryption/actions/PGPDecryptDocument.java @@ -43,11 +43,11 @@ public PGPDecryptDocument(IContext context, IMendixObject PrivateDecryptionKey, @java.lang.Override public java.lang.Boolean executeAction() throws Exception { - this.PrivateDecryptionKey = __PrivateDecryptionKey == null ? null : encryption.proxies.PGPCertificate.initialize(getContext(), __PrivateDecryptionKey); + this.PrivateDecryptionKey = this.__PrivateDecryptionKey == null ? null : encryption.proxies.PGPCertificate.initialize(getContext(), __PrivateDecryptionKey); - this.DocumentToDecrypt = __DocumentToDecrypt == null ? null : system.proxies.FileDocument.initialize(getContext(), __DocumentToDecrypt); + this.DocumentToDecrypt = this.__DocumentToDecrypt == null ? null : system.proxies.FileDocument.initialize(getContext(), __DocumentToDecrypt); - this.OutputDocument = __OutputDocument == null ? null : system.proxies.FileDocument.initialize(getContext(), __OutputDocument); + this.OutputDocument = this.__OutputDocument == null ? null : system.proxies.FileDocument.initialize(getContext(), __OutputDocument); // BEGIN USER CODE PGPFileProcessor p = new PGPFileProcessor(); @@ -64,6 +64,7 @@ public java.lang.Boolean executeAction() throws Exception /** * Returns a string representation of this action + * @return a string representation of this action */ @java.lang.Override public java.lang.String toString() diff --git a/javasource/encryption/actions/PGPEncryptDocument.java b/javasource/encryption/actions/PGPEncryptDocument.java index 992e657..26549f5 100644 --- a/javasource/encryption/actions/PGPEncryptDocument.java +++ b/javasource/encryption/actions/PGPEncryptDocument.java @@ -42,11 +42,11 @@ public PGPEncryptDocument(IContext context, IMendixObject ExternalPublicKey, IMe @java.lang.Override public java.lang.Boolean executeAction() throws Exception { - this.ExternalPublicKey = __ExternalPublicKey == null ? null : system.proxies.FileDocument.initialize(getContext(), __ExternalPublicKey); + this.ExternalPublicKey = this.__ExternalPublicKey == null ? null : system.proxies.FileDocument.initialize(getContext(), __ExternalPublicKey); - this.DocumentToEncrypt = __DocumentToEncrypt == null ? null : system.proxies.FileDocument.initialize(getContext(), __DocumentToEncrypt); + this.DocumentToEncrypt = this.__DocumentToEncrypt == null ? null : system.proxies.FileDocument.initialize(getContext(), __DocumentToEncrypt); - this.OutputDocument = __OutputDocument == null ? null : system.proxies.FileDocument.initialize(getContext(), __OutputDocument); + this.OutputDocument = this.__OutputDocument == null ? null : system.proxies.FileDocument.initialize(getContext(), __OutputDocument); // BEGIN USER CODE @@ -62,6 +62,7 @@ public java.lang.Boolean executeAction() throws Exception /** * Returns a string representation of this action + * @return a string representation of this action */ @java.lang.Override public java.lang.String toString() diff --git a/javasource/encryption/actions/ValidatePrivateKeyRing.java b/javasource/encryption/actions/ValidatePrivateKeyRing.java index c739aa6..83f7eef 100644 --- a/javasource/encryption/actions/ValidatePrivateKeyRing.java +++ b/javasource/encryption/actions/ValidatePrivateKeyRing.java @@ -31,7 +31,7 @@ public ValidatePrivateKeyRing(IContext context, IMendixObject PrivateKeyRing) @java.lang.Override public java.lang.Boolean executeAction() throws Exception { - this.PrivateKeyRing = __PrivateKeyRing == null ? null : encryption.proxies.PGPCertificate.initialize(getContext(), __PrivateKeyRing); + this.PrivateKeyRing = this.__PrivateKeyRing == null ? null : encryption.proxies.PGPCertificate.initialize(getContext(), __PrivateKeyRing); // BEGIN USER CODE @@ -45,6 +45,7 @@ public java.lang.Boolean executeAction() throws Exception /** * Returns a string representation of this action + * @return a string representation of this action */ @java.lang.Override public java.lang.String toString() diff --git a/javasource/encryption/pgp/PGPFileProcessor.java b/javasource/encryption/pgp/PGPFileProcessor.java index b12b035..20832b3 100644 --- a/javasource/encryption/pgp/PGPFileProcessor.java +++ b/javasource/encryption/pgp/PGPFileProcessor.java @@ -42,16 +42,20 @@ public boolean encrypt( IContext context ) throws Exception { try (InputStream publicKeyIn = Core.getFileDocumentContent(context, this.publicKeyFileDocument)) { String tempOutputFile = getNewTempFile("out"); - try (FileOutputStream out = new FileOutputStream(tempOutputFile)) { + try { + try (FileOutputStream out = new FileOutputStream(tempOutputFile)) { - File tmpIn = writeInputDocumentToTempFile(context); + File tmpIn = writeInputDocumentToTempFile(context); - PGPUtils.encryptFile(out, tmpIn.getAbsolutePath(), PGPUtils.readPublicKey(publicKeyIn), this.isAsciiArmored(), this.isIntegrityCheck()); + PGPUtils.encryptFile(out, tmpIn.getAbsolutePath(), PGPUtils.readPublicKey(publicKeyIn), this.isAsciiArmored(), this.isIntegrityCheck()); - tmpIn.delete(); - } + tmpIn.delete(); + } - storeOutput(context, tempOutputFile); + storeOutput(context, tempOutputFile); + } finally { + new File(tempOutputFile).delete(); + } } return true; diff --git a/javasource/encryption/pgp/PGPUtils.java b/javasource/encryption/pgp/PGPUtils.java index 21a2451..818c565 100644 --- a/javasource/encryption/pgp/PGPUtils.java +++ b/javasource/encryption/pgp/PGPUtils.java @@ -58,461 +58,451 @@ public class PGPUtils { - private static final int BUFFER_SIZE = 1 << 16; // should always be power of 2 - private static final int KEY_FLAGS = 27; - private static final int[] MASTER_KEY_CERTIFICATION_TYPES = new int[] { - PGPSignature.POSITIVE_CERTIFICATION, - PGPSignature.CASUAL_CERTIFICATION, - PGPSignature.NO_CERTIFICATION, - PGPSignature.DEFAULT_CERTIFICATION - }; - - @SuppressWarnings("unchecked") - public static PGPPublicKey readPublicKey( InputStream in ) - throws IOException, PGPException - { - - PGPPublicKeyRingCollection keyRingCollection = new PGPPublicKeyRingCollection(PGPUtil.getDecoderStream(in), new BcKeyFingerprintCalculator()); - - // - // we just loop through the collection till we find a key suitable for encryption, in the real - // world you would probably want to be a bit smarter about this. - // - PGPPublicKey publicKey = null; - - // - // iterate through the key rings. - // - Iterator rIt = keyRingCollection.getKeyRings(); - - while( publicKey == null && rIt.hasNext() ) { - PGPPublicKeyRing kRing = rIt.next(); - Iterator kIt = kRing.getPublicKeys(); - while( publicKey == null && kIt.hasNext() ) { - PGPPublicKey key = kIt.next(); - if ( key.isEncryptionKey() ) { - publicKey = key; - } - } - } - - if ( publicKey == null ) { - throw new IllegalArgumentException("Can't find public key in the key ring."); - } - if ( !isForEncryption(publicKey) ) { - throw new IllegalArgumentException("KeyID " + publicKey.getKeyID() + " not flagged for encryption."); - } - - return publicKey; - } - - @SuppressWarnings("unchecked") - public static PGPSecretKey readSecretKey( InputStream in ) - throws IOException, PGPException - { - - PGPSecretKeyRingCollection keyRingCollection = new PGPSecretKeyRingCollection(PGPUtil.getDecoderStream(in), new BcKeyFingerprintCalculator()); - - // - // We just loop through the collection till we find a key suitable for signing. - // In the real world you would probably want to be a bit smarter about this. - // - PGPSecretKey secretKey = null; - - Iterator rIt = keyRingCollection.getKeyRings(); - while( secretKey == null && rIt.hasNext() ) { - PGPSecretKeyRing keyRing = rIt.next(); - Iterator kIt = keyRing.getSecretKeys(); - while( secretKey == null && kIt.hasNext() ) { - PGPSecretKey key = kIt.next(); - if ( key.isSigningKey() ) { - secretKey = key; - } - } - } - - // Validate secret key - if ( secretKey == null ) { - throw new IllegalArgumentException("Can't find private key in the key ring."); - } - if ( !secretKey.isSigningKey() ) { - throw new IllegalArgumentException("Private key does not allow signing."); - } - if ( secretKey.getPublicKey().hasRevocation() ) { - throw new IllegalArgumentException("Private key has been revoked."); - } - if ( !hasKeyFlags(secretKey.getPublicKey(), KeyFlags.SIGN_DATA) ) { - throw new IllegalArgumentException("Key cannot be used for signing."); - } - - return secretKey; - } - - /** - * Load a secret key ring collection from keyIn and find the private key corresponding to - * keyID if it exists. - * - * @param keyIn input stream representing a key ring collection. - * @param keyID keyID we want. - * @param pass passphrase to decrypt secret key with. - * @return - * @throws IOException - * @throws PGPException - * @throws NoSuchProviderException - */ - public static PGPPrivateKey findPrivateKey( InputStream keyIn, long keyID, char[] pass ) - throws IOException, PGPException, NoSuchProviderException - { - PGPSecretKeyRingCollection pgpSec = new PGPSecretKeyRingCollection(PGPUtil.getDecoderStream(keyIn), new BcKeyFingerprintCalculator()); - return findPrivateKey(pgpSec.getSecretKey(keyID), pass); - - } - - /** - * Load a secret key and find the private key in it - * - * @param pgpSecKey The secret key - * @param pass passphrase to decrypt secret key with - * @return - * @throws PGPException - */ - public static PGPPrivateKey findPrivateKey( PGPSecretKey pgpSecKey, char[] pass ) - throws PGPException - { - if ( pgpSecKey == null ) - return null; - - PBESecretKeyDecryptor decryptor = new BcPBESecretKeyDecryptorBuilder(new BcPGPDigestCalculatorProvider()).build(pass); - return pgpSecKey.extractPrivateKey(decryptor); - } - - /** - * decrypt the passed in message stream - */ - @SuppressWarnings("unchecked") - public static void decryptFile( InputStream in, OutputStream out, InputStream keyIn, char[] passwd ) - throws Exception - { - Security.addProvider(new BouncyCastleProvider()); - - in = org.bouncycastle.openpgp.PGPUtil.getDecoderStream(in); - - PGPObjectFactory pgpF = new PGPObjectFactory(in, new BcKeyFingerprintCalculator()); - PGPEncryptedDataList enc; - - Object o = pgpF.nextObject(); - // - // the first object might be a PGP marker packet. - // - if ( o instanceof PGPEncryptedDataList ) { - enc = (PGPEncryptedDataList) o; - } - else { - enc = (PGPEncryptedDataList) pgpF.nextObject(); - } - - // - // find the secret key - // - Iterator it = enc.getEncryptedDataObjects(); - PGPPrivateKey sKey = null; - PGPPublicKeyEncryptedData pbe = null; - - while( sKey == null && it.hasNext() ) { - PGPEncryptedData data = it.next(); - if (data instanceof PGPPublicKeyEncryptedData) { - pbe = (PGPPublicKeyEncryptedData) data; - - sKey = findPrivateKey(keyIn, pbe.getKeyID(), passwd); - } - } - - if ( sKey == null ) { - throw new IllegalArgumentException("Secret key for message not found. (Looking for key:" + pbe.getKeyID() + ")"); - } - - InputStream clear = pbe.getDataStream(new BcPublicKeyDataDecryptorFactory(sKey)); - - PGPObjectFactory plainFact = new PGPObjectFactory(clear, new BcKeyFingerprintCalculator()); - - Object message = plainFact.nextObject(); - - if ( message instanceof PGPCompressedData ) { - PGPCompressedData cData = (PGPCompressedData) message; - PGPObjectFactory pgpFact = new PGPObjectFactory(cData.getDataStream(), new BcKeyFingerprintCalculator()); - - message = pgpFact.nextObject(); - } - - if ( message instanceof PGPLiteralData ) { - PGPLiteralData ld = (PGPLiteralData) message; - - InputStream unc = ld.getInputStream(); - int ch; - - while( (ch = unc.read()) >= 0 ) { - out.write(ch); - } - } - else if ( message instanceof PGPOnePassSignatureList ) { - throw new PGPException("Encrypted message contains a signed message - not literal data."); - } - else { - throw new PGPException("Message is not a simple encrypted file - type unknown."); - } - - if ( pbe.isIntegrityProtected() ) { - if ( !pbe.verify() ) { - throw new PGPException("Message failed integrity check"); - } - } - } - - public static void encryptFile( - OutputStream out, - String fileName, - PGPPublicKey encKey, - boolean armor, - boolean withIntegrityCheck ) - throws IOException, NoSuchProviderException, PGPException - { - Security.addProvider(new BouncyCastleProvider()); - - if ( armor ) { - out = new ArmoredOutputStream(out); - } - - ByteArrayOutputStream bOut = new ByteArrayOutputStream(); - PGPCompressedDataGenerator comData = new PGPCompressedDataGenerator(PGPCompressedData.ZIP); - - PGPUtil.writeFileToLiteralData( - comData.open(bOut), - PGPLiteralData.BINARY, - new File(fileName)); - - comData.close(); - - BcPGPDataEncryptorBuilder dataEncryptor = new BcPGPDataEncryptorBuilder(PGPEncryptedData.TRIPLE_DES); - dataEncryptor.setWithIntegrityPacket(withIntegrityCheck); - dataEncryptor.setSecureRandom(new SecureRandom()); - - PGPEncryptedDataGenerator encryptedDataGenerator = new PGPEncryptedDataGenerator(dataEncryptor); - encryptedDataGenerator.addMethod(new BcPublicKeyKeyEncryptionMethodGenerator(encKey)); - - byte[] bytes = bOut.toByteArray(); - OutputStream cOut = encryptedDataGenerator.open(out, bytes.length); - cOut.write(bytes); - cOut.close(); - - encryptedDataGenerator.close(); - bOut.close(); - - - if( armor ) { - out.close(); - } - } - - @SuppressWarnings("unchecked") - public static void signEncryptFile( - OutputStream out, - String fileName, - PGPPublicKey publicKey, - PGPSecretKey secretKey, - String password, - boolean armor, - boolean withIntegrityCheck ) - throws Exception - { - - // Initialize Bouncy Castle security provider - Provider provider = new BouncyCastleProvider(); - Security.addProvider(provider); - - if ( armor ) { - out = new ArmoredOutputStream(out); - } - - BcPGPDataEncryptorBuilder dataEncryptor = new BcPGPDataEncryptorBuilder(PGPEncryptedData.TRIPLE_DES); - dataEncryptor.setWithIntegrityPacket(withIntegrityCheck); - dataEncryptor.setSecureRandom(new SecureRandom()); - - PGPEncryptedDataGenerator encryptedDataGenerator = new PGPEncryptedDataGenerator(dataEncryptor); - encryptedDataGenerator.addMethod(new BcPublicKeyKeyEncryptionMethodGenerator(publicKey)); - - OutputStream encryptedOut = encryptedDataGenerator.open(out, new byte[PGPUtils.BUFFER_SIZE]); - - // Initialize compressed data generator - PGPCompressedDataGenerator compressedDataGenerator = new PGPCompressedDataGenerator(PGPCompressedData.ZIP); - OutputStream compressedOut = compressedDataGenerator.open(encryptedOut, new byte[PGPUtils.BUFFER_SIZE]); - - // Initialize signature generator - PGPPrivateKey privateKey = findPrivateKey(secretKey, password.toCharArray()); - - PGPContentSignerBuilder signerBuilder = new BcPGPContentSignerBuilder(secretKey.getPublicKey().getAlgorithm(), - HashAlgorithmTags.SHA1); - - PGPSignatureGenerator signatureGenerator = new PGPSignatureGenerator(signerBuilder); - signatureGenerator.init(PGPSignature.BINARY_DOCUMENT, privateKey); - - boolean firstTime = true; - Iterator it = secretKey.getPublicKey().getUserIDs(); - while( it.hasNext() && firstTime ) { - PGPSignatureSubpacketGenerator spGen = new PGPSignatureSubpacketGenerator(); - spGen.addSignerUserID(false, it.next()); - signatureGenerator.setHashedSubpackets(spGen.generate()); - // Exit the loop after the first iteration - firstTime = false; - } - signatureGenerator.generateOnePassVersion(false).encode(compressedOut); - - // Initialize literal data generator - PGPLiteralDataGenerator literalDataGenerator = new PGPLiteralDataGenerator(); - OutputStream literalOut = literalDataGenerator.open( - compressedOut, - PGPLiteralData.BINARY, - fileName, - new Date(), - new byte[PGPUtils.BUFFER_SIZE]); - - // Main loop - read the "in" stream, compress, encrypt and write to the "out" stream - FileInputStream in = new FileInputStream(fileName); - byte[] buf = new byte[PGPUtils.BUFFER_SIZE]; - int len; - while( (len = in.read(buf)) > 0 ) { - literalOut.write(buf, 0, len); - signatureGenerator.update(buf, 0, len); - } - - literalOut.close(); - in.close(); - literalDataGenerator.close(); - // Generate the signature, compress, encrypt and write to the "out" stream - signatureGenerator.generate().encode(compressedOut); - compressedDataGenerator.close(); - encryptedDataGenerator.close(); - if ( armor ) { - out.close(); - } - } - - public static boolean verifyFile( - InputStream in, - InputStream keyIn, - String extractContentFile ) - throws Exception - { - in = PGPUtil.getDecoderStream(in); - - PGPObjectFactory pgpFact = new PGPObjectFactory(in, new BcKeyFingerprintCalculator()); - PGPCompressedData c1 = (PGPCompressedData) pgpFact.nextObject(); - - pgpFact = new PGPObjectFactory(c1.getDataStream(), new BcKeyFingerprintCalculator()); - - PGPOnePassSignatureList p1 = (PGPOnePassSignatureList) pgpFact.nextObject(); - - PGPOnePassSignature ops = p1.get(0); - - PGPLiteralData p2 = (PGPLiteralData) pgpFact.nextObject(); - - InputStream dIn = p2.getInputStream(); - - IOUtils.copy(dIn, new FileOutputStream(extractContentFile)); - - int ch; - PGPPublicKeyRingCollection pgpRing = new PGPPublicKeyRingCollection(PGPUtil.getDecoderStream(keyIn), new BcKeyFingerprintCalculator()); - - PGPPublicKey key = pgpRing.getPublicKey(ops.getKeyID()); - - FileOutputStream out = new FileOutputStream(p2.getFileName()); - - ops.init(new BcPGPContentVerifierBuilderProvider(), key); - - while( (ch = dIn.read()) >= 0 ) - { - ops.update((byte) ch); - out.write(ch); - } - - out.close(); - - PGPSignatureList p3 = (PGPSignatureList) pgpFact.nextObject(); - return ops.verify(p3.get(0)); - } - - /** - * From LockBox Lobs PGP Encryption tools. - * http://www.lockboxlabs.org/content/downloads - * - * I didn't think it was worth having to import a 4meg lib for three methods - * - * @param key - * @return - */ - public static boolean isForEncryption( PGPPublicKey key ) - { - if ( key.getAlgorithm() == PublicKeyAlgorithmTags.RSA_SIGN - || key.getAlgorithm() == PublicKeyAlgorithmTags.DSA - || key.getAlgorithm() == PublicKeyAlgorithmTags.ECDH - || key.getAlgorithm() == PublicKeyAlgorithmTags.ECDSA ) - { - return false; - } - - return hasKeyFlags(key, KeyFlags.ENCRYPT_COMMS | KeyFlags.ENCRYPT_STORAGE); - } - - /** - * From LockBox Lobs PGP Encryption tools. - * http://www.lockboxlabs.org/content/downloads - * - * I didn't think it was worth having to import a 4meg lib for three methods - * - * @param key - * @return - */ - @SuppressWarnings("unchecked") - private static boolean hasKeyFlags( PGPPublicKey encKey, int keyUsage ) { - if ( encKey.isMasterKey() ) { - for( int i = 0; i != PGPUtils.MASTER_KEY_CERTIFICATION_TYPES.length; i++ ) { - for( Iterator eIt = encKey.getSignaturesOfType(PGPUtils.MASTER_KEY_CERTIFICATION_TYPES[i]); eIt.hasNext(); ) { - PGPSignature sig = eIt.next(); - if ( !isMatchingUsage(sig, keyUsage) ) { - return false; - } - } - } - } - else { - for( Iterator eIt = encKey.getSignaturesOfType(PGPSignature.SUBKEY_BINDING); eIt.hasNext(); ) { - PGPSignature sig = eIt.next(); - if ( !isMatchingUsage(sig, keyUsage) ) { - return false; - } - } - } - return true; - } - - /** - * From LockBox Lobs PGP Encryption tools. - * http://www.lockboxlabs.org/content/downloads - * - * I didn't think it was worth having to import a 4meg lib for three methods - * - * @param key - * @return - */ - private static boolean isMatchingUsage( PGPSignature sig, int keyUsage ) { - if ( sig.hasSubpackets() ) { - PGPSignatureSubpacketVector sv = sig.getHashedSubPackets(); - if ( sv.hasSubpacket(PGPUtils.KEY_FLAGS) ) { - if ( (sv.getKeyFlags() == 0 && keyUsage == 0) ) { - return false; - } - } - } - return true; - } + private static final int BUFFER_SIZE = 1 << 16; // should always be power of 2 + private static final int KEY_FLAGS = 27; + private static final int[] MASTER_KEY_CERTIFICATION_TYPES = new int[]{ + PGPSignature.POSITIVE_CERTIFICATION, + PGPSignature.CASUAL_CERTIFICATION, + PGPSignature.NO_CERTIFICATION, + PGPSignature.DEFAULT_CERTIFICATION + }; + + @SuppressWarnings("unchecked") + public static PGPPublicKey readPublicKey(InputStream in) + throws IOException, PGPException { + + PGPPublicKeyRingCollection keyRingCollection = new PGPPublicKeyRingCollection(PGPUtil.getDecoderStream(in), new BcKeyFingerprintCalculator()); + + // + // we just loop through the collection till we find a key suitable for encryption, in the real + // world you would probably want to be a bit smarter about this. + // + PGPPublicKey publicKey = null; + + // + // iterate through the key rings. + // + Iterator rIt = keyRingCollection.getKeyRings(); + + while (publicKey == null && rIt.hasNext()) { + PGPPublicKeyRing kRing = rIt.next(); + Iterator kIt = kRing.getPublicKeys(); + while (publicKey == null && kIt.hasNext()) { + PGPPublicKey key = kIt.next(); + if (key.isEncryptionKey()) { + publicKey = key; + } + } + } + + if (publicKey == null) { + throw new IllegalArgumentException("Can't find public key in the key ring."); + } + if (!isForEncryption(publicKey)) { + throw new IllegalArgumentException("KeyID " + publicKey.getKeyID() + " not flagged for encryption."); + } + + return publicKey; + } + + @SuppressWarnings("unchecked") + public static PGPSecretKey readSecretKey(InputStream in) + throws IOException, PGPException { + + PGPSecretKeyRingCollection keyRingCollection = new PGPSecretKeyRingCollection(PGPUtil.getDecoderStream(in), new BcKeyFingerprintCalculator()); + + // + // We just loop through the collection till we find a key suitable for signing. + // In the real world you would probably want to be a bit smarter about this. + // + PGPSecretKey secretKey = null; + + Iterator rIt = keyRingCollection.getKeyRings(); + while (secretKey == null && rIt.hasNext()) { + PGPSecretKeyRing keyRing = rIt.next(); + Iterator kIt = keyRing.getSecretKeys(); + while (secretKey == null && kIt.hasNext()) { + PGPSecretKey key = kIt.next(); + if (key.isSigningKey()) { + secretKey = key; + } + } + } + + // Validate secret key + if (secretKey == null) { + throw new IllegalArgumentException("Can't find private key in the key ring."); + } + if (!secretKey.isSigningKey()) { + throw new IllegalArgumentException("Private key does not allow signing."); + } + if (secretKey.getPublicKey().hasRevocation()) { + throw new IllegalArgumentException("Private key has been revoked."); + } + if (!hasKeyFlags(secretKey.getPublicKey(), KeyFlags.SIGN_DATA)) { + throw new IllegalArgumentException("Key cannot be used for signing."); + } + + return secretKey; + } + + /** + * Load a secret key ring collection from keyIn and find the private key corresponding to + * keyID if it exists. + * + * @param keyIn input stream representing a key ring collection. + * @param keyID keyID we want. + * @param pass passphrase to decrypt secret key with. + * @return + * @throws IOException + * @throws PGPException + * @throws NoSuchProviderException + */ + public static PGPPrivateKey findPrivateKey(InputStream keyIn, long keyID, char[] pass) + throws IOException, PGPException, NoSuchProviderException { + PGPSecretKeyRingCollection pgpSec = new PGPSecretKeyRingCollection(PGPUtil.getDecoderStream(keyIn), new BcKeyFingerprintCalculator()); + return findPrivateKey(pgpSec.getSecretKey(keyID), pass); + + } + + /** + * Load a secret key and find the private key in it + * + * @param pgpSecKey The secret key + * @param pass passphrase to decrypt secret key with + * @return + * @throws PGPException + */ + public static PGPPrivateKey findPrivateKey(PGPSecretKey pgpSecKey, char[] pass) + throws PGPException { + if (pgpSecKey == null) + return null; + + PBESecretKeyDecryptor decryptor = new BcPBESecretKeyDecryptorBuilder(new BcPGPDigestCalculatorProvider()).build(pass); + return pgpSecKey.extractPrivateKey(decryptor); + } + + /** + * decrypt the passed in message stream + */ + @SuppressWarnings("unchecked") + public static void decryptFile(InputStream in, OutputStream out, InputStream keyIn, char[] passwd) + throws Exception { + Security.addProvider(new BouncyCastleProvider()); + + in = org.bouncycastle.openpgp.PGPUtil.getDecoderStream(in); + + PGPObjectFactory pgpF = new PGPObjectFactory(in, new BcKeyFingerprintCalculator()); + PGPEncryptedDataList enc; + + Object o = pgpF.nextObject(); + // + // the first object might be a PGP marker packet. + // + if (o instanceof PGPEncryptedDataList) { + enc = (PGPEncryptedDataList) o; + } else { + enc = (PGPEncryptedDataList) pgpF.nextObject(); + } + + // + // find the secret key + // + Iterator it = enc.getEncryptedDataObjects(); + PGPPrivateKey sKey = null; + PGPPublicKeyEncryptedData pbe = null; + + while (sKey == null && it.hasNext()) { + PGPEncryptedData data = it.next(); + + if (data instanceof PGPPublicKeyEncryptedData) { + pbe = (PGPPublicKeyEncryptedData) data; + sKey = findPrivateKey(keyIn, pbe.getKeyID(), passwd); + } + } + + if (sKey == null) { + String pbeMessage = pbe == null ? "" : " (Looking for key:" + pbe.getKeyID() + ")"; + throw new IllegalArgumentException("Secret key for message not found." + pbeMessage); + } + + InputStream clear = pbe.getDataStream(new BcPublicKeyDataDecryptorFactory(sKey)); + + PGPObjectFactory plainFact = new PGPObjectFactory(clear, new BcKeyFingerprintCalculator()); + + Object message = plainFact.nextObject(); + + if (message instanceof PGPCompressedData) { + PGPCompressedData cData = (PGPCompressedData) message; + PGPObjectFactory pgpFact = new PGPObjectFactory(cData.getDataStream(), new BcKeyFingerprintCalculator()); + + message = pgpFact.nextObject(); + } + + if (message instanceof PGPLiteralData) { + PGPLiteralData ld = (PGPLiteralData) message; + + InputStream unc = ld.getInputStream(); + int ch; + + while ((ch = unc.read()) >= 0) { + out.write(ch); + } + } else if (message instanceof PGPOnePassSignatureList) { + throw new PGPException("Encrypted message contains a signed message - not literal data."); + } else { + throw new PGPException("Message is not a simple encrypted file - type unknown."); + } + + if (pbe.isIntegrityProtected()) { + if (!pbe.verify()) { + throw new PGPException("Message failed integrity check"); + } + } + } + + public static void encryptFile( + OutputStream out, + String fileName, + PGPPublicKey encKey, + boolean armor, + boolean withIntegrityCheck) + throws IOException, NoSuchProviderException, PGPException { + Security.addProvider(new BouncyCastleProvider()); + + if (armor) { + out = new ArmoredOutputStream(out); + } + + ByteArrayOutputStream bOut = new ByteArrayOutputStream(); + PGPCompressedDataGenerator comData = new PGPCompressedDataGenerator(PGPCompressedData.ZIP); + + PGPUtil.writeFileToLiteralData( + comData.open(bOut), + PGPLiteralData.BINARY, + new File(fileName)); + + comData.close(); + + BcPGPDataEncryptorBuilder dataEncryptor = new BcPGPDataEncryptorBuilder(PGPEncryptedData.TRIPLE_DES); + dataEncryptor.setWithIntegrityPacket(withIntegrityCheck); + dataEncryptor.setSecureRandom(new SecureRandom()); + + PGPEncryptedDataGenerator encryptedDataGenerator = new PGPEncryptedDataGenerator(dataEncryptor); + encryptedDataGenerator.addMethod(new BcPublicKeyKeyEncryptionMethodGenerator(encKey)); + + byte[] bytes = bOut.toByteArray(); + OutputStream cOut = encryptedDataGenerator.open(out, bytes.length); + cOut.write(bytes); + cOut.close(); + + encryptedDataGenerator.close(); + bOut.close(); + + + if (armor) { + out.close(); + } + } + + @SuppressWarnings("unchecked") + public static void signEncryptFile( + OutputStream out, + String fileName, + PGPPublicKey publicKey, + PGPSecretKey secretKey, + String password, + boolean armor, + boolean withIntegrityCheck) + throws Exception { + + // Initialize Bouncy Castle security provider + Provider provider = new BouncyCastleProvider(); + Security.addProvider(provider); + + if (armor) { + out = new ArmoredOutputStream(out); + } + + BcPGPDataEncryptorBuilder dataEncryptor = new BcPGPDataEncryptorBuilder(PGPEncryptedData.TRIPLE_DES); + dataEncryptor.setWithIntegrityPacket(withIntegrityCheck); + dataEncryptor.setSecureRandom(new SecureRandom()); + + PGPEncryptedDataGenerator encryptedDataGenerator = new PGPEncryptedDataGenerator(dataEncryptor); + encryptedDataGenerator.addMethod(new BcPublicKeyKeyEncryptionMethodGenerator(publicKey)); + + OutputStream encryptedOut = encryptedDataGenerator.open(out, new byte[PGPUtils.BUFFER_SIZE]); + + // Initialize compressed data generator + PGPCompressedDataGenerator compressedDataGenerator = new PGPCompressedDataGenerator(PGPCompressedData.ZIP); + OutputStream compressedOut = compressedDataGenerator.open(encryptedOut, new byte[PGPUtils.BUFFER_SIZE]); + + // Initialize signature generator + PGPPrivateKey privateKey = findPrivateKey(secretKey, password.toCharArray()); + + PGPContentSignerBuilder signerBuilder = new BcPGPContentSignerBuilder(secretKey.getPublicKey().getAlgorithm(), + HashAlgorithmTags.SHA1); + + PGPSignatureGenerator signatureGenerator = new PGPSignatureGenerator(signerBuilder); + signatureGenerator.init(PGPSignature.BINARY_DOCUMENT, privateKey); + + boolean firstTime = true; + Iterator it = secretKey.getPublicKey().getUserIDs(); + while (it.hasNext() && firstTime) { + PGPSignatureSubpacketGenerator spGen = new PGPSignatureSubpacketGenerator(); + spGen.addSignerUserID(false, it.next()); + signatureGenerator.setHashedSubpackets(spGen.generate()); + // Exit the loop after the first iteration + firstTime = false; + } + signatureGenerator.generateOnePassVersion(false).encode(compressedOut); + + // Initialize literal data generator + PGPLiteralDataGenerator literalDataGenerator = new PGPLiteralDataGenerator(); + OutputStream literalOut = literalDataGenerator.open( + compressedOut, + PGPLiteralData.BINARY, + fileName, + new Date(), + new byte[PGPUtils.BUFFER_SIZE]); + + // Main loop - read the "in" stream, compress, encrypt and write to the "out" stream + FileInputStream in = new FileInputStream(fileName); + byte[] buf = new byte[PGPUtils.BUFFER_SIZE]; + int len; + while ((len = in.read(buf)) > 0) { + literalOut.write(buf, 0, len); + signatureGenerator.update(buf, 0, len); + } + + literalOut.close(); + in.close(); + literalDataGenerator.close(); + // Generate the signature, compress, encrypt and write to the "out" stream + signatureGenerator.generate().encode(compressedOut); + compressedDataGenerator.close(); + encryptedDataGenerator.close(); + if (armor) { + out.close(); + } + } + + public static boolean verifyFile( + InputStream in, + InputStream keyIn, + String extractContentFile) + throws Exception { + in = PGPUtil.getDecoderStream(in); + + PGPObjectFactory pgpFact = new PGPObjectFactory(in, new BcKeyFingerprintCalculator()); + PGPCompressedData c1 = (PGPCompressedData) pgpFact.nextObject(); + + pgpFact = new PGPObjectFactory(c1.getDataStream(), new BcKeyFingerprintCalculator()); + + PGPOnePassSignatureList p1 = (PGPOnePassSignatureList) pgpFact.nextObject(); + + PGPOnePassSignature ops = p1.get(0); + + PGPLiteralData p2 = (PGPLiteralData) pgpFact.nextObject(); + + InputStream dIn = p2.getInputStream(); + + try (FileOutputStream extractContentFileStream = new FileOutputStream(extractContentFile)) { + IOUtils.copy(dIn, extractContentFileStream); + } + + int ch; + PGPPublicKeyRingCollection pgpRing = new PGPPublicKeyRingCollection(PGPUtil.getDecoderStream(keyIn), new BcKeyFingerprintCalculator()); + + PGPPublicKey key = pgpRing.getPublicKey(ops.getKeyID()); + + if (key == null) { + throw new IllegalArgumentException("Can't find public key with id: " + ops.getKeyID()); + } + + try (FileOutputStream out = new FileOutputStream(p2.getFileName())) { + ops.init(new BcPGPContentVerifierBuilderProvider(), key); + + while ((ch = dIn.read()) >= 0) { + ops.update((byte) ch); + out.write(ch); + } + } + + PGPSignatureList p3 = (PGPSignatureList) pgpFact.nextObject(); + return ops.verify(p3.get(0)); + } + + /** + * From LockBox Lobs PGP Encryption tools. + * http://www.lockboxlabs.org/content/downloads + *

+ * I didn't think it was worth having to import a 4meg lib for three methods + * + * @param key + * @return + */ + public static boolean isForEncryption(PGPPublicKey key) { + if (key.getAlgorithm() == PublicKeyAlgorithmTags.RSA_SIGN + || key.getAlgorithm() == PublicKeyAlgorithmTags.DSA + || key.getAlgorithm() == PublicKeyAlgorithmTags.ECDH + || key.getAlgorithm() == PublicKeyAlgorithmTags.ECDSA) { + return false; + } + + return hasKeyFlags(key, KeyFlags.ENCRYPT_COMMS | KeyFlags.ENCRYPT_STORAGE); + } + + /** + * From LockBox Lobs PGP Encryption tools. + * http://www.lockboxlabs.org/content/downloads + *

+ * I didn't think it was worth having to import a 4meg lib for three methods + * + * @param key + * @return + */ + @SuppressWarnings("unchecked") + private static boolean hasKeyFlags(PGPPublicKey encKey, int keyUsage) { + if (encKey.isMasterKey()) { + for (int i = 0; i != PGPUtils.MASTER_KEY_CERTIFICATION_TYPES.length; i++) { + for (Iterator eIt = encKey.getSignaturesOfType(PGPUtils.MASTER_KEY_CERTIFICATION_TYPES[i]); eIt.hasNext(); ) { + PGPSignature sig = eIt.next(); + if (!isMatchingUsage(sig, keyUsage)) { + return false; + } + } + } + } else { + for (Iterator eIt = encKey.getSignaturesOfType(PGPSignature.SUBKEY_BINDING); eIt.hasNext(); ) { + PGPSignature sig = eIt.next(); + if (!isMatchingUsage(sig, keyUsage)) { + return false; + } + } + } + return true; + } + + /** + * From LockBox Lobs PGP Encryption tools. + * http://www.lockboxlabs.org/content/downloads + *

+ * I didn't think it was worth having to import a 4meg lib for three methods + * + * @param key + * @return + */ + private static boolean isMatchingUsage(PGPSignature sig, int keyUsage) { + if (sig.hasSubpackets()) { + PGPSignatureSubpacketVector sv = sig.getHashedSubPackets(); + if (sv.hasSubpacket(PGPUtils.KEY_FLAGS)) { + if ((sv.getKeyFlags() & keyUsage) == 0) { + return false; + } + } + } + return true; + } } \ No newline at end of file diff --git a/javasource/encryption/proxies/CertificateType.java b/javasource/encryption/proxies/CertificateType.java deleted file mode 100644 index d6c6317..0000000 --- a/javasource/encryption/proxies/CertificateType.java +++ /dev/null @@ -1,32 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package encryption.proxies; - -public enum CertificateType -{ - PublicKey(new java.lang.String[][] { new java.lang.String[] { "en_US", "PublicKey" } }), - PrivateKey(new java.lang.String[][] { new java.lang.String[] { "en_US", "PrivateKey" } }); - - private java.util.Map captions; - - private CertificateType(java.lang.String[][] captionStrings) - { - this.captions = new java.util.HashMap(); - for (java.lang.String[] captionString : captionStrings) - captions.put(captionString[0], captionString[1]); - } - - public java.lang.String getCaption(java.lang.String languageCode) - { - if (captions.containsKey(languageCode)) - return captions.get(languageCode); - return captions.get("en_US"); - } - - public java.lang.String getCaption() - { - return captions.get("en_US"); - } -} diff --git a/javasource/encryption/proxies/ExampleConfiguration.java b/javasource/encryption/proxies/ExampleConfiguration.java deleted file mode 100644 index 5004975..0000000 --- a/javasource/encryption/proxies/ExampleConfiguration.java +++ /dev/null @@ -1,281 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package encryption.proxies; - -public class ExampleConfiguration -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject exampleConfigurationMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "Encryption.ExampleConfiguration"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - Title("Title"), - Username("Username"), - Password("Password"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public ExampleConfiguration(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "Encryption.ExampleConfiguration")); - } - - protected ExampleConfiguration(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject exampleConfigurationMendixObject) - { - if (exampleConfigurationMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("Encryption.ExampleConfiguration", exampleConfigurationMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a Encryption.ExampleConfiguration"); - - this.exampleConfigurationMendixObject = exampleConfigurationMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'ExampleConfiguration.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static encryption.proxies.ExampleConfiguration initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return encryption.proxies.ExampleConfiguration.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static encryption.proxies.ExampleConfiguration initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new encryption.proxies.ExampleConfiguration(context, mendixObject); - } - - public static encryption.proxies.ExampleConfiguration load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return encryption.proxies.ExampleConfiguration.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//Encryption.ExampleConfiguration" + xpathConstraint)) - result.add(encryption.proxies.ExampleConfiguration.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of Title - */ - public final java.lang.String getTitle() - { - return getTitle(getContext()); - } - - /** - * @param context - * @return value of Title - */ - public final java.lang.String getTitle(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Title.toString()); - } - - /** - * Set value of Title - * @param title - */ - public final void setTitle(java.lang.String title) - { - setTitle(getContext(), title); - } - - /** - * Set value of Title - * @param context - * @param title - */ - public final void setTitle(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String title) - { - getMendixObject().setValue(context, MemberNames.Title.toString(), title); - } - - /** - * @return value of Username - */ - public final java.lang.String getUsername() - { - return getUsername(getContext()); - } - - /** - * @param context - * @return value of Username - */ - public final java.lang.String getUsername(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Username.toString()); - } - - /** - * Set value of Username - * @param username - */ - public final void setUsername(java.lang.String username) - { - setUsername(getContext(), username); - } - - /** - * Set value of Username - * @param context - * @param username - */ - public final void setUsername(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String username) - { - getMendixObject().setValue(context, MemberNames.Username.toString(), username); - } - - /** - * @return value of Password - */ - public final java.lang.String getPassword() - { - return getPassword(getContext()); - } - - /** - * @param context - * @return value of Password - */ - public final java.lang.String getPassword(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Password.toString()); - } - - /** - * Set value of Password - * @param password - */ - public final void setPassword(java.lang.String password) - { - setPassword(getContext(), password); - } - - /** - * Set value of Password - * @param context - * @param password - */ - public final void setPassword(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String password) - { - getMendixObject().setValue(context, MemberNames.Password.toString(), password); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return exampleConfigurationMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final encryption.proxies.ExampleConfiguration that = (encryption.proxies.ExampleConfiguration) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "Encryption.ExampleConfiguration"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/encryption/proxies/PGPCertificate.java b/javasource/encryption/proxies/PGPCertificate.java deleted file mode 100644 index 3bac57d..0000000 --- a/javasource/encryption/proxies/PGPCertificate.java +++ /dev/null @@ -1,362 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package encryption.proxies; - -/** - * This entity is used to hold the public and secret key ring for PGP encryption and decryption - */ -public class PGPCertificate extends system.proxies.FileDocument -{ - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "Encryption.PGPCertificate"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - CertificateType("CertificateType"), - PassPhrase_Plain("PassPhrase_Plain"), - PassPhrase_Encrypted("PassPhrase_Encrypted"), - Reference("Reference"), - EmailAddress("EmailAddress"), - FileID("FileID"), - Name("Name"), - DeleteAfterDownload("DeleteAfterDownload"), - Contents("Contents"), - HasContents("HasContents"), - Size("Size"), - SecretKey_PublicKey("Encryption.SecretKey_PublicKey"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public PGPCertificate(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "Encryption.PGPCertificate")); - } - - protected PGPCertificate(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject pGPCertificateMendixObject) - { - super(context, pGPCertificateMendixObject); - if (!com.mendix.core.Core.isSubClassOf("Encryption.PGPCertificate", pGPCertificateMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a Encryption.PGPCertificate"); - } - - /** - * @deprecated Use 'PGPCertificate.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static encryption.proxies.PGPCertificate initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return encryption.proxies.PGPCertificate.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static encryption.proxies.PGPCertificate initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new encryption.proxies.PGPCertificate(context, mendixObject); - } - - public static encryption.proxies.PGPCertificate load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return encryption.proxies.PGPCertificate.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//Encryption.PGPCertificate" + xpathConstraint)) - result.add(encryption.proxies.PGPCertificate.initialize(context, obj)); - return result; - } - - /** - * Set value of CertificateType - * @param certificatetype - */ - public final encryption.proxies.CertificateType getCertificateType() - { - return getCertificateType(getContext()); - } - - /** - * @param context - * @return value of CertificateType - */ - public final encryption.proxies.CertificateType getCertificateType(com.mendix.systemwideinterfaces.core.IContext context) - { - Object obj = getMendixObject().getValue(context, MemberNames.CertificateType.toString()); - if (obj == null) - return null; - - return encryption.proxies.CertificateType.valueOf((java.lang.String) obj); - } - - /** - * Set value of CertificateType - * @param certificatetype - */ - public final void setCertificateType(encryption.proxies.CertificateType certificatetype) - { - setCertificateType(getContext(), certificatetype); - } - - /** - * Set value of CertificateType - * @param context - * @param certificatetype - */ - public final void setCertificateType(com.mendix.systemwideinterfaces.core.IContext context, encryption.proxies.CertificateType certificatetype) - { - if (certificatetype != null) - getMendixObject().setValue(context, MemberNames.CertificateType.toString(), certificatetype.toString()); - else - getMendixObject().setValue(context, MemberNames.CertificateType.toString(), null); - } - - /** - * @return value of PassPhrase_Plain - */ - public final java.lang.String getPassPhrase_Plain() - { - return getPassPhrase_Plain(getContext()); - } - - /** - * @param context - * @return value of PassPhrase_Plain - */ - public final java.lang.String getPassPhrase_Plain(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.PassPhrase_Plain.toString()); - } - - /** - * Set value of PassPhrase_Plain - * @param passphrase_plain - */ - public final void setPassPhrase_Plain(java.lang.String passphrase_plain) - { - setPassPhrase_Plain(getContext(), passphrase_plain); - } - - /** - * Set value of PassPhrase_Plain - * @param context - * @param passphrase_plain - */ - public final void setPassPhrase_Plain(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String passphrase_plain) - { - getMendixObject().setValue(context, MemberNames.PassPhrase_Plain.toString(), passphrase_plain); - } - - /** - * @return value of PassPhrase_Encrypted - */ - public final java.lang.String getPassPhrase_Encrypted() - { - return getPassPhrase_Encrypted(getContext()); - } - - /** - * @param context - * @return value of PassPhrase_Encrypted - */ - public final java.lang.String getPassPhrase_Encrypted(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.PassPhrase_Encrypted.toString()); - } - - /** - * Set value of PassPhrase_Encrypted - * @param passphrase_encrypted - */ - public final void setPassPhrase_Encrypted(java.lang.String passphrase_encrypted) - { - setPassPhrase_Encrypted(getContext(), passphrase_encrypted); - } - - /** - * Set value of PassPhrase_Encrypted - * @param context - * @param passphrase_encrypted - */ - public final void setPassPhrase_Encrypted(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String passphrase_encrypted) - { - getMendixObject().setValue(context, MemberNames.PassPhrase_Encrypted.toString(), passphrase_encrypted); - } - - /** - * @return value of Reference - */ - public final java.lang.String getReference() - { - return getReference(getContext()); - } - - /** - * @param context - * @return value of Reference - */ - public final java.lang.String getReference(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Reference.toString()); - } - - /** - * Set value of Reference - * @param reference - */ - public final void setReference(java.lang.String reference) - { - setReference(getContext(), reference); - } - - /** - * Set value of Reference - * @param context - * @param reference - */ - public final void setReference(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String reference) - { - getMendixObject().setValue(context, MemberNames.Reference.toString(), reference); - } - - /** - * @return value of EmailAddress - */ - public final java.lang.String getEmailAddress() - { - return getEmailAddress(getContext()); - } - - /** - * @param context - * @return value of EmailAddress - */ - public final java.lang.String getEmailAddress(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.EmailAddress.toString()); - } - - /** - * Set value of EmailAddress - * @param emailaddress - */ - public final void setEmailAddress(java.lang.String emailaddress) - { - setEmailAddress(getContext(), emailaddress); - } - - /** - * Set value of EmailAddress - * @param context - * @param emailaddress - */ - public final void setEmailAddress(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String emailaddress) - { - getMendixObject().setValue(context, MemberNames.EmailAddress.toString(), emailaddress); - } - - /** - * @return value of SecretKey_PublicKey - */ - public final encryption.proxies.PGPCertificate getSecretKey_PublicKey() throws com.mendix.core.CoreException - { - return getSecretKey_PublicKey(getContext()); - } - - /** - * @param context - * @return value of SecretKey_PublicKey - */ - public final encryption.proxies.PGPCertificate getSecretKey_PublicKey(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - encryption.proxies.PGPCertificate result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.SecretKey_PublicKey.toString()); - if (identifier != null) - result = encryption.proxies.PGPCertificate.load(context, identifier); - return result; - } - - /** - * Set value of SecretKey_PublicKey - * @param secretkey_publickey - */ - public final void setSecretKey_PublicKey(encryption.proxies.PGPCertificate secretkey_publickey) - { - setSecretKey_PublicKey(getContext(), secretkey_publickey); - } - - /** - * Set value of SecretKey_PublicKey - * @param context - * @param secretkey_publickey - */ - public final void setSecretKey_PublicKey(com.mendix.systemwideinterfaces.core.IContext context, encryption.proxies.PGPCertificate secretkey_publickey) - { - if (secretkey_publickey == null) - getMendixObject().setValue(context, MemberNames.SecretKey_PublicKey.toString(), null); - else - getMendixObject().setValue(context, MemberNames.SecretKey_PublicKey.toString(), secretkey_publickey.getMendixObject().getId()); - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final encryption.proxies.PGPCertificate that = (encryption.proxies.PGPCertificate) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "Encryption.PGPCertificate"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Override - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/encryption/proxies/PasswordData.java b/javasource/encryption/proxies/PasswordData.java deleted file mode 100644 index 585ef0c..0000000 --- a/javasource/encryption/proxies/PasswordData.java +++ /dev/null @@ -1,280 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package encryption.proxies; - -public class PasswordData -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject passwordDataMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "Encryption.PasswordData"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - NewPassword("NewPassword"), - ConfirmPassword("ConfirmPassword"), - PasswordData_ExampleConfiguration("Encryption.PasswordData_ExampleConfiguration"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public PasswordData(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "Encryption.PasswordData")); - } - - protected PasswordData(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject passwordDataMendixObject) - { - if (passwordDataMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("Encryption.PasswordData", passwordDataMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a Encryption.PasswordData"); - - this.passwordDataMendixObject = passwordDataMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'PasswordData.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static encryption.proxies.PasswordData initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return encryption.proxies.PasswordData.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static encryption.proxies.PasswordData initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new encryption.proxies.PasswordData(context, mendixObject); - } - - public static encryption.proxies.PasswordData load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return encryption.proxies.PasswordData.initialize(context, mendixObject); - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of NewPassword - */ - public final java.lang.String getNewPassword() - { - return getNewPassword(getContext()); - } - - /** - * @param context - * @return value of NewPassword - */ - public final java.lang.String getNewPassword(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.NewPassword.toString()); - } - - /** - * Set value of NewPassword - * @param newpassword - */ - public final void setNewPassword(java.lang.String newpassword) - { - setNewPassword(getContext(), newpassword); - } - - /** - * Set value of NewPassword - * @param context - * @param newpassword - */ - public final void setNewPassword(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String newpassword) - { - getMendixObject().setValue(context, MemberNames.NewPassword.toString(), newpassword); - } - - /** - * @return value of ConfirmPassword - */ - public final java.lang.String getConfirmPassword() - { - return getConfirmPassword(getContext()); - } - - /** - * @param context - * @return value of ConfirmPassword - */ - public final java.lang.String getConfirmPassword(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.ConfirmPassword.toString()); - } - - /** - * Set value of ConfirmPassword - * @param confirmpassword - */ - public final void setConfirmPassword(java.lang.String confirmpassword) - { - setConfirmPassword(getContext(), confirmpassword); - } - - /** - * Set value of ConfirmPassword - * @param context - * @param confirmpassword - */ - public final void setConfirmPassword(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String confirmpassword) - { - getMendixObject().setValue(context, MemberNames.ConfirmPassword.toString(), confirmpassword); - } - - /** - * @return value of PasswordData_ExampleConfiguration - */ - public final encryption.proxies.ExampleConfiguration getPasswordData_ExampleConfiguration() throws com.mendix.core.CoreException - { - return getPasswordData_ExampleConfiguration(getContext()); - } - - /** - * @param context - * @return value of PasswordData_ExampleConfiguration - */ - public final encryption.proxies.ExampleConfiguration getPasswordData_ExampleConfiguration(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - encryption.proxies.ExampleConfiguration result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.PasswordData_ExampleConfiguration.toString()); - if (identifier != null) - result = encryption.proxies.ExampleConfiguration.load(context, identifier); - return result; - } - - /** - * Set value of PasswordData_ExampleConfiguration - * @param passworddata_exampleconfiguration - */ - public final void setPasswordData_ExampleConfiguration(encryption.proxies.ExampleConfiguration passworddata_exampleconfiguration) - { - setPasswordData_ExampleConfiguration(getContext(), passworddata_exampleconfiguration); - } - - /** - * Set value of PasswordData_ExampleConfiguration - * @param context - * @param passworddata_exampleconfiguration - */ - public final void setPasswordData_ExampleConfiguration(com.mendix.systemwideinterfaces.core.IContext context, encryption.proxies.ExampleConfiguration passworddata_exampleconfiguration) - { - if (passworddata_exampleconfiguration == null) - getMendixObject().setValue(context, MemberNames.PasswordData_ExampleConfiguration.toString(), null); - else - getMendixObject().setValue(context, MemberNames.PasswordData_ExampleConfiguration.toString(), passworddata_exampleconfiguration.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return passwordDataMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final encryption.proxies.PasswordData that = (encryption.proxies.PasswordData) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "Encryption.PasswordData"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/encryption/proxies/constants/Constants.java b/javasource/encryption/proxies/constants/Constants.java deleted file mode 100644 index 513445f..0000000 --- a/javasource/encryption/proxies/constants/Constants.java +++ /dev/null @@ -1,50 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package encryption.proxies.constants; - -import com.mendix.core.Core; - -public class Constants -{ - // These are the constants for the Encryption module - - /** - * This key will be used to encrypt and decrypt values. - * The length of this key must be 32 characters. - */ - public static java.lang.String getEncryptionKey() - { - return (java.lang.String)Core.getConfiguration().getConstantValue("Encryption.EncryptionKey"); - } - - /** - * Prefix for stored encrypted values. - * This value is used to determine whether the value has been already encrypted. - * The prefix must be either {AES}, {AES2} or {AES3}. - * Encryption is only supported if the prefix is {AES3}. - * It is not recommended to change this value. - */ - public static java.lang.String getEncryptionPrefix() - { - return (java.lang.String)Core.getConfiguration().getConstantValue("Encryption.EncryptionPrefix"); - } - - /** - * This key will be used to decrypt values that are encrypted with legacy algorithms. - * The length of this key must be 16 characters. - */ - public static java.lang.String getLegacyEncryptionKey() - { - return (java.lang.String)Core.getConfiguration().getConstantValue("Encryption.LegacyEncryptionKey"); - } - - /** - * Node which appears in log messages for this module. - */ - public static java.lang.String getLogNode() - { - return (java.lang.String)Core.getConfiguration().getConstantValue("Encryption.LogNode"); - } -} \ No newline at end of file diff --git a/javasource/encryption/proxies/microflows/Microflows.java b/javasource/encryption/proxies/microflows/Microflows.java deleted file mode 100644 index 815aa2c..0000000 --- a/javasource/encryption/proxies/microflows/Microflows.java +++ /dev/null @@ -1,111 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package encryption.proxies.microflows; - -import java.util.HashMap; -import java.util.Map; -import com.mendix.core.Core; -import com.mendix.core.CoreException; -import com.mendix.systemwideinterfaces.MendixRuntimeException; -import com.mendix.systemwideinterfaces.core.IContext; -import com.mendix.systemwideinterfaces.core.IMendixObject; - -public class Microflows -{ - // These are the microflows for the Encryption module - public static java.lang.String decrypt(IContext context, java.lang.String _encrypted) - { - Map params = new HashMap<>(); - params.put("Encrypted", _encrypted); - return (java.lang.String) Core.microflowCall("Encryption.Decrypt").withParams(params).execute(context); - } - public static void decrypt_Document(IContext context, system.proxies.FileDocument _fileDocument_Output, system.proxies.FileDocument _fileDocument_ToDecrypt, encryption.proxies.PGPCertificate _privateKeyForDecryption) - { - Map params = new HashMap<>(); - params.put("FileDocument_Output", _fileDocument_Output == null ? null : _fileDocument_Output.getMendixObject()); - params.put("FileDocument_ToDecrypt", _fileDocument_ToDecrypt == null ? null : _fileDocument_ToDecrypt.getMendixObject()); - params.put("PrivateKeyForDecryption", _privateKeyForDecryption == null ? null : _privateKeyForDecryption.getMendixObject()); - Core.microflowCall("Encryption.Decrypt_Document").withParams(params).execute(context); - } - public static java.lang.String decryptCommunityCommonsString(IContext context, java.lang.String _value, java.lang.String _key) - { - Map params = new HashMap<>(); - params.put("Value", _value); - params.put("Key", _key); - return (java.lang.String) Core.microflowCall("Encryption.DecryptCommunityCommonsString").withParams(params).execute(context); - } - public static encryption.proxies.PGPCertificate dS_GetAssociatedPubKey(IContext context, encryption.proxies.PGPCertificate _certificate) - { - Map params = new HashMap<>(); - params.put("Certificate", _certificate == null ? null : _certificate.getMendixObject()); - IMendixObject result = (IMendixObject)Core.microflowCall("Encryption.DS_GetAssociatedPubKey").withParams(params).execute(context); - return result == null ? null : encryption.proxies.PGPCertificate.initialize(context, result); - } - public static java.lang.String encrypt(IContext context, java.lang.String _plain) - { - Map params = new HashMap<>(); - params.put("Plain", _plain); - return (java.lang.String) Core.microflowCall("Encryption.Encrypt").withParams(params).execute(context); - } - public static void encrypt_Document(IContext context, system.proxies.FileDocument _fileDocument_ToEncrypt, system.proxies.FileDocument _fileDocument_Output, encryption.proxies.PGPCertificate _externalPubKey) - { - Map params = new HashMap<>(); - params.put("FileDocument_ToEncrypt", _fileDocument_ToEncrypt == null ? null : _fileDocument_ToEncrypt.getMendixObject()); - params.put("FileDocument_Output", _fileDocument_Output == null ? null : _fileDocument_Output.getMendixObject()); - params.put("ExternalPubKey", _externalPubKey == null ? null : _externalPubKey.getMendixObject()); - Core.microflowCall("Encryption.Encrypt_Document").withParams(params).execute(context); - } - public static java.lang.String forceEncrypt(IContext context, java.lang.String _plain) - { - Map params = new HashMap<>(); - params.put("Plain", _plain); - return (java.lang.String) Core.microflowCall("Encryption.ForceEncrypt").withParams(params).execute(context); - } - public static void mB_ChangePasswordSave(IContext context, encryption.proxies.PasswordData _passwordData) - { - Map params = new HashMap<>(); - params.put("PasswordData", _passwordData == null ? null : _passwordData.getMendixObject()); - Core.microflowCall("Encryption.MB_ChangePasswordSave").withParams(params).execute(context); - } - public static void mB_GenerateCertificate(IContext context, encryption.proxies.PGPCertificate _certificate_PrivateKey) - { - Map params = new HashMap<>(); - params.put("Certificate_PrivateKey", _certificate_PrivateKey == null ? null : _certificate_PrivateKey.getMendixObject()); - Core.microflowCall("Encryption.MB_GenerateCertificate").withParams(params).execute(context); - } - public static void mB_GenerateKeyShowPage(IContext context) - { - Map params = new HashMap<>(); - Core.microflowCall("Encryption.MB_GenerateKeyShowPage").withParams(params).execute(context); - } - public static void mB_NewPrivateKey(IContext context) - { - Map params = new HashMap<>(); - Core.microflowCall("Encryption.MB_NewPrivateKey").withParams(params).execute(context); - } - public static void mB_NewPubKey(IContext context) - { - Map params = new HashMap<>(); - Core.microflowCall("Encryption.MB_NewPubKey").withParams(params).execute(context); - } - public static void mB_OpenCertificateDetails(IContext context, encryption.proxies.PGPCertificate _certificate) - { - Map params = new HashMap<>(); - params.put("Certificate", _certificate == null ? null : _certificate.getMendixObject()); - Core.microflowCall("Encryption.MB_OpenCertificateDetails").withParams(params).execute(context); - } - public static void mB_SaveCertificate(IContext context, encryption.proxies.PGPCertificate _certificate) - { - Map params = new HashMap<>(); - params.put("Certificate", _certificate == null ? null : _certificate.getMendixObject()); - Core.microflowCall("Encryption.MB_SaveCertificate").withParams(params).execute(context); - } - public static void mB_ShowChangePassword(IContext context, encryption.proxies.ExampleConfiguration _exampleConfiguration) - { - Map params = new HashMap<>(); - params.put("ExampleConfiguration", _exampleConfiguration == null ? null : _exampleConfiguration.getMendixObject()); - Core.microflowCall("Encryption.MB_ShowChangePassword").withParams(params).execute(context); - } -} \ No newline at end of file diff --git a/javasource/feedbackmodule/actions/ValidateEmail.java b/javasource/feedbackmodule/actions/ValidateEmail.java new file mode 100644 index 0000000..0e755da --- /dev/null +++ b/javasource/feedbackmodule/actions/ValidateEmail.java @@ -0,0 +1,51 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +// Special characters, e.g., é, ö, à, etc. are supported in comments. + +package feedbackmodule.actions; + +import com.mendix.systemwideinterfaces.core.IContext; +import com.mendix.webui.CustomJavaAction; + +public class ValidateEmail extends CustomJavaAction +{ + private java.lang.String EmailAddress; + + public ValidateEmail(IContext context, java.lang.String EmailAddress) + { + super(context); + this.EmailAddress = EmailAddress; + } + + @java.lang.Override + public java.lang.Boolean executeAction() throws Exception + { + // BEGIN USER CODE + + // The regex used in this code is the same used in App Insights. If you want to apply more restricted rule, you can change it here. + String emailPattern = "^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$"; + java.util.regex.Pattern p = java.util.regex.Pattern.compile(emailPattern); + java.util.regex.Matcher m = p.matcher(EmailAddress); + return m.matches(); + + // END USER CODE + } + + /** + * Returns a string representation of this action + * @return a string representation of this action + */ + @java.lang.Override + public java.lang.String toString() + { + return "ValidateEmail"; + } + + // BEGIN EXTRA CODE + // END EXTRA CODE +} diff --git a/javasource/feedbackmodule/actions/XSS_Sanitizer.java b/javasource/feedbackmodule/actions/XSS_Sanitizer.java new file mode 100644 index 0000000..8bae484 --- /dev/null +++ b/javasource/feedbackmodule/actions/XSS_Sanitizer.java @@ -0,0 +1,87 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +// Special characters, e.g., é, ö, à, etc. are supported in comments. + +package feedbackmodule.actions; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import com.mendix.systemwideinterfaces.core.IContext; +import com.mendix.webui.CustomJavaAction; + +public class XSS_Sanitizer extends CustomJavaAction +{ + private java.lang.String stringToSanitize; + + public XSS_Sanitizer(IContext context, java.lang.String stringToSanitize) + { + super(context); + this.stringToSanitize = stringToSanitize; + } + + @java.lang.Override + public java.lang.String executeAction() throws Exception + { + // BEGIN USER CODE + + //It's a simple XSS sanitation with regex replace. + String sanitizedString = sanitize(stringToSanitize); + return sanitizedString; + + // END USER CODE + } + + /** + * Returns a string representation of this action + * @return a string representation of this action + */ + @java.lang.Override + public java.lang.String toString() + { + return "XSS_Sanitizer"; + } + + // BEGIN EXTRA CODE + public static String sanitize(String input) { + if (input == null || input.isEmpty()) { + return input; + } + + // Remove all occurrences of ", ""); + + // Remove all event handler attributes (e.g., onclick, onmouseover) + input = input.replaceAll("(?i)\\bon\\w+\\s*=\\s*(\"[^\"]*\"|'[^']*'|[^\\s>]+)", ""); + + // Remove all javascript: URLs + input = input.replaceAll("(?i)javascript:", ""); + + // Remove all ", ""); + + // Remove all tags + input = input.replaceAll("(?i)]*>.*?", ""); + + // Remove all tags + input = input.replaceAll("(?i)]*>.*?", ""); + + // Remove all tags + input = input.replaceAll("(?i)]*>.*?", ""); + + // Remove all tags that could potentially cause redirection + input = input.replaceAll("(?i)]*http-equiv[^>]*>", ""); + + // Remove all other potentially dangerous HTML tags + Pattern pattern = Pattern.compile("<[^>]*(>|$)"); + Matcher matcher = pattern.matcher(input); + input = matcher.replaceAll(""); + + return input; + } + // END EXTRA CODE +} diff --git a/javasource/migrationutility/proxies/DataStats_Before.java b/javasource/migrationutility/proxies/DataStats_Before.java deleted file mode 100644 index 71d2ffa..0000000 --- a/javasource/migrationutility/proxies/DataStats_Before.java +++ /dev/null @@ -1,466 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package migrationutility.proxies; - -public class DataStats_Before -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject dataStats_BeforeMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "MigrationUtility.DataStats_Before"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - ECAccounts("ECAccounts"), - ECEmails("ECEmails"), - ECTemplates("ECTemplates"), - ECErrorLogs("ECErrorLogs"), - ETAccounts("ETAccounts"), - ETEmails("ETEmails"), - ETTemplates("ETTemplates"), - ETErrorLogs("ETErrorLogs"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public DataStats_Before(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "MigrationUtility.DataStats_Before")); - } - - protected DataStats_Before(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject dataStats_BeforeMendixObject) - { - if (dataStats_BeforeMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("MigrationUtility.DataStats_Before", dataStats_BeforeMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a MigrationUtility.DataStats_Before"); - - this.dataStats_BeforeMendixObject = dataStats_BeforeMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'DataStats_Before.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static migrationutility.proxies.DataStats_Before initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return migrationutility.proxies.DataStats_Before.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static migrationutility.proxies.DataStats_Before initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new migrationutility.proxies.DataStats_Before(context, mendixObject); - } - - public static migrationutility.proxies.DataStats_Before load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return migrationutility.proxies.DataStats_Before.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//MigrationUtility.DataStats_Before" + xpathConstraint)) - result.add(migrationutility.proxies.DataStats_Before.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of ECAccounts - */ - public final java.lang.Long getECAccounts() - { - return getECAccounts(getContext()); - } - - /** - * @param context - * @return value of ECAccounts - */ - public final java.lang.Long getECAccounts(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Long) getMendixObject().getValue(context, MemberNames.ECAccounts.toString()); - } - - /** - * Set value of ECAccounts - * @param ecaccounts - */ - public final void setECAccounts(java.lang.Long ecaccounts) - { - setECAccounts(getContext(), ecaccounts); - } - - /** - * Set value of ECAccounts - * @param context - * @param ecaccounts - */ - public final void setECAccounts(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Long ecaccounts) - { - getMendixObject().setValue(context, MemberNames.ECAccounts.toString(), ecaccounts); - } - - /** - * @return value of ECEmails - */ - public final java.lang.Long getECEmails() - { - return getECEmails(getContext()); - } - - /** - * @param context - * @return value of ECEmails - */ - public final java.lang.Long getECEmails(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Long) getMendixObject().getValue(context, MemberNames.ECEmails.toString()); - } - - /** - * Set value of ECEmails - * @param ecemails - */ - public final void setECEmails(java.lang.Long ecemails) - { - setECEmails(getContext(), ecemails); - } - - /** - * Set value of ECEmails - * @param context - * @param ecemails - */ - public final void setECEmails(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Long ecemails) - { - getMendixObject().setValue(context, MemberNames.ECEmails.toString(), ecemails); - } - - /** - * @return value of ECTemplates - */ - public final java.lang.Long getECTemplates() - { - return getECTemplates(getContext()); - } - - /** - * @param context - * @return value of ECTemplates - */ - public final java.lang.Long getECTemplates(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Long) getMendixObject().getValue(context, MemberNames.ECTemplates.toString()); - } - - /** - * Set value of ECTemplates - * @param ectemplates - */ - public final void setECTemplates(java.lang.Long ectemplates) - { - setECTemplates(getContext(), ectemplates); - } - - /** - * Set value of ECTemplates - * @param context - * @param ectemplates - */ - public final void setECTemplates(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Long ectemplates) - { - getMendixObject().setValue(context, MemberNames.ECTemplates.toString(), ectemplates); - } - - /** - * @return value of ECErrorLogs - */ - public final java.lang.Long getECErrorLogs() - { - return getECErrorLogs(getContext()); - } - - /** - * @param context - * @return value of ECErrorLogs - */ - public final java.lang.Long getECErrorLogs(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Long) getMendixObject().getValue(context, MemberNames.ECErrorLogs.toString()); - } - - /** - * Set value of ECErrorLogs - * @param ecerrorlogs - */ - public final void setECErrorLogs(java.lang.Long ecerrorlogs) - { - setECErrorLogs(getContext(), ecerrorlogs); - } - - /** - * Set value of ECErrorLogs - * @param context - * @param ecerrorlogs - */ - public final void setECErrorLogs(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Long ecerrorlogs) - { - getMendixObject().setValue(context, MemberNames.ECErrorLogs.toString(), ecerrorlogs); - } - - /** - * @return value of ETAccounts - */ - public final java.lang.Long getETAccounts() - { - return getETAccounts(getContext()); - } - - /** - * @param context - * @return value of ETAccounts - */ - public final java.lang.Long getETAccounts(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Long) getMendixObject().getValue(context, MemberNames.ETAccounts.toString()); - } - - /** - * Set value of ETAccounts - * @param etaccounts - */ - public final void setETAccounts(java.lang.Long etaccounts) - { - setETAccounts(getContext(), etaccounts); - } - - /** - * Set value of ETAccounts - * @param context - * @param etaccounts - */ - public final void setETAccounts(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Long etaccounts) - { - getMendixObject().setValue(context, MemberNames.ETAccounts.toString(), etaccounts); - } - - /** - * @return value of ETEmails - */ - public final java.lang.Long getETEmails() - { - return getETEmails(getContext()); - } - - /** - * @param context - * @return value of ETEmails - */ - public final java.lang.Long getETEmails(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Long) getMendixObject().getValue(context, MemberNames.ETEmails.toString()); - } - - /** - * Set value of ETEmails - * @param etemails - */ - public final void setETEmails(java.lang.Long etemails) - { - setETEmails(getContext(), etemails); - } - - /** - * Set value of ETEmails - * @param context - * @param etemails - */ - public final void setETEmails(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Long etemails) - { - getMendixObject().setValue(context, MemberNames.ETEmails.toString(), etemails); - } - - /** - * @return value of ETTemplates - */ - public final java.lang.Long getETTemplates() - { - return getETTemplates(getContext()); - } - - /** - * @param context - * @return value of ETTemplates - */ - public final java.lang.Long getETTemplates(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Long) getMendixObject().getValue(context, MemberNames.ETTemplates.toString()); - } - - /** - * Set value of ETTemplates - * @param ettemplates - */ - public final void setETTemplates(java.lang.Long ettemplates) - { - setETTemplates(getContext(), ettemplates); - } - - /** - * Set value of ETTemplates - * @param context - * @param ettemplates - */ - public final void setETTemplates(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Long ettemplates) - { - getMendixObject().setValue(context, MemberNames.ETTemplates.toString(), ettemplates); - } - - /** - * @return value of ETErrorLogs - */ - public final java.lang.Long getETErrorLogs() - { - return getETErrorLogs(getContext()); - } - - /** - * @param context - * @return value of ETErrorLogs - */ - public final java.lang.Long getETErrorLogs(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Long) getMendixObject().getValue(context, MemberNames.ETErrorLogs.toString()); - } - - /** - * Set value of ETErrorLogs - * @param eterrorlogs - */ - public final void setETErrorLogs(java.lang.Long eterrorlogs) - { - setETErrorLogs(getContext(), eterrorlogs); - } - - /** - * Set value of ETErrorLogs - * @param context - * @param eterrorlogs - */ - public final void setETErrorLogs(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Long eterrorlogs) - { - getMendixObject().setValue(context, MemberNames.ETErrorLogs.toString(), eterrorlogs); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return dataStats_BeforeMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final migrationutility.proxies.DataStats_Before that = (migrationutility.proxies.DataStats_Before) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "MigrationUtility.DataStats_Before"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/migrationutility/proxies/MigrationConfig.java b/javasource/migrationutility/proxies/MigrationConfig.java deleted file mode 100644 index 4ddeb3f..0000000 --- a/javasource/migrationutility/proxies/MigrationConfig.java +++ /dev/null @@ -1,310 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package migrationutility.proxies; - -public class MigrationConfig -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject migrationConfigMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "MigrationUtility.MigrationConfig"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - MigrateAccounts("MigrateAccounts"), - MigrateEmailTemplates("MigrateEmailTemplates"), - MigrateEmails("MigrateEmails"), - MigrateErrorLogs("MigrateErrorLogs"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public MigrationConfig(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "MigrationUtility.MigrationConfig")); - } - - protected MigrationConfig(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject migrationConfigMendixObject) - { - if (migrationConfigMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("MigrationUtility.MigrationConfig", migrationConfigMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a MigrationUtility.MigrationConfig"); - - this.migrationConfigMendixObject = migrationConfigMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'MigrationConfig.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static migrationutility.proxies.MigrationConfig initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return migrationutility.proxies.MigrationConfig.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static migrationutility.proxies.MigrationConfig initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new migrationutility.proxies.MigrationConfig(context, mendixObject); - } - - public static migrationutility.proxies.MigrationConfig load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return migrationutility.proxies.MigrationConfig.initialize(context, mendixObject); - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of MigrateAccounts - */ - public final java.lang.Boolean getMigrateAccounts() - { - return getMigrateAccounts(getContext()); - } - - /** - * @param context - * @return value of MigrateAccounts - */ - public final java.lang.Boolean getMigrateAccounts(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.MigrateAccounts.toString()); - } - - /** - * Set value of MigrateAccounts - * @param migrateaccounts - */ - public final void setMigrateAccounts(java.lang.Boolean migrateaccounts) - { - setMigrateAccounts(getContext(), migrateaccounts); - } - - /** - * Set value of MigrateAccounts - * @param context - * @param migrateaccounts - */ - public final void setMigrateAccounts(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean migrateaccounts) - { - getMendixObject().setValue(context, MemberNames.MigrateAccounts.toString(), migrateaccounts); - } - - /** - * @return value of MigrateEmailTemplates - */ - public final java.lang.Boolean getMigrateEmailTemplates() - { - return getMigrateEmailTemplates(getContext()); - } - - /** - * @param context - * @return value of MigrateEmailTemplates - */ - public final java.lang.Boolean getMigrateEmailTemplates(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.MigrateEmailTemplates.toString()); - } - - /** - * Set value of MigrateEmailTemplates - * @param migrateemailtemplates - */ - public final void setMigrateEmailTemplates(java.lang.Boolean migrateemailtemplates) - { - setMigrateEmailTemplates(getContext(), migrateemailtemplates); - } - - /** - * Set value of MigrateEmailTemplates - * @param context - * @param migrateemailtemplates - */ - public final void setMigrateEmailTemplates(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean migrateemailtemplates) - { - getMendixObject().setValue(context, MemberNames.MigrateEmailTemplates.toString(), migrateemailtemplates); - } - - /** - * @return value of MigrateEmails - */ - public final java.lang.Boolean getMigrateEmails() - { - return getMigrateEmails(getContext()); - } - - /** - * @param context - * @return value of MigrateEmails - */ - public final java.lang.Boolean getMigrateEmails(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.MigrateEmails.toString()); - } - - /** - * Set value of MigrateEmails - * @param migrateemails - */ - public final void setMigrateEmails(java.lang.Boolean migrateemails) - { - setMigrateEmails(getContext(), migrateemails); - } - - /** - * Set value of MigrateEmails - * @param context - * @param migrateemails - */ - public final void setMigrateEmails(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean migrateemails) - { - getMendixObject().setValue(context, MemberNames.MigrateEmails.toString(), migrateemails); - } - - /** - * @return value of MigrateErrorLogs - */ - public final java.lang.Boolean getMigrateErrorLogs() - { - return getMigrateErrorLogs(getContext()); - } - - /** - * @param context - * @return value of MigrateErrorLogs - */ - public final java.lang.Boolean getMigrateErrorLogs(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.MigrateErrorLogs.toString()); - } - - /** - * Set value of MigrateErrorLogs - * @param migrateerrorlogs - */ - public final void setMigrateErrorLogs(java.lang.Boolean migrateerrorlogs) - { - setMigrateErrorLogs(getContext(), migrateerrorlogs); - } - - /** - * Set value of MigrateErrorLogs - * @param context - * @param migrateerrorlogs - */ - public final void setMigrateErrorLogs(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean migrateerrorlogs) - { - getMendixObject().setValue(context, MemberNames.MigrateErrorLogs.toString(), migrateerrorlogs); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return migrationConfigMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final migrationutility.proxies.MigrationConfig that = (migrationutility.proxies.MigrationConfig) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "MigrationUtility.MigrationConfig"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/migrationutility/proxies/constants/Constants.java b/javasource/migrationutility/proxies/constants/Constants.java deleted file mode 100644 index af47ace..0000000 --- a/javasource/migrationutility/proxies/constants/Constants.java +++ /dev/null @@ -1,22 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package migrationutility.proxies.constants; - -import com.mendix.core.Core; - -public class Constants -{ - // These are the constants for the MigrationUtility module - - public static java.lang.String getLogNode() - { - return (java.lang.String)Core.getConfiguration().getConstantValue("MigrationUtility.LogNode"); - } - - public static java.lang.String getMigrationUtility_Version() - { - return (java.lang.String)Core.getConfiguration().getConstantValue("MigrationUtility.MigrationUtility_Version"); - } -} \ No newline at end of file diff --git a/javasource/migrationutility/proxies/microflows/Microflows.java b/javasource/migrationutility/proxies/microflows/Microflows.java deleted file mode 100644 index 6ddecff..0000000 --- a/javasource/migrationutility/proxies/microflows/Microflows.java +++ /dev/null @@ -1,95 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package migrationutility.proxies.microflows; - -import java.util.HashMap; -import java.util.Map; -import com.mendix.core.Core; -import com.mendix.core.CoreException; -import com.mendix.systemwideinterfaces.MendixRuntimeException; -import com.mendix.systemwideinterfaces.core.IContext; -import com.mendix.systemwideinterfaces.core.IMendixObject; - -public class Microflows -{ - // These are the microflows for the MigrationUtility module - public static email_connector.proxies.EmailAccount aCT_CreateEmailAccountFromEmailSettings(IContext context, java.lang.String _userName, java.lang.String _password, java.lang.String _server, java.lang.Long _port, java.lang.String _fromAddress, java.lang.String _fromDisplayName, boolean _useSSL, boolean _useTLS, java.lang.Long _maxAttempts, boolean _useSSLCheckServerIdentity, boolean _isOAuthUsed) - { - Map params = new HashMap<>(); - params.put("UserName", _userName); - params.put("Password", _password); - params.put("Server", _server); - params.put("Port", _port); - params.put("FromAddress", _fromAddress); - params.put("FromDisplayName", _fromDisplayName); - params.put("UseSSL", _useSSL); - params.put("UseTLS", _useTLS); - params.put("MaxAttempts", _maxAttempts); - params.put("UseSSLCheckServerIdentity", _useSSLCheckServerIdentity); - params.put("isOAuthUsed", _isOAuthUsed); - IMendixObject result = (IMendixObject)Core.microflowCall("MigrationUtility.ACT_CreateEmailAccountFromEmailSettings").withParams(params).execute(context); - return result == null ? null : email_connector.proxies.EmailAccount.initialize(context, result); - } - public static email_connector.proxies.OAuthProvider aCT_CreateOAuthProvider(IContext context, email_connector.proxies.EmailAccount _mappingParent, java.lang.String _clientID, java.lang.String _clientSecret) - { - Map params = new HashMap<>(); - params.put("MappingParent", _mappingParent == null ? null : _mappingParent.getMendixObject()); - params.put("ClientID", _clientID); - params.put("ClientSecret", _clientSecret); - IMendixObject result = (IMendixObject)Core.microflowCall("MigrationUtility.ACT_CreateOAuthProvider").withParams(params).execute(context); - return result == null ? null : email_connector.proxies.OAuthProvider.initialize(context, result); - } - public static void aCT_DeleteBeforeStats(IContext context, migrationutility.proxies.DataStats_Before _dataStats_Before) - { - Map params = new HashMap<>(); - params.put("DataStats_Before", _dataStats_Before == null ? null : _dataStats_Before.getMendixObject()); - Core.microflowCall("MigrationUtility.ACT_DeleteBeforeStats").withParams(params).execute(context); - } - public static void aCT_MigrateEmailAccounts(IContext context) - { - Map params = new HashMap<>(); - Core.microflowCall("MigrationUtility.ACT_MigrateEmailAccounts").withParams(params).execute(context); - } - public static boolean aCT_MigrateEmailTemplates(IContext context) - { - Map params = new HashMap<>(); - return (java.lang.Boolean) Core.microflowCall("MigrationUtility.ACT_MigrateEmailTemplates").withParams(params).execute(context); - } - public static void aCT_MigrateErrorLog(IContext context) - { - Map params = new HashMap<>(); - Core.microflowCall("MigrationUtility.ACT_MigrateErrorLog").withParams(params).execute(context); - } - public static void aCT_StartMigration(IContext context, migrationutility.proxies.MigrationConfig _migrationConfig) - { - Map params = new HashMap<>(); - params.put("MigrationConfig", _migrationConfig == null ? null : _migrationConfig.getMendixObject()); - Core.microflowCall("MigrationUtility.ACT_StartMigration").withParams(params).execute(context); - } - public static java.lang.String cVRT_TruncateEmailLogMessage(IContext context, java.lang.String _message) - { - Map params = new HashMap<>(); - params.put("Message", _message); - return (java.lang.String) Core.microflowCall("MigrationUtility.CVRT_TruncateEmailLogMessage").withParams(params).execute(context); - } - public static migrationutility.proxies.ECDataStats_After dS_AfterStats(IContext context) - { - Map params = new HashMap<>(); - IMendixObject result = (IMendixObject)Core.microflowCall("MigrationUtility.DS_AfterStats").withParams(params).execute(context); - return result == null ? null : migrationutility.proxies.ECDataStats_After.initialize(context, result); - } - public static migrationutility.proxies.DataStats_Before dS_BeforeStats(IContext context) - { - Map params = new HashMap<>(); - IMendixObject result = (IMendixObject)Core.microflowCall("MigrationUtility.DS_BeforeStats").withParams(params).execute(context); - return result == null ? null : migrationutility.proxies.DataStats_Before.initialize(context, result); - } - public static migrationutility.proxies.MigrationConfig dS_MigrationConfig(IContext context) - { - Map params = new HashMap<>(); - IMendixObject result = (IMendixObject)Core.microflowCall("MigrationUtility.DS_MigrationConfig").withParams(params).execute(context); - return result == null ? null : migrationutility.proxies.MigrationConfig.initialize(context, result); - } -} \ No newline at end of file diff --git a/javasource/mxmodelreflection/DataParser.java b/javasource/mxmodelreflection/DataParser.java index bcea11d..10970d3 100644 --- a/javasource/mxmodelreflection/DataParser.java +++ b/javasource/mxmodelreflection/DataParser.java @@ -11,11 +11,11 @@ import java.text.SimpleDateFormat; import java.util.Date; import java.util.Formatter; -import java.util.Locale; import java.util.TimeZone; import com.mendix.core.Core; import com.mendix.core.CoreException; +import com.mendix.core.objectmanagement.member.MendixDateTime; import com.mendix.core.objectmanagement.member.MendixEnum; import com.mendix.systemwideinterfaces.core.IContext; import com.mendix.systemwideinterfaces.core.IMendixObjectMember; @@ -74,16 +74,14 @@ else if ( value instanceof Float ) { } return getFormattedNumber(context, Double.valueOf((Float) value), 2, 20); } + else if ( value instanceof MendixDateTime ) { + MendixDateTime mendixDate = (MendixDateTime) value; + Date date = mendixDate.getValue(context); + boolean shouldLocalize = mendixDate.shouldLocalize(); + return processDate(context, date, pattern, shouldLocalize); + } else if ( value instanceof Date ) { - TokenReplacer._logger.trace("Processing value as date, localized"); - - if( pattern != null && !"".equals(pattern) ) { - SimpleDateFormat df = new SimpleDateFormat(pattern, Core.getLocale(context) ); - df.setTimeZone(getSessionTimeZone(context)); - - return df.format( (Date) value ); - } - return processDate(context, (Date) value, true); + return processDate(context, (Date) value, pattern, true); } else if ( value instanceof Long ) { TokenReplacer._logger.trace("Processing value as long"); @@ -145,8 +143,14 @@ else if ( value instanceof Float || value instanceof Double ) { value = Double.valueOf((Float) value); strValue = getFormattedNumber(context, (Double) value, 2, 20); } + else if ( value instanceof MendixDateTime ) { + MendixDateTime mendixDate = (MendixDateTime) value; + Date date = mendixDate.getValue(context); + boolean shouldLocalize = mendixDate.shouldLocalize(); + return processDate(context, date, null, shouldLocalize); + } else if ( value instanceof Date ) - strValue = processDate(context, (Date) value, true); + strValue = processDate(context, (Date) value, null, true); else if ( value != null ) strValue = String.valueOf(value); } @@ -154,16 +158,18 @@ else if ( value != null ) return strValue; } - private static String processDate( IContext context, Date value, boolean shouldLocalize ) { - Date date = (Date) value; - Locale userLocale = Core.getLocale(context); - DateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy", userLocale); + private static String processDate( IContext context, Date date, String userPattern, boolean shouldLocalize ) { + String pattern = userPattern != null && !"".equals(userPattern) ? userPattern : "dd-MMM-yyyy"; + DateFormat dateFormat = new SimpleDateFormat(pattern, Core.getLocale(context)); - TokenReplacer._logger.trace("Processing date in timezone " + (shouldLocalize ? getSessionTimeZone(context).getDisplayName() : "UTC")); - if ( shouldLocalize ) - dateFormat.setTimeZone(getSessionTimeZone(context)); - else + if ( shouldLocalize ) { + TimeZone timezone = getSessionTimeZone(context); + TokenReplacer._logger.trace("Processing date in timezone " + timezone.getDisplayName()); + dateFormat.setTimeZone(timezone); + } else { + TokenReplacer._logger.trace("Processing date in timezone UTC"); dateFormat.setTimeZone(getUTCTimeZone()); + } return dateFormat.format(date); } diff --git a/javasource/mxmodelreflection/TokenReplacer.java b/javasource/mxmodelreflection/TokenReplacer.java index 165d2bf..6cd8e4f 100644 --- a/javasource/mxmodelreflection/TokenReplacer.java +++ b/javasource/mxmodelreflection/TokenReplacer.java @@ -12,6 +12,8 @@ import com.mendix.core.Core; import com.mendix.core.CoreException; +import com.mendix.core.objectmanagement.member.MendixObjectReference; +import com.mendix.core.objectmanagement.member.MendixObjectReferenceSet; import com.mendix.logging.ILogNode; import com.mendix.systemwideinterfaces.core.IContext; import com.mendix.systemwideinterfaces.core.IMendixIdentifier; @@ -19,6 +21,7 @@ import com.mendix.systemwideinterfaces.core.IMendixObjectMember; import com.mendix.systemwideinterfaces.core.meta.IMetaAssociation; import com.mendix.systemwideinterfaces.core.meta.IMetaAssociation.AssociationOwner; +import com.mendix.systemwideinterfaces.core.meta.IMetaObject; public class TokenReplacer { @@ -105,15 +108,16 @@ public static String replaceToken(IContext context, String text, IMendixObject t IMendixObject objectTypeStart = Core.retrieveId(context, (IMendixIdentifier) token.getValue(context, Token.MemberNames.Token_MxObjectType_Start.toString())); IMendixObject objectTypeReference = Core.retrieveId(context, (IMendixIdentifier) token.getValue(context, Token.MemberNames.Token_MxObjectType_Referenced.toString())); IMendixObject member = Core.retrieveId(context, (IMendixIdentifier) token.getValue(context, Token.MemberNames.Token_MxObjectMember.toString())); - - if( Core.isSubClassOf( (String) objectTypeStart.getValue(context, MxObjectType.MemberNames.CompleteName.toString()), replacementObject.getType() ) ) + String parentName = (String) objectTypeStart.getValue(context, MxObjectType.MemberNames.CompleteName.toString()); + if( Core.isSubClassOf(parentName, replacementObject.getType() ) ) { - IMetaAssociation association = Core.getMetaAssociation((String) reference.getValue(context, MxObjectReference.MemberNames.CompleteName.toString())); - if (association.getOwner() == AssociationOwner.BOTH - || association.getParent().getName().equals(objectTypeStart.getValue(context, MxObjectType.MemberNames.CompleteName.toString())) - || Core.isSubClassOf(association.getParent().getName(), replacementObject.getType())) + String associationName = (String) reference.getValue(context, MxObjectReference.MemberNames.CompleteName.toString()); + if (replacementObject.getMetaObject().getMetaAssociationParent(associationName) != null) { - IMendixIdentifier refObjectId = replacementObject.getValue(context, (String) reference.getValue(context, MxObjectReference.MemberNames.CompleteName.toString())); + final var association = replacementObject.getMember(context, associationName); + final var refObjectId = association instanceof MendixObjectReference ? + ((MendixObjectReference) association).getValue(context) : + ((MendixObjectReferenceSet) association).getValue(context).stream().findFirst().orElse(null); if (refObjectId != null) { IMendixObject refObj = Core.retrieveId(context, refObjectId); @@ -123,7 +127,7 @@ public static String replaceToken(IContext context, String text, IMendixObject t } else { - List result = Core.retrieveXPathQuery(context, "//" + objectTypeReference.getValue(context, MxObjectType.MemberNames.CompleteName.toString()) + "[" + reference.getValue(context, MxObjectReference.MemberNames.CompleteName.toString()) + "='" + replacementObject.getId().toLong() + "']"); + List result = Core.retrieveXPathQuery(context, "//" + objectTypeReference.getValue(context, MxObjectType.MemberNames.CompleteName.toString()) + "[" + associationName + "='" + replacementObject.getId().toLong() + "']"); if (result.size() > 0) { IMendixObject rsObject = result.get(0); @@ -133,7 +137,7 @@ public static String replaceToken(IContext context, String text, IMendixObject t } else { - throw new CoreException("wrong object type in token: " + tokenValue + ", Expecting type: " + objectTypeStart.getValue(context, MxObjectType.MemberNames.CompleteName.toString()) + " received type: " + replacementObject.getType()); + throw new CoreException("wrong object type in token: " + tokenValue + ", Expecting type: " + parentName + " received type: " + replacementObject.getType()); } } } diff --git a/javasource/mxmodelreflection/actions/JA_EnumValueCaptions.java b/javasource/mxmodelreflection/actions/JA_EnumValueCaptions.java new file mode 100644 index 0000000..246e34d --- /dev/null +++ b/javasource/mxmodelreflection/actions/JA_EnumValueCaptions.java @@ -0,0 +1,55 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +// Special characters, e.g., é, ö, à, etc. are supported in comments. + +package mxmodelreflection.actions; + +import com.mendix.systemwideinterfaces.core.IContext; +import com.mendix.webui.CustomJavaAction; +import com.mendix.systemwideinterfaces.core.IMendixObject; +import mxmodelreflection.proxies.MxObjectEnumCaptions; +import java.util.stream.Collectors; + +public class JA_EnumValueCaptions extends CustomJavaAction +{ + private IMendixObject __objectEnumValue; + private mxmodelreflection.proxies.MxObjectEnumValue objectEnumValue; + + public JA_EnumValueCaptions(IContext context, IMendixObject objectEnumValue) + { + super(context); + this.__objectEnumValue = objectEnumValue; + } + + @java.lang.Override + public java.lang.String executeAction() throws Exception + { + this.objectEnumValue = this.__objectEnumValue == null ? null : mxmodelreflection.proxies.MxObjectEnumValue.initialize(getContext(), __objectEnumValue); + + // BEGIN USER CODE + if (objectEnumValue == null) { + return null; + } else { + return objectEnumValue.getCaptions().stream().map(MxObjectEnumCaptions::getCaption).collect(Collectors.joining(", ")); + } + // END USER CODE + } + + /** + * Returns a string representation of this action + * @return a string representation of this action + */ + @java.lang.Override + public java.lang.String toString() + { + return "JA_EnumValueCaptions"; + } + + // BEGIN EXTRA CODE + // END EXTRA CODE +} diff --git a/javasource/mxmodelreflection/actions/JA_EnumValueLanguages.java b/javasource/mxmodelreflection/actions/JA_EnumValueLanguages.java new file mode 100644 index 0000000..a88bc40 --- /dev/null +++ b/javasource/mxmodelreflection/actions/JA_EnumValueLanguages.java @@ -0,0 +1,55 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +// Special characters, e.g., é, ö, à, etc. are supported in comments. + +package mxmodelreflection.actions; + +import com.mendix.systemwideinterfaces.core.IContext; +import com.mendix.webui.CustomJavaAction; +import com.mendix.systemwideinterfaces.core.IMendixObject; +import mxmodelreflection.proxies.MxObjectEnumCaptions; +import java.util.stream.Collectors; + +public class JA_EnumValueLanguages extends CustomJavaAction +{ + private IMendixObject __objectEnumValue; + private mxmodelreflection.proxies.MxObjectEnumValue objectEnumValue; + + public JA_EnumValueLanguages(IContext context, IMendixObject objectEnumValue) + { + super(context); + this.__objectEnumValue = objectEnumValue; + } + + @java.lang.Override + public java.lang.String executeAction() throws Exception + { + this.objectEnumValue = this.__objectEnumValue == null ? null : mxmodelreflection.proxies.MxObjectEnumValue.initialize(getContext(), __objectEnumValue); + + // BEGIN USER CODE + if (objectEnumValue == null) { + return null; + } else { + return objectEnumValue.getCaptions().stream().map(MxObjectEnumCaptions::getLanguageCode).collect(Collectors.joining(", ")); + } + // END USER CODE + } + + /** + * Returns a string representation of this action + * @return a string representation of this action + */ + @java.lang.Override + public java.lang.String toString() + { + return "JA_EnumValueLanguages"; + } + + // BEGIN EXTRA CODE + // END EXTRA CODE +} diff --git a/javasource/mxmodelreflection/actions/JA_ReferenceObjects.java b/javasource/mxmodelreflection/actions/JA_ReferenceObjects.java new file mode 100644 index 0000000..6de9c5e --- /dev/null +++ b/javasource/mxmodelreflection/actions/JA_ReferenceObjects.java @@ -0,0 +1,55 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +// Special characters, e.g., é, ö, à, etc. are supported in comments. + +package mxmodelreflection.actions; + +import com.mendix.systemwideinterfaces.core.IContext; +import com.mendix.webui.CustomJavaAction; +import com.mendix.systemwideinterfaces.core.IMendixObject; +import mxmodelreflection.proxies.MxObjectType; +import java.util.stream.Collectors; + +public class JA_ReferenceObjects extends CustomJavaAction +{ + private IMendixObject __objectReference; + private mxmodelreflection.proxies.MxObjectReference objectReference; + + public JA_ReferenceObjects(IContext context, IMendixObject objectReference) + { + super(context); + this.__objectReference = objectReference; + } + + @java.lang.Override + public java.lang.String executeAction() throws Exception + { + this.objectReference = this.__objectReference == null ? null : mxmodelreflection.proxies.MxObjectReference.initialize(getContext(), __objectReference); + + // BEGIN USER CODE + if (objectReference == null) { + return null; + } else { + return objectReference.getMxObjectReference_MxObjectType().stream().map(MxObjectType::getCompleteName).collect(Collectors.joining(",")); + } + // END USER CODE + } + + /** + * Returns a string representation of this action + * @return a string representation of this action + */ + @java.lang.Override + public java.lang.String toString() + { + return "JA_ReferenceObjects"; + } + + // BEGIN EXTRA CODE + // END EXTRA CODE +} diff --git a/javasource/mxmodelreflection/actions/ReplaceToken.java b/javasource/mxmodelreflection/actions/ReplaceToken.java index a2a1f0c..aee6032 100644 --- a/javasource/mxmodelreflection/actions/ReplaceToken.java +++ b/javasource/mxmodelreflection/actions/ReplaceToken.java @@ -35,7 +35,7 @@ public ReplaceToken(IContext context, IMendixObject TokenObject, IMendixObject V @java.lang.Override public java.lang.String executeAction() throws Exception { - this.TokenObject = __TokenObject == null ? null : mxmodelreflection.proxies.Token.initialize(getContext(), __TokenObject); + this.TokenObject = this.__TokenObject == null ? null : mxmodelreflection.proxies.Token.initialize(getContext(), __TokenObject); // BEGIN USER CODE return TokenReplacer.replaceToken(this.getContext(), this.TextToReplace, this.__TokenObject, this.ValueObject); @@ -44,6 +44,7 @@ public java.lang.String executeAction() throws Exception /** * Returns a string representation of this action + * @return a string representation of this action */ @java.lang.Override public java.lang.String toString() diff --git a/javasource/mxmodelreflection/actions/SyncObjects.java b/javasource/mxmodelreflection/actions/SyncObjects.java index 2b4c7f3..cdbd85f 100644 --- a/javasource/mxmodelreflection/actions/SyncObjects.java +++ b/javasource/mxmodelreflection/actions/SyncObjects.java @@ -53,6 +53,7 @@ public java.lang.Boolean executeAction() throws Exception /** * Returns a string representation of this action + * @return a string representation of this action */ @java.lang.Override public java.lang.String toString() diff --git a/javasource/mxmodelreflection/actions/TestThePattern.java b/javasource/mxmodelreflection/actions/TestThePattern.java index cb1be8c..00ffb7a 100644 --- a/javasource/mxmodelreflection/actions/TestThePattern.java +++ b/javasource/mxmodelreflection/actions/TestThePattern.java @@ -33,7 +33,7 @@ public TestThePattern(IContext context, IMendixObject TestPatternObj) @java.lang.Override public java.lang.Boolean executeAction() throws Exception { - this.TestPatternObj = __TestPatternObj == null ? null : mxmodelreflection.proxies.TestPattern.initialize(getContext(), __TestPatternObj); + this.TestPatternObj = this.__TestPatternObj == null ? null : mxmodelreflection.proxies.TestPattern.initialize(getContext(), __TestPatternObj); // BEGIN USER CODE @@ -85,6 +85,7 @@ public java.lang.Boolean executeAction() throws Exception /** * Returns a string representation of this action + * @return a string representation of this action */ @java.lang.Override public java.lang.String toString() diff --git a/javasource/mxmodelreflection/actions/ValidateTokensInMessage.java b/javasource/mxmodelreflection/actions/ValidateTokensInMessage.java index c54fd3e..d2a4a82 100644 --- a/javasource/mxmodelreflection/actions/ValidateTokensInMessage.java +++ b/javasource/mxmodelreflection/actions/ValidateTokensInMessage.java @@ -33,10 +33,11 @@ public ValidateTokensInMessage(IContext context, java.lang.String Text, java.uti @java.lang.Override public java.util.List executeAction() throws Exception { - this.TokenList = new java.util.ArrayList(); - if (__TokenList != null) - for (IMendixObject __TokenListElement : __TokenList) - this.TokenList.add(mxmodelreflection.proxies.Token.initialize(getContext(), __TokenListElement)); + this.TokenList = java.util.Optional.ofNullable(this.__TokenList) + .orElse(java.util.Collections.emptyList()) + .stream() + .map(__TokenListElement -> mxmodelreflection.proxies.Token.initialize(getContext(), __TokenListElement)) + .collect(java.util.stream.Collectors.toList()); // BEGIN USER CODE @@ -46,6 +47,7 @@ public java.util.List executeAction() throws Exception /** * Returns a string representation of this action + * @return a string representation of this action */ @java.lang.Override public java.lang.String toString() diff --git a/javasource/mxmodelreflection/proxies/AssociationOwner.java b/javasource/mxmodelreflection/proxies/AssociationOwner.java deleted file mode 100644 index 2ff48e9..0000000 --- a/javasource/mxmodelreflection/proxies/AssociationOwner.java +++ /dev/null @@ -1,32 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package mxmodelreflection.proxies; - -public enum AssociationOwner -{ - _Default(new java.lang.String[][] { new java.lang.String[] { "nl_NL", "Default" }, new java.lang.String[] { "en_GB", "Default" }, new java.lang.String[] { "en_US", "Default" }, new java.lang.String[] { "en_ZA", "Default" } }), - Both(new java.lang.String[][] { new java.lang.String[] { "nl_NL", "Beide" }, new java.lang.String[] { "en_GB", "Both" }, new java.lang.String[] { "en_US", "Both" }, new java.lang.String[] { "en_ZA", "Both" } }); - - private java.util.Map captions; - - private AssociationOwner(java.lang.String[][] captionStrings) - { - this.captions = new java.util.HashMap(); - for (java.lang.String[] captionString : captionStrings) - captions.put(captionString[0], captionString[1]); - } - - public java.lang.String getCaption(java.lang.String languageCode) - { - if (captions.containsKey(languageCode)) - return captions.get(languageCode); - return captions.get("en_US"); - } - - public java.lang.String getCaption() - { - return captions.get("en_US"); - } -} diff --git a/javasource/mxmodelreflection/proxies/AttributeTypes.java b/javasource/mxmodelreflection/proxies/AttributeTypes.java deleted file mode 100644 index 775b499..0000000 --- a/javasource/mxmodelreflection/proxies/AttributeTypes.java +++ /dev/null @@ -1,41 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package mxmodelreflection.proxies; - -public enum AttributeTypes -{ - AutoNumber(new java.lang.String[][] { new java.lang.String[] { "en_US", "Auto number" }, new java.lang.String[] { "nl_NL", "Autonummer" }, new java.lang.String[] { "en_GB", "Auto number" }, new java.lang.String[] { "en_ZA", "Auto number" } }), - BooleanType(new java.lang.String[][] { new java.lang.String[] { "en_US", "Boolean" }, new java.lang.String[] { "nl_NL", "Boolean" }, new java.lang.String[] { "en_GB", "Boolean" }, new java.lang.String[] { "en_ZA", "Boolean" } }), - Currency(new java.lang.String[][] { new java.lang.String[] { "en_US", "Currency" }, new java.lang.String[] { "nl_NL", "Currency" }, new java.lang.String[] { "en_GB", "Currency" }, new java.lang.String[] { "en_ZA", "Currency" } }), - DateTime(new java.lang.String[][] { new java.lang.String[] { "en_US", "DateTime" }, new java.lang.String[] { "nl_NL", "DateTime" }, new java.lang.String[] { "en_GB", "DateTime" }, new java.lang.String[] { "en_ZA", "DateTime" } }), - EnumType(new java.lang.String[][] { new java.lang.String[] { "en_US", "Enum" }, new java.lang.String[] { "nl_NL", "Enum" }, new java.lang.String[] { "en_GB", "Enum" }, new java.lang.String[] { "en_ZA", "Enum" } }), - FloatType(new java.lang.String[][] { new java.lang.String[] { "en_US", "Float" }, new java.lang.String[] { "nl_NL", "Float" }, new java.lang.String[] { "en_GB", "Float" }, new java.lang.String[] { "en_ZA", "Float" } }), - HashString(new java.lang.String[][] { new java.lang.String[] { "en_US", "Hash string (i.e. passwords)" }, new java.lang.String[] { "nl_NL", "Hash string (bv. wachtwoorden)" }, new java.lang.String[] { "en_GB", "Hash string (i.e. passwords)" }, new java.lang.String[] { "en_ZA", "Hash string (i.e. passwords)" } }), - IntegerType(new java.lang.String[][] { new java.lang.String[] { "en_US", "Integer" }, new java.lang.String[] { "nl_NL", "Integer" }, new java.lang.String[] { "en_GB", "Integer" }, new java.lang.String[] { "en_ZA", "Integer" } }), - LongType(new java.lang.String[][] { new java.lang.String[] { "en_US", "Long" }, new java.lang.String[] { "nl_NL", "Long" }, new java.lang.String[] { "en_GB", "Long" }, new java.lang.String[] { "en_ZA", "Long" } }), - StringType(new java.lang.String[][] { new java.lang.String[] { "en_US", "String" }, new java.lang.String[] { "nl_NL", "String" }, new java.lang.String[] { "en_GB", "String" }, new java.lang.String[] { "en_ZA", "String" } }), - Decimal(new java.lang.String[][] { new java.lang.String[] { "en_US", "Decimal" }, new java.lang.String[] { "nl_NL", "Decimal" }, new java.lang.String[] { "en_GB", "Decimal" }, new java.lang.String[] { "en_ZA", "Decimal" } }); - - private java.util.Map captions; - - private AttributeTypes(java.lang.String[][] captionStrings) - { - this.captions = new java.util.HashMap(); - for (java.lang.String[] captionString : captionStrings) - captions.put(captionString[0], captionString[1]); - } - - public java.lang.String getCaption(java.lang.String languageCode) - { - if (captions.containsKey(languageCode)) - return captions.get(languageCode); - return captions.get("en_US"); - } - - public java.lang.String getCaption() - { - return captions.get("en_US"); - } -} diff --git a/javasource/mxmodelreflection/proxies/DbSizeEstimate.java b/javasource/mxmodelreflection/proxies/DbSizeEstimate.java deleted file mode 100644 index d2342c6..0000000 --- a/javasource/mxmodelreflection/proxies/DbSizeEstimate.java +++ /dev/null @@ -1,362 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package mxmodelreflection.proxies; - -public class DbSizeEstimate -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject dbSizeEstimateMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "MxModelReflection.DbSizeEstimate"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - NrOfRecords("NrOfRecords"), - CalculatedSizeInBytes("CalculatedSizeInBytes"), - CalculatedSizeInKiloBytes("CalculatedSizeInKiloBytes"), - FindObjectType("FindObjectType"), - DbSizeEstimate_MxObjectType("MxModelReflection.DbSizeEstimate_MxObjectType"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public DbSizeEstimate(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "MxModelReflection.DbSizeEstimate")); - } - - protected DbSizeEstimate(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject dbSizeEstimateMendixObject) - { - if (dbSizeEstimateMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("MxModelReflection.DbSizeEstimate", dbSizeEstimateMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a MxModelReflection.DbSizeEstimate"); - - this.dbSizeEstimateMendixObject = dbSizeEstimateMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'DbSizeEstimate.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static mxmodelreflection.proxies.DbSizeEstimate initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return mxmodelreflection.proxies.DbSizeEstimate.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static mxmodelreflection.proxies.DbSizeEstimate initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new mxmodelreflection.proxies.DbSizeEstimate(context, mendixObject); - } - - public static mxmodelreflection.proxies.DbSizeEstimate load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return mxmodelreflection.proxies.DbSizeEstimate.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//MxModelReflection.DbSizeEstimate" + xpathConstraint)) - result.add(mxmodelreflection.proxies.DbSizeEstimate.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of NrOfRecords - */ - public final java.lang.Integer getNrOfRecords() - { - return getNrOfRecords(getContext()); - } - - /** - * @param context - * @return value of NrOfRecords - */ - public final java.lang.Integer getNrOfRecords(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Integer) getMendixObject().getValue(context, MemberNames.NrOfRecords.toString()); - } - - /** - * Set value of NrOfRecords - * @param nrofrecords - */ - public final void setNrOfRecords(java.lang.Integer nrofrecords) - { - setNrOfRecords(getContext(), nrofrecords); - } - - /** - * Set value of NrOfRecords - * @param context - * @param nrofrecords - */ - public final void setNrOfRecords(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Integer nrofrecords) - { - getMendixObject().setValue(context, MemberNames.NrOfRecords.toString(), nrofrecords); - } - - /** - * @return value of CalculatedSizeInBytes - */ - public final java.lang.Long getCalculatedSizeInBytes() - { - return getCalculatedSizeInBytes(getContext()); - } - - /** - * @param context - * @return value of CalculatedSizeInBytes - */ - public final java.lang.Long getCalculatedSizeInBytes(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Long) getMendixObject().getValue(context, MemberNames.CalculatedSizeInBytes.toString()); - } - - /** - * Set value of CalculatedSizeInBytes - * @param calculatedsizeinbytes - */ - public final void setCalculatedSizeInBytes(java.lang.Long calculatedsizeinbytes) - { - setCalculatedSizeInBytes(getContext(), calculatedsizeinbytes); - } - - /** - * Set value of CalculatedSizeInBytes - * @param context - * @param calculatedsizeinbytes - */ - public final void setCalculatedSizeInBytes(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Long calculatedsizeinbytes) - { - getMendixObject().setValue(context, MemberNames.CalculatedSizeInBytes.toString(), calculatedsizeinbytes); - } - - /** - * @return value of CalculatedSizeInKiloBytes - */ - public final java.lang.Long getCalculatedSizeInKiloBytes() - { - return getCalculatedSizeInKiloBytes(getContext()); - } - - /** - * @param context - * @return value of CalculatedSizeInKiloBytes - */ - public final java.lang.Long getCalculatedSizeInKiloBytes(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Long) getMendixObject().getValue(context, MemberNames.CalculatedSizeInKiloBytes.toString()); - } - - /** - * Set value of CalculatedSizeInKiloBytes - * @param calculatedsizeinkilobytes - */ - public final void setCalculatedSizeInKiloBytes(java.lang.Long calculatedsizeinkilobytes) - { - setCalculatedSizeInKiloBytes(getContext(), calculatedsizeinkilobytes); - } - - /** - * Set value of CalculatedSizeInKiloBytes - * @param context - * @param calculatedsizeinkilobytes - */ - public final void setCalculatedSizeInKiloBytes(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Long calculatedsizeinkilobytes) - { - getMendixObject().setValue(context, MemberNames.CalculatedSizeInKiloBytes.toString(), calculatedsizeinkilobytes); - } - - /** - * @return value of FindObjectType - */ - public final java.lang.String getFindObjectType() - { - return getFindObjectType(getContext()); - } - - /** - * @param context - * @return value of FindObjectType - */ - public final java.lang.String getFindObjectType(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.FindObjectType.toString()); - } - - /** - * Set value of FindObjectType - * @param findobjecttype - */ - public final void setFindObjectType(java.lang.String findobjecttype) - { - setFindObjectType(getContext(), findobjecttype); - } - - /** - * Set value of FindObjectType - * @param context - * @param findobjecttype - */ - public final void setFindObjectType(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String findobjecttype) - { - getMendixObject().setValue(context, MemberNames.FindObjectType.toString(), findobjecttype); - } - - /** - * @return value of DbSizeEstimate_MxObjectType - */ - public final mxmodelreflection.proxies.MxObjectType getDbSizeEstimate_MxObjectType() throws com.mendix.core.CoreException - { - return getDbSizeEstimate_MxObjectType(getContext()); - } - - /** - * @param context - * @return value of DbSizeEstimate_MxObjectType - */ - public final mxmodelreflection.proxies.MxObjectType getDbSizeEstimate_MxObjectType(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - mxmodelreflection.proxies.MxObjectType result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.DbSizeEstimate_MxObjectType.toString()); - if (identifier != null) - result = mxmodelreflection.proxies.MxObjectType.load(context, identifier); - return result; - } - - /** - * Set value of DbSizeEstimate_MxObjectType - * @param dbsizeestimate_mxobjecttype - */ - public final void setDbSizeEstimate_MxObjectType(mxmodelreflection.proxies.MxObjectType dbsizeestimate_mxobjecttype) - { - setDbSizeEstimate_MxObjectType(getContext(), dbsizeestimate_mxobjecttype); - } - - /** - * Set value of DbSizeEstimate_MxObjectType - * @param context - * @param dbsizeestimate_mxobjecttype - */ - public final void setDbSizeEstimate_MxObjectType(com.mendix.systemwideinterfaces.core.IContext context, mxmodelreflection.proxies.MxObjectType dbsizeestimate_mxobjecttype) - { - if (dbsizeestimate_mxobjecttype == null) - getMendixObject().setValue(context, MemberNames.DbSizeEstimate_MxObjectType.toString(), null); - else - getMendixObject().setValue(context, MemberNames.DbSizeEstimate_MxObjectType.toString(), dbsizeestimate_mxobjecttype.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return dbSizeEstimateMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final mxmodelreflection.proxies.DbSizeEstimate that = (mxmodelreflection.proxies.DbSizeEstimate) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "MxModelReflection.DbSizeEstimate"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/mxmodelreflection/proxies/InheritsFromContainer.java b/javasource/mxmodelreflection/proxies/InheritsFromContainer.java deleted file mode 100644 index 933a78d..0000000 --- a/javasource/mxmodelreflection/proxies/InheritsFromContainer.java +++ /dev/null @@ -1,199 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package mxmodelreflection.proxies; - -public class InheritsFromContainer -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject inheritsFromContainerMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "MxModelReflection.InheritsFromContainer"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - Summary("Summary"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public InheritsFromContainer(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "MxModelReflection.InheritsFromContainer")); - } - - protected InheritsFromContainer(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject inheritsFromContainerMendixObject) - { - if (inheritsFromContainerMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("MxModelReflection.InheritsFromContainer", inheritsFromContainerMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a MxModelReflection.InheritsFromContainer"); - - this.inheritsFromContainerMendixObject = inheritsFromContainerMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'InheritsFromContainer.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static mxmodelreflection.proxies.InheritsFromContainer initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return mxmodelreflection.proxies.InheritsFromContainer.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static mxmodelreflection.proxies.InheritsFromContainer initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new mxmodelreflection.proxies.InheritsFromContainer(context, mendixObject); - } - - public static mxmodelreflection.proxies.InheritsFromContainer load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return mxmodelreflection.proxies.InheritsFromContainer.initialize(context, mendixObject); - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of Summary - */ - public final java.lang.String getSummary() - { - return getSummary(getContext()); - } - - /** - * @param context - * @return value of Summary - */ - public final java.lang.String getSummary(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Summary.toString()); - } - - /** - * Set value of Summary - * @param summary - */ - public final void setSummary(java.lang.String summary) - { - setSummary(getContext(), summary); - } - - /** - * Set value of Summary - * @param context - * @param summary - */ - public final void setSummary(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String summary) - { - getMendixObject().setValue(context, MemberNames.Summary.toString(), summary); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return inheritsFromContainerMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final mxmodelreflection.proxies.InheritsFromContainer that = (mxmodelreflection.proxies.InheritsFromContainer) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "MxModelReflection.InheritsFromContainer"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/mxmodelreflection/proxies/Microflows.java b/javasource/mxmodelreflection/proxies/Microflows.java deleted file mode 100644 index 8979647..0000000 --- a/javasource/mxmodelreflection/proxies/Microflows.java +++ /dev/null @@ -1,416 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package mxmodelreflection.proxies; - -public class Microflows -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject microflowsMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "MxModelReflection.Microflows"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - Name("Name"), - Module("Module"), - CompleteName("CompleteName"), - Microflows_InputParameter("MxModelReflection.Microflows_InputParameter"), - Microflows_Output_Type("MxModelReflection.Microflows_Output_Type"), - Microflows_Module("MxModelReflection.Microflows_Module"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public Microflows(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "MxModelReflection.Microflows")); - } - - protected Microflows(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject microflowsMendixObject) - { - if (microflowsMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("MxModelReflection.Microflows", microflowsMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a MxModelReflection.Microflows"); - - this.microflowsMendixObject = microflowsMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'Microflows.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static mxmodelreflection.proxies.Microflows initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return mxmodelreflection.proxies.Microflows.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static mxmodelreflection.proxies.Microflows initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new mxmodelreflection.proxies.Microflows(context, mendixObject); - } - - public static mxmodelreflection.proxies.Microflows load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return mxmodelreflection.proxies.Microflows.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//MxModelReflection.Microflows" + xpathConstraint)) - result.add(mxmodelreflection.proxies.Microflows.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of Name - */ - public final java.lang.String getName() - { - return getName(getContext()); - } - - /** - * @param context - * @return value of Name - */ - public final java.lang.String getName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Name.toString()); - } - - /** - * Set value of Name - * @param name - */ - public final void setName(java.lang.String name) - { - setName(getContext(), name); - } - - /** - * Set value of Name - * @param context - * @param name - */ - public final void setName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String name) - { - getMendixObject().setValue(context, MemberNames.Name.toString(), name); - } - - /** - * @return value of Module - */ - public final java.lang.String getModule() - { - return getModule(getContext()); - } - - /** - * @param context - * @return value of Module - */ - public final java.lang.String getModule(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Module.toString()); - } - - /** - * Set value of Module - * @param module - */ - public final void setModule(java.lang.String module) - { - setModule(getContext(), module); - } - - /** - * Set value of Module - * @param context - * @param module - */ - public final void setModule(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String module) - { - getMendixObject().setValue(context, MemberNames.Module.toString(), module); - } - - /** - * @return value of CompleteName - */ - public final java.lang.String getCompleteName() - { - return getCompleteName(getContext()); - } - - /** - * @param context - * @return value of CompleteName - */ - public final java.lang.String getCompleteName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.CompleteName.toString()); - } - - /** - * Set value of CompleteName - * @param completename - */ - public final void setCompleteName(java.lang.String completename) - { - setCompleteName(getContext(), completename); - } - - /** - * Set value of CompleteName - * @param context - * @param completename - */ - public final void setCompleteName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String completename) - { - getMendixObject().setValue(context, MemberNames.CompleteName.toString(), completename); - } - - /** - * @return value of Microflows_InputParameter - */ - public final java.util.List getMicroflows_InputParameter() throws com.mendix.core.CoreException - { - return getMicroflows_InputParameter(getContext()); - } - - /** - * @param context - * @return value of Microflows_InputParameter - */ - @SuppressWarnings("unchecked") - public final java.util.List getMicroflows_InputParameter(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - Object valueObject = getMendixObject().getValue(context, MemberNames.Microflows_InputParameter.toString()); - if (valueObject == null) - return result; - for (com.mendix.systemwideinterfaces.core.IMendixObject mendixObject : com.mendix.core.Core.retrieveIdList(context, (java.util.List) valueObject)) - result.add(mxmodelreflection.proxies.Parameter.initialize(context, mendixObject)); - return result; - } - - /** - * Set value of Microflows_InputParameter - * @param microflows_inputparameter - */ - public final void setMicroflows_InputParameter(java.util.List microflows_inputparameter) - { - setMicroflows_InputParameter(getContext(), microflows_inputparameter); - } - - /** - * Set value of Microflows_InputParameter - * @param context - * @param microflows_inputparameter - */ - public final void setMicroflows_InputParameter(com.mendix.systemwideinterfaces.core.IContext context, java.util.List microflows_inputparameter) - { - java.util.List identifiers = new java.util.ArrayList(); - for (mxmodelreflection.proxies.Parameter proxyObject : microflows_inputparameter) - identifiers.add(proxyObject.getMendixObject().getId()); - getMendixObject().setValue(context, MemberNames.Microflows_InputParameter.toString(), identifiers); - } - - /** - * @return value of Microflows_Output_Type - */ - public final mxmodelreflection.proxies.ValueType getMicroflows_Output_Type() throws com.mendix.core.CoreException - { - return getMicroflows_Output_Type(getContext()); - } - - /** - * @param context - * @return value of Microflows_Output_Type - */ - public final mxmodelreflection.proxies.ValueType getMicroflows_Output_Type(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - mxmodelreflection.proxies.ValueType result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.Microflows_Output_Type.toString()); - if (identifier != null) - result = mxmodelreflection.proxies.ValueType.load(context, identifier); - return result; - } - - /** - * Set value of Microflows_Output_Type - * @param microflows_output_type - */ - public final void setMicroflows_Output_Type(mxmodelreflection.proxies.ValueType microflows_output_type) - { - setMicroflows_Output_Type(getContext(), microflows_output_type); - } - - /** - * Set value of Microflows_Output_Type - * @param context - * @param microflows_output_type - */ - public final void setMicroflows_Output_Type(com.mendix.systemwideinterfaces.core.IContext context, mxmodelreflection.proxies.ValueType microflows_output_type) - { - if (microflows_output_type == null) - getMendixObject().setValue(context, MemberNames.Microflows_Output_Type.toString(), null); - else - getMendixObject().setValue(context, MemberNames.Microflows_Output_Type.toString(), microflows_output_type.getMendixObject().getId()); - } - - /** - * @return value of Microflows_Module - */ - public final mxmodelreflection.proxies.Module getMicroflows_Module() throws com.mendix.core.CoreException - { - return getMicroflows_Module(getContext()); - } - - /** - * @param context - * @return value of Microflows_Module - */ - public final mxmodelreflection.proxies.Module getMicroflows_Module(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - mxmodelreflection.proxies.Module result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.Microflows_Module.toString()); - if (identifier != null) - result = mxmodelreflection.proxies.Module.load(context, identifier); - return result; - } - - /** - * Set value of Microflows_Module - * @param microflows_module - */ - public final void setMicroflows_Module(mxmodelreflection.proxies.Module microflows_module) - { - setMicroflows_Module(getContext(), microflows_module); - } - - /** - * Set value of Microflows_Module - * @param context - * @param microflows_module - */ - public final void setMicroflows_Module(com.mendix.systemwideinterfaces.core.IContext context, mxmodelreflection.proxies.Module microflows_module) - { - if (microflows_module == null) - getMendixObject().setValue(context, MemberNames.Microflows_Module.toString(), null); - else - getMendixObject().setValue(context, MemberNames.Microflows_Module.toString(), microflows_module.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return microflowsMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final mxmodelreflection.proxies.Microflows that = (mxmodelreflection.proxies.Microflows) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "MxModelReflection.Microflows"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/mxmodelreflection/proxies/Module.java b/javasource/mxmodelreflection/proxies/Module.java deleted file mode 100644 index 5f136db..0000000 --- a/javasource/mxmodelreflection/proxies/Module.java +++ /dev/null @@ -1,244 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package mxmodelreflection.proxies; - -public class Module -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject moduleMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "MxModelReflection.Module"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - ModuleName("ModuleName"), - SynchronizeObjectsWithinModule("SynchronizeObjectsWithinModule"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public Module(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "MxModelReflection.Module")); - } - - protected Module(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject moduleMendixObject) - { - if (moduleMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("MxModelReflection.Module", moduleMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a MxModelReflection.Module"); - - this.moduleMendixObject = moduleMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'Module.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static mxmodelreflection.proxies.Module initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return mxmodelreflection.proxies.Module.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static mxmodelreflection.proxies.Module initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new mxmodelreflection.proxies.Module(context, mendixObject); - } - - public static mxmodelreflection.proxies.Module load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return mxmodelreflection.proxies.Module.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//MxModelReflection.Module" + xpathConstraint)) - result.add(mxmodelreflection.proxies.Module.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of ModuleName - */ - public final java.lang.String getModuleName() - { - return getModuleName(getContext()); - } - - /** - * @param context - * @return value of ModuleName - */ - public final java.lang.String getModuleName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.ModuleName.toString()); - } - - /** - * Set value of ModuleName - * @param modulename - */ - public final void setModuleName(java.lang.String modulename) - { - setModuleName(getContext(), modulename); - } - - /** - * Set value of ModuleName - * @param context - * @param modulename - */ - public final void setModuleName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String modulename) - { - getMendixObject().setValue(context, MemberNames.ModuleName.toString(), modulename); - } - - /** - * @return value of SynchronizeObjectsWithinModule - */ - public final java.lang.Boolean getSynchronizeObjectsWithinModule() - { - return getSynchronizeObjectsWithinModule(getContext()); - } - - /** - * @param context - * @return value of SynchronizeObjectsWithinModule - */ - public final java.lang.Boolean getSynchronizeObjectsWithinModule(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.SynchronizeObjectsWithinModule.toString()); - } - - /** - * Set value of SynchronizeObjectsWithinModule - * @param synchronizeobjectswithinmodule - */ - public final void setSynchronizeObjectsWithinModule(java.lang.Boolean synchronizeobjectswithinmodule) - { - setSynchronizeObjectsWithinModule(getContext(), synchronizeobjectswithinmodule); - } - - /** - * Set value of SynchronizeObjectsWithinModule - * @param context - * @param synchronizeobjectswithinmodule - */ - public final void setSynchronizeObjectsWithinModule(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean synchronizeobjectswithinmodule) - { - getMendixObject().setValue(context, MemberNames.SynchronizeObjectsWithinModule.toString(), synchronizeobjectswithinmodule); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return moduleMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final mxmodelreflection.proxies.Module that = (mxmodelreflection.proxies.Module) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "MxModelReflection.Module"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/mxmodelreflection/proxies/MxObjectEnum.java b/javasource/mxmodelreflection/proxies/MxObjectEnum.java deleted file mode 100644 index fce1b75..0000000 --- a/javasource/mxmodelreflection/proxies/MxObjectEnum.java +++ /dev/null @@ -1,172 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package mxmodelreflection.proxies; - -public class MxObjectEnum extends mxmodelreflection.proxies.MxObjectMember -{ - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "MxModelReflection.MxObjectEnum"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - AttributeName("AttributeName"), - AttributeType("AttributeType"), - AttributeTypeEnum("AttributeTypeEnum"), - CompleteName("CompleteName"), - DescriptiveName("DescriptiveName"), - FieldLength("FieldLength"), - IsVirtual("IsVirtual"), - Values("MxModelReflection.Values"), - MxObjectMember_MxObjectType("MxModelReflection.MxObjectMember_MxObjectType"), - MxObjectMember_Type("MxModelReflection.MxObjectMember_Type"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public MxObjectEnum(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "MxModelReflection.MxObjectEnum")); - } - - protected MxObjectEnum(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mxObjectEnumMendixObject) - { - super(context, mxObjectEnumMendixObject); - if (!com.mendix.core.Core.isSubClassOf("MxModelReflection.MxObjectEnum", mxObjectEnumMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a MxModelReflection.MxObjectEnum"); - } - - /** - * @deprecated Use 'MxObjectEnum.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static mxmodelreflection.proxies.MxObjectEnum initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return mxmodelreflection.proxies.MxObjectEnum.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static mxmodelreflection.proxies.MxObjectEnum initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new mxmodelreflection.proxies.MxObjectEnum(context, mendixObject); - } - - public static mxmodelreflection.proxies.MxObjectEnum load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return mxmodelreflection.proxies.MxObjectEnum.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//MxModelReflection.MxObjectEnum" + xpathConstraint)) - result.add(mxmodelreflection.proxies.MxObjectEnum.initialize(context, obj)); - return result; - } - - /** - * @return value of Values - */ - public final java.util.List getValues() throws com.mendix.core.CoreException - { - return getValues(getContext()); - } - - /** - * @param context - * @return value of Values - */ - @SuppressWarnings("unchecked") - public final java.util.List getValues(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - Object valueObject = getMendixObject().getValue(context, MemberNames.Values.toString()); - if (valueObject == null) - return result; - for (com.mendix.systemwideinterfaces.core.IMendixObject mendixObject : com.mendix.core.Core.retrieveIdList(context, (java.util.List) valueObject)) - result.add(mxmodelreflection.proxies.MxObjectEnumValue.initialize(context, mendixObject)); - return result; - } - - /** - * Set value of Values - * @param values - */ - public final void setValues(java.util.List values) - { - setValues(getContext(), values); - } - - /** - * Set value of Values - * @param context - * @param values - */ - public final void setValues(com.mendix.systemwideinterfaces.core.IContext context, java.util.List values) - { - java.util.List identifiers = new java.util.ArrayList(); - for (mxmodelreflection.proxies.MxObjectEnumValue proxyObject : values) - identifiers.add(proxyObject.getMendixObject().getId()); - getMendixObject().setValue(context, MemberNames.Values.toString(), identifiers); - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final mxmodelreflection.proxies.MxObjectEnum that = (mxmodelreflection.proxies.MxObjectEnum) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "MxModelReflection.MxObjectEnum"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Override - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/mxmodelreflection/proxies/MxObjectEnumCaptions.java b/javasource/mxmodelreflection/proxies/MxObjectEnumCaptions.java deleted file mode 100644 index 68a8a44..0000000 --- a/javasource/mxmodelreflection/proxies/MxObjectEnumCaptions.java +++ /dev/null @@ -1,281 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package mxmodelreflection.proxies; - -public class MxObjectEnumCaptions -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject mxObjectEnumCaptionsMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "MxModelReflection.MxObjectEnumCaptions"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - Caption("Caption"), - LanguageCode("LanguageCode"), - LanguageName("LanguageName"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public MxObjectEnumCaptions(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "MxModelReflection.MxObjectEnumCaptions")); - } - - protected MxObjectEnumCaptions(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mxObjectEnumCaptionsMendixObject) - { - if (mxObjectEnumCaptionsMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("MxModelReflection.MxObjectEnumCaptions", mxObjectEnumCaptionsMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a MxModelReflection.MxObjectEnumCaptions"); - - this.mxObjectEnumCaptionsMendixObject = mxObjectEnumCaptionsMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'MxObjectEnumCaptions.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static mxmodelreflection.proxies.MxObjectEnumCaptions initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return mxmodelreflection.proxies.MxObjectEnumCaptions.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static mxmodelreflection.proxies.MxObjectEnumCaptions initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new mxmodelreflection.proxies.MxObjectEnumCaptions(context, mendixObject); - } - - public static mxmodelreflection.proxies.MxObjectEnumCaptions load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return mxmodelreflection.proxies.MxObjectEnumCaptions.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//MxModelReflection.MxObjectEnumCaptions" + xpathConstraint)) - result.add(mxmodelreflection.proxies.MxObjectEnumCaptions.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of Caption - */ - public final java.lang.String getCaption() - { - return getCaption(getContext()); - } - - /** - * @param context - * @return value of Caption - */ - public final java.lang.String getCaption(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Caption.toString()); - } - - /** - * Set value of Caption - * @param caption - */ - public final void setCaption(java.lang.String caption) - { - setCaption(getContext(), caption); - } - - /** - * Set value of Caption - * @param context - * @param caption - */ - public final void setCaption(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String caption) - { - getMendixObject().setValue(context, MemberNames.Caption.toString(), caption); - } - - /** - * @return value of LanguageCode - */ - public final java.lang.String getLanguageCode() - { - return getLanguageCode(getContext()); - } - - /** - * @param context - * @return value of LanguageCode - */ - public final java.lang.String getLanguageCode(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.LanguageCode.toString()); - } - - /** - * Set value of LanguageCode - * @param languagecode - */ - public final void setLanguageCode(java.lang.String languagecode) - { - setLanguageCode(getContext(), languagecode); - } - - /** - * Set value of LanguageCode - * @param context - * @param languagecode - */ - public final void setLanguageCode(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String languagecode) - { - getMendixObject().setValue(context, MemberNames.LanguageCode.toString(), languagecode); - } - - /** - * @return value of LanguageName - */ - public final java.lang.String getLanguageName() - { - return getLanguageName(getContext()); - } - - /** - * @param context - * @return value of LanguageName - */ - public final java.lang.String getLanguageName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.LanguageName.toString()); - } - - /** - * Set value of LanguageName - * @param languagename - */ - public final void setLanguageName(java.lang.String languagename) - { - setLanguageName(getContext(), languagename); - } - - /** - * Set value of LanguageName - * @param context - * @param languagename - */ - public final void setLanguageName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String languagename) - { - getMendixObject().setValue(context, MemberNames.LanguageName.toString(), languagename); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return mxObjectEnumCaptionsMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final mxmodelreflection.proxies.MxObjectEnumCaptions that = (mxmodelreflection.proxies.MxObjectEnumCaptions) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "MxModelReflection.MxObjectEnumCaptions"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/mxmodelreflection/proxies/MxObjectEnumValue.java b/javasource/mxmodelreflection/proxies/MxObjectEnumValue.java deleted file mode 100644 index 4e0a6e6..0000000 --- a/javasource/mxmodelreflection/proxies/MxObjectEnumValue.java +++ /dev/null @@ -1,254 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package mxmodelreflection.proxies; - -public class MxObjectEnumValue -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject mxObjectEnumValueMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "MxModelReflection.MxObjectEnumValue"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - Name("Name"), - Captions("MxModelReflection.Captions"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public MxObjectEnumValue(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "MxModelReflection.MxObjectEnumValue")); - } - - protected MxObjectEnumValue(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mxObjectEnumValueMendixObject) - { - if (mxObjectEnumValueMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("MxModelReflection.MxObjectEnumValue", mxObjectEnumValueMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a MxModelReflection.MxObjectEnumValue"); - - this.mxObjectEnumValueMendixObject = mxObjectEnumValueMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'MxObjectEnumValue.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static mxmodelreflection.proxies.MxObjectEnumValue initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return mxmodelreflection.proxies.MxObjectEnumValue.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static mxmodelreflection.proxies.MxObjectEnumValue initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new mxmodelreflection.proxies.MxObjectEnumValue(context, mendixObject); - } - - public static mxmodelreflection.proxies.MxObjectEnumValue load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return mxmodelreflection.proxies.MxObjectEnumValue.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//MxModelReflection.MxObjectEnumValue" + xpathConstraint)) - result.add(mxmodelreflection.proxies.MxObjectEnumValue.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of Name - */ - public final java.lang.String getName() - { - return getName(getContext()); - } - - /** - * @param context - * @return value of Name - */ - public final java.lang.String getName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Name.toString()); - } - - /** - * Set value of Name - * @param name - */ - public final void setName(java.lang.String name) - { - setName(getContext(), name); - } - - /** - * Set value of Name - * @param context - * @param name - */ - public final void setName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String name) - { - getMendixObject().setValue(context, MemberNames.Name.toString(), name); - } - - /** - * @return value of Captions - */ - public final java.util.List getCaptions() throws com.mendix.core.CoreException - { - return getCaptions(getContext()); - } - - /** - * @param context - * @return value of Captions - */ - @SuppressWarnings("unchecked") - public final java.util.List getCaptions(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - Object valueObject = getMendixObject().getValue(context, MemberNames.Captions.toString()); - if (valueObject == null) - return result; - for (com.mendix.systemwideinterfaces.core.IMendixObject mendixObject : com.mendix.core.Core.retrieveIdList(context, (java.util.List) valueObject)) - result.add(mxmodelreflection.proxies.MxObjectEnumCaptions.initialize(context, mendixObject)); - return result; - } - - /** - * Set value of Captions - * @param captions - */ - public final void setCaptions(java.util.List captions) - { - setCaptions(getContext(), captions); - } - - /** - * Set value of Captions - * @param context - * @param captions - */ - public final void setCaptions(com.mendix.systemwideinterfaces.core.IContext context, java.util.List captions) - { - java.util.List identifiers = new java.util.ArrayList(); - for (mxmodelreflection.proxies.MxObjectEnumCaptions proxyObject : captions) - identifiers.add(proxyObject.getMendixObject().getId()); - getMendixObject().setValue(context, MemberNames.Captions.toString(), identifiers); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return mxObjectEnumValueMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final mxmodelreflection.proxies.MxObjectEnumValue that = (mxmodelreflection.proxies.MxObjectEnumValue) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "MxModelReflection.MxObjectEnumValue"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/mxmodelreflection/proxies/MxObjectMember.java b/javasource/mxmodelreflection/proxies/MxObjectMember.java deleted file mode 100644 index 971521e..0000000 --- a/javasource/mxmodelreflection/proxies/MxObjectMember.java +++ /dev/null @@ -1,528 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package mxmodelreflection.proxies; - -public class MxObjectMember -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject mxObjectMemberMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "MxModelReflection.MxObjectMember"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - AttributeName("AttributeName"), - AttributeType("AttributeType"), - AttributeTypeEnum("AttributeTypeEnum"), - CompleteName("CompleteName"), - DescriptiveName("DescriptiveName"), - FieldLength("FieldLength"), - IsVirtual("IsVirtual"), - MxObjectMember_MxObjectType("MxModelReflection.MxObjectMember_MxObjectType"), - MxObjectMember_Type("MxModelReflection.MxObjectMember_Type"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public MxObjectMember(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "MxModelReflection.MxObjectMember")); - } - - protected MxObjectMember(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mxObjectMemberMendixObject) - { - if (mxObjectMemberMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("MxModelReflection.MxObjectMember", mxObjectMemberMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a MxModelReflection.MxObjectMember"); - - this.mxObjectMemberMendixObject = mxObjectMemberMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'MxObjectMember.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static mxmodelreflection.proxies.MxObjectMember initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return mxmodelreflection.proxies.MxObjectMember.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static mxmodelreflection.proxies.MxObjectMember initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - if (com.mendix.core.Core.isSubClassOf("MxModelReflection.MxObjectEnum", mendixObject.getType())) - return mxmodelreflection.proxies.MxObjectEnum.initialize(context, mendixObject); - - return new mxmodelreflection.proxies.MxObjectMember(context, mendixObject); - } - - public static mxmodelreflection.proxies.MxObjectMember load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return mxmodelreflection.proxies.MxObjectMember.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//MxModelReflection.MxObjectMember" + xpathConstraint)) - result.add(mxmodelreflection.proxies.MxObjectMember.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of AttributeName - */ - public final java.lang.String getAttributeName() - { - return getAttributeName(getContext()); - } - - /** - * @param context - * @return value of AttributeName - */ - public final java.lang.String getAttributeName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.AttributeName.toString()); - } - - /** - * Set value of AttributeName - * @param attributename - */ - public final void setAttributeName(java.lang.String attributename) - { - setAttributeName(getContext(), attributename); - } - - /** - * Set value of AttributeName - * @param context - * @param attributename - */ - public final void setAttributeName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String attributename) - { - getMendixObject().setValue(context, MemberNames.AttributeName.toString(), attributename); - } - - /** - * @return value of AttributeType - */ - public final java.lang.String getAttributeType() - { - return getAttributeType(getContext()); - } - - /** - * @param context - * @return value of AttributeType - */ - public final java.lang.String getAttributeType(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.AttributeType.toString()); - } - - /** - * Set value of AttributeType - * @param attributetype - */ - public final void setAttributeType(java.lang.String attributetype) - { - setAttributeType(getContext(), attributetype); - } - - /** - * Set value of AttributeType - * @param context - * @param attributetype - */ - public final void setAttributeType(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String attributetype) - { - getMendixObject().setValue(context, MemberNames.AttributeType.toString(), attributetype); - } - - /** - * Set value of AttributeTypeEnum - * @param attributetypeenum - */ - public final mxmodelreflection.proxies.PrimitiveTypes getAttributeTypeEnum() - { - return getAttributeTypeEnum(getContext()); - } - - /** - * @param context - * @return value of AttributeTypeEnum - */ - public final mxmodelreflection.proxies.PrimitiveTypes getAttributeTypeEnum(com.mendix.systemwideinterfaces.core.IContext context) - { - Object obj = getMendixObject().getValue(context, MemberNames.AttributeTypeEnum.toString()); - if (obj == null) - return null; - - return mxmodelreflection.proxies.PrimitiveTypes.valueOf((java.lang.String) obj); - } - - /** - * Set value of AttributeTypeEnum - * @param attributetypeenum - */ - public final void setAttributeTypeEnum(mxmodelreflection.proxies.PrimitiveTypes attributetypeenum) - { - setAttributeTypeEnum(getContext(), attributetypeenum); - } - - /** - * Set value of AttributeTypeEnum - * @param context - * @param attributetypeenum - */ - public final void setAttributeTypeEnum(com.mendix.systemwideinterfaces.core.IContext context, mxmodelreflection.proxies.PrimitiveTypes attributetypeenum) - { - if (attributetypeenum != null) - getMendixObject().setValue(context, MemberNames.AttributeTypeEnum.toString(), attributetypeenum.toString()); - else - getMendixObject().setValue(context, MemberNames.AttributeTypeEnum.toString(), null); - } - - /** - * @return value of CompleteName - */ - public final java.lang.String getCompleteName() - { - return getCompleteName(getContext()); - } - - /** - * @param context - * @return value of CompleteName - */ - public final java.lang.String getCompleteName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.CompleteName.toString()); - } - - /** - * Set value of CompleteName - * @param completename - */ - public final void setCompleteName(java.lang.String completename) - { - setCompleteName(getContext(), completename); - } - - /** - * Set value of CompleteName - * @param context - * @param completename - */ - public final void setCompleteName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String completename) - { - getMendixObject().setValue(context, MemberNames.CompleteName.toString(), completename); - } - - /** - * @return value of DescriptiveName - */ - public final java.lang.String getDescriptiveName() - { - return getDescriptiveName(getContext()); - } - - /** - * @param context - * @return value of DescriptiveName - */ - public final java.lang.String getDescriptiveName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.DescriptiveName.toString()); - } - - /** - * Set value of DescriptiveName - * @param descriptivename - */ - public final void setDescriptiveName(java.lang.String descriptivename) - { - setDescriptiveName(getContext(), descriptivename); - } - - /** - * Set value of DescriptiveName - * @param context - * @param descriptivename - */ - public final void setDescriptiveName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String descriptivename) - { - getMendixObject().setValue(context, MemberNames.DescriptiveName.toString(), descriptivename); - } - - /** - * @return value of FieldLength - */ - public final java.lang.Integer getFieldLength() - { - return getFieldLength(getContext()); - } - - /** - * @param context - * @return value of FieldLength - */ - public final java.lang.Integer getFieldLength(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Integer) getMendixObject().getValue(context, MemberNames.FieldLength.toString()); - } - - /** - * Set value of FieldLength - * @param fieldlength - */ - public final void setFieldLength(java.lang.Integer fieldlength) - { - setFieldLength(getContext(), fieldlength); - } - - /** - * Set value of FieldLength - * @param context - * @param fieldlength - */ - public final void setFieldLength(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Integer fieldlength) - { - getMendixObject().setValue(context, MemberNames.FieldLength.toString(), fieldlength); - } - - /** - * @return value of IsVirtual - */ - public final java.lang.Boolean getIsVirtual() - { - return getIsVirtual(getContext()); - } - - /** - * @param context - * @return value of IsVirtual - */ - public final java.lang.Boolean getIsVirtual(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.IsVirtual.toString()); - } - - /** - * Set value of IsVirtual - * @param isvirtual - */ - public final void setIsVirtual(java.lang.Boolean isvirtual) - { - setIsVirtual(getContext(), isvirtual); - } - - /** - * Set value of IsVirtual - * @param context - * @param isvirtual - */ - public final void setIsVirtual(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean isvirtual) - { - getMendixObject().setValue(context, MemberNames.IsVirtual.toString(), isvirtual); - } - - /** - * @return value of MxObjectMember_MxObjectType - */ - public final mxmodelreflection.proxies.MxObjectType getMxObjectMember_MxObjectType() throws com.mendix.core.CoreException - { - return getMxObjectMember_MxObjectType(getContext()); - } - - /** - * @param context - * @return value of MxObjectMember_MxObjectType - */ - public final mxmodelreflection.proxies.MxObjectType getMxObjectMember_MxObjectType(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - mxmodelreflection.proxies.MxObjectType result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.MxObjectMember_MxObjectType.toString()); - if (identifier != null) - result = mxmodelreflection.proxies.MxObjectType.load(context, identifier); - return result; - } - - /** - * Set value of MxObjectMember_MxObjectType - * @param mxobjectmember_mxobjecttype - */ - public final void setMxObjectMember_MxObjectType(mxmodelreflection.proxies.MxObjectType mxobjectmember_mxobjecttype) - { - setMxObjectMember_MxObjectType(getContext(), mxobjectmember_mxobjecttype); - } - - /** - * Set value of MxObjectMember_MxObjectType - * @param context - * @param mxobjectmember_mxobjecttype - */ - public final void setMxObjectMember_MxObjectType(com.mendix.systemwideinterfaces.core.IContext context, mxmodelreflection.proxies.MxObjectType mxobjectmember_mxobjecttype) - { - if (mxobjectmember_mxobjecttype == null) - getMendixObject().setValue(context, MemberNames.MxObjectMember_MxObjectType.toString(), null); - else - getMendixObject().setValue(context, MemberNames.MxObjectMember_MxObjectType.toString(), mxobjectmember_mxobjecttype.getMendixObject().getId()); - } - - /** - * @return value of MxObjectMember_Type - */ - public final mxmodelreflection.proxies.ValueType getMxObjectMember_Type() throws com.mendix.core.CoreException - { - return getMxObjectMember_Type(getContext()); - } - - /** - * @param context - * @return value of MxObjectMember_Type - */ - public final mxmodelreflection.proxies.ValueType getMxObjectMember_Type(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - mxmodelreflection.proxies.ValueType result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.MxObjectMember_Type.toString()); - if (identifier != null) - result = mxmodelreflection.proxies.ValueType.load(context, identifier); - return result; - } - - /** - * Set value of MxObjectMember_Type - * @param mxobjectmember_type - */ - public final void setMxObjectMember_Type(mxmodelreflection.proxies.ValueType mxobjectmember_type) - { - setMxObjectMember_Type(getContext(), mxobjectmember_type); - } - - /** - * Set value of MxObjectMember_Type - * @param context - * @param mxobjectmember_type - */ - public final void setMxObjectMember_Type(com.mendix.systemwideinterfaces.core.IContext context, mxmodelreflection.proxies.ValueType mxobjectmember_type) - { - if (mxobjectmember_type == null) - getMendixObject().setValue(context, MemberNames.MxObjectMember_Type.toString(), null); - else - getMendixObject().setValue(context, MemberNames.MxObjectMember_Type.toString(), mxobjectmember_type.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return mxObjectMemberMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final mxmodelreflection.proxies.MxObjectMember that = (mxmodelreflection.proxies.MxObjectMember) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "MxModelReflection.MxObjectMember"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/mxmodelreflection/proxies/MxObjectReference.java b/javasource/mxmodelreflection/proxies/MxObjectReference.java deleted file mode 100644 index 333a34c..0000000 --- a/javasource/mxmodelreflection/proxies/MxObjectReference.java +++ /dev/null @@ -1,630 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package mxmodelreflection.proxies; - -public class MxObjectReference -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject mxObjectReferenceMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "MxModelReflection.MxObjectReference"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - CompleteName("CompleteName"), - Module("Module"), - Name("Name"), - ReadableName("ReadableName"), - ReferenceType("ReferenceType"), - AssociationOwner("AssociationOwner"), - ParentEntity("ParentEntity"), - MxObjectReference_MxObjectType("MxModelReflection.MxObjectReference_MxObjectType"), - MxObjectReference_MxObjectType_Child("MxModelReflection.MxObjectReference_MxObjectType_Child"), - MxObjectReference_MxObjectType_Parent("MxModelReflection.MxObjectReference_MxObjectType_Parent"), - MxObjectReference_Module("MxModelReflection.MxObjectReference_Module"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public MxObjectReference(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "MxModelReflection.MxObjectReference")); - } - - protected MxObjectReference(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mxObjectReferenceMendixObject) - { - if (mxObjectReferenceMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("MxModelReflection.MxObjectReference", mxObjectReferenceMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a MxModelReflection.MxObjectReference"); - - this.mxObjectReferenceMendixObject = mxObjectReferenceMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'MxObjectReference.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static mxmodelreflection.proxies.MxObjectReference initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return mxmodelreflection.proxies.MxObjectReference.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static mxmodelreflection.proxies.MxObjectReference initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new mxmodelreflection.proxies.MxObjectReference(context, mendixObject); - } - - public static mxmodelreflection.proxies.MxObjectReference load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return mxmodelreflection.proxies.MxObjectReference.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//MxModelReflection.MxObjectReference" + xpathConstraint)) - result.add(mxmodelreflection.proxies.MxObjectReference.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of CompleteName - */ - public final java.lang.String getCompleteName() - { - return getCompleteName(getContext()); - } - - /** - * @param context - * @return value of CompleteName - */ - public final java.lang.String getCompleteName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.CompleteName.toString()); - } - - /** - * Set value of CompleteName - * @param completename - */ - public final void setCompleteName(java.lang.String completename) - { - setCompleteName(getContext(), completename); - } - - /** - * Set value of CompleteName - * @param context - * @param completename - */ - public final void setCompleteName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String completename) - { - getMendixObject().setValue(context, MemberNames.CompleteName.toString(), completename); - } - - /** - * @return value of Module - */ - public final java.lang.String getModule() - { - return getModule(getContext()); - } - - /** - * @param context - * @return value of Module - */ - public final java.lang.String getModule(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Module.toString()); - } - - /** - * Set value of Module - * @param module - */ - public final void setModule(java.lang.String module) - { - setModule(getContext(), module); - } - - /** - * Set value of Module - * @param context - * @param module - */ - public final void setModule(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String module) - { - getMendixObject().setValue(context, MemberNames.Module.toString(), module); - } - - /** - * @return value of Name - */ - public final java.lang.String getName() - { - return getName(getContext()); - } - - /** - * @param context - * @return value of Name - */ - public final java.lang.String getName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Name.toString()); - } - - /** - * Set value of Name - * @param name - */ - public final void setName(java.lang.String name) - { - setName(getContext(), name); - } - - /** - * Set value of Name - * @param context - * @param name - */ - public final void setName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String name) - { - getMendixObject().setValue(context, MemberNames.Name.toString(), name); - } - - /** - * @return value of ReadableName - */ - public final java.lang.String getReadableName() - { - return getReadableName(getContext()); - } - - /** - * @param context - * @return value of ReadableName - */ - public final java.lang.String getReadableName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.ReadableName.toString()); - } - - /** - * Set value of ReadableName - * @param readablename - */ - public final void setReadableName(java.lang.String readablename) - { - setReadableName(getContext(), readablename); - } - - /** - * Set value of ReadableName - * @param context - * @param readablename - */ - public final void setReadableName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String readablename) - { - getMendixObject().setValue(context, MemberNames.ReadableName.toString(), readablename); - } - - /** - * Set value of ReferenceType - * @param referencetype - */ - public final mxmodelreflection.proxies.ReferenceType getReferenceType() - { - return getReferenceType(getContext()); - } - - /** - * @param context - * @return value of ReferenceType - */ - public final mxmodelreflection.proxies.ReferenceType getReferenceType(com.mendix.systemwideinterfaces.core.IContext context) - { - Object obj = getMendixObject().getValue(context, MemberNames.ReferenceType.toString()); - if (obj == null) - return null; - - return mxmodelreflection.proxies.ReferenceType.valueOf((java.lang.String) obj); - } - - /** - * Set value of ReferenceType - * @param referencetype - */ - public final void setReferenceType(mxmodelreflection.proxies.ReferenceType referencetype) - { - setReferenceType(getContext(), referencetype); - } - - /** - * Set value of ReferenceType - * @param context - * @param referencetype - */ - public final void setReferenceType(com.mendix.systemwideinterfaces.core.IContext context, mxmodelreflection.proxies.ReferenceType referencetype) - { - if (referencetype != null) - getMendixObject().setValue(context, MemberNames.ReferenceType.toString(), referencetype.toString()); - else - getMendixObject().setValue(context, MemberNames.ReferenceType.toString(), null); - } - - /** - * Set value of AssociationOwner - * @param associationowner - */ - public final mxmodelreflection.proxies.AssociationOwner getAssociationOwner() - { - return getAssociationOwner(getContext()); - } - - /** - * @param context - * @return value of AssociationOwner - */ - public final mxmodelreflection.proxies.AssociationOwner getAssociationOwner(com.mendix.systemwideinterfaces.core.IContext context) - { - Object obj = getMendixObject().getValue(context, MemberNames.AssociationOwner.toString()); - if (obj == null) - return null; - - return mxmodelreflection.proxies.AssociationOwner.valueOf((java.lang.String) obj); - } - - /** - * Set value of AssociationOwner - * @param associationowner - */ - public final void setAssociationOwner(mxmodelreflection.proxies.AssociationOwner associationowner) - { - setAssociationOwner(getContext(), associationowner); - } - - /** - * Set value of AssociationOwner - * @param context - * @param associationowner - */ - public final void setAssociationOwner(com.mendix.systemwideinterfaces.core.IContext context, mxmodelreflection.proxies.AssociationOwner associationowner) - { - if (associationowner != null) - getMendixObject().setValue(context, MemberNames.AssociationOwner.toString(), associationowner.toString()); - else - getMendixObject().setValue(context, MemberNames.AssociationOwner.toString(), null); - } - - /** - * @return value of ParentEntity - */ - public final java.lang.String getParentEntity() - { - return getParentEntity(getContext()); - } - - /** - * @param context - * @return value of ParentEntity - */ - public final java.lang.String getParentEntity(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.ParentEntity.toString()); - } - - /** - * Set value of ParentEntity - * @param parententity - */ - public final void setParentEntity(java.lang.String parententity) - { - setParentEntity(getContext(), parententity); - } - - /** - * Set value of ParentEntity - * @param context - * @param parententity - */ - public final void setParentEntity(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String parententity) - { - getMendixObject().setValue(context, MemberNames.ParentEntity.toString(), parententity); - } - - /** - * @return value of MxObjectReference_MxObjectType - */ - public final java.util.List getMxObjectReference_MxObjectType() throws com.mendix.core.CoreException - { - return getMxObjectReference_MxObjectType(getContext()); - } - - /** - * @param context - * @return value of MxObjectReference_MxObjectType - */ - @SuppressWarnings("unchecked") - public final java.util.List getMxObjectReference_MxObjectType(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - Object valueObject = getMendixObject().getValue(context, MemberNames.MxObjectReference_MxObjectType.toString()); - if (valueObject == null) - return result; - for (com.mendix.systemwideinterfaces.core.IMendixObject mendixObject : com.mendix.core.Core.retrieveIdList(context, (java.util.List) valueObject)) - result.add(mxmodelreflection.proxies.MxObjectType.initialize(context, mendixObject)); - return result; - } - - /** - * Set value of MxObjectReference_MxObjectType - * @param mxobjectreference_mxobjecttype - */ - public final void setMxObjectReference_MxObjectType(java.util.List mxobjectreference_mxobjecttype) - { - setMxObjectReference_MxObjectType(getContext(), mxobjectreference_mxobjecttype); - } - - /** - * Set value of MxObjectReference_MxObjectType - * @param context - * @param mxobjectreference_mxobjecttype - */ - public final void setMxObjectReference_MxObjectType(com.mendix.systemwideinterfaces.core.IContext context, java.util.List mxobjectreference_mxobjecttype) - { - java.util.List identifiers = new java.util.ArrayList(); - for (mxmodelreflection.proxies.MxObjectType proxyObject : mxobjectreference_mxobjecttype) - identifiers.add(proxyObject.getMendixObject().getId()); - getMendixObject().setValue(context, MemberNames.MxObjectReference_MxObjectType.toString(), identifiers); - } - - /** - * @return value of MxObjectReference_MxObjectType_Child - */ - public final java.util.List getMxObjectReference_MxObjectType_Child() throws com.mendix.core.CoreException - { - return getMxObjectReference_MxObjectType_Child(getContext()); - } - - /** - * @param context - * @return value of MxObjectReference_MxObjectType_Child - */ - @SuppressWarnings("unchecked") - public final java.util.List getMxObjectReference_MxObjectType_Child(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - Object valueObject = getMendixObject().getValue(context, MemberNames.MxObjectReference_MxObjectType_Child.toString()); - if (valueObject == null) - return result; - for (com.mendix.systemwideinterfaces.core.IMendixObject mendixObject : com.mendix.core.Core.retrieveIdList(context, (java.util.List) valueObject)) - result.add(mxmodelreflection.proxies.MxObjectType.initialize(context, mendixObject)); - return result; - } - - /** - * Set value of MxObjectReference_MxObjectType_Child - * @param mxobjectreference_mxobjecttype_child - */ - public final void setMxObjectReference_MxObjectType_Child(java.util.List mxobjectreference_mxobjecttype_child) - { - setMxObjectReference_MxObjectType_Child(getContext(), mxobjectreference_mxobjecttype_child); - } - - /** - * Set value of MxObjectReference_MxObjectType_Child - * @param context - * @param mxobjectreference_mxobjecttype_child - */ - public final void setMxObjectReference_MxObjectType_Child(com.mendix.systemwideinterfaces.core.IContext context, java.util.List mxobjectreference_mxobjecttype_child) - { - java.util.List identifiers = new java.util.ArrayList(); - for (mxmodelreflection.proxies.MxObjectType proxyObject : mxobjectreference_mxobjecttype_child) - identifiers.add(proxyObject.getMendixObject().getId()); - getMendixObject().setValue(context, MemberNames.MxObjectReference_MxObjectType_Child.toString(), identifiers); - } - - /** - * @return value of MxObjectReference_MxObjectType_Parent - */ - public final java.util.List getMxObjectReference_MxObjectType_Parent() throws com.mendix.core.CoreException - { - return getMxObjectReference_MxObjectType_Parent(getContext()); - } - - /** - * @param context - * @return value of MxObjectReference_MxObjectType_Parent - */ - @SuppressWarnings("unchecked") - public final java.util.List getMxObjectReference_MxObjectType_Parent(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - Object valueObject = getMendixObject().getValue(context, MemberNames.MxObjectReference_MxObjectType_Parent.toString()); - if (valueObject == null) - return result; - for (com.mendix.systemwideinterfaces.core.IMendixObject mendixObject : com.mendix.core.Core.retrieveIdList(context, (java.util.List) valueObject)) - result.add(mxmodelreflection.proxies.MxObjectType.initialize(context, mendixObject)); - return result; - } - - /** - * Set value of MxObjectReference_MxObjectType_Parent - * @param mxobjectreference_mxobjecttype_parent - */ - public final void setMxObjectReference_MxObjectType_Parent(java.util.List mxobjectreference_mxobjecttype_parent) - { - setMxObjectReference_MxObjectType_Parent(getContext(), mxobjectreference_mxobjecttype_parent); - } - - /** - * Set value of MxObjectReference_MxObjectType_Parent - * @param context - * @param mxobjectreference_mxobjecttype_parent - */ - public final void setMxObjectReference_MxObjectType_Parent(com.mendix.systemwideinterfaces.core.IContext context, java.util.List mxobjectreference_mxobjecttype_parent) - { - java.util.List identifiers = new java.util.ArrayList(); - for (mxmodelreflection.proxies.MxObjectType proxyObject : mxobjectreference_mxobjecttype_parent) - identifiers.add(proxyObject.getMendixObject().getId()); - getMendixObject().setValue(context, MemberNames.MxObjectReference_MxObjectType_Parent.toString(), identifiers); - } - - /** - * @return value of MxObjectReference_Module - */ - public final mxmodelreflection.proxies.Module getMxObjectReference_Module() throws com.mendix.core.CoreException - { - return getMxObjectReference_Module(getContext()); - } - - /** - * @param context - * @return value of MxObjectReference_Module - */ - public final mxmodelreflection.proxies.Module getMxObjectReference_Module(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - mxmodelreflection.proxies.Module result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.MxObjectReference_Module.toString()); - if (identifier != null) - result = mxmodelreflection.proxies.Module.load(context, identifier); - return result; - } - - /** - * Set value of MxObjectReference_Module - * @param mxobjectreference_module - */ - public final void setMxObjectReference_Module(mxmodelreflection.proxies.Module mxobjectreference_module) - { - setMxObjectReference_Module(getContext(), mxobjectreference_module); - } - - /** - * Set value of MxObjectReference_Module - * @param context - * @param mxobjectreference_module - */ - public final void setMxObjectReference_Module(com.mendix.systemwideinterfaces.core.IContext context, mxmodelreflection.proxies.Module mxobjectreference_module) - { - if (mxobjectreference_module == null) - getMendixObject().setValue(context, MemberNames.MxObjectReference_Module.toString(), null); - else - getMendixObject().setValue(context, MemberNames.MxObjectReference_Module.toString(), mxobjectreference_module.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return mxObjectReferenceMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final mxmodelreflection.proxies.MxObjectReference that = (mxmodelreflection.proxies.MxObjectReference) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "MxModelReflection.MxObjectReference"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/mxmodelreflection/proxies/MxObjectType.java b/javasource/mxmodelreflection/proxies/MxObjectType.java deleted file mode 100644 index b365c4d..0000000 --- a/javasource/mxmodelreflection/proxies/MxObjectType.java +++ /dev/null @@ -1,454 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package mxmodelreflection.proxies; - -public class MxObjectType -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject mxObjectTypeMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "MxModelReflection.MxObjectType"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - CompleteName("CompleteName"), - Name("Name"), - Module("Module"), - ReadableName("ReadableName"), - PersistenceType("PersistenceType"), - MxObjectType_SubClassOf_MxObjectType("MxModelReflection.MxObjectType_SubClassOf_MxObjectType"), - MxObjectType_Module("MxModelReflection.MxObjectType_Module"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public MxObjectType(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "MxModelReflection.MxObjectType")); - } - - protected MxObjectType(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mxObjectTypeMendixObject) - { - if (mxObjectTypeMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("MxModelReflection.MxObjectType", mxObjectTypeMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a MxModelReflection.MxObjectType"); - - this.mxObjectTypeMendixObject = mxObjectTypeMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'MxObjectType.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static mxmodelreflection.proxies.MxObjectType initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return mxmodelreflection.proxies.MxObjectType.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static mxmodelreflection.proxies.MxObjectType initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new mxmodelreflection.proxies.MxObjectType(context, mendixObject); - } - - public static mxmodelreflection.proxies.MxObjectType load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return mxmodelreflection.proxies.MxObjectType.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//MxModelReflection.MxObjectType" + xpathConstraint)) - result.add(mxmodelreflection.proxies.MxObjectType.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of CompleteName - */ - public final java.lang.String getCompleteName() - { - return getCompleteName(getContext()); - } - - /** - * @param context - * @return value of CompleteName - */ - public final java.lang.String getCompleteName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.CompleteName.toString()); - } - - /** - * Set value of CompleteName - * @param completename - */ - public final void setCompleteName(java.lang.String completename) - { - setCompleteName(getContext(), completename); - } - - /** - * Set value of CompleteName - * @param context - * @param completename - */ - public final void setCompleteName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String completename) - { - getMendixObject().setValue(context, MemberNames.CompleteName.toString(), completename); - } - - /** - * @return value of Name - */ - public final java.lang.String getName() - { - return getName(getContext()); - } - - /** - * @param context - * @return value of Name - */ - public final java.lang.String getName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Name.toString()); - } - - /** - * Set value of Name - * @param name - */ - public final void setName(java.lang.String name) - { - setName(getContext(), name); - } - - /** - * Set value of Name - * @param context - * @param name - */ - public final void setName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String name) - { - getMendixObject().setValue(context, MemberNames.Name.toString(), name); - } - - /** - * @return value of Module - */ - public final java.lang.String getModule() - { - return getModule(getContext()); - } - - /** - * @param context - * @return value of Module - */ - public final java.lang.String getModule(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Module.toString()); - } - - /** - * Set value of Module - * @param module - */ - public final void setModule(java.lang.String module) - { - setModule(getContext(), module); - } - - /** - * Set value of Module - * @param context - * @param module - */ - public final void setModule(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String module) - { - getMendixObject().setValue(context, MemberNames.Module.toString(), module); - } - - /** - * @return value of ReadableName - */ - public final java.lang.String getReadableName() - { - return getReadableName(getContext()); - } - - /** - * @param context - * @return value of ReadableName - */ - public final java.lang.String getReadableName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.ReadableName.toString()); - } - - /** - * Set value of ReadableName - * @param readablename - */ - public final void setReadableName(java.lang.String readablename) - { - setReadableName(getContext(), readablename); - } - - /** - * Set value of ReadableName - * @param context - * @param readablename - */ - public final void setReadableName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String readablename) - { - getMendixObject().setValue(context, MemberNames.ReadableName.toString(), readablename); - } - - /** - * Set value of PersistenceType - * @param persistencetype - */ - public final mxmodelreflection.proxies.PersistenceType getPersistenceType() - { - return getPersistenceType(getContext()); - } - - /** - * @param context - * @return value of PersistenceType - */ - public final mxmodelreflection.proxies.PersistenceType getPersistenceType(com.mendix.systemwideinterfaces.core.IContext context) - { - Object obj = getMendixObject().getValue(context, MemberNames.PersistenceType.toString()); - if (obj == null) - return null; - - return mxmodelreflection.proxies.PersistenceType.valueOf((java.lang.String) obj); - } - - /** - * Set value of PersistenceType - * @param persistencetype - */ - public final void setPersistenceType(mxmodelreflection.proxies.PersistenceType persistencetype) - { - setPersistenceType(getContext(), persistencetype); - } - - /** - * Set value of PersistenceType - * @param context - * @param persistencetype - */ - public final void setPersistenceType(com.mendix.systemwideinterfaces.core.IContext context, mxmodelreflection.proxies.PersistenceType persistencetype) - { - if (persistencetype != null) - getMendixObject().setValue(context, MemberNames.PersistenceType.toString(), persistencetype.toString()); - else - getMendixObject().setValue(context, MemberNames.PersistenceType.toString(), null); - } - - /** - * @return value of MxObjectType_SubClassOf_MxObjectType - */ - public final java.util.List getMxObjectType_SubClassOf_MxObjectType() throws com.mendix.core.CoreException - { - return getMxObjectType_SubClassOf_MxObjectType(getContext()); - } - - /** - * @param context - * @return value of MxObjectType_SubClassOf_MxObjectType - */ - @SuppressWarnings("unchecked") - public final java.util.List getMxObjectType_SubClassOf_MxObjectType(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - Object valueObject = getMendixObject().getValue(context, MemberNames.MxObjectType_SubClassOf_MxObjectType.toString()); - if (valueObject == null) - return result; - for (com.mendix.systemwideinterfaces.core.IMendixObject mendixObject : com.mendix.core.Core.retrieveIdList(context, (java.util.List) valueObject)) - result.add(mxmodelreflection.proxies.MxObjectType.initialize(context, mendixObject)); - return result; - } - - /** - * Set value of MxObjectType_SubClassOf_MxObjectType - * @param mxobjecttype_subclassof_mxobjecttype - */ - public final void setMxObjectType_SubClassOf_MxObjectType(java.util.List mxobjecttype_subclassof_mxobjecttype) - { - setMxObjectType_SubClassOf_MxObjectType(getContext(), mxobjecttype_subclassof_mxobjecttype); - } - - /** - * Set value of MxObjectType_SubClassOf_MxObjectType - * @param context - * @param mxobjecttype_subclassof_mxobjecttype - */ - public final void setMxObjectType_SubClassOf_MxObjectType(com.mendix.systemwideinterfaces.core.IContext context, java.util.List mxobjecttype_subclassof_mxobjecttype) - { - java.util.List identifiers = new java.util.ArrayList(); - for (mxmodelreflection.proxies.MxObjectType proxyObject : mxobjecttype_subclassof_mxobjecttype) - identifiers.add(proxyObject.getMendixObject().getId()); - getMendixObject().setValue(context, MemberNames.MxObjectType_SubClassOf_MxObjectType.toString(), identifiers); - } - - /** - * @return value of MxObjectType_Module - */ - public final mxmodelreflection.proxies.Module getMxObjectType_Module() throws com.mendix.core.CoreException - { - return getMxObjectType_Module(getContext()); - } - - /** - * @param context - * @return value of MxObjectType_Module - */ - public final mxmodelreflection.proxies.Module getMxObjectType_Module(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - mxmodelreflection.proxies.Module result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.MxObjectType_Module.toString()); - if (identifier != null) - result = mxmodelreflection.proxies.Module.load(context, identifier); - return result; - } - - /** - * Set value of MxObjectType_Module - * @param mxobjecttype_module - */ - public final void setMxObjectType_Module(mxmodelreflection.proxies.Module mxobjecttype_module) - { - setMxObjectType_Module(getContext(), mxobjecttype_module); - } - - /** - * Set value of MxObjectType_Module - * @param context - * @param mxobjecttype_module - */ - public final void setMxObjectType_Module(com.mendix.systemwideinterfaces.core.IContext context, mxmodelreflection.proxies.Module mxobjecttype_module) - { - if (mxobjecttype_module == null) - getMendixObject().setValue(context, MemberNames.MxObjectType_Module.toString(), null); - else - getMendixObject().setValue(context, MemberNames.MxObjectType_Module.toString(), mxobjecttype_module.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return mxObjectTypeMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final mxmodelreflection.proxies.MxObjectType that = (mxmodelreflection.proxies.MxObjectType) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "MxModelReflection.MxObjectType"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/mxmodelreflection/proxies/Parameter.java b/javasource/mxmodelreflection/proxies/Parameter.java deleted file mode 100644 index 3766797..0000000 --- a/javasource/mxmodelreflection/proxies/Parameter.java +++ /dev/null @@ -1,295 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package mxmodelreflection.proxies; - -public class Parameter -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject parameterMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "MxModelReflection.Parameter"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - Name("Name"), - Parameter_ValueType("MxModelReflection.Parameter_ValueType"), - Parameter_MxObjectType("MxModelReflection.Parameter_MxObjectType"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public Parameter(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "MxModelReflection.Parameter")); - } - - protected Parameter(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject parameterMendixObject) - { - if (parameterMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("MxModelReflection.Parameter", parameterMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a MxModelReflection.Parameter"); - - this.parameterMendixObject = parameterMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'Parameter.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static mxmodelreflection.proxies.Parameter initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return mxmodelreflection.proxies.Parameter.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static mxmodelreflection.proxies.Parameter initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new mxmodelreflection.proxies.Parameter(context, mendixObject); - } - - public static mxmodelreflection.proxies.Parameter load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return mxmodelreflection.proxies.Parameter.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//MxModelReflection.Parameter" + xpathConstraint)) - result.add(mxmodelreflection.proxies.Parameter.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of Name - */ - public final java.lang.String getName() - { - return getName(getContext()); - } - - /** - * @param context - * @return value of Name - */ - public final java.lang.String getName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Name.toString()); - } - - /** - * Set value of Name - * @param name - */ - public final void setName(java.lang.String name) - { - setName(getContext(), name); - } - - /** - * Set value of Name - * @param context - * @param name - */ - public final void setName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String name) - { - getMendixObject().setValue(context, MemberNames.Name.toString(), name); - } - - /** - * @return value of Parameter_ValueType - */ - public final mxmodelreflection.proxies.ValueType getParameter_ValueType() throws com.mendix.core.CoreException - { - return getParameter_ValueType(getContext()); - } - - /** - * @param context - * @return value of Parameter_ValueType - */ - public final mxmodelreflection.proxies.ValueType getParameter_ValueType(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - mxmodelreflection.proxies.ValueType result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.Parameter_ValueType.toString()); - if (identifier != null) - result = mxmodelreflection.proxies.ValueType.load(context, identifier); - return result; - } - - /** - * Set value of Parameter_ValueType - * @param parameter_valuetype - */ - public final void setParameter_ValueType(mxmodelreflection.proxies.ValueType parameter_valuetype) - { - setParameter_ValueType(getContext(), parameter_valuetype); - } - - /** - * Set value of Parameter_ValueType - * @param context - * @param parameter_valuetype - */ - public final void setParameter_ValueType(com.mendix.systemwideinterfaces.core.IContext context, mxmodelreflection.proxies.ValueType parameter_valuetype) - { - if (parameter_valuetype == null) - getMendixObject().setValue(context, MemberNames.Parameter_ValueType.toString(), null); - else - getMendixObject().setValue(context, MemberNames.Parameter_ValueType.toString(), parameter_valuetype.getMendixObject().getId()); - } - - /** - * @return value of Parameter_MxObjectType - */ - public final mxmodelreflection.proxies.MxObjectType getParameter_MxObjectType() throws com.mendix.core.CoreException - { - return getParameter_MxObjectType(getContext()); - } - - /** - * @param context - * @return value of Parameter_MxObjectType - */ - public final mxmodelreflection.proxies.MxObjectType getParameter_MxObjectType(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - mxmodelreflection.proxies.MxObjectType result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.Parameter_MxObjectType.toString()); - if (identifier != null) - result = mxmodelreflection.proxies.MxObjectType.load(context, identifier); - return result; - } - - /** - * Set value of Parameter_MxObjectType - * @param parameter_mxobjecttype - */ - public final void setParameter_MxObjectType(mxmodelreflection.proxies.MxObjectType parameter_mxobjecttype) - { - setParameter_MxObjectType(getContext(), parameter_mxobjecttype); - } - - /** - * Set value of Parameter_MxObjectType - * @param context - * @param parameter_mxobjecttype - */ - public final void setParameter_MxObjectType(com.mendix.systemwideinterfaces.core.IContext context, mxmodelreflection.proxies.MxObjectType parameter_mxobjecttype) - { - if (parameter_mxobjecttype == null) - getMendixObject().setValue(context, MemberNames.Parameter_MxObjectType.toString(), null); - else - getMendixObject().setValue(context, MemberNames.Parameter_MxObjectType.toString(), parameter_mxobjecttype.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return parameterMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final mxmodelreflection.proxies.Parameter that = (mxmodelreflection.proxies.Parameter) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "MxModelReflection.Parameter"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/mxmodelreflection/proxies/PersistenceType.java b/javasource/mxmodelreflection/proxies/PersistenceType.java deleted file mode 100644 index c97a52c..0000000 --- a/javasource/mxmodelreflection/proxies/PersistenceType.java +++ /dev/null @@ -1,32 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package mxmodelreflection.proxies; - -public enum PersistenceType -{ - Persistable(new java.lang.String[][] { new java.lang.String[] { "en_US", "Persistable" }, new java.lang.String[] { "nl_NL", "Persistent" }, new java.lang.String[] { "en_GB", "Persistable" }, new java.lang.String[] { "en_ZA", "Persistable" } }), - Non_persistent(new java.lang.String[][] { new java.lang.String[] { "en_US", "Non-persistent" }, new java.lang.String[] { "nl_NL", "Niet peristent" }, new java.lang.String[] { "en_GB", "Non-persistent" }, new java.lang.String[] { "en_ZA", "Non-persistent" } }); - - private java.util.Map captions; - - private PersistenceType(java.lang.String[][] captionStrings) - { - this.captions = new java.util.HashMap(); - for (java.lang.String[] captionString : captionStrings) - captions.put(captionString[0], captionString[1]); - } - - public java.lang.String getCaption(java.lang.String languageCode) - { - if (captions.containsKey(languageCode)) - return captions.get(languageCode); - return captions.get("en_US"); - } - - public java.lang.String getCaption() - { - return captions.get("en_US"); - } -} diff --git a/javasource/mxmodelreflection/proxies/PrimitiveTypes.java b/javasource/mxmodelreflection/proxies/PrimitiveTypes.java deleted file mode 100644 index 1132fbe..0000000 --- a/javasource/mxmodelreflection/proxies/PrimitiveTypes.java +++ /dev/null @@ -1,43 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package mxmodelreflection.proxies; - -public enum PrimitiveTypes -{ - AutoNumber(new java.lang.String[][] { new java.lang.String[] { "en_US", "Auto number" }, new java.lang.String[] { "nl_NL", "Autonummer" }, new java.lang.String[] { "en_GB", "Auto number" }, new java.lang.String[] { "en_ZA", "Auto number" } }), - BooleanType(new java.lang.String[][] { new java.lang.String[] { "en_US", "Boolean" }, new java.lang.String[] { "nl_NL", "Boolean" }, new java.lang.String[] { "en_GB", "Boolean" }, new java.lang.String[] { "en_ZA", "Boolean" } }), - Currency(new java.lang.String[][] { new java.lang.String[] { "en_US", "Currency" }, new java.lang.String[] { "nl_NL", "Currency" }, new java.lang.String[] { "en_GB", "Currency" }, new java.lang.String[] { "en_ZA", "Currency" } }), - DateTime(new java.lang.String[][] { new java.lang.String[] { "en_US", "DateTime" }, new java.lang.String[] { "nl_NL", "DateTime" }, new java.lang.String[] { "en_GB", "DateTime" }, new java.lang.String[] { "en_ZA", "DateTime" } }), - EnumType(new java.lang.String[][] { new java.lang.String[] { "en_US", "Enum" }, new java.lang.String[] { "nl_NL", "Enum" }, new java.lang.String[] { "en_GB", "Enum" }, new java.lang.String[] { "en_ZA", "Enum" } }), - FloatType(new java.lang.String[][] { new java.lang.String[] { "en_US", "Float" }, new java.lang.String[] { "nl_NL", "Float" }, new java.lang.String[] { "en_GB", "Float" }, new java.lang.String[] { "en_ZA", "Float" } }), - HashString(new java.lang.String[][] { new java.lang.String[] { "en_US", "Hash string (i.e. passwords)" }, new java.lang.String[] { "nl_NL", "Hash string (bv. wachtwoorden)" }, new java.lang.String[] { "en_GB", "Hash string (i.e. passwords)" }, new java.lang.String[] { "en_ZA", "Hash string (i.e. passwords)" } }), - IntegerType(new java.lang.String[][] { new java.lang.String[] { "en_US", "Integer" }, new java.lang.String[] { "nl_NL", "Integer" }, new java.lang.String[] { "en_GB", "Integer" }, new java.lang.String[] { "en_ZA", "Integer" } }), - LongType(new java.lang.String[][] { new java.lang.String[] { "en_US", "Long" }, new java.lang.String[] { "nl_NL", "Long" }, new java.lang.String[] { "en_GB", "Long" }, new java.lang.String[] { "en_ZA", "Long" } }), - StringType(new java.lang.String[][] { new java.lang.String[] { "en_US", "String" }, new java.lang.String[] { "nl_NL", "String" }, new java.lang.String[] { "en_GB", "String" }, new java.lang.String[] { "en_ZA", "String" } }), - ObjectType(new java.lang.String[][] { new java.lang.String[] { "en_US", "Object Type" }, new java.lang.String[] { "en_GB", "Object Type" }, new java.lang.String[] { "en_ZA", "Object Type" }, new java.lang.String[] { "nl_NL", "Object Type" } }), - ObjectList(new java.lang.String[][] { new java.lang.String[] { "en_US", "Object List" }, new java.lang.String[] { "en_GB", "Object List" }, new java.lang.String[] { "en_ZA", "Object List" }, new java.lang.String[] { "nl_NL", "Object Lijst" } }), - Decimal(new java.lang.String[][] { new java.lang.String[] { "en_US", "Decimal" }, new java.lang.String[] { "nl_NL", "Decimal" }, new java.lang.String[] { "en_GB", "Decimal" }, new java.lang.String[] { "en_ZA", "Decimal" } }); - - private java.util.Map captions; - - private PrimitiveTypes(java.lang.String[][] captionStrings) - { - this.captions = new java.util.HashMap(); - for (java.lang.String[] captionString : captionStrings) - captions.put(captionString[0], captionString[1]); - } - - public java.lang.String getCaption(java.lang.String languageCode) - { - if (captions.containsKey(languageCode)) - return captions.get(languageCode); - return captions.get("en_US"); - } - - public java.lang.String getCaption() - { - return captions.get("en_US"); - } -} diff --git a/javasource/mxmodelreflection/proxies/ReferenceType.java b/javasource/mxmodelreflection/proxies/ReferenceType.java deleted file mode 100644 index 7112c45..0000000 --- a/javasource/mxmodelreflection/proxies/ReferenceType.java +++ /dev/null @@ -1,32 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package mxmodelreflection.proxies; - -public enum ReferenceType -{ - Reference(new java.lang.String[][] { new java.lang.String[] { "en_US", "Reference" }, new java.lang.String[] { "nl_NL", "Referentie" }, new java.lang.String[] { "en_GB", "Reference" }, new java.lang.String[] { "en_ZA", "Reference" } }), - ReferenceSet(new java.lang.String[][] { new java.lang.String[] { "en_US", "Reference set" }, new java.lang.String[] { "nl_NL", "Reference set" }, new java.lang.String[] { "en_GB", "Reference set" }, new java.lang.String[] { "en_ZA", "Reference set" } }); - - private java.util.Map captions; - - private ReferenceType(java.lang.String[][] captionStrings) - { - this.captions = new java.util.HashMap(); - for (java.lang.String[] captionString : captionStrings) - captions.put(captionString[0], captionString[1]); - } - - public java.lang.String getCaption(java.lang.String languageCode) - { - if (captions.containsKey(languageCode)) - return captions.get(languageCode); - return captions.get("en_US"); - } - - public java.lang.String getCaption() - { - return captions.get("en_US"); - } -} diff --git a/javasource/mxmodelreflection/proxies/Status.java b/javasource/mxmodelreflection/proxies/Status.java deleted file mode 100644 index d0c5775..0000000 --- a/javasource/mxmodelreflection/proxies/Status.java +++ /dev/null @@ -1,32 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package mxmodelreflection.proxies; - -public enum Status -{ - Valid(new java.lang.String[][] { new java.lang.String[] { "en_US", "Valid" }, new java.lang.String[] { "nl_NL", "Geldig" }, new java.lang.String[] { "en_GB", "Valid" }, new java.lang.String[] { "en_ZA", "Valid" } }), - Invalid(new java.lang.String[][] { new java.lang.String[] { "en_US", "Invalid" }, new java.lang.String[] { "nl_NL", "Ongeldig" }, new java.lang.String[] { "en_GB", "Invalid" }, new java.lang.String[] { "en_ZA", "Invalid" } }); - - private java.util.Map captions; - - private Status(java.lang.String[][] captionStrings) - { - this.captions = new java.util.HashMap(); - for (java.lang.String[] captionString : captionStrings) - captions.put(captionString[0], captionString[1]); - } - - public java.lang.String getCaption(java.lang.String languageCode) - { - if (captions.containsKey(languageCode)) - return captions.get(languageCode); - return captions.get("en_US"); - } - - public java.lang.String getCaption() - { - return captions.get("en_US"); - } -} diff --git a/javasource/mxmodelreflection/proxies/TestPattern.java b/javasource/mxmodelreflection/proxies/TestPattern.java deleted file mode 100644 index b0f1b2e..0000000 --- a/javasource/mxmodelreflection/proxies/TestPattern.java +++ /dev/null @@ -1,503 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package mxmodelreflection.proxies; - -public class TestPattern -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject testPatternMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "MxModelReflection.TestPattern"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - DisplayPattern("DisplayPattern"), - AttributeTypeEnum("AttributeTypeEnum"), - BooleanAttribute("BooleanAttribute"), - DecimalAttribute("DecimalAttribute"), - DateTimeAttribute("DateTimeAttribute"), - IntegerAttribute("IntegerAttribute"), - LongAttribute("LongAttribute"), - StringAttribute("StringAttribute"), - Result("Result"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public TestPattern(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "MxModelReflection.TestPattern")); - } - - protected TestPattern(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject testPatternMendixObject) - { - if (testPatternMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("MxModelReflection.TestPattern", testPatternMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a MxModelReflection.TestPattern"); - - this.testPatternMendixObject = testPatternMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'TestPattern.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static mxmodelreflection.proxies.TestPattern initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return mxmodelreflection.proxies.TestPattern.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static mxmodelreflection.proxies.TestPattern initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new mxmodelreflection.proxies.TestPattern(context, mendixObject); - } - - public static mxmodelreflection.proxies.TestPattern load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return mxmodelreflection.proxies.TestPattern.initialize(context, mendixObject); - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of DisplayPattern - */ - public final java.lang.String getDisplayPattern() - { - return getDisplayPattern(getContext()); - } - - /** - * @param context - * @return value of DisplayPattern - */ - public final java.lang.String getDisplayPattern(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.DisplayPattern.toString()); - } - - /** - * Set value of DisplayPattern - * @param displaypattern - */ - public final void setDisplayPattern(java.lang.String displaypattern) - { - setDisplayPattern(getContext(), displaypattern); - } - - /** - * Set value of DisplayPattern - * @param context - * @param displaypattern - */ - public final void setDisplayPattern(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String displaypattern) - { - getMendixObject().setValue(context, MemberNames.DisplayPattern.toString(), displaypattern); - } - - /** - * Set value of AttributeTypeEnum - * @param attributetypeenum - */ - public final mxmodelreflection.proxies.AttributeTypes getAttributeTypeEnum() - { - return getAttributeTypeEnum(getContext()); - } - - /** - * @param context - * @return value of AttributeTypeEnum - */ - public final mxmodelreflection.proxies.AttributeTypes getAttributeTypeEnum(com.mendix.systemwideinterfaces.core.IContext context) - { - Object obj = getMendixObject().getValue(context, MemberNames.AttributeTypeEnum.toString()); - if (obj == null) - return null; - - return mxmodelreflection.proxies.AttributeTypes.valueOf((java.lang.String) obj); - } - - /** - * Set value of AttributeTypeEnum - * @param attributetypeenum - */ - public final void setAttributeTypeEnum(mxmodelreflection.proxies.AttributeTypes attributetypeenum) - { - setAttributeTypeEnum(getContext(), attributetypeenum); - } - - /** - * Set value of AttributeTypeEnum - * @param context - * @param attributetypeenum - */ - public final void setAttributeTypeEnum(com.mendix.systemwideinterfaces.core.IContext context, mxmodelreflection.proxies.AttributeTypes attributetypeenum) - { - if (attributetypeenum != null) - getMendixObject().setValue(context, MemberNames.AttributeTypeEnum.toString(), attributetypeenum.toString()); - else - getMendixObject().setValue(context, MemberNames.AttributeTypeEnum.toString(), null); - } - - /** - * @return value of BooleanAttribute - */ - public final java.lang.Boolean getBooleanAttribute() - { - return getBooleanAttribute(getContext()); - } - - /** - * @param context - * @return value of BooleanAttribute - */ - public final java.lang.Boolean getBooleanAttribute(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.BooleanAttribute.toString()); - } - - /** - * Set value of BooleanAttribute - * @param booleanattribute - */ - public final void setBooleanAttribute(java.lang.Boolean booleanattribute) - { - setBooleanAttribute(getContext(), booleanattribute); - } - - /** - * Set value of BooleanAttribute - * @param context - * @param booleanattribute - */ - public final void setBooleanAttribute(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean booleanattribute) - { - getMendixObject().setValue(context, MemberNames.BooleanAttribute.toString(), booleanattribute); - } - - /** - * @return value of DecimalAttribute - */ - public final java.math.BigDecimal getDecimalAttribute() - { - return getDecimalAttribute(getContext()); - } - - /** - * @param context - * @return value of DecimalAttribute - */ - public final java.math.BigDecimal getDecimalAttribute(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.math.BigDecimal) getMendixObject().getValue(context, MemberNames.DecimalAttribute.toString()); - } - - /** - * Set value of DecimalAttribute - * @param decimalattribute - */ - public final void setDecimalAttribute(java.math.BigDecimal decimalattribute) - { - setDecimalAttribute(getContext(), decimalattribute); - } - - /** - * Set value of DecimalAttribute - * @param context - * @param decimalattribute - */ - public final void setDecimalAttribute(com.mendix.systemwideinterfaces.core.IContext context, java.math.BigDecimal decimalattribute) - { - getMendixObject().setValue(context, MemberNames.DecimalAttribute.toString(), decimalattribute); - } - - /** - * @return value of DateTimeAttribute - */ - public final java.util.Date getDateTimeAttribute() - { - return getDateTimeAttribute(getContext()); - } - - /** - * @param context - * @return value of DateTimeAttribute - */ - public final java.util.Date getDateTimeAttribute(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.util.Date) getMendixObject().getValue(context, MemberNames.DateTimeAttribute.toString()); - } - - /** - * Set value of DateTimeAttribute - * @param datetimeattribute - */ - public final void setDateTimeAttribute(java.util.Date datetimeattribute) - { - setDateTimeAttribute(getContext(), datetimeattribute); - } - - /** - * Set value of DateTimeAttribute - * @param context - * @param datetimeattribute - */ - public final void setDateTimeAttribute(com.mendix.systemwideinterfaces.core.IContext context, java.util.Date datetimeattribute) - { - getMendixObject().setValue(context, MemberNames.DateTimeAttribute.toString(), datetimeattribute); - } - - /** - * @return value of IntegerAttribute - */ - public final java.lang.Integer getIntegerAttribute() - { - return getIntegerAttribute(getContext()); - } - - /** - * @param context - * @return value of IntegerAttribute - */ - public final java.lang.Integer getIntegerAttribute(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Integer) getMendixObject().getValue(context, MemberNames.IntegerAttribute.toString()); - } - - /** - * Set value of IntegerAttribute - * @param integerattribute - */ - public final void setIntegerAttribute(java.lang.Integer integerattribute) - { - setIntegerAttribute(getContext(), integerattribute); - } - - /** - * Set value of IntegerAttribute - * @param context - * @param integerattribute - */ - public final void setIntegerAttribute(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Integer integerattribute) - { - getMendixObject().setValue(context, MemberNames.IntegerAttribute.toString(), integerattribute); - } - - /** - * @return value of LongAttribute - */ - public final java.lang.Long getLongAttribute() - { - return getLongAttribute(getContext()); - } - - /** - * @param context - * @return value of LongAttribute - */ - public final java.lang.Long getLongAttribute(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Long) getMendixObject().getValue(context, MemberNames.LongAttribute.toString()); - } - - /** - * Set value of LongAttribute - * @param longattribute - */ - public final void setLongAttribute(java.lang.Long longattribute) - { - setLongAttribute(getContext(), longattribute); - } - - /** - * Set value of LongAttribute - * @param context - * @param longattribute - */ - public final void setLongAttribute(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Long longattribute) - { - getMendixObject().setValue(context, MemberNames.LongAttribute.toString(), longattribute); - } - - /** - * @return value of StringAttribute - */ - public final java.lang.String getStringAttribute() - { - return getStringAttribute(getContext()); - } - - /** - * @param context - * @return value of StringAttribute - */ - public final java.lang.String getStringAttribute(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.StringAttribute.toString()); - } - - /** - * Set value of StringAttribute - * @param stringattribute - */ - public final void setStringAttribute(java.lang.String stringattribute) - { - setStringAttribute(getContext(), stringattribute); - } - - /** - * Set value of StringAttribute - * @param context - * @param stringattribute - */ - public final void setStringAttribute(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String stringattribute) - { - getMendixObject().setValue(context, MemberNames.StringAttribute.toString(), stringattribute); - } - - /** - * @return value of Result - */ - public final java.lang.String getResult() - { - return getResult(getContext()); - } - - /** - * @param context - * @return value of Result - */ - public final java.lang.String getResult(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Result.toString()); - } - - /** - * Set value of Result - * @param result - */ - public final void setResult(java.lang.String result) - { - setResult(getContext(), result); - } - - /** - * Set value of Result - * @param context - * @param result - */ - public final void setResult(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String result) - { - getMendixObject().setValue(context, MemberNames.Result.toString(), result); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return testPatternMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final mxmodelreflection.proxies.TestPattern that = (mxmodelreflection.proxies.TestPattern) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "MxModelReflection.TestPattern"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/mxmodelreflection/proxies/Token.java b/javasource/mxmodelreflection/proxies/Token.java deleted file mode 100644 index 557d180..0000000 --- a/javasource/mxmodelreflection/proxies/Token.java +++ /dev/null @@ -1,917 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package mxmodelreflection.proxies; - -public class Token -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject tokenMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "MxModelReflection.Token"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - Token("Token"), - Prefix("Prefix"), - Suffix("Suffix"), - CombinedToken("CombinedToken"), - Description("Description"), - MetaModelPath("MetaModelPath"), - TokenType("TokenType"), - Status("Status"), - FindObjectStart("FindObjectStart"), - FindObjectReference("FindObjectReference"), - FindReference("FindReference"), - FindMember("FindMember"), - FindMemberReference("FindMemberReference"), - IsOptional("IsOptional"), - DisplayPattern("DisplayPattern"), - Token_MxObjectMember("MxModelReflection.Token_MxObjectMember"), - Token_MxObjectType_Start("MxModelReflection.Token_MxObjectType_Start"), - Token_MxObjectType_Referenced("MxModelReflection.Token_MxObjectType_Referenced"), - Token_MxObjectReference("MxModelReflection.Token_MxObjectReference"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public Token(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "MxModelReflection.Token")); - } - - protected Token(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject tokenMendixObject) - { - if (tokenMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("MxModelReflection.Token", tokenMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a MxModelReflection.Token"); - - this.tokenMendixObject = tokenMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'Token.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static mxmodelreflection.proxies.Token initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return mxmodelreflection.proxies.Token.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static mxmodelreflection.proxies.Token initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new mxmodelreflection.proxies.Token(context, mendixObject); - } - - public static mxmodelreflection.proxies.Token load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return mxmodelreflection.proxies.Token.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//MxModelReflection.Token" + xpathConstraint)) - result.add(mxmodelreflection.proxies.Token.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of Token - */ - public final java.lang.String getToken() - { - return getToken(getContext()); - } - - /** - * @param context - * @return value of Token - */ - public final java.lang.String getToken(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Token.toString()); - } - - /** - * Set value of Token - * @param token - */ - public final void setToken(java.lang.String token) - { - setToken(getContext(), token); - } - - /** - * Set value of Token - * @param context - * @param token - */ - public final void setToken(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String token) - { - getMendixObject().setValue(context, MemberNames.Token.toString(), token); - } - - /** - * @return value of Prefix - */ - public final java.lang.String getPrefix() - { - return getPrefix(getContext()); - } - - /** - * @param context - * @return value of Prefix - */ - public final java.lang.String getPrefix(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Prefix.toString()); - } - - /** - * Set value of Prefix - * @param prefix - */ - public final void setPrefix(java.lang.String prefix) - { - setPrefix(getContext(), prefix); - } - - /** - * Set value of Prefix - * @param context - * @param prefix - */ - public final void setPrefix(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String prefix) - { - getMendixObject().setValue(context, MemberNames.Prefix.toString(), prefix); - } - - /** - * @return value of Suffix - */ - public final java.lang.String getSuffix() - { - return getSuffix(getContext()); - } - - /** - * @param context - * @return value of Suffix - */ - public final java.lang.String getSuffix(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Suffix.toString()); - } - - /** - * Set value of Suffix - * @param suffix - */ - public final void setSuffix(java.lang.String suffix) - { - setSuffix(getContext(), suffix); - } - - /** - * Set value of Suffix - * @param context - * @param suffix - */ - public final void setSuffix(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String suffix) - { - getMendixObject().setValue(context, MemberNames.Suffix.toString(), suffix); - } - - /** - * @return value of CombinedToken - */ - public final java.lang.String getCombinedToken() - { - return getCombinedToken(getContext()); - } - - /** - * @param context - * @return value of CombinedToken - */ - public final java.lang.String getCombinedToken(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.CombinedToken.toString()); - } - - /** - * Set value of CombinedToken - * @param combinedtoken - */ - public final void setCombinedToken(java.lang.String combinedtoken) - { - setCombinedToken(getContext(), combinedtoken); - } - - /** - * Set value of CombinedToken - * @param context - * @param combinedtoken - */ - public final void setCombinedToken(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String combinedtoken) - { - getMendixObject().setValue(context, MemberNames.CombinedToken.toString(), combinedtoken); - } - - /** - * @return value of Description - */ - public final java.lang.String getDescription() - { - return getDescription(getContext()); - } - - /** - * @param context - * @return value of Description - */ - public final java.lang.String getDescription(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Description.toString()); - } - - /** - * Set value of Description - * @param description - */ - public final void setDescription(java.lang.String description) - { - setDescription(getContext(), description); - } - - /** - * Set value of Description - * @param context - * @param description - */ - public final void setDescription(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String description) - { - getMendixObject().setValue(context, MemberNames.Description.toString(), description); - } - - /** - * @return value of MetaModelPath - */ - public final java.lang.String getMetaModelPath() - { - return getMetaModelPath(getContext()); - } - - /** - * @param context - * @return value of MetaModelPath - */ - public final java.lang.String getMetaModelPath(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.MetaModelPath.toString()); - } - - /** - * Set value of MetaModelPath - * @param metamodelpath - */ - public final void setMetaModelPath(java.lang.String metamodelpath) - { - setMetaModelPath(getContext(), metamodelpath); - } - - /** - * Set value of MetaModelPath - * @param context - * @param metamodelpath - */ - public final void setMetaModelPath(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String metamodelpath) - { - getMendixObject().setValue(context, MemberNames.MetaModelPath.toString(), metamodelpath); - } - - /** - * Set value of TokenType - * @param tokentype - */ - public final mxmodelreflection.proxies.TokenType getTokenType() - { - return getTokenType(getContext()); - } - - /** - * @param context - * @return value of TokenType - */ - public final mxmodelreflection.proxies.TokenType getTokenType(com.mendix.systemwideinterfaces.core.IContext context) - { - Object obj = getMendixObject().getValue(context, MemberNames.TokenType.toString()); - if (obj == null) - return null; - - return mxmodelreflection.proxies.TokenType.valueOf((java.lang.String) obj); - } - - /** - * Set value of TokenType - * @param tokentype - */ - public final void setTokenType(mxmodelreflection.proxies.TokenType tokentype) - { - setTokenType(getContext(), tokentype); - } - - /** - * Set value of TokenType - * @param context - * @param tokentype - */ - public final void setTokenType(com.mendix.systemwideinterfaces.core.IContext context, mxmodelreflection.proxies.TokenType tokentype) - { - if (tokentype != null) - getMendixObject().setValue(context, MemberNames.TokenType.toString(), tokentype.toString()); - else - getMendixObject().setValue(context, MemberNames.TokenType.toString(), null); - } - - /** - * Set value of Status - * @param status - */ - public final mxmodelreflection.proxies.Status getStatus() - { - return getStatus(getContext()); - } - - /** - * @param context - * @return value of Status - */ - public final mxmodelreflection.proxies.Status getStatus(com.mendix.systemwideinterfaces.core.IContext context) - { - Object obj = getMendixObject().getValue(context, MemberNames.Status.toString()); - if (obj == null) - return null; - - return mxmodelreflection.proxies.Status.valueOf((java.lang.String) obj); - } - - /** - * Set value of Status - * @param status - */ - public final void setStatus(mxmodelreflection.proxies.Status status) - { - setStatus(getContext(), status); - } - - /** - * Set value of Status - * @param context - * @param status - */ - public final void setStatus(com.mendix.systemwideinterfaces.core.IContext context, mxmodelreflection.proxies.Status status) - { - if (status != null) - getMendixObject().setValue(context, MemberNames.Status.toString(), status.toString()); - else - getMendixObject().setValue(context, MemberNames.Status.toString(), null); - } - - /** - * @return value of FindObjectStart - */ - public final java.lang.String getFindObjectStart() - { - return getFindObjectStart(getContext()); - } - - /** - * @param context - * @return value of FindObjectStart - */ - public final java.lang.String getFindObjectStart(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.FindObjectStart.toString()); - } - - /** - * Set value of FindObjectStart - * @param findobjectstart - */ - public final void setFindObjectStart(java.lang.String findobjectstart) - { - setFindObjectStart(getContext(), findobjectstart); - } - - /** - * Set value of FindObjectStart - * @param context - * @param findobjectstart - */ - public final void setFindObjectStart(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String findobjectstart) - { - getMendixObject().setValue(context, MemberNames.FindObjectStart.toString(), findobjectstart); - } - - /** - * @return value of FindObjectReference - */ - public final java.lang.String getFindObjectReference() - { - return getFindObjectReference(getContext()); - } - - /** - * @param context - * @return value of FindObjectReference - */ - public final java.lang.String getFindObjectReference(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.FindObjectReference.toString()); - } - - /** - * Set value of FindObjectReference - * @param findobjectreference - */ - public final void setFindObjectReference(java.lang.String findobjectreference) - { - setFindObjectReference(getContext(), findobjectreference); - } - - /** - * Set value of FindObjectReference - * @param context - * @param findobjectreference - */ - public final void setFindObjectReference(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String findobjectreference) - { - getMendixObject().setValue(context, MemberNames.FindObjectReference.toString(), findobjectreference); - } - - /** - * @return value of FindReference - */ - public final java.lang.String getFindReference() - { - return getFindReference(getContext()); - } - - /** - * @param context - * @return value of FindReference - */ - public final java.lang.String getFindReference(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.FindReference.toString()); - } - - /** - * Set value of FindReference - * @param findreference - */ - public final void setFindReference(java.lang.String findreference) - { - setFindReference(getContext(), findreference); - } - - /** - * Set value of FindReference - * @param context - * @param findreference - */ - public final void setFindReference(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String findreference) - { - getMendixObject().setValue(context, MemberNames.FindReference.toString(), findreference); - } - - /** - * @return value of FindMember - */ - public final java.lang.String getFindMember() - { - return getFindMember(getContext()); - } - - /** - * @param context - * @return value of FindMember - */ - public final java.lang.String getFindMember(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.FindMember.toString()); - } - - /** - * Set value of FindMember - * @param findmember - */ - public final void setFindMember(java.lang.String findmember) - { - setFindMember(getContext(), findmember); - } - - /** - * Set value of FindMember - * @param context - * @param findmember - */ - public final void setFindMember(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String findmember) - { - getMendixObject().setValue(context, MemberNames.FindMember.toString(), findmember); - } - - /** - * @return value of FindMemberReference - */ - public final java.lang.String getFindMemberReference() - { - return getFindMemberReference(getContext()); - } - - /** - * @param context - * @return value of FindMemberReference - */ - public final java.lang.String getFindMemberReference(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.FindMemberReference.toString()); - } - - /** - * Set value of FindMemberReference - * @param findmemberreference - */ - public final void setFindMemberReference(java.lang.String findmemberreference) - { - setFindMemberReference(getContext(), findmemberreference); - } - - /** - * Set value of FindMemberReference - * @param context - * @param findmemberreference - */ - public final void setFindMemberReference(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String findmemberreference) - { - getMendixObject().setValue(context, MemberNames.FindMemberReference.toString(), findmemberreference); - } - - /** - * @return value of IsOptional - */ - public final java.lang.Boolean getIsOptional() - { - return getIsOptional(getContext()); - } - - /** - * @param context - * @return value of IsOptional - */ - public final java.lang.Boolean getIsOptional(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.IsOptional.toString()); - } - - /** - * Set value of IsOptional - * @param isoptional - */ - public final void setIsOptional(java.lang.Boolean isoptional) - { - setIsOptional(getContext(), isoptional); - } - - /** - * Set value of IsOptional - * @param context - * @param isoptional - */ - public final void setIsOptional(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean isoptional) - { - getMendixObject().setValue(context, MemberNames.IsOptional.toString(), isoptional); - } - - /** - * @return value of DisplayPattern - */ - public final java.lang.String getDisplayPattern() - { - return getDisplayPattern(getContext()); - } - - /** - * @param context - * @return value of DisplayPattern - */ - public final java.lang.String getDisplayPattern(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.DisplayPattern.toString()); - } - - /** - * Set value of DisplayPattern - * @param displaypattern - */ - public final void setDisplayPattern(java.lang.String displaypattern) - { - setDisplayPattern(getContext(), displaypattern); - } - - /** - * Set value of DisplayPattern - * @param context - * @param displaypattern - */ - public final void setDisplayPattern(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String displaypattern) - { - getMendixObject().setValue(context, MemberNames.DisplayPattern.toString(), displaypattern); - } - - /** - * @return value of Token_MxObjectMember - */ - public final mxmodelreflection.proxies.MxObjectMember getToken_MxObjectMember() throws com.mendix.core.CoreException - { - return getToken_MxObjectMember(getContext()); - } - - /** - * @param context - * @return value of Token_MxObjectMember - */ - public final mxmodelreflection.proxies.MxObjectMember getToken_MxObjectMember(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - mxmodelreflection.proxies.MxObjectMember result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.Token_MxObjectMember.toString()); - if (identifier != null) - result = mxmodelreflection.proxies.MxObjectMember.load(context, identifier); - return result; - } - - /** - * Set value of Token_MxObjectMember - * @param token_mxobjectmember - */ - public final void setToken_MxObjectMember(mxmodelreflection.proxies.MxObjectMember token_mxobjectmember) - { - setToken_MxObjectMember(getContext(), token_mxobjectmember); - } - - /** - * Set value of Token_MxObjectMember - * @param context - * @param token_mxobjectmember - */ - public final void setToken_MxObjectMember(com.mendix.systemwideinterfaces.core.IContext context, mxmodelreflection.proxies.MxObjectMember token_mxobjectmember) - { - if (token_mxobjectmember == null) - getMendixObject().setValue(context, MemberNames.Token_MxObjectMember.toString(), null); - else - getMendixObject().setValue(context, MemberNames.Token_MxObjectMember.toString(), token_mxobjectmember.getMendixObject().getId()); - } - - /** - * @return value of Token_MxObjectType_Start - */ - public final mxmodelreflection.proxies.MxObjectType getToken_MxObjectType_Start() throws com.mendix.core.CoreException - { - return getToken_MxObjectType_Start(getContext()); - } - - /** - * @param context - * @return value of Token_MxObjectType_Start - */ - public final mxmodelreflection.proxies.MxObjectType getToken_MxObjectType_Start(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - mxmodelreflection.proxies.MxObjectType result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.Token_MxObjectType_Start.toString()); - if (identifier != null) - result = mxmodelreflection.proxies.MxObjectType.load(context, identifier); - return result; - } - - /** - * Set value of Token_MxObjectType_Start - * @param token_mxobjecttype_start - */ - public final void setToken_MxObjectType_Start(mxmodelreflection.proxies.MxObjectType token_mxobjecttype_start) - { - setToken_MxObjectType_Start(getContext(), token_mxobjecttype_start); - } - - /** - * Set value of Token_MxObjectType_Start - * @param context - * @param token_mxobjecttype_start - */ - public final void setToken_MxObjectType_Start(com.mendix.systemwideinterfaces.core.IContext context, mxmodelreflection.proxies.MxObjectType token_mxobjecttype_start) - { - if (token_mxobjecttype_start == null) - getMendixObject().setValue(context, MemberNames.Token_MxObjectType_Start.toString(), null); - else - getMendixObject().setValue(context, MemberNames.Token_MxObjectType_Start.toString(), token_mxobjecttype_start.getMendixObject().getId()); - } - - /** - * @return value of Token_MxObjectType_Referenced - */ - public final mxmodelreflection.proxies.MxObjectType getToken_MxObjectType_Referenced() throws com.mendix.core.CoreException - { - return getToken_MxObjectType_Referenced(getContext()); - } - - /** - * @param context - * @return value of Token_MxObjectType_Referenced - */ - public final mxmodelreflection.proxies.MxObjectType getToken_MxObjectType_Referenced(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - mxmodelreflection.proxies.MxObjectType result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.Token_MxObjectType_Referenced.toString()); - if (identifier != null) - result = mxmodelreflection.proxies.MxObjectType.load(context, identifier); - return result; - } - - /** - * Set value of Token_MxObjectType_Referenced - * @param token_mxobjecttype_referenced - */ - public final void setToken_MxObjectType_Referenced(mxmodelreflection.proxies.MxObjectType token_mxobjecttype_referenced) - { - setToken_MxObjectType_Referenced(getContext(), token_mxobjecttype_referenced); - } - - /** - * Set value of Token_MxObjectType_Referenced - * @param context - * @param token_mxobjecttype_referenced - */ - public final void setToken_MxObjectType_Referenced(com.mendix.systemwideinterfaces.core.IContext context, mxmodelreflection.proxies.MxObjectType token_mxobjecttype_referenced) - { - if (token_mxobjecttype_referenced == null) - getMendixObject().setValue(context, MemberNames.Token_MxObjectType_Referenced.toString(), null); - else - getMendixObject().setValue(context, MemberNames.Token_MxObjectType_Referenced.toString(), token_mxobjecttype_referenced.getMendixObject().getId()); - } - - /** - * @return value of Token_MxObjectReference - */ - public final mxmodelreflection.proxies.MxObjectReference getToken_MxObjectReference() throws com.mendix.core.CoreException - { - return getToken_MxObjectReference(getContext()); - } - - /** - * @param context - * @return value of Token_MxObjectReference - */ - public final mxmodelreflection.proxies.MxObjectReference getToken_MxObjectReference(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - mxmodelreflection.proxies.MxObjectReference result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.Token_MxObjectReference.toString()); - if (identifier != null) - result = mxmodelreflection.proxies.MxObjectReference.load(context, identifier); - return result; - } - - /** - * Set value of Token_MxObjectReference - * @param token_mxobjectreference - */ - public final void setToken_MxObjectReference(mxmodelreflection.proxies.MxObjectReference token_mxobjectreference) - { - setToken_MxObjectReference(getContext(), token_mxobjectreference); - } - - /** - * Set value of Token_MxObjectReference - * @param context - * @param token_mxobjectreference - */ - public final void setToken_MxObjectReference(com.mendix.systemwideinterfaces.core.IContext context, mxmodelreflection.proxies.MxObjectReference token_mxobjectreference) - { - if (token_mxobjectreference == null) - getMendixObject().setValue(context, MemberNames.Token_MxObjectReference.toString(), null); - else - getMendixObject().setValue(context, MemberNames.Token_MxObjectReference.toString(), token_mxobjectreference.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return tokenMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final mxmodelreflection.proxies.Token that = (mxmodelreflection.proxies.Token) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "MxModelReflection.Token"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/mxmodelreflection/proxies/TokenType.java b/javasource/mxmodelreflection/proxies/TokenType.java deleted file mode 100644 index 26467ab..0000000 --- a/javasource/mxmodelreflection/proxies/TokenType.java +++ /dev/null @@ -1,32 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package mxmodelreflection.proxies; - -public enum TokenType -{ - Attribute(new java.lang.String[][] { new java.lang.String[] { "en_US", "Attribute" }, new java.lang.String[] { "nl_NL", "Attribuut" }, new java.lang.String[] { "en_GB", "Attribute" }, new java.lang.String[] { "en_ZA", "Attribute" } }), - Reference(new java.lang.String[][] { new java.lang.String[] { "en_US", "Reference" }, new java.lang.String[] { "nl_NL", "Referentie" }, new java.lang.String[] { "en_GB", "Reference" }, new java.lang.String[] { "en_ZA", "Reference" } }); - - private java.util.Map captions; - - private TokenType(java.lang.String[][] captionStrings) - { - this.captions = new java.util.HashMap(); - for (java.lang.String[] captionString : captionStrings) - captions.put(captionString[0], captionString[1]); - } - - public java.lang.String getCaption(java.lang.String languageCode) - { - if (captions.containsKey(languageCode)) - return captions.get(languageCode); - return captions.get("en_US"); - } - - public java.lang.String getCaption() - { - return captions.get("en_US"); - } -} diff --git a/javasource/mxmodelreflection/proxies/ValueType.java b/javasource/mxmodelreflection/proxies/ValueType.java deleted file mode 100644 index b2410e4..0000000 --- a/javasource/mxmodelreflection/proxies/ValueType.java +++ /dev/null @@ -1,296 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package mxmodelreflection.proxies; - -public class ValueType -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject valueTypeMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "MxModelReflection.ValueType"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - Name("Name"), - TypeEnum("TypeEnum"), - ValueType_MxObjectType("MxModelReflection.ValueType_MxObjectType"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public ValueType(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "MxModelReflection.ValueType")); - } - - protected ValueType(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject valueTypeMendixObject) - { - if (valueTypeMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("MxModelReflection.ValueType", valueTypeMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a MxModelReflection.ValueType"); - - this.valueTypeMendixObject = valueTypeMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'ValueType.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static mxmodelreflection.proxies.ValueType initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return mxmodelreflection.proxies.ValueType.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static mxmodelreflection.proxies.ValueType initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new mxmodelreflection.proxies.ValueType(context, mendixObject); - } - - public static mxmodelreflection.proxies.ValueType load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return mxmodelreflection.proxies.ValueType.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//MxModelReflection.ValueType" + xpathConstraint)) - result.add(mxmodelreflection.proxies.ValueType.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of Name - */ - public final java.lang.String getName() - { - return getName(getContext()); - } - - /** - * @param context - * @return value of Name - */ - public final java.lang.String getName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Name.toString()); - } - - /** - * Set value of Name - * @param name - */ - public final void setName(java.lang.String name) - { - setName(getContext(), name); - } - - /** - * Set value of Name - * @param context - * @param name - */ - public final void setName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String name) - { - getMendixObject().setValue(context, MemberNames.Name.toString(), name); - } - - /** - * Set value of TypeEnum - * @param typeenum - */ - public final mxmodelreflection.proxies.PrimitiveTypes getTypeEnum() - { - return getTypeEnum(getContext()); - } - - /** - * @param context - * @return value of TypeEnum - */ - public final mxmodelreflection.proxies.PrimitiveTypes getTypeEnum(com.mendix.systemwideinterfaces.core.IContext context) - { - Object obj = getMendixObject().getValue(context, MemberNames.TypeEnum.toString()); - if (obj == null) - return null; - - return mxmodelreflection.proxies.PrimitiveTypes.valueOf((java.lang.String) obj); - } - - /** - * Set value of TypeEnum - * @param typeenum - */ - public final void setTypeEnum(mxmodelreflection.proxies.PrimitiveTypes typeenum) - { - setTypeEnum(getContext(), typeenum); - } - - /** - * Set value of TypeEnum - * @param context - * @param typeenum - */ - public final void setTypeEnum(com.mendix.systemwideinterfaces.core.IContext context, mxmodelreflection.proxies.PrimitiveTypes typeenum) - { - if (typeenum != null) - getMendixObject().setValue(context, MemberNames.TypeEnum.toString(), typeenum.toString()); - else - getMendixObject().setValue(context, MemberNames.TypeEnum.toString(), null); - } - - /** - * @return value of ValueType_MxObjectType - */ - public final mxmodelreflection.proxies.MxObjectType getValueType_MxObjectType() throws com.mendix.core.CoreException - { - return getValueType_MxObjectType(getContext()); - } - - /** - * @param context - * @return value of ValueType_MxObjectType - */ - public final mxmodelreflection.proxies.MxObjectType getValueType_MxObjectType(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - mxmodelreflection.proxies.MxObjectType result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.ValueType_MxObjectType.toString()); - if (identifier != null) - result = mxmodelreflection.proxies.MxObjectType.load(context, identifier); - return result; - } - - /** - * Set value of ValueType_MxObjectType - * @param valuetype_mxobjecttype - */ - public final void setValueType_MxObjectType(mxmodelreflection.proxies.MxObjectType valuetype_mxobjecttype) - { - setValueType_MxObjectType(getContext(), valuetype_mxobjecttype); - } - - /** - * Set value of ValueType_MxObjectType - * @param context - * @param valuetype_mxobjecttype - */ - public final void setValueType_MxObjectType(com.mendix.systemwideinterfaces.core.IContext context, mxmodelreflection.proxies.MxObjectType valuetype_mxobjecttype) - { - if (valuetype_mxobjecttype == null) - getMendixObject().setValue(context, MemberNames.ValueType_MxObjectType.toString(), null); - else - getMendixObject().setValue(context, MemberNames.ValueType_MxObjectType.toString(), valuetype_mxobjecttype.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return valueTypeMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final mxmodelreflection.proxies.ValueType that = (mxmodelreflection.proxies.ValueType) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "MxModelReflection.ValueType"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/mxmodelreflection/proxies/microflows/Microflows.java b/javasource/mxmodelreflection/proxies/microflows/Microflows.java deleted file mode 100644 index b4c377e..0000000 --- a/javasource/mxmodelreflection/proxies/microflows/Microflows.java +++ /dev/null @@ -1,206 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package mxmodelreflection.proxies.microflows; - -import java.util.HashMap; -import java.util.Map; -import com.mendix.core.Core; -import com.mendix.core.CoreException; -import com.mendix.systemwideinterfaces.MendixRuntimeException; -import com.mendix.systemwideinterfaces.core.IContext; -import com.mendix.systemwideinterfaces.core.IMendixObject; - -public class Microflows -{ - // These are the microflows for the MxModelReflection module - public static boolean aSu_CheckMetamodel(IContext context) - { - Map params = new HashMap<>(); - return (java.lang.Boolean) Core.microflowCall("MxModelReflection.ASu_CheckMetamodel").withParams(params).execute(context); - } - public static boolean bCo_MxObjectMember_CreateCompleteMemberName(IContext context, mxmodelreflection.proxies.MxObjectMember _mxObjectMember) - { - Map params = new HashMap<>(); - params.put("MxObjectMember", _mxObjectMember == null ? null : _mxObjectMember.getMendixObject()); - return (java.lang.Boolean) Core.microflowCall("MxModelReflection.BCo_MxObjectMember_CreateCompleteMemberName").withParams(params).execute(context); - } - public static boolean bCo_MxObjectReference(IContext context, mxmodelreflection.proxies.MxObjectReference _mxObjectReference) - { - Map params = new HashMap<>(); - params.put("MxObjectReference", _mxObjectReference == null ? null : _mxObjectReference.getMendixObject()); - return (java.lang.Boolean) Core.microflowCall("MxModelReflection.BCo_MxObjectReference").withParams(params).execute(context); - } - public static boolean bCo_MxObjectType(IContext context, mxmodelreflection.proxies.MxObjectType _mxObjectType) - { - Map params = new HashMap<>(); - params.put("MxObjectType", _mxObjectType == null ? null : _mxObjectType.getMendixObject()); - return (java.lang.Boolean) Core.microflowCall("MxModelReflection.BCo_MxObjectType").withParams(params).execute(context); - } - public static boolean bCo_Token(IContext context, mxmodelreflection.proxies.Token _token) - { - Map params = new HashMap<>(); - params.put("Token", _token == null ? null : _token.getMendixObject()); - return (java.lang.Boolean) Core.microflowCall("MxModelReflection.BCo_Token").withParams(params).execute(context); - } - public static boolean bDe_MxObjectType(IContext context, mxmodelreflection.proxies.MxObjectType _mxObjectType) - { - Map params = new HashMap<>(); - params.put("MxObjectType", _mxObjectType == null ? null : _mxObjectType.getMendixObject()); - return (java.lang.Boolean) Core.microflowCall("MxModelReflection.BDe_MxObjectType").withParams(params).execute(context); - } - public static void ch_FindMember(IContext context, mxmodelreflection.proxies.Token _token) - { - Map params = new HashMap<>(); - params.put("Token", _token == null ? null : _token.getMendixObject()); - Core.microflowCall("MxModelReflection.Ch_FindMember").withParams(params).execute(context); - } - public static void ch_FindMemberReference(IContext context, mxmodelreflection.proxies.Token _token) - { - Map params = new HashMap<>(); - params.put("Token", _token == null ? null : _token.getMendixObject()); - Core.microflowCall("MxModelReflection.Ch_FindMemberReference").withParams(params).execute(context); - } - public static void ch_FindObjectTypeReference(IContext context, mxmodelreflection.proxies.Token _token) - { - Map params = new HashMap<>(); - params.put("Token", _token == null ? null : _token.getMendixObject()); - Core.microflowCall("MxModelReflection.Ch_FindObjectTypeReference").withParams(params).execute(context); - } - public static void ch_FindReference(IContext context, mxmodelreflection.proxies.Token _token) - { - Map params = new HashMap<>(); - params.put("Token", _token == null ? null : _token.getMendixObject()); - Core.microflowCall("MxModelReflection.Ch_FindReference").withParams(params).execute(context); - } - public static void ch_Member(IContext context, mxmodelreflection.proxies.Token _token) - { - Map params = new HashMap<>(); - params.put("Token", _token == null ? null : _token.getMendixObject()); - Core.microflowCall("MxModelReflection.Ch_Member").withParams(params).execute(context); - } - public static void ch_ObjecttypeReference(IContext context, mxmodelreflection.proxies.Token _token) - { - Map params = new HashMap<>(); - params.put("Token", _token == null ? null : _token.getMendixObject()); - Core.microflowCall("MxModelReflection.Ch_ObjecttypeReference").withParams(params).execute(context); - } - public static void ch_ObjectTypeStart(IContext context, mxmodelreflection.proxies.Token _token) - { - Map params = new HashMap<>(); - params.put("Token", _token == null ? null : _token.getMendixObject()); - Core.microflowCall("MxModelReflection.Ch_ObjectTypeStart").withParams(params).execute(context); - } - public static void ch_Reference(IContext context, mxmodelreflection.proxies.Token _token) - { - Map params = new HashMap<>(); - params.put("Token", _token == null ? null : _token.getMendixObject()); - Core.microflowCall("MxModelReflection.Ch_Reference").withParams(params).execute(context); - } - public static java.util.List dSL_Modules(IContext context) - { - Map params = new HashMap<>(); - java.util.List objs = Core.microflowCall("MxModelReflection.DSL_Modules").withParams(params).execute(context); - java.util.List result = null; - if (objs != null) - { - result = new java.util.ArrayList<>(); - for (IMendixObject obj : objs) - result.add(mxmodelreflection.proxies.Module.initialize(context, obj)); - } - return result; - } - public static mxmodelreflection.proxies.InheritsFromContainer dSO_InheritsFromContainer(IContext context, mxmodelreflection.proxies.MxObjectType _mxObjectType) - { - Map params = new HashMap<>(); - params.put("MxObjectType", _mxObjectType == null ? null : _mxObjectType.getMendixObject()); - IMendixObject result = (IMendixObject)Core.microflowCall("MxModelReflection.DSO_InheritsFromContainer").withParams(params).execute(context); - return result == null ? null : mxmodelreflection.proxies.InheritsFromContainer.initialize(context, result); - } - public static mxmodelreflection.proxies.MxObjectMember findMember(IContext context, java.lang.String _memberSearchString, mxmodelreflection.proxies.MxObjectType _mxObjectType) - { - Map params = new HashMap<>(); - params.put("MemberSearchString", _memberSearchString); - params.put("MxObjectType", _mxObjectType == null ? null : _mxObjectType.getMendixObject()); - IMendixObject result = (IMendixObject)Core.microflowCall("MxModelReflection.FindMember").withParams(params).execute(context); - return result == null ? null : mxmodelreflection.proxies.MxObjectMember.initialize(context, result); - } - public static mxmodelreflection.proxies.Microflows findMicroflow(IContext context, java.lang.String _microflowSearchString) - { - Map params = new HashMap<>(); - params.put("MicroflowSearchString", _microflowSearchString); - IMendixObject result = (IMendixObject)Core.microflowCall("MxModelReflection.FindMicroflow").withParams(params).execute(context); - return result == null ? null : mxmodelreflection.proxies.Microflows.initialize(context, result); - } - public static mxmodelreflection.proxies.MxObjectType findObjectType(IContext context, java.lang.String _objectTypeSearchString, mxmodelreflection.proxies.MxObjectReference _mxObjectReference_optional) - { - Map params = new HashMap<>(); - params.put("ObjectTypeSearchString", _objectTypeSearchString); - params.put("MxObjectReference_optional", _mxObjectReference_optional == null ? null : _mxObjectReference_optional.getMendixObject()); - IMendixObject result = (IMendixObject)Core.microflowCall("MxModelReflection.FindObjectType").withParams(params).execute(context); - return result == null ? null : mxmodelreflection.proxies.MxObjectType.initialize(context, result); - } - public static mxmodelreflection.proxies.MxObjectReference findReference(IContext context, java.lang.String _referenceSearchString, mxmodelreflection.proxies.MxObjectType _mxObjectType_optional) - { - Map params = new HashMap<>(); - params.put("ReferenceSearchString", _referenceSearchString); - params.put("MxObjectType_optional", _mxObjectType_optional == null ? null : _mxObjectType_optional.getMendixObject()); - IMendixObject result = (IMendixObject)Core.microflowCall("MxModelReflection.FindReference").withParams(params).execute(context); - return result == null ? null : mxmodelreflection.proxies.MxObjectReference.initialize(context, result); - } - public static void iVK_MxObjectTypeCommit(IContext context, mxmodelreflection.proxies.MxObjectType _mxObjectType) - { - Map params = new HashMap<>(); - params.put("MxObjectType", _mxObjectType == null ? null : _mxObjectType.getMendixObject()); - Core.microflowCall("MxModelReflection.IVK_MxObjectTypeCommit").withParams(params).execute(context); - } - public static void iVK_OpenReferencedMendixObject(IContext context, mxmodelreflection.proxies.MxObjectReference _selection, mxmodelreflection.proxies.MxObjectType _mxObjectType) - { - Map params = new HashMap<>(); - params.put("Selection", _selection == null ? null : _selection.getMendixObject()); - params.put("MxObjectType", _mxObjectType == null ? null : _mxObjectType.getMendixObject()); - Core.microflowCall("MxModelReflection.IVK_OpenReferencedMendixObject").withParams(params).execute(context); - } - public static void iVK_RecalculateSize(IContext context) - { - Map params = new HashMap<>(); - Core.microflowCall("MxModelReflection.IVK_RecalculateSize").withParams(params).execute(context); - } - public static void iVK_SyncObjects(IContext context) - { - Map params = new HashMap<>(); - Core.microflowCall("MxModelReflection.IVK_SyncObjects").withParams(params).execute(context); - } - public static void iVK_ToggleModule(IContext context, mxmodelreflection.proxies.Module _module) - { - Map params = new HashMap<>(); - params.put("Module", _module == null ? null : _module.getMendixObject()); - Core.microflowCall("MxModelReflection.IVK_ToggleModule").withParams(params).execute(context); - } - public static java.lang.Long log(IContext context, java.lang.Long _base, java.lang.Long _x) - { - Map params = new HashMap<>(); - params.put("Base", _base); - params.put("x", _x); - return (java.lang.Long) Core.microflowCall("MxModelReflection.Log").withParams(params).execute(context); - } - public static void mB_TestThePattern(IContext context, mxmodelreflection.proxies.TestPattern _testPattern) - { - Map params = new HashMap<>(); - params.put("TestPattern", _testPattern == null ? null : _testPattern.getMendixObject()); - Core.microflowCall("MxModelReflection.MB_TestThePattern").withParams(params).execute(context); - } - public static void mB_TestTokenPattern(IContext context, mxmodelreflection.proxies.Token _token) - { - Map params = new HashMap<>(); - params.put("Token", _token == null ? null : _token.getMendixObject()); - Core.microflowCall("MxModelReflection.MB_TestTokenPattern").withParams(params).execute(context); - } - public static void oC_FindObjectType(IContext context, mxmodelreflection.proxies.DbSizeEstimate _dbSizeEstimate) - { - Map params = new HashMap<>(); - params.put("DbSizeEstimate", _dbSizeEstimate == null ? null : _dbSizeEstimate.getMendixObject()); - Core.microflowCall("MxModelReflection.OC_FindObjectType").withParams(params).execute(context); - } -} \ No newline at end of file diff --git a/javasource/system/UserActionsRegistrar.java b/javasource/system/UserActionsRegistrar.java deleted file mode 100644 index bba269c..0000000 --- a/javasource/system/UserActionsRegistrar.java +++ /dev/null @@ -1,48 +0,0 @@ -package system; - -import com.mendix.core.actionmanagement.IActionRegistrator; - -public class UserActionsRegistrar -{ - public void registerActions(IActionRegistrator registrator) - { - registrator.bundleComponentLoaded(); - registrator.registerUserAction(email_connector.actions.CalculateIncomingAccountMetrics.class); - registrator.registerUserAction(email_connector.actions.CalculateOutgoingAccountMetrics.class); - registrator.registerUserAction(email_connector.actions.CheckServerConnection.class); - registrator.registerUserAction(email_connector.actions.ConvertHTMLBodyToPlainText.class); - registrator.registerUserAction(email_connector.actions.CopyAttachmentContent.class); - registrator.registerUserAction(email_connector.actions.CreateEmailFromTemplate.class); - registrator.registerUserAction(email_connector.actions.EndTransaction.class); - registrator.registerUserAction(email_connector.actions.GenerateOAuthNonce.class); - registrator.registerUserAction(email_connector.actions.GetAppRootURL.class); - registrator.registerUserAction(email_connector.actions.GetAutoConfig.class); - registrator.registerUserAction(email_connector.actions.GetBaseDNList.class); - registrator.registerUserAction(email_connector.actions.GetFolderNames.class); - registrator.registerUserAction(email_connector.actions.GetMendixID.class); - registrator.registerUserAction(email_connector.actions.GetPayloadFromJWT.class); - registrator.registerUserAction(email_connector.actions.RetrieveEmailMessages.class); - registrator.registerUserAction(email_connector.actions.SendEmail.class); - registrator.registerUserAction(email_connector.actions.SendEmailWithTemplate.class); - registrator.registerUserAction(email_connector.actions.SubscribeToIncomingEmail.class); - registrator.registerUserAction(email_connector.actions.UnsubscribeFromIncomingEmail.class); - registrator.registerUserAction(emailtemplate.actions.ConvertHTMLBodyToPlainText.class); - registrator.registerUserAction(emailtemplate.actions.CopyAttachmentContent.class); - registrator.registerUserAction(emailtemplate.actions.GetEmailSettingsByID.class); - registrator.registerUserAction(emailtemplate.actions.OAuthRequestsHandler.class); - registrator.registerUserAction(emailtemplate.actions.ReplaceCustomToken.class); - registrator.registerUserAction(emailtemplate.actions.ReplaceEmailTemplateTokens.class); - registrator.registerUserAction(emailtemplate.actions.SendEmail.class); - registrator.registerUserAction(encryption.actions.DecryptString.class); - registrator.registerUserAction(encryption.actions.EncryptString.class); - registrator.registerUserAction(encryption.actions.GeneratePGPKeyRing.class); - registrator.registerUserAction(encryption.actions.PGPDecryptDocument.class); - registrator.registerUserAction(encryption.actions.PGPEncryptDocument.class); - registrator.registerUserAction(encryption.actions.ValidatePrivateKeyRing.class); - registrator.registerUserAction(mxmodelreflection.actions.ReplaceToken.class); - registrator.registerUserAction(mxmodelreflection.actions.SyncObjects.class); - registrator.registerUserAction(mxmodelreflection.actions.TestThePattern.class); - registrator.registerUserAction(mxmodelreflection.actions.ValidateTokensInMessage.class); - registrator.registerUserAction(system.actions.VerifyPassword.class); - } -} diff --git a/javasource/system/actions/VerifyPassword.java b/javasource/system/actions/VerifyPassword.java deleted file mode 100644 index c0e3d51..0000000 --- a/javasource/system/actions/VerifyPassword.java +++ /dev/null @@ -1,52 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Only the following code will be retained when actions are regenerated: -// - the import list -// - the code between BEGIN USER CODE and END USER CODE -// - the code between BEGIN EXTRA CODE and END EXTRA CODE -// Other code you write will be lost the next time you deploy the project. -// Special characters, e.g., é, ö, à, etc. are supported in comments. - -package system.actions; - -import com.mendix.core.Core; -import com.mendix.systemwideinterfaces.core.IUser; -import com.mendix.systemwideinterfaces.core.IContext; -import com.mendix.webui.CustomJavaAction; - -/** - * Verifies that the specified user name/password combination is valid. - */ -public class VerifyPassword extends CustomJavaAction -{ - private java.lang.String userName; - private java.lang.String password; - - public VerifyPassword(IContext context, java.lang.String userName, java.lang.String password) - { - super(context); - this.userName = userName; - this.password = password; - } - - @java.lang.Override - public java.lang.Boolean executeAction() throws Exception - { - // BEGIN USER CODE - IUser user = Core.getUser(getContext(), userName); - return user != null && Core.authenticate(getContext(), user, password); - // END USER CODE - } - - /** - * Returns a string representation of this action - */ - @java.lang.Override - public java.lang.String toString() - { - return "VerifyPassword"; - } - - // BEGIN EXTRA CODE - // END EXTRA CODE -} diff --git a/javasource/system/proxies/DeviceType.java b/javasource/system/proxies/DeviceType.java deleted file mode 100644 index 9fe5636..0000000 --- a/javasource/system/proxies/DeviceType.java +++ /dev/null @@ -1,33 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package system.proxies; - -public enum DeviceType -{ - Phone(new java.lang.String[][] { new java.lang.String[] { "en_US", "Phone" }, new java.lang.String[] { "nl_NL", "Phone" } }), - Tablet(new java.lang.String[][] { new java.lang.String[] { "en_US", "Tablet" }, new java.lang.String[] { "nl_NL", "Tablet" } }), - Desktop(new java.lang.String[][] { new java.lang.String[] { "en_US", "Desktop" }, new java.lang.String[] { "nl_NL", "Desktop" } }); - - private java.util.Map captions; - - private DeviceType(java.lang.String[][] captionStrings) - { - this.captions = new java.util.HashMap(); - for (java.lang.String[] captionString : captionStrings) - captions.put(captionString[0], captionString[1]); - } - - public java.lang.String getCaption(java.lang.String languageCode) - { - if (captions.containsKey(languageCode)) - return captions.get(languageCode); - return captions.get("en_US"); - } - - public java.lang.String getCaption() - { - return captions.get("en_US"); - } -} diff --git a/javasource/system/proxies/Error.java b/javasource/system/proxies/Error.java deleted file mode 100644 index 655acb5..0000000 --- a/javasource/system/proxies/Error.java +++ /dev/null @@ -1,276 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package system.proxies; - -public class Error -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject errorMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "System.Error"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - ErrorType("ErrorType"), - Message("Message"), - Stacktrace("Stacktrace"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public Error(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "System.Error")); - } - - protected Error(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject errorMendixObject) - { - if (errorMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("System.Error", errorMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a System.Error"); - - this.errorMendixObject = errorMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'Error.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static system.proxies.Error initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return system.proxies.Error.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static system.proxies.Error initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - if (com.mendix.core.Core.isSubClassOf("System.SoapFault", mendixObject.getType())) - return system.proxies.SoapFault.initialize(context, mendixObject); - - return new system.proxies.Error(context, mendixObject); - } - - public static system.proxies.Error load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return system.proxies.Error.initialize(context, mendixObject); - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of ErrorType - */ - public final java.lang.String getErrorType() - { - return getErrorType(getContext()); - } - - /** - * @param context - * @return value of ErrorType - */ - public final java.lang.String getErrorType(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.ErrorType.toString()); - } - - /** - * Set value of ErrorType - * @param errortype - */ - public final void setErrorType(java.lang.String errortype) - { - setErrorType(getContext(), errortype); - } - - /** - * Set value of ErrorType - * @param context - * @param errortype - */ - public final void setErrorType(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String errortype) - { - getMendixObject().setValue(context, MemberNames.ErrorType.toString(), errortype); - } - - /** - * @return value of Message - */ - public final java.lang.String getMessage() - { - return getMessage(getContext()); - } - - /** - * @param context - * @return value of Message - */ - public final java.lang.String getMessage(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Message.toString()); - } - - /** - * Set value of Message - * @param message - */ - public final void setMessage(java.lang.String message) - { - setMessage(getContext(), message); - } - - /** - * Set value of Message - * @param context - * @param message - */ - public final void setMessage(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String message) - { - getMendixObject().setValue(context, MemberNames.Message.toString(), message); - } - - /** - * @return value of Stacktrace - */ - public final java.lang.String getStacktrace() - { - return getStacktrace(getContext()); - } - - /** - * @param context - * @return value of Stacktrace - */ - public final java.lang.String getStacktrace(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Stacktrace.toString()); - } - - /** - * Set value of Stacktrace - * @param stacktrace - */ - public final void setStacktrace(java.lang.String stacktrace) - { - setStacktrace(getContext(), stacktrace); - } - - /** - * Set value of Stacktrace - * @param context - * @param stacktrace - */ - public final void setStacktrace(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String stacktrace) - { - getMendixObject().setValue(context, MemberNames.Stacktrace.toString(), stacktrace); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return errorMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final system.proxies.Error that = (system.proxies.Error) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "System.Error"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/system/proxies/EventStatus.java b/javasource/system/proxies/EventStatus.java deleted file mode 100644 index 508e043..0000000 --- a/javasource/system/proxies/EventStatus.java +++ /dev/null @@ -1,34 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package system.proxies; - -public enum EventStatus -{ - Running(new java.lang.String[][] { new java.lang.String[] { "en_US", "Running" }, new java.lang.String[] { "nl_NL", "Bezig" } }), - Completed(new java.lang.String[][] { new java.lang.String[] { "en_US", "Completed" }, new java.lang.String[] { "nl_NL", "Voltooid" } }), - Error(new java.lang.String[][] { new java.lang.String[] { "en_US", "Error" }, new java.lang.String[] { "nl_NL", "Fout" } }), - Stopped(new java.lang.String[][] { new java.lang.String[] { "en_US", "Stopped" } }); - - private java.util.Map captions; - - private EventStatus(java.lang.String[][] captionStrings) - { - this.captions = new java.util.HashMap(); - for (java.lang.String[] captionString : captionStrings) - captions.put(captionString[0], captionString[1]); - } - - public java.lang.String getCaption(java.lang.String languageCode) - { - if (captions.containsKey(languageCode)) - return captions.get(languageCode); - return captions.get("en_US"); - } - - public java.lang.String getCaption() - { - return captions.get("en_US"); - } -} diff --git a/javasource/system/proxies/FileDocument.java b/javasource/system/proxies/FileDocument.java deleted file mode 100644 index ae477a6..0000000 --- a/javasource/system/proxies/FileDocument.java +++ /dev/null @@ -1,405 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package system.proxies; - -public class FileDocument -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject fileDocumentMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "System.FileDocument"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - FileID("FileID"), - Name("Name"), - DeleteAfterDownload("DeleteAfterDownload"), - Contents("Contents"), - HasContents("HasContents"), - Size("Size"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public FileDocument(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "System.FileDocument")); - } - - protected FileDocument(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject fileDocumentMendixObject) - { - if (fileDocumentMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("System.FileDocument", fileDocumentMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a System.FileDocument"); - - this.fileDocumentMendixObject = fileDocumentMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'FileDocument.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static system.proxies.FileDocument initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return system.proxies.FileDocument.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static system.proxies.FileDocument initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - if (com.mendix.core.Core.isSubClassOf("Email_Connector.Attachment", mendixObject.getType())) - return email_connector.proxies.Attachment.initialize(context, mendixObject); - - if (com.mendix.core.Core.isSubClassOf("EmailTemplate.Attachment", mendixObject.getType())) - return emailtemplate.proxies.Attachment.initialize(context, mendixObject); - - if (com.mendix.core.Core.isSubClassOf("System.Image", mendixObject.getType())) - return system.proxies.Image.initialize(context, mendixObject); - - if (com.mendix.core.Core.isSubClassOf("Encryption.PGPCertificate", mendixObject.getType())) - return encryption.proxies.PGPCertificate.initialize(context, mendixObject); - - if (com.mendix.core.Core.isSubClassOf("Email_Connector.Pk12Certificate", mendixObject.getType())) - return email_connector.proxies.Pk12Certificate.initialize(context, mendixObject); - - if (com.mendix.core.Core.isSubClassOf("System.SynchronizationErrorFile", mendixObject.getType())) - return system.proxies.SynchronizationErrorFile.initialize(context, mendixObject); - - return new system.proxies.FileDocument(context, mendixObject); - } - - public static system.proxies.FileDocument load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return system.proxies.FileDocument.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//System.FileDocument" + xpathConstraint)) - result.add(system.proxies.FileDocument.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of FileID - */ - public final java.lang.Long getFileID() - { - return getFileID(getContext()); - } - - /** - * @param context - * @return value of FileID - */ - public final java.lang.Long getFileID(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Long) getMendixObject().getValue(context, MemberNames.FileID.toString()); - } - - /** - * Set value of FileID - * @param fileid - */ - public final void setFileID(java.lang.Long fileid) - { - setFileID(getContext(), fileid); - } - - /** - * Set value of FileID - * @param context - * @param fileid - */ - public final void setFileID(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Long fileid) - { - getMendixObject().setValue(context, MemberNames.FileID.toString(), fileid); - } - - /** - * @return value of Name - */ - public final java.lang.String getName() - { - return getName(getContext()); - } - - /** - * @param context - * @return value of Name - */ - public final java.lang.String getName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Name.toString()); - } - - /** - * Set value of Name - * @param name - */ - public final void setName(java.lang.String name) - { - setName(getContext(), name); - } - - /** - * Set value of Name - * @param context - * @param name - */ - public final void setName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String name) - { - getMendixObject().setValue(context, MemberNames.Name.toString(), name); - } - - /** - * @return value of DeleteAfterDownload - */ - public final java.lang.Boolean getDeleteAfterDownload() - { - return getDeleteAfterDownload(getContext()); - } - - /** - * @param context - * @return value of DeleteAfterDownload - */ - public final java.lang.Boolean getDeleteAfterDownload(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.DeleteAfterDownload.toString()); - } - - /** - * Set value of DeleteAfterDownload - * @param deleteafterdownload - */ - public final void setDeleteAfterDownload(java.lang.Boolean deleteafterdownload) - { - setDeleteAfterDownload(getContext(), deleteafterdownload); - } - - /** - * Set value of DeleteAfterDownload - * @param context - * @param deleteafterdownload - */ - public final void setDeleteAfterDownload(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean deleteafterdownload) - { - getMendixObject().setValue(context, MemberNames.DeleteAfterDownload.toString(), deleteafterdownload); - } - - /** - * The contents of the binary field will be written to the output stream. - * The output stream will be closed at the end. - * - * @param context - * @param outputStream - */ - public final void getContents(com.mendix.systemwideinterfaces.core.IContext context, java.io.OutputStream outputStream) - { - com.mendix.core.objectmanagement.member.MendixBinary binary = (com.mendix.core.objectmanagement.member.MendixBinary) getMendixObject().getMember(context, MemberNames.Contents.toString()); - binary.retrieveValue(context, outputStream); - } - - /** - * Stores the bytes from the given InputStream. - * - * Please note that the input stream will be immediately sent to the data store, - * whether you commit the Mendix object or not. - * - * @param context - * @param inputStream - * @param length the number of bytes in the stream - */ - public final void setContents(com.mendix.systemwideinterfaces.core.IContext context, java.io.InputStream inputStream, long length) - { - if (getMendixObject().getState() == com.mendix.systemwideinterfaces.core.IMendixObject.ObjectState.INSTANTIATED) - try { commit(); } catch (com.mendix.core.CoreException ex) { } - com.mendix.core.objectmanagement.member.MendixBinary binary = (com.mendix.core.objectmanagement.member.MendixBinary) getMendixObject().getMember(context, MemberNames.Contents.toString()); - binary.storeValue(context, inputStream, length); - } - - /** - * @return value of HasContents - */ - public final java.lang.Boolean getHasContents() - { - return getHasContents(getContext()); - } - - /** - * @param context - * @return value of HasContents - */ - public final java.lang.Boolean getHasContents(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.HasContents.toString()); - } - - /** - * Set value of HasContents - * @param hascontents - */ - public final void setHasContents(java.lang.Boolean hascontents) - { - setHasContents(getContext(), hascontents); - } - - /** - * Set value of HasContents - * @param context - * @param hascontents - */ - public final void setHasContents(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean hascontents) - { - getMendixObject().setValue(context, MemberNames.HasContents.toString(), hascontents); - } - - /** - * @return value of Size - */ - public final java.lang.Long getSize() - { - return getSize(getContext()); - } - - /** - * @param context - * @return value of Size - */ - public final java.lang.Long getSize(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Long) getMendixObject().getValue(context, MemberNames.Size.toString()); - } - - /** - * Set value of Size - * @param size - */ - public final void setSize(java.lang.Long size) - { - setSize(getContext(), size); - } - - /** - * Set value of Size - * @param context - * @param size - */ - public final void setSize(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Long size) - { - getMendixObject().setValue(context, MemberNames.Size.toString(), size); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return fileDocumentMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final system.proxies.FileDocument that = (system.proxies.FileDocument) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "System.FileDocument"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/system/proxies/HttpHeader.java b/javasource/system/proxies/HttpHeader.java deleted file mode 100644 index 35658d9..0000000 --- a/javasource/system/proxies/HttpHeader.java +++ /dev/null @@ -1,280 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package system.proxies; - -public class HttpHeader -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject httpHeaderMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "System.HttpHeader"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - Key("Key"), - Value("Value"), - HttpHeaders("System.HttpHeaders"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public HttpHeader(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "System.HttpHeader")); - } - - protected HttpHeader(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject httpHeaderMendixObject) - { - if (httpHeaderMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("System.HttpHeader", httpHeaderMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a System.HttpHeader"); - - this.httpHeaderMendixObject = httpHeaderMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'HttpHeader.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static system.proxies.HttpHeader initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return system.proxies.HttpHeader.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static system.proxies.HttpHeader initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new system.proxies.HttpHeader(context, mendixObject); - } - - public static system.proxies.HttpHeader load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return system.proxies.HttpHeader.initialize(context, mendixObject); - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of Key - */ - public final java.lang.String getKey() - { - return getKey(getContext()); - } - - /** - * @param context - * @return value of Key - */ - public final java.lang.String getKey(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Key.toString()); - } - - /** - * Set value of Key - * @param key - */ - public final void setKey(java.lang.String key) - { - setKey(getContext(), key); - } - - /** - * Set value of Key - * @param context - * @param key - */ - public final void setKey(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String key) - { - getMendixObject().setValue(context, MemberNames.Key.toString(), key); - } - - /** - * @return value of Value - */ - public final java.lang.String getValue() - { - return getValue(getContext()); - } - - /** - * @param context - * @return value of Value - */ - public final java.lang.String getValue(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Value.toString()); - } - - /** - * Set value of Value - * @param value - */ - public final void setValue(java.lang.String value) - { - setValue(getContext(), value); - } - - /** - * Set value of Value - * @param context - * @param value - */ - public final void setValue(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String value) - { - getMendixObject().setValue(context, MemberNames.Value.toString(), value); - } - - /** - * @return value of HttpHeaders - */ - public final system.proxies.HttpMessage getHttpHeaders() throws com.mendix.core.CoreException - { - return getHttpHeaders(getContext()); - } - - /** - * @param context - * @return value of HttpHeaders - */ - public final system.proxies.HttpMessage getHttpHeaders(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - system.proxies.HttpMessage result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.HttpHeaders.toString()); - if (identifier != null) - result = system.proxies.HttpMessage.load(context, identifier); - return result; - } - - /** - * Set value of HttpHeaders - * @param httpheaders - */ - public final void setHttpHeaders(system.proxies.HttpMessage httpheaders) - { - setHttpHeaders(getContext(), httpheaders); - } - - /** - * Set value of HttpHeaders - * @param context - * @param httpheaders - */ - public final void setHttpHeaders(com.mendix.systemwideinterfaces.core.IContext context, system.proxies.HttpMessage httpheaders) - { - if (httpheaders == null) - getMendixObject().setValue(context, MemberNames.HttpHeaders.toString(), null); - else - getMendixObject().setValue(context, MemberNames.HttpHeaders.toString(), httpheaders.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return httpHeaderMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final system.proxies.HttpHeader that = (system.proxies.HttpHeader) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "System.HttpHeader"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/system/proxies/HttpMessage.java b/javasource/system/proxies/HttpMessage.java deleted file mode 100644 index 7e1f255..0000000 --- a/javasource/system/proxies/HttpMessage.java +++ /dev/null @@ -1,242 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package system.proxies; - -public class HttpMessage -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject httpMessageMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "System.HttpMessage"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - HttpVersion("HttpVersion"), - Content("Content"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public HttpMessage(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "System.HttpMessage")); - } - - protected HttpMessage(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject httpMessageMendixObject) - { - if (httpMessageMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("System.HttpMessage", httpMessageMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a System.HttpMessage"); - - this.httpMessageMendixObject = httpMessageMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'HttpMessage.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static system.proxies.HttpMessage initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return system.proxies.HttpMessage.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static system.proxies.HttpMessage initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - if (com.mendix.core.Core.isSubClassOf("System.HttpRequest", mendixObject.getType())) - return system.proxies.HttpRequest.initialize(context, mendixObject); - - if (com.mendix.core.Core.isSubClassOf("System.HttpResponse", mendixObject.getType())) - return system.proxies.HttpResponse.initialize(context, mendixObject); - - return new system.proxies.HttpMessage(context, mendixObject); - } - - public static system.proxies.HttpMessage load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return system.proxies.HttpMessage.initialize(context, mendixObject); - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of HttpVersion - */ - public final java.lang.String getHttpVersion() - { - return getHttpVersion(getContext()); - } - - /** - * @param context - * @return value of HttpVersion - */ - public final java.lang.String getHttpVersion(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.HttpVersion.toString()); - } - - /** - * Set value of HttpVersion - * @param httpversion - */ - public final void setHttpVersion(java.lang.String httpversion) - { - setHttpVersion(getContext(), httpversion); - } - - /** - * Set value of HttpVersion - * @param context - * @param httpversion - */ - public final void setHttpVersion(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String httpversion) - { - getMendixObject().setValue(context, MemberNames.HttpVersion.toString(), httpversion); - } - - /** - * @return value of Content - */ - public final java.lang.String getContent() - { - return getContent(getContext()); - } - - /** - * @param context - * @return value of Content - */ - public final java.lang.String getContent(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Content.toString()); - } - - /** - * Set value of Content - * @param content - */ - public final void setContent(java.lang.String content) - { - setContent(getContext(), content); - } - - /** - * Set value of Content - * @param context - * @param content - */ - public final void setContent(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String content) - { - getMendixObject().setValue(context, MemberNames.Content.toString(), content); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return httpMessageMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final system.proxies.HttpMessage that = (system.proxies.HttpMessage) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "System.HttpMessage"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/system/proxies/HttpRequest.java b/javasource/system/proxies/HttpRequest.java deleted file mode 100644 index b378c69..0000000 --- a/javasource/system/proxies/HttpRequest.java +++ /dev/null @@ -1,147 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package system.proxies; - -public class HttpRequest extends system.proxies.HttpMessage -{ - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "System.HttpRequest"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - Uri("Uri"), - HttpVersion("HttpVersion"), - Content("Content"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public HttpRequest(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "System.HttpRequest")); - } - - protected HttpRequest(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject httpRequestMendixObject) - { - super(context, httpRequestMendixObject); - if (!com.mendix.core.Core.isSubClassOf("System.HttpRequest", httpRequestMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a System.HttpRequest"); - } - - /** - * @deprecated Use 'HttpRequest.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static system.proxies.HttpRequest initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return system.proxies.HttpRequest.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static system.proxies.HttpRequest initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new system.proxies.HttpRequest(context, mendixObject); - } - - public static system.proxies.HttpRequest load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return system.proxies.HttpRequest.initialize(context, mendixObject); - } - - /** - * @return value of Uri - */ - public final java.lang.String getUri() - { - return getUri(getContext()); - } - - /** - * @param context - * @return value of Uri - */ - public final java.lang.String getUri(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Uri.toString()); - } - - /** - * Set value of Uri - * @param uri - */ - public final void setUri(java.lang.String uri) - { - setUri(getContext(), uri); - } - - /** - * Set value of Uri - * @param context - * @param uri - */ - public final void setUri(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String uri) - { - getMendixObject().setValue(context, MemberNames.Uri.toString(), uri); - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final system.proxies.HttpRequest that = (system.proxies.HttpRequest) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "System.HttpRequest"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Override - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/system/proxies/HttpResponse.java b/javasource/system/proxies/HttpResponse.java deleted file mode 100644 index 5b8de9c..0000000 --- a/javasource/system/proxies/HttpResponse.java +++ /dev/null @@ -1,184 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package system.proxies; - -public class HttpResponse extends system.proxies.HttpMessage -{ - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "System.HttpResponse"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - StatusCode("StatusCode"), - ReasonPhrase("ReasonPhrase"), - HttpVersion("HttpVersion"), - Content("Content"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public HttpResponse(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "System.HttpResponse")); - } - - protected HttpResponse(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject httpResponseMendixObject) - { - super(context, httpResponseMendixObject); - if (!com.mendix.core.Core.isSubClassOf("System.HttpResponse", httpResponseMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a System.HttpResponse"); - } - - /** - * @deprecated Use 'HttpResponse.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static system.proxies.HttpResponse initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return system.proxies.HttpResponse.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static system.proxies.HttpResponse initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new system.proxies.HttpResponse(context, mendixObject); - } - - public static system.proxies.HttpResponse load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return system.proxies.HttpResponse.initialize(context, mendixObject); - } - - /** - * @return value of StatusCode - */ - public final java.lang.Integer getStatusCode() - { - return getStatusCode(getContext()); - } - - /** - * @param context - * @return value of StatusCode - */ - public final java.lang.Integer getStatusCode(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Integer) getMendixObject().getValue(context, MemberNames.StatusCode.toString()); - } - - /** - * Set value of StatusCode - * @param statuscode - */ - public final void setStatusCode(java.lang.Integer statuscode) - { - setStatusCode(getContext(), statuscode); - } - - /** - * Set value of StatusCode - * @param context - * @param statuscode - */ - public final void setStatusCode(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Integer statuscode) - { - getMendixObject().setValue(context, MemberNames.StatusCode.toString(), statuscode); - } - - /** - * @return value of ReasonPhrase - */ - public final java.lang.String getReasonPhrase() - { - return getReasonPhrase(getContext()); - } - - /** - * @param context - * @return value of ReasonPhrase - */ - public final java.lang.String getReasonPhrase(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.ReasonPhrase.toString()); - } - - /** - * Set value of ReasonPhrase - * @param reasonphrase - */ - public final void setReasonPhrase(java.lang.String reasonphrase) - { - setReasonPhrase(getContext(), reasonphrase); - } - - /** - * Set value of ReasonPhrase - * @param context - * @param reasonphrase - */ - public final void setReasonPhrase(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String reasonphrase) - { - getMendixObject().setValue(context, MemberNames.ReasonPhrase.toString(), reasonphrase); - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final system.proxies.HttpResponse that = (system.proxies.HttpResponse) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "System.HttpResponse"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Override - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/system/proxies/Image.java b/javasource/system/proxies/Image.java deleted file mode 100644 index 210f355..0000000 --- a/javasource/system/proxies/Image.java +++ /dev/null @@ -1,159 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package system.proxies; - -public class Image extends system.proxies.FileDocument -{ - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "System.Image"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - PublicThumbnailPath("PublicThumbnailPath"), - FileID("FileID"), - Name("Name"), - DeleteAfterDownload("DeleteAfterDownload"), - Contents("Contents"), - HasContents("HasContents"), - Size("Size"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public Image(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "System.Image")); - } - - protected Image(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject imageMendixObject) - { - super(context, imageMendixObject); - if (!com.mendix.core.Core.isSubClassOf("System.Image", imageMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a System.Image"); - } - - /** - * @deprecated Use 'Image.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static system.proxies.Image initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return system.proxies.Image.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static system.proxies.Image initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new system.proxies.Image(context, mendixObject); - } - - public static system.proxies.Image load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return system.proxies.Image.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//System.Image" + xpathConstraint)) - result.add(system.proxies.Image.initialize(context, obj)); - return result; - } - - /** - * @return value of PublicThumbnailPath - */ - public final java.lang.String getPublicThumbnailPath() - { - return getPublicThumbnailPath(getContext()); - } - - /** - * @param context - * @return value of PublicThumbnailPath - */ - public final java.lang.String getPublicThumbnailPath(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.PublicThumbnailPath.toString()); - } - - /** - * Set value of PublicThumbnailPath - * @param publicthumbnailpath - */ - public final void setPublicThumbnailPath(java.lang.String publicthumbnailpath) - { - setPublicThumbnailPath(getContext(), publicthumbnailpath); - } - - /** - * Set value of PublicThumbnailPath - * @param context - * @param publicthumbnailpath - */ - public final void setPublicThumbnailPath(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String publicthumbnailpath) - { - getMendixObject().setValue(context, MemberNames.PublicThumbnailPath.toString(), publicthumbnailpath); - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final system.proxies.Image that = (system.proxies.Image) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "System.Image"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Override - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/system/proxies/Language.java b/javasource/system/proxies/Language.java deleted file mode 100644 index d66f748..0000000 --- a/javasource/system/proxies/Language.java +++ /dev/null @@ -1,244 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package system.proxies; - -public class Language -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject languageMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "System.Language"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - Code("Code"), - Description("Description"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public Language(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "System.Language")); - } - - protected Language(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject languageMendixObject) - { - if (languageMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("System.Language", languageMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a System.Language"); - - this.languageMendixObject = languageMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'Language.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static system.proxies.Language initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return system.proxies.Language.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static system.proxies.Language initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new system.proxies.Language(context, mendixObject); - } - - public static system.proxies.Language load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return system.proxies.Language.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//System.Language" + xpathConstraint)) - result.add(system.proxies.Language.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of Code - */ - public final java.lang.String getCode() - { - return getCode(getContext()); - } - - /** - * @param context - * @return value of Code - */ - public final java.lang.String getCode(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Code.toString()); - } - - /** - * Set value of Code - * @param code - */ - public final void setCode(java.lang.String code) - { - setCode(getContext(), code); - } - - /** - * Set value of Code - * @param context - * @param code - */ - public final void setCode(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String code) - { - getMendixObject().setValue(context, MemberNames.Code.toString(), code); - } - - /** - * @return value of Description - */ - public final java.lang.String getDescription() - { - return getDescription(getContext()); - } - - /** - * @param context - * @return value of Description - */ - public final java.lang.String getDescription(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Description.toString()); - } - - /** - * Set value of Description - * @param description - */ - public final void setDescription(java.lang.String description) - { - setDescription(getContext(), description); - } - - /** - * Set value of Description - * @param context - * @param description - */ - public final void setDescription(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String description) - { - getMendixObject().setValue(context, MemberNames.Description.toString(), description); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return languageMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final system.proxies.Language that = (system.proxies.Language) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "System.Language"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/system/proxies/Paging.java b/javasource/system/proxies/Paging.java deleted file mode 100644 index a3d2e6b..0000000 --- a/javasource/system/proxies/Paging.java +++ /dev/null @@ -1,347 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package system.proxies; - -public class Paging -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject pagingMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "System.Paging"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - PageNumber("PageNumber"), - IsSortable("IsSortable"), - SortAttribute("SortAttribute"), - SortAscending("SortAscending"), - HasMoreData("HasMoreData"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public Paging(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "System.Paging")); - } - - protected Paging(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject pagingMendixObject) - { - if (pagingMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("System.Paging", pagingMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a System.Paging"); - - this.pagingMendixObject = pagingMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'Paging.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static system.proxies.Paging initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return system.proxies.Paging.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static system.proxies.Paging initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new system.proxies.Paging(context, mendixObject); - } - - public static system.proxies.Paging load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return system.proxies.Paging.initialize(context, mendixObject); - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of PageNumber - */ - public final java.lang.Long getPageNumber() - { - return getPageNumber(getContext()); - } - - /** - * @param context - * @return value of PageNumber - */ - public final java.lang.Long getPageNumber(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Long) getMendixObject().getValue(context, MemberNames.PageNumber.toString()); - } - - /** - * Set value of PageNumber - * @param pagenumber - */ - public final void setPageNumber(java.lang.Long pagenumber) - { - setPageNumber(getContext(), pagenumber); - } - - /** - * Set value of PageNumber - * @param context - * @param pagenumber - */ - public final void setPageNumber(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Long pagenumber) - { - getMendixObject().setValue(context, MemberNames.PageNumber.toString(), pagenumber); - } - - /** - * @return value of IsSortable - */ - public final java.lang.Boolean getIsSortable() - { - return getIsSortable(getContext()); - } - - /** - * @param context - * @return value of IsSortable - */ - public final java.lang.Boolean getIsSortable(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.IsSortable.toString()); - } - - /** - * Set value of IsSortable - * @param issortable - */ - public final void setIsSortable(java.lang.Boolean issortable) - { - setIsSortable(getContext(), issortable); - } - - /** - * Set value of IsSortable - * @param context - * @param issortable - */ - public final void setIsSortable(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean issortable) - { - getMendixObject().setValue(context, MemberNames.IsSortable.toString(), issortable); - } - - /** - * @return value of SortAttribute - */ - public final java.lang.String getSortAttribute() - { - return getSortAttribute(getContext()); - } - - /** - * @param context - * @return value of SortAttribute - */ - public final java.lang.String getSortAttribute(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.SortAttribute.toString()); - } - - /** - * Set value of SortAttribute - * @param sortattribute - */ - public final void setSortAttribute(java.lang.String sortattribute) - { - setSortAttribute(getContext(), sortattribute); - } - - /** - * Set value of SortAttribute - * @param context - * @param sortattribute - */ - public final void setSortAttribute(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String sortattribute) - { - getMendixObject().setValue(context, MemberNames.SortAttribute.toString(), sortattribute); - } - - /** - * @return value of SortAscending - */ - public final java.lang.Boolean getSortAscending() - { - return getSortAscending(getContext()); - } - - /** - * @param context - * @return value of SortAscending - */ - public final java.lang.Boolean getSortAscending(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.SortAscending.toString()); - } - - /** - * Set value of SortAscending - * @param sortascending - */ - public final void setSortAscending(java.lang.Boolean sortascending) - { - setSortAscending(getContext(), sortascending); - } - - /** - * Set value of SortAscending - * @param context - * @param sortascending - */ - public final void setSortAscending(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean sortascending) - { - getMendixObject().setValue(context, MemberNames.SortAscending.toString(), sortascending); - } - - /** - * @return value of HasMoreData - */ - public final java.lang.Boolean getHasMoreData() - { - return getHasMoreData(getContext()); - } - - /** - * @param context - * @return value of HasMoreData - */ - public final java.lang.Boolean getHasMoreData(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.HasMoreData.toString()); - } - - /** - * Set value of HasMoreData - * @param hasmoredata - */ - public final void setHasMoreData(java.lang.Boolean hasmoredata) - { - setHasMoreData(getContext(), hasmoredata); - } - - /** - * Set value of HasMoreData - * @param context - * @param hasmoredata - */ - public final void setHasMoreData(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean hasmoredata) - { - getMendixObject().setValue(context, MemberNames.HasMoreData.toString(), hasmoredata); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return pagingMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final system.proxies.Paging that = (system.proxies.Paging) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "System.Paging"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/system/proxies/ScheduledEventInformation.java b/javasource/system/proxies/ScheduledEventInformation.java deleted file mode 100644 index 639c1ab..0000000 --- a/javasource/system/proxies/ScheduledEventInformation.java +++ /dev/null @@ -1,407 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package system.proxies; - -public class ScheduledEventInformation -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject scheduledEventInformationMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "System.ScheduledEventInformation"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - Name("Name"), - Description("Description"), - StartTime("StartTime"), - EndTime("EndTime"), - Status("Status"), - ScheduledEventInformation_XASInstance("System.ScheduledEventInformation_XASInstance"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public ScheduledEventInformation(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "System.ScheduledEventInformation")); - } - - protected ScheduledEventInformation(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject scheduledEventInformationMendixObject) - { - if (scheduledEventInformationMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("System.ScheduledEventInformation", scheduledEventInformationMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a System.ScheduledEventInformation"); - - this.scheduledEventInformationMendixObject = scheduledEventInformationMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'ScheduledEventInformation.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static system.proxies.ScheduledEventInformation initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return system.proxies.ScheduledEventInformation.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static system.proxies.ScheduledEventInformation initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new system.proxies.ScheduledEventInformation(context, mendixObject); - } - - public static system.proxies.ScheduledEventInformation load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return system.proxies.ScheduledEventInformation.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//System.ScheduledEventInformation" + xpathConstraint)) - result.add(system.proxies.ScheduledEventInformation.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of Name - */ - public final java.lang.String getName() - { - return getName(getContext()); - } - - /** - * @param context - * @return value of Name - */ - public final java.lang.String getName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Name.toString()); - } - - /** - * Set value of Name - * @param name - */ - public final void setName(java.lang.String name) - { - setName(getContext(), name); - } - - /** - * Set value of Name - * @param context - * @param name - */ - public final void setName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String name) - { - getMendixObject().setValue(context, MemberNames.Name.toString(), name); - } - - /** - * @return value of Description - */ - public final java.lang.String getDescription() - { - return getDescription(getContext()); - } - - /** - * @param context - * @return value of Description - */ - public final java.lang.String getDescription(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Description.toString()); - } - - /** - * Set value of Description - * @param description - */ - public final void setDescription(java.lang.String description) - { - setDescription(getContext(), description); - } - - /** - * Set value of Description - * @param context - * @param description - */ - public final void setDescription(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String description) - { - getMendixObject().setValue(context, MemberNames.Description.toString(), description); - } - - /** - * @return value of StartTime - */ - public final java.util.Date getStartTime() - { - return getStartTime(getContext()); - } - - /** - * @param context - * @return value of StartTime - */ - public final java.util.Date getStartTime(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.util.Date) getMendixObject().getValue(context, MemberNames.StartTime.toString()); - } - - /** - * Set value of StartTime - * @param starttime - */ - public final void setStartTime(java.util.Date starttime) - { - setStartTime(getContext(), starttime); - } - - /** - * Set value of StartTime - * @param context - * @param starttime - */ - public final void setStartTime(com.mendix.systemwideinterfaces.core.IContext context, java.util.Date starttime) - { - getMendixObject().setValue(context, MemberNames.StartTime.toString(), starttime); - } - - /** - * @return value of EndTime - */ - public final java.util.Date getEndTime() - { - return getEndTime(getContext()); - } - - /** - * @param context - * @return value of EndTime - */ - public final java.util.Date getEndTime(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.util.Date) getMendixObject().getValue(context, MemberNames.EndTime.toString()); - } - - /** - * Set value of EndTime - * @param endtime - */ - public final void setEndTime(java.util.Date endtime) - { - setEndTime(getContext(), endtime); - } - - /** - * Set value of EndTime - * @param context - * @param endtime - */ - public final void setEndTime(com.mendix.systemwideinterfaces.core.IContext context, java.util.Date endtime) - { - getMendixObject().setValue(context, MemberNames.EndTime.toString(), endtime); - } - - /** - * Set value of Status - * @param status - */ - public final system.proxies.EventStatus getStatus() - { - return getStatus(getContext()); - } - - /** - * @param context - * @return value of Status - */ - public final system.proxies.EventStatus getStatus(com.mendix.systemwideinterfaces.core.IContext context) - { - Object obj = getMendixObject().getValue(context, MemberNames.Status.toString()); - if (obj == null) - return null; - - return system.proxies.EventStatus.valueOf((java.lang.String) obj); - } - - /** - * Set value of Status - * @param status - */ - public final void setStatus(system.proxies.EventStatus status) - { - setStatus(getContext(), status); - } - - /** - * Set value of Status - * @param context - * @param status - */ - public final void setStatus(com.mendix.systemwideinterfaces.core.IContext context, system.proxies.EventStatus status) - { - if (status != null) - getMendixObject().setValue(context, MemberNames.Status.toString(), status.toString()); - else - getMendixObject().setValue(context, MemberNames.Status.toString(), null); - } - - /** - * @return value of ScheduledEventInformation_XASInstance - */ - public final system.proxies.XASInstance getScheduledEventInformation_XASInstance() throws com.mendix.core.CoreException - { - return getScheduledEventInformation_XASInstance(getContext()); - } - - /** - * @param context - * @return value of ScheduledEventInformation_XASInstance - */ - public final system.proxies.XASInstance getScheduledEventInformation_XASInstance(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - system.proxies.XASInstance result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.ScheduledEventInformation_XASInstance.toString()); - if (identifier != null) - result = system.proxies.XASInstance.load(context, identifier); - return result; - } - - /** - * Set value of ScheduledEventInformation_XASInstance - * @param scheduledeventinformation_xasinstance - */ - public final void setScheduledEventInformation_XASInstance(system.proxies.XASInstance scheduledeventinformation_xasinstance) - { - setScheduledEventInformation_XASInstance(getContext(), scheduledeventinformation_xasinstance); - } - - /** - * Set value of ScheduledEventInformation_XASInstance - * @param context - * @param scheduledeventinformation_xasinstance - */ - public final void setScheduledEventInformation_XASInstance(com.mendix.systemwideinterfaces.core.IContext context, system.proxies.XASInstance scheduledeventinformation_xasinstance) - { - if (scheduledeventinformation_xasinstance == null) - getMendixObject().setValue(context, MemberNames.ScheduledEventInformation_XASInstance.toString(), null); - else - getMendixObject().setValue(context, MemberNames.ScheduledEventInformation_XASInstance.toString(), scheduledeventinformation_xasinstance.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return scheduledEventInformationMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final system.proxies.ScheduledEventInformation that = (system.proxies.ScheduledEventInformation) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "System.ScheduledEventInformation"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/system/proxies/Session.java b/javasource/system/proxies/Session.java deleted file mode 100644 index b63bcbc..0000000 --- a/javasource/system/proxies/Session.java +++ /dev/null @@ -1,325 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package system.proxies; - -public class Session -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject sessionMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "System.Session"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - SessionId("SessionId"), - CSRFToken("CSRFToken"), - LastActive("LastActive"), - Session_User("System.Session_User"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public Session(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "System.Session")); - } - - protected Session(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject sessionMendixObject) - { - if (sessionMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("System.Session", sessionMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a System.Session"); - - this.sessionMendixObject = sessionMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'Session.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static system.proxies.Session initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return system.proxies.Session.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static system.proxies.Session initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new system.proxies.Session(context, mendixObject); - } - - public static system.proxies.Session load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return system.proxies.Session.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//System.Session" + xpathConstraint)) - result.add(system.proxies.Session.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of SessionId - */ - public final java.lang.String getSessionId() - { - return getSessionId(getContext()); - } - - /** - * @param context - * @return value of SessionId - */ - public final java.lang.String getSessionId(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.SessionId.toString()); - } - - /** - * Set value of SessionId - * @param sessionid - */ - public final void setSessionId(java.lang.String sessionid) - { - setSessionId(getContext(), sessionid); - } - - /** - * Set value of SessionId - * @param context - * @param sessionid - */ - public final void setSessionId(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String sessionid) - { - getMendixObject().setValue(context, MemberNames.SessionId.toString(), sessionid); - } - - /** - * @return value of CSRFToken - */ - public final java.lang.String getCSRFToken() - { - return getCSRFToken(getContext()); - } - - /** - * @param context - * @return value of CSRFToken - */ - public final java.lang.String getCSRFToken(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.CSRFToken.toString()); - } - - /** - * Set value of CSRFToken - * @param csrftoken - */ - public final void setCSRFToken(java.lang.String csrftoken) - { - setCSRFToken(getContext(), csrftoken); - } - - /** - * Set value of CSRFToken - * @param context - * @param csrftoken - */ - public final void setCSRFToken(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String csrftoken) - { - getMendixObject().setValue(context, MemberNames.CSRFToken.toString(), csrftoken); - } - - /** - * @return value of LastActive - */ - public final java.util.Date getLastActive() - { - return getLastActive(getContext()); - } - - /** - * @param context - * @return value of LastActive - */ - public final java.util.Date getLastActive(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.util.Date) getMendixObject().getValue(context, MemberNames.LastActive.toString()); - } - - /** - * Set value of LastActive - * @param lastactive - */ - public final void setLastActive(java.util.Date lastactive) - { - setLastActive(getContext(), lastactive); - } - - /** - * Set value of LastActive - * @param context - * @param lastactive - */ - public final void setLastActive(com.mendix.systemwideinterfaces.core.IContext context, java.util.Date lastactive) - { - getMendixObject().setValue(context, MemberNames.LastActive.toString(), lastactive); - } - - /** - * @return value of Session_User - */ - public final system.proxies.User getSession_User() throws com.mendix.core.CoreException - { - return getSession_User(getContext()); - } - - /** - * @param context - * @return value of Session_User - */ - public final system.proxies.User getSession_User(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - system.proxies.User result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.Session_User.toString()); - if (identifier != null) - result = system.proxies.User.load(context, identifier); - return result; - } - - /** - * Set value of Session_User - * @param session_user - */ - public final void setSession_User(system.proxies.User session_user) - { - setSession_User(getContext(), session_user); - } - - /** - * Set value of Session_User - * @param context - * @param session_user - */ - public final void setSession_User(com.mendix.systemwideinterfaces.core.IContext context, system.proxies.User session_user) - { - if (session_user == null) - getMendixObject().setValue(context, MemberNames.Session_User.toString(), null); - else - getMendixObject().setValue(context, MemberNames.Session_User.toString(), session_user.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return sessionMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final system.proxies.Session that = (system.proxies.Session) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "System.Session"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/system/proxies/SoapFault.java b/javasource/system/proxies/SoapFault.java deleted file mode 100644 index 270ac7b..0000000 --- a/javasource/system/proxies/SoapFault.java +++ /dev/null @@ -1,296 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package system.proxies; - -public class SoapFault extends system.proxies.Error -{ - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "System.SoapFault"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - Code("Code"), - Reason("Reason"), - Node("Node"), - Role("Role"), - Detail("Detail"), - ErrorType("ErrorType"), - Message("Message"), - Stacktrace("Stacktrace"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public SoapFault(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "System.SoapFault")); - } - - protected SoapFault(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject soapFaultMendixObject) - { - super(context, soapFaultMendixObject); - if (!com.mendix.core.Core.isSubClassOf("System.SoapFault", soapFaultMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a System.SoapFault"); - } - - /** - * @deprecated Use 'SoapFault.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static system.proxies.SoapFault initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return system.proxies.SoapFault.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static system.proxies.SoapFault initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new system.proxies.SoapFault(context, mendixObject); - } - - public static system.proxies.SoapFault load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return system.proxies.SoapFault.initialize(context, mendixObject); - } - - /** - * @return value of Code - */ - public final java.lang.String getCode() - { - return getCode(getContext()); - } - - /** - * @param context - * @return value of Code - */ - public final java.lang.String getCode(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Code.toString()); - } - - /** - * Set value of Code - * @param code - */ - public final void setCode(java.lang.String code) - { - setCode(getContext(), code); - } - - /** - * Set value of Code - * @param context - * @param code - */ - public final void setCode(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String code) - { - getMendixObject().setValue(context, MemberNames.Code.toString(), code); - } - - /** - * @return value of Reason - */ - public final java.lang.String getReason() - { - return getReason(getContext()); - } - - /** - * @param context - * @return value of Reason - */ - public final java.lang.String getReason(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Reason.toString()); - } - - /** - * Set value of Reason - * @param reason - */ - public final void setReason(java.lang.String reason) - { - setReason(getContext(), reason); - } - - /** - * Set value of Reason - * @param context - * @param reason - */ - public final void setReason(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String reason) - { - getMendixObject().setValue(context, MemberNames.Reason.toString(), reason); - } - - /** - * @return value of Node - */ - public final java.lang.String getNode() - { - return getNode(getContext()); - } - - /** - * @param context - * @return value of Node - */ - public final java.lang.String getNode(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Node.toString()); - } - - /** - * Set value of Node - * @param node - */ - public final void setNode(java.lang.String node) - { - setNode(getContext(), node); - } - - /** - * Set value of Node - * @param context - * @param node - */ - public final void setNode(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String node) - { - getMendixObject().setValue(context, MemberNames.Node.toString(), node); - } - - /** - * @return value of Role - */ - public final java.lang.String getRole() - { - return getRole(getContext()); - } - - /** - * @param context - * @return value of Role - */ - public final java.lang.String getRole(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Role.toString()); - } - - /** - * Set value of Role - * @param role - */ - public final void setRole(java.lang.String role) - { - setRole(getContext(), role); - } - - /** - * Set value of Role - * @param context - * @param role - */ - public final void setRole(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String role) - { - getMendixObject().setValue(context, MemberNames.Role.toString(), role); - } - - /** - * @return value of Detail - */ - public final java.lang.String getDetail() - { - return getDetail(getContext()); - } - - /** - * @param context - * @return value of Detail - */ - public final java.lang.String getDetail(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Detail.toString()); - } - - /** - * Set value of Detail - * @param detail - */ - public final void setDetail(java.lang.String detail) - { - setDetail(getContext(), detail); - } - - /** - * Set value of Detail - * @param context - * @param detail - */ - public final void setDetail(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String detail) - { - getMendixObject().setValue(context, MemberNames.Detail.toString(), detail); - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final system.proxies.SoapFault that = (system.proxies.SoapFault) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "System.SoapFault"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Override - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/system/proxies/SynchronizationError.java b/javasource/system/proxies/SynchronizationError.java deleted file mode 100644 index 24ea5d3..0000000 --- a/javasource/system/proxies/SynchronizationError.java +++ /dev/null @@ -1,318 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package system.proxies; - -public class SynchronizationError -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject synchronizationErrorMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "System.SynchronizationError"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - Reason("Reason"), - ObjectId("ObjectId"), - ObjectType("ObjectType"), - ObjectContent("ObjectContent"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public SynchronizationError(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "System.SynchronizationError")); - } - - protected SynchronizationError(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject synchronizationErrorMendixObject) - { - if (synchronizationErrorMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("System.SynchronizationError", synchronizationErrorMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a System.SynchronizationError"); - - this.synchronizationErrorMendixObject = synchronizationErrorMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'SynchronizationError.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static system.proxies.SynchronizationError initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return system.proxies.SynchronizationError.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static system.proxies.SynchronizationError initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new system.proxies.SynchronizationError(context, mendixObject); - } - - public static system.proxies.SynchronizationError load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return system.proxies.SynchronizationError.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//System.SynchronizationError" + xpathConstraint)) - result.add(system.proxies.SynchronizationError.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of Reason - */ - public final java.lang.String getReason() - { - return getReason(getContext()); - } - - /** - * @param context - * @return value of Reason - */ - public final java.lang.String getReason(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Reason.toString()); - } - - /** - * Set value of Reason - * @param reason - */ - public final void setReason(java.lang.String reason) - { - setReason(getContext(), reason); - } - - /** - * Set value of Reason - * @param context - * @param reason - */ - public final void setReason(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String reason) - { - getMendixObject().setValue(context, MemberNames.Reason.toString(), reason); - } - - /** - * @return value of ObjectId - */ - public final java.lang.String getObjectId() - { - return getObjectId(getContext()); - } - - /** - * @param context - * @return value of ObjectId - */ - public final java.lang.String getObjectId(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.ObjectId.toString()); - } - - /** - * Set value of ObjectId - * @param objectid - */ - public final void setObjectId(java.lang.String objectid) - { - setObjectId(getContext(), objectid); - } - - /** - * Set value of ObjectId - * @param context - * @param objectid - */ - public final void setObjectId(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String objectid) - { - getMendixObject().setValue(context, MemberNames.ObjectId.toString(), objectid); - } - - /** - * @return value of ObjectType - */ - public final java.lang.String getObjectType() - { - return getObjectType(getContext()); - } - - /** - * @param context - * @return value of ObjectType - */ - public final java.lang.String getObjectType(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.ObjectType.toString()); - } - - /** - * Set value of ObjectType - * @param objecttype - */ - public final void setObjectType(java.lang.String objecttype) - { - setObjectType(getContext(), objecttype); - } - - /** - * Set value of ObjectType - * @param context - * @param objecttype - */ - public final void setObjectType(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String objecttype) - { - getMendixObject().setValue(context, MemberNames.ObjectType.toString(), objecttype); - } - - /** - * @return value of ObjectContent - */ - public final java.lang.String getObjectContent() - { - return getObjectContent(getContext()); - } - - /** - * @param context - * @return value of ObjectContent - */ - public final java.lang.String getObjectContent(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.ObjectContent.toString()); - } - - /** - * Set value of ObjectContent - * @param objectcontent - */ - public final void setObjectContent(java.lang.String objectcontent) - { - setObjectContent(getContext(), objectcontent); - } - - /** - * Set value of ObjectContent - * @param context - * @param objectcontent - */ - public final void setObjectContent(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String objectcontent) - { - getMendixObject().setValue(context, MemberNames.ObjectContent.toString(), objectcontent); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return synchronizationErrorMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final system.proxies.SynchronizationError that = (system.proxies.SynchronizationError) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "System.SynchronizationError"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/system/proxies/SynchronizationErrorFile.java b/javasource/system/proxies/SynchronizationErrorFile.java deleted file mode 100644 index bc1f74f..0000000 --- a/javasource/system/proxies/SynchronizationErrorFile.java +++ /dev/null @@ -1,166 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package system.proxies; - -public class SynchronizationErrorFile extends system.proxies.FileDocument -{ - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "System.SynchronizationErrorFile"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - FileID("FileID"), - Name("Name"), - DeleteAfterDownload("DeleteAfterDownload"), - Contents("Contents"), - HasContents("HasContents"), - Size("Size"), - SynchronizationErrorFile_SynchronizationError("System.SynchronizationErrorFile_SynchronizationError"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public SynchronizationErrorFile(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "System.SynchronizationErrorFile")); - } - - protected SynchronizationErrorFile(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject synchronizationErrorFileMendixObject) - { - super(context, synchronizationErrorFileMendixObject); - if (!com.mendix.core.Core.isSubClassOf("System.SynchronizationErrorFile", synchronizationErrorFileMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a System.SynchronizationErrorFile"); - } - - /** - * @deprecated Use 'SynchronizationErrorFile.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static system.proxies.SynchronizationErrorFile initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return system.proxies.SynchronizationErrorFile.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static system.proxies.SynchronizationErrorFile initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new system.proxies.SynchronizationErrorFile(context, mendixObject); - } - - public static system.proxies.SynchronizationErrorFile load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return system.proxies.SynchronizationErrorFile.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//System.SynchronizationErrorFile" + xpathConstraint)) - result.add(system.proxies.SynchronizationErrorFile.initialize(context, obj)); - return result; - } - - /** - * @return value of SynchronizationErrorFile_SynchronizationError - */ - public final system.proxies.SynchronizationError getSynchronizationErrorFile_SynchronizationError() throws com.mendix.core.CoreException - { - return getSynchronizationErrorFile_SynchronizationError(getContext()); - } - - /** - * @param context - * @return value of SynchronizationErrorFile_SynchronizationError - */ - public final system.proxies.SynchronizationError getSynchronizationErrorFile_SynchronizationError(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - system.proxies.SynchronizationError result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.SynchronizationErrorFile_SynchronizationError.toString()); - if (identifier != null) - result = system.proxies.SynchronizationError.load(context, identifier); - return result; - } - - /** - * Set value of SynchronizationErrorFile_SynchronizationError - * @param synchronizationerrorfile_synchronizationerror - */ - public final void setSynchronizationErrorFile_SynchronizationError(system.proxies.SynchronizationError synchronizationerrorfile_synchronizationerror) - { - setSynchronizationErrorFile_SynchronizationError(getContext(), synchronizationerrorfile_synchronizationerror); - } - - /** - * Set value of SynchronizationErrorFile_SynchronizationError - * @param context - * @param synchronizationerrorfile_synchronizationerror - */ - public final void setSynchronizationErrorFile_SynchronizationError(com.mendix.systemwideinterfaces.core.IContext context, system.proxies.SynchronizationError synchronizationerrorfile_synchronizationerror) - { - if (synchronizationerrorfile_synchronizationerror == null) - getMendixObject().setValue(context, MemberNames.SynchronizationErrorFile_SynchronizationError.toString(), null); - else - getMendixObject().setValue(context, MemberNames.SynchronizationErrorFile_SynchronizationError.toString(), synchronizationerrorfile_synchronizationerror.getMendixObject().getId()); - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final system.proxies.SynchronizationErrorFile that = (system.proxies.SynchronizationErrorFile) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "System.SynchronizationErrorFile"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Override - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/system/proxies/TimeZone.java b/javasource/system/proxies/TimeZone.java deleted file mode 100644 index e32e1e8..0000000 --- a/javasource/system/proxies/TimeZone.java +++ /dev/null @@ -1,281 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package system.proxies; - -public class TimeZone -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject timeZoneMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "System.TimeZone"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - Code("Code"), - Description("Description"), - RawOffset("RawOffset"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public TimeZone(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "System.TimeZone")); - } - - protected TimeZone(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject timeZoneMendixObject) - { - if (timeZoneMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("System.TimeZone", timeZoneMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a System.TimeZone"); - - this.timeZoneMendixObject = timeZoneMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'TimeZone.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static system.proxies.TimeZone initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return system.proxies.TimeZone.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static system.proxies.TimeZone initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new system.proxies.TimeZone(context, mendixObject); - } - - public static system.proxies.TimeZone load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return system.proxies.TimeZone.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//System.TimeZone" + xpathConstraint)) - result.add(system.proxies.TimeZone.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of Code - */ - public final java.lang.String getCode() - { - return getCode(getContext()); - } - - /** - * @param context - * @return value of Code - */ - public final java.lang.String getCode(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Code.toString()); - } - - /** - * Set value of Code - * @param code - */ - public final void setCode(java.lang.String code) - { - setCode(getContext(), code); - } - - /** - * Set value of Code - * @param context - * @param code - */ - public final void setCode(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String code) - { - getMendixObject().setValue(context, MemberNames.Code.toString(), code); - } - - /** - * @return value of Description - */ - public final java.lang.String getDescription() - { - return getDescription(getContext()); - } - - /** - * @param context - * @return value of Description - */ - public final java.lang.String getDescription(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Description.toString()); - } - - /** - * Set value of Description - * @param description - */ - public final void setDescription(java.lang.String description) - { - setDescription(getContext(), description); - } - - /** - * Set value of Description - * @param context - * @param description - */ - public final void setDescription(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String description) - { - getMendixObject().setValue(context, MemberNames.Description.toString(), description); - } - - /** - * @return value of RawOffset - */ - public final java.lang.Integer getRawOffset() - { - return getRawOffset(getContext()); - } - - /** - * @param context - * @return value of RawOffset - */ - public final java.lang.Integer getRawOffset(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Integer) getMendixObject().getValue(context, MemberNames.RawOffset.toString()); - } - - /** - * Set value of RawOffset - * @param rawoffset - */ - public final void setRawOffset(java.lang.Integer rawoffset) - { - setRawOffset(getContext(), rawoffset); - } - - /** - * Set value of RawOffset - * @param context - * @param rawoffset - */ - public final void setRawOffset(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Integer rawoffset) - { - getMendixObject().setValue(context, MemberNames.RawOffset.toString(), rawoffset); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return timeZoneMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final system.proxies.TimeZone that = (system.proxies.TimeZone) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "System.TimeZone"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/system/proxies/TokenInformation.java b/javasource/system/proxies/TokenInformation.java deleted file mode 100644 index 613da29..0000000 --- a/javasource/system/proxies/TokenInformation.java +++ /dev/null @@ -1,308 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package system.proxies; - -public class TokenInformation -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject tokenInformationMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "System.TokenInformation"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - Token("Token"), - ExpiryDate("ExpiryDate"), - UserAgent("UserAgent"), - TokenInformation_User("System.TokenInformation_User"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public TokenInformation(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "System.TokenInformation")); - } - - protected TokenInformation(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject tokenInformationMendixObject) - { - if (tokenInformationMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("System.TokenInformation", tokenInformationMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a System.TokenInformation"); - - this.tokenInformationMendixObject = tokenInformationMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'TokenInformation.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static system.proxies.TokenInformation initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return system.proxies.TokenInformation.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static system.proxies.TokenInformation initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new system.proxies.TokenInformation(context, mendixObject); - } - - public static system.proxies.TokenInformation load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return system.proxies.TokenInformation.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//System.TokenInformation" + xpathConstraint)) - result.add(system.proxies.TokenInformation.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * Set value of Token - * @param token - */ - public final void setToken(java.lang.String token) - { - setToken(getContext(), token); - } - - /** - * Set value of Token - * @param context - * @param token - */ - public final void setToken(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String token) - { - getMendixObject().setValue(context, MemberNames.Token.toString(), token); - } - - /** - * @return value of ExpiryDate - */ - public final java.util.Date getExpiryDate() - { - return getExpiryDate(getContext()); - } - - /** - * @param context - * @return value of ExpiryDate - */ - public final java.util.Date getExpiryDate(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.util.Date) getMendixObject().getValue(context, MemberNames.ExpiryDate.toString()); - } - - /** - * Set value of ExpiryDate - * @param expirydate - */ - public final void setExpiryDate(java.util.Date expirydate) - { - setExpiryDate(getContext(), expirydate); - } - - /** - * Set value of ExpiryDate - * @param context - * @param expirydate - */ - public final void setExpiryDate(com.mendix.systemwideinterfaces.core.IContext context, java.util.Date expirydate) - { - getMendixObject().setValue(context, MemberNames.ExpiryDate.toString(), expirydate); - } - - /** - * @return value of UserAgent - */ - public final java.lang.String getUserAgent() - { - return getUserAgent(getContext()); - } - - /** - * @param context - * @return value of UserAgent - */ - public final java.lang.String getUserAgent(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.UserAgent.toString()); - } - - /** - * Set value of UserAgent - * @param useragent - */ - public final void setUserAgent(java.lang.String useragent) - { - setUserAgent(getContext(), useragent); - } - - /** - * Set value of UserAgent - * @param context - * @param useragent - */ - public final void setUserAgent(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String useragent) - { - getMendixObject().setValue(context, MemberNames.UserAgent.toString(), useragent); - } - - /** - * @return value of TokenInformation_User - */ - public final system.proxies.User getTokenInformation_User() throws com.mendix.core.CoreException - { - return getTokenInformation_User(getContext()); - } - - /** - * @param context - * @return value of TokenInformation_User - */ - public final system.proxies.User getTokenInformation_User(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - system.proxies.User result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.TokenInformation_User.toString()); - if (identifier != null) - result = system.proxies.User.load(context, identifier); - return result; - } - - /** - * Set value of TokenInformation_User - * @param tokeninformation_user - */ - public final void setTokenInformation_User(system.proxies.User tokeninformation_user) - { - setTokenInformation_User(getContext(), tokeninformation_user); - } - - /** - * Set value of TokenInformation_User - * @param context - * @param tokeninformation_user - */ - public final void setTokenInformation_User(com.mendix.systemwideinterfaces.core.IContext context, system.proxies.User tokeninformation_user) - { - if (tokeninformation_user == null) - getMendixObject().setValue(context, MemberNames.TokenInformation_User.toString(), null); - else - getMendixObject().setValue(context, MemberNames.TokenInformation_User.toString(), tokeninformation_user.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return tokenInformationMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final system.proxies.TokenInformation that = (system.proxies.TokenInformation) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "System.TokenInformation"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/system/proxies/User.java b/javasource/system/proxies/User.java deleted file mode 100644 index 7ec4bdf..0000000 --- a/javasource/system/proxies/User.java +++ /dev/null @@ -1,587 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package system.proxies; - -public class User -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject userMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "System.User"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - Name("Name"), - Password("Password"), - LastLogin("LastLogin"), - Blocked("Blocked"), - Active("Active"), - FailedLogins("FailedLogins"), - WebServiceUser("WebServiceUser"), - IsAnonymous("IsAnonymous"), - UserRoles("System.UserRoles"), - User_Language("System.User_Language"), - User_TimeZone("System.User_TimeZone"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public User(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "System.User")); - } - - protected User(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject userMendixObject) - { - if (userMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("System.User", userMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a System.User"); - - this.userMendixObject = userMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'User.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static system.proxies.User initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return system.proxies.User.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static system.proxies.User initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - if (com.mendix.core.Core.isSubClassOf("Administration.Account", mendixObject.getType())) - return administration.proxies.Account.initialize(context, mendixObject); - - return new system.proxies.User(context, mendixObject); - } - - public static system.proxies.User load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return system.proxies.User.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//System.User" + xpathConstraint)) - result.add(system.proxies.User.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of Name - */ - public final java.lang.String getName() - { - return getName(getContext()); - } - - /** - * @param context - * @return value of Name - */ - public final java.lang.String getName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Name.toString()); - } - - /** - * Set value of Name - * @param name - */ - public final void setName(java.lang.String name) - { - setName(getContext(), name); - } - - /** - * Set value of Name - * @param context - * @param name - */ - public final void setName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String name) - { - getMendixObject().setValue(context, MemberNames.Name.toString(), name); - } - - /** - * Set value of Password - * @param password - */ - public final void setPassword(java.lang.String password) - { - setPassword(getContext(), password); - } - - /** - * Set value of Password - * @param context - * @param password - */ - public final void setPassword(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String password) - { - getMendixObject().setValue(context, MemberNames.Password.toString(), password); - } - - /** - * @return value of LastLogin - */ - public final java.util.Date getLastLogin() - { - return getLastLogin(getContext()); - } - - /** - * @param context - * @return value of LastLogin - */ - public final java.util.Date getLastLogin(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.util.Date) getMendixObject().getValue(context, MemberNames.LastLogin.toString()); - } - - /** - * Set value of LastLogin - * @param lastlogin - */ - public final void setLastLogin(java.util.Date lastlogin) - { - setLastLogin(getContext(), lastlogin); - } - - /** - * Set value of LastLogin - * @param context - * @param lastlogin - */ - public final void setLastLogin(com.mendix.systemwideinterfaces.core.IContext context, java.util.Date lastlogin) - { - getMendixObject().setValue(context, MemberNames.LastLogin.toString(), lastlogin); - } - - /** - * @return value of Blocked - */ - public final java.lang.Boolean getBlocked() - { - return getBlocked(getContext()); - } - - /** - * @param context - * @return value of Blocked - */ - public final java.lang.Boolean getBlocked(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.Blocked.toString()); - } - - /** - * Set value of Blocked - * @param blocked - */ - public final void setBlocked(java.lang.Boolean blocked) - { - setBlocked(getContext(), blocked); - } - - /** - * Set value of Blocked - * @param context - * @param blocked - */ - public final void setBlocked(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean blocked) - { - getMendixObject().setValue(context, MemberNames.Blocked.toString(), blocked); - } - - /** - * @return value of Active - */ - public final java.lang.Boolean getActive() - { - return getActive(getContext()); - } - - /** - * @param context - * @return value of Active - */ - public final java.lang.Boolean getActive(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.Active.toString()); - } - - /** - * Set value of Active - * @param active - */ - public final void setActive(java.lang.Boolean active) - { - setActive(getContext(), active); - } - - /** - * Set value of Active - * @param context - * @param active - */ - public final void setActive(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean active) - { - getMendixObject().setValue(context, MemberNames.Active.toString(), active); - } - - /** - * @return value of FailedLogins - */ - public final java.lang.Integer getFailedLogins() - { - return getFailedLogins(getContext()); - } - - /** - * @param context - * @return value of FailedLogins - */ - public final java.lang.Integer getFailedLogins(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Integer) getMendixObject().getValue(context, MemberNames.FailedLogins.toString()); - } - - /** - * Set value of FailedLogins - * @param failedlogins - */ - public final void setFailedLogins(java.lang.Integer failedlogins) - { - setFailedLogins(getContext(), failedlogins); - } - - /** - * Set value of FailedLogins - * @param context - * @param failedlogins - */ - public final void setFailedLogins(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Integer failedlogins) - { - getMendixObject().setValue(context, MemberNames.FailedLogins.toString(), failedlogins); - } - - /** - * @return value of WebServiceUser - */ - public final java.lang.Boolean getWebServiceUser() - { - return getWebServiceUser(getContext()); - } - - /** - * @param context - * @return value of WebServiceUser - */ - public final java.lang.Boolean getWebServiceUser(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.WebServiceUser.toString()); - } - - /** - * Set value of WebServiceUser - * @param webserviceuser - */ - public final void setWebServiceUser(java.lang.Boolean webserviceuser) - { - setWebServiceUser(getContext(), webserviceuser); - } - - /** - * Set value of WebServiceUser - * @param context - * @param webserviceuser - */ - public final void setWebServiceUser(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean webserviceuser) - { - getMendixObject().setValue(context, MemberNames.WebServiceUser.toString(), webserviceuser); - } - - /** - * @return value of IsAnonymous - */ - public final java.lang.Boolean getIsAnonymous() - { - return getIsAnonymous(getContext()); - } - - /** - * @param context - * @return value of IsAnonymous - */ - public final java.lang.Boolean getIsAnonymous(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Boolean) getMendixObject().getValue(context, MemberNames.IsAnonymous.toString()); - } - - /** - * Set value of IsAnonymous - * @param isanonymous - */ - public final void setIsAnonymous(java.lang.Boolean isanonymous) - { - setIsAnonymous(getContext(), isanonymous); - } - - /** - * Set value of IsAnonymous - * @param context - * @param isanonymous - */ - public final void setIsAnonymous(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Boolean isanonymous) - { - getMendixObject().setValue(context, MemberNames.IsAnonymous.toString(), isanonymous); - } - - /** - * @return value of UserRoles - */ - public final java.util.List getUserRoles() throws com.mendix.core.CoreException - { - return getUserRoles(getContext()); - } - - /** - * @param context - * @return value of UserRoles - */ - @SuppressWarnings("unchecked") - public final java.util.List getUserRoles(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - Object valueObject = getMendixObject().getValue(context, MemberNames.UserRoles.toString()); - if (valueObject == null) - return result; - for (com.mendix.systemwideinterfaces.core.IMendixObject mendixObject : com.mendix.core.Core.retrieveIdList(context, (java.util.List) valueObject)) - result.add(system.proxies.UserRole.initialize(context, mendixObject)); - return result; - } - - /** - * Set value of UserRoles - * @param userroles - */ - public final void setUserRoles(java.util.List userroles) - { - setUserRoles(getContext(), userroles); - } - - /** - * Set value of UserRoles - * @param context - * @param userroles - */ - public final void setUserRoles(com.mendix.systemwideinterfaces.core.IContext context, java.util.List userroles) - { - java.util.List identifiers = new java.util.ArrayList(); - for (system.proxies.UserRole proxyObject : userroles) - identifiers.add(proxyObject.getMendixObject().getId()); - getMendixObject().setValue(context, MemberNames.UserRoles.toString(), identifiers); - } - - /** - * @return value of User_Language - */ - public final system.proxies.Language getUser_Language() throws com.mendix.core.CoreException - { - return getUser_Language(getContext()); - } - - /** - * @param context - * @return value of User_Language - */ - public final system.proxies.Language getUser_Language(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - system.proxies.Language result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.User_Language.toString()); - if (identifier != null) - result = system.proxies.Language.load(context, identifier); - return result; - } - - /** - * Set value of User_Language - * @param user_language - */ - public final void setUser_Language(system.proxies.Language user_language) - { - setUser_Language(getContext(), user_language); - } - - /** - * Set value of User_Language - * @param context - * @param user_language - */ - public final void setUser_Language(com.mendix.systemwideinterfaces.core.IContext context, system.proxies.Language user_language) - { - if (user_language == null) - getMendixObject().setValue(context, MemberNames.User_Language.toString(), null); - else - getMendixObject().setValue(context, MemberNames.User_Language.toString(), user_language.getMendixObject().getId()); - } - - /** - * @return value of User_TimeZone - */ - public final system.proxies.TimeZone getUser_TimeZone() throws com.mendix.core.CoreException - { - return getUser_TimeZone(getContext()); - } - - /** - * @param context - * @return value of User_TimeZone - */ - public final system.proxies.TimeZone getUser_TimeZone(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - system.proxies.TimeZone result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.User_TimeZone.toString()); - if (identifier != null) - result = system.proxies.TimeZone.load(context, identifier); - return result; - } - - /** - * Set value of User_TimeZone - * @param user_timezone - */ - public final void setUser_TimeZone(system.proxies.TimeZone user_timezone) - { - setUser_TimeZone(getContext(), user_timezone); - } - - /** - * Set value of User_TimeZone - * @param context - * @param user_timezone - */ - public final void setUser_TimeZone(com.mendix.systemwideinterfaces.core.IContext context, system.proxies.TimeZone user_timezone) - { - if (user_timezone == null) - getMendixObject().setValue(context, MemberNames.User_TimeZone.toString(), null); - else - getMendixObject().setValue(context, MemberNames.User_TimeZone.toString(), user_timezone.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return userMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final system.proxies.User that = (system.proxies.User) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "System.User"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/system/proxies/UserReportInfo.java b/javasource/system/proxies/UserReportInfo.java deleted file mode 100644 index d0e9447..0000000 --- a/javasource/system/proxies/UserReportInfo.java +++ /dev/null @@ -1,296 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package system.proxies; - -public class UserReportInfo -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject userReportInfoMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "System.UserReportInfo"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - UserType("UserType"), - Hash("Hash"), - UserReportInfo_User("System.UserReportInfo_User"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public UserReportInfo(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "System.UserReportInfo")); - } - - protected UserReportInfo(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject userReportInfoMendixObject) - { - if (userReportInfoMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("System.UserReportInfo", userReportInfoMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a System.UserReportInfo"); - - this.userReportInfoMendixObject = userReportInfoMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'UserReportInfo.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static system.proxies.UserReportInfo initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return system.proxies.UserReportInfo.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static system.proxies.UserReportInfo initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new system.proxies.UserReportInfo(context, mendixObject); - } - - public static system.proxies.UserReportInfo load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return system.proxies.UserReportInfo.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//System.UserReportInfo" + xpathConstraint)) - result.add(system.proxies.UserReportInfo.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * Set value of UserType - * @param usertype - */ - public final system.proxies.UserType getUserType() - { - return getUserType(getContext()); - } - - /** - * @param context - * @return value of UserType - */ - public final system.proxies.UserType getUserType(com.mendix.systemwideinterfaces.core.IContext context) - { - Object obj = getMendixObject().getValue(context, MemberNames.UserType.toString()); - if (obj == null) - return null; - - return system.proxies.UserType.valueOf((java.lang.String) obj); - } - - /** - * Set value of UserType - * @param usertype - */ - public final void setUserType(system.proxies.UserType usertype) - { - setUserType(getContext(), usertype); - } - - /** - * Set value of UserType - * @param context - * @param usertype - */ - public final void setUserType(com.mendix.systemwideinterfaces.core.IContext context, system.proxies.UserType usertype) - { - if (usertype != null) - getMendixObject().setValue(context, MemberNames.UserType.toString(), usertype.toString()); - else - getMendixObject().setValue(context, MemberNames.UserType.toString(), null); - } - - /** - * @return value of Hash - */ - public final java.lang.String getHash() - { - return getHash(getContext()); - } - - /** - * @param context - * @return value of Hash - */ - public final java.lang.String getHash(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Hash.toString()); - } - - /** - * Set value of Hash - * @param hash - */ - public final void setHash(java.lang.String hash) - { - setHash(getContext(), hash); - } - - /** - * Set value of Hash - * @param context - * @param hash - */ - public final void setHash(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String hash) - { - getMendixObject().setValue(context, MemberNames.Hash.toString(), hash); - } - - /** - * @return value of UserReportInfo_User - */ - public final system.proxies.User getUserReportInfo_User() throws com.mendix.core.CoreException - { - return getUserReportInfo_User(getContext()); - } - - /** - * @param context - * @return value of UserReportInfo_User - */ - public final system.proxies.User getUserReportInfo_User(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - system.proxies.User result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.UserReportInfo_User.toString()); - if (identifier != null) - result = system.proxies.User.load(context, identifier); - return result; - } - - /** - * Set value of UserReportInfo_User - * @param userreportinfo_user - */ - public final void setUserReportInfo_User(system.proxies.User userreportinfo_user) - { - setUserReportInfo_User(getContext(), userreportinfo_user); - } - - /** - * Set value of UserReportInfo_User - * @param context - * @param userreportinfo_user - */ - public final void setUserReportInfo_User(com.mendix.systemwideinterfaces.core.IContext context, system.proxies.User userreportinfo_user) - { - if (userreportinfo_user == null) - getMendixObject().setValue(context, MemberNames.UserReportInfo_User.toString(), null); - else - getMendixObject().setValue(context, MemberNames.UserReportInfo_User.toString(), userreportinfo_user.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return userReportInfoMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final system.proxies.UserReportInfo that = (system.proxies.UserReportInfo) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "System.UserReportInfo"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/system/proxies/UserRole.java b/javasource/system/proxies/UserRole.java deleted file mode 100644 index 3ee3dc0..0000000 --- a/javasource/system/proxies/UserRole.java +++ /dev/null @@ -1,328 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package system.proxies; - -public class UserRole -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject userRoleMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "System.UserRole"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - ModelGUID("ModelGUID"), - Name("Name"), - Description("Description"), - grantableRoles("System.grantableRoles"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public UserRole(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "System.UserRole")); - } - - protected UserRole(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject userRoleMendixObject) - { - if (userRoleMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("System.UserRole", userRoleMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a System.UserRole"); - - this.userRoleMendixObject = userRoleMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'UserRole.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static system.proxies.UserRole initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return system.proxies.UserRole.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static system.proxies.UserRole initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new system.proxies.UserRole(context, mendixObject); - } - - public static system.proxies.UserRole load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return system.proxies.UserRole.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//System.UserRole" + xpathConstraint)) - result.add(system.proxies.UserRole.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of ModelGUID - */ - public final java.lang.String getModelGUID() - { - return getModelGUID(getContext()); - } - - /** - * @param context - * @return value of ModelGUID - */ - public final java.lang.String getModelGUID(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.ModelGUID.toString()); - } - - /** - * Set value of ModelGUID - * @param modelguid - */ - public final void setModelGUID(java.lang.String modelguid) - { - setModelGUID(getContext(), modelguid); - } - - /** - * Set value of ModelGUID - * @param context - * @param modelguid - */ - public final void setModelGUID(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String modelguid) - { - getMendixObject().setValue(context, MemberNames.ModelGUID.toString(), modelguid); - } - - /** - * @return value of Name - */ - public final java.lang.String getName() - { - return getName(getContext()); - } - - /** - * @param context - * @return value of Name - */ - public final java.lang.String getName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Name.toString()); - } - - /** - * Set value of Name - * @param name - */ - public final void setName(java.lang.String name) - { - setName(getContext(), name); - } - - /** - * Set value of Name - * @param context - * @param name - */ - public final void setName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String name) - { - getMendixObject().setValue(context, MemberNames.Name.toString(), name); - } - - /** - * @return value of Description - */ - public final java.lang.String getDescription() - { - return getDescription(getContext()); - } - - /** - * @param context - * @return value of Description - */ - public final java.lang.String getDescription(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.Description.toString()); - } - - /** - * Set value of Description - * @param description - */ - public final void setDescription(java.lang.String description) - { - setDescription(getContext(), description); - } - - /** - * Set value of Description - * @param context - * @param description - */ - public final void setDescription(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String description) - { - getMendixObject().setValue(context, MemberNames.Description.toString(), description); - } - - /** - * @return value of grantableRoles - */ - public final java.util.List getgrantableRoles() throws com.mendix.core.CoreException - { - return getgrantableRoles(getContext()); - } - - /** - * @param context - * @return value of grantableRoles - */ - @SuppressWarnings("unchecked") - public final java.util.List getgrantableRoles(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - Object valueObject = getMendixObject().getValue(context, MemberNames.grantableRoles.toString()); - if (valueObject == null) - return result; - for (com.mendix.systemwideinterfaces.core.IMendixObject mendixObject : com.mendix.core.Core.retrieveIdList(context, (java.util.List) valueObject)) - result.add(system.proxies.UserRole.initialize(context, mendixObject)); - return result; - } - - /** - * Set value of grantableRoles - * @param grantableroles - */ - public final void setgrantableRoles(java.util.List grantableroles) - { - setgrantableRoles(getContext(), grantableroles); - } - - /** - * Set value of grantableRoles - * @param context - * @param grantableroles - */ - public final void setgrantableRoles(com.mendix.systemwideinterfaces.core.IContext context, java.util.List grantableroles) - { - java.util.List identifiers = new java.util.ArrayList(); - for (system.proxies.UserRole proxyObject : grantableroles) - identifiers.add(proxyObject.getMendixObject().getId()); - getMendixObject().setValue(context, MemberNames.grantableRoles.toString(), identifiers); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return userRoleMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final system.proxies.UserRole that = (system.proxies.UserRole) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "System.UserRole"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/system/proxies/UserType.java b/javasource/system/proxies/UserType.java deleted file mode 100644 index ceb3342..0000000 --- a/javasource/system/proxies/UserType.java +++ /dev/null @@ -1,32 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package system.proxies; - -public enum UserType -{ - Internal(new java.lang.String[][] { new java.lang.String[] { "en_US", "Internal" }, new java.lang.String[] { "nl_NL", "Intern" } }), - External(new java.lang.String[][] { new java.lang.String[] { "en_US", "External" }, new java.lang.String[] { "nl_NL", "Extern" } }); - - private java.util.Map captions; - - private UserType(java.lang.String[][] captionStrings) - { - this.captions = new java.util.HashMap(); - for (java.lang.String[] captionString : captionStrings) - captions.put(captionString[0], captionString[1]); - } - - public java.lang.String getCaption(java.lang.String languageCode) - { - if (captions.containsKey(languageCode)) - return captions.get(languageCode); - return captions.get("en_US"); - } - - public java.lang.String getCaption() - { - return captions.get("en_US"); - } -} diff --git a/javasource/system/proxies/XASInstance.java b/javasource/system/proxies/XASInstance.java deleted file mode 100644 index 21dd57b..0000000 --- a/javasource/system/proxies/XASInstance.java +++ /dev/null @@ -1,355 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package system.proxies; - -public class XASInstance -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject xASInstanceMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "System.XASInstance"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - XASId("XASId"), - LastUpdate("LastUpdate"), - AllowedNumberOfConcurrentUsers("AllowedNumberOfConcurrentUsers"), - PartnerName("PartnerName"), - CustomerName("CustomerName"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public XASInstance(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "System.XASInstance")); - } - - protected XASInstance(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject xASInstanceMendixObject) - { - if (xASInstanceMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("System.XASInstance", xASInstanceMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a System.XASInstance"); - - this.xASInstanceMendixObject = xASInstanceMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'XASInstance.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static system.proxies.XASInstance initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return system.proxies.XASInstance.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static system.proxies.XASInstance initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new system.proxies.XASInstance(context, mendixObject); - } - - public static system.proxies.XASInstance load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return system.proxies.XASInstance.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//System.XASInstance" + xpathConstraint)) - result.add(system.proxies.XASInstance.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of XASId - */ - public final java.lang.String getXASId() - { - return getXASId(getContext()); - } - - /** - * @param context - * @return value of XASId - */ - public final java.lang.String getXASId(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.XASId.toString()); - } - - /** - * Set value of XASId - * @param xasid - */ - public final void setXASId(java.lang.String xasid) - { - setXASId(getContext(), xasid); - } - - /** - * Set value of XASId - * @param context - * @param xasid - */ - public final void setXASId(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xasid) - { - getMendixObject().setValue(context, MemberNames.XASId.toString(), xasid); - } - - /** - * @return value of LastUpdate - */ - public final java.util.Date getLastUpdate() - { - return getLastUpdate(getContext()); - } - - /** - * @param context - * @return value of LastUpdate - */ - public final java.util.Date getLastUpdate(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.util.Date) getMendixObject().getValue(context, MemberNames.LastUpdate.toString()); - } - - /** - * Set value of LastUpdate - * @param lastupdate - */ - public final void setLastUpdate(java.util.Date lastupdate) - { - setLastUpdate(getContext(), lastupdate); - } - - /** - * Set value of LastUpdate - * @param context - * @param lastupdate - */ - public final void setLastUpdate(com.mendix.systemwideinterfaces.core.IContext context, java.util.Date lastupdate) - { - getMendixObject().setValue(context, MemberNames.LastUpdate.toString(), lastupdate); - } - - /** - * @return value of AllowedNumberOfConcurrentUsers - */ - public final java.lang.Integer getAllowedNumberOfConcurrentUsers() - { - return getAllowedNumberOfConcurrentUsers(getContext()); - } - - /** - * @param context - * @return value of AllowedNumberOfConcurrentUsers - */ - public final java.lang.Integer getAllowedNumberOfConcurrentUsers(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Integer) getMendixObject().getValue(context, MemberNames.AllowedNumberOfConcurrentUsers.toString()); - } - - /** - * Set value of AllowedNumberOfConcurrentUsers - * @param allowednumberofconcurrentusers - */ - public final void setAllowedNumberOfConcurrentUsers(java.lang.Integer allowednumberofconcurrentusers) - { - setAllowedNumberOfConcurrentUsers(getContext(), allowednumberofconcurrentusers); - } - - /** - * Set value of AllowedNumberOfConcurrentUsers - * @param context - * @param allowednumberofconcurrentusers - */ - public final void setAllowedNumberOfConcurrentUsers(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Integer allowednumberofconcurrentusers) - { - getMendixObject().setValue(context, MemberNames.AllowedNumberOfConcurrentUsers.toString(), allowednumberofconcurrentusers); - } - - /** - * @return value of PartnerName - */ - public final java.lang.String getPartnerName() - { - return getPartnerName(getContext()); - } - - /** - * @param context - * @return value of PartnerName - */ - public final java.lang.String getPartnerName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.PartnerName.toString()); - } - - /** - * Set value of PartnerName - * @param partnername - */ - public final void setPartnerName(java.lang.String partnername) - { - setPartnerName(getContext(), partnername); - } - - /** - * Set value of PartnerName - * @param context - * @param partnername - */ - public final void setPartnerName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String partnername) - { - getMendixObject().setValue(context, MemberNames.PartnerName.toString(), partnername); - } - - /** - * @return value of CustomerName - */ - public final java.lang.String getCustomerName() - { - return getCustomerName(getContext()); - } - - /** - * @param context - * @return value of CustomerName - */ - public final java.lang.String getCustomerName(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.CustomerName.toString()); - } - - /** - * Set value of CustomerName - * @param customername - */ - public final void setCustomerName(java.lang.String customername) - { - setCustomerName(getContext(), customername); - } - - /** - * Set value of CustomerName - * @param context - * @param customername - */ - public final void setCustomerName(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String customername) - { - getMendixObject().setValue(context, MemberNames.CustomerName.toString(), customername); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return xASInstanceMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final system.proxies.XASInstance that = (system.proxies.XASInstance) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "System.XASInstance"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/system/proxies/microflows/Microflows.java b/javasource/system/proxies/microflows/Microflows.java deleted file mode 100644 index 75804c9..0000000 --- a/javasource/system/proxies/microflows/Microflows.java +++ /dev/null @@ -1,22 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package system.proxies.microflows; - -import java.util.HashMap; -import java.util.Map; -import com.mendix.core.Core; -import com.mendix.core.CoreException; -import com.mendix.systemwideinterfaces.MendixRuntimeException; -import com.mendix.systemwideinterfaces.core.IContext; - -public class Microflows -{ - // These are the microflows for the System module - public static void showHomePage(IContext context) - { - Map params = new HashMap<>(); - Core.microflowCall("System.ShowHomePage").withParams(params).execute(context); - } -} \ No newline at end of file diff --git a/javasource/testmodule/proxies/Asso_DataObject.java b/javasource/testmodule/proxies/Asso_DataObject.java deleted file mode 100644 index b48d20e..0000000 --- a/javasource/testmodule/proxies/Asso_DataObject.java +++ /dev/null @@ -1,207 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package testmodule.proxies; - -public class Asso_DataObject -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject asso_DataObjectMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "TestModule.Asso_DataObject"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - orgNm("orgNm"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public Asso_DataObject(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "TestModule.Asso_DataObject")); - } - - protected Asso_DataObject(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject asso_DataObjectMendixObject) - { - if (asso_DataObjectMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("TestModule.Asso_DataObject", asso_DataObjectMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a TestModule.Asso_DataObject"); - - this.asso_DataObjectMendixObject = asso_DataObjectMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'Asso_DataObject.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static testmodule.proxies.Asso_DataObject initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return testmodule.proxies.Asso_DataObject.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static testmodule.proxies.Asso_DataObject initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new testmodule.proxies.Asso_DataObject(context, mendixObject); - } - - public static testmodule.proxies.Asso_DataObject load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return testmodule.proxies.Asso_DataObject.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//TestModule.Asso_DataObject" + xpathConstraint)) - result.add(testmodule.proxies.Asso_DataObject.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of orgNm - */ - public final java.lang.String getorgNm() - { - return getorgNm(getContext()); - } - - /** - * @param context - * @return value of orgNm - */ - public final java.lang.String getorgNm(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.orgNm.toString()); - } - - /** - * Set value of orgNm - * @param orgnm - */ - public final void setorgNm(java.lang.String orgnm) - { - setorgNm(getContext(), orgnm); - } - - /** - * Set value of orgNm - * @param context - * @param orgnm - */ - public final void setorgNm(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String orgnm) - { - getMendixObject().setValue(context, MemberNames.orgNm.toString(), orgnm); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return asso_DataObjectMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final testmodule.proxies.Asso_DataObject that = (testmodule.proxies.Asso_DataObject) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "TestModule.Asso_DataObject"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/testmodule/proxies/DataObject.java b/javasource/testmodule/proxies/DataObject.java deleted file mode 100644 index 3026886..0000000 --- a/javasource/testmodule/proxies/DataObject.java +++ /dev/null @@ -1,325 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package testmodule.proxies; - -public class DataObject -{ - private final com.mendix.systemwideinterfaces.core.IMendixObject dataObjectMendixObject; - - private final com.mendix.systemwideinterfaces.core.IContext context; - - /** - * Internal name of this entity - */ - public static final java.lang.String entityName = "TestModule.DataObject"; - - /** - * Enum describing members of this entity - */ - public enum MemberNames - { - name("name"), - dept("dept"), - sal("sal"), - DataObject_Asso_DataObject("TestModule.DataObject_Asso_DataObject"); - - private java.lang.String metaName; - - MemberNames(java.lang.String s) - { - metaName = s; - } - - @java.lang.Override - public java.lang.String toString() - { - return metaName; - } - } - - public DataObject(com.mendix.systemwideinterfaces.core.IContext context) - { - this(context, com.mendix.core.Core.instantiate(context, "TestModule.DataObject")); - } - - protected DataObject(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject dataObjectMendixObject) - { - if (dataObjectMendixObject == null) - throw new java.lang.IllegalArgumentException("The given object cannot be null."); - if (!com.mendix.core.Core.isSubClassOf("TestModule.DataObject", dataObjectMendixObject.getType())) - throw new java.lang.IllegalArgumentException("The given object is not a TestModule.DataObject"); - - this.dataObjectMendixObject = dataObjectMendixObject; - this.context = context; - } - - /** - * @deprecated Use 'DataObject.load(IContext, IMendixIdentifier)' instead. - */ - @java.lang.Deprecated - public static testmodule.proxies.DataObject initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - return testmodule.proxies.DataObject.load(context, mendixIdentifier); - } - - /** - * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. - * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). - */ - public static testmodule.proxies.DataObject initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) - { - return new testmodule.proxies.DataObject(context, mendixObject); - } - - public static testmodule.proxies.DataObject load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException - { - com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); - return testmodule.proxies.DataObject.initialize(context, mendixObject); - } - - public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException - { - java.util.List result = new java.util.ArrayList(); - for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//TestModule.DataObject" + xpathConstraint)) - result.add(testmodule.proxies.DataObject.initialize(context, obj)); - return result; - } - - /** - * Commit the changes made on this proxy object. - */ - public final void commit() throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Commit the changes made on this proxy object using the specified context. - */ - public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - com.mendix.core.Core.commit(context, getMendixObject()); - } - - /** - * Delete the object. - */ - public final void delete() - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - - /** - * Delete the object using the specified context. - */ - public final void delete(com.mendix.systemwideinterfaces.core.IContext context) - { - com.mendix.core.Core.delete(context, getMendixObject()); - } - /** - * @return value of name - */ - public final java.lang.String getname() - { - return getname(getContext()); - } - - /** - * @param context - * @return value of name - */ - public final java.lang.String getname(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.name.toString()); - } - - /** - * Set value of name - * @param name - */ - public final void setname(java.lang.String name) - { - setname(getContext(), name); - } - - /** - * Set value of name - * @param context - * @param name - */ - public final void setname(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String name) - { - getMendixObject().setValue(context, MemberNames.name.toString(), name); - } - - /** - * @return value of dept - */ - public final java.lang.String getdept() - { - return getdept(getContext()); - } - - /** - * @param context - * @return value of dept - */ - public final java.lang.String getdept(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.String) getMendixObject().getValue(context, MemberNames.dept.toString()); - } - - /** - * Set value of dept - * @param dept - */ - public final void setdept(java.lang.String dept) - { - setdept(getContext(), dept); - } - - /** - * Set value of dept - * @param context - * @param dept - */ - public final void setdept(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String dept) - { - getMendixObject().setValue(context, MemberNames.dept.toString(), dept); - } - - /** - * @return value of sal - */ - public final java.lang.Integer getsal() - { - return getsal(getContext()); - } - - /** - * @param context - * @return value of sal - */ - public final java.lang.Integer getsal(com.mendix.systemwideinterfaces.core.IContext context) - { - return (java.lang.Integer) getMendixObject().getValue(context, MemberNames.sal.toString()); - } - - /** - * Set value of sal - * @param sal - */ - public final void setsal(java.lang.Integer sal) - { - setsal(getContext(), sal); - } - - /** - * Set value of sal - * @param context - * @param sal - */ - public final void setsal(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Integer sal) - { - getMendixObject().setValue(context, MemberNames.sal.toString(), sal); - } - - /** - * @return value of DataObject_Asso_DataObject - */ - public final testmodule.proxies.Asso_DataObject getDataObject_Asso_DataObject() throws com.mendix.core.CoreException - { - return getDataObject_Asso_DataObject(getContext()); - } - - /** - * @param context - * @return value of DataObject_Asso_DataObject - */ - public final testmodule.proxies.Asso_DataObject getDataObject_Asso_DataObject(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException - { - testmodule.proxies.Asso_DataObject result = null; - com.mendix.systemwideinterfaces.core.IMendixIdentifier identifier = getMendixObject().getValue(context, MemberNames.DataObject_Asso_DataObject.toString()); - if (identifier != null) - result = testmodule.proxies.Asso_DataObject.load(context, identifier); - return result; - } - - /** - * Set value of DataObject_Asso_DataObject - * @param dataobject_asso_dataobject - */ - public final void setDataObject_Asso_DataObject(testmodule.proxies.Asso_DataObject dataobject_asso_dataobject) - { - setDataObject_Asso_DataObject(getContext(), dataobject_asso_dataobject); - } - - /** - * Set value of DataObject_Asso_DataObject - * @param context - * @param dataobject_asso_dataobject - */ - public final void setDataObject_Asso_DataObject(com.mendix.systemwideinterfaces.core.IContext context, testmodule.proxies.Asso_DataObject dataobject_asso_dataobject) - { - if (dataobject_asso_dataobject == null) - getMendixObject().setValue(context, MemberNames.DataObject_Asso_DataObject.toString(), null); - else - getMendixObject().setValue(context, MemberNames.DataObject_Asso_DataObject.toString(), dataobject_asso_dataobject.getMendixObject().getId()); - } - - /** - * @return the IMendixObject instance of this proxy for use in the Core interface. - */ - public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() - { - return dataObjectMendixObject; - } - - /** - * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. - */ - public final com.mendix.systemwideinterfaces.core.IContext getContext() - { - return context; - } - - @java.lang.Override - public boolean equals(Object obj) - { - if (obj == this) - return true; - - if (obj != null && getClass().equals(obj.getClass())) - { - final testmodule.proxies.DataObject that = (testmodule.proxies.DataObject) obj; - return getMendixObject().equals(that.getMendixObject()); - } - return false; - } - - @java.lang.Override - public int hashCode() - { - return getMendixObject().hashCode(); - } - - /** - * @return String name of this class - */ - public static java.lang.String getType() - { - return "TestModule.DataObject"; - } - - /** - * @return String GUID from this object, format: ID_0000000000 - * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. - */ - @java.lang.Deprecated - public java.lang.String getGUID() - { - return "ID_" + getMendixObject().getId().toLong(); - } -} diff --git a/javasource/testmodule/proxies/microflows/Microflows.java b/javasource/testmodule/proxies/microflows/Microflows.java deleted file mode 100644 index 32d4cab..0000000 --- a/javasource/testmodule/proxies/microflows/Microflows.java +++ /dev/null @@ -1,28 +0,0 @@ -// This file was generated by Mendix Studio Pro. -// -// WARNING: Code you write here will be lost the next time you deploy the project. - -package testmodule.proxies.microflows; - -import java.util.HashMap; -import java.util.Map; -import com.mendix.core.Core; -import com.mendix.core.CoreException; -import com.mendix.systemwideinterfaces.MendixRuntimeException; -import com.mendix.systemwideinterfaces.core.IContext; - -public class Microflows -{ - // These are the microflows for the TestModule module - public static void sub_CreateEmail(IContext context, emailtemplate.proxies.EmailTemplate _emailTemplate) - { - Map params = new HashMap<>(); - params.put("EmailTemplate", _emailTemplate == null ? null : _emailTemplate.getMendixObject()); - Core.microflowCall("TestModule.Sub_CreateEmail").withParams(params).execute(context); - } - public static void tEST_CreateTestData(IContext context) - { - Map params = new HashMap<>(); - Core.microflowCall("TestModule.TEST_CreateTestData").withParams(params).execute(context); - } -} \ No newline at end of file diff --git a/theme/.prettierrc b/theme/.prettierrc deleted file mode 100644 index a46f75f..0000000 --- a/theme/.prettierrc +++ /dev/null @@ -1,11 +0,0 @@ -{ - "singleQuote": false, - "printWidth": 120, - "proseWrap": "always", - "tabWidth": 4, - "useTabs": false, - "trailingComma": "all", - "bracketSpacing": true, - "semi": true, - "arrowParens": "avoid" -} diff --git a/theme/.stylelintrc b/theme/.stylelintrc deleted file mode 100644 index 62c30a6..0000000 --- a/theme/.stylelintrc +++ /dev/null @@ -1,32 +0,0 @@ -{ - "extends": "stylelint-config-standard", - "rules": { - "indentation": 4, - "string-quotes": "double", - "no-duplicate-selectors": true, - "color-hex-case": "upper", - "color-hex-length": "short", - "selector-combinator-space-after": "always", - "selector-attribute-operator-space-before": "always", - "selector-attribute-operator-space-after": "always", - "selector-attribute-brackets-space-inside": "always", - "declaration-block-trailing-semicolon": "always", - "declaration-colon-space-before": "never", - "declaration-colon-space-after": "always", - "number-leading-zero": "never", - "function-url-quotes": "always", - "font-family-name-quotes": "always-unless-keyword", - "comment-whitespace-inside": "always", - "comment-empty-line-before": "always", - "rule-empty-line-before": "always-multi-line", - "selector-pseudo-element-colon-notation": "single", - "media-feature-range-operator-space-after": "always", - "media-feature-colon-space-after": "always", - "no-descending-specificity": null, - "declaration-colon-newline-after": null, - "value-list-comma-newline-after": null, - "at-rule-no-unknown": [true, { - "ignoreAtRules": ["function", "if", "each", "include", "mixin"] - }] - } -} diff --git a/theme/LICENSE b/theme/LICENSE deleted file mode 100644 index 476061e..0000000 --- a/theme/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2019 Mendix - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/theme/README.md b/theme/README.md deleted file mode 100644 index 91312ab..0000000 --- a/theme/README.md +++ /dev/null @@ -1,96 +0,0 @@ -# For Atlas 3 UI go [here](https://github.com/mendix/widgets-resources/tree/master/packages/theming/atlas) - -We are always improving our code base with new technologies. Thus we moved our new atlas 3 theme package to our [monorepo](https://github.com/mendix/widgets-resources) - -## Mendix Atlas 2 UI - -Mendix Atlas UI is the foundation of making beautiful apps with Mendix. For more information about the framework go to -[here](https://atlas.mendix.com/). - -### Useful tools -- [Compile SCSS to CSS with Calypso](https://docs.mendix.com/howto/front-end/calypso) -- [Visually update the design properties for web and native](https://jeltemx.github.io/mendix-dpt/) -- [Inspect and update styles in the Make it Native app with the React Native Debugger](https://docs.mendix.com/howto/mobile/native-debug) - -#### Structure - -Mendix is capable of creating beautiful and user-friendly UI. Our Atlas UI framework demonstrates some of its -possibilities. Here you will find a basic overview of our framework. - -``` -theme/ -├── styles/ -| ├── native/ -| | ├── ts/ // Will not be in the Atlas UI Resources module -| | ├── js/ -| | ├── app/ -| | | ├── _custom-variables.js -| | | └── _custom.js -| | ├── core/ -| |     |   ├── base/ -| |     |   ├── helpers/ -| | | ├── widgets/ -| |    |  | _variables.js -| |    |  └── manifest.json -| | ├── ui_resources/ -| |     |   └── atlas_ui_resources/ -| |     |   ├── buildingblocks/ -| |     |   └── layouts/ -| | └── main.js -| └── web/ -| ├── css/ -| │ ├── * all output files -| └── sass/ -| ├── app/ -| | ├── _custom-variables.scss -| | └── _custom.scss -| ├── core/ -|       |   ├── _legacy/ -|       |   ├── base/ -|       |   ├── helpers/ -| | ├── widgets/ -| | ├── widgetscustom/ -|      |   | _variables.scss -|      |  └── manifest.json -| ├── ui_resources/ -|       |   └── atlas_ui_resources/ -|       |   ├── buildingblocks/ -|       |   └── layouts/ -| └── main.scss -├── * index files -├── * assets -├── * settings*.json (Design Properties) -└── styles.js -``` - -#### App - -The app folder contains all custom styling. We recommend users to only use this directory for any custom styling. - -When you want to customize something, you should first check if you can accomplish your goal by changing variables. -These variables can be found in _styles/web/sass/core/variables.scss_ or _styles/native/core/variables.js_. If you want -to change any core variable, copy it to _../app/\_custom-variables.(scss|js)_ and change it there. It will then -overwrite the core variable. This will make updating Atlas UI much easier in the future. - -#### Core - -The core folder is the heart of Atlas UI. This folder includes base styling, widget styling & additional helper classes. -The core widget styling is split in to two parts. The widget folder includes the default widget styling, as it will look -out of the box. The helpers folder will include design properties and extra classes to change that default styling. - -#### UI Resources - -THe UI Resources folder will contain any styling related to Building Blocks, Page Templates and Layouts. - -Building blocks are created with Widgets. For example _cards_ or _headers_ are building blocks. A building block could -be an image, a title, and a button, assembled together into one UI block. - -Page Templates are created with Building Blocks and Widgets. Page Templates are an example of how a page could look -like. - -Layouts are created with widgets. They are mainly used for navigation or user experiences which need to be consistent -between pages. - -## License - -MIT diff --git a/theme/components.json b/theme/components.json deleted file mode 100644 index df42ffa..0000000 --- a/theme/components.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "files": { - "css": ["styles/web/css/main.css"], - "js": ["mxclientsystem/mxui/mxui.js"] - }, - "cachebust": "{{cachebust}}" -} diff --git a/theme/index-rtl.html b/theme/index-rtl.html deleted file mode 100644 index fa89bca..0000000 --- a/theme/index-rtl.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - Mendix - - - - {{themecss}} - {{appicons}} - {{manifest}} - {{startupimages}} - - - -

- - - - diff --git a/theme/index.html b/theme/index.html deleted file mode 100644 index ce29e6b..0000000 --- a/theme/index.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - Mendix - - - - {{themecss}} - {{appicons}} - {{manifest}} - {{startupimages}} - - - - -
- - - - - diff --git a/theme/login-with-sso.html b/theme/login-with-sso.html deleted file mode 100644 index 46c961c..0000000 --- a/theme/login-with-sso.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - Login - - - - {{themecss}} - {{appicons}} - {{manifest}} - {{startupimages}} - - - - -
-
-
-
-
-
-

Sign in

-
-
-
-
- -
- - -
-
-
- -
- - -
-
- -
- -
-
Or sign in with
-
-
- - - - - -
-
-
- -
- - - - - - diff --git a/theme/login.html b/theme/login.html deleted file mode 100644 index aed07bc..0000000 --- a/theme/login.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - Login - - - - {{themecss}} - {{appicons}} - {{manifest}} - {{startupimages}} - - - - -
-
-
-
-
-
-

Sign in

-
-
-
-
- -
- - -
-
-
- -
- - -
-
- -
-
-
-
- -
- - - - - - diff --git a/theme/native/custom-variables.js b/theme/native/custom-variables.js new file mode 100644 index 0000000..e21e6af --- /dev/null +++ b/theme/native/custom-variables.js @@ -0,0 +1,792 @@ +import { Appearance, Platform } from "react-native"; +import { adjustFont, anyColorToRgbString, setContrastScale } from "../../themesource/atlas_core/native/api"; +import "./exclusion-variables"; +/* + +==> You can find a copy of the core variables below. (From styles/native/core/variables.js) +==> You can freely change any value in this file. +==> DO NOT change the core variable file (or any other file in core), as that makes updating Atlas a lot harder in the future. + +*/ +// == Global variables +// ## Variables to be used during styling +// -------------------------------------------------------------------------------------------------------------------// +// Brand Styles +export const brand = { + primary: "#264AE5", + success: "#3CB33D", + warning: "#ECA51C", + danger: "#E33F4E", + info: "#0086D9", + primaryLight: "#F3F5FF", + successLight: "#F1FCF1", + warningLight: "#FFF9E6", + dangerLight: "#FFEEF0", + infoLight: "#ECF9FF" +}; +// +// Dark Mode - Inherits OS theme if possible +export const darkMode = Appearance.getColorScheme() === "dark"; +// +// Background Colors +export const backgroundDefaults = { + primaryLight: "#FFF", + primaryDark: "#0A1325", + secondaryLight: "#F8F8F8", + secondaryDark: "#161F30" +}; +export const background = { + primary: darkMode ? backgroundDefaults.primaryDark : backgroundDefaults.primaryLight, + secondary: darkMode ? backgroundDefaults.secondaryDark : backgroundDefaults.secondaryLight, + brandPrimary: brand.primary, + brandSuccess: brand.success, + brandWarning: brand.warning, + brandDanger: brand.danger, + brandInfo: brand.info +}; +// +// Contrast (Gray) colors based on background.primary +export const contrast = { + highest: setContrastScale(0.95, background.primary), + higher: setContrastScale(0.8, background.primary), + high: setContrastScale(0.65, background.primary), + regular: setContrastScale(0.5, background.primary), + low: setContrastScale(0.35, background.primary), + lower: setContrastScale(0.2, background.primary), + lowest: setContrastScale(0.05, background.primary) +}; +// +// Border Style +export const border = { + color: darkMode ? "#3B4251" : "#CED0D3", + width: 1, + radiusSmall: 4, + radiusLarge: 8, + radiusLargest: 9999 +}; +// +// Font Styles +export const fontDefaults = { + colorTitleDark: "#0A1326", + colorTitleLight: "#FDFDFD", + colorParagraphDark: "#6C717E", + colorParagraphLight: "#E7E7E9", + colorDisabledDark: "#9DA1A8", + colorDisabledLight: "#9DA1A8" +}; +export const font = { + size: adjustFont(14), + sizeSmallest: adjustFont(10), + sizeSmall: adjustFont(12), + sizeLarge: adjustFont(16), + sizeLargest: adjustFont(18), + sizeH1: adjustFont(40), + sizeH2: adjustFont(34), + sizeH3: adjustFont(28), + sizeH4: adjustFont(24), + sizeH5: adjustFont(20), + sizeH6: adjustFont(16), + lineHeight: adjustFont(14) * 1.5, + lineHeightSmallest: adjustFont(10) * 1.5, + lineHeightSmall: adjustFont(12) * 1.5, + lineHeightLarge: adjustFont(16) * 1.5, + lineHeightLargest: adjustFont(18) * 1.5, + lineHeightH1: adjustFont(40) * 1.5, + lineHeightH2: adjustFont(34) * 1.5, + lineHeightH3: adjustFont(28) * 1.5, + lineHeightH4: adjustFont(24) * 1.5, + lineHeightH5: adjustFont(20) * 1.5, + lineHeightH6: adjustFont(16) * 1.5, + colorTitle: darkMode ? fontDefaults.colorTitleLight : fontDefaults.colorTitleDark, + colorParagraph: darkMode ? fontDefaults.colorParagraphLight : fontDefaults.colorParagraphDark, + colorDisabled: darkMode ? fontDefaults.colorDisabledLight : fontDefaults.colorDisabledDark, + weightLight: "100", + weightNormal: "normal", + weightSemiBold: "600", + weightBold: "bold", + family: Platform.select({ ios: "System", android: "normal" }) +}; +// +// Spacing +export const spacing = { + smallest: 2, + smaller: 4, + small: 8, + regular: 16, + large: 24, + larger: 32, + largest: 40 +}; +// +// Button Styles +export const button = { + // Start default styles + container: { + rippleColor: contrast.lowest, + borderRadius: border.radiusLarge, + minWidth: 48, + minHeight: 48, + paddingVertical: spacing.small, + paddingHorizontal: spacing.small + }, + containerDisabled: { + borderColor: border.color, + backgroundColor: border.color + }, + icon: { + size: font.sizeSmall + }, + iconDisabled: { + color: font.colorDisabled + }, + caption: { + fontSize: font.sizeSmall, + fontWeight: font.weightBold + }, + captionDisabled: { + color: font.colorDisabled + }, + // End default styles + header: { + color: contrast.highest, + borderColor: "transparent", + backgroundColor: "transparent", + fontSize: font.sizeSmall, + fontSizeIcon: font.sizeSmall, + paddingLeft: 0, + paddingRight: 10 + }, + primary: { + color: "#FFF", + borderColor: brand.primary, + backgroundColor: brand.primary + }, + secondary: { + color: brand.primary, + borderColor: brand.primary, + backgroundColor: "transparent", + inversedColor: "#FFF" + }, + success: { + color: "#FFF", + borderColor: brand.success, + backgroundColor: brand.success + }, + warning: { + color: "#FFF", + borderColor: brand.warning, + backgroundColor: brand.warning + }, + danger: { + color: "#FFF", + borderColor: brand.danger, + backgroundColor: brand.danger + } +}; +// +// Input Styles +export const input = { + label: { + numberOfLines: 1, + color: font.colorTitle, + fontSize: font.sizeSmall, + textAlign: "left" + }, + labelDisabled: { + color: font.colorTitle + }, + input: { + color: font.colorTitle, + borderColor: contrast.lower, + backgroundColor: background.primary, + selectionColor: contrast.lower, + placeholderTextColor: contrast.low, + fontSize: font.size, + lineHeight: font.lineHeight, + borderWidth: border.width, + borderRadius: border.radiusLarge, + minWidth: 48, + minHeight: 48, + paddingVertical: spacing.small, + paddingHorizontal: spacing.small + }, + inputContainer: { + underlayColor: `rgba(${anyColorToRgbString(contrast.low)},0.4)` + }, + inputDisabled: { + color: font.colorDisabled, + borderColor: border.color, + backgroundColor: background.secondary + }, + inputError: { + color: brand.danger, + borderColor: brand.danger, + placeholderTextColor: brand.danger, + backgroundColor: brand.dangerLight + }, + validationMessage: { + color: brand.danger, + fontSize: font.size + }, + // Only used for the DropDown & ReferenceSelector + valueContainer: { + rippleColor: contrast.lowest + }, + itemContainer: { + paddingVertical: 12, + paddingHorizontal: spacing.regular, + backgroundColor: background.primary + }, + item: { + color: font.colorTitle, + fontSize: font.size + }, + selectedItemContainer: { + borderWidth: border.width, + borderRadius: border.radiusLarge, + borderColor: brand.primary, + backgroundColor: "transparent" + }, + selectedItem: { + color: font.colorTitle, + fontSize: font.size + } +}; +export const image = { + image: { + small: 24, + medium: 40, + large: 56, + larger: 72 + }, + imageDisabled: { + opacity: 0.6 + }, + icon: 16 +}; +// +// Navigation Styles +export const navigation = { + statusBar: { + backgroundColor: background.primary, + barStyle: darkMode ? "light-content" : "dark-content" + }, + topBar: { + backgroundColor: brand.primary, + backButtonColor: "#FFF", + titleColor: "#FFF", + titleFontSize: font.sizeH6 + }, + bottomBar: { + color: contrast.high, + selectedTextColor: brand.primary, + selectedIconColor: brand.primary, + backgroundColor: background.primary, + fontSize: font.sizeSmall, + iconSize: font.sizeSmall + }, + progressOverlay: { + color: font.colorTitle, + activityIndicatorColor: font.colorTitle, + backgroundColor: "rgba(0, 0, 0, 0.5)", + containerBackgroundColor: background.secondary, + fontSize: font.size, + borderRadius: border.radiusSmall, + elevation: 1.5, + shadowColor: "#000", + shadowOpacity: 0.1, + shadowRadius: 10 // Only for iOS + } +}; +// +// Checkbox styles +export const checkbox = { + checkboxInput: { + color: brand.primary, + size: 20, + backgroundColor: background.primary, + borderColor: border.color, + borderWidth: border.width, + borderRadius: border.radiusSmall, + width: 40, + height: 40 + }, + checkboxInputDisabled: { + color: brand.primaryLight, + backgroundColor: background.secondary + }, + checkboxInputError: { + color: brand.danger, + borderColor: brand.danger + } +}; +// +// Container Styles +export const container = { + containerDisabled: { + opacity: 0.6 + } +}; +// +// Accordion Styles +export const accordion = { + container: { + backgroundColor: background.primary, + borderColor: border.color + }, + groupHeader: { + container: { + paddingVertical: spacing.regular, + paddingHorizontal: spacing.regular + }, + heading: { + color: font.colorTitle + }, + icon: { + size: font.sizeLarge, + color: font.colorTitle + } + }, + groupContent: { + paddingTop: spacing.small, + paddingBottom: spacing.large, + paddingHorizontal: spacing.regular + } +}; +// +// Badge Styles +export const badge = { + fontWeight: font.weightNormal, + borderRadius: border.radiusLarge, + paddingVertical: spacing.smaller, + paddingHorizontal: spacing.small, + default: { + color: contrast.higher, + backgroundColor: contrast.lowest + }, + primary: { + color: brand.primary, + backgroundColor: brand.primaryLight + }, + success: { + color: brand.success, + backgroundColor: brand.successLight + }, + warning: { + color: brand.warning, + backgroundColor: brand.warningLight + }, + danger: { + color: brand.danger, + backgroundColor: brand.dangerLight + } +}; +// +// Tabcontainer Styles +export const tabContainer = { + tabBar: { + pressColor: contrast.lower, + backgroundColor: brand.primary + }, + tab: { + paddingVertical: 12 + }, + indicator: { + backgroundColor: fontDefaults.colorTitleLight, + height: Platform.select({ ios: 2, android: 2 }) + }, + label: { + color: fontDefaults.colorTitleLight, + fontSize: font.size, + fontWeight: font.weightSemiBold, + textTransform: "capitalize" + }, + activeLabel: { + color: fontDefaults.colorTitleLight, + fontSize: font.size, + fontWeight: font.weightSemiBold, + textTransform: "capitalize" + }, + badgeContainer: { + borderRadius: border.radiusLargest, + backgroundColor: badge.default.backgroundColor, + paddingVertical: spacing.smallest, + paddingHorizontal: spacing.small, + marginLeft: 8 + }, + badgeCaption: { + fontSize: font.size, + color: badge.default.color, + fontWeight: badge.fontWeight + } +}; +// +// ListView Styles +export const listView = { + listItemDisabled: { + opacity: 0.6 + }, + border: { + color: border.color, + width: border.width + } +}; +// +// Layoutgrid Styles +export const layoutGrid = { + gutterSize: 16 +}; +// +// +// Floating Action Button Styles +export const floatingActionButton = { + container: { + margin: 30 + }, + button: { + size: 50, + rippleColor: contrast.lowest, + borderColor: brand.primary, + backgroundColor: brand.primary + }, + buttonIcon: { + size: font.sizeLarge, + color: contrast.lowest + }, + secondaryButton: { + size: 30, + backgroundColor: background.secondary + }, + secondaryButtonIcon: { + size: font.sizeSmall, + color: contrast.high + }, + secondaryButtonCaption: { + color: contrast.high, + fontSize: font.sizeSmall + }, + secondaryButtonCaptionContainer: { + backgroundColor: background.primary, + borderColor: background.primary + } +}; +// +// Intro Screen Styles +export const introScreen = { + fullscreenContainer: { + backgroundColor: background.primary + }, + popupContainer: { + paddingVertical: 150, + paddingHorizontal: 50, + backgroundColor: "rgba(0, 0, 0, 0.5)" + }, + pagination: { + text: { + color: font.colorTitle, + fontSize: font.size + }, + dotStyle: { + size: spacing.small, + backgroundColor: contrast.lower + }, + activeDotStyle: { + size: spacing.small, + backgroundColor: font.colorTitle + } + }, + button: { + icon: { + color: font.colorTitle, + size: button.icon.size + }, + caption: { + color: font.colorTitle, + fontSize: button.caption.fontSize, + fontWeight: font.weightBold, + textTransform: "uppercase", + paddingHorizontal: spacing.smallest + } + }, + buttonPaginationAbove: { + container: { + paddingVertical: spacing.regular, + backgroundColor: button.primary.backgroundColor + } + } +}; +// +// List View Swipe Styles +export const listViewSwipe = { + leftAction: { + panelSize: 160, + panelSizeSmall: 80, + panelSizeLarge: 240, + backgroundColor: background.primary + }, + rightAction: { + panelSize: 160, + panelSizeSmall: 80, + panelSizeLarge: 240, + backgroundColor: background.primary + } +}; +// +// Progress Bar Styles +export const progressBar = { + bar: { + height: 8, + heightSmall: 4, + heightLarge: 12, + backgroundColor: contrast.lowest + }, + fill: { + backgroundColor: brand.primary + } +}; +// +// Progress Circle Styles +export const progressCircle = { + circle: { + size: 64 + }, + fill: { + width: 4, + lineCapRounded: true, + backgroundColor: brand.primary + }, + text: { + color: contrast.regular, + fontSize: font.size, + fontWeight: font.weightSemiBold + } +}; +// +// Rating Styles +export const rating = { + containerDisabled: { + opacity: 0.5 + }, + icon: { + size: 24, + color: contrast.lower, + selectedColor: brand.warning + } +}; +// +// (Range)Slider styles +export const slider = { + track: { + height: 4, + backgroundColor: contrast.lowest + }, + trackDisabled: { + backgroundColor: contrast.lower, + opacity: 0.4 + }, + highlight: { + backgroundColor: brand.primary + }, + highlightDisabled: { + backgroundColor: brand.primary + }, + marker: { + size: 24, + borderColor: contrast.lowest, + backgroundColor: background.secondary + }, + markerActive: { + size: 32 + }, + markerDisabled: { + size: 24, + borderColor: contrast.lowest, + backgroundColor: background.secondary + } +}; +// Radio buttons styles +export const radioButtons = { + labelTextStyle: { + color: font.colorTitle, + fontSize: font.sizeSmall, + lineHeight: font.lineHeightSmall, + marginBottom: spacing.small + }, + radioButtonItemContainerStyle: { + marginBottom: spacing.small + }, + radioButtonItemContainerDisabledStyle: { + opacity: 0.5 + }, + radioButtonItemContainerHorizontalStyle: { + marginEnd: spacing.small + }, + circularButtonStyle: { + width: 16, + height: 16, + borderRadius: 8, + borderColor: border.color, + marginEnd: spacing.smaller + }, + activeButtonStyle: { + width: 8, + height: 8, + borderRadius: 4, + backgroundColor: brand.primary + }, + radioButtonItemTitleStyle: { + color: font.colorTitle, + fontSize: font.sizeSmall, + lineHeight: font.lineHeightSmall + }, + validationMessage: { + color: brand.danger, + fontSize: font.sizeSmall + } +}; +// +// Background gradient style +export const backgroundGradient = { + container: {}, + angle: 0, + opacity: 100 +}; +// column chart styles +export const columnChart = { + container: {}, + errorMessage: { + fontFamily: font.family, + fontSize: font.sizeSmall, + fontWeight: font.weightNormal + }, + chart: {}, + grid: { + lineColor: border.color + }, + xAxis: { + color: font.colorTitle, + fontFamily: font.family, + fontSize: font.sizeSmall, + fontWeight: font.weightNormal, + label: { + color: font.colorParagraph, + alignSelf: "center", + marginHorizontal: 0, + marginVertical: 8, + fontFamily: font.family, + fontSize: font.sizeSmall, + fontWeight: font.weightNormal + }, + lineColor: border.color + }, + yAxis: { + color: font.colorTitle, + fontFamily: font.family, + fontSize: font.sizeSmall, + fontWeight: font.weightNormal, + label: { + color: font.colorParagraph, + marginHorizontal: 0, + marginVertical: 8, + fontFamily: font.family, + fontSize: font.sizeSmall, + fontWeight: font.weightNormal + }, + lineColor: border.color + }, + columns: { + columnColorPalette: Object.entries(brand) + .reduce((accumulator, [key, value]) => (key.endsWith("Light") ? accumulator : [...accumulator, value]), []) + .join(";"), + columnsOffset: 20, + customColumnStyles: { + your_static_or_dynamic_attribute_value: { + column: {}, + label: {} + } + } + }, + legend: { + container: { + justifyContent: "flex-start", + marginHorizontal: 0, + marginVertical: spacing.small + }, + item: { + padding: 0, + paddingRight: spacing.regular + }, + indicator: { + marginRight: spacing.small + }, + label: { + color: font.colorTitle, + fontFamily: font.family, + fontSize: font.sizeSmall, + fontWeight: font.weightNormal + } + } +}; +// TODO add bar chart styles +// Gallery style +export const gallery = { + container: {}, + emptyPlaceholder: {}, + firstItem: {}, + lastItem: {}, + list: {}, + listItem: { flexGrow: 1 }, + loadMoreButtonContainer: { + alignSelf: "stretch" + }, + loadMoreButtonPressableContainer: { + // Ripplecolor and all ViewStyle properties are allowed + borderWidth: 1, + borderStyle: "solid", + rippleColor: button.container.rippleColor, + borderColor: button.primary.borderColor, + backgroundColor: button.primary.backgroundColor, + alignItems: "center", + justifyContent: "center", + borderRadius: button.container.borderRadius, + minWidth: button.container.minWidth, + minHeight: button.container.minHeight, + paddingVertical: button.container.paddingVertical, + paddingHorizontal: button.container.paddingHorizontal + }, + loadMoreButtonCaption: { + // All TextStyle properties are allowed + color: button.primary.color, + fontSize: button.caption.fontSize, + fontFamily: font.family, + fontWeight: button.caption.fontWeight, + lineHeight: font.lineHeight + } +}; +// Gallery text filter style +export const galleryTextFilter = { + textInputContainer: { + flexDirection: "row", + justifyContent: "space-between", + borderWidth: input.input.borderWidth, + borderColor: input.input.borderColor, + borderRadius: input.input.borderRadius, + paddingEnd: 8 + }, + textInputContainerFocused: { + borderColor: brand.primary + }, + textInput: { + height: 40, + marginStart: spacing.regular, + width: "90%", + color: input.input.color, + backgroundColor: input.input.backgroundColor, + selectionColor: input.input.selectionColor, + placeholderTextColor: input.input.placeholderTextColor + }, + textInputClearIcon: { + justifyContent: "center", + alignContent: "center" + } +}; diff --git a/theme/native/exclusion-variables.js b/theme/native/exclusion-variables.js new file mode 100644 index 0000000..dcb0cdd --- /dev/null +++ b/theme/native/exclusion-variables.js @@ -0,0 +1,124 @@ +// == Variables to exclude files +// ## Reduce the amount of files imported from the Atlas_Core module +// -------------------------------------------------------------------------------------------------------------------// +// Accordion +export const excludeAccordion = false; +export const excludeAccordionHelpers = false; +// Activity Indicator +export const excludeActivityIndicator = false; +export const excludeActivityIndicatorHelpers = false; +// Animation +export const excludeAnimation = false; +// Background Image +export const excludeBackgroundImage = false; +// Badge +export const excludeBadge = false; +export const excludeBadgeHelpers = false; +// Bottom Sheet +export const excludeBottomSheet = false; +// Buttons +export const excludeButtons = false; +export const excludeButtonsHelpers = false; +// Carousel +export const excludeCarousel = false; +// CheckBox +export const excludeCheckBox = false; +// Color Picker +export const excludeColorPicker = false; +// Container +export const excludeContainer = false; +// Date Picker +export const excludeDatePicker = false; +// Drop Down +export const excludeDropDown = false; +// Feedback +export const excludeFeedback = false; +// Floating Action Button +export const excludeFAB = false; +export const excludeFABHelpers = false; +// Image +export const excludeImage = false; +export const excludeImageHelpers = false; +// Intro Screen +export const excludeIntroScreen = false; +export const excludeIntroScreenHelpers = false; +// Layout Grid +export const excludeLayoutGrid = false; +// Line Chart +export const excludeLineChart = false; +export const excludeLineChartHelpers = false; +// Bar Chart +export const excludeBarChart = false; +export const excludeBarChartHelpers = false; +// List View +export const excludeListView = false; +export const excludeListViewHelpers = false; +// List View Swipe +export const excludeListViewSwipe = false; +export const excludeListViewSwipeHelpers = false; +// Maps +export const excludeMaps = false; +export const excludeMapsHelpers = false; +// Page Title +export const excludePageTitle = false; +// Pie Doughnut Chart +export const excludePieDoughnutChart = false; +// Progress Bar +export const excludeProgressBar = false; +export const excludeProgressBarHelpers = false; +// Progress Circle +export const excludeProgressCircle = false; +export const excludeProgressCircleHelpers = false; +// Pop Up Menu +export const excludePopUpMenu = false; +// QR Code +export const excludeQRCode = false; +// Range Slider +export const excludeRangeSlider = false; +export const excludeRangeSliderHelpers = false; +// Rating +export const excludeRating = false; +// Reference Selector +export const excludeReferenceSelector = false; +// Safe Area View +export const excludeSafeAreaView = false; +// Slider +export const excludeSlider = false; +export const excludeSliderHelpers = false; +// Switch +export const excludeSwitch = false; +export const excludeSwitchHelpers = false; +// Tab Container +export const excludeTabContainer = false; +export const excludeTabContainerHelpers = false; +// Text Area +export const excludeTextArea = false; +// Text Box +export const excludeTextBox = false; +export const excludeTextBoxHelpers = false; +// Toggle Buttons +export const excludeToggleButtons = false; +// Typography +export const excludeTypography = false; +export const excludeTypographyHelpers = false; +// VideoPlayer +export const excludeVideoPlayer = false; +// Web View +export const excludeWebView = false; +// Helper Classes +export const excludeHelpers = false; +// Radio Buttons +export const excludeRadioButtons = false; +export const excludeRadioButtonsHelper = false; +// Background Gradient +export const excludeBackgroundGradient = false; +export const excludeBackgroundGradientHelper = false; +// Column Chart +export const excludeColumnChart = false; +export const excludeColumnChartHelper = false; +// Gallery +export const excludeGallery = false; +export const excludeGalleryHelper = false; +// Gallery Text Filter +export const excludeGalleryTextFilter = false; +export const excludeGalleryTextFilterHelper = false; diff --git a/theme/native/main.js b/theme/native/main.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/theme/native/main.js @@ -0,0 +1 @@ +export {}; diff --git a/theme/scripts/bump-major.js b/theme/scripts/bump-major.js deleted file mode 100644 index 2bb584e..0000000 --- a/theme/scripts/bump-major.js +++ /dev/null @@ -1,12 +0,0 @@ -const { getVersionFilePaths, readVersionFiles } = require("./lib/readFile.js"); -const { writeVersionFiles } = require("./lib/writeFile.js"); - -(() => { - const paths = getVersionFilePaths(); - const files = readVersionFiles(paths); - const versionNumbers = files.pkg.version.split("."); - const majorNumber = Number(versionNumbers[1]) + 1; - const majorVersion = majorNumber + "." + 0 + "." + 0; - files.pkg.version = files.manifest.ts.version = files.manifest.js.version = files.manifest.sass.version = majorVersion; - writeVersionFiles(files, paths); -})(); diff --git a/theme/scripts/bump-minor.js b/theme/scripts/bump-minor.js deleted file mode 100644 index e4e9ac3..0000000 --- a/theme/scripts/bump-minor.js +++ /dev/null @@ -1,12 +0,0 @@ -const { getVersionFilePaths, readVersionFiles } = require("./lib/readFile.js"); -const { writeVersionFiles } = require("./lib/writeFile.js"); - -(() => { - const paths = getVersionFilePaths(); - const files = readVersionFiles(paths); - const versionNumbers = files.pkg.version.split("."); - const minorNumber = Number(versionNumbers[1]) + 1; - const minorVersion = versionNumbers[0] + "." + minorNumber + "." + 0; - files.pkg.version = files.manifest.ts.version = files.manifest.js.version = files.manifest.sass.version = minorVersion; - writeVersionFiles(files, paths); -})(); diff --git a/theme/scripts/bump-patch.js b/theme/scripts/bump-patch.js deleted file mode 100644 index 52e7baa..0000000 --- a/theme/scripts/bump-patch.js +++ /dev/null @@ -1,12 +0,0 @@ -const { getVersionFilePaths, readVersionFiles } = require("./lib/readFile.js"); -const { writeVersionFiles } = require("./lib/writeFile.js"); - -(() => { - const paths = getVersionFilePaths(); - const files = readVersionFiles(paths); - const versionNumbers = files.pkg.version.split("."); - const patchedNumber = Number(versionNumbers[2]) + 1; - const patchedVersion = versionNumbers[0] + "." + versionNumbers[1] + "." + patchedNumber; - files.pkg.version = files.manifest.ts.version = files.manifest.js.version = files.manifest.sass.version = patchedVersion; - writeVersionFiles(files, paths); -})(); diff --git a/theme/scripts/lib/readFile.js b/theme/scripts/lib/readFile.js deleted file mode 100644 index 50f0a8c..0000000 --- a/theme/scripts/lib/readFile.js +++ /dev/null @@ -1,20 +0,0 @@ -const path = require("path"); - -module.exports.getVersionFilePaths = () => ({ - pkg: path.join(process.cwd(), "package.json"), - manifest: { - ts: path.join(process.cwd(), "styles", "native", "ts", "core", "manifest.json"), - js: path.join(process.cwd(), "styles", "native", "js", "core", "manifest.json"), - sass: path.join(process.cwd(), "styles", "web", "sass", "core", "manifest.json"), - }, -}); - -module.exports.readVersionFiles = paths => ({ - pkg: require(paths.pkg), - manifest: { - ts: require(paths.manifest.ts), - js: require(paths.manifest.js), - sass: require(paths.manifest.sass), - }, -}); - diff --git a/theme/scripts/lib/writeFile.js b/theme/scripts/lib/writeFile.js deleted file mode 100644 index fb35779..0000000 --- a/theme/scripts/lib/writeFile.js +++ /dev/null @@ -1,8 +0,0 @@ -const fs = require("fs"); - -module.exports.writeVersionFiles = (files, paths) => { - fs.writeFileSync(paths.pkg, JSON.stringify(files.pkg, null, 4)); - fs.writeFileSync(paths.manifest.js, JSON.stringify(files.manifest.js, null, 4)); - fs.writeFileSync(paths.manifest.ts, JSON.stringify(files.manifest.ts, null, 4)); - fs.writeFileSync(paths.manifest.sass, JSON.stringify(files.manifest.sass, null, 4)); -}; diff --git a/theme/settings-native.json b/theme/settings-native.json deleted file mode 100644 index d31c9b1..0000000 --- a/theme/settings-native.json +++ /dev/null @@ -1,1764 +0,0 @@ -{ - "designProperties": { - "Document": [ - { - "name": "Spacing top", - "type": "Dropdown", - "description": "The spacing above this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerTopSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerTopMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerTopLarger" - } - ] - }, - { - "name": "Spacing bottom", - "type": "Dropdown", - "description": "The spacing below this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerBottomSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerBottomMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerBottomLarger" - } - ] - }, - { - "name": "Spacing left", - "type": "Dropdown", - "description": "The spacing to the left of this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerLeftSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerLeftMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerLeftLarger" - } - ] - }, - { - "name": "Spacing right", - "type": "Dropdown", - "description": "The spacing to the right of this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerRightSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerRightMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerRightLarger" - } - ] - }, - { - "name": "Background color", - "type": "Dropdown", - "description": "Change the background color of the container.", - "options": [ - { - "name": "Primary", - "class": "backgroundPrimary" - }, - { - "name": "Secondary", - "class": "backgroundSecondary" - }, - { - "name": "Brand Primary", - "class": "backgroundBrandPrimary" - }, - { - "name": "Brand Success", - "class": "backgroundBrandSuccess" - }, - { - "name": "Brand Warning", - "class": "backgroundBrandWarning" - }, - { - "name": "Brand Danger", - "class": "backgroundBrandDanger" - } - ] - }, - { - "name": "Render children horizontal", - "type": "Toggle", - "description": "Determines the direction in which children are rendered.", - "class": "flexRow" - }, - { - "name": "Wrap children", - "type": "Toggle", - "description": "Determines if children can flow into multiple lines if they hit the end of the container.", - "class": "flexWrap" - }, - { - "name": "Align children", - "type": "Dropdown", - "description": "Align children in the opposite direction.", - "options": [ - { - "name": "Start", - "class": "alignChildrenStart" - }, - { - "name": "Center", - "class": "alignChildrenCenter" - }, - { - "name": "End", - "class": "alignChildrenEnd" - }, - { - "name": "Stretch", - "class": "alignChildrenStretch" - }, - { - "name": "Baseline", - "class": "alignChildrenBaseline" - } - ] - }, - { - "name": "Justify content", - "type": "Dropdown", - "description": "Justify content in the active direction.", - "options": [ - { - "name": "Start", - "class": "justifyContentStart" - }, - { - "name": "Center", - "class": "justifyContentCenter" - }, - { - "name": "End", - "class": "justifyContentEnd" - }, - { - "name": "Space between", - "class": "justifyContentSpaceBetween" - }, - { - "name": "Space around", - "class": "justifyContentSpaceAround" - }, - { - "name": "Space evenly", - "class": "justifyContentSpaceEvenly" - } - ] - } - ], - "Page": [ - { - "name": "Hide header bottom border", - "type": "Toggle", - "description": "Hide the bottom border (iOS) and elevation (Android) of the header.", - "class": "pageHeaderBorderNone" - } - ], - "Widget": [ - { - "name": "Spacing top", - "type": "Dropdown", - "description": "The spacing above this element.", - "options": [ - { - "name": "Smallest", - "class": "spacingOuterTopSmallest" - }, - { - "name": "Small", - "class": "spacingOuterTopSmaller" - }, - { - "name": "Medium", - "class": "spacingOuterTopMedium" - }, - { - "name": "Large", - "class": "spacingOuterTopLarger" - }, - { - "name": "Largest", - "class": "spacingOuterTopLargest" - } - ] - }, - { - "name": "Spacing bottom", - "type": "Dropdown", - "description": "The spacing below this element.", - "options": [ - { - "name": "Smallest", - "class": "spacingOuterBottomSmallest" - }, - { - "name": "Small", - "class": "spacingOuterBottomSmaller" - }, - { - "name": "Medium", - "class": "spacingOuterBottomMedium" - }, - { - "name": "Large", - "class": "spacingOuterBottomLarger" - }, - { - "name": "Largest", - "class": "spacingOuterBottomLargest" - } - ] - }, - { - "name": "Spacing left", - "type": "Dropdown", - "description": "The spacing to the left of this element.", - "options": [ - { - "name": "Smallest", - "class": "spacingOuterLeftSmallest" - }, - { - "name": "Small", - "class": "spacingOuterLeftSmaller" - }, - { - "name": "Medium", - "class": "spacingOuterLeftMedium" - }, - { - "name": "Large", - "class": "spacingOuterLeftLarger" - }, - { - "name": "Largest", - "class": "spacingOuterLeftLargest" - } - ] - }, - { - "name": "Spacing right", - "type": "Dropdown", - "description": "The spacing to the right of this element.", - "options": [ - { - "name": "Smallest", - "class": "spacingOuterRightSmallest" - }, - { - "name": "Small", - "class": "spacingOuterRightSmaller" - }, - { - "name": "Medium", - "class": "spacingOuterRightMedium" - }, - { - "name": "Large", - "class": "spacingOuterRightLarger" - }, - { - "name": "Largest", - "class": "spacingOuterRightLargest" - } - ] - } - ], - "DivContainer": [ - { - "name": "Spacing top", - "type": "Dropdown", - "description": "The spacing above this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerTopSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerTopMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerTopLarger" - }, - { - "name": "Outer small", - "class": "spacingOuterTopSmaller" - }, - { - "name": "Outer medium", - "class": "spacingOuterTopMedium" - }, - { - "name": "Outer large", - "class": "spacingOuterTopLarger" - } - ] - }, - { - "name": "Spacing bottom", - "type": "Dropdown", - "description": "The spacing below this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerBottomSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerBottomMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerBottomLarger" - }, - { - "name": "Outer small", - "class": "spacingOuterBottomSmaller" - }, - { - "name": "Outer medium", - "class": "spacingOuterBottomMedium" - }, - { - "name": "Outer large", - "class": "spacingOuterBottomLarger" - } - ] - }, - { - "name": "Spacing left", - "type": "Dropdown", - "description": "The spacing to the left of this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerLeftSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerLeftMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerLeftLarger" - }, - { - "name": "Outer small", - "class": "spacingOuterLeftSmaller" - }, - { - "name": "Outer medium", - "class": "spacingOuterLeftMedium" - }, - { - "name": "Outer large", - "class": "spacingOuterLeftLarger" - } - ] - }, - { - "name": "Spacing right", - "type": "Dropdown", - "description": "The spacing to the right of this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerRightSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerRightMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerRightLarger" - }, - { - "name": "Outer small", - "class": "spacingOuterRightSmaller" - }, - { - "name": "Outer medium", - "class": "spacingOuterRightMedium" - }, - { - "name": "Outer large", - "class": "spacingOuterRightLarger" - } - ] - }, - { - "name": "Size", - "type": "Dropdown", - "description": "Change the size of the widget relative to its sibling(s).", - "options": [ - { - "name": "Maximum space", - "class": "flexMain" - }, - { - "name": "Minimum space", - "class": "flexItem" - } - ] - }, - { - "name": "Background color", - "type": "Dropdown", - "description": "Change the background color of the container.", - "options": [ - { - "name": "Primary", - "class": "backgroundPrimary" - }, - { - "name": "Secondary", - "class": "backgroundSecondary" - }, - { - "name": "Brand Primary", - "class": "backgroundBrandPrimary" - }, - { - "name": "Brand Success", - "class": "backgroundBrandSuccess" - }, - { - "name": "Brand Warning", - "class": "backgroundBrandWarning" - }, - { - "name": "Brand Danger", - "class": "backgroundBrandDanger" - } - ] - }, - { - "name": "Align", - "type": "Dropdown", - "description": "Aligns the element. This overrides 'Align children' of the parent.", - "options": [ - { - "name": "Start", - "class": "alignSelfStart" - }, - { - "name": "Center", - "class": "alignSelfCenter" - }, - { - "name": "End", - "class": "alignSelfEnd" - }, - { - "name": "Stretch", - "class": "alignSelfStretch" - }, - { - "name": "Baseline", - "class": "alignSelfBaseline" - } - ] - }, - { - "name": "Render children horizontal", - "type": "Toggle", - "description": "Determines the direction in which children are rendered.", - "class": "flexRow" - }, - { - "name": "Wrap children", - "type": "Toggle", - "description": "Determines if children can flow into multiple lines if they hit the end of the container.", - "class": "flexWrap" - }, - { - "name": "Align children", - "type": "Dropdown", - "description": "Align children in the opposite direction.", - "options": [ - { - "name": "Start", - "class": "alignChildrenStart" - }, - { - "name": "Center", - "class": "alignChildrenCenter" - }, - { - "name": "End", - "class": "alignChildrenEnd" - }, - { - "name": "Stretch", - "class": "alignChildrenStretch" - }, - { - "name": "Baseline", - "class": "alignChildrenBaseline" - } - ] - }, - { - "name": "Justify content", - "type": "Dropdown", - "description": "Justify content in the active direction.", - "options": [ - { - "name": "Start", - "class": "justifyContentStart" - }, - { - "name": "Center", - "class": "justifyContentCenter" - }, - { - "name": "End", - "class": "justifyContentEnd" - }, - { - "name": "Space between", - "class": "justifyContentSpaceBetween" - }, - { - "name": "Space around", - "class": "justifyContentSpaceAround" - }, - { - "name": "Space evenly", - "class": "justifyContentSpaceEvenly" - } - ] - } - ], - "ScrollContainer": [ - { - "name": "Spacing top", - "type": "Dropdown", - "description": "The spacing above this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerTopSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerTopMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerTopLarger" - }, - { - "name": "Outer small", - "class": "spacingOuterTopSmaller" - }, - { - "name": "Outer medium", - "class": "spacingOuterTopMedium" - }, - { - "name": "Outer large", - "class": "spacingOuterTopLarger" - } - ] - }, - { - "name": "Spacing bottom", - "type": "Dropdown", - "description": "The spacing below this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerBottomSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerBottomMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerBottomLarger" - }, - { - "name": "Outer small", - "class": "spacingOuterBottomSmaller" - }, - { - "name": "Outer medium", - "class": "spacingOuterBottomMedium" - }, - { - "name": "Outer large", - "class": "spacingOuterBottomLarger" - } - ] - }, - { - "name": "Spacing left", - "type": "Dropdown", - "description": "The spacing to the left of this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerLeftSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerLeftMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerLeftLarger" - }, - { - "name": "Outer small", - "class": "spacingOuterLeftSmaller" - }, - { - "name": "Outer medium", - "class": "spacingOuterLeftMedium" - }, - { - "name": "Outer large", - "class": "spacingOuterLeftLarger" - } - ] - }, - { - "name": "Spacing right", - "type": "Dropdown", - "description": "The spacing to the right of this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerRightSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerRightMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerRightLarger" - }, - { - "name": "Outer small", - "class": "spacingOuterRightSmaller" - }, - { - "name": "Outer medium", - "class": "spacingOuterRightMedium" - }, - { - "name": "Outer large", - "class": "spacingOuterRightLarger" - } - ] - }, - { - "name": "Size", - "type": "Dropdown", - "description": "Change the size of the widget relative to its sibling(s).", - "options": [ - { - "name": "Maximum space", - "class": "flexMain" - }, - { - "name": "Minimum space", - "class": "flexItem" - } - ] - }, - { - "name": "Background color", - "type": "Dropdown", - "description": "Change the background color of the container.", - "options": [ - { - "name": "Primary", - "class": "backgroundPrimary" - }, - { - "name": "Secondary", - "class": "backgroundSecondary" - }, - { - "name": "Brand Primary", - "class": "backgroundBrandPrimary" - }, - { - "name": "Brand Success", - "class": "backgroundBrandSuccess" - }, - { - "name": "Brand Warning", - "class": "backgroundBrandWarning" - }, - { - "name": "Brand Danger", - "class": "backgroundBrandDanger" - } - ] - }, - { - "name": "Align", - "type": "Dropdown", - "description": "Aligns the element. This overrides 'Align children' of the parent.", - "options": [ - { - "name": "Start", - "class": "alignSelfStart" - }, - { - "name": "Center", - "class": "alignSelfCenter" - }, - { - "name": "End", - "class": "alignSelfEnd" - }, - { - "name": "Stretch", - "class": "alignSelfStretch" - }, - { - "name": "Baseline", - "class": "alignSelfBaseline" - } - ] - }, - { - "name": "Render children horizontal", - "type": "Toggle", - "description": "Determines the direction in which children are rendered.", - "class": "flexRow" - }, - { - "name": "Wrap children", - "type": "Toggle", - "description": "Determines if children can flow into multiple lines if they hit the end of the container.", - "class": "flexWrap" - }, - { - "name": "Align children", - "type": "Dropdown", - "description": "Align children in the opposite direction.", - "options": [ - { - "name": "Start", - "class": "alignChildrenStart" - }, - { - "name": "Center", - "class": "alignChildrenCenter" - }, - { - "name": "End", - "class": "alignChildrenEnd" - }, - { - "name": "Stretch", - "class": "alignChildrenStretch" - }, - { - "name": "Baseline", - "class": "alignChildrenBaseline" - } - ] - }, - { - "name": "Justify content", - "type": "Dropdown", - "description": "Justify content in the active direction.", - "options": [ - { - "name": "Start", - "class": "justifyContentStart" - }, - { - "name": "Center", - "class": "justifyContentCenter" - }, - { - "name": "End", - "class": "justifyContentEnd" - }, - { - "name": "Space between", - "class": "justifyContentSpaceBetween" - }, - { - "name": "Space around", - "class": "justifyContentSpaceAround" - } - ] - } - ], - "ActionButton": [ - { - "name": "Button style", - "type": "Dropdown", - "description": "Style of the button", - "options": [ - { - "name": "Secondary", - "class": "btnSecondary" - }, - { - "name": "Success", - "class": "btnSuccess" - }, - { - "name": "Warning", - "class": "btnWarning" - }, - { - "name": "Danger", - "class": "btnDanger" - }, - { - "name": "Inversed", - "class": "btnPrimaryInversed" - } - ] - }, - { - "name": "Align", - "type": "Dropdown", - "description": "Aligns the element. This overrides 'Align children' of the parent.", - "options": [ - { - "name": "Start", - "class": "alignSelfStart" - }, - { - "name": "Center", - "class": "alignSelfCenter" - }, - { - "name": "End", - "class": "alignSelfEnd" - }, - { - "name": "Stretch", - "class": "alignSelfStretch" - }, - { - "name": "Baseline", - "class": "alignSelfBaseline" - } - ] - } - ], - "Image": [ - { - "name": "Avatar", - "type": "Toggle", - "description": "Create an avatar image.", - "class": "avatar" - } - ], - "DynamicImage": [ - { - "name": "Avatar", - "type": "Toggle", - "description": "Create an avatar image.", - "class": "avatar" - } - ], - "DynamicText": [ - { - "name": "Color", - "type": "Dropdown", - "description": "Change the color of text.", - "options": [ - { - "name": "Brand primary", - "class": "textPrimary" - }, - { - "name": "Brand success", - "class": "textSuccess" - }, - { - "name": "Brand warning", - "class": "textWarning" - }, - { - "name": "Brand danger", - "class": "textDanger" - }, - { - "name": "White", - "class": "textWhite" - }, - { - "name": "Contrast lowest", - "class": "textContrastLowest" - }, - { - "name": "Contrast lower", - "class": "textContrastLower" - }, - { - "name": "Contrast low", - "class": "textContrastLow" - }, - { - "name": "Contrast default", - "class": "textContrastDefault" - }, - { - "name": "Contrast high", - "class": "textContrastHigh" - }, - { - "name": "Contrast higher", - "class": "textContrastHigher" - }, - { - "name": "Contrast highest", - "class": "textContrastHighest" - } - ] - }, - { - "name": "Size", - "type": "Dropdown", - "description": "Make the text smaller or larger.", - "options": [ - { - "name": "Small", - "class": "textSmall" - }, - { - "name": "Large", - "class": "textLarge" - } - ] - }, - { - "name": "Weight", - "type": "Dropdown", - "description": "Emphasize the text with a heavier or lighter font weight", - "options": [ - { - "name": "Light", - "class": "textLight" - }, - { - "name": "Default", - "class": "textNormal" - }, - { - "name": "Semibold", - "class": "textSemiBold" - }, - { - "name": "Bold", - "class": "textBold" - } - ] - }, - { - "name": "Alignment", - "type": "Dropdown", - "description": "Align the text.", - "options": [ - { - "name": "Left", - "class": "textLeft" - }, - { - "name": "Center", - "class": "textCenter" - }, - { - "name": "Right", - "class": "textRight" - } - ] - } - ], - "ListView": [ - { - "name": "List item divider", - "type": "Dropdown", - "description": "Give each list item a border.", - "options": [ - { - "name": "Vertical", - "class": "listItemBorderBottom" - }, - { - "name": "Horizontal", - "class": "listItemBorderRight" - } - ] - } - ], - "TabContainer": [ - { - "name": "Tab bar scroll", - "type": "Toggle", - "description": "Enable horizontal scroll for the tab bar.", - "class": "tabContainerScroll" - } - ], - "TextBox": [ - { - "name": "Capitalize", - "type": "Dropdown", - "description": "Change the capitalization of the input.", - "options": [ - { - "name": "None", - "class": "textInputCapitalizeNone" - }, - { - "name": "Characters", - "class": "textInputCapitalizeCharacters" - }, - { - "name": "Words", - "class": "textInputCapitalizeWords" - }, - { - "name": "Sentences", - "class": "textInputCapitalizeSentences" - } - ] - } - ], - "TextArea": [ - { - "name": "Capitalize", - "type": "Dropdown", - "description": "Change the capitalization of the input.", - "options": [ - { - "name": "None", - "class": "textInputCapitalizeNone" - }, - { - "name": "Characters", - "class": "textInputCapitalizeCharacters" - }, - { - "name": "Words", - "class": "textInputCapitalizeWords" - }, - { - "name": "Sentences", - "class": "textInputCapitalizeSentences" - } - ] - } - ], - "com.mendix.widget.native.activityindicator.ActivityIndicator": [ - { - "name": "Activity indicator style", - "type": "Dropdown", - "description": "Style of the Activity indicator.", - "options": [ - { - "name": "Success", - "class": "activityIndicatorSuccess" - }, - { - "name": "Warning", - "class": "activityIndicatorWarning" - }, - { - "name": "Danger", - "class": "activityIndicatorDanger" - } - ] - } - ], - "com.mendix.widget.native.animation.Animation": [ - { - "name": "Spacing top", - "type": "Dropdown", - "description": "The spacing above this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerTopSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerTopMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerTopLarger" - }, - { - "name": "Outer small", - "class": "spacingOuterTopSmaller" - }, - { - "name": "Outer medium", - "class": "spacingOuterTopMedium" - }, - { - "name": "Outer large", - "class": "spacingOuterTopLarger" - } - ] - }, - { - "name": "Spacing bottom", - "type": "Dropdown", - "description": "The spacing below this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerBottomSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerBottomMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerBottomLarger" - }, - { - "name": "Outer small", - "class": "spacingOuterBottomSmaller" - }, - { - "name": "Outer medium", - "class": "spacingOuterBottomMedium" - }, - { - "name": "Outer large", - "class": "spacingOuterBottomLarger" - } - ] - }, - { - "name": "Spacing left", - "type": "Dropdown", - "description": "The spacing to the left of this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerLeftSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerLeftMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerLeftLarger" - }, - { - "name": "Outer small", - "class": "spacingOuterLeftSmaller" - }, - { - "name": "Outer medium", - "class": "spacingOuterLeftMedium" - }, - { - "name": "Outer large", - "class": "spacingOuterLeftLarger" - } - ] - }, - { - "name": "Spacing right", - "type": "Dropdown", - "description": "The spacing to the right of this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerRightSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerRightMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerRightLarger" - }, - { - "name": "Outer small", - "class": "spacingOuterRightSmaller" - }, - { - "name": "Outer medium", - "class": "spacingOuterRightMedium" - }, - { - "name": "Outer large", - "class": "spacingOuterRightLarger" - } - ] - }, - { - "name": "Size", - "type": "Dropdown", - "description": "Change the size of the widget relative to its sibling(s).", - "options": [ - { - "name": "Maximum space", - "class": "flexMain" - }, - { - "name": "Minimum space", - "class": "flexItem" - } - ] - }, - { - "name": "Background color", - "type": "Dropdown", - "description": "Change the background color of the container.", - "options": [ - { - "name": "Primary", - "class": "backgroundPrimary" - }, - { - "name": "Secondary", - "class": "backgroundSecondary" - }, - { - "name": "Brand Primary", - "class": "backgroundBrandPrimary" - }, - { - "name": "Brand Success", - "class": "backgroundBrandSuccess" - }, - { - "name": "Brand Warning", - "class": "backgroundBrandWarning" - }, - { - "name": "Brand Danger", - "class": "backgroundBrandDanger" - } - ] - }, - { - "name": "Align", - "type": "Dropdown", - "description": "Aligns the element. This overrides 'Align children' of the parent.", - "options": [ - { - "name": "Stretch", - "class": "alignSelfStretch" - }, - { - "name": "Start", - "class": "alignSelfStart" - }, - { - "name": "Center", - "class": "alignSelfCenter" - }, - { - "name": "End", - "class": "alignSelfEnd" - } - ] - }, - { - "name": "Render children horizontal", - "type": "Toggle", - "description": "Determines the direction in which children are rendered.", - "class": "flexRow" - }, - { - "name": "Wrap children", - "type": "Toggle", - "description": "Determines if children can flow into multiple lines if they hit the end of the container.", - "class": "flexWrap" - }, - { - "name": "Align children", - "type": "Dropdown", - "description": "Align children in the opposite direction.", - "options": [ - { - "name": "Start", - "class": "alignChildrenStart" - }, - { - "name": "Center", - "class": "alignChildrenCenter" - }, - { - "name": "End", - "class": "alignChildrenEnd" - }, - { - "name": "Stretch", - "class": "alignChildrenStretch" - } - ] - }, - { - "name": "Justify children", - "type": "Dropdown", - "description": "Justify children in the active direction.", - "options": [ - { - "name": "Center", - "class": "justifyChildrenCenter" - }, - { - "name": "End", - "class": "justifyChildrenEnd" - }, - { - "name": "Space between", - "class": "justifyChildrenSpaceBetween" - }, - { - "name": "Space around", - "class": "justifyChildrenSpaceAround" - } - ] - } - ], - "com.mendix.widget.native.badge.Badge": [ - { - "name": "Badge style", - "type": "Dropdown", - "description": "Style of the Badge.", - "options": [ - { - "name": "Primary", - "class": "badgePrimary" - }, - { - "name": "Success", - "class": "badgeSuccess" - }, - { - "name": "Warning", - "class": "badgeWarning" - }, - { - "name": "Danger", - "class": "badgeDanger" - } - ] - } - ], - "com.mendix.widget.native.floatingactionbutton.FloatingActionButton": [ - { - "name": "Style", - "type": "Dropdown", - "description": "Style of the Floating Action Button.", - "options": [ - { - "name": "Success", - "class": "floatingActionButtonSuccess" - }, - { - "name": "Warning", - "class": "floatingActionButtonWarning" - }, - { - "name": "Danger", - "class": "floatingActionButtonDanger" - } - ] - } - ], - "com.mendix.widget.native.linechart.LineChart": [ - { - "name": "Chart size", - "type": "Dropdown", - "description": "Size of the chart.", - "options": [ - { - "name": "Square", - "class": "lineChartSquare" - }, - { - "name": "Maximum space", - "class": "lineChartMaxSpace" - } - ] - } - ], - "com.mendix.widget.native.listviewswipe.ListViewSwipe": [ - { - "name": "Panel size", - "type": "Dropdown", - "description": "Size of the left and right panel.", - "options": [ - { - "name": "Small", - "class": "listViewSwipeSmallPanels" - }, - { - "name": "Large", - "class": "listViewSwipeLargePanels" - } - ] - } - ], - "com.mendix.widget.native.maps.Maps": [ - { - "name": "Maps size", - "type": "Dropdown", - "description": "Size of the maps.", - "options": [ - { - "name": "Square", - "class": "mapsSquare" - }, - { - "name": "Maximum space", - "class": "mapsMaxSpace" - } - ] - }, - { - "name": "Maps marker style", - "type": "Dropdown", - "description": "Style of the marker.", - "options": [ - { - "name": "Success", - "class": "mapsSuccess" - }, - { - "name": "Warning", - "class": "mapsWarning" - }, - { - "name": "Danger", - "class": "mapsDanger" - } - ] - } - ], - "com.mendix.widget.native.progressbar.ProgressBar": [ - { - "name": "Progress bar style", - "type": "Dropdown", - "description": "Style of the progress bar.", - "options": [ - { - "name": "Success", - "class": "progressBarSuccess" - }, - { - "name": "Warning", - "class": "progressBarWarning" - }, - { - "name": "Danger", - "class": "progressBarDanger" - } - ] - }, - { - "name": "Progress bar size", - "type": "Dropdown", - "description": "Size of the progress bar.", - "options": [ - { - "name": "Small", - "class": "progressBarSmall" - }, - { - "name": "Large", - "class": "progressBarLarge" - } - ] - } - ], - "com.mendix.widget.native.progresscircle.ProgressCircle": [ - { - "name": "Progress circle style", - "type": "Dropdown", - "description": "Style of the progress circle.", - "options": [ - { - "name": "Success", - "class": "progressCircleSuccess" - }, - { - "name": "Warning", - "class": "progressCircleWarning" - }, - { - "name": "Danger", - "class": "progressCircleDanger" - } - ] - } - ], - "com.mendix.widget.native.rangeslider.RangeSlider": [ - { - "name": "Range Slider style", - "type": "Dropdown", - "description": "Style of the range slider.", - "options": [ - { - "name": "Success", - "class": "rangeSliderSuccess" - }, - { - "name": "Warning", - "class": "rangeSliderWarning" - }, - { - "name": "Danger", - "class": "rangeSliderDanger" - } - ] - } - ], - "com.mendix.widget.native.safeareaview.SafeAreaView": [ - { - "name": "Spacing top", - "type": "Dropdown", - "description": "The spacing above this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerTopSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerTopMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerTopLarger" - } - ] - }, - { - "name": "Spacing bottom", - "type": "Dropdown", - "description": "The spacing below this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerBottomSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerBottomMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerBottomLarger" - } - ] - }, - { - "name": "Spacing left", - "type": "Dropdown", - "description": "The spacing to the left of this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerLeftSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerLeftMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerLeftLarger" - } - ] - }, - { - "name": "Spacing right", - "type": "Dropdown", - "description": "The spacing to the right of this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerRightSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerRightMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerRightLarger" - } - ] - }, - { - "name": "Background color", - "type": "Dropdown", - "description": "Change the background color of the container.", - "options": [ - { - "name": "Primary", - "class": "backgroundPrimary" - }, - { - "name": "Secondary", - "class": "backgroundSecondary" - }, - { - "name": "Brand Primary", - "class": "backgroundBrandPrimary" - }, - { - "name": "Brand Success", - "class": "backgroundBrandSuccess" - }, - { - "name": "Brand Warning", - "class": "backgroundBrandWarning" - }, - { - "name": "Brand Danger", - "class": "backgroundBrandDanger" - } - ] - }, - { - "name": "Render children horizontal", - "type": "Toggle", - "description": "Determines the direction in which children are rendered.", - "class": "flexRow" - }, - { - "name": "Wrap children", - "type": "Toggle", - "description": "Determines if children can flow into multiple lines if they hit the end of the container.", - "class": "flexWrap" - }, - { - "name": "Align children", - "type": "Dropdown", - "description": "Align children in the opposite direction.", - "options": [ - { - "name": "Start", - "class": "alignChildrenStart" - }, - { - "name": "Center", - "class": "alignChildrenCenter" - }, - { - "name": "End", - "class": "alignChildrenEnd" - }, - { - "name": "Stretch", - "class": "alignChildrenStretch" - }, - { - "name": "Baseline", - "class": "alignChildrenBaseline" - } - ] - }, - { - "name": "Justify content", - "type": "Dropdown", - "description": "Justify content in the active direction.", - "options": [ - { - "name": "Start", - "class": "justifyContentStart" - }, - { - "name": "Center", - "class": "justifyContentCenter" - }, - { - "name": "End", - "class": "justifyContentEnd" - }, - { - "name": "Space between", - "class": "justifyContentSpaceBetween" - }, - { - "name": "Space around", - "class": "justifyContentSpaceAround" - }, - { - "name": "Space evenly", - "class": "justifyContentSpaceEvenly" - } - ] - } - ], - "com.mendix.widget.native.slider.Slider": [ - { - "name": "Slider style", - "type": "Dropdown", - "description": "Style of the slider.", - "options": [ - { - "name": "Success", - "class": "sliderSuccess" - }, - { - "name": "Warning", - "class": "sliderWarning" - }, - { - "name": "Danger", - "class": "sliderDanger" - } - ] - } - ] - } -} diff --git a/theme/settings.json b/theme/settings.json deleted file mode 100644 index f616bed..0000000 --- a/theme/settings.json +++ /dev/null @@ -1,753 +0,0 @@ -{ - "pageTemplates": "WebModeler", - "cssFiles": [ - "styles/web/css/main.css" - ], - "designProperties": { - "Widget": [ - { - "name": "Spacing top", - "type": "Dropdown", - "description": "The spacing above this element.", - "options": [ - { - "name": "None", - "class": "spacing-outer-top-none" - }, - { - "name": "Small", - "class": "spacing-outer-top" - }, - { - "name": "Medium", - "class": "spacing-outer-top-medium" - }, - { - "name": "Large", - "class": "spacing-outer-top-large" - } - ] - }, - { - "name": "Spacing bottom", - "type": "Dropdown", - "description": "The spacing below this element.", - "options": [ - { - "name": "None", - "class": "spacing-outer-bottom-none" - }, - { - "name": "Small", - "class": "spacing-outer-bottom" - }, - { - "name": "Medium", - "class": "spacing-outer-bottom-medium" - }, - { - "name": "Large", - "class": "spacing-outer-bottom-large" - } - ] - }, - { - "name": "Spacing left", - "type": "Dropdown", - "description": "The spacing to the left of this element.", - "options": [ - { - "name": "None", - "class": "spacing-outer-left-none" - }, - { - "name": "Small", - "class": "spacing-outer-left" - }, - { - "name": "Medium", - "class": "spacing-outer-left-medium" - }, - { - "name": "Large", - "class": "spacing-outer-left-large" - } - ] - }, - { - "name": "Spacing right", - "type": "Dropdown", - "description": "The spacing to the right of this element.", - "options": [ - { - "name": "None", - "class": "spacing-outer-right-none" - }, - { - "name": "Small", - "class": "spacing-outer-right" - }, - { - "name": "Medium", - "class": "spacing-outer-right-medium" - }, - { - "name": "Large", - "class": "spacing-outer-right-large" - } - ] - }, - { - "name": "Align self", - "oldNames": [ - "Align Self" - ], - "type": "Dropdown", - "description": "Float the element to the left or to the right.", - "options": [ - { - "name": "Left", - "class": "pull-left" - }, - { - "name": "Right", - "class": "pull-right" - } - ] - }, - { - "name": "Hide on phone", - "oldNames": [ - "Hide On Phone" - ], - "type": "Toggle", - "description": "Hide element on phone.", - "class": "hide-phone" - }, - { - "name": "Hide on tablet", - "oldNames": [ - "Hide On Tablet" - ], - "type": "Toggle", - "description": "Hide element on tablet.", - "class": "hide-tablet" - }, - { - "name": "Hide on desktop", - "oldNames": [ - "Hide On Desktop" - ], - "type": "Toggle", - "description": "Hide element on desktop.", - "class": "hide-desktop" - } - ], - "DivContainer": [ - { - "name": "Align content", - "type": "Dropdown", - "description": "Align content of this element left, right or center it. Align elements inside the container as a row or as a column.", - "options": [ - { - "name": "Left align as a row", - "oldNames": [ - "Left align as row" - ], - "class": "row-left" - }, - { - "name": "Center align as a row", - "oldNames": [ - "Center align as row" - ], - "class": "row-center" - }, - { - "name": "Right align as a row", - "oldNames": [ - "Right align as row" - ], - "class": "row-right" - }, - { - "name": "Left align as a column", - "oldNames": [ - "Left align as column" - ], - "class": "col-left" - }, - { - "name": "Center align as a column", - "oldNames": [ - "Center align as column" - ], - "class": "col-center" - }, - { - "name": "Right align as a column", - "oldNames": [ - "Right align as column" - ], - "class": "col-right" - } - ] - }, - { - "name": "Background color", - "type": "Dropdown", - "description": "Change the background color of the container.", - "options": [ - { - "name": "Brand Default", - "oldNames": [ - "Default" - ], - "class": "background-default" - }, - { - "name": "Brand Primary", - "oldNames": [ - "Primary" - ], - "class": "background-primary" - }, - { - "name": "Brand Inverse", - "oldNames": [ - "Inverse" - ], - "class": "background-inverse" - }, - { - "name": "Brand Info", - "oldNames": [ - "Info" - ], - "class": "background-info" - }, - { - "name": "Brand Success", - "oldNames": [ - "Success" - ], - "class": "background-success" - }, - { - "name": "Brand Warning", - "oldNames": [ - "Warning" - ], - "class": "background-warning" - }, - { - "name": "Brand Danger", - "oldNames": [ - "Danger" - ], - "class": "background-danger" - }, - { - "name": "Background Default", - "class": "background-main" - }, - { - "name": "Background Dashboard", - "class": "background-secondary" - } - ] - } - ], - "Button": [ - { - "name": "Size", - "type": "Dropdown", - "description": "Size of the buttons", - "options": [ - { - "name": "Small", - "class": "btn-sm" - }, - { - "name": "Large", - "class": "btn-lg" - } - ] - }, - { - "name": "Full width", - "type": "Toggle", - "description": "Extend the button to the full width of the container it is placed in.", - "class": "btn-block" - }, - { - "name": "Border", - "oldNames": [ - "Bordered" - ], - "type": "Toggle", - "description": "Style the button with a transparent background, a colored border, and colored text.", - "class": "btn-bordered" - }, - { - "name": "Align icon", - "type": "Dropdown", - "description": "Place the icon to the right or on top of the button.", - "options": [ - { - "name": "Right", - "class": "btn-icon-right" - }, - { - "name": "Top", - "class": "btn-icon-top" - } - ] - } - ], - "ListView": [ - { - "name": "Style", - "type": "Dropdown", - "description": "Change the appearance of rows in the list view.", - "options": [ - { - "name": "Striped", - "class": "listview-striped" - }, - { - "name": "Bordered", - "class": "listview-bordered" - }, - { - "name": "Lined", - "class": "listview-lined" - }, - { - "name": "No Styling", - "class": "listview-stylingless" - } - ] - }, - { - "name": "Hover style", - "type": "Toggle", - "description": "Highlight a row when hovering over it. Only useful when the row is clickable.", - "class": "listview-hover" - }, - { - "name": "Row Size", - "type": "Dropdown", - "description": "Change the row spacing of the list view.", - "options": [ - { - "name": "Small", - "class": "listview-sm" - }, - { - "name": "Large", - "class": "listview-lg" - } - ] - } - ], - "DataGrid": [ - { - "name": "Style", - "type": "Dropdown", - "description": "Choose one of the following styles to change the appearance of the data grid.", - "options": [ - { - "name": "Striped", - "class": "datagrid-striped" - }, - { - "name": "Bordered", - "class": "datagrid-bordered" - }, - { - "name": "Lined", - "class": "datagrid-lined" - } - ] - }, - { - "name": "Hover style", - "type": "Toggle", - "description": "Enable data grid hover to make the rows hoverable.", - "class": "datagrid-hover" - }, - { - "name": "Row size", - "type": "Dropdown", - "description": "Increase or decrease the row spacing of the data grid row.", - "options": [ - { - "name": "Small", - "class": "datagrid-sm" - }, - { - "name": "Large", - "class": "datagrid-lg" - } - ] - } - ], - "TemplateGrid": [ - { - "name": "Style", - "type": "Dropdown", - "description": "Choose one of the following styles to change the appearance of the template grid.", - "options": [ - { - "name": "Striped", - "class": "templategrid-striped" - }, - { - "name": "Bordered", - "class": "templategrid-bordered" - }, - { - "name": "Lined", - "class": "templategrid-lined" - }, - { - "name": "No styling", - "class": "templategrid-stylingless" - } - ] - }, - { - "name": "Hover style", - "type": "Toggle", - "description": "Enable template grid hover to make the rows hoverable.", - "class": "templategrid-hover" - } - ], - "GroupBox": [ - { - "name": "Style", - "type": "Dropdown", - "description": "Choose one of the following styles to change the appearance of the groupbox.", - "options": [ - { - "name": "Brand Default", - "oldNames": [ - "Default" - ], - "class": "groupbox-default" - }, - { - "name": "Brand Primary", - "oldNames": [ - "Primary" - ], - "class": "groupbox-primary" - }, - { - "name": "Brand Inverse", - "oldNames": [ - "Inverse" - ], - "class": "groupbox-inverse" - }, - { - "name": "Brand Info", - "oldNames": [ - "Info" - ], - "class": "groupbox-info" - }, - { - "name": "Brand Success", - "oldNames": [ - "Success" - ], - "class": "groupbox-success" - }, - { - "name": "Brand Warning", - "oldNames": [ - "Warning" - ], - "class": "groupbox-warning" - }, - { - "name": "Brand Danger", - "oldNames": [ - "Danger" - ], - "class": "groupbox-danger" - }, - { - "name": "Transparent", - "class": "groupbox-transparent" - } - ] - }, - { - "name": "Callout style", - "type": "Toggle", - "description": "Enable the groupbox callout functionality to highlight the importance of the groupbox.", - "class": "groupbox-callout" - } - ], - "StaticImageViewer": [ - { - "name": "Style", - "type": "Dropdown", - "description": "Choose the style of your image.", - "options": [ - { - "name": "Rounded", - "class": "img-rounded" - }, - { - "name": "Thumbnail", - "class": "img-thumbnail" - }, - { - "name": "Circle", - "class": "img-circle" - } - ] - }, - { - "name": "Center", - "type": "Toggle", - "description": "Align the image in the center of an element.", - "class": "img-center" - } - ], - "DynamicImageViewer": [ - { - "name": "Style", - "type": "Dropdown", - "description": "Choose the style of your image.", - "options": [ - { - "name": "Rounded", - "class": "img-rounded" - }, - { - "name": "Thumbnail", - "class": "img-thumbnail" - }, - { - "name": "Circle", - "class": "img-circle" - } - ] - }, - { - "name": "Center", - "type": "Toggle", - "description": "Align the image in the center of an element.", - "class": "img-center" - } - ], - "Label": [ - { - "name": "Style", - "type": "Dropdown", - "description": "Change the appearance of a label.", - "options": [ - { - "name": "Brand Default", - "oldNames": [ - "Default" - ], - "class": "label-default" - }, - { - "name": "Brand Primary", - "oldNames": [ - "Primary" - ], - "class": "label-primary" - }, - { - "name": "Brand Inverse", - "oldNames": [ - "Inverse" - ], - "class": "label-inverse" - }, - { - "name": "Brand Info", - "oldNames": [ - "Info" - ], - "class": "label-info" - }, - { - "name": "Brand Success", - "oldNames": [ - "Success" - ], - "class": "label-success" - }, - { - "name": "Brand Warning", - "oldNames": [ - "Warning" - ], - "class": "label-warning" - }, - { - "name": "Brand Danger", - "oldNames": [ - "Danger" - ], - "class": "label-danger" - } - ] - } - ], - "DynamicText": [ - { - "name": "Font Weight", - "oldNames": [ - "Weight" - ], - "type": "Dropdown", - "description": "Emphasize the text with a heavier or lighter font weight", - "options": [ - { - "name": "Light", - "class": "text-light" - }, - { - "name": "Normal", - "class": "text-normal" - }, - { - "name": "Semibold", - "class": "text-semibold" - }, - { - "name": "Bold", - "class": "text-bold" - } - ] - }, - { - "name": "Color", - "type": "Dropdown", - "description": "Change the color of text.", - "options": [ - { - "name": "Header color", - "class": "text-header" - }, - { - "name": "Detail color", - "class": "text-detail" - }, - { - "name": "Brand Default", - "oldNames": [ - "Default" - ], - "class": "text-default" - }, - { - "name": "Brand Primary", - "oldNames": [ - "Primary" - ], - "class": "text-primary" - }, - { - "name": "Brand Inverse", - "oldNames": [ - "Inverse" - ], - "class": "text-inverse" - }, - { - "name": "Brand Info", - "oldNames": [ - "Info" - ], - "class": "text-info" - }, - { - "name": "Brand Success", - "oldNames": [ - "Success" - ], - "class": "text-success" - }, - { - "name": "Brand Warning", - "oldNames": [ - "Warning" - ], - "class": "text-warning" - }, - { - "name": "Brand Danger", - "oldNames": [ - "Danger" - ], - "class": "text-danger" - } - ] - }, - { - "name": "Alignment", - "type": "Dropdown", - "description": "Align the text.", - "options": [ - { - "name": "Left", - "class": "text-left d-block" - }, - { - "name": "Center", - "class": "text-center d-block" - }, - { - "name": "Right", - "class": "text-right d-block" - } - ] - }, - { - "name": "Transform", - "type": "Dropdown", - "description": "Change the letter case of the text.", - "options": [ - { - "name": "Lowercase", - "class": "text-lowercase" - }, - { - "name": "Uppercase", - "class": "text-uppercase" - }, - { - "name": "Capitalize", - "class": "text-capitalize" - } - ] - }, - { - "name": "Wrap options", - "type": "Dropdown", - "description": "Break long words and sentences into multiple lines.", - "options": [ - { - "name": "Wrap", - "class": "text-break" - }, - { - "name": "No Wrap", - "class": "text-nowrap" - } - ] - } - ] - } -} diff --git a/theme/styles.js b/theme/styles.js deleted file mode 100644 index 5836d58..0000000 --- a/theme/styles.js +++ /dev/null @@ -1,12 +0,0 @@ -import * as custom from "./styles/native/app/custom"; -import mergeobjects from "./styles/native/core/helpers/_functions/mergeobjects"; -import * as main from "./styles/native/main"; - -Object.keys(custom).forEach(key => { - if (main[key]) { - Object.assign(main[key], mergeobjects(main[key], custom[key])); - delete custom[key]; - } -}); - -module.exports = { ...main, ...custom }; diff --git a/theme/styles/native/app/custom-variables.js b/theme/styles/native/app/custom-variables.js deleted file mode 100644 index 80db3a2..0000000 --- a/theme/styles/native/app/custom-variables.js +++ /dev/null @@ -1,279 +0,0 @@ -import { NativeModules, Platform } from "react-native"; -import adjustFont from "../core/helpers/_functions/adjustfont"; -import { anyColorToRgbString, setColorBasedOnBackground, setContrastScale, } from "../core/helpers/_functions/convertcolors"; -/* - -==> You can find a copy of the core variables below. (From styles/native/core/variables.js) -==> You can freely change any value in this file. -==> DO NOT change the core variable file (or any other file in core), as that makes updating Atlas a lot harder in the future. - -*/ -//== Global variables -//## Variables to be used during styling -//-------------------------------------------------------------------------------------------------------------------// -// Brand Style -export const brand = { - primary: "#0595DB", - success: "#76CA02", - warning: "#f99b1d", - danger: "#ed1c24", - primaryLight: `rgba(${anyColorToRgbString("#0595DB")}, 0.14)`, - successLight: `rgba(${anyColorToRgbString("#76CA02")}, 0.14)`, - warningLight: `rgba(${anyColorToRgbString("#f99b1d")}, 0.14)`, - dangerLight: `rgba(${anyColorToRgbString("#ed1c24")}, 0.14)`, -}; -// -// Dark Mode - Inherits OS theme if possible -export const darkMode = NativeModules && NativeModules.RNDarkMode && NativeModules.RNDarkMode.initialMode - ? NativeModules.RNDarkMode.initialMode === "dark" - : false; -// -// Background Colors -const backgroundColor = darkMode ? "#000" : "#FFF"; -const backgroundSecondaryContrast = darkMode ? 0.11 : 0.03; -// -export const background = { - primary: backgroundColor, - secondary: setContrastScale(backgroundSecondaryContrast, backgroundColor), - gray: "#c6c6cc", - brandPrimary: brand.primary, - brandSuccess: brand.success, - brandWarning: brand.warning, - brandDanger: brand.danger, -}; -// -// Contrast (Gray) colors based on background.primary -export const contrast = { - highest: setContrastScale(0.95, background.primary), - higher: setContrastScale(0.8, background.primary), - high: setContrastScale(0.65, background.primary), - regular: setContrastScale(0.5, background.primary), - low: setContrastScale(0.35, background.primary), - lower: setContrastScale(0.2, background.primary), - lowest: setContrastScale(0.05, background.primary), -}; -// -// Border Style -export const border = { - color: setContrastScale(0.17, background.primary), - width: 1, - radius: 5, -}; -// -// Font Styles -export const font = { - size: adjustFont(14), - sizeSmall: adjustFont(12), - sizeLarge: adjustFont(18), - sizeH1: adjustFont(31), - sizeH2: adjustFont(26), - sizeH3: adjustFont(24), - sizeH4: adjustFont(18), - sizeH5: adjustFont(14), - sizeH6: adjustFont(12), - color: setColorBasedOnBackground(background.primary), - colorDisabled: "#9DA1A8", - labelColorDisabled: "#474E5C", - weightLight: "100", - weightNormal: "normal", - weightSemiBold: "600", - weightBold: "bold", - family: Platform.select({ ios: "System", android: "normal" }), -}; -// -// Spacing -export const spacing = { - smallest: 5, - smaller: 10, - small: 15, - regular: 20, - large: 25, - larger: 30, - largest: 40, -}; -// -// Button Styles -export const button = { - fontSize: font.sizeSmall, - fontSizeLarge: font.size, - fontWeight: font.weightBold, - fontSizeIcon: font.sizeSmall, - fontSizeIconLarge: font.size, - borderRadius: border.radius, - paddingVertical: spacing.smaller, - paddingHorizontal: spacing.regular, - header: { - color: contrast.highest, - borderColor: "transparent", - backgroundColor: "transparent", - fontSize: font.sizeSmall, - fontSizeIcon: font.sizeSmall, - paddingLeft: 0, - paddingRight: 10, - }, - primary: { - color: "#FFF", - colorDisabled: font.colorDisabled, - borderColor: brand.primary, - borderColorDisabled: border.color, - backgroundColor: brand.primary, - backgroundColorDisabled: border.color, - }, - secondary: { - color: brand.primary, - borderColor: brand.primary, - backgroundColor: "transparent", - inversedColor: "#FFF", - }, - success: { - color: "#FFF", - borderColor: brand.success, - backgroundColor: brand.success, - }, - warning: { - color: "#FFF", - borderColor: brand.warning, - backgroundColor: brand.warning, - }, - danger: { - color: "#FFF", - borderColor: brand.danger, - backgroundColor: brand.danger, - }, -}; -// -// Input Styles -export const input = { - // Colors - color: font.color, - colorDisabled: font.colorDisabled, - errorColor: brand.danger, - labelColor: font.color, - labelColorDisabled: font.labelColorDisabled, - borderColor: contrast.lower, - borderColorFocused: "", - backgroundColor: background.primary, - backgroundColorDisabled: contrast.lowest, - selectionColor: contrast.lower, - placeholderTextColor: contrast.regular, - underlineColorAndroid: "transparent", - inputContainerUnderlayColor: `rgba(${anyColorToRgbString(contrast.low)},0.4)`, - // Sizes - fontSize: font.size, - fontFamily: font.family, - borderWidth: border.width, - borderRadius: border.radius, - // Alignment - textAlign: "left", - paddingHorizontal: spacing.smaller, - paddingVertical: spacing.small, -}; -// -// Navigation Styles -export const navigation = { - statusBar: { - backgroundColor: background.primary, - barStyle: darkMode ? "light-content" : "dark-content", - }, - topBar: { - backgroundColor: background.primary, - backButtonColor: contrast.highest, - titleColor: contrast.highest, - titleFontSize: Platform.select({ android: font.sizeH4, ios: font.sizeH5 }), - }, - bottomBar: { - color: contrast.high, - selectedTextColor: contrast.high, - selectedIconColor: brand.primary, - backgroundColor: background.primary, - fontSize: font.sizeSmall, - iconSize: font.sizeSmall, - }, - progressOverlay: { - color: font.color, - activityIndicatorColor: font.color, - backgroundColor: `rgba(0, 0, 0, 0.5)`, - containerBackgroundColor: background.secondary, - fontSize: font.size, - borderRadius: border.radius, - elevation: 1.5, - shadowColor: "#000", - shadowOpacity: 0.1, - shadowRadius: 10, - }, -}; -// -// Badge Styles -export const badge = { - fontWeight: font.weightBold, - borderRadius: 30, - paddingVertical: 3, - paddingHorizontal: spacing.smaller, - default: { - color: contrast.higher, - backgroundColor: contrast.lower, - }, - primary: { - color: brand.primary, - backgroundColor: brand.primaryLight, - }, - success: { - color: brand.success, - backgroundColor: brand.successLight, - }, - warning: { - color: brand.warning, - backgroundColor: brand.warningLight, - }, - danger: { - color: brand.danger, - backgroundColor: brand.dangerLight, - }, -}; -// -// Tabcontainer Styles -export const tabContainer = { - tabBar: { - pressColor: contrast.lower, - backgroundColor: background.primary, - }, - indicator: { - backgroundColor: brand.primary, - height: Platform.select({ ios: 2, android: 2 }), - }, - label: { - color: contrast.highest, - fontWeight: font.weightBold, - textTransform: "uppercase", - }, - activeLabel: { - color: brand.primary, - fontWeight: font.weightBold, - textTransform: "uppercase", - }, - badgeContainer: { - borderRadius: badge.borderRadius, - backgroundColor: badge.default.backgroundColor, - paddingVertical: badge.paddingVertical, - paddingHorizontal: badge.paddingHorizontal, - marginLeft: 8, - }, - badgeCaption: { - fontSize: font.size, - color: badge.default.color, - fontWeight: badge.fontWeight, - }, -}; -// -// ListView Styles -export const listView = { - border: { - color: border.color, - width: border.width, - }, -}; -// -// Layoutgrid Styles -export const layoutGrid = { - gutterSize: 15, -}; diff --git a/theme/styles/native/core/base/flex.js b/theme/styles/native/core/base/flex.js deleted file mode 100644 index dd1edff..0000000 --- a/theme/styles/native/core/base/flex.js +++ /dev/null @@ -1,203 +0,0 @@ -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -*/ -//== Flex layout -export const flexMain = { - container: { - // flex 1 will take all available space not taken by flexItems. - flex: 1, - }, -}; -export const flexItem = { - container: { - // When flex is -1, the component is normally sized according width and height. - // However, if there's not enough space, the component will shrink to its minWidth and minHeight - flex: -1, - }, -}; -export const flexRow = { - container: { - flexDirection: "row", - }, -}; -export const flexColumn = { - container: { - flexDirection: "column", - }, -}; -export const flexRowReverse = { - container: { - flexDirection: "row-reverse", - }, -}; -export const flexColumnReverse = { - container: { - flexDirection: "column-reverse", - }, -}; -export const flexWrap = { - container: { - // flexWrap controls whether children can wrap around after they hit the end of a flex container. - flexWrap: "wrap", - }, -}; -export const justifyContentStart = { - container: { - // justifyContent aligns children in the main direction. - // For example, if children are flowing vertically, justifyContent controls how they align vertically. - justifyContent: "flex-start", - }, -}; -export const justifyContentCenter = { - container: { - // justifyContent aligns children in the main direction. - // For example, if children are flowing vertically, justifyContent controls how they align vertically. - justifyContent: "center", - }, -}; -export const justifyContentEnd = { - container: { - // justifyContent aligns children in the main direction. - // For example, if children are flowing vertically, justifyContent controls how they align vertically. - justifyContent: "flex-end", - }, -}; -export const justifyContentSpaceBetween = { - container: { - // justifyContent aligns children in the main direction. - // For example, if children are flowing vertically, justifyContent controls how they align vertically. - justifyContent: "space-between", - }, -}; -export const justifyContentSpaceAround = { - container: { - // justifyContent aligns children in the main direction. - // For example, if children are flowing vertically, justifyContent controls how they align vertically. - justifyContent: "space-around", - }, -}; -export const justifyContentSpaceEvenly = { - container: { - // justifyContent aligns children in the main direction. - // For example, if children are flowing vertically, justifyContent controls how they align vertically. - justifyContent: "space-evenly", - }, -}; -export const alignChildrenStart = { - container: { - // alignItems aligns children in the cross direction. - // For example, if children are flowing vertically, alignItems controls how they align horizontally. - alignItems: "flex-start", - }, -}; -export const alignChildrenCenter = { - container: { - // alignItems aligns children in the cross direction. - // For example, if children are flowing vertically, alignItems controls how they align horizontally. - alignItems: "center", - }, -}; -export const alignChildrenEnd = { - container: { - // alignItems aligns children in the cross direction. - // For example, if children are flowing vertically, alignItems controls how they align horizontally. - alignItems: "flex-end", - }, -}; -export const alignChildrenStretch = { - container: { - // alignItems aligns children in the cross direction. - // For example, if children are flowing vertically, alignItems controls how they align horizontally. - alignItems: "stretch", - }, -}; -export const alignChildrenBaseline = { - container: { - // alignContent aligns children in the cross direction. - // For example, if children are flowing vertically, alignContent controls how they align horizontally. - alignItems: "baseline", - }, -}; -export const childrenCenter = { - container: { - ...justifyContentCenter.container, - ...alignChildrenCenter.container, - }, -}; -export const alignContentStart = { - container: { - // alignContent aligns rows of children in the cross direction. - // For example, if children are flowing vertically, alignContent controls how they align horizontally. - alignContent: "flex-start", - }, -}; -export const alignContentCenter = { - container: { - // alignContent aligns rows of children in the cross direction. - // For example, if children are flowing vertically, alignContent controls how they align horizontally. - alignContent: "center", - }, -}; -export const alignContentEnd = { - container: { - // alignContent aligns rows of children in the cross direction. - // For example, if children are flowing vertically, alignContent controls how they align horizontally. - alignContent: "flex-end", - }, -}; -export const alignContentStretch = { - container: { - // alignContent aligns rows of children in the cross direction. - // For example, if children are flowing vertically, alignContent controls how they align horizontally. - alignContent: "stretch", - }, -}; -export const alignContentSpaceAround = { - container: { - // alignContent aligns rows of children in the cross direction. - // For example, if children are flowing vertically, alignContent controls how they align horizontally. - alignContent: "space-around", - }, -}; -export const alignContentSpaceBetween = { - container: { - // alignContent aligns rows of children in the cross direction. - // For example, if children are flowing vertically, alignContent controls how they align horizontally. - alignContent: "space-between", - }, -}; -export const alignSelfStart = { - container: { - // controls how a child aligns in the cross direction, overriding the alignItems of the parent. - alignSelf: "flex-start", - }, -}; -export const alignSelfCenter = { - container: { - // controls how a child aligns in the cross direction, overriding the alignItems of the parent. - alignSelf: "center", - }, -}; -export const alignSelfEnd = { - container: { - // controls how a child aligns in the cross direction, overriding the alignItems of the parent. - alignSelf: "flex-end", - }, -}; -export const alignSelfStretch = { - container: { - // controls how a child aligns in the cross direction, overriding the alignItems of the parent. - alignSelf: "stretch", - }, -}; -export const alignSelfBaseline = { - container: { - // controls how a child aligns in the cross direction, overriding the alignItems of the parent. - alignSelf: "baseline", - }, -}; diff --git a/theme/styles/native/core/base/spacing.js b/theme/styles/native/core/base/spacing.js deleted file mode 100644 index 13a72e2..0000000 --- a/theme/styles/native/core/base/spacing.js +++ /dev/null @@ -1,503 +0,0 @@ -import { spacing } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -*/ -//== Inner Spacing -export const spacingInnerSmallest = { - container: { - padding: spacing.smallest, - }, -}; -export const spacingInnerVerticalSmallest = { - container: { - paddingVertical: spacing.smallest, - }, -}; -export const spacingInnerHorizontalSmallest = { - container: { - paddingHorizontal: spacing.smallest, - }, -}; -export const spacingInnerTopSmallest = { - container: { - paddingTop: spacing.smallest, - }, -}; -export const spacingInnerRightSmallest = { - container: { - paddingRight: spacing.smallest, - }, -}; -export const spacingInnerLeftSmallest = { - container: { - paddingLeft: spacing.smallest, - }, -}; -export const spacingInnerBottomSmallest = { - container: { - paddingBottom: spacing.smallest, - }, -}; -export const spacingInnerSmaller = { - container: { - padding: spacing.smaller, - }, -}; -export const spacingInnerVerticalSmaller = { - container: { - paddingVertical: spacing.smaller, - }, -}; -export const spacingInnerHorizontalSmaller = { - container: { - paddingHorizontal: spacing.smaller, - }, -}; -export const spacingInnerTopSmaller = { - container: { - paddingTop: spacing.smaller, - }, -}; -export const spacingInnerRightSmaller = { - container: { - paddingRight: spacing.smaller, - }, -}; -export const spacingInnerLeftSmaller = { - container: { - paddingLeft: spacing.smaller, - }, -}; -export const spacingInnerBottomSmaller = { - container: { - paddingBottom: spacing.smaller, - }, -}; -export const spacingInnerSmall = { - container: { - padding: spacing.small, - }, -}; -export const spacingInnerVerticalSmall = { - container: { - paddingVertical: spacing.small, - }, -}; -export const spacingInnerHorizontalSmall = { - container: { - paddingHorizontal: spacing.small, - }, -}; -export const spacingInnerTopSmall = { - container: { - paddingTop: spacing.small, - }, -}; -export const spacingInnerRightSmall = { - container: { - paddingRight: spacing.small, - }, -}; -export const spacingInnerLeftSmall = { - container: { - paddingLeft: spacing.small, - }, -}; -export const spacingInnerBottomSmall = { - container: { - paddingBottom: spacing.small, - }, -}; -export const spacingInnerMedium = { - container: { - padding: spacing.regular, - }, -}; -export const spacingInnerVerticalMedium = { - container: { - paddingVertical: spacing.regular, - }, -}; -export const spacingInnerHorizontalMedium = { - container: { - paddingHorizontal: spacing.regular, - }, -}; -export const spacingInnerTopMedium = { - container: { - paddingTop: spacing.regular, - }, -}; -export const spacingInnerRightMedium = { - container: { - paddingRight: spacing.regular, - }, -}; -export const spacingInnerLeftMedium = { - container: { - paddingLeft: spacing.regular, - }, -}; -export const spacingInnerBottomMedium = { - container: { - paddingBottom: spacing.regular, - }, -}; -export const spacingInnerLarge = { - container: { - padding: spacing.large, - }, -}; -export const spacingInnerVerticalLarge = { - container: { - paddingVertical: spacing.large, - }, -}; -export const spacingInnerHorizontalLarge = { - container: { - paddingHorizontal: spacing.large, - }, -}; -export const spacingInnerTopLarge = { - container: { - paddingTop: spacing.large, - }, -}; -export const spacingInnerRightLarge = { - container: { - paddingRight: spacing.large, - }, -}; -export const spacingInnerLeftLarge = { - container: { - paddingLeft: spacing.large, - }, -}; -export const spacingInnerBottomLarge = { - container: { - paddingBottom: spacing.large, - }, -}; -export const spacingInnerLarger = { - container: { - padding: spacing.larger, - }, -}; -export const spacingInnerVerticalLarger = { - container: { - paddingVertical: spacing.larger, - }, -}; -export const spacingInnerHorizontalLarger = { - container: { - paddingHorizontal: spacing.larger, - }, -}; -export const spacingInnerTopLarger = { - container: { - paddingTop: spacing.larger, - }, -}; -export const spacingInnerRightLarger = { - container: { - paddingRight: spacing.larger, - }, -}; -export const spacingInnerLeftLarger = { - container: { - paddingLeft: spacing.larger, - }, -}; -export const spacingInnerBottomLarger = { - container: { - paddingBottom: spacing.larger, - }, -}; -export const spacingInnerLargest = { - container: { - padding: spacing.largest, - }, -}; -export const spacingInnerVerticalLargest = { - container: { - paddingVertical: spacing.largest, - }, -}; -export const spacingInnerHorizontalLargest = { - container: { - paddingHorizontal: spacing.largest, - }, -}; -export const spacingInnerTopLargest = { - container: { - paddingTop: spacing.largest, - }, -}; -export const spacingInnerRightLargest = { - container: { - paddingRight: spacing.largest, - }, -}; -export const spacingInnerLeftLargest = { - container: { - paddingLeft: spacing.largest, - }, -}; -export const spacingInnerBottomLargest = { - container: { - paddingBottom: spacing.largest, - }, -}; -// -// -//== Outer Spacing -export const spacingOuterSmallest = { - container: { - margin: spacing.smallest, - }, -}; -export const spacingOuterVerticalSmallest = { - container: { - marginVertical: spacing.smallest, - }, -}; -export const spacingOuterHorizontalSmallest = { - container: { - marginHorizontal: spacing.smallest, - }, -}; -export const spacingOuterTopSmallest = { - container: { - marginTop: spacing.smallest, - }, -}; -export const spacingOuterRightSmallest = { - container: { - marginRight: spacing.smallest, - }, -}; -export const spacingOuterLeftSmallest = { - container: { - marginLeft: spacing.smallest, - }, -}; -export const spacingOuterBottomSmallest = { - container: { - marginBottom: spacing.smallest, - }, -}; -export const spacingOuterSmaller = { - container: { - margin: spacing.smaller, - }, -}; -export const spacingOuterVerticalSmaller = { - container: { - marginVertical: spacing.smaller, - }, -}; -export const spacingOuterHorizontalSmaller = { - container: { - marginHorizontal: spacing.smaller, - }, -}; -export const spacingOuterTopSmaller = { - container: { - marginTop: spacing.smaller, - }, -}; -export const spacingOuterRightSmaller = { - container: { - marginRight: spacing.smaller, - }, -}; -export const spacingOuterLeftSmaller = { - container: { - marginLeft: spacing.smaller, - }, -}; -export const spacingOuterBottomSmaller = { - container: { - marginBottom: spacing.smaller, - }, -}; -export const spacingOuterSmall = { - container: { - margin: spacing.small, - }, -}; -export const spacingOuterVerticalSmall = { - container: { - marginVertical: spacing.small, - }, -}; -export const spacingOuterHorizontalSmall = { - container: { - marginHorizontal: spacing.small, - }, -}; -export const spacingOuterTopSmall = { - container: { - marginTop: spacing.small, - }, -}; -export const spacingOuterRightSmall = { - container: { - marginRight: spacing.small, - }, -}; -export const spacingOuterLeftSmall = { - container: { - marginLeft: spacing.small, - }, -}; -export const spacingOuterBottomSmall = { - container: { - marginBottom: spacing.small, - }, -}; -export const spacingOuterMedium = { - container: { - margin: spacing.regular, - }, -}; -export const spacingOuterVerticalMedium = { - container: { - marginVertical: spacing.regular, - }, -}; -export const spacingOuterHorizontalMedium = { - container: { - marginHorizontal: spacing.regular, - }, -}; -export const spacingOuterTopMedium = { - container: { - marginTop: spacing.regular, - }, -}; -export const spacingOuterRightMedium = { - container: { - marginRight: spacing.regular, - }, -}; -export const spacingOuterLeftMedium = { - container: { - marginLeft: spacing.regular, - }, -}; -export const spacingOuterBottomMedium = { - container: { - marginBottom: spacing.regular, - }, -}; -export const spacingOuterLarge = { - container: { - margin: spacing.large, - }, -}; -export const spacingOuterVerticalLarge = { - container: { - marginVertical: spacing.large, - }, -}; -export const spacingOuterHorizontalLarge = { - container: { - marginHorizontal: spacing.large, - }, -}; -export const spacingOuterTopLarge = { - container: { - marginTop: spacing.large, - }, -}; -export const spacingOuterRightLarge = { - container: { - marginRight: spacing.large, - }, -}; -export const spacingOuterLeftLarge = { - container: { - marginLeft: spacing.large, - }, -}; -export const spacingOuterBottomLarge = { - container: { - marginBottom: spacing.large, - }, -}; -export const spacingOuterLarger = { - container: { - margin: spacing.larger, - }, -}; -export const spacingOuterVerticalLarger = { - container: { - marginVertical: spacing.larger, - }, -}; -export const spacingOuterHorizontalLarger = { - container: { - marginHorizontal: spacing.larger, - }, -}; -export const spacingOuterTopLarger = { - container: { - marginTop: spacing.larger, - }, -}; -export const spacingOuterRightLarger = { - container: { - marginRight: spacing.larger, - }, -}; -export const spacingOuterLeftLarger = { - container: { - marginLeft: spacing.larger, - }, -}; -export const spacingOuterBottomLarger = { - container: { - marginBottom: spacing.larger, - }, -}; -export const spacingOuterLargest = { - container: { - margin: spacing.largest, - }, -}; -export const spacingOuterVerticalLargest = { - container: { - marginVertical: spacing.largest, - }, -}; -export const spacingOuterHorizontalLargest = { - container: { - marginHorizontal: spacing.largest, - }, -}; -export const spacingOuterTopLargest = { - container: { - marginTop: spacing.largest, - }, -}; -export const spacingOuterRightLargest = { - container: { - marginRight: spacing.largest, - }, -}; -export const spacingOuterLeftLargest = { - container: { - marginLeft: spacing.largest, - }, -}; -export const spacingOuterBottomLargest = { - container: { - marginBottom: spacing.largest, - }, -}; diff --git a/theme/styles/native/core/helpers/_functions/adjustfont.js b/theme/styles/native/core/helpers/_functions/adjustfont.js deleted file mode 100644 index 7c8efe1..0000000 --- a/theme/styles/native/core/helpers/_functions/adjustfont.js +++ /dev/null @@ -1,59 +0,0 @@ -import { Dimensions, PixelRatio } from "react-native"; -const { height, width } = Dimensions.get("window"); -const pixelRatio = PixelRatio.get(); -/** - * - * Adjust the font size based on the screen size - * - * @param {number} size Font size - * - * @return {number} Returns adjusted font size - */ -function adjustFont(size) { - if (pixelRatio === 2) { - // iphone 5s and older Androids - if (width < 360) - return size * 0.95; - // iphone 5 - if (height < 667) - return size; - // iphone 6-6s - else if (height >= 667 && height <= 735) - return size * 1.15; - // older phablets - return size * 1.25; - } - if (pixelRatio === 3) { - // catch Android font scaling on small machines - // where pixel ratio / font scale ratio => 3:3 - if (width <= 360) - return size; - // Catch other weird android width sizings - if (height < 667) - return size * 1.15; - // catch in-between size Androids and scale font up - if (height >= 667 && height <= 735) - return size * 1.2; - // catch larger devices - // ie iphone 6s plus / 7 plus / mi note - return size * 1.27; - } - if (pixelRatio === 3.5) { - // catch Android font scaling on small machines - // where pixel ratio / font scale ratio => 3:3 - if (width <= 360) - return size; - // Catch other smaller android height sizings - if (height < 667) - return size * 1.2; - // catch in-between size Androids and scale font up - if (height >= 667 && height <= 735) - return size * 1.25; - // catch larger phablet devices - return size * 1.4; - } - // if older device ie pixelRatio !== 2 || 3 || 3.5 - return size; -} -// -export { adjustFont as default, height, width }; diff --git a/theme/styles/native/core/helpers/_functions/colorwords.js b/theme/styles/native/core/helpers/_functions/colorwords.js deleted file mode 100644 index 3c4cb0f..0000000 --- a/theme/styles/native/core/helpers/_functions/colorwords.js +++ /dev/null @@ -1,153 +0,0 @@ -// -const colors = { - aliceblue: { r: 240, g: 248, b: 255 }, - antiquewhite: { r: 250, g: 235, b: 215 }, - aqua: { r: 0, g: 255, b: 255 }, - aquamarine: { r: 127, g: 255, b: 212 }, - azure: { r: 240, g: 255, b: 255 }, - beige: { r: 245, g: 245, b: 220 }, - bisque: { r: 255, g: 228, b: 196 }, - black: { r: 0, g: 0, b: 0 }, - blanchedalmond: { r: 255, g: 235, b: 205 }, - blue: { r: 0, g: 0, b: 255 }, - blueviolet: { r: 138, g: 43, b: 226 }, - brown: { r: 165, g: 42, b: 42 }, - burlywood: { r: 222, g: 184, b: 135 }, - cadetblue: { r: 95, g: 158, b: 160 }, - chartreuse: { r: 127, g: 255, b: 0 }, - chocolate: { r: 210, g: 105, b: 30 }, - coral: { r: 255, g: 127, b: 80 }, - cornflowerblue: { r: 100, g: 149, b: 237 }, - cornsilk: { r: 255, g: 248, b: 220 }, - crimson: { r: 220, g: 20, b: 60 }, - cyan: { r: 0, g: 255, b: 255 }, - darkblue: { r: 0, g: 0, b: 139 }, - darkcyan: { r: 0, g: 139, b: 139 }, - darkgoldenrod: { r: 184, g: 134, b: 11 }, - darkgray: { r: 169, g: 169, b: 169 }, - darkgreen: { r: 0, g: 100, b: 0 }, - darkgrey: { r: 169, g: 169, b: 169 }, - darkkhaki: { r: 189, g: 183, b: 107 }, - darkmagenta: { r: 139, g: 0, b: 139 }, - darkolivegreen: { r: 85, g: 107, b: 47 }, - darkorange: { r: 255, g: 140, b: 0 }, - darkorchid: { r: 153, g: 50, b: 204 }, - darkred: { r: 139, g: 0, b: 0 }, - darksalmon: { r: 233, g: 150, b: 122 }, - darkseagreen: { r: 143, g: 188, b: 143 }, - darkslateblue: { r: 72, g: 61, b: 139 }, - darkslategray: { r: 47, g: 79, b: 79 }, - darkslategrey: { r: 47, g: 79, b: 79 }, - darkturquoise: { r: 0, g: 206, b: 209 }, - darkviolet: { r: 148, g: 0, b: 211 }, - deeppink: { r: 255, g: 20, b: 147 }, - deepskyblue: { r: 0, g: 191, b: 255 }, - dimgray: { r: 105, g: 105, b: 105 }, - dimgrey: { r: 105, g: 105, b: 105 }, - dodgerblue: { r: 30, g: 144, b: 255 }, - firebrick: { r: 178, g: 34, b: 34 }, - floralwhite: { r: 255, g: 250, b: 240 }, - forestgreen: { r: 34, g: 139, b: 34 }, - fuchsia: { r: 255, g: 0, b: 255 }, - gainsboro: { r: 220, g: 220, b: 220 }, - ghostwhite: { r: 248, g: 248, b: 255 }, - gold: { r: 255, g: 215, b: 0 }, - goldenrod: { r: 218, g: 165, b: 32 }, - gray: { r: 128, g: 128, b: 128 }, - green: { r: 0, g: 128, b: 0 }, - greenyellow: { r: 173, g: 255, b: 47 }, - grey: { r: 128, g: 128, b: 128 }, - honeydew: { r: 240, g: 255, b: 240 }, - hotpink: { r: 255, g: 105, b: 180 }, - indianred: { r: 205, g: 92, b: 92 }, - indigo: { r: 75, g: 0, b: 130 }, - ivory: { r: 255, g: 255, b: 240 }, - khaki: { r: 240, g: 230, b: 140 }, - lavender: { r: 230, g: 230, b: 250 }, - lavenderblush: { r: 255, g: 240, b: 245 }, - lawngreen: { r: 124, g: 252, b: 0 }, - lemonchiffon: { r: 255, g: 250, b: 205 }, - lightblue: { r: 173, g: 216, b: 230 }, - lightcoral: { r: 240, g: 128, b: 128 }, - lightcyan: { r: 224, g: 255, b: 255 }, - lightgoldenrodyellow: { r: 250, g: 250, b: 210 }, - lightgray: { r: 211, g: 211, b: 211 }, - lightgreen: { r: 144, g: 238, b: 144 }, - lightgrey: { r: 211, g: 211, b: 211 }, - lightpink: { r: 255, g: 182, b: 193 }, - lightsalmon: { r: 255, g: 160, b: 122 }, - lightseagreen: { r: 32, g: 178, b: 170 }, - lightskyblue: { r: 135, g: 206, b: 250 }, - lightslategray: { r: 119, g: 136, b: 153 }, - lightslategrey: { r: 119, g: 136, b: 153 }, - lightsteelblue: { r: 176, g: 196, b: 222 }, - lightyellow: { r: 255, g: 255, b: 224 }, - lime: { r: 0, g: 255, b: 0 }, - limegreen: { r: 50, g: 205, b: 50 }, - linen: { r: 250, g: 240, b: 230 }, - magenta: { r: 255, g: 0, b: 255 }, - maroon: { r: 128, g: 0, b: 0 }, - mediumaquamarine: { r: 102, g: 205, b: 170 }, - mediumblue: { r: 0, g: 0, b: 205 }, - mediumorchid: { r: 186, g: 85, b: 211 }, - mediumpurple: { r: 147, g: 112, b: 219 }, - mediumseagreen: { r: 60, g: 179, b: 113 }, - mediumslateblue: { r: 123, g: 104, b: 238 }, - mediumspringgreen: { r: 0, g: 250, b: 154 }, - mediumturquoise: { r: 72, g: 209, b: 204 }, - mediumvioletred: { r: 199, g: 21, b: 133 }, - midnightblue: { r: 25, g: 25, b: 112 }, - mintcream: { r: 245, g: 255, b: 250 }, - mistyrose: { r: 255, g: 228, b: 225 }, - moccasin: { r: 255, g: 228, b: 181 }, - navajowhite: { r: 255, g: 222, b: 173 }, - navy: { r: 0, g: 0, b: 128 }, - oldlace: { r: 253, g: 245, b: 230 }, - olive: { r: 128, g: 128, b: 0 }, - olivedrab: { r: 107, g: 142, b: 35 }, - orange: { r: 255, g: 165, b: 0 }, - orangered: { r: 255, g: 69, b: 0 }, - orchid: { r: 218, g: 112, b: 214 }, - palegoldenrod: { r: 238, g: 232, b: 170 }, - palegreen: { r: 152, g: 251, b: 152 }, - paleturquoise: { r: 175, g: 238, b: 238 }, - palevioletred: { r: 219, g: 112, b: 147 }, - papayawhip: { r: 255, g: 239, b: 213 }, - peachpuff: { r: 255, g: 218, b: 185 }, - peru: { r: 205, g: 133, b: 63 }, - pink: { r: 255, g: 192, b: 203 }, - plum: { r: 221, g: 160, b: 221 }, - powderblue: { r: 176, g: 224, b: 230 }, - purple: { r: 128, g: 0, b: 128 }, - rebeccapurple: { r: 102, g: 51, b: 153 }, - red: { r: 255, g: 0, b: 0 }, - rosybrown: { r: 188, g: 143, b: 143 }, - royalblue: { r: 65, g: 105, b: 225 }, - saddlebrown: { r: 139, g: 69, b: 19 }, - salmon: { r: 250, g: 128, b: 114 }, - sandybrown: { r: 244, g: 164, b: 96 }, - seagreen: { r: 46, g: 139, b: 87 }, - seashell: { r: 255, g: 245, b: 238 }, - sienna: { r: 160, g: 82, b: 45 }, - silver: { r: 192, g: 192, b: 192 }, - skyblue: { r: 135, g: 206, b: 235 }, - slateblue: { r: 106, g: 90, b: 205 }, - slategray: { r: 112, g: 128, b: 144 }, - slategrey: { r: 112, g: 128, b: 144 }, - snow: { r: 255, g: 250, b: 250 }, - springgreen: { r: 0, g: 255, b: 127 }, - steelblue: { r: 70, g: 130, b: 180 }, - tan: { r: 210, g: 180, b: 140 }, - teal: { r: 0, g: 128, b: 128 }, - thistle: { r: 216, g: 191, b: 216 }, - tomato: { r: 255, g: 99, b: 71 }, - turquoise: { r: 64, g: 224, b: 208 }, - violet: { r: 238, g: 130, b: 238 }, - wheat: { r: 245, g: 222, b: 179 }, - white: { r: 255, g: 255, b: 255 }, - whitesmoke: { r: 245, g: 245, b: 245 }, - yellow: { r: 255, g: 255, b: 0 }, - yellowgreen: { r: 154, g: 205, b: 50 }, -}; -// -export default colors; diff --git a/theme/styles/native/core/helpers/_functions/convertcolors.js b/theme/styles/native/core/helpers/_functions/convertcolors.js deleted file mode 100644 index d24f483..0000000 --- a/theme/styles/native/core/helpers/_functions/convertcolors.js +++ /dev/null @@ -1,228 +0,0 @@ -import colors from "./colorwords.js"; -/** - * - * Converts RGB color to HEX - * - * @param {number || string} r Accepts RGB as string || Accepts R as string or number - * @param {number || string} g Accepts G as string or number - * @param {number || string} b Accepts B as string or number - * - * @return {string} Returns HEX color - */ -function RgbToHex(r, g, b) { - if (typeof r === "string" && !g && !b) { - const color = r.replace(/rgb[(]|[)]/gm, ""); - [r, g, b] = color.split(","); - } - return "#" + ((1 << 24) + (Number(r) << 16) + (Number(g) << 8) + Number(b)).toString(16).slice(1); -} -/** - * - * Converts HEX or HEX Alpha to RGB - * - * @param {string} hex Accepts HEX color - * - * @return {object} Returns RGB color; {r,g,b} - */ -function hexToRgb(hex) { - hex = hex.substring(1); - hex = hex.length === 3 || hex.length === 4 ? [...hex].map(x => x + x).join("") : hex; - return rgbaToRgb({ - r: parseInt("0x" + hex[0] + hex[1], 16), - g: parseInt("0x" + hex[2] + hex[3], 16), - b: parseInt("0x" + hex[4] + hex[5], 16), - a: parseInt("0x" + hex[6] + hex[7], 16) / 255 || 1, - }); -} -/** - * - * Converts any color format to RGB string - * - * @param {string} anyColor Accepts any color format - * - * @return {string} Returns RGB color; `r,g,b` - */ -export function anyColorToRgbString(anyColor) { - const { r, g, b } = checkColor(anyColor); - return [r, g, b].join(","); -} -/** - * - * Converts HSL to RGB color - * - * @param {string} hsl Accepts HSL color - * - * @return {object} Returns RGB color; {r,g,b} - */ -function hslToRgb(hsl) { - let hslArray = hsl.replace(/hsla?[(]|[%]|[)]/gm, "").split(",").map(x => x.trim()); - let h = hslArray[0], s = Number(hslArray[1]) / 100, l = Number(hslArray[2]) / 100, a = 1; - // Strip label and convert to degrees (if necessary) - if (~h.indexOf("deg")) - h = h.substr(0, h.length - 3); - else if (~h.indexOf("rad")) - h = Math.round(Number(h.substr(0, h.length - 3)) * (180 / Math.PI)); - else if (~h.indexOf("turn")) - h = Math.round(Number(h.substr(0, h.length - 4)) * 360); - h = Number(h); - if (h >= 360) - h %= 360; // Keep hue fraction of 360 if h is higher than 360 - let r = 255, g = 255, b = 255; - const c = (1 - Math.abs(2 * l - 1)) * s; // chroma -> color intensity - const x = c * (1 - Math.abs(((h / 60) % 2) - 1)); // Second largest component (first being chroma) - const m = l - c / 2; // Amount to add to each channel to match lightness - if (0 <= h && h < 60) { - r = c; - g = x; - b = 0; - } - else if (60 <= h && h < 120) { - r = x; - g = c; - b = 0; - } - else if (120 <= h && h < 180) { - r = 0; - g = c; - b = x; - } - else if (180 <= h && h < 240) { - r = 0; - g = x; - b = c; - } - else if (240 <= h && h < 300) { - r = x; - g = 0; - b = c; - } - else if (300 <= h && h < 360) { - r = c; - g = 0; - b = x; - } - return rgbaToRgb({ - r: Math.round((r + m) * 255), - g: Math.round((g + m) * 255), - b: Math.round((b + m) * 255), - a, - }); -} -/** - * - * Convert RGB string with HEX or Word inside to RGB object - * - * @param {string} rgb Accepts RGB color as string - * - * @return {object} Returns RGB color; {r,g,b} - */ -function rgbStringToRgb(rgb) { - const color = rgb.replace(/rgb[(]|[)]/gm, ""); - // if RGB has hex color definition - if (~rgb.indexOf("#")) - return hexToRgb(color); - // if RGB has word color definition - else if (!(/\d/).test(rgb)) - return colors[color.toLowerCase()]; - // if RGB has RGB color definition - else { - const [r, g, b] = color.split(","); - [r, g, b].forEach(x => x.trim()); - return { r: Number(r), g: Number(g), b: Number(b) }; - } -} -/** - * - * Converts RGB Alpha to RGB object - * - * @param {string} rgba Accepts RGB Alpha color - * - * @return {object} Returns RGB color; {r,g,b} - */ -function rgbaToRgb(rgba) { - let newAlpha = 1; - let RGB = typeof rgba === "object" ? rgba : { r: 255, g: 255, b: 255 }; - const calc = (val) => Math.round(newAlpha * (val / 255) * 255); // Calc best color contrast values - // const calc = val => Math.round((RGB.a * (val / 255) + (RGB.a * ( 0 / 255))) * 255); // Calc best color contrast values - if (typeof rgba === "string") { - const val = rgba.replace(/rgba[(]|[)]/gm, ""); - const color = val.slice(0, val.lastIndexOf(",")).trim(); - const alpha = Number(val.slice(val.lastIndexOf(",") + 1).trim()); - // if RGBA has HEX color definition - if (color[0] === "#") - RGB = hexToRgb(color); - // if RGBA has word color definition - else if (!(/\d/).test(color)) - RGB = colors[color.toLowerCase()]; - // if RGBA has RGB color definition - else { - const [r, g, b] = color.split(","); - [r, g, b].forEach(x => Number(x.trim())); - RGB = { r: Number(r), g: Number(g), b: Number(b) }; - } - // RGB.a = alpha; - newAlpha = alpha === 1 ? 1 : Number((1 - alpha).toPrecision(2)); - } - return { r: calc(RGB.r), g: calc(RGB.g), b: calc(RGB.b) }; -} -/** - * - * Check what color format is being used. - * - * @param {string} color Accepts any color format - * - * @return {object} Returns RGB color; {r,g,b} - */ -function checkColor(color) { - if (color in colors) - return colors[color.toLowerCase()]; - else if (color[0] === "#") - return hexToRgb(color); - else if (~color.indexOf("hsl")) - return hslToRgb(color); - else if (~color.indexOf("rgba")) - return rgbaToRgb(color); - else if (~color.indexOf("rgb")) - return rgbStringToRgb(color); - return { r: 255, g: 255, b: 255 }; -} -/** - * - * Set best contrast color based on a (background) color - * - * @param {string} color Accepts any color format - * - * @return {string} Returns RGB Alpha color - */ -export function setColorBasedOnBackground(color) { - const c = checkColor(color); - const RGB = typeof c === "object" ? c : { r: 255, g: 255, b: 255 }; - // https://www.w3.org/TR/AERT/#color-contrast - const o = Math.round((RGB.r * 299 + RGB.g * 587 + RGB.b * 114) / 1000); - return o > 125 ? "rgba(0,0,0,.87)" : "rgba(255,255,255,.87)"; -} -/** - * - * Expects a color and a contrast value between 0 and 1.' - * It will look at the supplied color's brightness and will start the contrast scale either from #000 (black) or #FFF (white). - * This function will work best when you supply a very dark or very bright color. - * It will return a gray color with the desired contrast which is based on the specified color. - * - * @param {string} color Accepts any color format - * @param {number} contrast Accepts a value between 0 and 1 - * - * @return {string} Returns HEX color - */ -export function setContrastScale(contrast, color) { - if (contrast > 1) - contrast = 1; - if (contrast < 0) - contrast = 0; - const max = 256; - const c = checkColor(color); - const { r, g, b } = typeof c === "object" ? c : { r: 255, g: 255, b: 255 }; - // https://www.w3.org/TR/AERT/#color-contrast - const brightness = Math.round((r * 299 + g * 587 + b * 114) / 1000); - const value = Math.round(brightness > max / 2 ? max - max * contrast : max * contrast); - return RgbToHex(value, value, value); -} diff --git a/theme/styles/native/core/helpers/_functions/mergeobjects.js b/theme/styles/native/core/helpers/_functions/mergeobjects.js deleted file mode 100644 index 0590b3e..0000000 --- a/theme/styles/native/core/helpers/_functions/mergeobjects.js +++ /dev/null @@ -1,33 +0,0 @@ -/** - * Merge 2 objects - * This function will look at every object property of the second object and will override the matching property in the first object - * - * @param {object[]} sources Array of 2 objects - * - * @return {object} Returns merged object - * - */ -export default function (...sources) { - function mergeDeep(target, ...sources) { - function isObject(item) { - return item && typeof item === "object" && !Array.isArray(item); - } - if (!sources.length) - return target; - const source = sources.shift(); - if (isObject(target) && isObject(source)) { - Object.keys(source).forEach((key) => { - if (isObject(source[key])) { - if (!target[key]) - Object.assign(target, { [key]: {} }); - mergeDeep(target[key], source[key]); - } - else { - Object.assign(target, { [key]: source[key] }); - } - }); - } - return mergeDeep(target, ...sources); - } - return mergeDeep({}, ...sources); -} diff --git a/theme/styles/native/core/helpers/_functions/shadeblendconvert.js b/theme/styles/native/core/helpers/_functions/shadeblendconvert.js deleted file mode 100644 index aeb99be..0000000 --- a/theme/styles/native/core/helpers/_functions/shadeblendconvert.js +++ /dev/null @@ -1,94 +0,0 @@ -/** - * Blend two colors or add a shade to color - * Colors can be: - * HEX => (#FFFFFF / #FFF) - * RGB => rgb(255,255,255) - * RGBA => rgba(255,255,255, 0.8) - * - * Usage: - * shade => shadeBlendConvert(-0.5, "#FFF") // Makes #FFF 50% darker - * shade => shadeBlendConvert(0.5, "#000") // Makes #000 50% lighter - * shade => shadeBlendConvert(0.5, "#000", "c") // Makes #000 50% lighter and converts HEX to RGB - * blend => shadeBlendConvert(0.2, "rgb(0,0,0)", "rgb(0,200,0)") // rgb(0,0,0) + rgb(0,200,0) + 20% Blend will become rgb(0,40,0) - * blend => shadeBlendConvert(-0.2, "rgb(0,0,0)", "rgb(0,200,0)") // rgb(0,0,0) + rgb(0,200,0) + -20% Blend will become rgb(0,160,0) - * blend => shadeBlendConvert(0.75, "rgb(200,60,20)", "#67DAF0") // rgb(200,60,20) + #67DAF0 + 75% Blend will become #7fb3b9 - * - * - * @param {number} c Amount of change. Value between -1 and 1 - * @param {string} fromValue HEX / RGB / RGBA Color - * @param {string} toValue HEX / RGB / RGBA Color to blend with. If (to === 'c') return value will be RGB Color - * - * @return {string} Returns HEX color or RGB color if parameter to === 'c' - * - */ -export function shadeBlendConvert(c, fromValue, toValue = undefined) { - if (typeof c != "number" || - c < -1 || - c > 1 || - typeof fromValue != "string" || - (fromValue[0] != "r" && fromValue[0] != "#") || - (toValue && typeof toValue != "string")) - return "red"; //ErrorCheck - const sbcRip = (value) => { - const l = value.length, RGB = []; - if (l > 9) { - const d = value.split(","); - if (d.length < 3 || d.length > 4) - return null; //ErrorCheck - (RGB[0] = i(d[0].split("(")[1])), - (RGB[1] = i(d[1])), - (RGB[2] = i(d[2])), - (RGB[3] = d[3] ? parseFloat(d[3]) : -1); - } - else { - let hex = ""; - if (l == 8 || l == 6 || l < 4) - return null; //ErrorCheck - if (l == 4 || l == 5) - hex = "#" + value[1] + value[1] + value[2] + value[2] + value[3] + value[3] + (l > 4 ? value[4] + "" + value[4] : ""); //3 or 4 digit - let d = i(hex.slice(1), 16); - RGB[0] = (d >> 16) & 255; - RGB[1] = (d >> 8) & 255; - RGB[2] = d & 255; - RGB[3] = -1; - if (l == 9 || l == 5) { - RGB[3] = r((RGB[2] / 255) * 10000) / 10000; - RGB[2] = RGB[1]; - RGB[1] = RGB[0]; - RGB[0] = (d >> 24) & 255; - } - } - return RGB; - }; - let i = parseInt, r = Math.round, th = fromValue.length > 9, h = typeof toValue == "string" ? (toValue.length > 9 ? true : toValue == "c" ? !th : false) : th, b = c < 0, p = b ? c * -1 : c, to = toValue && toValue != "c" ? toValue : b ? "#000000" : "#FFFFFF", f = sbcRip(fromValue), t = sbcRip(to); - if (!f || !t) - return "red"; //ErrorCheck - if (h) - return ("rgb" + - (f[3] > -1 || t[3] > -1 ? "a(" : "(") + - r((t[0] - f[0]) * p + f[0]) + - "," + - r((t[1] - f[1]) * p + f[1]) + - "," + - r((t[2] - f[2]) * p + f[2]) + - (f[3] < 0 && t[3] < 0 - ? ")" - : "," + - (f[3] > -1 && t[3] > -1 ? r(((t[3] - f[3]) * p + f[3]) * 10000) / 10000 : t[3] < 0 ? f[3] : t[3]) + - ")")); - else - return ("#" + - (0x100000000 + - r((t[0] - f[0]) * p + f[0]) * 0x1000000 + - r((t[1] - f[1]) * p + f[1]) * 0x10000 + - r((t[2] - f[2]) * p + f[2]) * 0x100 + - (f[3] > -1 && t[3] > -1 - ? r(((t[3] - f[3]) * p + f[3]) * 255) - : t[3] > -1 - ? r(t[3] * 255) - : f[3] > -1 - ? r(f[3] * 255) - : 255)) - .toString(16) - .slice(1, f[3] > -1 || t[3] > -1 ? undefined : -2)); -} diff --git a/theme/styles/native/core/helpers/activityindicator.js b/theme/styles/native/core/helpers/activityindicator.js deleted file mode 100644 index 97ac202..0000000 --- a/theme/styles/native/core/helpers/activityindicator.js +++ /dev/null @@ -1,30 +0,0 @@ -import { brand } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Activity Indicator - -//== Design Properties -//## Helper classes to change the look and feel of the widget -========================================================================== */ -// Activity indicator Colors -export const activityIndicatorSuccess = { - indicator: { - color: brand.success, - }, -}; -export const activityIndicatorWarning = { - indicator: { - color: brand.warning, - }, -}; -export const activityIndicatorDanger = { - indicator: { - color: brand.danger, - }, -}; diff --git a/theme/styles/native/core/helpers/badge.js b/theme/styles/native/core/helpers/badge.js deleted file mode 100644 index d224531..0000000 --- a/theme/styles/native/core/helpers/badge.js +++ /dev/null @@ -1,47 +0,0 @@ -import { badge } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Badge - -//== Design Properties -//## Helper classes to change the look and feel of the widget -========================================================================== */ -// Badge Colors -export const badgePrimary = { - container: { - backgroundColor: badge.primary.backgroundColor, - }, - caption: { - color: badge.primary.color, - }, -}; -export const badgeSuccess = { - container: { - backgroundColor: badge.success.backgroundColor, - }, - caption: { - color: badge.success.color, - }, -}; -export const badgeWarning = { - container: { - backgroundColor: badge.warning.backgroundColor, - }, - caption: { - color: badge.warning.color, - }, -}; -export const badgeDanger = { - container: { - backgroundColor: badge.danger.backgroundColor, - }, - caption: { - color: badge.danger.color, - }, -}; diff --git a/theme/styles/native/core/helpers/buttons.js b/theme/styles/native/core/helpers/buttons.js deleted file mode 100644 index 80e7c6b..0000000 --- a/theme/styles/native/core/helpers/buttons.js +++ /dev/null @@ -1,208 +0,0 @@ -import { brand, button, contrast, font } from "../variables"; -import merge from "./_functions/mergeobjects"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Button - -//== Design Properties -//## Helper classes to change the look and feel of the widget -========================================================================== */ -// Button Colors -export const btnSecondary = { - container: { - borderColor: button.secondary.borderColor, - backgroundColor: button.secondary.backgroundColor, - }, - icon: { - color: button.secondary.color, - }, - caption: { - color: button.secondary.color, - }, -}; -export const btnSuccess = { - container: { - borderColor: button.success.borderColor, - backgroundColor: button.success.backgroundColor, - }, - icon: { - color: button.success.color, - }, - caption: { - color: button.success.color, - }, -}; -export const btnWarning = { - container: { - borderColor: button.warning.borderColor, - backgroundColor: button.warning.backgroundColor, - }, - icon: { - color: button.warning.color, - }, - caption: { - color: button.warning.color, - }, -}; -export const btnDanger = { - container: { - borderColor: button.danger.borderColor, - backgroundColor: button.danger.backgroundColor, - }, - icon: { - color: button.danger.color, - }, - caption: { - color: button.danger.color, - }, -}; -export const btnPrimaryInversed = { - container: { - borderColor: button.primary.color, - backgroundColor: button.primary.color, - }, - icon: { - color: button.primary.backgroundColor, - }, - caption: { - color: button.primary.backgroundColor, - }, -}; -// -//== Extra Classes -//## Helper classes to change the look and feel of the widget -//-------------------------------------------------------------------------------------------------------------------// -export const btnSecondaryInversed = { - container: { - borderColor: button.secondary.inversedColor, - backgroundColor: button.secondary.backgroundColor, - }, - icon: { - color: button.secondary.inversedColor, - }, - caption: { - color: button.secondary.inversedColor, - }, -}; -// -// Button Icon Only -export const btnIcon = { - container: { - borderWidth: 0, - backgroundColor: "transparent", - paddingVertical: 0, - paddingHorizontal: 0, - }, - icon: { - color: font.color, - }, - caption: { - fontSize: 0, - }, -}; -export const btnIconPrimary = merge(btnIcon, { - icon: { - color: button.primary.backgroundColor, - }, -}); -export const btnIconSecondary = merge(btnIcon, { - icon: { - color: contrast.low, - }, -}); -export const btnIconSuccess = merge(btnIcon, { - icon: { - color: button.success.backgroundColor, - }, -}); -export const btnIconWarning = merge(btnIcon, { - icon: { - color: button.warning.backgroundColor, - }, -}); -export const btnIconDanger = merge(btnIcon, { - icon: { - color: button.danger.backgroundColor, - }, -}); -export const btnIconWhite = merge(btnIcon, { - icon: { - color: "#FFF", - }, -}); -// -export const btnIconGrayRounded = { - container: { - height: 80, - width: 80, - padding: 10, - borderRadius: 20, - borderWidth: 0, - backgroundColor: contrast.lowest, - }, - icon: { - size: 30, - color: contrast.high, - }, - caption: { - fontSize: 0, - }, -}; -// -// Round Button Icon With Background -export const btnIconPrimaryBackground = { - container: { - width: 40, - height: 40, - borderRadius: 20, - paddingVertical: 0, - paddingHorizontal: 0, - }, - icon: { - width: "100%", - height: "100%", - alignItems: "center", - justifyContent: "center", - size: button.fontSizeIconLarge, - color: button.primary.color, - }, -}; -// -// -// Text only -export const btnAsText = { - container: { - maxHeight: 22, - borderWidth: 0, - borderRadius: 0, - rippleColor: contrast.lowest, - backgroundColor: "transparent", - paddingVertical: 0, - paddingHorizontal: 0, - }, - icon: { - color: brand.primary, - size: button.fontSizeIcon, - }, - caption: { - color: brand.primary, - fontWeight: font.weightSemiBold, - fontSize: button.fontSize, - }, -}; -// -// Button sizes -export const btnLarge = { - icon: { - size: button.fontSizeIconLarge, - }, - caption: { - fontSize: button.fontSizeLarge, - }, -}; diff --git a/theme/styles/native/core/helpers/floatingactionbutton.js b/theme/styles/native/core/helpers/floatingactionbutton.js deleted file mode 100644 index 5d37bed..0000000 --- a/theme/styles/native/core/helpers/floatingactionbutton.js +++ /dev/null @@ -1,30 +0,0 @@ -import { brand } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Floating Action Button - -//== Design Properties -//## Helper classes to change the look and feel of the widget -========================================================================== */ -// Floating Action Button Colors -export const floatingActionButtonSuccess = { - button: { - backgroundColor: brand.success, - }, -}; -export const floatingActionButtonWarning = { - button: { - backgroundColor: brand.warning, - }, -}; -export const floatingActionButtonDanger = { - button: { - backgroundColor: brand.danger, - }, -}; diff --git a/theme/styles/native/core/helpers/helperclasses.js b/theme/styles/native/core/helpers/helperclasses.js deleted file mode 100644 index 50ba7fb..0000000 --- a/theme/styles/native/core/helpers/helperclasses.js +++ /dev/null @@ -1,73 +0,0 @@ -import { Platform } from "react-native"; -import { background, border } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -*/ -// Hide on Android -export const hideOnAndroid = { - container: { - display: Platform.select({ ios: "flex", android: "none" }), - }, -}; -// Hide on iOS -export const hideOnIos = { - container: { - display: Platform.select({ ios: "none", android: "flex" }), - }, -}; -// -//== Background Colors -export const backgroundPrimary = { - container: { - backgroundColor: background.primary, - }, -}; -export const backgroundSecondary = { - container: { - backgroundColor: background.secondary, - }, -}; -export const backgroundBrandPrimary = { - container: { - backgroundColor: background.brandPrimary, - }, -}; -export const backgroundBrandSuccess = { - container: { - backgroundColor: background.brandSuccess, - }, -}; -export const backgroundBrandWarning = { - container: { - backgroundColor: background.brandWarning, - }, -}; -export const backgroundBrandDanger = { - container: { - backgroundColor: background.brandDanger, - }, -}; -export const backgroundGray = { - container: { - backgroundColor: background.gray, - }, -}; -// -// borders -export const borderTop = { - container: { - borderColor: border.color, - borderTopWidth: border.width, - }, -}; -export const borderBottom = { - container: { - borderColor: border.color, - borderBottomWidth: border.width, - }, -}; diff --git a/theme/styles/native/core/helpers/images.js b/theme/styles/native/core/helpers/images.js deleted file mode 100644 index cdfaaa2..0000000 --- a/theme/styles/native/core/helpers/images.js +++ /dev/null @@ -1,55 +0,0 @@ -import { border } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Image - -//== Design Properties -//## Helper classes to change the look and feel of the widget -========================================================================== */ -// -// -//== Extra Classes -//## Helper classes to change the look and feel of the widget -//-------------------------------------------------------------------------------------------------------------------// -// Image Sizes -export const thumbnail = { - image: { - width: "100%", - height: "auto", - aspectRatio: 1, - borderRadius: border.radius, - }, -}; -export const avatarSmall = { - image: { - width: 60, - height: 60, - borderRadius: 30, - }, -}; -export const avatarMedium = { - image: { - width: 80, - height: 80, - borderRadius: 40, - }, -}; -export const avatarLarge = { - image: { - width: 120, - height: 120, - borderRadius: 60, - }, -}; -export const inputIcon = { - image: { - width: 30, - height: 30, - }, -}; diff --git a/theme/styles/native/core/helpers/listviews.js b/theme/styles/native/core/helpers/listviews.js deleted file mode 100644 index 8d98e1f..0000000 --- a/theme/styles/native/core/helpers/listviews.js +++ /dev/null @@ -1,41 +0,0 @@ -import { listView } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - List View - -//== Design Properties -//## Helper classes to change the look and feel of the widget -========================================================================== */ -// List item dividers -export const listItemBorderBottom = { - listItem: { - borderColor: listView.border.color, - borderBottomWidth: listView.border.width, - }, -}; -export const listItemBorderRight = { - listItem: { - borderColor: listView.border.color, - borderRightWidth: listView.border.width, - }, -}; -// -//== Extra Classes -//## Helper classes to change the look and feel of the widget -//-------------------------------------------------------------------------------------------------------------------// -export const listItemIconSmall = { - icon: { - size: 16, - }, -}; -export const listItemIconLarge = { - icon: { - size: 24, - }, -}; diff --git a/theme/styles/native/core/helpers/listviewswipe.js b/theme/styles/native/core/helpers/listviewswipe.js deleted file mode 100644 index 5f09712..0000000 --- a/theme/styles/native/core/helpers/listviewswipe.js +++ /dev/null @@ -1,37 +0,0 @@ -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - List View Swipe - -//== Design Properties -//## Helper classes to change the look and feel of the widget -========================================================================== */ -export const listViewSwipeSmallPanels = { - leftAction: { - // PanelSize & All ViewStyle properties are allowed - panelSize: 150, - }, - rightAction: { - // PanelSize & All ViewStyle properties are allowed - panelSize: 150, - }, -}; -export const listViewSwipeLargePanels = { - leftAction: { - // PanelSize & All ViewStyle properties are allowed - panelSize: 250, - }, - rightAction: { - // PanelSize & All ViewStyle properties are allowed - panelSize: 250, - }, -}; -// -//== Extra Classes -//## Helper classes to change the look and feel of the widget -//-------------------------------------------------------------------------------------------------------------------// diff --git a/theme/styles/native/core/helpers/maps.js b/theme/styles/native/core/helpers/maps.js deleted file mode 100644 index 20d3491..0000000 --- a/theme/styles/native/core/helpers/maps.js +++ /dev/null @@ -1,54 +0,0 @@ -import { border, brand } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Maps - -//== Design Properties -//## Helper classes to change the look and feel of the widget -========================================================================== */ -// Maps Colors -export const mapsSuccess = { - marker: { - color: brand.success, - }, -}; -export const mapsWarning = { - marker: { - color: brand.warning, - }, -}; -export const mapsDanger = { - marker: { - color: brand.danger, - }, -}; -// -// Maps Size -export const mapsSquare = { - container: { - aspectRatio: 1 / 1, - }, -}; -export const mapsMaxSpace = { - container: { - flex: 1, - aspectRatio: undefined, - }, -}; -// -//== Extra Classes -//## Helper classes to change the look and feel of the widget -//-------------------------------------------------------------------------------------------------------------------// -// Maps Shape -export const mapsRounded = { - container: { - borderRadius: border.radius, - overflow: "hidden", - }, -}; diff --git a/theme/styles/native/core/helpers/progressbar.js b/theme/styles/native/core/helpers/progressbar.js deleted file mode 100644 index 92298fc..0000000 --- a/theme/styles/native/core/helpers/progressbar.js +++ /dev/null @@ -1,58 +0,0 @@ -import { Platform } from "react-native"; -import { anyColorToRgbString } from "./_functions/convertcolors"; -import { brand } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Progress Bar - -//== Design Properties -//## Helper classes to change the look and feel of the widget -========================================================================== */ -// Progress Bar Color -export const progressBarSuccess = { - bar: { - borderColor: Platform.select({ ios: brand.success }), - backgroundColor: Platform.select({ android: `rgba(${anyColorToRgbString(brand.success)},0.2)` }), - }, - fill: { - backgroundColor: brand.success, - }, -}; -export const progressBarWarning = { - bar: { - borderColor: Platform.select({ ios: brand.warning }), - backgroundColor: Platform.select({ android: `rgba(${anyColorToRgbString(brand.warning)},0.2)` }), - }, - fill: { - backgroundColor: brand.warning, - }, -}; -export const progressBarDanger = { - bar: { - borderColor: Platform.select({ ios: brand.danger }), - backgroundColor: Platform.select({ android: `rgba(${anyColorToRgbString(brand.danger)},0.2)` }), - }, - fill: { - backgroundColor: brand.danger, - }, -}; -// -// Progress Bar Size -export const progressBarSmall = { - bar: { - height: 3, - borderRadius: Platform.select({ ios: 2 }), - }, -}; -export const progressBarLarge = { - bar: { - height: 10, - borderRadius: Platform.select({ ios: 8 }), - }, -}; diff --git a/theme/styles/native/core/helpers/progresscircle.js b/theme/styles/native/core/helpers/progresscircle.js deleted file mode 100644 index 393f0d7..0000000 --- a/theme/styles/native/core/helpers/progresscircle.js +++ /dev/null @@ -1,60 +0,0 @@ -import { brand, contrast, font } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Progress Circle - -//== Design Properties -//## Helper classes to change the look and feel of the widget -========================================================================== */ -// Progress Circle Color -export const progressCircleSuccess = { - fill: { - backgroundColor: brand.success, - }, - text: { - color: contrast.regular, - }, -}; -export const progressCircleWarning = { - fill: { - backgroundColor: brand.warning, - }, - text: { - color: contrast.regular, - }, -}; -export const progressCircleDanger = { - fill: { - backgroundColor: brand.danger, - }, - text: { - color: contrast.regular, - }, -}; -export const progressCircleGray = { - fill: { - backgroundColor: contrast.regular, - }, - text: { - color: contrast.regular, - }, -}; -// -// Sizes -export const progressCircleSmall = { - circle: { - size: 50, - }, - fill: { - width: 3, - }, - text: { - fontSize: font.sizeSmall, - }, -}; diff --git a/theme/styles/native/core/helpers/slider.js b/theme/styles/native/core/helpers/slider.js deleted file mode 100644 index e1f9443..0000000 --- a/theme/styles/native/core/helpers/slider.js +++ /dev/null @@ -1,40 +0,0 @@ -import { Platform } from "react-native"; -import { brand, contrast } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Slider - -//== Design Properties -//## Helper classes to change the look and feel of the widget -========================================================================== */ -// Slider Color -export const sliderSuccess = { - highlight: { - backgroundColor: brand.success, - }, - highlightDisabled: { - backgroundColor: Platform.select({ ios: brand.success, android: contrast.low }), - }, -}; -export const sliderWarning = { - highlight: { - backgroundColor: brand.warning, - }, - highlightDisabled: { - backgroundColor: Platform.select({ ios: brand.warning, android: contrast.low }), - }, -}; -export const sliderDanger = { - highlight: { - backgroundColor: brand.danger, - }, - highlightDisabled: { - backgroundColor: Platform.select({ ios: brand.danger, android: contrast.low }), - }, -}; diff --git a/theme/styles/native/core/helpers/tabcontainer.js b/theme/styles/native/core/helpers/tabcontainer.js deleted file mode 100644 index 2d64f41..0000000 --- a/theme/styles/native/core/helpers/tabcontainer.js +++ /dev/null @@ -1,33 +0,0 @@ -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Tab Container - -//== Design Properties -//## Helper classes to change the look and feel of the widget -========================================================================== */ -// Enable scroll for the tab bar -export const tabContainerScroll = { - tabBar: { - scrollEnabled: true, - }, -}; -// -//== Extra Classes -//## Helper classes to change the look and feel of the widget -//-------------------------------------------------------------------------------------------------------------------// -// Tab container as content of page -export const tabContainerMinimal = { - container: { - backgroundColor: "transparent", - }, - tabBar: { - backgroundColor: "transparent", - elevation: 0, - }, -}; diff --git a/theme/styles/native/core/helpers/textbox.js b/theme/styles/native/core/helpers/textbox.js deleted file mode 100644 index ad07594..0000000 --- a/theme/styles/native/core/helpers/textbox.js +++ /dev/null @@ -1,34 +0,0 @@ -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Text Box - -//== Design Properties -//## Helper classes to change the look and feel of the widget -========================================================================== */ -// Text Box Color -export const textInputCapitalizeNone = { - input: { - autoCapitalize: "none", - }, -}; -export const textInputCapitalizeCharacters = { - input: { - autoCapitalize: "characters", - }, -}; -export const textInputCapitalizeWords = { - input: { - autoCapitalize: "words", - }, -}; -export const textInputCapitalizeSentences = { - input: { - autoCapitalize: "sentences", - }, -}; diff --git a/theme/styles/native/core/helpers/typography.js b/theme/styles/native/core/helpers/typography.js deleted file mode 100644 index b960e00..0000000 --- a/theme/styles/native/core/helpers/typography.js +++ /dev/null @@ -1,150 +0,0 @@ -import { brand, contrast, font } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Text - -//== Design Properties -//## Helper classes to change the look and feel of the widget -========================================================================== */ -// Text Colors -export const textPrimary = { - text: { - color: brand.primary, - }, -}; -export const textSuccess = { - text: { - color: brand.success, - }, -}; -export const textWarning = { - text: { - color: brand.warning, - }, -}; -export const textDanger = { - text: { - color: brand.danger, - }, -}; -export const textWhite = { - text: { - color: "#FFF", - }, -}; -// -export const textContrastLowest = { - text: { - color: contrast.lowest, - }, -}; -export const textContrastLower = { - text: { - color: contrast.lower, - }, -}; -export const textContrastLow = { - text: { - color: contrast.low, - }, -}; -export const textContrastDefault = { - text: { - color: contrast.regular, - }, -}; -export const textContrastHigh = { - text: { - color: contrast.high, - }, -}; -export const textContrastHigher = { - text: { - color: contrast.higher, - }, -}; -export const textContrastHighest = { - text: { - color: contrast.highest, - }, -}; -// -// Text Alignment -export const textLeft = { - text: { - textAlign: "left", - }, -}; -export const textCenter = { - text: { - textAlign: "center", - }, -}; -export const textRight = { - text: { - textAlign: "right", - }, -}; -// -// Text Weights -export const textLight = { - text: { - fontWeight: font.weightLight, - }, -}; -export const textNormal = { - text: { - fontWeight: font.weightNormal, - }, -}; -export const textSemiBold = { - text: { - fontWeight: font.weightSemiBold, - }, -}; -export const textBold = { - text: { - fontWeight: font.weightBold, - }, -}; -// -// Text Sizes -export const textSmall = { - text: { - fontSize: font.sizeSmall, - lineHeight: font.sizeSmall + 2, - }, -}; -export const textLarge = { - text: { - fontSize: font.sizeLarge, - lineHeight: font.sizeLarge + 2, - }, -}; -// -//== Extra Classes -//## Helper classes to change the look and feel of the widget -//-------------------------------------------------------------------------------------------------------------------// -// -// Text Transformations -export const textLowercase = { - text: { - textTransform: "lowercase", - }, -}; -export const textUppercase = { - text: { - textTransform: "uppercase", - }, -}; -export const textCapitalize = { - text: { - textTransform: "capitalize", - }, -}; diff --git a/theme/styles/native/core/manifest.json b/theme/styles/native/core/manifest.json deleted file mode 100644 index cddd493..0000000 --- a/theme/styles/native/core/manifest.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "Atlas-UI-Framework", - "version": "2.6.7" -} \ No newline at end of file diff --git a/theme/styles/native/core/variables.js b/theme/styles/native/core/variables.js deleted file mode 100644 index 7d8a092..0000000 --- a/theme/styles/native/core/variables.js +++ /dev/null @@ -1,287 +0,0 @@ -import { Platform } from "react-native"; -import * as custom from "../app/custom-variables"; -import adjustFont, { height, width } from "./helpers/_functions/adjustfont"; -import { anyColorToRgbString, setColorBasedOnBackground, setContrastScale } from "./helpers/_functions/convertcolors"; -import merge from "./helpers/_functions/mergeobjects"; -// -// -//== Global variables -//## Variables to be used during styling -//-------------------------------------------------------------------------------------------------------------------// -// System defined read-only values -export const deviceHeight = height; -export const deviceWidth = width; -// -// Brand Style -let brand = { - primary: "#0595DB", - success: "#76CA02", - warning: "#f99b1d", - danger: "#ed1c24", - primaryLight: `rgba(${anyColorToRgbString("#0595DB")}, 0.14)`, - successLight: `rgba(${anyColorToRgbString("#76CA02")}, 0.14)`, - warningLight: `rgba(${anyColorToRgbString("#f99b1d")}, 0.14)`, - dangerLight: `rgba(${anyColorToRgbString("#ed1c24")}, 0.14)`, -}; -brand = merge(brand, custom.brand || {}); -// -// Background colors -let background = { - primary: "#FFF", - secondary: setContrastScale(0.03, "#FFF"), - gray: "#c6c6cc", - brandPrimary: brand.primary, - brandSuccess: brand.success, - brandWarning: brand.warning, - brandDanger: brand.danger, -}; -background = merge(background, custom.background || {}); -// -// Contrast (Gray) colors based on background.primary -let contrast = { - highest: setContrastScale(0.95, background.primary), - higher: setContrastScale(0.8, background.primary), - high: setContrastScale(0.65, background.primary), - regular: setContrastScale(0.5, background.primary), - low: setContrastScale(0.35, background.primary), - lower: setContrastScale(0.2, background.primary), - lowest: setContrastScale(0.05, background.primary), -}; -contrast = merge(contrast, custom.contrast || {}); -// -// Border Style -let border = { - color: setContrastScale(0.17, background.primary), - width: 1, - radius: 5, -}; -border = merge(border, custom.border || {}); -// -// Font Styles -let font = { - size: adjustFont(14), - sizeSmall: adjustFont(12), - sizeLarge: adjustFont(18), - sizeH1: adjustFont(31), - sizeH2: adjustFont(26), - sizeH3: adjustFont(24), - sizeH4: adjustFont(18), - sizeH5: adjustFont(14), - sizeH6: adjustFont(12), - color: setColorBasedOnBackground(background.primary), - colorDisabled: "#9DA1A8", - labelColorDisabled: "#474E5C", - weightLight: "100", - weightNormal: "normal", - weightSemiBold: "600", - weightBold: "bold", - family: Platform.select({ ios: "System", android: "normal" }), -}; -font = merge(font, custom.font || {}); -// -// Spacing -let spacing = { - smallest: 5, - smaller: 10, - small: 15, - regular: 20, - large: 25, - larger: 30, - largest: 40, -}; -spacing = merge(spacing, custom.spacing || {}); -// -// Button Styles -let button = { - fontSize: font.sizeSmall, - fontSizeLarge: font.size, - fontWeight: font.weightBold, - fontSizeIcon: font.sizeSmall, - fontSizeIconLarge: font.size, - borderRadius: border.radius, - paddingVertical: spacing.smaller, - paddingHorizontal: spacing.regular, - header: { - color: contrast.highest, - borderColor: "transparent", - backgroundColor: "transparent", - fontSize: font.sizeSmall, - fontSizeIcon: font.sizeSmall, - paddingLeft: 0, - paddingRight: 10, - }, - primary: { - color: "#FFF", - colorDisabled: font.colorDisabled, - borderColor: brand.primary, - borderColorDisabled: border.color, - backgroundColor: brand.primary, - backgroundColorDisabled: border.color, - }, - secondary: { - color: brand.primary, - borderColor: brand.primary, - backgroundColor: "transparent", - inversedColor: "#FFF", - }, - success: { - color: "#FFF", - borderColor: brand.success, - backgroundColor: brand.success, - }, - warning: { - color: "#FFF", - borderColor: brand.warning, - backgroundColor: brand.warning, - }, - danger: { - color: "#FFF", - borderColor: brand.danger, - backgroundColor: brand.danger, - }, -}; -button = merge(button, custom.button || {}); -// -//Input Styles -let input = { - // Colors - color: font.color, - colorDisabled: font.colorDisabled, - errorColor: brand.danger, - labelColor: font.color, - labelColorDisabled: font.labelColorDisabled, - borderColor: contrast.lower, - borderColorFocused: brand.primary, - backgroundColor: background.primary, - backgroundColorDisabled: background.secondary, - selectionColor: contrast.lower, - placeholderTextColor: contrast.regular, - underlineColorAndroid: "transparent", - inputContainerUnderlayColor: `rgba(${anyColorToRgbString(contrast.low)},0.4)`, - // Sizes - fontSize: font.size, - fontFamily: font.family, - borderWidth: border.width, - borderRadius: border.radius, - // Alignment - textAlign: "left", - paddingHorizontal: spacing.smaller, - paddingVertical: spacing.small, -}; -input = merge(input, custom.input || {}); -// -// Navigation Styles -let navigation = { - statusBar: { - backgroundColor: background.primary, - barStyle: custom.darkMode ? "light-content" : "dark-content", - }, - topBar: { - backgroundColor: background.primary, - backButtonColor: contrast.highest, - titleColor: contrast.highest, - titleFontSize: Platform.select({ android: font.sizeH4, ios: font.sizeH5 }), - }, - bottomBar: { - color: contrast.high, - selectedTextColor: contrast.high, - selectedIconColor: brand.primary, - backgroundColor: background.primary, - fontSize: font.sizeSmall, - iconSize: font.sizeSmall, - }, - progressOverlay: { - color: font.color, - activityIndicatorColor: font.color, - backgroundColor: `rgba(0, 0, 0, 0.5)`, - containerBackgroundColor: background.secondary, - fontSize: font.size, - borderRadius: border.radius, - elevation: 1.5, - shadowColor: "#000", - shadowOpacity: 0.1, - shadowRadius: 10, - }, -}; -navigation = merge(navigation, custom.navigation || {}); -// -// Badge Styles -let badge = { - fontWeight: font.weightBold, - borderRadius: 30, - paddingVertical: 3, - paddingHorizontal: spacing.smaller, - default: { - color: contrast.higher, - backgroundColor: contrast.lower, - }, - primary: { - color: brand.primary, - backgroundColor: brand.primaryLight, - }, - success: { - color: brand.success, - backgroundColor: brand.successLight, - }, - warning: { - color: brand.warning, - backgroundColor: brand.warningLight, - }, - danger: { - color: brand.danger, - backgroundColor: brand.dangerLight, - }, -}; -badge = merge(badge, custom.badge || {}); -// -// Tabcontainer Styles -let tabContainer = { - tabBar: { - pressColor: contrast.lower, - backgroundColor: background.primary, - }, - indicator: { - backgroundColor: brand.primary, - height: Platform.select({ ios: 2, android: 2 }), - }, - label: { - color: contrast.highest, - fontWeight: font.weightBold, - textTransform: "uppercase", - }, - activeLabel: { - color: brand.primary, - fontWeight: font.weightBold, - textTransform: "uppercase", - }, - badgeContainer: { - borderRadius: badge.borderRadius, - backgroundColor: badge.default.backgroundColor, - paddingVertical: badge.paddingVertical, - paddingHorizontal: badge.paddingHorizontal, - marginLeft: 8 - }, - badgeCaption: { - fontSize: font.size, - color: badge.default.color, - fontWeight: badge.fontWeight, - } -}; -tabContainer = merge(tabContainer, custom.tabContainer || {}); -// -// Listview Styles -let listView = { - border: { - color: border.color, - width: border.width, - }, -}; -listView = merge(listView, custom.listView || {}); -// -// Layoutgrid Styles -let layoutGrid = { - gutterSize: 15, -}; -layoutGrid = merge(layoutGrid, custom.layoutGrid || {}); -// -export { brand, background, border, contrast, font, spacing, button, input, navigation, tabContainer, listView, layoutGrid, badge, }; diff --git a/theme/styles/native/core/widgets/activityindicator.js b/theme/styles/native/core/widgets/activityindicator.js deleted file mode 100644 index 088542b..0000000 --- a/theme/styles/native/core/widgets/activityindicator.js +++ /dev/null @@ -1,23 +0,0 @@ -import { brand } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Activity Indicator - - Default Class For Mendix Activity Indicator Widget -========================================================================== */ -export const com_mendix_widget_native_activityindicator_ActivityIndicator = { - container: { - // All ViewStyle properties are allowed - }, - indicator: { - // Color and size are allowed - color: brand.primary, - size: "large", - }, -}; diff --git a/theme/styles/native/core/widgets/animation.js b/theme/styles/native/core/widgets/animation.js deleted file mode 100644 index bfef391..0000000 --- a/theme/styles/native/core/widgets/animation.js +++ /dev/null @@ -1,15 +0,0 @@ -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Animation - - Default Class For Mendix Animation Widget -========================================================================== */ -export const com_mendix_widget_native_animation_Animation = { - container: {}, -}; diff --git a/theme/styles/native/core/widgets/backgroundimage.js b/theme/styles/native/core/widgets/backgroundimage.js deleted file mode 100644 index bd79f14..0000000 --- a/theme/styles/native/core/widgets/backgroundimage.js +++ /dev/null @@ -1,19 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. -// -/* ========================================================================== - Background Image - - Default Class For Mendix Background Image Widget -========================================================================== */ -export const com_mendix_widget_native_backgroundimage_BackgroundImage = { - container: { - // All ViewStyle properties are allowed - }, - image: { - // svgColor and all ImageStyle properties are allowed - }, -}; diff --git a/theme/styles/native/core/widgets/badge.js b/theme/styles/native/core/widgets/badge.js deleted file mode 100644 index d34de33..0000000 --- a/theme/styles/native/core/widgets/badge.js +++ /dev/null @@ -1,29 +0,0 @@ -import { badge, font } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Badge - - Default Class For Mendix Badge Widget -========================================================================== */ -export const com_mendix_widget_native_badge_Badge = { - container: { - // All ViewStyle properties are allowed - borderRadius: badge.borderRadius, - backgroundColor: badge.default.backgroundColor, - paddingVertical: badge.paddingVertical, - paddingHorizontal: badge.paddingHorizontal, - }, - caption: { - // All TextStyle properties are allowed - color: badge.default.color, - fontFamily: font.family, - fontWeight: badge.fontWeight, - marginTop: -1, - }, -}; diff --git a/theme/styles/native/core/widgets/barchart.js b/theme/styles/native/core/widgets/barchart.js deleted file mode 100644 index cfcf64d..0000000 --- a/theme/styles/native/core/widgets/barchart.js +++ /dev/null @@ -1,169 +0,0 @@ -import { border, brand, font, spacing } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Line Chart - - Default Class For Mendix Line Chart Widget -========================================================================== */ -// eslint-disable-next-line @typescript-eslint/camelcase -export const com_mendix_widget_native_barchart_BarChart = { - container: { - // All ViewStyle properties are allowed - }, - errorMessage: { - // All TextStyle properties are allowed - fontFamily: font.family, - fontSize: font.sizeSmall, - fontWeight: font.weightNormal - }, - chart: { - // All ViewStyle properties are allowed - }, - grid: { - /* - Allowed properties: - - backgroundColor (string) - - dashArray (string) - - lineColor (string) - - padding (number) - - paddingBottom (number) - - paddingHorizontal (number) - - paddingLeft (number) - - paddingRight (number) - - paddingTop (number) - - paddingVertical (number) - - width (number) - */ - lineColor: border.color, - paddingBottom: 32, - paddingLeft: 32, - paddingRight: 8, - paddingTop: 8 - }, - xAxis: { - /* - Allowed properties: - - color (string) - - dashArray (string) - - fontFamily (string) - - fontSize (number) - - fontStyle ("normal" or "italic") - - fontWeight ("normal" or "bold" or "100" or "200" or "300" or "400" or "500" or "600" or "700" or "800" or "900") - - lineColor (string) - - width (number) - */ - color: font.color, - fontFamily: font.family, - fontSize: font.sizeSmall, - fontWeight: font.weightNormal, - lineColor: border.color, - label: { - /* - All TextStyle properties are allowed and: - - relativePositionGrid ("bottom" or "right") - */ - color: font.color, - alignSelf: "center", - marginHorizontal: 0, - marginVertical: spacing.smallest, - fontFamily: font.family, - fontSize: font.sizeSmall, - fontWeight: font.weightNormal, - relativePositionGrid: "bottom" - }, - }, - yAxis: { - /* - Allowed properties: - - color (string) - - dashArray (string) - - fontFamily (string) - - fontSize (number) - - fontStyle ("normal" or "italic") - - fontWeight ("normal" or "bold" or "100" or "200" or "300" or "400" or "500" or "600" or "700" or "800" or "900") - - lineColor (string) - - width (number) - */ - color: font.color, - fontFamily: font.family, - fontSize: font.sizeSmall, - fontWeight: font.weightNormal, - lineColor: border.color, - label: { - /* - All TextStyle properties are allowed and: - - relativePositionGrid ("top" or "left") - */ - color: font.color, - marginHorizontal: 0, - marginVertical: spacing.smallest, - fontFamily: font.family, - fontSize: font.sizeSmall, - fontWeight: font.weightNormal, - relativePositionGrid: "top" - }, - }, - bars: { - /* - Allowed properties: - - barColorPalette (string with array of colors separated by ';') - - barsOffset (number) - - */ - barColorPalette: Object.values(brand) - .map((color, index, brandColors) => (index === brandColors.length - 1 ? color : `${color};`)) - .join(""), - barsOffset: 20, - customBarStyles: { - your_static_or_dynamic_attribute_value: { - bar: { - /* - Allowed properties: - - ending (number) - - barColor (string) - - width (number) - */ - }, - label: { - /* - Allowed properties: - - fontFamily (string) - - fontSize (number) - - fontStyle ("normal" or "italic") - - fontWeight ("normal" or "bold" or "100" or "200" or "300" or "400" or "500" or "600" or "700" or "800" or "900") - */ - } - } - } - }, - legend: { - container: { - // All ViewStyle properties are allowed - justifyContent: "flex-start", - marginHorizontal: 0, - marginVertical: spacing.smallest - }, - item: { - // All ViewStyle properties are allowed - padding: 0, - paddingRight: spacing.smaller - }, - indicator: { - // All ViewStyle properties are allowed - marginRight: spacing.smallest - }, - label: { - // All TextStyle properties are allowed - color: font.color, - fontFamily: font.family, - fontSize: font.sizeSmall, - fontWeight: font.weightNormal - } - } -}; diff --git a/theme/styles/native/core/widgets/bottomsheet.js b/theme/styles/native/core/widgets/bottomsheet.js deleted file mode 100644 index f4e3177..0000000 --- a/theme/styles/native/core/widgets/bottomsheet.js +++ /dev/null @@ -1,67 +0,0 @@ -import { background, border, brand, contrast, font } from "../variables"; -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. -// -/* ========================================================================== - Bottom Sheet - - Default Class For Mendix Bottom Sheet Widget -========================================================================== */ -export const com_mendix_widget_native_bottomsheet_BottomSheet = { - container: { - // All ViewStyle properties are allowed - backgroundColor: background.primary, - borderRadius: border.radius, - elevation: 20, - shadowColor: "#000", - shadowOpacity: 0.1, - shadowRadius: 6, - shadowOffset: { - width: 0, - height: -4, - }, - }, - containerWhenExpandedFullscreen: { - // All ViewStyle properties are allowed - height: "100%", - alignSelf: "stretch", - backgroundColor: background.primary, - }, - modal: { - // All ViewStyle properties are allowed - margin: 0, - justifyContent: "flex-end", - }, - modalItems: { - container: { - // rippleColor & All TextStyle properties are allowed - height: 50, - marginTop: 0, - rippleColor: contrast.lower, - backgroundColor: background.primary, - }, - defaultStyle: { - // All TextStyle properties are allowed - fontSize: 16, - color: font.color, - }, - primaryStyle: { - // All TextStyle properties are allowed - fontSize: 16, - color: brand.primary, - }, - dangerStyle: { - // All TextStyle properties are allowed - fontSize: 16, - color: brand.danger, - }, - customStyle: { - // All TextStyle properties are allowed - fontSize: 16, - color: font.color, - }, - }, -}; diff --git a/theme/styles/native/core/widgets/buttons.js b/theme/styles/native/core/widgets/buttons.js deleted file mode 100644 index 7813ea6..0000000 --- a/theme/styles/native/core/widgets/buttons.js +++ /dev/null @@ -1,72 +0,0 @@ -import { button, contrast, font } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Button - - Default Class For Mendix Button Widget -========================================================================== */ -export const ActionButton = { - container: { - // Ripplecolor and all ViewStyle properties are allowed - borderWidth: 1, - borderStyle: "solid", - rippleColor: contrast.lowest, - borderColor: button.primary.borderColor, - backgroundColor: button.primary.backgroundColor, - alignItems: "center", - justifyContent: "center", - borderRadius: button.borderRadius, - paddingVertical: button.paddingVertical, - paddingHorizontal: button.paddingHorizontal, - }, - containerDisabled: { - // All ViewStyle properties are allowed - borderColor: button.primary.borderColorDisabled, - backgroundColor: button.primary.backgroundColorDisabled, - }, - icon: { - // size and color are allowed - color: button.primary.color, - size: button.fontSizeIcon, - }, - iconDisabled: { - // size and color are allowed - color: button.primary.colorDisabled, - }, - caption: { - // All TextStyle properties are allowed - color: button.primary.color, - fontSize: button.fontSize, - fontFamily: font.family, - fontWeight: button.fontWeight, - }, - captionDisabled: { - // All TextStyle properties are allowed - color: button.primary.colorDisabled, - }, -}; -// -// Default style for button inside a header -export const ActionButtonHeader = { - container: { - borderColor: button.header.borderColor, - backgroundColor: button.header.backgroundColor, - paddingLeft: button.header.paddingLeft, - paddingRight: button.header.paddingRight, - }, - icon: { - color: button.header.color, - size: button.header.fontSizeIcon, - }, - caption: { - color: button.header.color, - fontSize: button.header.fontSize, - fontFamily: font.family, - }, -}; diff --git a/theme/styles/native/core/widgets/carousel.js b/theme/styles/native/core/widgets/carousel.js deleted file mode 100644 index 09b071e..0000000 --- a/theme/styles/native/core/widgets/carousel.js +++ /dev/null @@ -1,119 +0,0 @@ -import { brand, contrast, font, spacing } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Button - - Default Class For Mendix Carousel Widget -========================================================================== */ -// Card -const carouselFullWidthLayout = { - slideItem: { - // All ViewStyle properties are allowed - height: 250, - }, - inactiveSlideItem: { - // Only opacity and scale are allowed - }, - pagination: { - container: { - // All ViewStyle properties are allowed - position: "absolute", - bottom: 0, - width: "100%", - justifyContent: "center", - paddingHorizontal: spacing.regular, - paddingBottom: spacing.regular, - }, - text: { - // All TextStyle properties are allowed - color: "#FFF", - fontSize: font.size, - fontFamily: font.family, - textAlign: "center", - textShadowColor: "#888", - textShadowRadius: 3, - textShadowOffset: { - width: 0, - height: 1, - }, - }, - dotContainerStyle: { - // All ViewStyle properties are allowed - marginHorizontal: 3, - }, - dotStyle: { - // Color and all ViewStyle properties are allowed - color: "#FFF", - }, - inactiveDotStyle: { - // Only opacity, scale and color are allowed - color: "rgba(255, 255, 255, 0.45)", - scale: 1, - }, - }, -}; -const carouselCardLayout = { - slideItem: { - // All ViewStyle properties are allowed - width: "70%", - height: 250, - padding: 8, - paddingBottom: spacing.regular, - elevation: 1.5, - shadowColor: "#000", - shadowOpacity: 0.5, - shadowRadius: 6, - shadowOffset: { - width: 0, - height: 4, - }, - }, - inactiveSlideItem: { - // Only opacity and scale are allowed - opacity: .8, - }, - pagination: { - container: { - // All ViewStyle properties are allowed - paddingHorizontal: spacing.regular, - paddingBottom: spacing.smaller, - }, - text: { - // All TextStyle properties are allowed - color: font.color, - fontSize: font.size, - fontFamily: font.family, - textAlign: "center", - }, - dotContainerStyle: { - // All ViewStyle properties are allowed - marginHorizontal: 3, - }, - dotStyle: { - // Color and all ViewStyle properties are allowed - color: brand.primary, - }, - inactiveDotStyle: { - // Only opacity, scale and color are allowed - color: contrast.lower, - scale: 1, - }, - }, -}; -export const com_mendix_widget_native_carousel_Carousel = { - container: { - // All ViewStyle properties are allowed - }, - fullWidthLayout: carouselFullWidthLayout, - cardLayout: carouselCardLayout, - activityIndicator: { - // Only color is allowed - color: font.color, - }, -}; diff --git a/theme/styles/native/core/widgets/checkbox.js b/theme/styles/native/core/widgets/checkbox.js deleted file mode 100644 index bcfa729..0000000 --- a/theme/styles/native/core/widgets/checkbox.js +++ /dev/null @@ -1,86 +0,0 @@ -import { Platform } from "react-native"; -import { background, border, brand, contrast, font, spacing } from "../variables"; -import { TextBox, TextBoxVertical } from "./textbox"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - CheckBox - - Default Class For Mendix CheckBox Widget -========================================================================== */ -export const CheckBox = { - container: { - // All ViewStyle properties are allowed - ...TextBox.container, - paddingVertical: spacing.smallest, - justifyContent: "center", - }, - containerDisabled: { - // All ViewStyle properties are allowed - ...TextBox.containerDisabled - }, - label: { - // numberOfLines and all TextStyle properties are allowed - ...TextBox.label, - }, - labelDisabled: { - // All TextStyle properties are allowed - ...TextBox.labelDisabled - }, - input: { - // thumbColorOn, thumbColorOff, trackColorOn, trackColorOff and all TextStyle properties are allowed - backgroundColor: "transparent", - marginRight: Platform.select({ android: -3 }), - thumbColorOn: background.primary, - trackColorOn: brand.success, - thumbColorOff: contrast.regular, - trackColorOff: contrast.lower, - }, - inputDisabled: { - // thumbColorOn, thumbColorOff, trackColorOn, trackColorOff and all TextStyle properties are allowed - thumbColorOn: background.secondary, - trackColorOn: font.colorDisabled, - thumbColorOff: background.secondary, - trackColorOff: border.color, - }, - inputError: { - // thumbColorOn, thumbColorOff, trackColorOn, trackColorOff and all TextStyle properties are allowed - ...TextBox.inputError, - thumbColorOn: background.primary, - trackColorOn: brand.danger, - thumbColorOff: contrast.regular, - trackColorOff: brand.danger, - }, - validationMessage: { - // All TextStyle properties are allowed - ...TextBox.validationMessage, - alignSelf: "stretch", - }, -}; -export const CheckBoxVertical = { - container: TextBoxVertical.container, - containerDisabled: TextBoxVertical.containerDisabled, - label: TextBoxVertical.label, - labelDisabled: TextBoxVertical.labelDisabled, - input: { - ...CheckBox.input, - alignSelf: "flex-start", - }, - inputDisabled: CheckBox.inputDisabled, - inputError: { - ...TextBoxVertical.inputError, - thumbColorOn: background.primary, - trackColorOn: brand.danger, - thumbColorOff: contrast.regular, - trackColorOff: brand.danger, - }, - validationMessage: { - ...TextBoxVertical.validationMessage, - alignSelf: "stretch", - }, -}; diff --git a/theme/styles/native/core/widgets/colorpicker.js b/theme/styles/native/core/widgets/colorpicker.js deleted file mode 100644 index 020e2e3..0000000 --- a/theme/styles/native/core/widgets/colorpicker.js +++ /dev/null @@ -1,20 +0,0 @@ -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Color Picker - - Default Class For Mendix Color Picker Widget -========================================================================== */ -export const com_mendix_widget_native_colorpicker_ColorPicker = { - container: { - // All ViewStyle properties are allowed - }, - thumbnail: { - // All ViewStyle properties are allowed - }, -}; diff --git a/theme/styles/native/core/widgets/container.js b/theme/styles/native/core/widgets/container.js deleted file mode 100644 index ed3553a..0000000 --- a/theme/styles/native/core/widgets/container.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Container - - Default Class For Mendix Container Widget -========================================================================== */ -export const Container = { - container: { - // rippleColor & all ViewStyle properties are allowed - }, - containerDisabled: { - // All ViewStyle properties are allowed - opacity: 0.6 - } -}; -export const ScrollContainer = { - container: { - // All ViewStyle properties are allowed - }, -}; diff --git a/theme/styles/native/core/widgets/datepicker.js b/theme/styles/native/core/widgets/datepicker.js deleted file mode 100644 index a30e2d3..0000000 --- a/theme/styles/native/core/widgets/datepicker.js +++ /dev/null @@ -1,84 +0,0 @@ -import { background, font, input } from "../variables"; -import { TextBox, TextBoxVertical } from "./textbox"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Date Picker - - Default Class For Mendix Date Picker Widget -========================================================================== */ -export const DatePicker = { - container: { - // All ViewStyle properties are allowed - ...TextBox.container, - }, - containerDisabled: { - // All ViewStyle properties are allowed - ...TextBox.containerDisabled - }, - label: { - // numberOfLines and all TextStyle properties are allowed - ...TextBox.label, - }, - labelDisabled: { - // All TextStyle properties are allowed - ...TextBox.labelDisabled - }, - pickerIOS: { - // All ViewStyle properties & "color" (type: string) are allowed - backgroundColor: background.primary, - color: font.color, - }, - pickerBackdropIOS: { - // All ViewStyle properties are allowed - }, - pickerTopIOS: { - // All ViewStyle properties are allowed - backgroundColor: background.primary, - }, - value: { - // All TextStyle properties are allowed - color: input.color, - borderColor: input.borderColor, - backgroundColor: input.backgroundColor, - fontSize: input.fontSize, - fontFamily: font.family, - borderWidth: input.borderWidth, - borderRadius: input.borderRadius, - paddingHorizontal: input.paddingHorizontal, - paddingVertical: input.paddingVertical, - }, - valueDisabled: { - // All TextStyle properties are allowed - backgroundColor: input.backgroundColorDisabled, - color: input.colorDisabled - }, - placeholder: { - // All TextStyle properties are allowed - color: input.placeholderTextColor, - }, - placeholderDisabled: { - // All TextStyle properties are allowed - color: input.colorDisabled - }, - validationMessage: { - // All TextStyle properties are allowed - ...TextBox.validationMessage, - }, -}; -export const DatePickerVertical = { - container: TextBoxVertical.container, - containerDisabled: TextBoxVertical.containerDisabled, - label: TextBoxVertical.label, - labelDisabled: TextBoxVertical.labelDisabled, - value: DatePicker.value, - valueDisabled: DatePicker.valueDisabled, - placeholder: DatePicker.placeholder, - placeholderDisabled: DatePicker.placeholderDisabled, - validationMessage: TextBoxVertical.validationMessage, -}; diff --git a/theme/styles/native/core/widgets/dropdown.js b/theme/styles/native/core/widgets/dropdown.js deleted file mode 100644 index bd7faa8..0000000 --- a/theme/styles/native/core/widgets/dropdown.js +++ /dev/null @@ -1,144 +0,0 @@ -import { border, contrast, font, input } from "../variables"; -import { TextBox, TextBoxVertical } from "./textbox"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Drop Down - - Default Class For Mendix Drop Down Widget -========================================================================== */ -export const DropDown = { - container: { - // All ViewStyle properties are allowed - ...TextBox.container, - }, - containerDisabled: { - // All ViewStyle properties are allowed - ...TextBox.containerDisabled - }, - label: { - // numberOfLines and all TextStyle properties are allowed - ...TextBox.label, - }, - labelDisabled: { - // All TextStyle properties are allowed - ...TextBox.labelDisabled - }, - value: { - // All TextStyle properties & placeholderTextColor are allowed - color: input.color, - fontSize: input.fontSize, - fontFamily: input.fontFamily, - placeholderTextColor: input.placeholderTextColor, - }, - validationMessage: { - // All TextStyle properties are allowed - ...TextBox.validationMessage, - }, - /* New dropdown styles start */ - valueFocused: { - // All TextStyle properties are allowed - }, - valueDisabled: { - // All TextStyle properties are allowed - ...TextBox.inputDisabled - }, - valueContainer: { - // All ViewStyle properties & rippleColor are allowed - flexDirection: "row", - justifyContent: "space-between", - alignItems: "center", - borderWidth: input.borderWidth, - borderRadius: input.borderRadius, - borderColor: input.borderColor, - paddingHorizontal: input.paddingHorizontal, - paddingVertical: input.paddingVertical, - backgroundColor: input.backgroundColor, - }, - valueContainerFocused: { - // All ViewStyle properties are allowed - ...TextBox.inputFocused - }, - valueContainerDisabled: { - // All ViewStyle properties are allowed - }, - menuWrapper: { - // All ViewStyle properties are allowed - borderRadius: border.radius, - shadowColor: "#000", - shadowOpacity: 0.2, - shadowRadius: 10, - elevation: 16, - backgroundColor: input.backgroundColor, - }, - itemContainer: { - // All ViewStyle properties & rippleColor & activeOpacity & underlayColor are allowed - width: "100%", - maxWidth: undefined, - paddingVertical: 6, - paddingHorizontal: 16, - backgroundColor: input.backgroundColor, - underlayColor: input.inputContainerUnderlayColor, - }, - iconStyle: { - // All TextStyle properties are allowed - color: input.color - }, - item: { - // All TextStlye properties are allowed - color: input.color, - }, - selectedItem: { - // All TextStlye properties are allowed - fontWeight: font.weightBold, - }, - selectedItemContainer: { - // All ViewStyle properties are allowed - width: "100%", - maxWidth: undefined, - backgroundColor: contrast.lowest, - }, - /* New dropdown styles end */ - useUniformDesign: true, - /* Old dropdown styles start */ - pickerIOS: { - // All ViewStyle properties are allowed - backgroundColor: input.backgroundColor, - }, - pickerItemIOS: { - // All TextStyle properties are allowed - }, - pickerBackdropIOS: { - // All ViewStyle properties are allowed - }, - pickerTopIOS: { - // All ViewStyle properties are allowed - backgroundColor: input.backgroundColor, - }, -}; -export const DropDownVertical = { - container: TextBoxVertical.container, - containerDisabled: TextBoxVertical.containerDisabled, - label: TextBoxVertical.label, - labelDisabled: TextBoxVertical.labelDisabled, - value: DropDown.value, - valueFocused: DropDown.valueFocused, - validationMessage: TextBoxVertical.validationMessage, - valueContainer: DropDown.valueContainer, - valueContainerFocused: DropDown.valueContainerFocused, - valueContainerDisabled: DropDown.valueContainerDisabled, - menuWrapper: DropDown.menuWrapper, - itemContainer: DropDown.itemContainer, - item: DropDown.item, - iconStyle: DropDown.iconStyle, - useUniformDesign: DropDown.useUniformDesign, - pickerIOS: DropDown.pickerIOS, - pickerItemIOS: DropDown.pickerItemIOS, - pickerBackdropIOS: DropDown.pickerBackdropIOS, - pickerTopIOS: DropDown.pickerTopIOS, -}; diff --git a/theme/styles/native/core/widgets/feedback.js b/theme/styles/native/core/widgets/feedback.js deleted file mode 100644 index f1c2d82..0000000 --- a/theme/styles/native/core/widgets/feedback.js +++ /dev/null @@ -1,85 +0,0 @@ -import { Platform } from "react-native"; -import { background, border, brand, button, contrast, font, input } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Feedback - - Default Class For Mendix Feedback Widget -========================================================================== */ -export const com_mendix_widget_native_feedback_Feedback = { - floatingButton: { - // All ViewStyle properties are allowed - borderRadius: 0, - backgroundColor: background.secondary, - borderTopLeftRadius: button.borderRadius, - borderBottomLeftRadius: button.borderRadius, - elevation: 1.5, - shadowColor: "#000", - shadowOpacity: 0.2, - shadowRadius: 10, - shadowOffset: { - width: 0, - height: 2, - }, - }, - dialog: { - // All ViewStyle properties are allowed - backgroundColor: background.primary, - }, - title: { - // All TextStyle properties are allowed - color: font.color, - fontFamily: font.family, - }, - textAreaInput: { - // All TextStyle properties are allowed - color: input.color, - borderColor: input.borderColor, - backgroundColor: input.backgroundColor, - selectionColor: input.selectionColor, - placeholderTextColor: input.placeholderTextColor, - underlineColorAndroid: input.underlineColorAndroid, - height: 100, - fontSize: input.fontSize, - fontFamily: input.fontFamily, - borderRadius: input.borderRadius, - borderTopWidth: input.borderWidth, - borderBottomWidth: input.borderWidth, - borderWidth: Platform.select({ android: border.width }), - textAlignVertical: "top", - paddingVertical: input.paddingVertical, - paddingHorizontal: input.paddingHorizontal, - }, - switchLabel: { - // All TextStyle properties are allowed - color: input.color, - fontSize: input.fontSize, - fontFamily: input.fontFamily, - }, - switchInput: { - // thumbColorOn, thumbColorOff, trackColorOn, trackColorOff and all TextStyle properties are allowed - margin: 0, - padding: 0, - marginRight: Platform.select({ ios: 0, android: -5 }), - thumbColorOn: background.primary, - trackColorOn: brand.success, - thumbColorOff: contrast.regular, - trackColorOff: contrast.lower, - }, - button: { - // Just these 3 properties are allowed - color: brand.primary, - borderColor: border.color, - borderWidth: border.width, - }, - activityIndicator: { - // Only color is allowed - color: font.color, - }, -}; diff --git a/theme/styles/native/core/widgets/floatingactionbutton.js b/theme/styles/native/core/widgets/floatingactionbutton.js deleted file mode 100644 index fa553aa..0000000 --- a/theme/styles/native/core/widgets/floatingactionbutton.js +++ /dev/null @@ -1,79 +0,0 @@ -import { background, brand, contrast, font } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Floating Action Button - - Default Class For Mendix Floating Action Button Widget -========================================================================== */ -export const com_mendix_widget_native_floatingactionbutton_FloatingActionButton = { - container: { - // All ViewStyle properties are allowed - margin: 30, - }, - button: { - // Size, ripplecolor and all ViewStyle properties are allowed - size: 50, - height: 50, - width: 50, - rippleColor: contrast.lowest, - backgroundColor: brand.primary, - borderRadius: 25, - elevation: 2, - shadowColor: "#000", - shadowOpacity: 0.3, - shadowRadius: 4, - shadowOffset: { - width: 0, - height: 2, - }, - }, - buttonIcon: { - // Size and color are allowed - size: font.sizeLarge, - color: contrast.lowest, - }, - secondaryButton: { - // Size and all ViewStyle properties are allowed - size: 30, - backgroundColor: background.secondary, - elevation: 2, - shadowColor: "#000", - shadowOpacity: 0.3, - shadowRadius: 4, - shadowOffset: { - width: 0, - height: 2, - }, - }, - secondaryButtonIcon: { - // Size and color are allowed - size: font.sizeSmall, - color: contrast.high, - }, - secondaryButtonCaption: { - // All TextStyle properties are allowed - color: font.color, - fontSize: font.size, - lineHeight: font.size, - fontFamily: font.family, - }, - secondaryButtonCaptionContainer: { - // All ViewStyle properties are allowed - backgroundColor: background.secondary, - borderColor: background.secondary, - marginHorizontal: 5, - elevation: 2, - shadowOpacity: 0.3, - shadowRadius: 4, - shadowOffset: { - width: 0, - height: 2, - }, - }, -}; diff --git a/theme/styles/native/core/widgets/images.js b/theme/styles/native/core/widgets/images.js deleted file mode 100644 index ff418a2..0000000 --- a/theme/styles/native/core/widgets/images.js +++ /dev/null @@ -1,51 +0,0 @@ -import { contrast } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Image - - Default Class For Mendix Image Widgets -========================================================================== */ -export const Image = { - container: { - // rippleColor & all ViewStyle properties are allowed - rippleColor: contrast.lowest, - }, - containerDisabled: { - // All ViewStyle properties are allowed - }, - image: { - // All ImageStyle properties are allowed - maxWidth: "100%", - maxHeight: "100%", - resizeMode: "cover", - }, - imageDisabled: { - // All ImageStyle properties are allowed - opacity: 0.6 - } -}; -export const ImageViewer = { - container: { - // RippleColor & All ViewStyle properties are allowed - rippleColor: contrast.lowest, - }, - containerDisabled: { - // All ViewStyle properties are allowed - }, - image: { - // All ImageStyle properties are allowed - maxWidth: "100%", - maxHeight: "100%", - resizeMode: "cover", - }, - imageDisabled: { - // All ImageStyle properties are allowed - opacity: 0.6 - } -}; diff --git a/theme/styles/native/core/widgets/introscreen.js b/theme/styles/native/core/widgets/introscreen.js deleted file mode 100644 index 86db1d5..0000000 --- a/theme/styles/native/core/widgets/introscreen.js +++ /dev/null @@ -1,122 +0,0 @@ -import { isIphoneWithNotch } from "../helpers/_functions/device"; -import { background, button, contrast, font, spacing } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Intro Screen - - Default Class For Mendix Intro Screen Widget -========================================================================== */ -// Button styles when the chose to show the indicator above the buttons -export const introScreenButtonPaginationAbove = { - container: { - // Ripplecolor and all ViewStyle properties are allowed - flexDirection: "row", - alignSelf: "stretch", - alignItems: "center", - justifyContent: "center", - paddingVertical: spacing.regular, - backgroundColor: button.primary.backgroundColor, - }, - icon: { - // Size and color are allowed - color: button.primary.color, - size: button.fontSizeIcon, - }, - caption: { - // All TextStyle properties are allowed - color: button.primary.color, - fontSize: button.fontSize, - fontFamily: font.family, - fontWeight: font.weightBold, - textTransform: "uppercase", - paddingHorizontal: spacing.smallest, - }, -}; -// Button styles when the chose to show the indicator between the buttons -export const introScreenButtonPaginationBetween = { - container: { - // Ripplecolor and all ViewStyle properties are allowed - flexDirection: "row", - alignItems: "center", - justifyContent: "center", - }, - icon: { - // Size and color are allowed - color: font.color, - size: button.fontSizeIcon, - }, - caption: { - // All TextStyle properties are allowed - color: font.color, - fontSize: button.fontSize, - fontFamily: font.family, - fontWeight: font.weightBold, - textTransform: "uppercase", - paddingHorizontal: spacing.smallest, - }, -}; -// Default styles -export const com_mendix_widget_native_introscreen_IntroScreen = { - fullscreenContainer: { - // All ViewStyle properties are allowed - backgroundColor: background.primary, - }, - popupContainer: { - // All ViewStyle properties are allowed - paddingVertical: 150, - paddingHorizontal: 50, - backgroundColor: `rgba(0, 0, 0, 0.5)`, - }, - // Pagination styles - paginationContainer: { - // All ViewStyle properties are allowed - position: "absolute", - left: 0, - right: 0, - bottom: isIphoneWithNotch ? 22 : 0, - justifyContent: "space-between", - alignItems: "center", - }, - paginationText: { - // All TextStyle properties are allowed - color: font.color, - fontSize: font.size, - fontFamily: font.family, - }, - dotStyle: { - // All ViewStyle properties are allowed - backgroundColor: contrast.lower, - transform: [{ scale: 0.5 }], - }, - activeDotStyle: { - // All ViewStyle properties are allowed - backgroundColor: background.brandPrimary, - }, - // Button styles - paginationAbove: { - buttonsContainer: { - // All ViewStyle properties are allowed - flex: 1, - marginTop: 30, - flexDirection: "row", - justifyContent: "center", - width: "100%", - }, - buttonSkip: introScreenButtonPaginationAbove, - buttonPrevious: introScreenButtonPaginationAbove, - buttonNext: introScreenButtonPaginationAbove, - buttonDone: introScreenButtonPaginationAbove, - }, - paginationBetween: { - buttonSkip: introScreenButtonPaginationBetween, - buttonPrevious: introScreenButtonPaginationBetween, - buttonNext: introScreenButtonPaginationBetween, - buttonDone: introScreenButtonPaginationBetween, - }, -}; diff --git a/theme/styles/native/core/widgets/layoutgrid.js b/theme/styles/native/core/widgets/layoutgrid.js deleted file mode 100644 index 3a73aca..0000000 --- a/theme/styles/native/core/widgets/layoutgrid.js +++ /dev/null @@ -1,121 +0,0 @@ -import { layoutGrid } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Intro Screen - - Default Class For Mendix Layoutgrid Widget -========================================================================== */ -export const LayoutGrid = { - container: {}, -}; -export const row = { - container: { - flexDirection: "row", - flexWrap: "wrap", - marginHorizontal: -layoutGrid.gutterSize, - }, -}; -export const col = { - container: { - flex: 1, - paddingHorizontal: layoutGrid.gutterSize, - }, -}; -export const colFitToContent = { - container: { - flex: -1, - paddingHorizontal: layoutGrid.gutterSize, - }, -}; -export const col1 = { - container: { - flexBasis: "8.333%", - paddingHorizontal: layoutGrid.gutterSize, - }, -}; -export const col2 = { - container: { - flexBasis: "16.666%", - paddingHorizontal: layoutGrid.gutterSize, - }, -}; -export const col3 = { - container: { - flexBasis: "25%", - paddingHorizontal: layoutGrid.gutterSize, - }, -}; -export const col4 = { - container: { - flexBasis: "33.333%", - paddingHorizontal: layoutGrid.gutterSize, - }, -}; -export const col5 = { - container: { - flexBasis: "41.666%", - paddingHorizontal: layoutGrid.gutterSize, - }, -}; -export const col6 = { - container: { - flexBasis: "50%", - paddingHorizontal: layoutGrid.gutterSize, - }, -}; -export const col7 = { - container: { - flexBasis: "58.333%", - paddingHorizontal: layoutGrid.gutterSize, - }, -}; -export const col8 = { - container: { - flexBasis: "66.666%", - paddingHorizontal: layoutGrid.gutterSize, - }, -}; -export const col9 = { - container: { - flexBasis: "75%", - paddingHorizontal: layoutGrid.gutterSize, - }, -}; -export const col10 = { - container: { - flexBasis: "83.333%", - paddingHorizontal: layoutGrid.gutterSize, - }, -}; -export const col11 = { - container: { - flexBasis: "91.666%", - paddingHorizontal: layoutGrid.gutterSize, - }, -}; -export const col12 = { - container: { - flexBasis: "100%", - paddingHorizontal: layoutGrid.gutterSize, - }, -}; -export const noGutters = { - container: { - paddingLeft: 0, - paddingRight: 0, - paddingHorizontal: 0, - }, -}; -export const noGuttersRow = { - container: { - marginLeft: 0, - marginRight: 0, - marginHorizontal: 0, - }, -}; diff --git a/theme/styles/native/core/widgets/linechart.js b/theme/styles/native/core/widgets/linechart.js deleted file mode 100644 index b26ccfa..0000000 --- a/theme/styles/native/core/widgets/linechart.js +++ /dev/null @@ -1,169 +0,0 @@ -import { border, brand, font, spacing } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Line Chart - - Default Class For Mendix Line Chart Widget -========================================================================== */ -// eslint-disable-next-line @typescript-eslint/camelcase -export const com_mendix_widget_native_linechart_LineChart = { - container: { - // All ViewStyle properties are allowed - }, - errorMessage: { - // All TextStyle properties are allowed - fontFamily: font.family, - fontSize: font.sizeSmall, - fontWeight: font.weightNormal, - }, - chart: { - // All ViewStyle properties are allowed - }, - grid: { - /* - Allowed properties: - - backgroundColor (string) - - dashArray (string) - - lineColor (string) - - lineWidth (number) - - padding (number) - - paddingBottom (number) - - paddingHorizontal (number) - - paddingLeft (number) - - paddingRight (number) - - paddingTop (number) - - paddingVertical (number) - */ - lineColor: border.color, - paddingBottom: 32, - paddingLeft: 32, - paddingRight: 8, - paddingTop: 8, - }, - xAxis: { - /* - Allowed properties: - - color (string) - - dashArray (string) - - fontFamily (string) - - fontSize (number) - - fontStyle ("normal" or "italic") - - fontWeight ("normal" or "bold" or "100" or "200" or "300" or "400" or "500" or "600" or "700" or "800" or "900") - - lineColor (string) - - lineWidth (number) - */ - color: font.color, - fontFamily: font.family, - fontSize: font.sizeSmall, - fontWeight: font.weightNormal, - lineColor: border.color, - label: { - /* - All TextStyle properties are allowed and: - - relativePositionGrid ("bottom" or "right") - */ - color: font.color, - alignSelf: "center", - marginHorizontal: 0, - marginVertical: spacing.smallest, - fontFamily: font.family, - fontSize: font.sizeSmall, - fontWeight: font.weightNormal, - relativePositionGrid: "bottom" - }, - }, - yAxis: { - /* - Allowed properties: - - color (string) - - dashArray (string) - - fontFamily (string) - - fontSize (number) - - fontStyle ("normal" or "italic") - - fontWeight ("normal" or "bold" or "100" or "200" or "300" or "400" or "500" or "600" or "700" or "800" or "900") - - lineColor (string) - - lineWidth (number) - */ - color: font.color, - fontFamily: font.family, - fontSize: font.sizeSmall, - fontWeight: font.weightNormal, - lineColor: border.color, - label: { - /* - All TextStyle properties are allowed and: - - relativePositionGrid ("top" or "left") - */ - color: font.color, - marginHorizontal: 0, - marginVertical: spacing.smallest, - fontFamily: font.family, - fontSize: font.sizeSmall, - fontWeight: font.weightNormal, - relativePositionGrid: "top" - }, - }, - lines: { - /* - Allowed properties: - - lineColorPalette (string with array of colors separated by ';') - */ - lineColorPalette: Object.values(brand) - .map((color, index, brandColors) => (index === brandColors.length - 1 ? color : `${color};`)) - .join(""), - customLineStyles: { - any_custom_line_style_name: { - line: { - /* - Allowed properties: - - dashArray (string) - - ending ("flat" or "round") - - lineColor (string) - - lineWidth (number) - */ - }, - markers: { - /* - Allowed properties: - - backgroundColor (string) - - borderColor (string) - - borderWidth (number) - - display ("false" or "underneath" or "onTop") - - size (number) - - symbol ("circle" or "diamond" or "plus" or "minus" or "square" or "star" or "triangleDown" or "triangleUp") - */ - } - } - } - }, - legend: { - container: { - // All ViewStyle properties are allowed - justifyContent: "flex-start", - marginHorizontal: 0, - marginVertical: spacing.smallest, - }, - item: { - // All ViewStyle properties are allowed - padding: 0, - paddingRight: spacing.smaller, - }, - indicator: { - // All ViewStyle properties are allowed - marginRight: spacing.smallest, - }, - label: { - // All TextStyle properties are allowed - color: font.color, - fontFamily: font.family, - fontSize: font.sizeSmall, - fontWeight: font.weightNormal, - }, - } -}; diff --git a/theme/styles/native/core/widgets/listviews.js b/theme/styles/native/core/widgets/listviews.js deleted file mode 100644 index fc45243..0000000 --- a/theme/styles/native/core/widgets/listviews.js +++ /dev/null @@ -1,24 +0,0 @@ -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - List View - - Default Class For Mendix List View Widget -========================================================================== */ -export const ListView = { - container: { - // numColumns & all ViewStyle properties are allowed - }, - listItem: { - // All ViewStyle properties are allowed - }, - listItemDisabled: { - // All ViewStyle properties are allowed - opacity: 0.6 - }, -}; diff --git a/theme/styles/native/core/widgets/listviewswipe.js b/theme/styles/native/core/widgets/listviewswipe.js deleted file mode 100644 index 7adec6e..0000000 --- a/theme/styles/native/core/widgets/listviewswipe.js +++ /dev/null @@ -1,38 +0,0 @@ -import { background } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - List View Swipe - - Default Class For Mendix List View Swipe Widget -========================================================================== */ -export const com_mendix_widget_native_listviewswipe_ListViewSwipe = { - container: { - // All ViewStyle properties are allowed - flex: 1, - alignItems: "stretch", - justifyContent: "space-between", - backgroundColor: background.primary, - }, - leftAction: { - // PanelSize & All ViewStyle properties are allowed - panelSize: 200, - flex: 1, - flexDirection: "row", - alignItems: "stretch", - backgroundColor: background.primary, - }, - rightAction: { - // PanelSize & All ViewStyle properties are allowed - panelSize: 200, - flex: 1, - flexDirection: "row", - alignItems: "stretch", - backgroundColor: background.primary, - }, -}; diff --git a/theme/styles/native/core/widgets/maps.js b/theme/styles/native/core/widgets/maps.js deleted file mode 100644 index 3036260..0000000 --- a/theme/styles/native/core/widgets/maps.js +++ /dev/null @@ -1,33 +0,0 @@ -import { brand } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Maps - - Default Class For Mendix Maps Widget -========================================================================== */ -export const com_mendix_widget_native_maps_Maps = { - container: { - // All ViewStyle properties are allowed - flex: 1, - maxWidth: "100%", - aspectRatio: 4 / 2, - }, - loadingOverlay: { - // All ViewStyle properties are allowed - }, - loadingIndicator: { - // Only color is allowed - color: brand.primary, - }, - marker: { - // Only color & opacity are allowed - color: brand.primary, - opacity: 1, - }, -}; diff --git a/theme/styles/native/core/widgets/navigation.js b/theme/styles/native/core/widgets/navigation.js deleted file mode 100644 index 276ab40..0000000 --- a/theme/styles/native/core/widgets/navigation.js +++ /dev/null @@ -1,75 +0,0 @@ -import { font, navigation, spacing } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - BottomBar / ProgressOverlay - - Default Class For Mendix BottomBar and ProgressOverlay -========================================================================== */ -export const navigationStyle = { - bottomBar: { - container: { - // All ViewStyle properties are allowed - backgroundColor: navigation.bottomBar.backgroundColor, - }, - label: { - // All TextStyle properties are allowed - color: navigation.bottomBar.color, - fontFamily: font.family, - fontSize: navigation.bottomBar.fontSize, - }, - selectedLabel: { - // All TextStyle properties are allowed - color: navigation.bottomBar.selectedTextColor, - fontFamily: font.family, - fontSize: navigation.bottomBar.fontSize, - }, - icon: { - // All TextStyle properties are allowed - color: navigation.bottomBar.color, - fontSize: navigation.bottomBar.iconSize, - }, - selectedIcon: { - // All TextStyle properties are allowed - color: navigation.bottomBar.selectedIconColor, - fontSize: navigation.bottomBar.iconSize, - }, - }, - progressOverlay: { - background: { - // All ViewStyle properties are allowed - backgroundColor: navigation.progressOverlay.backgroundColor, - }, - container: { - // All ViewStyle properties are allowed - backgroundColor: navigation.progressOverlay.containerBackgroundColor, - paddingHorizontal: spacing.largest, - paddingVertical: spacing.large, - borderRadius: navigation.progressOverlay.borderRadius, - elevation: navigation.progressOverlay.elevation, - shadowColor: navigation.progressOverlay.shadowColor, - shadowOpacity: navigation.progressOverlay.shadowOpacity, - shadowRadius: navigation.progressOverlay.shadowRadius, - shadowOffset: { - width: 0, - height: 2, - }, - }, - activityIndicator: { - // Color, Size & All ViewStyle properties are allowed - color: navigation.progressOverlay.activityIndicatorColor, - }, - text: { - // All TextStyle properties are allowed - color: navigation.progressOverlay.color, - marginTop: spacing.small, - fontFamily: font.family, - fontSize: navigation.progressOverlay.fontSize, - }, - }, -}; diff --git a/theme/styles/native/core/widgets/pagetitle.js b/theme/styles/native/core/widgets/pagetitle.js deleted file mode 100644 index bdc4c87..0000000 --- a/theme/styles/native/core/widgets/pagetitle.js +++ /dev/null @@ -1,24 +0,0 @@ -import { font } from "../variables"; -import { TextHeading1 } from "./typography"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Page Title - - Default Class For Mendix Page Title Widget -========================================================================== */ -export const PageTitle = { - container: { - // All ViewStyle properties are allowed - }, - text: { - // All TextStyle properties are allowed - ...TextHeading1.text, - color: font.color, - }, -}; diff --git a/theme/styles/native/core/widgets/popupmenu.js b/theme/styles/native/core/widgets/popupmenu.js deleted file mode 100644 index dc0cd18..0000000 --- a/theme/styles/native/core/widgets/popupmenu.js +++ /dev/null @@ -1,58 +0,0 @@ -import { background, brand, contrast, font } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Popup Menu - - Default Class For Mendix Popup Menu Widget -========================================================================== */ -export const com_mendix_widget_native_popupmenu_PopupMenu = { - container: { - // All ViewStyle properties are allowed - borderRadius: 10, - shadowColor: "#000", - shadowOpacity: 0.2, - shadowRadius: 10, - elevation: 16, - backgroundColor: background.primary, - }, - custom: { - container: { - // All ViewStyle properties are allowed - }, - itemStyle: { - rippleColor: contrast.lower, - }, - }, - basic: { - dividerColor: font.color, - container: { - // All ViewStyle properties are allowed - height: 40, - }, - itemStyle: { - ellipsizeMode: "tail", - rippleColor: contrast.lower, - defaultStyle: { - // All TextStyle properties are allowed - color: font.color, - }, - primaryStyle: { - // All TextStyle properties are allowed - color: brand.primary, - }, - dangerStyle: { - // All TextStyle properties are allowed - color: brand.danger, - }, - customStyle: { - // All TextStyle properties are allowed - }, - }, - }, -}; diff --git a/theme/styles/native/core/widgets/progressbar.js b/theme/styles/native/core/widgets/progressbar.js deleted file mode 100644 index 0725d94..0000000 --- a/theme/styles/native/core/widgets/progressbar.js +++ /dev/null @@ -1,44 +0,0 @@ -import { Platform } from "react-native"; -import { anyColorToRgbString } from "../helpers/_functions/convertcolors"; -import { brand, font, input } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Progress Bar - - Default Class For Mendix Progress Bar Widget -========================================================================== */ -export const com_mendix_widget_native_progressbar_ProgressBar = { - container: { - // All ViewStyle properties are allowed - alignSelf: "stretch", - }, - bar: { - // All ViewStyle properties are allowed - ...Platform.select({ - ios: { - borderColor: brand.primary, - }, - android: { - borderRadius: 0, - borderWidth: 0, - backgroundColor: `rgba(${anyColorToRgbString(brand.primary)},0.2)`, - }, - }), - }, - fill: { - //Only the backgroundColor property is allowed - backgroundColor: brand.primary, - }, - validationMessage: { - // All TextStyle properties are allowed - color: input.errorColor, - fontSize: font.size, - fontFamily: font.family, - }, -}; diff --git a/theme/styles/native/core/widgets/progresscircle.js b/theme/styles/native/core/widgets/progresscircle.js deleted file mode 100644 index 522a5eb..0000000 --- a/theme/styles/native/core/widgets/progresscircle.js +++ /dev/null @@ -1,42 +0,0 @@ -import { brand, contrast, font, input } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Progress Circle - - Default Class For Mendix Progress Circle Widget -========================================================================== */ -export const com_mendix_widget_native_progresscircle_ProgressCircle = { - container: { - // All ViewStyle properties are allowed - }, - circle: { - // Only the size & borderWidth & borderColor properties are allowed - size: 80, - borderWidth: 0, - }, - fill: { - // Only the width & backgroundColor & lineCapRounded properties are allowed - backgroundColor: brand.primary, - width: 5, - lineCapRounded: true, - }, - text: { - // All TextStyle properties are allowed - color: contrast.regular, - fontSize: font.size, - fontWeight: font.weightSemiBold, - fontFamily: font.family, - }, - validationMessage: { - // All TextStyle properties are allowed - color: input.errorColor, - fontSize: font.size, - fontFamily: font.family, - }, -}; diff --git a/theme/styles/native/core/widgets/qrcode.js b/theme/styles/native/core/widgets/qrcode.js deleted file mode 100644 index c7f8113..0000000 --- a/theme/styles/native/core/widgets/qrcode.js +++ /dev/null @@ -1,24 +0,0 @@ -import { background, contrast } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - QR Code - - Default Class For Mendix QR Code Widget -========================================================================== */ -export const com_mendix_widget_native_qrcode_QRCode = { - container: { - // All ViewStyle properties are allowed - }, - qrcode: { - // Only size, color and backgroundColor are allowed - size: 100, - color: contrast.highest, - backgroundColor: background.primary, - }, -}; diff --git a/theme/styles/native/core/widgets/rating.js b/theme/styles/native/core/widgets/rating.js deleted file mode 100644 index 7ab06d9..0000000 --- a/theme/styles/native/core/widgets/rating.js +++ /dev/null @@ -1,27 +0,0 @@ -import { spacing } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Rating - - Default Class For Mendix Rating Widget -========================================================================== */ -export const com_mendix_widget_native_rating_Rating = { - container: { - // All ViewStyle properties are allowed - }, - containerDisabled: { - // All ViewStyle properties are allowed - opacity: 0.5, - }, - icon: { - // Size, color, selectedColor & all ViewStyle properties are allowed - size: 30, - marginRight: spacing.smaller, - }, -}; diff --git a/theme/styles/native/core/widgets/referenceselector.js b/theme/styles/native/core/widgets/referenceselector.js deleted file mode 100644 index 00dca5c..0000000 --- a/theme/styles/native/core/widgets/referenceselector.js +++ /dev/null @@ -1,146 +0,0 @@ -import { border, contrast, font, input } from "../variables"; -import { DropDownVertical } from "./dropdown"; -import { TextBox, TextBoxVertical } from "./textbox"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Reference Selector - - Default Class For Mendix Reference Selector Widget -========================================================================== */ -export const ReferenceSelector = { - container: { - // All ViewStyle properties are allowed - ...TextBox.container, - }, - containerDisabled: { - // All ViewStyle properties are allowed - ...TextBox.containerDisabled, - }, - label: { - // numberOfLines and all TextStyle properties are allowed - ...TextBox.label, - }, - labelDisabled: { - // All TextStyle properties are allowed - ...TextBox.labelDisabled, - }, - value: { - // All TextStyle properties & placeholderTextColor are allowed - color: input.color, - fontSize: input.fontSize, - fontFamily: input.fontFamily, - overflow: "hidden", - placeholderTextColor: input.placeholderTextColor, - }, - validationMessage: { - // All TextStyle properties are allowed - ...TextBox.validationMessage, - }, - /* New dropdown styles start */ - valueFocused: { - // All TextStyle properties are allowed - }, - valueDisabled: { - // All TextStyle properties are allowed - ...TextBox.inputDisabled, - }, - valueContainer: { - // All ViewStyle properties & rippleColor are allowed - flexDirection: "row", - justifyContent: "space-between", - alignItems: "center", - borderWidth: input.borderWidth, - borderRadius: input.borderRadius, - borderColor: input.borderColor, - paddingHorizontal: input.paddingHorizontal, - paddingVertical: input.paddingVertical, - backgroundColor: input.backgroundColor, - }, - valueContainerFocused: { - // All ViewStyle properties are allowed - ...TextBox.inputFocused, - }, - valueContainerDisabled: { - // All ViewStyle properties are allowed - }, - menuWrapper: { - // All ViewStyle properties are allowed - borderRadius: border.radius, - shadowColor: "#000", - shadowOpacity: 0.2, - shadowRadius: 10, - elevation: 16, - backgroundColor: input.backgroundColor, - }, - itemContainer: { - // All ViewStyle properties & rippleColor & activeOpacity & underlayColor are allowed - width: "100%", - maxWidth: undefined, - paddingVertical: 6, - paddingHorizontal: 16, - backgroundColor: input.backgroundColor, - underlayColor: input.inputContainerUnderlayColor, - }, - iconStyle: { - // All TextStyle properties are allowed - color: input.color, - }, - item: { - // All TextStyle properties are allowed - color: input.color, - }, - selectedItem: { - // All TextStyle properties are allowed - fontWeight: font.weightBold, - }, - selectedItemContainer: { - // All ViewStyle properties are allowed - width: "100%", - maxWidth: undefined, - backgroundColor: contrast.lowest, - }, - /* New dropdown styles end */ - useUniformDesign: true, - /* Old dropdown styles start */ - pickerIOS: { - // All ViewStyle properties are allowed - backgroundColor: input.backgroundColor, - }, - pickerItemIOS: { - // All TextStyle properties are allowed - }, - pickerBackdropIOS: { - // All ViewStyle properties are allowed - }, - pickerTopIOS: { - // All ViewStyle properties are allowed - backgroundColor: input.backgroundColor, - }, -}; -export const ReferenceSelectorVertical = { - container: TextBoxVertical.container, - containerDisabled: TextBoxVertical.containerDisabled, - label: TextBoxVertical.label, - labelDisabled: TextBoxVertical.labelDisabled, - value: DropDownVertical.value, - valueFocused: DropDownVertical.valueFocused, - validationMessage: TextBoxVertical.validationMessage, - valueContainer: DropDownVertical.valueContainer, - valueContainerFocused: DropDownVertical.valueContainerFocused, - valueContainerDisabled: DropDownVertical.valueContainerDisabled, - menuWrapper: DropDownVertical.menuWrapper, - itemContainer: DropDownVertical.itemContainer, - item: DropDownVertical.item, - iconStyle: DropDownVertical.iconStyle, - useUniformDesign: DropDownVertical.useUniformDesign, - pickerIOS: DropDownVertical.pickerIOS, - pickerItemIOS: DropDownVertical.pickerItemIOS, - pickerBackdropIOS: DropDownVertical.pickerBackdropIOS, - pickerTopIOS: DropDownVertical.pickerTopIOS, -}; diff --git a/theme/styles/native/core/widgets/safeareaview.js b/theme/styles/native/core/widgets/safeareaview.js deleted file mode 100644 index dd81a25..0000000 --- a/theme/styles/native/core/widgets/safeareaview.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Container - - Default Class For Mendix Safe Area View Widget -========================================================================== */ -export const com_mendix_widget_native_safeareaview_SafeAreaView = { - container: { - // All ViewStyle properties are allowed - }, -}; diff --git a/theme/styles/native/core/widgets/slider.js b/theme/styles/native/core/widgets/slider.js deleted file mode 100644 index 65e3df4..0000000 --- a/theme/styles/native/core/widgets/slider.js +++ /dev/null @@ -1,96 +0,0 @@ -import { Platform } from "react-native"; -import { background, border, brand, contrast, font, input } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Slider - - Default Class For Mendix Slider Widget -========================================================================== */ -export const com_mendix_widget_native_slider_Slider = { - container: { - // All ViewStyle properties are allowed - alignSelf: "stretch", - }, - track: { - // All ViewStyle properties are allowed - backgroundColor: contrast.lower, - }, - trackDisabled: { - // All ViewStyle properties are allowed - backgroundColor: contrast.lower, - opacity: Platform.select({ ios: 0.4 }), - }, - highlight: { - // All ViewStyle properties are allowed - backgroundColor: brand.primary, - }, - highlightDisabled: { - // All ViewStyle properties are allowed - backgroundColor: Platform.select({ ios: brand.primary, android: contrast.low }), - }, - marker: { - // All ViewStyle properties are allowed - backgroundColor: background.secondary, - ...Platform.select({ - ios: { - width: 30, - height: 30, - shadowColor: "#000", - shadowOpacity: 0.2, - borderColor: contrast.lowest, - shadowOffset: { width: 0, height: 1 }, - }, - android: { - width: 20, - height: 20, - borderRadius: 10, - elevation: 3, - borderColor: border.color, - }, - }), - }, - markerActive: { - // All ViewStyle properties are allowed - ...Platform.select({ - android: { - borderWidth: 0, - width: 34, - height: 34, - borderRadius: 17, - }, - }), - }, - markerDisabled: { - // All ViewStyle properties are allowed - ...Platform.select({ - ios: { - borderColor: contrast.lowest, - backgroundColor: background.secondary, - shadowColor: "#000", - shadowOpacity: 0.2, - shadowOffset: { width: 0, height: 1 }, - }, - android: { - marginTop: 1, - borderColor: background.primary, - backgroundColor: contrast.low, - borderWidth: 3, - width: 14, - height: 14, - borderRadius: 7, - }, - }), - }, - validationMessage: { - // All TextStyle properties are allowed - color: input.errorColor, - fontSize: font.size, - fontFamily: font.family, - }, -}; diff --git a/theme/styles/native/core/widgets/tabcontainer.js b/theme/styles/native/core/widgets/tabcontainer.js deleted file mode 100644 index ec0f8f0..0000000 --- a/theme/styles/native/core/widgets/tabcontainer.js +++ /dev/null @@ -1,67 +0,0 @@ -import { font, spacing, tabContainer } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Tab Container - - Default Class For Mendix Tab Container Widget -========================================================================== */ -export const TabContainer = { - container: { - // All ViewStyle properties are allowed - flex: 1, - }, - tabBar: { - // bounces, pressColor, pressOpacity, scrollEnabled and all ViewStyle properties are allowed - bounces: true, - pressColor: tabContainer.tabBar.pressColor, - pressOpacity: 0.8, - backgroundColor: tabContainer.tabBar.backgroundColor, - scrollEnabled: false, - paddingVertical: spacing.smaller, - }, - indicator: { - // All ViewStyle properties are allowed - backgroundColor: tabContainer.indicator.backgroundColor, - height: tabContainer.indicator.height, - }, - tab: { - // All ViewStyle properties are allowed - paddingVertical: spacing.smaller, - }, - label: { - // All TextStyle properties are allowed - color: tabContainer.label.color, - fontFamily: font.family, - fontWeight: tabContainer.label.fontWeight, - textTransform: tabContainer.label.textTransform, - }, - activeLabel: { - // All TextStyle properties are allowed - color: tabContainer.activeLabel.color, - fontFamily: font.family, - fontWeight: tabContainer.activeLabel.fontWeight, - textTransform: tabContainer.activeLabel.textTransform, - }, - badgeContainer: { - // All ViewStyle properties are allowed - borderRadius: tabContainer.badgeContainer.borderRadius, - backgroundColor: tabContainer.badgeContainer.backgroundColor, - paddingVertical: tabContainer.badgeContainer.paddingVertical, - paddingHorizontal: tabContainer.badgeContainer.paddingHorizontal, - marginLeft: tabContainer.badgeContainer.marginLeft - }, - badgeCaption: { - // All TextStyle properties are allowed - fontSize: tabContainer.badgeCaption.fontSize, - color: tabContainer.badgeCaption.color, - fontFamily: font.family, - fontWeight: tabContainer.badgeCaption.fontWeight, - marginTop: -1, - } -}; diff --git a/theme/styles/native/core/widgets/textarea.js b/theme/styles/native/core/widgets/textarea.js deleted file mode 100644 index 452d63b..0000000 --- a/theme/styles/native/core/widgets/textarea.js +++ /dev/null @@ -1,73 +0,0 @@ -import { input } from "../variables"; -import { TextBox, TextBoxVertical } from "./textbox"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Text Area - - Default Class For Mendix Text Area Widget -========================================================================== */ -export const TextArea = { - container: { - // All ViewStyle properties are allowed - ...TextBox.container, - }, - containerDisabled: { - // All ViewStyle properties are allowed - ...TextBox.containerDisabled, - }, - label: { - // numberOfLines and all TextStyle properties are allowed - ...TextBox.label, - height: "100%", - textAlignVertical: "top", - paddingVertical: input.paddingVertical, - }, - labelDisabled: { - // All ViewStyle properties are allowed - ...TextBox.labelDisabled - }, - input: { - // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed - ...TextBox.input, - textAlignVertical: "top", - paddingTop: input.paddingVertical, - }, - inputDisabled: { - // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed - ...TextBox.inputDisabled - }, - inputError: { - // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed - ...TextBox.inputError, - }, - inputFocused: { - // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed - ...TextBox.inputFocused, - }, - validationMessage: { - // All TextStyle properties are allowed - ...TextBox.validationMessage, - }, -}; -export const TextAreaVertical = { - container: TextBoxVertical.container, - containerDisabled: TextBoxVertical.containerDisabled, - label: { - ...TextBoxVertical.label, - height: undefined, - paddingVertical: undefined, - textAlignVertical: undefined, - }, - labelDisabled: TextBoxVertical.labelDisabled, - input: TextBoxVertical.input, - inputDisabled: TextBoxVertical.inputDisabled, - inputError: TextBoxVertical.inputError, - inputFocused: TextBoxVertical.inputFocused, - validationMessage: TextBoxVertical.validationMessage, -}; diff --git a/theme/styles/native/core/widgets/textbox.js b/theme/styles/native/core/widgets/textbox.js deleted file mode 100644 index e410c62..0000000 --- a/theme/styles/native/core/widgets/textbox.js +++ /dev/null @@ -1,100 +0,0 @@ -import { font, input, spacing } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Text Box - - Default Class For Mendix Text Box Widget -========================================================================== */ -export const TextBox = { - container: { - // All ViewStyle properties are allowed - }, - containerDisabled: { - // All ViewStyle properties are allowed - }, - label: { - // numberOfLines and all TextStyle properties are allowed - numberOfLines: 1, - color: input.labelColor, - fontSize: input.fontSize, - fontFamily: font.family, - textAlign: input.textAlign, - marginRight: spacing.small, - }, - labelDisabled: { - // TextStyle properties are allowed - color: input.labelColorDisabled, - }, - input: { - // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed - color: input.color, - borderColor: input.borderColor, - backgroundColor: input.backgroundColor, - selectionColor: input.selectionColor, - placeholderTextColor: input.placeholderTextColor, - fontSize: input.fontSize, - fontFamily: input.fontFamily, - borderWidth: input.borderWidth, - borderRadius: input.borderRadius, - paddingHorizontal: input.paddingHorizontal, - paddingVertical: input.paddingVertical, - }, - inputDisabled: { - // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed - backgroundColor: input.backgroundColorDisabled, - color: input.colorDisabled, - }, - inputError: { - // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed - color: input.errorColor, - borderColor: input.errorColor, - placeholderTextColor: input.errorColor, - underlineColorAndroid: input.underlineColorAndroid, - }, - inputFocused: { - // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed - borderColor: input.borderColorFocused - }, - validationMessage: { - // All TextStyle properties are allowed - color: input.errorColor, - fontSize: font.size, - fontFamily: font.family, - }, -}; -export const TextBoxVertical = { - container: {}, - containerDisabled: TextBox.containerDisabled, - label: { - numberOfLines: 1, - color: input.labelColor, - fontSize: input.fontSize, - fontFamily: font.family, - textAlign: input.textAlign, - marginBottom: spacing.smallest, - }, - labelDisabled: TextBox.labelDisabled, - input: { - color: input.color, - borderColor: input.borderColor, - backgroundColor: input.backgroundColor, - selectionColor: input.selectionColor, - placeholderTextColor: input.placeholderTextColor, - fontSize: input.fontSize, - fontFamily: input.fontFamily, - borderRadius: input.borderRadius, - borderWidth: input.borderWidth, - paddingHorizontal: input.paddingHorizontal, - paddingVertical: input.paddingVertical, - }, - inputFocused: TextBox.inputFocused, - inputDisabled: TextBox.inputDisabled, - inputError: TextBox.inputError, - validationMessage: TextBox.validationMessage, -}; diff --git a/theme/styles/native/core/widgets/togglebuttons.js b/theme/styles/native/core/widgets/togglebuttons.js deleted file mode 100644 index 1a618e2..0000000 --- a/theme/styles/native/core/widgets/togglebuttons.js +++ /dev/null @@ -1,59 +0,0 @@ -import { Platform } from "react-native"; -import { background, brand, contrast, font, input } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Segmented Controls - - Default Class For Mendix Segmented Controls Widget -========================================================================== */ -export const com_mendix_widget_native_togglebuttons_ToggleButtons = { - container: { - // All ViewStyle properties are allowed - alignSelf: "stretch", - }, - containerDisabled: { - opacity: 0.6, - alignSelf: "stretch", - }, - button: { - // All ViewStyle properties are allowed - backgroundColor: background.primary, - borderColor: Platform.select({ ios: brand.primary, android: contrast.lower }), - }, - text: { - // All TextStyle properties are allowed - color: Platform.select({ ios: brand.primary, android: contrast.high }), - fontSize: font.size, - fontFamily: font.family, - }, - activeButton: { - // All ViewStyle properties are allowed - ...Platform.select({ - ios: { - backgroundColor: brand.primary, - borderColor: brand.primary, - }, - android: { - backgroundColor: brand.primary, - borderColor: brand.primary, - }, - }), - }, - activeButtonText: { - // All TextStyle properties are allowed - fontSize: font.size, - fontFamily: font.family, - }, - validationMessage: { - // All TextStyle properties are allowed - color: input.errorColor, - fontSize: font.size, - fontFamily: font.family, - }, -}; diff --git a/theme/styles/native/core/widgets/typography.js b/theme/styles/native/core/widgets/typography.js deleted file mode 100644 index 5dd872a..0000000 --- a/theme/styles/native/core/widgets/typography.js +++ /dev/null @@ -1,79 +0,0 @@ -import { font } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Text - - Default Class For Mendix Text Widget -========================================================================== */ -export const Text = { - container: { - // All ViewStyle properties are allowed - }, - text: { - // numberOfLines & All TextStyle properties are allowed - color: font.color, - fontSize: font.size, - fontFamily: font.family, - lineHeight: font.size + 2, - }, -}; -export const TextHeading1 = { - container: {}, - text: { - fontWeight: font.weightSemiBold, - fontSize: font.sizeH1, - fontFamily: font.family, - lineHeight: font.sizeH1, - }, -}; -export const TextHeading2 = { - container: {}, - text: { - fontWeight: font.weightSemiBold, - fontSize: font.sizeH2, - fontFamily: font.family, - lineHeight: font.sizeH2, - }, -}; -export const TextHeading3 = { - container: {}, - text: { - fontWeight: font.weightSemiBold, - fontSize: font.sizeH3, - fontFamily: font.family, - lineHeight: font.sizeH3, - }, -}; -export const TextHeading4 = { - container: {}, - text: { - fontWeight: font.weightSemiBold, - fontSize: font.sizeH4, - fontFamily: font.family, - lineHeight: font.sizeH4, - }, -}; -export const TextHeading5 = { - container: {}, - text: { - fontWeight: font.weightSemiBold, - fontSize: font.sizeH5, - fontFamily: font.family, - lineHeight: font.sizeH5, - }, -}; -export const TextHeading6 = { - container: {}, - text: { - fontWeight: font.weightSemiBold, - fontSize: font.sizeH6, - fontFamily: font.family, - lineHeight: font.sizeH6, - }, -}; diff --git a/theme/styles/native/core/widgets/videoplayer.js b/theme/styles/native/core/widgets/videoplayer.js deleted file mode 100644 index 3e47b5e..0000000 --- a/theme/styles/native/core/widgets/videoplayer.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Video Player - - Default Class For Mendix Video Player Widget -========================================================================== */ -export const com_mendix_widget_native_videoplayer_VideoPlayer = { - container: { - // All ViewStyle properties are allowed - }, - indicator: { - // Only the backgroundColor property is allowed - }, - video: { - // All ViewStyle properties are allowed - }, -}; diff --git a/theme/styles/native/core/widgets/webview.js b/theme/styles/native/core/widgets/webview.js deleted file mode 100644 index a8078f0..0000000 --- a/theme/styles/native/core/widgets/webview.js +++ /dev/null @@ -1,26 +0,0 @@ -import { font } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Web View - - Default Class For Mendix Web View Widget -========================================================================== */ -export const com_mendix_widget_native_webview_WebView = { - container: { - // All ViewStyle properties are allowed - }, - errorContainer: { - // All ViewStyle properties are allowed - }, - errorText: { - // All TextStyle properties are allowed - fontSize: font.size, - fontFamily: font.family, - }, -}; diff --git a/theme/styles/native/main.js b/theme/styles/native/main.js deleted file mode 100644 index 9cbc8fd..0000000 --- a/theme/styles/native/main.js +++ /dev/null @@ -1,84 +0,0 @@ -//================================== CORE ==================================\\ -// -// -// Base -export * from "./core/base/flex"; -export * from "./core/base/spacing"; -// -// -// Components -export * from "./core/widgets/activityindicator"; -export * from "./core/helpers/activityindicator"; -export * from "./core/widgets/animation"; -export * from "./core/widgets/backgroundimage"; -export * from "./core/widgets/badge"; -export * from "./core/helpers/badge"; -export * from "./core/widgets/bottomsheet"; -export * from "./core/widgets/buttons"; -export * from "./core/helpers/buttons"; -export * from "./core/widgets/carousel"; -export * from "./core/widgets/checkbox"; -export * from "./core/widgets/colorpicker"; -export * from "./core/widgets/container"; -export * from "./core/widgets/datepicker"; -export * from "./core/widgets/dropdown"; -export * from "./core/widgets/feedback"; -export * from "./core/widgets/floatingactionbutton"; -export * from "./core/helpers/floatingactionbutton"; -export * from "./core/widgets/images"; -export * from "./core/helpers/images"; -export * from "./core/widgets/introscreen"; -export * from "./core/widgets/layoutgrid"; -export * from "./core/widgets/linechart"; -export * from "./core/helpers/linechart"; -export * from "./core/widgets/barchart"; -export * from "./core/helpers/barchart"; -export * from "./core/widgets/listviews"; -export * from "./core/helpers/listviews"; -export * from "./core/widgets/listviewswipe"; -export * from "./core/helpers/listviewswipe"; -export * from "./core/widgets/maps"; -export * from "./core/helpers/maps"; -export * from "./core/widgets/navigation"; -export * from "./core/widgets/pagetitle"; -export * from "./core/widgets/progressbar"; -export * from "./core/helpers/progressbar"; -export * from "./core/widgets/progresscircle"; -export * from "./core/helpers/progresscircle"; -export * from "./core/widgets/popupmenu"; -export * from "./core/widgets/qrcode"; -export * from "./core/widgets/rangeslider"; -export * from "./core/helpers/rangeslider"; -export * from "./core/widgets/rating"; -export * from "./core/widgets/referenceselector"; -export * from "./core/widgets/safeareaview"; -export * from "./core/widgets/slider"; -export * from "./core/helpers/slider"; -export * from "./core/widgets/tabcontainer"; -export * from "./core/helpers/tabcontainer"; -export * from "./core/widgets/textarea"; -export * from "./core/widgets/textbox"; -export * from "./core/helpers/textbox"; -export * from "./core/widgets/togglebuttons"; -export * from "./core/widgets/typography"; -export * from "./core/helpers/typography"; -export * from "./core/widgets/videoplayer"; -export * from "./core/widgets/webview"; -export * from "./core/helpers/helperclasses"; -// -// -//================================= CUSTOM =================================\\ -// -// Layouts -export * from "./ui_resources/atlas_ui_resources/layouts/layout"; -// -// -// Page Templates -export * from "./ui_resources/atlas_ui_resources/pagetemplates/page"; -export * from "./ui_resources/atlas_ui_resources/pagetemplates/maps"; -export * from "./ui_resources/atlas_ui_resources/pagetemplates/inspectiondetails"; -// -// -// Building blocks -export * from "./ui_resources/atlas_ui_resources/buildingblocks/card"; -export * from "./ui_resources/atlas_ui_resources/buildingblocks/header"; diff --git a/theme/styles/native/ui_resources/atlas_ui_resources/buildingblocks/card.js b/theme/styles/native/ui_resources/atlas_ui_resources/buildingblocks/card.js deleted file mode 100644 index d025639..0000000 --- a/theme/styles/native/ui_resources/atlas_ui_resources/buildingblocks/card.js +++ /dev/null @@ -1,100 +0,0 @@ -import { Platform } from "react-native"; -import { background, border, contrast, spacing } from "../../../core/variables"; -/* -========================================================================== - Cards - -========================================================================== -*/ -export const card = { - container: { - borderRadius: border.radius, - backgroundColor: background.primary, - marginBottom: spacing.regular, - ...Platform.select({ - android: { - borderWidth: 1, - borderColor: contrast.lowest, - }, - }), - elevation: 1.5, - shadowColor: "#000", - shadowOpacity: 0.1, - shadowRadius: 10, - shadowOffset: { - width: 0, - height: 2, - }, - }, -}; -// -//== Elements -//-------------------------------------------------------------------------------------------------------------------// -export const cardImage = { - container: { - overflow: "hidden", - borderTopLeftRadius: border.radius, - borderTopRightRadius: border.radius, - }, - image: { - width: "100%", - height: 200, - resizeMode: "cover", - }, -}; -export const cardImageFull = { - container: { - ...cardImage.container, - borderBottomLeftRadius: border.radius, - borderBottomRightRadius: border.radius, - }, - image: { - width: "100%", - height: 300, - resizeMode: "cover", - }, -}; -export const cardBody = { - container: { - position: "absolute", - end: 0, - start: 0, - bottom: 0, - backgroundColor: "transparent", - }, -}; -// -//== Variations -//-------------------------------------------------------------------------------------------------------------------// -// Card Action -export const cardAction = { - container: { - maxWidth: "100%", - aspectRatio: 1, - borderWidth: 1, - borderColor: border.color, - borderRadius: border.radius, - padding: spacing.regular, - alignItems: "center", - }, -}; -export const cardActionImage = { - image: { - maxHeight: 70, - resizeMode: "contain", - }, -}; -// -//-------------------------------------------------------------------------------------------------------------------// -// Card Payment -export const cardPaymentImage = { - container: { - flex: -1, - maxHeight: 250, - }, - image: { - width: "100%", - maxHeight: 250, - resizeMode: "contain", - }, -}; diff --git a/theme/styles/native/ui_resources/atlas_ui_resources/buildingblocks/header.js b/theme/styles/native/ui_resources/atlas_ui_resources/buildingblocks/header.js deleted file mode 100644 index 8df718e..0000000 --- a/theme/styles/native/ui_resources/atlas_ui_resources/buildingblocks/header.js +++ /dev/null @@ -1,55 +0,0 @@ -import { Platform } from "react-native"; -import { background, border, contrast, spacing } from "../../../core/variables"; -/* -========================================================================== - Cards - -========================================================================== -*/ -export const header = { - container: { - borderRadius: border.radius, - backgroundColor: background.primary, - marginBottom: spacing.regular, - ...Platform.select({ - android: { - borderWidth: 1, - borderColor: contrast.lowest, - }, - }), - }, -}; -// -//== Elements -//-------------------------------------------------------------------------------------------------------------------// -export const headerImageFull = { - container: { - overflow: "hidden", - }, - image: { - width: "100%", - height: 250, - resizeMode: "cover", - }, -}; -export const headerImageOverlay = { - container: { - zIndex: 10, - width: "100%", - height: "100%", - position: "absolute", - backgroundColor: "rgba(0,0,0,0.4)", - }, -}; -export const headerBody = { - container: { - bottom: 0, - zIndex: 11, - width: "100%", - position: "absolute", - backgroundColor: "transparent", - }, -}; -// -//== Variations -//-------------------------------------------------------------------------------------------------------------------// diff --git a/theme/styles/native/ui_resources/atlas_ui_resources/layouts/layout.js b/theme/styles/native/ui_resources/atlas_ui_resources/layouts/layout.js deleted file mode 100644 index 1b53995..0000000 --- a/theme/styles/native/ui_resources/atlas_ui_resources/layouts/layout.js +++ /dev/null @@ -1,56 +0,0 @@ -import { NativeModules } from "react-native"; -import { darkMode } from "../../../app/custom-variables.js"; -import { background, font, navigation } from "../../../core/variables"; -/* -========================================================================== - TopBar / BottomBar / ProgressOverlay - - Default Class For Mendix TopBar, BottomBar and ProgressOverlay -========================================================================== -*/ -// backgroundColor of the native iOS statusbar can not be changed. -// To fix this we change the barStyle of the statusbar if OS theme is dark and app theme is light (And the other way around). -const isOSDarkMode = NativeModules && NativeModules.RNDarkMode && NativeModules.RNDarkMode.initialMode && NativeModules.RNDarkMode.initialMode === "dark"; -const statusBarStyle = !darkMode && isOSDarkMode ? - "dark-content" : - darkMode && !isOSDarkMode ? "light-content" : navigation.statusBar.barStyle; -// -export const Layout = { - sidebar: { - // All ViewStyle properties are allowed - }, - statusBar: { - // Only backgroundColor and barStyle are allowed - backgroundColor: navigation.statusBar.backgroundColor, - barStyle: statusBarStyle, - }, - header: { - container: { - // All ViewStyle properties are allowed - backgroundColor: navigation.topBar.backgroundColor, - borderBottomWidth: undefined, - }, - title: { - // All TextStyle properties are allowed - color: navigation.topBar.titleColor, - fontSize: navigation.topBar.titleFontSize, - fontFamily: font.family, - fontWeight: font.weightBold, - }, - backButtonText: { - // All TextStyle properties are allowed - color: navigation.topBar.backButtonColor, - fontFamily: font.family, - }, - backButtonIcon: { - // All ImageStyle properties are allowed - tintColor: navigation.topBar.backButtonColor, - }, - }, - container: { - // All ViewStyle properties are allowed - backgroundColor: background.primary, - }, -}; -// -export const Page = Layout; diff --git a/theme/styles/native/ui_resources/atlas_ui_resources/pagetemplates/inspectiondetails.js b/theme/styles/native/ui_resources/atlas_ui_resources/pagetemplates/inspectiondetails.js deleted file mode 100644 index 7878669..0000000 --- a/theme/styles/native/ui_resources/atlas_ui_resources/pagetemplates/inspectiondetails.js +++ /dev/null @@ -1,29 +0,0 @@ -/* -========================================================================== - Inspection details - -========================================================================== -*/ -//== Elements -//-------------------------------------------------------------------------------------------------------------------// -export const carouselCardImage = { - container: { - borderRadius: 10, - overflow: "hidden", - }, - image: { - width: "100%", - height: "100%", - }, -}; -export const carouselFullWidthImage = { - container: {}, - image: { - width: "100%", - height: "100%", - }, -}; -// -//== Variations -//-------------------------------------------------------------------------------------------------------------------// -// diff --git a/theme/styles/native/ui_resources/atlas_ui_resources/pagetemplates/maps.js b/theme/styles/native/ui_resources/atlas_ui_resources/pagetemplates/maps.js deleted file mode 100644 index c861db7..0000000 --- a/theme/styles/native/ui_resources/atlas_ui_resources/pagetemplates/maps.js +++ /dev/null @@ -1,71 +0,0 @@ -import { background, border, contrast, spacing } from "../../../core/variables.js"; -/* -========================================================================== - Maps - -========================================================================== -*/ -// -//== Elements -//-------------------------------------------------------------------------------------------------------------------// -export const mapsBackground = { - container: { - position: "absolute", - height: "100%", - width: "100%", - zIndex: 0, - }, -}; -export const mapsFooter = { - container: { - bottom: 0, - position: "absolute", - }, -}; -export const mapsFooterSendLocation = { - container: { - flex: 1, - alignSelf: "flex-end", - backgroundColor: background.primary, - padding: spacing.regular, - margin: spacing.regular, - borderRadius: border.radius, - elevation: 4, - shadowColor: contrast.lower, - shadowOpacity: 0.8, - shadowRadius: 8, - shadowOffset: { - width: 0, - height: 2, - }, - }, -}; -export const mapsList = { - container: { - paddingHorizontal: spacing.regular, - }, -}; -export const mapsListItemImage = { - container: { - backgroundColor: background.primary, - borderRadius: border.radius, - marginVertical: spacing.regular, - marginLeft: spacing.smallest, - marginRight: spacing.regular, - elevation: 4, - shadowColor: contrast.lower, - shadowOpacity: 0.8, - shadowRadius: 8, - shadowOffset: { - width: 0, - height: 2, - }, - }, - image: { - borderRadius: border.radius, - }, -}; -// -//== Variations -//-------------------------------------------------------------------------------------------------------------------// -// diff --git a/theme/styles/native/ui_resources/atlas_ui_resources/pagetemplates/page.js b/theme/styles/native/ui_resources/atlas_ui_resources/pagetemplates/page.js deleted file mode 100644 index 0e3bcc2..0000000 --- a/theme/styles/native/ui_resources/atlas_ui_resources/pagetemplates/page.js +++ /dev/null @@ -1,39 +0,0 @@ -/* -========================================================================== - Page - -========================================================================== -*/ -//== Elements -//-------------------------------------------------------------------------------------------------------------------// -// -//== Variations -//-------------------------------------------------------------------------------------------------------------------// -// -export const pageHeaderBorderNone = { - sidebar: { - // All ViewStyle properties are allowed - }, - statusBar: { - // Only backgroundColor and barStyle are allowed - }, - header: { - container: { - // All ViewStyle properties are allowed - elevation: 0, - borderBottomWidth: undefined, - }, - title: { - // All TextStyle properties are allowed - }, - backButtonText: { - // All TextStyle properties are allowed - }, - backButtonIcon: { - // All ImageStyle properties are allowed - }, - }, - container: { - // All ViewStyle properties are allowed - }, -}; diff --git a/theme/styles/web/css/main.css b/theme/styles/web/css/main.css deleted file mode 100644 index 66189f4..0000000 --- a/theme/styles/web/css/main.css +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap v3.3.4 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.2 | MIT License | git.io/normalize */@import url("https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700");@import url("https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700");@import url("https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700");html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{margin:0.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type='button'],input[type='reset'],input[type='submit']{-webkit-appearance:button;cursor:pointer}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type='checkbox'],input[type='radio']{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type='number']::-webkit-inner-spin-button,input[type='number']::-webkit-outer-spin-button{height:auto}input[type='search']{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type='search']::-webkit-search-cancel-button,input[type='search']::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:0.35em 0.625em 0.75em;margin:0 2px;border:1px solid #c0c0c0}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{color:#000 !important;text-shadow:none !important;background:transparent !important;-webkit-box-shadow:none !important;box-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^='#']:after,a[href^='javascript:']:after{content:''}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff !important}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url("./fonts/glyphicons-halflings-regular.woff2") format("woff2"),url("./fonts/glyphicons-halflings-regular.woff") format("woff")}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:'\2a'}.glyphicon-plus:before{content:'\2b'}.glyphicon-euro:before,.glyphicon-eur:before{content:'\20ac'}.glyphicon-minus:before{content:'\2212'}.glyphicon-cloud:before{content:'\2601'}.glyphicon-envelope:before{content:'\2709'}.glyphicon-pencil:before{content:'\270f'}.glyphicon-glass:before{content:'\e001'}.glyphicon-music:before{content:'\e002'}.glyphicon-search:before{content:'\e003'}.glyphicon-heart:before{content:'\e005'}.glyphicon-star:before{content:'\e006'}.glyphicon-star-empty:before{content:'\e007'}.glyphicon-user:before{content:'\e008'}.glyphicon-film:before{content:'\e009'}.glyphicon-th-large:before{content:'\e010'}.glyphicon-th:before{content:'\e011'}.glyphicon-th-list:before{content:'\e012'}.glyphicon-ok:before{content:'\e013'}.glyphicon-remove:before{content:'\e014'}.glyphicon-zoom-in:before{content:'\e015'}.glyphicon-zoom-out:before{content:'\e016'}.glyphicon-off:before{content:'\e017'}.glyphicon-signal:before{content:'\e018'}.glyphicon-cog:before{content:'\e019'}.glyphicon-trash:before{content:'\e020'}.glyphicon-home:before{content:'\e021'}.glyphicon-file:before{content:'\e022'}.glyphicon-time:before{content:'\e023'}.glyphicon-road:before{content:'\e024'}.glyphicon-download-alt:before{content:'\e025'}.glyphicon-download:before{content:'\e026'}.glyphicon-upload:before{content:'\e027'}.glyphicon-inbox:before{content:'\e028'}.glyphicon-play-circle:before{content:'\e029'}.glyphicon-repeat:before{content:'\e030'}.glyphicon-refresh:before{content:'\e031'}.glyphicon-list-alt:before{content:'\e032'}.glyphicon-lock:before{content:'\e033'}.glyphicon-flag:before{content:'\e034'}.glyphicon-headphones:before{content:'\e035'}.glyphicon-volume-off:before{content:'\e036'}.glyphicon-volume-down:before{content:'\e037'}.glyphicon-volume-up:before{content:'\e038'}.glyphicon-qrcode:before{content:'\e039'}.glyphicon-barcode:before{content:'\e040'}.glyphicon-tag:before{content:'\e041'}.glyphicon-tags:before{content:'\e042'}.glyphicon-book:before{content:'\e043'}.glyphicon-bookmark:before{content:'\e044'}.glyphicon-print:before{content:'\e045'}.glyphicon-camera:before{content:'\e046'}.glyphicon-font:before{content:'\e047'}.glyphicon-bold:before{content:'\e048'}.glyphicon-italic:before{content:'\e049'}.glyphicon-text-height:before{content:'\e050'}.glyphicon-text-width:before{content:'\e051'}.glyphicon-align-left:before{content:'\e052'}.glyphicon-align-center:before{content:'\e053'}.glyphicon-align-right:before{content:'\e054'}.glyphicon-align-justify:before{content:'\e055'}.glyphicon-list:before{content:'\e056'}.glyphicon-indent-left:before{content:'\e057'}.glyphicon-indent-right:before{content:'\e058'}.glyphicon-facetime-video:before{content:'\e059'}.glyphicon-picture:before{content:'\e060'}.glyphicon-map-marker:before{content:'\e062'}.glyphicon-adjust:before{content:'\e063'}.glyphicon-tint:before{content:'\e064'}.glyphicon-edit:before{content:'\e065'}.glyphicon-share:before{content:'\e066'}.glyphicon-check:before{content:'\e067'}.glyphicon-move:before{content:'\e068'}.glyphicon-step-backward:before{content:'\e069'}.glyphicon-fast-backward:before{content:'\e070'}.glyphicon-backward:before{content:'\e071'}.glyphicon-play:before{content:'\e072'}.glyphicon-pause:before{content:'\e073'}.glyphicon-stop:before{content:'\e074'}.glyphicon-forward:before{content:'\e075'}.glyphicon-fast-forward:before{content:'\e076'}.glyphicon-step-forward:before{content:'\e077'}.glyphicon-eject:before{content:'\e078'}.glyphicon-chevron-left:before{content:'\e079'}.glyphicon-chevron-right:before{content:'\e080'}.glyphicon-plus-sign:before{content:'\e081'}.glyphicon-minus-sign:before{content:'\e082'}.glyphicon-remove-sign:before{content:'\e083'}.glyphicon-ok-sign:before{content:'\e084'}.glyphicon-question-sign:before{content:'\e085'}.glyphicon-info-sign:before{content:'\e086'}.glyphicon-screenshot:before{content:'\e087'}.glyphicon-remove-circle:before{content:'\e088'}.glyphicon-ok-circle:before{content:'\e089'}.glyphicon-ban-circle:before{content:'\e090'}.glyphicon-arrow-left:before{content:'\e091'}.glyphicon-arrow-right:before{content:'\e092'}.glyphicon-arrow-up:before{content:'\e093'}.glyphicon-arrow-down:before{content:'\e094'}.glyphicon-share-alt:before{content:'\e095'}.glyphicon-resize-full:before{content:'\e096'}.glyphicon-resize-small:before{content:'\e097'}.glyphicon-exclamation-sign:before{content:'\e101'}.glyphicon-gift:before{content:'\e102'}.glyphicon-leaf:before{content:'\e103'}.glyphicon-fire:before{content:'\e104'}.glyphicon-eye-open:before{content:'\e105'}.glyphicon-eye-close:before{content:'\e106'}.glyphicon-warning-sign:before{content:'\e107'}.glyphicon-plane:before{content:'\e108'}.glyphicon-calendar:before{content:'\e109'}.glyphicon-random:before{content:'\e110'}.glyphicon-comment:before{content:'\e111'}.glyphicon-magnet:before{content:'\e112'}.glyphicon-chevron-up:before{content:'\e113'}.glyphicon-chevron-down:before{content:'\e114'}.glyphicon-retweet:before{content:'\e115'}.glyphicon-shopping-cart:before{content:'\e116'}.glyphicon-folder-close:before{content:'\e117'}.glyphicon-folder-open:before{content:'\e118'}.glyphicon-resize-vertical:before{content:'\e119'}.glyphicon-resize-horizontal:before{content:'\e120'}.glyphicon-hdd:before{content:'\e121'}.glyphicon-bullhorn:before{content:'\e122'}.glyphicon-bell:before{content:'\e123'}.glyphicon-certificate:before{content:'\e124'}.glyphicon-thumbs-up:before{content:'\e125'}.glyphicon-thumbs-down:before{content:'\e126'}.glyphicon-hand-right:before{content:'\e127'}.glyphicon-hand-left:before{content:'\e128'}.glyphicon-hand-up:before{content:'\e129'}.glyphicon-hand-down:before{content:'\e130'}.glyphicon-circle-arrow-right:before{content:'\e131'}.glyphicon-circle-arrow-left:before{content:'\e132'}.glyphicon-circle-arrow-up:before{content:'\e133'}.glyphicon-circle-arrow-down:before{content:'\e134'}.glyphicon-globe:before{content:'\e135'}.glyphicon-wrench:before{content:'\e136'}.glyphicon-tasks:before{content:'\e137'}.glyphicon-filter:before{content:'\e138'}.glyphicon-briefcase:before{content:'\e139'}.glyphicon-fullscreen:before{content:'\e140'}.glyphicon-dashboard:before{content:'\e141'}.glyphicon-paperclip:before{content:'\e142'}.glyphicon-heart-empty:before{content:'\e143'}.glyphicon-link:before{content:'\e144'}.glyphicon-phone:before{content:'\e145'}.glyphicon-pushpin:before{content:'\e146'}.glyphicon-usd:before{content:'\e148'}.glyphicon-gbp:before{content:'\e149'}.glyphicon-sort:before{content:'\e150'}.glyphicon-sort-by-alphabet:before{content:'\e151'}.glyphicon-sort-by-alphabet-alt:before{content:'\e152'}.glyphicon-sort-by-order:before{content:'\e153'}.glyphicon-sort-by-order-alt:before{content:'\e154'}.glyphicon-sort-by-attributes:before{content:'\e155'}.glyphicon-sort-by-attributes-alt:before{content:'\e156'}.glyphicon-unchecked:before{content:'\e157'}.glyphicon-expand:before{content:'\e158'}.glyphicon-collapse-down:before{content:'\e159'}.glyphicon-collapse-up:before{content:'\e160'}.glyphicon-log-in:before{content:'\e161'}.glyphicon-flash:before{content:'\e162'}.glyphicon-log-out:before{content:'\e163'}.glyphicon-new-window:before{content:'\e164'}.glyphicon-record:before{content:'\e165'}.glyphicon-save:before{content:'\e166'}.glyphicon-open:before{content:'\e167'}.glyphicon-saved:before{content:'\e168'}.glyphicon-import:before{content:'\e169'}.glyphicon-export:before{content:'\e170'}.glyphicon-send:before{content:'\e171'}.glyphicon-floppy-disk:before{content:'\e172'}.glyphicon-floppy-saved:before{content:'\e173'}.glyphicon-floppy-remove:before{content:'\e174'}.glyphicon-floppy-save:before{content:'\e175'}.glyphicon-floppy-open:before{content:'\e176'}.glyphicon-credit-card:before{content:'\e177'}.glyphicon-transfer:before{content:'\e178'}.glyphicon-cutlery:before{content:'\e179'}.glyphicon-header:before{content:'\e180'}.glyphicon-compressed:before{content:'\e181'}.glyphicon-earphone:before{content:'\e182'}.glyphicon-phone-alt:before{content:'\e183'}.glyphicon-tower:before{content:'\e184'}.glyphicon-stats:before{content:'\e185'}.glyphicon-sd-video:before{content:'\e186'}.glyphicon-hd-video:before{content:'\e187'}.glyphicon-subtitles:before{content:'\e188'}.glyphicon-sound-stereo:before{content:'\e189'}.glyphicon-sound-dolby:before{content:'\e190'}.glyphicon-sound-5-1:before{content:'\e191'}.glyphicon-sound-6-1:before{content:'\e192'}.glyphicon-sound-7-1:before{content:'\e193'}.glyphicon-copyright-mark:before{content:'\e194'}.glyphicon-registration-mark:before{content:'\e195'}.glyphicon-cloud-download:before{content:'\e197'}.glyphicon-cloud-upload:before{content:'\e198'}.glyphicon-tree-conifer:before{content:'\e199'}.glyphicon-tree-deciduous:before{content:'\e200'}.glyphicon-cd:before{content:'\e201'}.glyphicon-save-file:before{content:'\e202'}.glyphicon-open-file:before{content:'\e203'}.glyphicon-level-up:before{content:'\e204'}.glyphicon-copy:before{content:'\e205'}.glyphicon-paste:before{content:'\e206'}.glyphicon-alert:before{content:'\e209'}.glyphicon-equalizer:before{content:'\e210'}.glyphicon-king:before{content:'\e211'}.glyphicon-queen:before{content:'\e212'}.glyphicon-pawn:before{content:'\e213'}.glyphicon-bishop:before{content:'\e214'}.glyphicon-knight:before{content:'\e215'}.glyphicon-baby-formula:before{content:'\e216'}.glyphicon-tent:before{content:'\26fa'}.glyphicon-blackboard:before{content:'\e218'}.glyphicon-bed:before{content:'\e219'}.glyphicon-apple:before{content:'\f8ff'}.glyphicon-erase:before{content:'\e221'}.glyphicon-hourglass:before{content:'\231b'}.glyphicon-lamp:before{content:'\e223'}.glyphicon-duplicate:before{content:'\e224'}.glyphicon-piggy-bank:before{content:'\e225'}.glyphicon-scissors:before{content:'\e226'}.glyphicon-bitcoin:before{content:'\e227'}.glyphicon-btc:before{content:'\e227'}.glyphicon-xbt:before{content:'\e227'}.glyphicon-yen:before{content:'\00a5'}.glyphicon-jpy:before{content:'\00a5'}.glyphicon-ruble:before{content:'\20bd'}.glyphicon-rub:before{content:'\20bd'}.glyphicon-scale:before{content:'\e230'}.glyphicon-ice-lolly:before{content:'\e231'}.glyphicon-ice-lolly-tasted:before{content:'\e232'}.glyphicon-education:before{content:'\e233'}.glyphicon-option-horizontal:before{content:'\e234'}.glyphicon-option-vertical:before{content:'\e235'}.glyphicon-menu-hamburger:before{content:'\e236'}.glyphicon-modal-window:before{content:'\e237'}.glyphicon-oil:before{content:'\e238'}.glyphicon-grain:before{content:'\e239'}.glyphicon-sunglasses:before{content:'\e240'}.glyphicon-text-size:before{content:'\e241'}.glyphicon-text-color:before{content:'\e242'}.glyphicon-text-background:before{content:'\e243'}.glyphicon-object-align-top:before{content:'\e244'}.glyphicon-object-align-bottom:before{content:'\e245'}.glyphicon-object-align-horizontal:before{content:'\e246'}.glyphicon-object-align-left:before{content:'\e247'}.glyphicon-object-align-vertical:before{content:'\e248'}.glyphicon-object-align-right:before{content:'\e249'}.glyphicon-triangle-right:before{content:'\e250'}.glyphicon-triangle-left:before{content:'\e251'}.glyphicon-triangle-bottom:before{content:'\e252'}.glyphicon-triangle-top:before{content:'\e253'}.glyphicon-console:before{content:'\e254'}.glyphicon-superscript:before{content:'\e255'}.glyphicon-subscript:before{content:'\e256'}.glyphicon-menu-left:before{content:'\e257'}.glyphicon-menu-right:before{content:'\e258'}.glyphicon-menu-down:before{content:'\e259'}.glyphicon-menu-up:before{content:'\e260'}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:hover,a:focus{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role='button']{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#777}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width: 768px){.lead{font-size:21px}}small,.small{font-size:85%}mark,.mark{padding:0.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width: 768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo, Monaco, Consolas, 'Courier New', monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width: 768px){.container{width:750px}}@media (min-width: 992px){.container{width:970px}}@media (min-width: 1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*='col-']{position:static;display:table-column;float:none}table td[class*='col-'],table th[class*='col-']{position:static;display:table-cell;float:none}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{min-height:0.01%;overflow-x:auto}@media screen and (max-width: 767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type='search']{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type='radio'],input[type='checkbox']{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type='file']{display:block}input[type='range']{display:block;width:100%}select[multiple],select[size]{height:auto}input[type='file']:focus,input[type='radio']:focus,input[type='checkbox']:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type='radio'],.radio-inline input[type='radio'],.checkbox input[type='checkbox'],.checkbox-inline input[type='checkbox']{position:absolute;margin-top:4px \9;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:normal;vertical-align:middle;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type='radio'][disabled],input[type='checkbox'][disabled],input[type='radio'].disabled,input[type='checkbox'].disabled,fieldset[disabled] input[type='radio'],fieldset[disabled] input[type='checkbox']{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static,.form-group div[class*='textBox']>.control-label,.form-group div[class*='textArea']>.control-label,.form-group div[class*='datePicker']>.control-label{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-group div[class*='textBox']>.input-lg.control-label,.form-group div[class*='textArea']>.input-lg.control-label,.form-group div[class*='datePicker']>.input-lg.control-label,.form-control-static.input-sm,.form-group div[class*='textBox']>.input-sm.control-label,.form-group div[class*='textArea']>.input-sm.control-label,.form-group div[class*='datePicker']>.input-sm.control-label{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.form-group-sm .form-control{height:30px;line-height:30px}textarea.form-group-sm .form-control,select[multiple].form-group-sm .form-control{height:auto}.form-group-sm .form-control-static,.form-group-sm .form-group div[class*='textBox']>.control-label,.form-group .form-group-sm div[class*='textBox']>.control-label,.form-group-sm .form-group div[class*='textArea']>.control-label,.form-group .form-group-sm div[class*='textArea']>.control-label,.form-group-sm .form-group div[class*='datePicker']>.control-label,.form-group .form-group-sm div[class*='datePicker']>.control-label{height:30px;min-height:32px;padding:5px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.form-group-lg .form-control{height:46px;line-height:46px}textarea.form-group-lg .form-control,select[multiple].form-group-lg .form-control{height:auto}.form-group-lg .form-control-static,.form-group-lg .form-group div[class*='textBox']>.control-label,.form-group .form-group-lg div[class*='textBox']>.control-label,.form-group-lg .form-group div[class*='textArea']>.control-label,.form-group .form-group-lg div[class*='textArea']>.control-label,.form-group-lg .form-group div[class*='datePicker']>.control-label,.form-group .form-group-lg div[class*='datePicker']>.control-label{height:46px;min-height:38px;padding:10px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label ~ .form-control-feedback{top:25px}.has-feedback label.sr-only ~ .form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width: 768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static,.form-inline .form-group div[class*='textBox']>.control-label,.form-group .form-inline div[class*='textBox']>.control-label,.form-inline .form-group div[class*='textArea']>.control-label,.form-group .form-inline div[class*='textArea']>.control-label,.form-inline .form-group div[class*='datePicker']>.control-label,.form-group .form-inline div[class*='datePicker']>.control-label{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type='radio'],.form-inline .checkbox input[type='checkbox']{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width: 768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width: 768px){.form-horizontal .form-group-lg .control-label{padding-top:14.333333px}}@media (min-width: 768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:normal;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#333;text-decoration:none}.btn:active,.btn.active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:0.65}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default.focus,.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary,.datagrid-fullsearch.mx-grid .mx-grid-search-button{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary:hover,.datagrid-fullsearch.mx-grid .mx-grid-search-button:hover,.btn-primary:focus,.datagrid-fullsearch.mx-grid .mx-grid-search-button:focus,.btn-primary.focus,.datagrid-fullsearch.mx-grid .focus.mx-grid-search-button,.btn-primary:active,.datagrid-fullsearch.mx-grid .mx-grid-search-button:active,.btn-primary.active,.datagrid-fullsearch.mx-grid .active.mx-grid-search-button,.open>.dropdown-toggle.btn-primary,.datagrid-fullsearch.mx-grid .open>.dropdown-toggle.mx-grid-search-button{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary:active,.datagrid-fullsearch.mx-grid .mx-grid-search-button:active,.btn-primary.active,.datagrid-fullsearch.mx-grid .active.mx-grid-search-button,.open>.dropdown-toggle.btn-primary,.datagrid-fullsearch.mx-grid .open>.dropdown-toggle.mx-grid-search-button{background-image:none}.btn-primary.disabled,.datagrid-fullsearch.mx-grid .disabled.mx-grid-search-button,.btn-primary[disabled],.datagrid-fullsearch.mx-grid .mx-grid-search-button[disabled],fieldset[disabled] .btn-primary,fieldset[disabled] .datagrid-fullsearch.mx-grid .mx-grid-search-button,.datagrid-fullsearch.mx-grid fieldset[disabled] .mx-grid-search-button,.btn-primary.disabled:hover,.datagrid-fullsearch.mx-grid .disabled.mx-grid-search-button:hover,.btn-primary[disabled]:hover,.datagrid-fullsearch.mx-grid .mx-grid-search-button[disabled]:hover,fieldset[disabled] .btn-primary:hover,fieldset[disabled] .datagrid-fullsearch.mx-grid .mx-grid-search-button:hover,.datagrid-fullsearch.mx-grid fieldset[disabled] .mx-grid-search-button:hover,.btn-primary.disabled:focus,.datagrid-fullsearch.mx-grid .disabled.mx-grid-search-button:focus,.btn-primary[disabled]:focus,.datagrid-fullsearch.mx-grid .mx-grid-search-button[disabled]:focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .datagrid-fullsearch.mx-grid .mx-grid-search-button:focus,.datagrid-fullsearch.mx-grid fieldset[disabled] .mx-grid-search-button:focus,.btn-primary.disabled.focus,.datagrid-fullsearch.mx-grid .disabled.focus.mx-grid-search-button,.btn-primary[disabled].focus,.datagrid-fullsearch.mx-grid .mx-grid-search-button[disabled].focus,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .datagrid-fullsearch.mx-grid .focus.mx-grid-search-button,.datagrid-fullsearch.mx-grid fieldset[disabled] .focus.mx-grid-search-button,.btn-primary.disabled:active,.datagrid-fullsearch.mx-grid .disabled.mx-grid-search-button:active,.btn-primary[disabled]:active,.datagrid-fullsearch.mx-grid .mx-grid-search-button[disabled]:active,fieldset[disabled] .btn-primary:active,fieldset[disabled] .datagrid-fullsearch.mx-grid .mx-grid-search-button:active,.datagrid-fullsearch.mx-grid fieldset[disabled] .mx-grid-search-button:active,.btn-primary.disabled.active,.datagrid-fullsearch.mx-grid .disabled.active.mx-grid-search-button,.btn-primary[disabled].active,.datagrid-fullsearch.mx-grid .mx-grid-search-button[disabled].active,fieldset[disabled] .btn-primary.active,fieldset[disabled] .datagrid-fullsearch.mx-grid .active.mx-grid-search-button,.datagrid-fullsearch.mx-grid fieldset[disabled] .active.mx-grid-search-button{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge,.datagrid-fullsearch.mx-grid .mx-grid-search-button .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success.focus,.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info.focus,.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning.focus,.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger.focus,.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:normal;color:#337ab7;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#777;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type='submit'].btn-block,input[type='reset'].btn-block,input[type='button'].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:0.35s;-o-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-property:height, visibility;-o-transition-property:height, visibility;transition-property:height, visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.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;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#777}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:'';border-top:0;border-bottom:4px solid}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width: 768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:4px}.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-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle='buttons']>.btn input[type='radio'],[data-toggle='buttons']>.btn-group>.btn input[type='radio'],[data-toggle='buttons']>.btn input[type='checkbox'],[data-toggle='buttons']>.btn-group>.btn input[type='checkbox']{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*='col-']{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:normal;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type='radio'],.input-group-addon input[type='checkbox']{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-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-top-left-radius:0;border-bottom-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{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width: 768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width: 768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width: 768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width: 768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width: 768px){.navbar{border-radius:4px}}@media (min-width: 768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width: 768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;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-right:0;padding-left:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width: 480px) and (orientation: landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width: 768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width: 768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width: 768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width: 768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width: 768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width: 767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width: 768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}@media (min-width: 768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static,.navbar-form .form-group div[class*='textBox']>.control-label,.form-group .navbar-form div[class*='textBox']>.control-label,.navbar-form .form-group div[class*='textArea']>.control-label,.form-group .navbar-form div[class*='textArea']>.control-label,.navbar-form .form-group div[class*='datePicker']>.control-label,.form-group .navbar-form div[class*='datePicker']>.control-label{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type='radio'],.navbar-form .checkbox input[type='checkbox']{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width: 767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width: 768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width: 768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width: 768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right ~ .navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{color:#555;background-color:#e7e7e7}@media (max-width: 767px){.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:#333;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:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#333}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.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:#080808}.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{color:#fff;background-color:#080808}@media (max-width: 767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.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:#080808}.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:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#fff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:'/\00a0'}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:0.2em 0.6em 0.3em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:0.25em}a.label:hover,a.label:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:hover,.label-default[href]:focus{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.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}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px 15px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width: 768px){.jumbotron{padding:48px 0}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border 0.2s ease-in-out;-o-transition:border 0.2s ease-in-out;transition:border 0.2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-right:auto;margin-left:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-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{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-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;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{color:#555;text-decoration:none;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-right:15px;padding-left:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:0.2}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:0.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:transparent;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform 0.3s ease-out;-o-transition:-o-transform 0.3s ease-out;transition:transform 0.3s ease-out;-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%)}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:0.5}.modal-header{min-height:16.42857143px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width: 768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width: 992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:12px;font-weight:normal;line-height:1.4;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:0.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:14px;font-weight:normal;line-height:1.42857143;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;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)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:'';border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:' ';border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:' ';border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:' ';border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:' ';border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:0.6s ease-in-out left;-o-transition:0.6s ease-in-out left;transition:0.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d), (-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform 0.6s ease-in-out;-o-transition:-o-transform 0.6s ease-in-out;transition:transform 0.6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;perspective:1000}.carousel-inner>.item.next,.carousel-inner>.item.active.right{left:0;-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0)}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{left:0;-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0)}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{left:0;-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6);filter:alpha(opacity=50);opacity:0.5}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.0001) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.0001)));background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0%, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0%, rgba(0,0,0,0.5) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.0001)), to(rgba(0,0,0,0.5)));background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0%, rgba(0,0,0,0.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:0.9}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width: 768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{display:table;content:' '}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-right:auto;margin-left: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}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width: 767px){.visible-xs{display:block !important}table.visible-xs{display:table}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width: 767px){.visible-xs-block{display:block !important}}@media (max-width: 767px){.visible-xs-inline{display:inline !important}}@media (max-width: 767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm{display:block !important}table.visible-sm{display:table}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm-block{display:block !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm-inline{display:inline !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md{display:block !important}table.visible-md{display:table}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md-block{display:block !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md-inline{display:inline !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width: 1200px){.visible-lg{display:block !important}table.visible-lg{display:table}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width: 1200px){.visible-lg-block{display:block !important}}@media (min-width: 1200px){.visible-lg-inline{display:inline !important}}@media (min-width: 1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width: 767px){.hidden-xs{display:none !important}}@media (min-width: 768px) and (max-width: 991px){.hidden-sm{display:none !important}}@media (min-width: 992px) and (max-width: 1199px){.hidden-md{display:none !important}}@media (min-width: 1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}[dir='rtl'] .flip.text-left{text-align:right}[dir='rtl'] .flip.text-right{text-align:left}[dir='rtl'] .list-unstyled{padding-right:0;padding-left:initial}[dir='rtl'] .list-inline{padding-right:0;padding-left:initial;margin-right:-5px;margin-left:0}[dir='rtl'] dd{margin-right:0;margin-left:initial}@media (min-width: 768px){[dir='rtl'] .dl-horizontal dt{float:right;clear:right;text-align:left}[dir='rtl'] .dl-horizontal dd{margin-right:180px;margin-left:0}}[dir='rtl'] blockquote{border-right:5px solid #eeeeee;border-left:0}[dir='rtl'] .blockquote-reverse,[dir='rtl'] blockquote.pull-left{padding-left:15px;padding-right:0;border-left:5px solid #eeeeee;border-right:0;text-align:left}[dir='rtl'] .col-xs-1,[dir='rtl'] .col-sm-1,[dir='rtl'] .col-md-1,[dir='rtl'] .col-lg-1,[dir='rtl'] .col-xs-2,[dir='rtl'] .col-sm-2,[dir='rtl'] .col-md-2,[dir='rtl'] .col-lg-2,[dir='rtl'] .col-xs-3,[dir='rtl'] .col-sm-3,[dir='rtl'] .col-md-3,[dir='rtl'] .col-lg-3,[dir='rtl'] .col-xs-4,[dir='rtl'] .col-sm-4,[dir='rtl'] .col-md-4,[dir='rtl'] .col-lg-4,[dir='rtl'] .col-xs-5,[dir='rtl'] .col-sm-5,[dir='rtl'] .col-md-5,[dir='rtl'] .col-lg-5,[dir='rtl'] .col-xs-6,[dir='rtl'] .col-sm-6,[dir='rtl'] .col-md-6,[dir='rtl'] .col-lg-6,[dir='rtl'] .col-xs-7,[dir='rtl'] .col-sm-7,[dir='rtl'] .col-md-7,[dir='rtl'] .col-lg-7,[dir='rtl'] .col-xs-8,[dir='rtl'] .col-sm-8,[dir='rtl'] .col-md-8,[dir='rtl'] .col-lg-8,[dir='rtl'] .col-xs-9,[dir='rtl'] .col-sm-9,[dir='rtl'] .col-md-9,[dir='rtl'] .col-lg-9,[dir='rtl'] .col-xs-10,[dir='rtl'] .col-sm-10,[dir='rtl'] .col-md-10,[dir='rtl'] .col-lg-10,[dir='rtl'] .col-xs-11,[dir='rtl'] .col-sm-11,[dir='rtl'] .col-md-11,[dir='rtl'] .col-lg-11,[dir='rtl'] .col-xs-12,[dir='rtl'] .col-sm-12,[dir='rtl'] .col-md-12,[dir='rtl'] .col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}[dir='rtl'] .col-xs-1,[dir='rtl'] .col-xs-2,[dir='rtl'] .col-xs-3,[dir='rtl'] .col-xs-4,[dir='rtl'] .col-xs-5,[dir='rtl'] .col-xs-6,[dir='rtl'] .col-xs-7,[dir='rtl'] .col-xs-8,[dir='rtl'] .col-xs-9,[dir='rtl'] .col-xs-10,[dir='rtl'] .col-xs-11,[dir='rtl'] .col-xs-12{float:right}[dir='rtl'] .col-xs-12{width:100%}[dir='rtl'] .col-xs-11{width:91.66666667%}[dir='rtl'] .col-xs-10{width:83.33333333%}[dir='rtl'] .col-xs-9{width:75%}[dir='rtl'] .col-xs-8{width:66.66666667%}[dir='rtl'] .col-xs-7{width:58.33333333%}[dir='rtl'] .col-xs-6{width:50%}[dir='rtl'] .col-xs-5{width:41.66666667%}[dir='rtl'] .col-xs-4{width:33.33333333%}[dir='rtl'] .col-xs-3{width:25%}[dir='rtl'] .col-xs-2{width:16.66666667%}[dir='rtl'] .col-xs-1{width:8.33333333%}[dir='rtl'] .col-xs-pull-12{left:100%;right:auto}[dir='rtl'] .col-xs-pull-11{left:91.66666667%;right:auto}[dir='rtl'] .col-xs-pull-10{left:83.33333333%;right:auto}[dir='rtl'] .col-xs-pull-9{left:75%;right:auto}[dir='rtl'] .col-xs-pull-8{left:66.66666667%;right:auto}[dir='rtl'] .col-xs-pull-7{left:58.33333333%;right:auto}[dir='rtl'] .col-xs-pull-6{left:50%;right:auto}[dir='rtl'] .col-xs-pull-5{left:41.66666667%;right:auto}[dir='rtl'] .col-xs-pull-4{left:33.33333333%;right:auto}[dir='rtl'] .col-xs-pull-3{left:25%;right:auto}[dir='rtl'] .col-xs-pull-2{left:16.66666667%;right:auto}[dir='rtl'] .col-xs-pull-1{left:8.33333333%;right:auto}[dir='rtl'] .col-xs-pull-0{left:auto;right:auto}[dir='rtl'] .col-xs-push-12{right:100%;left:0}[dir='rtl'] .col-xs-push-11{right:91.66666667%;left:0}[dir='rtl'] .col-xs-push-10{right:83.33333333%;left:0}[dir='rtl'] .col-xs-push-9{right:75%;left:0}[dir='rtl'] .col-xs-push-8{right:66.66666667%;left:0}[dir='rtl'] .col-xs-push-7{right:58.33333333%;left:0}[dir='rtl'] .col-xs-push-6{right:50%;left:0}[dir='rtl'] .col-xs-push-5{right:41.66666667%;left:0}[dir='rtl'] .col-xs-push-4{right:33.33333333%;left:0}[dir='rtl'] .col-xs-push-3{right:25%;left:0}[dir='rtl'] .col-xs-push-2{right:16.66666667%;left:0}[dir='rtl'] .col-xs-push-1{right:8.33333333%;left:0}[dir='rtl'] .col-xs-push-0{right:auto;left:0}[dir='rtl'] .col-xs-offset-12{margin-right:100%;margin-left:0}[dir='rtl'] .col-xs-offset-11{margin-right:91.66666667%;margin-left:0}[dir='rtl'] .col-xs-offset-10{margin-right:83.33333333%;margin-left:0}[dir='rtl'] .col-xs-offset-9{margin-right:75%;margin-left:0}[dir='rtl'] .col-xs-offset-8{margin-right:66.66666667%;margin-left:0}[dir='rtl'] .col-xs-offset-7{margin-right:58.33333333%;margin-left:0}[dir='rtl'] .col-xs-offset-6{margin-right:50%;margin-left:0}[dir='rtl'] .col-xs-offset-5{margin-right:41.66666667%;margin-left:0}[dir='rtl'] .col-xs-offset-4{margin-right:33.33333333%;margin-left:0}[dir='rtl'] .col-xs-offset-3{margin-right:25%;margin-left:0}[dir='rtl'] .col-xs-offset-2{margin-right:16.66666667%;margin-left:0}[dir='rtl'] .col-xs-offset-1{margin-right:8.33333333%;margin-left:0}[dir='rtl'] .col-xs-offset-0{margin-right:0%;margin-left:0}@media (min-width: 768px){[dir='rtl'] .col-sm-1,[dir='rtl'] .col-sm-2,[dir='rtl'] .col-sm-3,[dir='rtl'] .col-sm-4,[dir='rtl'] .col-sm-5,[dir='rtl'] .col-sm-6,[dir='rtl'] .col-sm-7,[dir='rtl'] .col-sm-8,[dir='rtl'] .col-sm-9,[dir='rtl'] .col-sm-10,[dir='rtl'] .col-sm-11,[dir='rtl'] .col-sm-12{float:right}[dir='rtl'] .col-sm-12{width:100%}[dir='rtl'] .col-sm-11{width:91.66666667%}[dir='rtl'] .col-sm-10{width:83.33333333%}[dir='rtl'] .col-sm-9{width:75%}[dir='rtl'] .col-sm-8{width:66.66666667%}[dir='rtl'] .col-sm-7{width:58.33333333%}[dir='rtl'] .col-sm-6{width:50%}[dir='rtl'] .col-sm-5{width:41.66666667%}[dir='rtl'] .col-sm-4{width:33.33333333%}[dir='rtl'] .col-sm-3{width:25%}[dir='rtl'] .col-sm-2{width:16.66666667%}[dir='rtl'] .col-sm-1{width:8.33333333%}[dir='rtl'] .col-sm-pull-12{left:100%;right:auto}[dir='rtl'] .col-sm-pull-11{left:91.66666667%;right:auto}[dir='rtl'] .col-sm-pull-10{left:83.33333333%;right:auto}[dir='rtl'] .col-sm-pull-9{left:75%;right:auto}[dir='rtl'] .col-sm-pull-8{left:66.66666667%;right:auto}[dir='rtl'] .col-sm-pull-7{left:58.33333333%;right:auto}[dir='rtl'] .col-sm-pull-6{left:50%;right:auto}[dir='rtl'] .col-sm-pull-5{left:41.66666667%;right:auto}[dir='rtl'] .col-sm-pull-4{left:33.33333333%;right:auto}[dir='rtl'] .col-sm-pull-3{left:25%;right:auto}[dir='rtl'] .col-sm-pull-2{left:16.66666667%;right:auto}[dir='rtl'] .col-sm-pull-1{left:8.33333333%;right:auto}[dir='rtl'] .col-sm-pull-0{left:auto;right:auto}[dir='rtl'] .col-sm-push-12{right:100%;left:0}[dir='rtl'] .col-sm-push-11{right:91.66666667%;left:0}[dir='rtl'] .col-sm-push-10{right:83.33333333%;left:0}[dir='rtl'] .col-sm-push-9{right:75%;left:0}[dir='rtl'] .col-sm-push-8{right:66.66666667%;left:0}[dir='rtl'] .col-sm-push-7{right:58.33333333%;left:0}[dir='rtl'] .col-sm-push-6{right:50%;left:0}[dir='rtl'] .col-sm-push-5{right:41.66666667%;left:0}[dir='rtl'] .col-sm-push-4{right:33.33333333%;left:0}[dir='rtl'] .col-sm-push-3{right:25%;left:0}[dir='rtl'] .col-sm-push-2{right:16.66666667%;left:0}[dir='rtl'] .col-sm-push-1{right:8.33333333%;left:0}[dir='rtl'] .col-sm-push-0{right:auto;left:0}[dir='rtl'] .col-sm-offset-12{margin-right:100%;margin-left:0}[dir='rtl'] .col-sm-offset-11{margin-right:91.66666667%;margin-left:0}[dir='rtl'] .col-sm-offset-10{margin-right:83.33333333%;margin-left:0}[dir='rtl'] .col-sm-offset-9{margin-right:75%;margin-left:0}[dir='rtl'] .col-sm-offset-8{margin-right:66.66666667%;margin-left:0}[dir='rtl'] .col-sm-offset-7{margin-right:58.33333333%;margin-left:0}[dir='rtl'] .col-sm-offset-6{margin-right:50%;margin-left:0}[dir='rtl'] .col-sm-offset-5{margin-right:41.66666667%;margin-left:0}[dir='rtl'] .col-sm-offset-4{margin-right:33.33333333%;margin-left:0}[dir='rtl'] .col-sm-offset-3{margin-right:25%;margin-left:0}[dir='rtl'] .col-sm-offset-2{margin-right:16.66666667%;margin-left:0}[dir='rtl'] .col-sm-offset-1{margin-right:8.33333333%;margin-left:0}[dir='rtl'] .col-sm-offset-0{margin-right:0%;margin-left:0}}@media (min-width: 992px){[dir='rtl'] .col-md-1,[dir='rtl'] .col-md-2,[dir='rtl'] .col-md-3,[dir='rtl'] .col-md-4,[dir='rtl'] .col-md-5,[dir='rtl'] .col-md-6,[dir='rtl'] .col-md-7,[dir='rtl'] .col-md-8,[dir='rtl'] .col-md-9,[dir='rtl'] .col-md-10,[dir='rtl'] .col-md-11,[dir='rtl'] .col-md-12{float:right}[dir='rtl'] .col-md-12{width:100%}[dir='rtl'] .col-md-11{width:91.66666667%}[dir='rtl'] .col-md-10{width:83.33333333%}[dir='rtl'] .col-md-9{width:75%}[dir='rtl'] .col-md-8{width:66.66666667%}[dir='rtl'] .col-md-7{width:58.33333333%}[dir='rtl'] .col-md-6{width:50%}[dir='rtl'] .col-md-5{width:41.66666667%}[dir='rtl'] .col-md-4{width:33.33333333%}[dir='rtl'] .col-md-3{width:25%}[dir='rtl'] .col-md-2{width:16.66666667%}[dir='rtl'] .col-md-1{width:8.33333333%}[dir='rtl'] .col-md-pull-12{left:100%;right:auto}[dir='rtl'] .col-md-pull-11{left:91.66666667%;right:auto}[dir='rtl'] .col-md-pull-10{left:83.33333333%;right:auto}[dir='rtl'] .col-md-pull-9{left:75%;right:auto}[dir='rtl'] .col-md-pull-8{left:66.66666667%;right:auto}[dir='rtl'] .col-md-pull-7{left:58.33333333%;right:auto}[dir='rtl'] .col-md-pull-6{left:50%;right:auto}[dir='rtl'] .col-md-pull-5{left:41.66666667%;right:auto}[dir='rtl'] .col-md-pull-4{left:33.33333333%;right:auto}[dir='rtl'] .col-md-pull-3{left:25%;right:auto}[dir='rtl'] .col-md-pull-2{left:16.66666667%;right:auto}[dir='rtl'] .col-md-pull-1{left:8.33333333%;right:auto}[dir='rtl'] .col-md-pull-0{left:auto;right:auto}[dir='rtl'] .col-md-push-12{right:100%;left:0}[dir='rtl'] .col-md-push-11{right:91.66666667%;left:0}[dir='rtl'] .col-md-push-10{right:83.33333333%;left:0}[dir='rtl'] .col-md-push-9{right:75%;left:0}[dir='rtl'] .col-md-push-8{right:66.66666667%;left:0}[dir='rtl'] .col-md-push-7{right:58.33333333%;left:0}[dir='rtl'] .col-md-push-6{right:50%;left:0}[dir='rtl'] .col-md-push-5{right:41.66666667%;left:0}[dir='rtl'] .col-md-push-4{right:33.33333333%;left:0}[dir='rtl'] .col-md-push-3{right:25%;left:0}[dir='rtl'] .col-md-push-2{right:16.66666667%;left:0}[dir='rtl'] .col-md-push-1{right:8.33333333%;left:0}[dir='rtl'] .col-md-push-0{right:auto;left:0}[dir='rtl'] .col-md-offset-12{margin-right:100%;margin-left:0}[dir='rtl'] .col-md-offset-11{margin-right:91.66666667%;margin-left:0}[dir='rtl'] .col-md-offset-10{margin-right:83.33333333%;margin-left:0}[dir='rtl'] .col-md-offset-9{margin-right:75%;margin-left:0}[dir='rtl'] .col-md-offset-8{margin-right:66.66666667%;margin-left:0}[dir='rtl'] .col-md-offset-7{margin-right:58.33333333%;margin-left:0}[dir='rtl'] .col-md-offset-6{margin-right:50%;margin-left:0}[dir='rtl'] .col-md-offset-5{margin-right:41.66666667%;margin-left:0}[dir='rtl'] .col-md-offset-4{margin-right:33.33333333%;margin-left:0}[dir='rtl'] .col-md-offset-3{margin-right:25%;margin-left:0}[dir='rtl'] .col-md-offset-2{margin-right:16.66666667%;margin-left:0}[dir='rtl'] .col-md-offset-1{margin-right:8.33333333%;margin-left:0}[dir='rtl'] .col-md-offset-0{margin-right:0%;margin-left:0}}@media (min-width: 1200px){[dir='rtl'] .col-lg-1,[dir='rtl'] .col-lg-2,[dir='rtl'] .col-lg-3,[dir='rtl'] .col-lg-4,[dir='rtl'] .col-lg-5,[dir='rtl'] .col-lg-6,[dir='rtl'] .col-lg-7,[dir='rtl'] .col-lg-8,[dir='rtl'] .col-lg-9,[dir='rtl'] .col-lg-10,[dir='rtl'] .col-lg-11,[dir='rtl'] .col-lg-12{float:right}[dir='rtl'] .col-lg-12{width:100%}[dir='rtl'] .col-lg-11{width:91.66666667%}[dir='rtl'] .col-lg-10{width:83.33333333%}[dir='rtl'] .col-lg-9{width:75%}[dir='rtl'] .col-lg-8{width:66.66666667%}[dir='rtl'] .col-lg-7{width:58.33333333%}[dir='rtl'] .col-lg-6{width:50%}[dir='rtl'] .col-lg-5{width:41.66666667%}[dir='rtl'] .col-lg-4{width:33.33333333%}[dir='rtl'] .col-lg-3{width:25%}[dir='rtl'] .col-lg-2{width:16.66666667%}[dir='rtl'] .col-lg-1{width:8.33333333%}[dir='rtl'] .col-lg-pull-12{left:100%;right:auto}[dir='rtl'] .col-lg-pull-11{left:91.66666667%;right:auto}[dir='rtl'] .col-lg-pull-10{left:83.33333333%;right:auto}[dir='rtl'] .col-lg-pull-9{left:75%;right:auto}[dir='rtl'] .col-lg-pull-8{left:66.66666667%;right:auto}[dir='rtl'] .col-lg-pull-7{left:58.33333333%;right:auto}[dir='rtl'] .col-lg-pull-6{left:50%;right:auto}[dir='rtl'] .col-lg-pull-5{left:41.66666667%;right:auto}[dir='rtl'] .col-lg-pull-4{left:33.33333333%;right:auto}[dir='rtl'] .col-lg-pull-3{left:25%;right:auto}[dir='rtl'] .col-lg-pull-2{left:16.66666667%;right:auto}[dir='rtl'] .col-lg-pull-1{left:8.33333333%;right:auto}[dir='rtl'] .col-lg-pull-0{left:auto;right:auto}[dir='rtl'] .col-lg-push-12{right:100%;left:0}[dir='rtl'] .col-lg-push-11{right:91.66666667%;left:0}[dir='rtl'] .col-lg-push-10{right:83.33333333%;left:0}[dir='rtl'] .col-lg-push-9{right:75%;left:0}[dir='rtl'] .col-lg-push-8{right:66.66666667%;left:0}[dir='rtl'] .col-lg-push-7{right:58.33333333%;left:0}[dir='rtl'] .col-lg-push-6{right:50%;left:0}[dir='rtl'] .col-lg-push-5{right:41.66666667%;left:0}[dir='rtl'] .col-lg-push-4{right:33.33333333%;left:0}[dir='rtl'] .col-lg-push-3{right:25%;left:0}[dir='rtl'] .col-lg-push-2{right:16.66666667%;left:0}[dir='rtl'] .col-lg-push-1{right:8.33333333%;left:0}[dir='rtl'] .col-lg-push-0{right:auto;left:0}[dir='rtl'] .col-lg-offset-12{margin-right:100%;margin-left:0}[dir='rtl'] .col-lg-offset-11{margin-right:91.66666667%;margin-left:0}[dir='rtl'] .col-lg-offset-10{margin-right:83.33333333%;margin-left:0}[dir='rtl'] .col-lg-offset-9{margin-right:75%;margin-left:0}[dir='rtl'] .col-lg-offset-8{margin-right:66.66666667%;margin-left:0}[dir='rtl'] .col-lg-offset-7{margin-right:58.33333333%;margin-left:0}[dir='rtl'] .col-lg-offset-6{margin-right:50%;margin-left:0}[dir='rtl'] .col-lg-offset-5{margin-right:41.66666667%;margin-left:0}[dir='rtl'] .col-lg-offset-4{margin-right:33.33333333%;margin-left:0}[dir='rtl'] .col-lg-offset-3{margin-right:25%;margin-left:0}[dir='rtl'] .col-lg-offset-2{margin-right:16.66666667%;margin-left:0}[dir='rtl'] .col-lg-offset-1{margin-right:8.33333333%;margin-left:0}[dir='rtl'] .col-lg-offset-0{margin-right:0%;margin-left:0}}[dir='rtl'] caption{text-align:right}[dir='rtl'] th:not(.mx-left-aligned){text-align:right}@media screen and (max-width: 767px){[dir='rtl'] .table-responsive>.table-bordered{border:0}[dir='rtl'] .table-responsive>.table-bordered>thead>tr>th:first-child,[dir='rtl'] .table-responsive>.table-bordered>tbody>tr>th:first-child,[dir='rtl'] .table-responsive>.table-bordered>tfoot>tr>th:first-child,[dir='rtl'] .table-responsive>.table-bordered>thead>tr>td:first-child,[dir='rtl'] .table-responsive>.table-bordered>tbody>tr>td:first-child,[dir='rtl'] .table-responsive>.table-bordered>tfoot>tr>td:first-child{border-right:0;border-left:initial}[dir='rtl'] .table-responsive>.table-bordered>thead>tr>th:last-child,[dir='rtl'] .table-responsive>.table-bordered>tbody>tr>th:last-child,[dir='rtl'] .table-responsive>.table-bordered>tfoot>tr>th:last-child,[dir='rtl'] .table-responsive>.table-bordered>thead>tr>td:last-child,[dir='rtl'] .table-responsive>.table-bordered>tbody>tr>td:last-child,[dir='rtl'] .table-responsive>.table-bordered>tfoot>tr>td:last-child{border-left:0;border-right:initial}}[dir='rtl'] .radio label,[dir='rtl'] .checkbox label{padding-right:20px;padding-left:initial}[dir='rtl'] .radio input[type='radio'],[dir='rtl'] .radio-inline input[type='radio'],[dir='rtl'] .checkbox input[type='checkbox'],[dir='rtl'] .checkbox-inline input[type='checkbox']{margin-right:-20px;margin-left:auto}[dir='rtl'] .radio-inline,[dir='rtl'] .checkbox-inline{padding-right:20px;padding-left:0}[dir='rtl'] .radio-inline+.radio-inline,[dir='rtl'] .checkbox-inline+.checkbox-inline{margin-right:10px;margin-left:0}[dir='rtl'] .has-feedback .form-control{padding-left:42.5px;padding-right:12px}[dir='rtl'] .form-control-feedback{left:0;right:auto}@media (min-width: 768px){[dir='rtl'] .form-inline label{padding-right:0;padding-left:initial}[dir='rtl'] .form-inline .radio input[type='radio'],[dir='rtl'] .form-inline .checkbox input[type='checkbox']{margin-right:0;margin-left:auto}}@media (min-width: 768px){[dir='rtl'] .form-horizontal .control-label{text-align:left}}[dir='rtl'] .form-horizontal .has-feedback .form-control-feedback{left:15px;right:auto}[dir='rtl'] .caret{margin-right:2px;margin-left:0}[dir='rtl'] .dropdown-menu{right:0;left:auto;float:left;text-align:right}[dir='rtl'] .dropdown-menu.pull-right{left:0;right:auto;float:right}[dir='rtl'] .dropdown-menu-right{left:auto;right:0}[dir='rtl'] .dropdown-menu-left{left:0;right:auto}@media (min-width: 768px){[dir='rtl'] .navbar-right .dropdown-menu{left:auto;right:0}[dir='rtl'] .navbar-right .dropdown-menu-left{left:0;right:auto}}[dir='rtl'] .btn-group>.btn,[dir='rtl'] .btn-group-vertical>.btn{float:right}[dir='rtl'] .btn-group .btn+.btn,[dir='rtl'] .btn-group .btn+.btn-group,[dir='rtl'] .btn-group .btn-group+.btn,[dir='rtl'] .btn-group .btn-group+.btn-group{margin-right:-1px;margin-left:0px}[dir='rtl'] .btn-toolbar{margin-right:-5px;margin-left:0px}[dir='rtl'] .btn-toolbar .btn-group,[dir='rtl'] .btn-toolbar .input-group{float:right}[dir='rtl'] .btn-toolbar>.btn,[dir='rtl'] .btn-toolbar>.btn-group,[dir='rtl'] .btn-toolbar>.input-group{margin-right:5px;margin-left:0px}[dir='rtl'] .btn-group>.btn:first-child{margin-right:0}[dir='rtl'] .btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:0;border-top-left-radius:0}[dir='rtl'] .btn-group>.btn:last-child:not(:first-child),[dir='rtl'] .btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:4px;border-bottom-left-radius:4px;border-bottom-right-radius:0;border-top-right-radius:0}[dir='rtl'] .btn-group>.btn-group{float:right}[dir='rtl'] .btn-group.btn-group-justified>.btn,[dir='rtl'] .btn-group.btn-group-justified>.btn-group{float:none}[dir='rtl'] .btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}[dir='rtl'] .btn-group>.btn-group:first-child>.btn:last-child,[dir='rtl'] .btn-group>.btn-group:first-child>.dropdown-toggle{border-top-right-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:0;border-top-left-radius:0}[dir='rtl'] .btn-group>.btn-group:last-child>.btn:first-child{border-top-left-radius:4px;border-bottom-left-radius:4px;border-bottom-right-radius:0;border-top-right-radius:0}[dir='rtl'] .btn .caret{margin-right:0}[dir='rtl'] .btn-group-vertical>.btn+.btn,[dir='rtl'] .btn-group-vertical>.btn+.btn-group,[dir='rtl'] .btn-group-vertical>.btn-group+.btn,[dir='rtl'] .btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-right:0}[dir='rtl'] .input-group .form-control{float:right}[dir='rtl'] .input-group .form-control:first-child,[dir='rtl'] .input-group-addon:first-child,[dir='rtl'] .input-group-btn:first-child>.btn,[dir='rtl'] .input-group-btn:first-child>.btn-group>.btn,[dir='rtl'] .input-group-btn:first-child>.dropdown-toggle,[dir='rtl'] .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),[dir='rtl'] .input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:4px;border-top-right-radius:4px;border-bottom-left-radius:0;border-top-left-radius:0}[dir='rtl'] .input-group-addon:first-child{border-left:0px;border-right:1px solid}[dir='rtl'] .input-group .form-control:last-child,[dir='rtl'] .input-group-addon:last-child,[dir='rtl'] .input-group-btn:last-child>.btn,[dir='rtl'] .input-group-btn:last-child>.btn-group>.btn,[dir='rtl'] .input-group-btn:last-child>.dropdown-toggle,[dir='rtl'] .input-group-btn:first-child>.btn:not(:first-child),[dir='rtl'] .input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-top-right-radius:0}[dir='rtl'] .input-group-addon:last-child{border-left-width:1px;border-left-style:solid;border-right:0px}[dir='rtl'] .input-group-btn>.btn+.btn{margin-right:-1px;margin-left:auto}[dir='rtl'] .input-group-btn:first-child>.btn,[dir='rtl'] .input-group-btn:first-child>.btn-group{margin-left:-1px;margin-right:auto}[dir='rtl'] .input-group-btn:last-child>.btn,[dir='rtl'] .input-group-btn:last-child>.btn-group{margin-right:-1px;margin-left:auto}[dir='rtl'] .nav{padding-right:0;padding-left:initial}[dir='rtl'] .nav-tabs>li{float:right}[dir='rtl'] .nav-tabs>li>a{margin-left:auto;margin-right:-2px;border-radius:4px 4px 0 0}[dir='rtl'] .nav-pills>li{float:right}[dir='rtl'] .nav-pills>li>a{border-radius:4px}[dir='rtl'] .nav-pills>li+li{margin-right:2px;margin-left:auto}[dir='rtl'] .nav-stacked>li{float:none}[dir='rtl'] .nav-stacked>li+li{margin-right:0;margin-left:auto}[dir='rtl'] .nav-justified>.dropdown .dropdown-menu{right:auto}[dir='rtl'] .nav-tabs-justified>li>a{margin-left:0;margin-right:auto}@media (min-width: 768px){[dir='rtl'] .nav-tabs-justified>li>a{border-radius:4px 4px 0 0}}@media (min-width: 768px){[dir='rtl'] .navbar-header{float:right}}[dir='rtl'] .navbar-collapse{padding-right:15px;padding-left:15px}[dir='rtl'] .navbar-brand{float:right}@media (min-width: 768px){[dir='rtl'] .navbar>.container .navbar-brand,[dir='rtl'] .navbar>.container-fluid .navbar-brand{margin-right:-15px;margin-left:auto}}[dir='rtl'] .navbar-toggle{float:left;margin-left:15px;margin-right:auto}@media (max-width: 767px){[dir='rtl'] .navbar-nav .open .dropdown-menu>li>a,[dir='rtl'] .navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 25px 5px 15px}}@media (min-width: 768px){[dir='rtl'] .navbar-nav{float:right}[dir='rtl'] .navbar-nav>li{float:right}}@media (min-width: 768px){[dir='rtl'] .navbar-left.flip{float:right !important}[dir='rtl'] .navbar-right:last-child{margin-left:-15px;margin-right:auto}[dir='rtl'] .navbar-right.flip{float:left !important;margin-left:-15px;margin-right:auto}[dir='rtl'] .navbar-right .dropdown-menu{left:0;right:auto}}@media (min-width: 768px){[dir='rtl'] .navbar-text{float:right}[dir='rtl'] .navbar-text.navbar-right:last-child{margin-left:0;margin-right:auto}}[dir='rtl'] .pagination{padding-right:0}[dir='rtl'] .pagination>li>a,[dir='rtl'] .pagination>li>span{float:right;margin-right:-1px;margin-left:0px}[dir='rtl'] .pagination>li:first-child>a,[dir='rtl'] .pagination>li:first-child>span{margin-left:0;border-bottom-right-radius:4px;border-top-right-radius:4px;border-bottom-left-radius:0;border-top-left-radius:0}[dir='rtl'] .pagination>li:last-child>a,[dir='rtl'] .pagination>li:last-child>span{margin-right:-1px;border-bottom-left-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-top-right-radius:0}[dir='rtl'] .pager{padding-right:0;padding-left:initial}[dir='rtl'] .pager .next>a,[dir='rtl'] .pager .next>span{float:left}[dir='rtl'] .pager .previous>a,[dir='rtl'] .pager .previous>span{float:right}[dir='rtl'] .nav-pills>li>a>.badge{margin-left:0px;margin-right:3px}[dir='rtl'] .list-group-item>.badge{float:left}[dir='rtl'] .list-group-item>.badge+.badge{margin-left:5px;margin-right:auto}[dir='rtl'] .alert-dismissable,[dir='rtl'] .alert-dismissible{padding-left:35px;padding-right:15px}[dir='rtl'] .alert-dismissable .close,[dir='rtl'] .alert-dismissible .close{right:auto;left:-21px}[dir='rtl'] .progress-bar{float:right}[dir='rtl'] .media>.pull-left{margin-right:10px}[dir='rtl'] .media>.pull-left.flip{margin-right:0;margin-left:10px}[dir='rtl'] .media>.pull-right{margin-left:10px}[dir='rtl'] .media>.pull-right.flip{margin-left:0;margin-right:10px}[dir='rtl'] .media-right,[dir='rtl'] .media>.pull-right{padding-right:10px;padding-left:initial}[dir='rtl'] .media-left,[dir='rtl'] .media>.pull-left{padding-left:10px;padding-right:initial}[dir='rtl'] .media-list{padding-right:0;padding-left:initial;list-style:none}[dir='rtl'] .list-group{padding-right:0;padding-left:initial}[dir='rtl'] .panel>.table:first-child>thead:first-child>tr:first-child td:first-child,[dir='rtl'] .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,[dir='rtl'] .panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,[dir='rtl'] .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,[dir='rtl'] .panel>.table:first-child>thead:first-child>tr:first-child th:first-child,[dir='rtl'] .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,[dir='rtl'] .panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,[dir='rtl'] .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-right-radius:3px;border-top-left-radius:0}[dir='rtl'] .panel>.table:first-child>thead:first-child>tr:first-child td:last-child,[dir='rtl'] .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,[dir='rtl'] .panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,[dir='rtl'] .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,[dir='rtl'] .panel>.table:first-child>thead:first-child>tr:first-child th:last-child,[dir='rtl'] .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,[dir='rtl'] .panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,[dir='rtl'] .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-left-radius:3px;border-top-right-radius:0}[dir='rtl'] .panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,[dir='rtl'] .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,[dir='rtl'] .panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,[dir='rtl'] .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,[dir='rtl'] .panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,[dir='rtl'] .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,[dir='rtl'] .panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,[dir='rtl'] .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px;border-top-right-radius:0}[dir='rtl'] .panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,[dir='rtl'] .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,[dir='rtl'] .panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,[dir='rtl'] .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,[dir='rtl'] .panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,[dir='rtl'] .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,[dir='rtl'] .panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,[dir='rtl'] .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px;border-top-left-radius:0}[dir='rtl'] .panel>.table-bordered>thead>tr>th:first-child,[dir='rtl'] .panel>.table-responsive>.table-bordered>thead>tr>th:first-child,[dir='rtl'] .panel>.table-bordered>tbody>tr>th:first-child,[dir='rtl'] .panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,[dir='rtl'] .panel>.table-bordered>tfoot>tr>th:first-child,[dir='rtl'] .panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,[dir='rtl'] .panel>.table-bordered>thead>tr>td:first-child,[dir='rtl'] .panel>.table-responsive>.table-bordered>thead>tr>td:first-child,[dir='rtl'] .panel>.table-bordered>tbody>tr>td:first-child,[dir='rtl'] .panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,[dir='rtl'] .panel>.table-bordered>tfoot>tr>td:first-child,[dir='rtl'] .panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-right:0;border-left:none}[dir='rtl'] .panel>.table-bordered>thead>tr>th:last-child,[dir='rtl'] .panel>.table-responsive>.table-bordered>thead>tr>th:last-child,[dir='rtl'] .panel>.table-bordered>tbody>tr>th:last-child,[dir='rtl'] .panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,[dir='rtl'] .panel>.table-bordered>tfoot>tr>th:last-child,[dir='rtl'] .panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,[dir='rtl'] .panel>.table-bordered>thead>tr>td:last-child,[dir='rtl'] .panel>.table-responsive>.table-bordered>thead>tr>td:last-child,[dir='rtl'] .panel>.table-bordered>tbody>tr>td:last-child,[dir='rtl'] .panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,[dir='rtl'] .panel>.table-bordered>tfoot>tr>td:last-child,[dir='rtl'] .panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:none;border-left:0}[dir='rtl'] .embed-responsive .embed-responsive-item,[dir='rtl'] .embed-responsive iframe,[dir='rtl'] .embed-responsive embed,[dir='rtl'] .embed-responsive object{right:0;left:auto}[dir='rtl'] .close{float:left}[dir='rtl'] .modal-footer{text-align:left}[dir='rtl'] .modal-footer.flip{text-align:right}[dir='rtl'] .modal-footer .btn+.btn{margin-left:auto;margin-right:5px}[dir='rtl'] .modal-footer .btn-group .btn+.btn{margin-right:-1px;margin-left:auto}[dir='rtl'] .modal-footer .btn-block+.btn-block{margin-right:0;margin-left:auto}[dir='rtl'] .popover{left:auto;text-align:right}[dir='rtl'] .popover.top>.arrow{right:50%;left:auto;margin-right:-11px;margin-left:auto}[dir='rtl'] .popover.top>.arrow:after{margin-right:-10px;margin-left:auto}[dir='rtl'] .popover.bottom>.arrow{right:50%;left:auto;margin-right:-11px;margin-left:auto}[dir='rtl'] .popover.bottom>.arrow:after{margin-right:-10px;margin-left:auto}[dir='rtl'] .carousel-control{right:0;bottom:0}[dir='rtl'] .carousel-control.left{right:auto;left:0;background-image:-webkit-linear-gradient(left, color-stop(rgba(0,0,0,0.5) 0%), color-stop(rgba(0,0,0,0.0001) 100%));background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.0001) 100%);background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}[dir='rtl'] .carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, color-stop(rgba(0,0,0,0.0001) 0%), color-stop(rgba(0,0,0,0.5) 100%));background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0%, rgba(0,0,0,0.5) 100%);background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0%, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}[dir='rtl'] .carousel-control .icon-prev,[dir='rtl'] .carousel-control .glyphicon-chevron-left{left:50%;right:auto;margin-right:-10px}[dir='rtl'] .carousel-control .icon-next,[dir='rtl'] .carousel-control .glyphicon-chevron-right{right:50%;left:auto;margin-left:-10px}[dir='rtl'] .carousel-indicators{right:50%;left:0;margin-right:-30%;margin-left:0;padding-left:0}@media screen and (min-width: 768px){[dir='rtl'] .carousel-control .glyphicon-chevron-left,[dir='rtl'] .carousel-control .icon-prev{margin-left:0;margin-right:-15px}[dir='rtl'] .carousel-control .glyphicon-chevron-right,[dir='rtl'] .carousel-control .icon-next{margin-left:0;margin-right:-15px}[dir='rtl'] .carousel-caption{left:20%;right:20%;padding-bottom:30px}}[dir='rtl'] .pull-right.flip{float:left !important}[dir='rtl'] .pull-left.flip{float:right !important}.dijitReset{margin:0;border:0;padding:0;font:inherit;line-height:normal;color:inherit}.dj_a11y .dijitReset{-moz-appearance:none}.dijitInline{display:inline-block;border:0;padding:0;vertical-align:middle}table.dijitInline{display:inline-table;box-sizing:content-box;-moz-box-sizing:content-box}.dijitHidden{position:absolute;visibility:hidden}.dijitHidden *{visibility:hidden !important}.dijitVisible{display:block !important;position:relative;visibility:visible}.dj_ie6 .dijitComboBox .dijitInputContainer,.dijitInputContainer{overflow:hidden;float:none !important;position:relative}.dj_ie7 .dijitInputContainer{float:left !important;clear:left;display:inline-block !important}.dj_ie .dijitSelect input,.dj_ie input.dijitTextBox,.dj_ie .dijitTextBox input{font-size:100%}.dijitSelect .dijitButtonText{float:left;vertical-align:top}TABLE.dijitSelect{padding:0 !important;border-collapse:separate}.dijitTextBox .dijitSpinnerButtonContainer,.dijitTextBox .dijitArrowButtonContainer,.dijitValidationTextBox .dijitValidationContainer{float:right;text-align:center}.dijitSelect input.dijitInputField,.dijitTextBox input.dijitInputField{padding-left:0 !important;padding-right:0 !important}.dijitValidationTextBox .dijitValidationContainer{display:none}.dijitTeeny{font-size:1px;line-height:1px}.dijitOffScreen{position:absolute !important;left:-10000px !important;top:-10000px !important}.dijitPopup{position:absolute;background-color:transparent;margin:0;border:0;padding:0;-webkit-overflow-scrolling:touch}.dijitPositionOnly{padding:0 !important;border:0 !important;background-color:transparent !important;background-image:none !important;height:auto !important;width:auto !important}.dijitNonPositionOnly{float:none !important;position:static !important;margin:0 0 0 0 !important;vertical-align:middle !important}.dijitBackgroundIframe{position:absolute;left:0;top:0;width:100%;height:100%;z-index:-1;border:0;padding:0;margin:0}.dijitDisplayNone{display:none !important}.dijitContainer{overflow:hidden}.dj_a11y .dijitIcon,.dj_a11y div.dijitArrowButtonInner,.dj_a11y span.dijitArrowButtonInner,.dj_a11y img.dijitArrowButtonInner,.dj_a11y .dijitCalendarIncrementControl,.dj_a11y .dijitTreeExpando{display:none}.dijitSpinner div.dijitArrowButtonInner{display:block}.dj_a11y .dijitA11ySideArrow{display:inline !important;cursor:pointer}.dj_a11y .dijitCalendarDateLabel{padding:1px;border:0px !important}.dj_a11y .dijitCalendarSelectedDate .dijitCalendarDateLabel{border-style:solid !important;border-width:1px !important;padding:0}.dj_a11y .dijitCalendarDateTemplate{padding-bottom:0.1em !important;border:0px !important}.dj_a11y .dijitButtonNode{border:black outset medium !important;padding:0 !important}.dj_a11y .dijitArrowButton{padding:0 !important}.dj_a11y .dijitButtonContents{margin:0.15em}.dj_a11y .dijitTextBoxReadOnly .dijitInputField,.dj_a11y .dijitTextBoxReadOnly .dijitButtonNode{border-style:outset !important;border-width:medium !important;border-color:#999 !important;color:#999 !important}.dijitButtonNode *{vertical-align:middle}.dijitSelect .dijitArrowButtonInner,.dijitButtonNode .dijitArrowButtonInner{background:no-repeat center;width:12px;height:12px;direction:ltr}.dijitLeft{background-position:left top;background-repeat:no-repeat}.dijitStretch{white-space:nowrap;background-repeat:repeat-x}.dijitRight{background-position:right top;background-repeat:no-repeat}.dj_gecko .dj_a11y .dijitButtonDisabled .dijitButtonNode{opacity:0.5}.dijitToggleButton,.dijitButton,.dijitDropDownButton,.dijitComboButton{margin:0.2em;vertical-align:middle}.dijitButtonContents{display:block}td.dijitButtonContents{display:table-cell}.dijitButtonNode img{vertical-align:middle}.dijitToolbar .dijitComboButton{border-collapse:separate}.dijitToolbar .dijitToggleButton,.dijitToolbar .dijitButton,.dijitToolbar .dijitDropDownButton,.dijitToolbar .dijitComboButton{margin:0}.dijitToolbar .dijitButtonContents{padding:1px 2px}.dj_webkit .dijitToolbar .dijitDropDownButton{padding-left:0.3em}.dj_gecko .dijitToolbar .dijitButtonNode::-moz-focus-inner{padding:0}.dijitSelect{border:1px solid gray}.dijitButtonNode{border:1px solid gray;margin:0;line-height:normal;vertical-align:middle;text-align:center;white-space:nowrap}.dj_webkit .dijitSpinner .dijitSpinnerButtonContainer{line-height:inherit}.dijitTextBox .dijitButtonNode{border-width:0}.dijitSelect,.dijitSelect *,.dijitButtonNode,.dijitButtonNode *{cursor:pointer;-webkit-tap-highlight-color:transparent}.dj_ie .dijitButtonNode{zoom:1}.dj_ie .dijitButtonNode button{overflow:visible}div.dijitArrowButton{float:right}.dijitTextBox{border:solid black 1px;width:15em;vertical-align:middle}.dijitTextBoxReadOnly,.dijitTextBoxDisabled{color:gray}.dj_safari .dijitTextBoxDisabled input{color:#B0B0B0}.dj_safari textarea.dijitTextAreaDisabled{color:#333}.dj_gecko .dijitTextBoxReadOnly input.dijitInputField,.dj_gecko .dijitTextBoxDisabled input{-moz-user-input:none}.dijitPlaceHolder{color:#AAAAAA;font-style:italic;position:absolute;top:0;left:0;white-space:nowrap;pointer-events:none}.dijitTimeTextBox{width:8em}.dijitTextBox input:focus{outline:none}.dijitTextBoxFocused{outline:5px -webkit-focus-ring-color}.dijitSelect input,.dijitTextBox input{float:left}.dj_ie6 input.dijitTextBox,.dj_ie6 .dijitTextBox input{float:none}.dijitInputInner{border:0 !important;background-color:transparent !important;width:100% !important;padding-left:0 !important;padding-right:0 !important;margin-left:0 !important;margin-right:0 !important}.dj_a11y .dijitTextBox input{margin:0 !important}.dijitValidationTextBoxError input.dijitValidationInner,.dijitSelect input,.dijitTextBox input.dijitArrowButtonInner{text-indent:-2em !important;direction:ltr !important;text-align:left !important;height:auto !important}.dj_ie .dijitSelect input,.dj_ie .dijitTextBox input,.dj_ie input.dijitTextBox{overflow-y:visible;line-height:normal}.dijitSelect .dijitSelectLabel span{line-height:100%}.dj_ie .dijitSelect .dijitSelectLabel{line-height:normal}.dj_ie6 .dijitSelect .dijitSelectLabel,.dj_ie7 .dijitSelect .dijitSelectLabel,.dj_ie8 .dijitSelect .dijitSelectLabel,.dj_iequirks .dijitSelect .dijitSelectLabel,.dijitSelect td,.dj_ie6 .dijitSelect input,.dj_iequirks .dijitSelect input,.dj_ie6 .dijitSelect .dijitValidationContainer,.dj_ie6 .dijitTextBox input,.dj_ie6 input.dijitTextBox,.dj_iequirks .dijitTextBox input.dijitValidationInner,.dj_iequirks .dijitTextBox input.dijitArrowButtonInner,.dj_iequirks .dijitTextBox input.dijitSpinnerButtonInner,.dj_iequirks .dijitTextBox input.dijitInputInner,.dj_iequirks input.dijitTextBox{line-height:100%}.dj_a11y input.dijitValidationInner,.dj_a11y input.dijitArrowButtonInner{text-indent:0 !important;width:1em !important;color:black !important}.dijitValidationTextBoxError .dijitValidationContainer{display:inline;cursor:default}.dijitSpinner .dijitSpinnerButtonContainer,.dijitComboBox .dijitArrowButtonContainer{border-width:0 0 0 1px !important}.dj_a11y .dijitSelect .dijitArrowButtonContainer,.dijitToolbar .dijitComboBox .dijitArrowButtonContainer{border-width:0 !important}.dijitComboBoxMenu{list-style-type:none}.dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode{border-width:0}.dj_ie .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode{clear:both}.dj_ie .dijitToolbar .dijitComboBox{vertical-align:middle}.dijitTextBox .dijitSpinnerButtonContainer{width:1em;position:relative !important;overflow:hidden}.dijitSpinner .dijitSpinnerButtonInner{width:1em;visibility:hidden !important;overflow-x:hidden}.dijitComboBox .dijitButtonNode,.dijitSpinnerButtonContainer .dijitButtonNode{border-width:0}.dj_a11y .dijitSpinnerButtonContainer .dijitButtonNode{border-width:0px !important;border-style:solid !important}.dj_a11y .dijitTextBox .dijitSpinnerButtonContainer,.dj_a11y .dijitSpinner .dijitArrowButtonInner,.dj_a11y .dijitSpinnerButtonContainer input{width:1em !important}.dj_a11y .dijitSpinner .dijitArrowButtonInner{margin:0 auto !important}.dj_ie .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField{padding-left:0.3em !important;padding-right:0.3em !important;margin-left:0.3em !important;margin-right:0.3em !important;width:1.4em !important}.dj_ie7 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField{padding-left:0 !important;padding-right:0 !important;width:1em !important}.dj_ie6 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField{margin-left:0.1em !important;margin-right:0.1em !important;width:1em !important}.dj_iequirks .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField{margin-left:0 !important;margin-right:0 !important;width:2em !important}.dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton{padding:0;position:absolute !important;right:0;float:none;height:50%;width:100%;bottom:auto;left:0;right:auto}.dj_iequirks .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton{width:auto}.dj_a11y .dijitSpinnerButtonContainer .dijitArrowButton{overflow:visible !important}.dijitSpinner .dijitSpinnerButtonContainer .dijitDownArrowButton{top:50%;border-top-width:1px !important}.dijitSpinner .dijitSpinnerButtonContainer .dijitUpArrowButton{top:0}.dijitSpinner .dijitArrowButtonInner{margin:auto;overflow-x:hidden;height:100% !important}.dj_iequirks .dijitSpinner .dijitArrowButtonInner{height:auto !important}.dijitSpinner .dijitArrowButtonInner .dijitInputField{-moz-transform:scale(0.5);-moz-transform-origin:center top;-webkit-transform:scale(0.5);-webkit-transform-origin:center top;-o-transform:scale(0.5);-o-transform-origin:center top;transform:scale(0.5);transform-origin:left top;padding-top:0;padding-bottom:0;padding-left:0 !important;padding-right:0 !important;width:100%;visibility:hidden}.dj_ie .dijitSpinner .dijitArrowButtonInner .dijitInputField{zoom:50%}.dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButtonInner{overflow:hidden}.dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton{width:100%}.dj_iequirks .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton{width:1em}.dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField{vertical-align:top;visibility:visible}.dj_a11y .dijitSpinnerButtonContainer{width:1em}.dijitCheckBox,.dijitRadio,.dijitCheckBoxInput{padding:0;border:0;width:16px;height:16px;background-position:center center;background-repeat:no-repeat;overflow:hidden}.dijitCheckBox input,.dijitRadio input{margin:0;padding:0;display:block}.dijitCheckBoxInput{opacity:0}.dj_ie .dijitCheckBoxInput{filter:alpha(opacity=0)}.dj_a11y .dijitCheckBox,.dj_a11y .dijitRadio{width:auto !important;height:auto !important}.dj_a11y .dijitCheckBoxInput{opacity:1;filter:none;width:auto;height:auto}.dj_a11y .dijitFocusedLabel{border:1px dotted;outline:0px !important}.dijitProgressBar{z-index:0}.dijitProgressBarEmpty{position:relative;overflow:hidden;border:1px solid black;z-index:0}.dijitProgressBarFull{position:absolute;overflow:hidden;z-index:-1;top:0;width:100%}.dj_ie6 .dijitProgressBarFull{height:1.6em}.dijitProgressBarTile{position:absolute;overflow:hidden;top:0;left:0;bottom:0;right:0;margin:0;padding:0;width:100%;height:auto;background-color:#aaa;background-attachment:fixed}.dj_a11y .dijitProgressBarTile{border-width:2px;border-style:solid;background-color:transparent !important}.dj_ie6 .dijitProgressBarTile{position:static;height:1.6em}.dijitProgressBarIndeterminateHighContrastImage{display:none}.dj_a11y .dijitProgressBarIndeterminate .dijitProgressBarIndeterminateHighContrastImage{display:block;position:absolute;top:0;bottom:0;margin:0;padding:0;width:100%;height:auto}.dijitProgressBarLabel{display:block;position:static;width:100%;text-align:center;background-color:transparent !important}.dijitTooltip{position:absolute;z-index:2000;display:block;left:0;top:-10000px;overflow:visible}.dijitTooltipContainer{border:solid black 2px;background:#b8b5b5;color:black;font-size:small}.dijitTooltipFocusNode{padding:2px 2px 2px 2px}.dijitTooltipConnector{position:absolute}.dj_a11y .dijitTooltipConnector{display:none}.dijitTooltipData{display:none}.dijitLayoutContainer{position:relative;display:block;overflow:hidden}.dijitAlignTop,.dijitAlignBottom,.dijitAlignLeft,.dijitAlignRight{position:absolute;overflow:hidden}body .dijitAlignClient{position:absolute}.dijitBorderContainer,.dijitBorderContainerNoGutter{position:relative;overflow:hidden;z-index:0}.dijitBorderContainerPane,.dijitBorderContainerNoGutterPane{position:absolute !important;z-index:2}.dijitBorderContainer>.dijitTextArea{resize:none}.dijitGutter{position:absolute;font-size:1px}.dijitSplitter{position:absolute;overflow:hidden;z-index:10;background-color:#fff;border-color:gray;border-style:solid;border-width:0}.dj_ie .dijitSplitter{z-index:1}.dijitSplitterActive{z-index:11 !important}.dijitSplitterCover{position:absolute;z-index:-1;top:0;left:0;width:100%;height:100%}.dijitSplitterCoverActive{z-index:3 !important}.dj_ie .dijitSplitterCover{background:white;opacity:0}.dj_ie6 .dijitSplitterCover,.dj_ie7 .dijitSplitterCover,.dj_ie8 .dijitSplitterCover{filter:alpha(opacity=0)}.dijitSplitterH{height:7px;border-top:1px;border-bottom:1px;cursor:row-resize;-webkit-tap-highlight-color:transparent}.dijitSplitterV{width:7px;border-left:1px;border-right:1px;cursor:col-resize;-webkit-tap-highlight-color:transparent}.dijitSplitContainer{position:relative;overflow:hidden;display:block}.dijitSplitPane{position:absolute}.dijitSplitContainerSizerH,.dijitSplitContainerSizerV{position:absolute;font-size:1px;background-color:ThreeDFace;border:1px solid;border-color:ThreeDHighlight ThreeDShadow ThreeDShadow ThreeDHighlight;margin:0}.dijitSplitContainerSizerH .thumb,.dijitSplitterV .dijitSplitterThumb{overflow:hidden;position:absolute;top:49%}.dijitSplitContainerSizerV .thumb,.dijitSplitterH .dijitSplitterThumb{position:absolute;left:49%}.dijitSplitterShadow,.dijitSplitContainerVirtualSizerH,.dijitSplitContainerVirtualSizerV{font-size:1px;background-color:ThreeDShadow;-moz-opacity:0.5;opacity:0.5;filter:Alpha(Opacity=50);margin:0}.dijitSplitContainerSizerH,.dijitSplitContainerVirtualSizerH{cursor:col-resize}.dijitSplitContainerSizerV,.dijitSplitContainerVirtualSizerV{cursor:row-resize}.dj_a11y .dijitSplitterH{border-top:1px solid #d3d3d3 !important;border-bottom:1px solid #d3d3d3 !important}.dj_a11y .dijitSplitterV{border-left:1px solid #d3d3d3 !important;border-right:1px solid #d3d3d3 !important}.dijitContentPane{display:block;overflow:auto;-webkit-overflow-scrolling:touch}.dijitContentPaneSingleChild{overflow:hidden}.dijitContentPaneLoading .dijitIconLoading,.dijitContentPaneError .dijitIconError{margin-right:9px}.dijitTitlePane{display:block;overflow:hidden}.dijitFieldset{border:1px solid gray}.dijitTitlePaneTitle,.dijitFieldsetTitle{cursor:pointer;-webkit-tap-highlight-color:transparent}.dijitTitlePaneTitleFixedOpen,.dijitTitlePaneTitleFixedClosed,.dijitFieldsetTitleFixedOpen,.dijitFieldsetTitleFixedClosed{cursor:default}.dijitTitlePaneTitle *{vertical-align:middle}.dijitTitlePane .dijitArrowNodeInner,.dijitFieldset .dijitArrowNodeInner{display:none}.dj_a11y .dijitTitlePane .dijitArrowNodeInner,.dj_a11y .dijitFieldset .dijitArrowNodeInner{display:inline;font-family:monospace}.dj_a11y .dijitTitlePane .dijitArrowNode,.dj_a11y .dijitFieldset .dijitArrowNode{display:none}.dijitTitlePaneTitleFixedOpen .dijitArrowNode,.dijitTitlePaneTitleFixedOpen .dijitArrowNodeInner,.dijitTitlePaneTitleFixedClosed .dijitArrowNode,.dijitTitlePaneTitleFixedClosed .dijitArrowNodeInner,.dijitFieldsetTitleFixedOpen .dijitArrowNode,.dijitFieldsetTitleFixedOpen .dijitArrowNodeInner,.dijitFieldsetTitleFixedClosed .dijitArrowNode,.dijitFieldsetTitleFixedClosed .dijitArrowNodeInner{display:none !important}.dj_ie6 .dijitTitlePaneContentOuter,.dj_ie6 .dijitTitlePane .dijitTitlePaneTitle{zoom:1}.dijitColorPalette{border:1px solid #999;background:#fff;position:relative}.dijitColorPalette .dijitPaletteTable{padding:2px 3px 3px 3px;position:relative;overflow:hidden;outline:0;border-collapse:separate}.dj_ie6 .dijitColorPalette .dijitPaletteTable,.dj_ie7 .dijitColorPalette .dijitPaletteTable,.dj_iequirks .dijitColorPalette .dijitPaletteTable{padding:0;margin:2px 3px 3px 3px}.dijitColorPalette .dijitPaletteCell{font-size:1px;vertical-align:middle;text-align:center;background:none}.dijitColorPalette .dijitPaletteImg{padding:1px;border:1px solid #999;margin:2px 1px;cursor:default;font-size:1px}.dj_gecko .dijitColorPalette .dijitPaletteImg{padding-bottom:0}.dijitColorPalette .dijitColorPaletteSwatch{width:14px;height:12px}.dijitPaletteTable td{padding:0}.dijitColorPalette .dijitPaletteCell:hover .dijitPaletteImg{border:1px solid #000}.dijitColorPalette .dijitPaletteCell:active .dijitPaletteImg,.dijitColorPalette .dijitPaletteTable .dijitPaletteCellSelected .dijitPaletteImg{border:2px solid #000;margin:1px 0}.dj_a11y .dijitColorPalette .dijitPaletteTable,.dj_a11y .dijitColorPalette .dijitPaletteTable *{background-color:transparent !important}.dijitAccordionContainer{border:1px solid #b7b7b7;border-top:0 !important}.dijitAccordionTitle{cursor:pointer;-webkit-tap-highlight-color:transparent}.dijitAccordionTitleSelected{cursor:default}.dijitAccordionTitle .arrowTextUp,.dijitAccordionTitle .arrowTextDown{display:none;font-size:0.65em;font-weight:normal !important}.dj_a11y .dijitAccordionTitle .arrowTextUp,.dj_a11y .dijitAccordionTitleSelected .arrowTextDown{display:inline}.dj_a11y .dijitAccordionTitleSelected .arrowTextUp{display:none}.dijitAccordionChildWrapper{overflow:hidden}.dijitCalendarContainer table{width:auto;clear:both}.dijitCalendarContainer th,.dijitCalendarContainer td{padding:0;vertical-align:middle}.dijitCalendarMonthContainer{text-align:center}.dijitCalendarDecrementArrow{float:left}.dijitCalendarIncrementArrow{float:right}.dijitCalendarYearLabel{white-space:nowrap}.dijitCalendarNextYear{margin:0 0 0 0.55em}.dijitCalendarPreviousYear{margin:0 0.55em 0 0}.dijitCalendarIncrementControl{vertical-align:middle}.dijitCalendarIncrementControl,.dijitCalendarDateTemplate,.dijitCalendarMonthLabel,.dijitCalendarPreviousYear,.dijitCalendarNextYear{cursor:pointer;-webkit-tap-highlight-color:transparent}.dijitCalendarDisabledDate{color:gray;text-decoration:line-through;cursor:default}.dijitSpacer{position:relative;height:1px;overflow:hidden;visibility:hidden}.dijitCalendarMonthMenu .dijitCalendarMonthLabel{text-align:center}.dijitMenu{border:1px solid black;background-color:white}.dijitMenuTable{border-collapse:collapse;border-width:0;background-color:white}.dj_webkit .dijitMenuTable td[colspan="2"]{border-right:hidden}.dijitMenuItem{text-align:left;white-space:nowrap;padding:.1em .2em;cursor:pointer;-webkit-tap-highlight-color:transparent}.dijitMenuItem:focus{outline:none}.dijitMenuPassive .dijitMenuItemHover,.dijitMenuItemSelected{background-color:black;color:white}.dijitMenuItemIcon,.dijitMenuExpand{background-repeat:no-repeat}.dijitMenuItemDisabled *{opacity:0.5;cursor:default}.dj_ie .dj_a11y .dijitMenuItemDisabled,.dj_ie .dj_a11y .dijitMenuItemDisabled *,.dj_ie .dijitMenuItemDisabled *{color:gray;filter:alpha(opacity=35)}.dijitMenuItemLabel{vertical-align:middle}.dj_a11y .dijitMenuItemSelected{border:1px dotted black !important}.dj_a11y .dijitMenuItemSelected .dijitMenuItemLabel{border-width:1px;border-style:solid}.dj_ie8 .dj_a11y .dijitMenuItemLabel{position:static}.dijitMenuExpandA11y{display:none}.dj_a11y .dijitMenuExpandA11y{display:inline}.dijitMenuSeparator td{border:0;padding:0}.dijitMenuSeparatorTop{height:50%;margin:0;margin-top:3px;font-size:1px}.dijitMenuSeparatorBottom{height:50%;margin:0;margin-bottom:3px;font-size:1px}.dijitMenuItemIconChar{display:none;visibility:hidden}.dj_a11y .dijitMenuItemIconChar{display:inline}.dijitCheckedMenuItemChecked .dijitMenuItemIconChar,.dijitRadioMenuItemChecked .dijitMenuItemIconChar{visibility:visible}.dj_ie .dj_a11y .dijitMenuBar .dijitMenuItem{margin:0}.dijitStackController .dijitToggleButtonChecked *{cursor:default}.dijitTabContainer{z-index:0;overflow:visible}.dj_ie6 .dijitTabContainer{overflow:hidden}.dijitTabContainerNoLayout{width:100%}.dijitTabContainerBottom-tabs,.dijitTabContainerTop-tabs,.dijitTabContainerLeft-tabs,.dijitTabContainerRight-tabs{z-index:1;overflow:visible !important}.dijitTabController{z-index:1}.dijitTabContainerBottom-container,.dijitTabContainerTop-container,.dijitTabContainerLeft-container,.dijitTabContainerRight-container{z-index:0;overflow:hidden;border:1px solid black}.nowrapTabStrip{width:50000px;display:block;position:relative;text-align:left;z-index:1}.dijitTabListWrapper{overflow:hidden;z-index:1}.dj_a11y .tabStripButton img{display:none}.dijitTabContainerTop-tabs{border-bottom:1px solid black}.dijitTabContainerTop-container{border-top:0}.dijitTabContainerLeft-tabs{border-right:1px solid black;float:left}.dijitTabContainerLeft-container{border-left:0}.dijitTabContainerBottom-tabs{border-top:1px solid black}.dijitTabContainerBottom-container{border-bottom:0}.dijitTabContainerRight-tabs{border-left:1px solid black;float:left}.dijitTabContainerRight-container{border-right:0}div.dijitTabDisabled,.dj_ie div.dijitTabDisabled{cursor:auto}.dijitTab{position:relative;cursor:pointer;-webkit-tap-highlight-color:transparent;white-space:nowrap;z-index:3}.dijitTab *{vertical-align:middle}.dijitTabChecked{cursor:default}.dijitTabContainerTop-tabs .dijitTab{top:1px}.dijitTabContainerBottom-tabs .dijitTab{top:-1px}.dijitTabContainerLeft-tabs .dijitTab{left:1px}.dijitTabContainerRight-tabs .dijitTab{left:-1px}.dijitTabContainerTop-tabs .dijitTab,.dijitTabContainerBottom-tabs .dijitTab{display:inline-block}.tabStripButton{z-index:12}.dijitTabButtonDisabled .tabStripButton{display:none}.dijitTabCloseButton{margin-left:1em}.dijitTabCloseText{display:none}.dijitTab .tabLabel{min-height:15px;display:inline-block}.dijitNoIcon{display:none}.dj_ie6 .dijitTab .dijitNoIcon{display:inline;height:15px;width:1px}.dj_a11y .dijitTabCloseButton{background-image:none !important;width:auto !important;height:auto !important}.dj_a11y .dijitTabCloseText{display:inline}.dijitTabPane,.dijitStackContainer-child,.dijitAccordionContainer-child{border:none !important}.dijitInlineEditBoxDisplayMode{border:1px solid transparent;cursor:text}.dj_a11y .dijitInlineEditBoxDisplayMode,.dj_ie6 .dijitInlineEditBoxDisplayMode{border:none}.dijitInlineEditBoxDisplayModeHover,.dj_a11y .dijitInlineEditBoxDisplayModeHover,.dj_ie6 .dijitInlineEditBoxDisplayModeHover{background-color:#e2ebf2;border:solid 1px black}.dijitInlineEditBoxDisplayModeDisabled{cursor:default}.dijitTree{overflow:auto;-webkit-tap-highlight-color:transparent}.dijitTreeContainer{float:left}.dijitTreeIndent{width:19px}.dijitTreeRow,.dijitTreeContent{white-space:nowrap}.dj_ie .dijitTreeLabel:focus{outline:1px dotted black}.dijitTreeRow img{vertical-align:middle}.dijitTreeContent{cursor:default}.dijitExpandoText{display:none}.dj_a11y .dijitExpandoText{display:inline;padding-left:10px;padding-right:10px;font-family:monospace;border-style:solid;border-width:thin;cursor:pointer}.dijitTreeLabel{margin:0 4px}.dijitDialog{position:absolute;z-index:999;overflow:hidden}.dijitDialogTitleBar{cursor:move}.dijitDialogFixed .dijitDialogTitleBar{cursor:default}.dijitDialogCloseIcon{cursor:pointer;-webkit-tap-highlight-color:transparent}.dijitDialogPaneContent{-webkit-overflow-scrolling:touch}.dijitDialogUnderlayWrapper{position:absolute;left:0;top:0;z-index:998;display:none;background:transparent !important}.dijitDialogUnderlay{background:#eee;opacity:0.5}.dj_ie .dijitDialogUnderlay{filter:alpha(opacity=50)}.dj_a11y .dijitSpinnerButtonContainer,.dj_a11y .dijitDialog{opacity:1 !important;background-color:white !important}.dijitDialog .closeText{display:none;position:absolute}.dj_a11y .dijitDialog .closeText{display:inline}.dijitSliderMoveable{z-index:99;position:absolute !important;display:block;vertical-align:middle}.dijitSliderMoveableH{right:0}.dijitSliderMoveableV{right:50%}.dj_a11y div.dijitSliderImageHandle,.dijitSliderImageHandle{margin:0;padding:0;position:relative !important;border:8px solid gray;width:0;height:0;cursor:pointer;-webkit-tap-highlight-color:transparent}.dj_iequirks .dj_a11y .dijitSliderImageHandle{font-size:0}.dj_ie7 .dijitSliderImageHandle{overflow:hidden}.dj_ie7 .dj_a11y .dijitSliderImageHandle{overflow:visible}.dj_a11y .dijitSliderFocused .dijitSliderImageHandle{border:4px solid #000;height:8px;width:8px}.dijitSliderImageHandleV{top:-8px;right:-50%}.dijitSliderImageHandleH{left:50%;top:-5px;vertical-align:top}.dijitSliderBar{border-style:solid;border-color:black;cursor:pointer;-webkit-tap-highlight-color:transparent}.dijitSliderBarContainerV{position:relative;height:100%;z-index:1}.dijitSliderBarContainerH{position:relative;z-index:1}.dijitSliderBarH{height:4px;border-width:1px 0}.dijitSliderBarV{width:4px;border-width:0 1px}.dijitSliderProgressBar{background-color:red;z-index:1}.dijitSliderProgressBarV{position:static !important;height:0;vertical-align:top;text-align:left}.dijitSliderProgressBarH{position:absolute !important;width:0;vertical-align:middle;overflow:visible}.dijitSliderRemainingBar{overflow:hidden;background-color:transparent;z-index:1}.dijitSliderRemainingBarV{height:100%;text-align:left}.dijitSliderRemainingBarH{width:100% !important}.dijitSliderBumper{overflow:hidden;z-index:1}.dijitSliderBumperV{width:4px;height:8px;border-width:0 1px}.dijitSliderBumperH{width:8px;height:4px;border-width:1px 0}.dijitSliderBottomBumper,.dijitSliderLeftBumper{background-color:red}.dijitSliderTopBumper,.dijitSliderRightBumper{background-color:transparent}.dijitSliderDecoration{text-align:center}.dijitSliderDecorationC,.dijitSliderDecorationV{position:relative}.dijitSliderDecorationH{width:100%}.dijitSliderDecorationV{height:100%;white-space:nowrap}.dijitSliderButton{font-family:monospace;margin:0;padding:0;display:block}.dj_a11y .dijitSliderButtonInner{visibility:visible !important}.dijitSliderButtonContainer{text-align:center;height:0}.dijitSliderButtonContainer *{cursor:pointer;-webkit-tap-highlight-color:transparent}.dijitSlider .dijitButtonNode{padding:0;display:block}.dijitRuleContainer{position:relative;overflow:visible}.dijitRuleContainerV{height:100%;line-height:0;float:left;text-align:left}.dj_opera .dijitRuleContainerV{line-height:2%}.dj_ie .dijitRuleContainerV{line-height:normal}.dj_gecko .dijitRuleContainerV{margin:0 0 1px 0}.dijitRuleMark{position:absolute;border:1px solid black;line-height:0;height:100%}.dijitRuleMarkH{width:0;border-top-width:0 !important;border-bottom-width:0 !important;border-left-width:0 !important}.dijitRuleLabelContainer{position:absolute}.dijitRuleLabelContainerH{text-align:center;display:inline-block}.dijitRuleLabelH{position:relative;left:-50%}.dijitRuleLabelV{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dijitRuleMarkV{height:0;border-right-width:0 !important;border-bottom-width:0 !important;border-left-width:0 !important;width:100%;left:0}.dj_ie .dijitRuleLabelContainerV{margin-top:-.55em}.dj_a11y .dijitSliderReadOnly,.dj_a11y .dijitSliderDisabled{opacity:0.6}.dj_ie .dj_a11y .dijitSliderReadOnly .dijitSliderBar,.dj_ie .dj_a11y .dijitSliderDisabled .dijitSliderBar{filter:alpha(opacity=40)}.dj_a11y .dijitSlider .dijitSliderButtonContainer div{font-family:monospace;font-size:1em;line-height:1em;height:auto;width:auto;margin:0 4px}.dj_a11y .dijitButtonContents .dijitButtonText,.dj_a11y .dijitTab .tabLabel{display:inline !important}.dj_a11y .dijitSelect .dijitButtonText{display:inline-block !important}.dijitTextArea{width:100%;overflow-y:auto}.dijitTextArea[cols]{width:auto}.dj_ie .dijitTextAreaCols{width:auto}.dijitExpandingTextArea{resize:none}.dijitToolbarSeparator{height:18px;width:5px;padding:0 1px;margin:0}.dijitIEFixedToolbar{position:absolute;top:expression(eval((document.documentElement||document.body).scrollTop))}.dijitEditor{display:block}.dijitEditorDisabled,.dijitEditorReadOnly{color:gray}.dijitTimePicker{background-color:white}.dijitTimePickerItem{cursor:pointer;-webkit-tap-highlight-color:transparent}.dijitTimePickerItemHover{background-color:gray;color:white}.dijitTimePickerItemSelected{font-weight:bold;color:#333;background-color:#b7cdee}.dijitTimePickerItemDisabled{color:gray;text-decoration:line-through}.dijitTimePickerItemInner{text-align:center;border:0;padding:2px 8px 2px 8px}.dijitTimePickerTick,.dijitTimePickerMarker{border-bottom:1px solid gray}.dijitTimePicker .dijitDownArrowButton{border-top:none !important}.dijitTimePickerTick{color:#CCC}.dijitTimePickerMarker{color:black;background-color:#CCC}.dj_a11y .dijitTimePickerItemSelected .dijitTimePickerItemInner{border:solid 4px black}.dj_a11y .dijitTimePickerItemHover .dijitTimePickerItemInner{border:dashed 4px black}.dijitToggleButtonIconChar{display:none !important}.dj_a11y .dijitToggleButton .dijitToggleButtonIconChar{display:inline !important;visibility:hidden}.dj_ie6 .dijitToggleButtonIconChar,.dj_ie6 .tabStripButton .dijitButtonText{font-family:"Arial Unicode MS"}.dj_a11y .dijitToggleButtonChecked .dijitToggleButtonIconChar{display:inline !important;visibility:visible !important}.dijitArrowButtonChar{display:none !important}.dj_a11y .dijitArrowButtonChar{display:inline !important}.dj_a11y .dijitDropDownButton .dijitArrowButtonInner,.dj_a11y .dijitComboButton .dijitArrowButtonInner{display:none !important}.dj_a11y .dijitSelect{border-collapse:separate !important;border-width:1px;border-style:solid}.dj_ie .dijitSelect{vertical-align:middle}.dj_ie6 .dijitSelect .dijitValidationContainer,.dj_ie8 .dijitSelect .dijitButtonText{vertical-align:top}.dj_ie6 .dijitTextBox .dijitInputContainer,.dj_iequirks .dijitTextBox .dijitInputContainer,.dj_ie6 .dijitTextBox .dijitArrowButtonInner,.dj_ie6 .dijitSpinner .dijitSpinnerButtonInner,.dijitSelect .dijitSelectLabel{vertical-align:baseline}.dijitNumberTextBox{text-align:left;direction:ltr}.dijitNumberTextBox .dijitInputInner{text-align:inherit}.dijitNumberTextBox input.dijitInputInner,.dijitCurrencyTextBox input.dijitInputInner,.dijitSpinner input.dijitInputInner{text-align:right}.dj_ie8 .dijitNumberTextBox input.dijitInputInner,.dj_ie9 .dijitNumberTextBox input.dijitInputInner,.dj_ie8 .dijitCurrencyTextBox input.dijitInputInner,.dj_ie9 .dijitCurrencyTextBox input.dijitInputInner,.dj_ie8 .dijitSpinner input.dijitInputInner,.dj_ie9 .dijitSpinner input.dijitInputInner{padding-right:1px !important}.dijitToolbar .dijitSelect{margin:0}.dj_webkit .dijitToolbar .dijitSelect{padding-left:0.3em}.dijitSelect .dijitButtonContents{padding:0;white-space:nowrap;text-align:left;border-style:none solid none none;border-width:1px}.dijitSelectFixedWidth .dijitButtonContents{width:100%}.dijitSelectMenu .dijitMenuItemIcon{display:none}.dj_ie6 .dijitSelectMenu .dijitMenuItemLabel,.dj_ie7 .dijitSelectMenu .dijitMenuItemLabel{position:static}.dijitSelectLabel *{vertical-align:baseline}.dijitSelectSelectedOption *{font-weight:bold}.dijitSelectMenu{border-width:1px}.dijitForceStatic{position:static !important}.dijitReadOnly *,.dijitDisabled *,.dijitReadOnly,.dijitDisabled{cursor:default}.dojoDndItem{padding:2px;-webkit-touch-callout:none;-webkit-user-select:none}.dojoDndHorizontal .dojoDndItem{display:inline-block}.dojoDndItemBefore,.dojoDndItemAfter{border:0px solid #369}.dojoDndItemBefore{border-width:2px 0 0 0;padding:0 2px 2px 2px}.dojoDndItemAfter{border-width:0 0 2px 0;padding:2px 2px 0 2px}.dojoDndHorizontal .dojoDndItemBefore{border-width:0 0 0 2px;padding:2px 2px 2px 0}.dojoDndHorizontal .dojoDndItemAfter{border-width:0 2px 0 0;padding:2px 0 2px 2px}.dojoDndItemOver{cursor:pointer}.dj_gecko .dijitArrowButtonInner INPUT,.dj_gecko INPUT.dijitArrowButtonInner{-moz-user-focus:ignore}.dijitFocused .dijitMenuItemShortcutKey{text-decoration:underline}.dijitBorderContainer{height:350px}.dijitTooltipContainer{background:#fff;border:1px solid #ccc;border-radius:6px}.dijitContentPane{box-sizing:content-box;overflow:auto !important}.mx-dataview-content,.mx-scrollcontainer-wrapper:not(.mx-scrollcontainer-nested),.mx-tabcontainer-content,.mx-grid-content{-webkit-overflow-scrolling:touch}html,body,#content{height:100%}#content>.mx-page{width:100%;min-height:100%}.mx-left-aligned{text-align:left}.mx-right-aligned{text-align:right}.mx-center-aligned{text-align:center}.mx-table{width:100%}.mx-table th,.mx-table td{padding:8px;vertical-align:top}.mx-table th.nopadding,.mx-table td.nopadding{padding:0}.mx-offscreen{position:relative;height:0;overflow:hidden}.mx-ie-event-shield{position:absolute;top:0;left:0;width:100%;height:100%;z-index:-1}.mx-swipe-navigation-progress{position:absolute;height:54px;width:54px;top:calc(50% - 27px);left:calc(50% - 27px);background:url(data:image/gif;base64,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)}input[type="checkbox"]{margin:9px 0}.mx-checkbox input[type="checkbox"]{margin-left:0;margin-right:8px;position:static}.form-vertical .form-group.mx-checkbox input[type="checkbox"]{display:block}.form-vertical .form-group.mx-checkbox.label-after input[type="checkbox"]{display:inline-block}.form-horizontal .form-group.no-columns{padding-left:15px;padding-right:15px}.mx-radiobuttons.inline .radio{display:inline-block;margin-right:20px}.mx-radiobuttons .radio input[type="radio"]{position:static;margin-right:8px;margin-left:0}.mx-radiobuttons .radio label{padding-left:0}.alert{margin-top:8px;margin-bottom:10px;white-space:pre-line}.mx-compound-control{display:flex}.mx-compound-control button{margin-left:5px}[dir="rtl"] .mx-compound-control button{margin-left:0;margin-right:5px}.mx-tooltip{margin:10px}.mx-tooltip-content{width:400px;overflow-y:auto}.mx-tooltip-prepare{height:24px;padding:8px;background:transparent url(data:image/gif;base64,R0lGODlhGAAYAMQdAKXZ8nfF64TL7QuX3Fe45zaq4hOb3fL6/fr9/rri9dXt+ZrU8Cym4Umy5cHl9uPz+2K86Oj1/Nzw+rDd9M3q+JDQ72rA6iOi3+34/ECu48jo9x2f3gWV2////wAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQwIDc5LjE2MDQ1MSwgMjAxNy8wNS8wNi0wMTowODoyMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RUJFNkU4NEZCNEVDMTFFODk3MDBBNUU1RUM4Qjg3QTUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RUJFNkU4NTBCNEVDMTFFODk3MDBBNUU1RUM4Qjg3QTUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpFQkU2RTg0REI0RUMxMUU4OTcwMEE1RTVFQzhCODdBNSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpFQkU2RTg0RUI0RUMxMUU4OTcwMEE1RTVFQzhCODdBNSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6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) no-repeat scroll center center}.mx-tooltip-content .table th,.mx-tooltip-content .table td{padding:2px 8px}.mx-tabcontainer-pane{height:100%}.mx-tabcontainer-content.loading{min-height:48px;background:url(data:image/gif;base64,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) no-repeat center center;background-size:32px 32px}.mx-tabcontainer-tabs{margin-bottom:8px}.mx-tabcontainer-tabs li{position:relative}.mx-tabcontainer-indicator{position:absolute;background:#f2dede;border-radius:8px;color:#b94a48;top:0px;right:-5px;width:16px;height:16px;line-height:16px;text-align:center;vertical-align:middle;font-size:10px;font-weight:600;z-index:1}.mx-grid{padding:8px;overflow:hidden}.mx-grid-controlbar,.mx-grid-searchbar{display:flex;justify-content:space-between;flex-wrap:wrap}.mx-grid-controlbar .mx-button,.mx-grid-search-controls .mx-button{margin-bottom:8px}.mx-grid-search-controls .mx-button+.mx-button,.mx-grid-controlbar .mx-button+.mx-button{margin-left:0.3em}[dir="rtl"] .mx-grid-search-controls .mx-button+.mx-button,[dir="rtl"] .mx-grid-controlbar .mx-button+.mx-button{margin-left:0;margin-right:0.3em}.mx-grid-pagingbar,.mx-grid-search-controls{display:flex;white-space:nowrap;align-items:baseline;margin-left:auto}.mx-grid-toolbar,.mx-grid-search-inputs{margin-right:5px;flex:1}[dir="rtl"] .mx-grid-toolbar,[dir="rtl"] .mx-grid-search-inputs{margin-left:5px;margin-right:0px}[dir="rtl"] .mx-grid-pagingbar,[dir="rtl"] .mx-grid-search-controls{margin-left:0px;margin-right:auto}.mx-grid-paging-status{padding:0 8px 5px}.mx-grid-search-item{display:inline-block;vertical-align:top;margin-bottom:8px}.mx-grid-search-label{width:110px;padding:0 5px;text-align:right;display:inline-block;vertical-align:top;overflow:hidden}[dir="rtl"] .mx-grid-search-label{text-align:left}.mx-grid-search-input{width:150px;padding:0 5px;display:inline-block;vertical-align:top}.mx-grid-search-message{flex-basis:100%}.mx-dataview .mx-grid{border:1px solid #ddd;border-radius:3px}.mx-calendar{z-index:1000}.mx-calendar-month-dropdown-options{position:absolute}.mx-calendar,.mx-calendar-month-dropdown{user-select:none}.mx-calendar-month-current{display:inline-block}.mx-calendar-month-spacer{position:relative;height:0px;overflow:hidden;visibility:hidden}.mx-calendar,.mx-calendar-month-dropdown-options{border:1px solid lightgrey;background-color:white}.mx-datagrid tr{cursor:pointer}.mx-datagrid tr.mx-datagrid-row-empty{cursor:default}.mx-datagrid table{width:100%;max-width:100%;table-layout:fixed;margin-bottom:0}.mx-datagrid th,.mx-datagrid td{padding:8px;line-height:1.42857143;vertical-align:bottom;border:1px solid #ddd}.mx-datagrid th{position:relative;border-bottom-width:2px}.mx-datagrid-head-caption{overflow:hidden;white-space:nowrap}.mx-datagrid-sort-icon{float:right;padding-left:5px}[dir="rtl"] .mx-datagrid-sort-icon{float:left;padding:0 5px 0 0}.mx-datagrid-column-resizer{position:absolute;top:0;left:-6px;width:10px;height:100%;cursor:col-resize}[dir="rtl"] .mx-datagrid-column-resizer{left:auto;right:-6px}.mx-datagrid tbody tr:first-child td{border-top:none}.mx-datagrid tbody .selected td{background-color:#eee}.mx-datagrid-data-wrapper{overflow:hidden;white-space:nowrap}.mx-datagrid tbody img{max-width:16px;max-height:16px}.mx-datagrid input,.mx-datagrid select,.mx-datagrid textarea{cursor:auto}.mx-datagrid tfoot th,.mx-datagrid tfoot td{padding:3px 8px}.mx-datagrid tfoot th{border-top:1px solid #ddd}.mx-datagrid.mx-content-loading .mx-content-loader{display:inline-block;width:90%;animation:placeholderGradient 1s linear infinite;border-radius:4px;background:#F5F5F5;background:repeating-linear-gradient(to right, #f5f5f5 0%, #f5f5f5 5%, #F9F9F9 50%, #f5f5f5 95%, #f5f5f5 100%);background-size:200px 100px;animation-fill-mode:both}@keyframes placeholderGradient{0%{background-position:100px 0}100%{background-position:-100px 0}}.mx-datagrid-table-resizing th,.mx-datagrid-table-resizing td{cursor:col-resize !important}.mx-templategrid-content-wrapper{display:table;width:100%;border-collapse:collapse;box-sizing:border-box}.mx-templategrid-row{display:table-row}.mx-templategrid-item{padding:5px;display:table-cell;border:1px solid #ddd;cursor:pointer;box-sizing:border-box}.mx-templategrid-empty{display:table-cell}.mx-templategrid-item.selected{background-color:#f5f5f5}.mx-templategrid-item .mx-table th,.mx-templategrid-item .mx-table td{padding:2px 8px}.mx-scrollcontainer-horizontal{width:100%;display:table;table-layout:fixed}.mx-scrollcontainer-horizontal>div{display:table-cell;vertical-align:top}.mx-scrollcontainer-nested{padding:0}.mx-scrollcontainer-fixed>.mx-scrollcontainer-middle>.mx-scrollcontainer-wrapper,.mx-scrollcontainer-fixed>.mx-scrollcontainer-left>.mx-scrollcontainer-wrapper,.mx-scrollcontainer-fixed>.mx-scrollcontainer-center>.mx-scrollcontainer-wrapper,.mx-scrollcontainer-fixed>.mx-scrollcontainer-right>.mx-scrollcontainer-wrapper{overflow:auto}.mx-scrollcontainer-move-in{transition:left 250ms ease-out}.mx-scrollcontainer-move-out{transition:left 250ms ease-in}.mx-scrollcontainer-shrink .mx-scrollcontainer-toggleable{transition-property:width}.mx-scrollcontainer-toggleable{background-color:#fff}.mx-scrollcontainer-push{position:relative}.mx-scrollcontainer-shrink>.mx-scrollcontainer-toggleable{overflow:hidden}.mx-scrollcontainer-push.mx-scrollcontainer-open>div,.mx-scrollcontainer-slide.mx-scrollcontainer-open>div{pointer-events:none}.mx-scrollcontainer-push.mx-scrollcontainer-open>.mx-scrollcontainer-toggleable,.mx-scrollcontainer-slide.mx-scrollcontainer-open>.mx-scrollcontainer-toggleable{pointer-events:auto}.mx-navbar-item img,.mx-navbar-subitem img{height:16px}.mx-navigationtree .navbar-inner{padding-left:0;padding-right:0}.mx-navigationtree ul{list-style:none}.mx-navigationtree ul li{border-bottom:1px solid #dfe6ea}.mx-navigationtree li:last-child{border-style:none}.mx-navigationtree a{display:block;padding:5px 10px;color:#777;text-shadow:0 1px 0 #fff;text-decoration:none}.mx-navigationtree a.active{color:#FFF;text-shadow:none;background:#3498DB;border-radius:3px}.mx-navigationtree .mx-navigationtree-collapsed ul{display:none}.mx-navigationtree ul{margin:0;padding:0}.mx-navigationtree ul li{padding:5px 0}.mx-navigationtree ul li ul{padding:0;margin-left:10px}.mx-navigationtree ul li ul li{margin-left:8px;padding:5px 0}[dir="rtl"] .mx-navigationtree ul li ul li{margin-left:auto;margin-right:8px}.mx-navigationtree ul li ul li ul li{font-size:10px;padding-top:3px;padding-bottom:3px}.mx-navigationtree ul li ul li ul li img{vertical-align:top}.mx-link img,.mx-button img{height:16px}.mx-link{padding:6px 12px;display:inline-block}.mx-groupbox{margin-bottom:10px}.mx-groupbox-header{margin:0;padding:10px 15px;color:#eee;background:#333;font-size:inherit;line-height:inherit;border-radius:4px 4px 0 0}.mx-groupbox-collapsible>.mx-groupbox-header{cursor:pointer}.mx-groupbox.collapsed>.mx-groupbox-header{border-radius:4px}.mx-groupbox-body{padding:8px;border:1px solid #ddd;border-radius:4px}.mx-groupbox.collapsed>.mx-groupbox-body{display:none}.mx-groupbox-header+.mx-groupbox-body{border-top:none;border-radius:0 0 4px 4px}.mx-groupbox-collapse-icon{float:right}[dir="rtl"] .mx-groupbox-collapse-icon{float:left}.mx-dataview{position:relative}.mx-dataview-controls{padding:19px 20px 12px;background-color:#f5f5f5;border-top:1px solid #eee}.mx-dataview-controls .mx-button{margin-bottom:8px}.mx-dataview-controls .mx-button+.mx-button{margin-left:0.3em}.mx-dataview-message{background:#fff;position:absolute;top:0;right:0;bottom:0;left:0}.mx-dataview-message>div{display:table;width:100%;height:100%}.mx-dataview-message>div>p{display:table-cell;text-align:center;vertical-align:middle}.mx-window-view .mx-window-body{padding:0}.mx-window-view .mx-window-body>.mx-dataview>.mx-dataview-content,.mx-window-view .mx-window-body>.mx-placeholder>.mx-dataview>.mx-dataview-content{padding:15px}.mx-window-view .mx-window-body>.mx-dataview>.mx-dataview-controls,.mx-window-view .mx-window-body>.mx-placeholder>.mx-dataview>.mx-dataview-controls{border-radius:0px 0px 6px 6px}.mx-dialog{position:fixed;left:auto;right:auto;padding:0;width:500px;margin:0}.mx-dialog-header{cursor:move}.mx-dialog-body{overflow:auto}.mx-window{position:fixed;left:auto;right:auto;padding:0;width:600px;margin:0}.mx-window-content{height:100%;overflow:hidden}.mx-window-active .mx-window-header{background-color:#f5f5f5;border-radius:6px 6px 0 0}.mx-window-header{cursor:move}.mx-window-body{overflow:auto}.mx-dropdown-list *{cursor:pointer}.mx-dropdown-list img{width:35px;vertical-align:middle;margin-right:10px}[dir="rtl"] .mx-dropdown-list img{margin-left:10px;margin-right:auto}.mx-dropdown-list{padding:0;list-style:none}.mx-dropdown-list>li{padding:5px 10px 10px;border:1px #ddd;border-style:solid solid none;background-color:#fff}.mx-dropdown-list>li:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.mx-dropdown-list>li:last-child{border-bottom-style:solid;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.mx-dropdown-list-striped>li:nth-child(2n+1){background:#f9f9f9}.mx-dropdown-list>li:hover{background:#f5f5f5}.mx-header{position:relative;padding:9px;background:#333;text-align:center}.mx-header-center{display:inline-block;color:#eee;line-height:30px}body[dir="ltr"] .mx-header-left,body[dir="rtl"] .mx-header-right{position:absolute;top:9px;left:9px}body[dir="ltr"] .mx-header-right,body[dir="rtl"] .mx-header-left{position:absolute;top:9px;right:9px}.mx-title{margin-bottom:0px;margin-top:0px}.mx-listview{padding:8px}.mx-listview>ul{padding:0px;list-style:none}.mx-listview-clickable>ul>li{cursor:pointer}.mx-listview-empty{color:#999;text-align:center}.mx-listview .mx-listview-loading{padding:10px;line-height:0;text-align:center}.mx-listview-searchbar{display:flex;margin-bottom:10px}.mx-listview-searchbar>input{width:100%}.mx-listview-searchbar>button{margin-left:5px}[dir="rtl"] .mx-listview-searchbar>button{margin-left:0;margin-right:5px}.mx-listview-selection{display:table-cell;vertical-align:middle;padding:0 15px 0 5px}[dir="rtl"] .mx-listview-selection{padding:0 5px 0 15px}.mx-listview-selectable .mx-listview-content{display:table-cell;vertical-align:middle;width:100%}.mx-listview .selected{background:#def}.mx-listview .mx-table th,.mx-listview .mx-table td{padding:2px}.mx-login .form-control{margin-top:10px}.mx-menubar{padding:8px}.mx-menubar-icon{height:16px}.mx-menubar-more-icon{display:inline-block;width:16px;height:16px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAYAAAAe2bNZAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAKNJREFUeNpi/P//P8NgAUwMgwiMOmbUMaOOGXXMqGNGHTPYHMOCTfDs2bMeQKoOiI1BXCBuMjY23kFrdYzoTQigRm8gtQWLG0OBBqyhlTpc0dSOIxTraKwOq2PUcWhWp7E6rI65iUPzTRqrw+qYGhyam2isDtMxwES1CUgFAfFxqBCIDkJPbNRWhzU3jRZ6o44ZdcyoY0YdM+qYUccMUscABBgAUXpEjE/Bs/IAAAAASUVORK5CYII=) no-repeat center center;background-size:16px 16px;vertical-align:middle}.mx-navigationlist{padding:8px}.mx-navigationlist li:hover,.mx-navigationlist li:focus,.mx-navigationlist li.active{color:#FFF;background-color:#3498DB}.mx-navigationlist *{cursor:pointer}.mx-navigationlist .table th,.mx-navigationlist .table td{padding:2px}.mx-progress{position:fixed;top:30%;left:0;right:0;margin:auto;width:250px;max-width:90%;background:#333;opacity:0.8;z-index:5000;border-radius:4px;padding:20px 15px;transition:opacity 0.4s ease-in-out}.mx-progress-hidden{opacity:0}.mx-progress-message{color:#fff;text-align:center;margin-bottom:15px}.mx-progress-empty .mx-progress-message{display:none}.mx-progress-indicator{width:70px;height:10px;margin:auto;background:url(data:image/gif;base64,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)}.mx-reload-notification{position:fixed;z-index:1001;top:0;width:100%;padding:1rem;border:1px solid #048acd;background-color:#0494dc;box-shadow:0 5px 20px rgba(1,37,55,0.16);color:white;text-align:center;font-size:14px}.mx-resizer-n,.mx-resizer-s{position:absolute;left:0;width:100%;height:10px}.mx-resizer-n{top:-5px;cursor:n-resize}.mx-resizer-s{bottom:-5px;cursor:s-resize}.mx-resizer-e,.mx-resizer-w{position:absolute;top:0;width:10px;height:100%}.mx-resizer-e{right:-5px;cursor:e-resize}.mx-resizer-w{left:-5px;cursor:w-resize}.mx-resizer-nw,.mx-resizer-ne,.mx-resizer-sw,.mx-resizer-se{position:absolute;width:20px;height:20px}.mx-resizer-nw,.mx-resizer-ne{top:-5px}.mx-resizer-sw,.mx-resizer-se{bottom:-5px}.mx-resizer-nw,.mx-resizer-sw{left:-5px}.mx-resizer-ne,.mx-resizer-se{right:-5px}.mx-resizer-nw{cursor:nw-resize}.mx-resizer-ne{cursor:ne-resize}.mx-resizer-sw{cursor:sw-resize}.mx-resizer-se{cursor:se-resize}.mx-text{white-space:pre-line}.mx-textarea textarea{resize:none;overflow-y:hidden}.mx-textarea .mx-textarea-noresize{height:auto;resize:vertical;overflow-y:auto}.mx-textarea .mx-textarea-counter{font-size:smaller}.mx-textarea .form-control-static,.mx-textarea .form-group div[class*='textBox']>.control-label,.form-group .mx-textarea div[class*='textBox']>.control-label,.mx-textarea .form-group div[class*='textArea']>.control-label,.form-group .mx-textarea div[class*='textArea']>.control-label,.mx-textarea .form-group div[class*='datePicker']>.control-label,.form-group .mx-textarea div[class*='datePicker']>.control-label{white-space:pre-line}.mx-underlay{position:fixed;top:0;width:100%;height:100%;z-index:1000;opacity:0.5;background-color:#333}.mx-imagezoom{position:absolute;display:table;width:100%;height:100%;background-color:#999}.mx-imagezoom-wrapper{display:table-cell;text-align:center;vertical-align:middle}.mx-imagezoom-image{max-width:none}.mx-dropdown li{padding:3px 20px;cursor:pointer}.mx-dropdown label{padding:0;color:#333;white-space:nowrap;cursor:pointer}.mx-dropdown input{margin:0;vertical-align:middle;cursor:pointer}.mx-dropdown .selected{background:#f8f8f8}.mx-demouserswitcher{position:fixed;top:0;right:0;width:360px;height:100%;z-index:20000;box-shadow:-1px 0 5px rgba(28,59,86,0.2)}.mx-demouserswitcher-content{padding:80px 40px 20px;height:100%;color:#387ea2;font-size:14px;overflow:auto;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOgAAABgCAYAAAAXSj7NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0MzkwOTREMDQ2NEYxMUU0QTQ4MUI5NTNGMUQ3QzE5NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0MzkwOTREMTQ2NEYxMUU0QTQ4MUI5NTNGMUQ3QzE5NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc0REMyMUZGNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc0REMyMjAwNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+g1tRlwAAEFFJREFUeNrsnYl3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) top right no-repeat #1b3149;background-attachment:local}.mx-demouserswitcher ul{padding:0;margin-top:25px;list-style-type:none;border-top:1px solid #496076}.mx-demouserswitcher a{display:block;padding:10px 0;color:#387ea2;border-bottom:1px solid #496076}.mx-demouserswitcher h2{margin:20px 0 5px;color:#5bc4fe;font-size:28px}.mx-demouserswitcher h3{margin:0 0 2px;color:#5bc4fe;font-size:18px;font-weight:normal;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mx-demouserswitcher .active h3{color:#11efdb}.mx-demouserswitcher p{margin-bottom:0}.mx-demouserswitcher-toggle{position:absolute;top:25%;left:-35px;width:35px;height:38px;margin-top:-40px;cursor:pointer;border-top-left-radius:3px;border-bottom-left-radius:3px;box-shadow:-1px 0 5px rgba(28,59,86,0.2);background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3NERDMjFGRDQ2NEMxMUU0QTQ4MUI5NTNGMUQ3QzE5NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3NERDMjFGRTQ2NEMxMUU0QTQ4MUI5NTNGMUQ3QzE5NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc0REMyMUZCNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc0REMyMUZDNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+1ZovNAAAAWdJREFUeNqM1M0rRFEYx/E7Y5qIQpOUbIiymQWysBgvJVJK2VgryZQtKSULZelPsB0LZaNZjJUNK1FskJqUvCS3NAsZc3zP9NziOOfeeepTc8/c8+vc8xZTSnmOakEGKdzgDBXXy54OMsSwjpL6W9cYsrxfZWvcUu7y0VdLUCc+VXgd2oLixpfOIOmF17TtHTOozYuupCxAaNB9DUEfeDUbE8bzEXxZerP00l8hh3LUiHTIMr6N9j2ksYoihv/1deyLSVzKKm1jEW+WfZV2Lf8gskjIcwcWpOM++pHCFPLosgWtoCyd7jCPOjzhGHHLyDPY1achaJhDxRj6rBwJXUuoN0IG8IIv7OiGBjxadvAITuT3rex6c0SbKASflnUcBT3JTThAjyWkGUVsBEEFR5CerzXpNIacrFIrJnCBB3muBvkhB1TP27hM/Lvx3zl6gxHqu6c74kiU8IxGjKJdLrrT3xfdjwADAJaMxP2bvD2BAAAAAElFTkSuQmCC) center center no-repeat #1b3149}.mx-master-detail-screen{top:0;left:0;overflow:auto;width:100%;height:100%;position:absolute;background-color:white;will-change:transform}.mx-master-detail-screen .mx-master-detail-details{padding:15px}.mx-master-detail-screen-header{position:relative;overflow:auto;border-bottom:1px solid #ccc;background-color:#f7f7f7}.mx-master-detail-screen-header-caption{text-align:center;font-size:17px;line-height:24px;font-weight:600}.mx-master-detail-screen-header-close{position:absolute;left:0;top:0;height:100%;width:50px;border:none;background:transparent;color:#007aff}body[dir="rtl"] .mx-master-detail-screen-header-close{right:0;left:auto}.mx-master-detail-screen-header-close::before{content:"\2039";font-size:52px;line-height:24px}.mx-master-detail-content-fix{height:100vh;overflow:hidden}.mx-master-detail-content-hidden{transform:translateX(-200%)}body[dir="rtl"] .mx-master-detail-content-hidden{transform:translateX(200%)}.reportingReport{padding:5px;border:1px solid #ddd;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.reportingReportParameter th{text-align:right}.reportingDateRange table{width:100%;table-layout:fixed}.reportingDateRange th{padding:5px;text-align:right;background-color:#eee}.reportingDateRange td{padding:5px}.mx-reportmatrix table{width:100%;max-width:100%;table-layout:fixed;margin-bottom:0}.mx-reportmatrix th,.mx-reportmatrix td{padding:8px;line-height:1.42857143;vertical-align:bottom;border:1px solid #ddd}.mx-reportmatrix tbody tr:first-child td{border-top:none}.mx-reportmatrix tbody tr:nth-child(2n+1) td{background-color:#f9f9f9}.mx-reportmatrix tbody img{max-width:16px;max-height:16px}@media all and (-ms-high-contrast: none), (-ms-high-contrast: active){.dijitInline{zoom:1;display:inline;vertical-align:auto}.dj_ie6 .dijitComboBox .dijitInputContainer,.dijitInputContainer{zoom:1}.dijitRight{display:inline}.dijitButtonNode{vertical-align:auto}.dijitTextBox{overflow:hidden}.dijitPlaceHolder{filter:""}.dijitValidationTextBoxError input.dijitValidationInner,.dijitSelect input,.dijitTextBox input.dijitArrowButtonInner{text-indent:0 !important;letter-spacing:-5em !important;text-align:right !important}.dj_a11y input.dijitValidationInner,.dj_a11y input.dijitArrowButtonInner{text-align:left !important}.dijitSpinner .dijitSpinnerButtonContainer .dijitUpArrowButton{bottom:50%}.dijitTabContainerTop-tabs .dijitTab,.dijitTabContainerBottom-tabs .dijitTab{zoom:1;display:inline}.dojoDndHorizontal .dojoDndItem{display:inline}}@keyframes slideInUp{from{visibility:visible;transform:translate3d(0, 100%, 0)}to{transform:translate3d(0, 0, 0)}}.animated{animation-duration:0.4s;animation-fill-mode:both}.slideInUp{animation-name:slideInUp}@keyframes slideInDown{from{visibility:visible;transform:translate3d(0, -100%, 0)}to{transform:translate3d(0, 0, 0)}}.slideInDown{animation-name:slideInDown}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.fadeIn{animation-name:fadeIn}.flexcontainer{display:flex;overflow:hidden;flex:1;flex-direction:row}.flexcontainer .flexitem{margin-right:15px}.flexcontainer .flexitem:last-child{margin-right:0}.flexcontainer .flexitem-main{overflow:hidden;flex:1}.flex-row{flex-direction:row !important}.flex-column{flex-direction:column !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-center{align-items:center !important;justify-content:center !important}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.justify-content-around{justify-content:space-around !important}.justify-content-evenly{justify-content:space-evenly !important}.justify-content-stretch{justify-content:stretch !important}.align-children-start{align-items:flex-start !important}.align-children-end{align-items:flex-end !important}.align-children-center{align-items:center !important}.align-children-baseline{align-items:baseline !important}.align-children-stretch{align-items:stretch !important}.align-content-start{align-content:flex-start !important}.align-content-end{align-content:flex-end !important}.align-content-center{align-content:center !important}.align-content-between{align-content:space-between !important}.align-content-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-self-auto{align-self:auto !important}.align-self-start{align-self:flex-start !important}.align-self-end{align-self:flex-end !important}.align-self-center{align-self:center !important}.align-self-baseline{align-self:baseline !important}.align-self-stretch{align-self:stretch !important}.flexitem-1{flex:1 1 1%}.flexitem-2{flex:2 2 1%}.flexitem-3{flex:3 3 1%}.flexitem-4{flex:4 4 1%}.flexitem-5{flex:5 5 1%}.flexitem-6{flex:6 6 1%}.flexitem-7{flex:7 7 1%}.flexitem-8{flex:8 8 1%}.flexitem-9{flex:9 9 1%}.flexitem-10{flex:10 10 1%}.flexitem-11{flex:11 11 1%}.flexitem-12{flex:12 12 1%}.spacing-inner-none{padding:0 !important}.spacing-inner-top-none{padding-top:0 !important}.spacing-inner-right-none{padding-right:0 !important}.spacing-inner-bottom-none{padding-bottom:0 !important}.spacing-inner-left-none{padding-left:0 !important}.spacing-outer-none{margin:0 !important}.spacing-outer-top-none{margin-top:0 !important}.spacing-outer-right-none{margin-right:0 !important}.spacing-outer-bottom-none{margin-bottom:0 !important}.spacing-outer-left-none{margin-left:0 !important}.spacing-inner{padding:5px !important}.spacing-inner-top{padding-top:5px !important}.spacing-inner-right{padding-right:5px !important}.spacing-inner-bottom{padding-bottom:5px !important}.spacing-inner-left{padding-left:5px !important}.spacing-outer{margin:5px !important}.spacing-outer-top{margin-top:5px !important}.spacing-outer-right{margin-right:5px !important}.spacing-outer-bottom{margin-bottom:5px !important}.spacing-outer-left{margin-left:5px !important}@media (max-width: 767px){.spacing-inner-medium{padding:15px !important}}@media (min-width: 768px){.spacing-inner-medium{padding:15px !important}}@media (min-width: 992px){.spacing-inner-medium{padding:15px !important}}@media (max-width: 767px){.spacing-inner-top-medium{padding-top:15px !important}}@media (min-width: 768px){.spacing-inner-top-medium{padding-top:15px !important}}@media (min-width: 992px){.spacing-inner-top-medium{padding-top:15px !important}}@media (max-width: 767px){.spacing-inner-right-medium{padding-right:15px !important}}@media (min-width: 768px){.spacing-inner-right-medium{padding-right:15px !important}}@media (min-width: 992px){.spacing-inner-right-medium{padding-right:15px !important}}@media (max-width: 767px){.spacing-inner-bottom-medium{padding-bottom:15px !important}}@media (min-width: 768px){.spacing-inner-bottom-medium{padding-bottom:15px !important}}@media (min-width: 992px){.spacing-inner-bottom-medium{padding-bottom:15px !important}}@media (max-width: 767px){.spacing-inner-left-medium{padding-left:15px !important}}@media (min-width: 768px){.spacing-inner-left-medium{padding-left:15px !important}}@media (min-width: 992px){.spacing-inner-left-medium{padding-left:15px !important}}@media (max-width: 767px){.spacing-outer-medium{margin:15px !important}}@media (min-width: 768px){.spacing-outer-medium{margin:15px !important}}@media (min-width: 992px){.spacing-outer-medium{margin:15px !important}}@media (max-width: 767px){.spacing-outer-top-medium{margin-top:15px !important}}@media (min-width: 768px){.spacing-outer-top-medium{margin-top:15px !important}}@media (min-width: 992px){.spacing-outer-top-medium{margin-top:15px !important}}@media (max-width: 767px){.spacing-outer-right-medium{margin-right:15px !important}}@media (min-width: 768px){.spacing-outer-right-medium{margin-right:15px !important}}@media (min-width: 992px){.spacing-outer-right-medium{margin-right:15px !important}}@media (max-width: 767px){.spacing-outer-bottom-medium{margin-bottom:15px !important}}@media (min-width: 768px){.spacing-outer-bottom-medium{margin-bottom:15px !important}}@media (min-width: 992px){.spacing-outer-bottom-medium{margin-bottom:15px !important}}@media (max-width: 767px){.spacing-outer-left-medium{margin-left:15px !important}}@media (min-width: 768px){.spacing-outer-left-medium{margin-left:15px !important}}@media (min-width: 992px){.spacing-outer-left-medium{margin-left:15px !important}}@media (max-width: 767px){.spacing-inner-large{padding:15px !important}}@media (min-width: 768px){.spacing-inner-large{padding:30px !important}}@media (min-width: 992px){.spacing-inner-large{padding:30px !important}}@media (max-width: 767px){.spacing-inner-top-large{padding-top:15px !important}}@media (min-width: 768px){.spacing-inner-top-large{padding-top:30px !important}}@media (min-width: 992px){.spacing-inner-top-large{padding-top:30px !important}}@media (max-width: 767px){.spacing-inner-right-large{padding-right:15px !important}}@media (min-width: 768px){.spacing-inner-right-large{padding-right:30px !important}}@media (min-width: 992px){.spacing-inner-right-large{padding-right:30px !important}}@media (max-width: 767px){.spacing-inner-bottom-large{padding-bottom:15px !important}}@media (min-width: 768px){.spacing-inner-bottom-large{padding-bottom:30px !important}}@media (min-width: 992px){.spacing-inner-bottom-large{padding-bottom:30px !important}}@media (max-width: 767px){.spacing-inner-left-large{padding-left:15px !important}}@media (min-width: 768px){.spacing-inner-left-large{padding-left:30px !important}}@media (min-width: 992px){.spacing-inner-left-large{padding-left:30px !important}}@media (max-width: 767px){.spacing-outer-large{margin:15px !important}}@media (min-width: 768px){.spacing-outer-large{margin:30px !important}}@media (min-width: 992px){.spacing-outer-large{margin:30px !important}}@media (max-width: 767px){.spacing-outer-top-large{margin-top:15px !important}}@media (min-width: 768px){.spacing-outer-top-large{margin-top:30px !important}}@media (min-width: 992px){.spacing-outer-top-large{margin-top:30px !important}}@media (max-width: 767px){.spacing-outer-right-large{margin-right:15px !important}}@media (min-width: 768px){.spacing-outer-right-large{margin-right:30px !important}}@media (min-width: 992px){.spacing-outer-right-large{margin-right:30px !important}}@media (max-width: 767px){.spacing-outer-bottom-large{margin-bottom:15px !important}}@media (min-width: 768px){.spacing-outer-bottom-large{margin-bottom:30px !important}}@media (min-width: 992px){.spacing-outer-bottom-large{margin-bottom:30px !important}}@media (max-width: 767px){.spacing-outer-left-large{margin-left:15px !important}}@media (min-width: 768px){.spacing-outer-left-large{margin-left:30px !important}}@media (min-width: 992px){.spacing-outer-left-large{margin-left:30px !important}}@media (max-width: 767px){.spacing-inner-layout{padding:15px 15px 15px 15px !important}}@media (min-width: 768px){.spacing-inner-layout{padding:30px 30px 30px 30px !important}}@media (min-width: 992px){.spacing-inner-layout{padding:30px 30px 30px 30px !important}}@media (max-width: 767px){.spacing-inner-top-layout{padding-top:15px !important}}@media (min-width: 768px){.spacing-inner-top-layout{padding-top:30px !important}}@media (min-width: 992px){.spacing-inner-top-layout{padding-top:30px !important}}@media (max-width: 767px){.spacing-inner-right-layout{padding-right:15px !important}}@media (min-width: 768px){.spacing-inner-right-layout{padding-right:30px !important}}@media (min-width: 992px){.spacing-inner-right-layout{padding-right:30px !important}}@media (max-width: 767px){.spacing-inner-bottom-layout{padding-bottom:15px !important}}@media (min-width: 768px){.spacing-inner-bottom-layout{padding-bottom:30px !important}}@media (min-width: 992px){.spacing-inner-bottom-layout{padding-bottom:30px !important}}@media (max-width: 767px){.spacing-inner-left-layout{padding-left:15px !important}}@media (min-width: 768px){.spacing-inner-left-layout{padding-left:30px !important}}@media (min-width: 992px){.spacing-inner-left-layout{padding-left:30px !important}}@media (max-width: 767px){.spacing-outer-layout{margin:15px 15px 15px 15px !important}}@media (min-width: 768px){.spacing-outer-layout{margin:30px 30px 30px 30px !important}}@media (min-width: 992px){.spacing-outer-layout{margin:30px 30px 30px 30px !important}}@media (max-width: 767px){.spacing-outer-top-layout{margin-top:15px !important}}@media (min-width: 768px){.spacing-outer-top-layout{margin-top:30px !important}}@media (min-width: 992px){.spacing-outer-top-layout{margin-top:30px !important}}@media (max-width: 767px){.spacing-outer-right-layout{margin-right:15px !important}}@media (min-width: 768px){.spacing-outer-right-layout{margin-right:30px !important}}@media (min-width: 992px){.spacing-outer-right-layout{margin-right:30px !important}}@media (max-width: 767px){.spacing-outer-bottom-layout{margin-bottom:15px !important}}@media (min-width: 768px){.spacing-outer-bottom-layout{margin-bottom:30px !important}}@media (min-width: 992px){.spacing-outer-bottom-layout{margin-bottom:30px !important}}@media (max-width: 767px){.spacing-outer-left-layout{margin-left:15px !important}}@media (min-width: 768px){.spacing-outer-left-layout{margin-left:30px !important}}@media (min-width: 992px){.spacing-outer-left-layout{margin-left:30px !important}}.mx-scrollcontainer .mx-placeholder{width:100%;height:100%}@media (max-width: 767px){.mx-scrollcontainer .mx-placeholder .mx-layoutgrid,.mx-scrollcontainer .mx-placeholder .mx-layoutgrid-fluid{padding:15px 15px 15px 15px}}@media (min-width: 768px){.mx-scrollcontainer .mx-placeholder .mx-layoutgrid,.mx-scrollcontainer .mx-placeholder .mx-layoutgrid-fluid{padding:30px 30px 30px 30px}}@media (min-width: 992px){.mx-scrollcontainer .mx-placeholder .mx-layoutgrid,.mx-scrollcontainer .mx-placeholder .mx-layoutgrid-fluid{padding:30px 30px 30px 30px}}.mx-scrollcontainer .mx-placeholder .mx-layoutgrid .mx-layoutgrid,.mx-scrollcontainer .mx-placeholder .mx-layoutgrid .mx-layoutgrid-fluid,.mx-scrollcontainer .mx-placeholder .mx-layoutgrid-fluid .mx-layoutgrid,.mx-scrollcontainer .mx-placeholder .mx-layoutgrid-fluid .mx-layoutgrid-fluid{padding:0}html{height:100%}body{min-height:100%;color:#555;background-color:#fff;font-family:"Open Sans",sans-serif;font-size:14px;font-weight:normal;line-height:1.42857}a{-moz-transition:0.25s;-o-transition:0.25s;-webkit-transition:0.25s;transition:0.25s;color:#0595DB;-webkit-backface-visibility:hidden}a:hover{text-decoration:underline;color:#036290}a:focus{outline:thin dotted}a:active,a:hover{outline:0}input:focus,button:focus,.mx-link:focus{outline:0}div[tabindex]{outline:0}.disabled,[disabled]{cursor:not-allowed;-webkit-box-shadow:none;box-shadow:none;filter:alpha(opacity=65)}body{height:100%}.loginpage{display:flex;height:100%}.loginpage-logo{position:absolute;top:30px;right:30px;width:120px}.loginpage-left{display:none}.loginpage-right{display:flex;flex:1;flex-direction:column;justify-content:space-around}.loginpage-formwrapper{width:400px;margin:0 auto}.loginpage-form .alert{display:none}.loginpage-form .btn{border-radius:40px}.loginpage-form .form-group{width:100%;align-items:center}.loginpage-form .form-group .control-label{flex:4;margin-bottom:0;font-size:14px;font-weight:500}.loginpage-form .form-group .inputwrapper{flex:8;position:relative;width:100%}.loginpage-form .form-group .inputwrapper .glyphicon{position:absolute;top:50%;left:10px;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);-o-transform:translateY(-50%);transform:translateY(-50%)}.loginpage-form .form-group .inputwrapper .glyphicon:before{-webkit-transition:color 0.4s;-moz-transition:color 0.4s;-o-transition:color 0.4s;transition:color 0.4s}.loginpage-form .form-group .inputwrapper .glyphicon-eye-open:hover,.loginpage-form .form-group .inputwrapper .glyphicon-eye-close:hover{cursor:pointer;color:#0595DB}.loginpage-form .form-group .inputwrapper .form-control{padding:8px 10px 8px 45px}.loginpage-form .form-group .inputwrapper .form-control:focus ~ .glyphicon:before{color:#0595DB}.loginpage-alternativelabel{display:flex;align-items:center;flex-direction:row;flex-wrap:nowrap;justify-content:space-between;margin:25px 0px}.loginpage-alternativelabel hr{flex:1;margin:20px 0 20px 10px;border:0;border-color:#d8d8d8;border-top:1px solid #eeeeee}.loginpage-signin{color:#555555}@media screen and (min-width: 1200px){.loginpage-logo{width:150px}.loginpage-left{position:relative;display:block;flex:1;width:100%;height:100%}.loginpage-image{height:100%;animation:makePointer 1s ease-out both;background:left/cover no-repeat url("../../../resources/work-do-more.jpeg");background:left/cover no-repeat linear-gradient(to right, rgba(5,149,219,0.9) 0%, rgba(5,149,219,0.6) 100%),left/cover no-repeat url("../../../resources/work-do-more.jpeg");background:left/cover no-repeat -moz-linear-gradient(left, rgba(5,149,219,0.9) 0%, rgba(5,149,219,0.6) 100%),left/cover no-repeat url("../../../resources/work-do-more.jpeg");background:left/cover no-repeat -webkit-gradient(linear, left bottom, right bottom, color-stop(0%, rgba(5,149,219,0.9)), color-stop(100%, rgba(5,149,219,0.6))),left/cover no-repeat url("../../../resources/work-do-more.jpeg");background:left/cover no-repeat -webkit-linear-gradient(left, rgba(5,149,219,0.9) 0%, rgba(5,149,219,0.6) 100%),left/cover no-repeat url("../../../resources/work-do-more.jpeg");background:left/cover no-repeat -o-linear-gradient(left, rgba(5,149,219,0.9) 0%, rgba(5,149,219,0.6) 100%),left/cover no-repeat url("../../../resources/work-do-more.jpeg");background:left/cover no-repeat -ms-linear-gradient(left, rgba(5,149,219,0.9) 0%, rgba(5,149,219,0.6) 100%),left/cover no-repeat url("../../../resources/work-do-more.jpeg");-webkit-clip-path:polygon(0% 0%, 100% 0, 100% 50%, 100% 100%, 0% 100%);clip-path:polygon(0% 0%, 100% 0, 100% 50%, 100% 100%, 0% 100%)}.loginpage-formwrapper{width:400px}}@keyframes makePointer{100%{-webkit-clip-path:polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%);clip-path:polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%)}}@-webkit-keyframes makePointer{100%{-webkit-clip-path:polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%);clip-path:polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%)}}.form-control{display:flex;flex:1;min-width:50px;height:auto;padding:8px 10px;transition:border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;color:#555;border:1px solid #D7D7D7;border-radius:4px;background-color:#fff;background-image:none;box-shadow:none;font-size:14px;line-height:1.42857;appearance:none;-moz-appearance:none;-webkit-appearance:none}.form-control:not([readonly]):focus{border-color:#0595DB;outline:0;background-color:#fff;box-shadow:none}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{opacity:1;background-color:#EEEEEE}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}.form-control-lined{border:0;border-bottom:1px solid #D7D7D7;border-radius:0;background-color:transparent}.form-control-lined:focus{background-color:transparent}.form-control-static,.form-group div[class*='textBox']>.control-label,.form-group div[class*='textArea']>.control-label,.form-group div[class*='datePicker']>.control-label{overflow:hidden;flex:1;min-height:auto;padding:8px 10px;border-bottom:1px solid #F0F0EE;font-size:14px;line-height:1.42857}.form-control-static+.control-label,.form-group div[class*='textBox']>.control-label+.control-label,.form-group div[class*='textArea']>.control-label+.control-label,.form-group div[class*='datePicker']>.control-label+.control-label{margin-left:8px}select.form-control{padding-right:30px;background-image:url("data:image/svg+xml;utf8,");background-repeat:no-repeat;background-position:calc(100% - 10px) center;appearance:none;-moz-appearance:none;-webkit-appearance:none}.form-control.mx-selectbox{align-items:center;flex-direction:row-reverse;justify-content:space-between}.mx-textarea .control-label{height:auto}textarea.form-control{flex-basis:auto}.mx-compound-control{display:flex;flex:1;flex-wrap:wrap;max-width:100%}.mx-compound-control .mx-validation-message{flex-basis:100%;margin-top:5px}.form-group{display:flex;flex-direction:row;margin-bottom:15px}.form-group>div[class*='col-']{display:flex;align-items:center;flex-wrap:wrap}.form-group>[class*='col-']{padding-right:15px;padding-left:15px}.form-group .control-label{overflow:hidden;margin-bottom:5px;text-overflow:ellipsis;color:#666;font-size:14px;font-weight:600}.form-group .mx-validation-message{flex-basis:100%}.form-group.no-columns:not(.label-after){flex-direction:column}.form-group.label-after .form-control-static,.form-group.label-after div[class*='textBox']>.control-label,.form-group.label-after div[class*='textArea']>.control-label,.form-group.label-after div[class*='datePicker']>.control-label{flex:unset}.form-group.label-after .control-label{margin-bottom:0}.mx-dateinput,.mx-referenceselector,.mx-referencesetselector{flex:1}.dj_webkit.dj_ios .form-control{transform:translateZ(0)}@media only screen and (min-width: 768px){.form-horizontal .control-label{margin-bottom:0;padding-top:8px;padding-bottom:8px;line-height:1.42857}}@media only screen and (max-width: 767px){.form-group{flex-direction:column}}@media only screen and (max-device-width: 1024px) and (-webkit-min-device-pixel-ratio: 0){input[type='date'],input[type='time'],input[type='datetime-local'],input[type='month']{line-height:1}input[type='time']:not(.has-value):before,input[type='date']:not(.has-value):before,input[type='month']:not(.has-value):before,input[type='datetime-local']:not(.has-value):before{margin-right:0.5em;content:attr(placeholder) !important;color:#AAAAAA}input[type='time'].has-value:before,input[type='date'].has-value:before,input[type='month'].has-value:before,input[type='datetime-local'].has-value:before{content:'' !important}}@media (-ms-high-contrast: none), (-ms-high-contrast: active){.form-group{display:block}}[dir='rtl'] select.form-control{padding-right:30px;padding-left:0;background-position:10px center}.alert{margin-top:0;padding:15px;border:0;border-radius:4px}.alert-bordered{border:1px solid}.alert-success{color:#477901;border-color:#538d01;background-color:#e4f4cc}.alert-info{color:#2b6a94;border-color:#327bad;background-color:#daeffd}.alert-warning{color:#955d11;border-color:#ae6d14;background-color:#feebd2}.alert-danger{color:#8e1116;border-color:#a61419;background-color:#fbd2d3}.has-error .alert{margin-top:8px;margin-bottom:0}.background-main{background-color:#fff !important}.background-secondary{background-color:#F5F8FD !important}.background-default{background-color:#ddd !important}.background-default-darker{background-color:#858585 !important}.background-default-dark{background-color:#9b9b9b !important}.background-default-light{background-color:#ebebeb !important}.background-default-lighter{background-color:#f8f8f8 !important}.background-inverse{background-color:#252C36 !important}.background-inverse-darker{background-color:#161a20 !important}.background-inverse-dark{background-color:#1a1f26 !important}.background-inverse-light{background-color:#7c8086 !important}.background-inverse-lighter{background-color:#d3d5d7 !important}.background-primary{background-color:#0595DB !important}.background-primary-darker{background-color:#035983 !important}.background-primary-dark{background-color:#046899 !important}.background-primary-light{background-color:#69bfe9 !important}.background-primary-lighter{background-color:#cdeaf8 !important}.background-info{background-color:#48B0F7 !important}.background-info-darker{background-color:#2b6a94 !important}.background-info-dark{background-color:#327bad !important}.background-info-light{background-color:#91d0fa !important}.background-info-lighter{background-color:#daeffd !important}.background-success{background-color:#76CA02 !important}.background-success-darker{background-color:#477901 !important}.background-success-dark{background-color:#538d01 !important}.background-success-light{background-color:#addf67 !important}.background-success-lighter{background-color:#e4f4cc !important}.background-warning{background-color:#F99B1D !important}.background-warning-darker{background-color:#955d11 !important}.background-warning-dark{background-color:#ae6d14 !important}.background-warning-light{background-color:#fbc377 !important}.background-warning-lighter{background-color:#feebd2 !important}.background-danger{background-color:#ED1C24 !important}.background-danger-darker{background-color:#8e1116 !important}.background-danger-dark{background-color:#a61419 !important}.background-danger-light{background-color:#f4777c !important}.background-danger-lighter{background-color:#fbd2d3 !important}.background-brand-gradient{background-image:linear-gradient(152deg, #0CC7F0 0%, #087ECC 51%, #077AC9 55%, #0659B9 78%) !important}.btn,.mx-button{display:inline-block;margin-bottom:0;padding:0.6em 1em;cursor:pointer;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none;-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;text-align:center;vertical-align:middle;white-space:nowrap;color:#0595DB;border:1px solid #ddd;border-radius:4px;background-color:#fff;background-image:none;box-shadow:none;text-shadow:none;font-size:14px;line-height:1.42857}.btn:hover,.btn:focus,.btn:active,.btn:active:focus,.mx-button:hover,.mx-button:focus,.mx-button:active,.mx-button:active:focus{outline:none;box-shadow:none}.btn[aria-disabled],.mx-button[aria-disabled]{cursor:not-allowed;pointer-events:none;opacity:0.65;filter:alpha(opacity=65)}.mx-link{padding:0;color:#0595DB}.mx-link[aria-disabled='true']{cursor:not-allowed;pointer-events:none;opacity:0.65;filter:alpha(opacity=65)}.btn img,.mx-button img,.mx-link img{height:18px;margin-right:5px;vertical-align:text-top}.profile-phone .btn:active,.profile-phone .mx-link:active{-webkit-transform:translateY(1px);transform:translateY(1px)}.btn,.btn-default{color:#0595DB;border-color:#ddd;background-color:#fff}.btn:hover,.btn:focus,.btn:active,.btn.active,.open>.btn.dropdown-toggle,.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open>.btn-default.dropdown-toggle{color:#0595DB;border-color:#ddd;background-color:#ddd}.btn:active,.btn.active,.open>.btn.dropdown-toggle,.btn-default:active,.btn-default.active,.open>.btn-default.dropdown-toggle{background-image:none}.btn.disabled,.btn.disabled:hover,.btn.disabled:focus,.btn.disabled:active,.btn.disabled.active,.btn[disabled],.btn[disabled]:hover,.btn[disabled]:focus,.btn[disabled]:active,.btn[disabled].active,.btn[aria-disabled],.btn[aria-disabled]:hover,.btn[aria-disabled]:focus,.btn[aria-disabled]:active,.btn[aria-disabled].active,.btn fieldset[disabled],.btn fieldset[disabled]:hover,.btn fieldset[disabled]:focus,.btn fieldset[disabled]:active,.btn fieldset[disabled].active,.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,.btn-default[aria-disabled],.btn-default[aria-disabled]:hover,.btn-default[aria-disabled]:focus,.btn-default[aria-disabled]:active,.btn-default[aria-disabled].active,.btn-default fieldset[disabled],.btn-default fieldset[disabled]:hover,.btn-default fieldset[disabled]:focus,.btn-default fieldset[disabled]:active,.btn-default fieldset[disabled].active{border-color:#ddd;background-color:#fff}.btn.btn-bordered,.btn-default.btn-bordered{background-color:transparent}.btn.btn-bordered:hover,.btn.btn-bordered:focus,.btn.btn-bordered:active,.btn.btn-bordered.active,.open>.btn.btn-bordered.dropdown-toggle,.btn-default.btn-bordered:hover,.btn-default.btn-bordered:focus,.btn-default.btn-bordered:active,.btn-default.btn-bordered.active,.open>.btn-default.btn-bordered.dropdown-toggle{color:#0595DB;border-color:#ddd;background-color:#ddd}.btn.btn-link,.btn-default.btn-link{text-decoration:none;border-color:transparent;background-color:transparent}.btn.btn-link:hover,.btn-default.btn-link:hover{border-color:#eee;background-color:#eee}.btn-primary,.datagrid-fullsearch.mx-grid .mx-grid-search-button{color:#fff;border-color:#0595DB;background-color:#0595DB}.btn-primary:hover,.datagrid-fullsearch.mx-grid .mx-grid-search-button:hover,.btn-primary:focus,.datagrid-fullsearch.mx-grid .mx-grid-search-button:focus,.btn-primary:active,.datagrid-fullsearch.mx-grid .mx-grid-search-button:active,.btn-primary.active,.datagrid-fullsearch.mx-grid .active.mx-grid-search-button,.open>.btn-primary.dropdown-toggle,.datagrid-fullsearch.mx-grid .open>.dropdown-toggle.mx-grid-search-button{color:#fff;border-color:#0477af;background-color:#0477af}.btn-primary:active,.datagrid-fullsearch.mx-grid .mx-grid-search-button:active,.btn-primary.active,.datagrid-fullsearch.mx-grid .active.mx-grid-search-button,.open>.btn-primary.dropdown-toggle,.datagrid-fullsearch.mx-grid .open>.dropdown-toggle.mx-grid-search-button{background-image:none}.btn-primary.disabled,.datagrid-fullsearch.mx-grid .disabled.mx-grid-search-button,.btn-primary.disabled:hover,.datagrid-fullsearch.mx-grid .disabled.mx-grid-search-button:hover,.btn-primary.disabled:focus,.datagrid-fullsearch.mx-grid .disabled.mx-grid-search-button:focus,.btn-primary.disabled:active,.datagrid-fullsearch.mx-grid .disabled.mx-grid-search-button:active,.btn-primary.disabled.active,.datagrid-fullsearch.mx-grid .disabled.active.mx-grid-search-button,.btn-primary[disabled],.datagrid-fullsearch.mx-grid .mx-grid-search-button[disabled],.btn-primary[disabled]:hover,.datagrid-fullsearch.mx-grid .mx-grid-search-button[disabled]:hover,.btn-primary[disabled]:focus,.datagrid-fullsearch.mx-grid .mx-grid-search-button[disabled]:focus,.btn-primary[disabled]:active,.datagrid-fullsearch.mx-grid .mx-grid-search-button[disabled]:active,.btn-primary[disabled].active,.datagrid-fullsearch.mx-grid .mx-grid-search-button[disabled].active,.btn-primary[aria-disabled],.datagrid-fullsearch.mx-grid .mx-grid-search-button[aria-disabled],.btn-primary[aria-disabled]:hover,.datagrid-fullsearch.mx-grid .mx-grid-search-button[aria-disabled]:hover,.btn-primary[aria-disabled]:focus,.datagrid-fullsearch.mx-grid .mx-grid-search-button[aria-disabled]:focus,.btn-primary[aria-disabled]:active,.datagrid-fullsearch.mx-grid .mx-grid-search-button[aria-disabled]:active,.btn-primary[aria-disabled].active,.datagrid-fullsearch.mx-grid .mx-grid-search-button[aria-disabled].active,.btn-primary fieldset[disabled],.datagrid-fullsearch.mx-grid .mx-grid-search-button fieldset[disabled],.btn-primary fieldset[disabled]:hover,.datagrid-fullsearch.mx-grid .mx-grid-search-button fieldset[disabled]:hover,.btn-primary fieldset[disabled]:focus,.datagrid-fullsearch.mx-grid .mx-grid-search-button fieldset[disabled]:focus,.btn-primary fieldset[disabled]:active,.datagrid-fullsearch.mx-grid .mx-grid-search-button fieldset[disabled]:active,.btn-primary fieldset[disabled].active,.datagrid-fullsearch.mx-grid .mx-grid-search-button fieldset[disabled].active{border-color:#0595DB;background-color:#0595DB}.btn-primary.btn-bordered,.datagrid-fullsearch.mx-grid .btn-bordered.mx-grid-search-button{background-color:transparent;color:#0595DB}.btn-primary.btn-bordered:hover,.datagrid-fullsearch.mx-grid .btn-bordered.mx-grid-search-button:hover,.btn-primary.btn-bordered:focus,.datagrid-fullsearch.mx-grid .btn-bordered.mx-grid-search-button:focus,.btn-primary.btn-bordered:active,.datagrid-fullsearch.mx-grid .btn-bordered.mx-grid-search-button:active,.btn-primary.btn-bordered.active,.datagrid-fullsearch.mx-grid .btn-bordered.active.mx-grid-search-button,.open>.btn-primary.btn-bordered.dropdown-toggle,.datagrid-fullsearch.mx-grid .open>.btn-bordered.dropdown-toggle.mx-grid-search-button{color:#fff;border-color:#0595DB;background-color:#0595DB}.btn-primary.btn-link,.datagrid-fullsearch.mx-grid .btn-link.mx-grid-search-button{text-decoration:none;border-color:transparent;background-color:transparent;color:#0595DB}.btn-primary.btn-link:hover,.datagrid-fullsearch.mx-grid .btn-link.mx-grid-search-button:hover{border-color:#eee;background-color:#eee}.btn-inverse{color:#fff;border-color:#252C36;background-color:#252C36}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.open>.btn-inverse.dropdown-toggle{color:#fff;border-color:#51565e;background-color:#51565e}.btn-inverse:active,.btn-inverse.active,.open>.btn-inverse.dropdown-toggle{background-image:none}.btn-inverse.disabled,.btn-inverse.disabled:hover,.btn-inverse.disabled:focus,.btn-inverse.disabled:active,.btn-inverse.disabled.active,.btn-inverse[disabled],.btn-inverse[disabled]:hover,.btn-inverse[disabled]:focus,.btn-inverse[disabled]:active,.btn-inverse[disabled].active,.btn-inverse[aria-disabled],.btn-inverse[aria-disabled]:hover,.btn-inverse[aria-disabled]:focus,.btn-inverse[aria-disabled]:active,.btn-inverse[aria-disabled].active,.btn-inverse fieldset[disabled],.btn-inverse fieldset[disabled]:hover,.btn-inverse fieldset[disabled]:focus,.btn-inverse fieldset[disabled]:active,.btn-inverse fieldset[disabled].active{border-color:#252C36;background-color:#252C36}.btn-inverse.btn-bordered{background-color:transparent;color:#252C36}.btn-inverse.btn-bordered:hover,.btn-inverse.btn-bordered:focus,.btn-inverse.btn-bordered:active,.btn-inverse.btn-bordered.active,.open>.btn-inverse.btn-bordered.dropdown-toggle{color:#fff;border-color:#252C36;background-color:#252C36}.btn-inverse.btn-link{text-decoration:none;border-color:transparent;background-color:transparent;color:#252C36}.btn-inverse.btn-link:hover{border-color:#eee;background-color:#eee}.btn-success{color:#fff;border-color:#76CA02;background-color:#76CA02}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open>.btn-success.dropdown-toggle{color:#fff;border-color:#5ea202;background-color:#5ea202}.btn-success:active,.btn-success.active,.open>.btn-success.dropdown-toggle{background-image:none}.btn-success.disabled,.btn-success.disabled:hover,.btn-success.disabled:focus,.btn-success.disabled:active,.btn-success.disabled.active,.btn-success[disabled],.btn-success[disabled]:hover,.btn-success[disabled]:focus,.btn-success[disabled]:active,.btn-success[disabled].active,.btn-success[aria-disabled],.btn-success[aria-disabled]:hover,.btn-success[aria-disabled]:focus,.btn-success[aria-disabled]:active,.btn-success[aria-disabled].active,.btn-success fieldset[disabled],.btn-success fieldset[disabled]:hover,.btn-success fieldset[disabled]:focus,.btn-success fieldset[disabled]:active,.btn-success fieldset[disabled].active{border-color:#76CA02;background-color:#76CA02}.btn-success.btn-bordered{background-color:transparent;color:#76CA02}.btn-success.btn-bordered:hover,.btn-success.btn-bordered:focus,.btn-success.btn-bordered:active,.btn-success.btn-bordered.active,.open>.btn-success.btn-bordered.dropdown-toggle{color:#fff;border-color:#76CA02;background-color:#76CA02}.btn-success.btn-link{text-decoration:none;border-color:transparent;background-color:transparent;color:#76CA02}.btn-success.btn-link:hover{border-color:#eee;background-color:#eee}.btn-info{color:#fff;border-color:#48B0F7;background-color:#48B0F7}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open>.btn-info.dropdown-toggle{color:#fff;border-color:#3a8dc6;background-color:#3a8dc6}.btn-info:active,.btn-info.active,.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,.btn-info[aria-disabled],.btn-info[aria-disabled]:hover,.btn-info[aria-disabled]:focus,.btn-info[aria-disabled]:active,.btn-info[aria-disabled].active,.btn-info fieldset[disabled],.btn-info fieldset[disabled]:hover,.btn-info fieldset[disabled]:focus,.btn-info fieldset[disabled]:active,.btn-info fieldset[disabled].active{border-color:#48B0F7;background-color:#48B0F7}.btn-info.btn-bordered{background-color:transparent;color:#48B0F7}.btn-info.btn-bordered:hover,.btn-info.btn-bordered:focus,.btn-info.btn-bordered:active,.btn-info.btn-bordered.active,.open>.btn-info.btn-bordered.dropdown-toggle{color:#fff;border-color:#48B0F7;background-color:#48B0F7}.btn-info.btn-link{text-decoration:none;border-color:transparent;background-color:transparent;color:#48B0F7}.btn-info.btn-link:hover{border-color:#eee;background-color:#eee}.btn-warning{color:#fff;border-color:#F99B1D;background-color:#F99B1D}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open>.btn-warning.dropdown-toggle{color:#fff;border-color:#c77c17;background-color:#c77c17}.btn-warning:active,.btn-warning.active,.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,.btn-warning[aria-disabled],.btn-warning[aria-disabled]:hover,.btn-warning[aria-disabled]:focus,.btn-warning[aria-disabled]:active,.btn-warning[aria-disabled].active,.btn-warning fieldset[disabled],.btn-warning fieldset[disabled]:hover,.btn-warning fieldset[disabled]:focus,.btn-warning fieldset[disabled]:active,.btn-warning fieldset[disabled].active{border-color:#F99B1D;background-color:#F99B1D}.btn-warning.btn-bordered{background-color:transparent;color:#F99B1D}.btn-warning.btn-bordered:hover,.btn-warning.btn-bordered:focus,.btn-warning.btn-bordered:active,.btn-warning.btn-bordered.active,.open>.btn-warning.btn-bordered.dropdown-toggle{color:#fff;border-color:#F99B1D;background-color:#F99B1D}.btn-warning.btn-link{text-decoration:none;border-color:transparent;background-color:transparent;color:#F99B1D}.btn-warning.btn-link:hover{border-color:#eee;background-color:#eee}.btn-danger{color:#fff;border-color:#ED1C24;background-color:#ED1C24}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open>.btn-danger.dropdown-toggle{color:#fff;border-color:#be161d;background-color:#be161d}.btn-danger:active,.btn-danger.active,.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,.btn-danger[aria-disabled],.btn-danger[aria-disabled]:hover,.btn-danger[aria-disabled]:focus,.btn-danger[aria-disabled]:active,.btn-danger[aria-disabled].active,.btn-danger fieldset[disabled],.btn-danger fieldset[disabled]:hover,.btn-danger fieldset[disabled]:focus,.btn-danger fieldset[disabled]:active,.btn-danger fieldset[disabled].active{border-color:#ED1C24;background-color:#ED1C24}.btn-danger.btn-bordered{background-color:transparent;color:#ED1C24}.btn-danger.btn-bordered:hover,.btn-danger.btn-bordered:focus,.btn-danger.btn-bordered:active,.btn-danger.btn-bordered.active,.open>.btn-danger.btn-bordered.dropdown-toggle{color:#fff;border-color:#ED1C24;background-color:#ED1C24}.btn-danger.btn-link{text-decoration:none;border-color:transparent;background-color:transparent;color:#ED1C24}.btn-danger.btn-link:hover{border-color:#eee;background-color:#eee}.btn-lg{font-size:16px}.btn-lg img{height:calc(12px + 4px)}.btn-sm{font-size:12px}.btn-sm img{height:calc(12px + 4px)}.btn-image{padding:0;vertical-align:middle;border-style:none;background-color:transparent}.btn-image img{display:block;height:auto}.btn-image:hover,.btn-image:focus{background-color:transparent}.btn-icon>img,.btn-icon>.glyphicon{margin:0}.btn-icon-right>img,.btn-icon-right>.glyphicon{float:right;margin-left:5px}.btn-icon-top{padding-right:0;padding-left:0}.btn-icon-top>img,.btn-icon-top>.glyphicon{display:block;margin:0 0 5px 0}.mx-checkbox.label-after{flex-wrap:wrap}.mx-checkbox.label-after .control-label{padding:0}input[type="checkbox"]{position:relative !important;width:16px;height:16px;margin:0 !important;cursor:pointer;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;-webkit-user-select:none;user-select:none;appearance:none;-moz-appearance:none;-webkit-appearance:none}input[type='checkbox']::-ms-check{color:#D7D7D7;border-color:#D7D7D7;border-radius:4px;background-color:#fff}input[type='checkbox']:focus::-ms-check,input[type='checkbox']:checked::-ms-check{color:#0595DB;border-color:#0595DB;background-color:#fff}input[type='checkbox']:before,input[type='checkbox']:after{position:absolute;display:block;transition:all 0.3s ease}input[type='checkbox']:before{width:100%;height:100%;content:'';border:1px solid #D7D7D7;border-radius:4px;background-color:transparent}input[type='checkbox']:after{width:8px;height:4px;margin:5px 4px;transform:rotate(-45deg);pointer-events:none;border:2px solid #FFFFFF;border-top:0;border-right:0}input[type='checkbox']:not(:disabled):not(:checked):hover:after{content:'';border-color:#D7D7D7}input[type='checkbox']:checked:before{border-color:#0595DB;background-color:#0595DB}input[type='checkbox']:checked:after{content:''}input[type='checkbox']:disabled:before{background-color:#eee}input[type='checkbox']:checked:disabled:before{border-color:transparent;background-color:rgba(5,149,219,0.4)}input[type='checkbox']:disabled:after,input[type='checkbox']:checked:disabled:after{border-color:#eee}input[type='checkbox']+.control-label{margin-left:8px}.mx-grid{padding:0px;border:0;border-radius:0}.mx-grid .mx-grid-controlbar{margin:10px 0}.mx-grid .mx-grid-controlbar .mx-grid-pagingbar .mx-button{padding:6px;color:#888;border-color:rgba(0,0,0,0);background-color:rgba(0,0,0,0)}.mx-grid .mx-grid-controlbar .mx-grid-pagingbar .mx-button:hover{color:#0595DB;border-color:rgba(0,0,0,0);background-color:rgba(0,0,0,0)}.mx-grid .mx-grid-controlbar .mx-grid-pagingbar .mx-grid-paging-status{padding:0 8px 8px}.mx-grid .mx-grid-searchbar{margin:10px 0}.mx-grid .mx-grid-searchbar .mx-grid-search-item .mx-grid-search-label{vertical-align:middle}.mx-grid .mx-grid-searchbar .mx-grid-search-item .mx-grid-search-label label{padding-top:5px}.mx-grid .mx-grid-searchbar .mx-grid-search-item .mx-grid-search-input{display:inline-flex}.mx-grid .mx-grid-searchbar .mx-grid-search-item .mx-grid-search-input .form-control{height:28px;font-size:11px}.mx-grid .mx-grid-searchbar .mx-grid-search-item .mx-grid-search-input select.form-control{padding:3px;vertical-align:middle}.mx-grid .mx-grid-searchbar .mx-grid-search-item .mx-grid-search-input .mx-button{height:28px;padding-top:2px;padding-bottom:2px}.mx-dataview .mx-grid{border:0}.mx-datagrid table{border-width:0;background-color:transparent}.mx-datagrid table th{border-style:solid;border-color:#D7D7D7;border-top-width:0;border-right:0;border-bottom-width:1px;border-left:0;background-color:rgba(0,0,0,0);padding:15px 15px 15px 15px;vertical-align:middle}.mx-datagrid table th .mx-datagrid-head-caption{white-space:normal}.mx-datagrid table tbody tr td{-webkit-transition:all .3s 0s cubic-bezier(0.4, 0, 0.2, 1);-moz-transition:all .3s 0s cubic-bezier(0.4, 0, 0.2, 1);-o-transition:all .3s 0s cubic-bezier(0.4, 0, 0.2, 1);transition:all .3s 0s cubic-bezier(0.4, 0, 0.2, 1);transform-style:initial;padding:15px 15px 15px 15px;vertical-align:middle;border-width:0;border-color:#D7D7D7;border-bottom-width:1px;border-bottom-style:solid;background-color:#fff}.mx-datagrid table tbody tr td:focus{outline:none}.mx-datagrid table tbody tr td .mx-datagrid-data-wrapper{text-overflow:ellipsis}.mx-datagrid table tbody tr.selected td,.mx-datagrid table tbody tr.selected:hover td{color:#555;background-color:#f3f3f3 !important}.mx-datagrid table tfoot>tr>th{padding:15px 15px 15px 15px;border-width:0;background-color:#D7D7D7}.mx-datagrid table tfoot>tr>td{padding:15px 15px 15px 15px;border-width:0;background-color:#fff;font-weight:bold}.mx-datagrid table *:focus{outline:0}.datagrid-striped.mx-datagrid table th{border-width:0}.datagrid-striped.mx-datagrid table tbody tr td{border-top-width:0}.datagrid-striped.mx-datagrid table tbody tr:nth-child(odd) td{background-color:#fbfbfb}.datagrid-bordered.mx-datagrid table{border:1px solid}.datagrid-bordered.mx-datagrid table th{border:1px solid #D7D7D7}.datagrid-bordered.mx-datagrid table tbody tr td{border:1px solid #D7D7D7}.datagrid-bordered.mx-datagrid tfoot>tr>th{border-width:0;background-color:#D7D7D7}.datagrid-bordered.mx-datagrid tfoot>tr>td{border-width:1px}.datagrid-transparent.mx-datagrid table{background-color:transparent}.datagrid-transparent.mx-datagrid table tbody tr:nth-of-type(odd){background-color:transparent}.datagrid-transparent.mx-datagrid table tbody tr td{background-color:transparent}.datagrid-hover.mx-datagrid table tbody tr:hover td{background-color:#f7f7f7 !important}.datagrid-hover.mx-datagrid table tbody tr.selected:hover td{background-color:#ebebeb !important}.datagrid-lg.mx-datagrid table th{padding:30px 30px 30px 30px}.datagrid-lg.mx-datagrid table tbody tr td{padding:30px 30px 30px 30px}.datagrid-sm.mx-datagrid table th{padding:7.5px 7.5px 7.5px 7.5px}.datagrid-sm.mx-datagrid table tbody tr td{padding:7.5px 7.5px 7.5px 7.5px}.datagrid-fullsearch.mx-grid .mx-grid-reset-button{display:none}.datagrid-fullsearch.mx-grid .mx-grid-search-item{display:block}.datagrid-fullsearch.mx-grid .mx-grid-search-label{display:none}.datagrid-fullsearch.mx-grid .mx-grid-searchbar .mx-grid-search-controls{position:absolute;right:0}.datagrid-fullsearch.mx-grid .mx-grid-searchbar .mx-grid-search-input{width:80%;padding-left:0}.datagrid-fullsearch.mx-grid .mx-grid-searchbar .mx-grid-search-input .btn,.datagrid-fullsearch.mx-grid .mx-grid-searchbar .mx-grid-search-input .form-control{height:35px;font-size:12px}.mx-dataview .mx-dataview-controls{clear:both;margin-top:10px;padding:8px 0;border-top:1px solid #D7D7D7;border-radius:0;background-color:rgba(0,0,0,0)}.mx-dataview .mx-dataview-controls .mx-button{margin-right:0.3em;margin-bottom:0}.mx-dataview .mx-dataview-controls .mx-button:last-child{margin-right:0}.mx-dataview>.mx-dataview-content>.mx-container-nested>.row{margin-right:0;margin-left:0}.mx-dataview .mx-dataview-message{color:#555;background:#fff}.mx-calendar{z-index:10010 !important;padding:10px;font-size:12px;background:#fff;border-radius:4px;border:1px solid #D7D7D7;box-shadow:0 2px 10px 0 rgba(0,0,0,0.06)}.mx-calendar .mx-calendar-month-header{display:flex;flex-direction:row;justify-content:space-between;margin:0 3px 10px 3px}.mx-calendar .mx-calendar-month-next,.mx-calendar .mx-calendar-month-previous,.mx-calendar .mx-calendar-month-dropdown{border:0;cursor:pointer;background:transparent}.mx-calendar .mx-calendar-month-next:hover,.mx-calendar .mx-calendar-month-previous:hover{color:#0595DB}.mx-calendar .mx-calendar-month-dropdown{display:flex;align-items:center;justify-content:center;position:relative}.mx-calendar .mx-calendar-month-dropdown .mx-calendar-month-current:first-child{margin-right:10px}.mx-calendar th{color:#0595DB}.mx-calendar th,.mx-calendar td{width:35px;height:35px;text-align:center}.mx-calendar td{color:#555}.mx-calendar td:hover{cursor:pointer;border-radius:50%;color:#0595DB;background-color:#ddd}.mx-calendar .mx-calendar-day-month-next,.mx-calendar .mx-calendar-day-month-previous{color:#c8c8c8}.mx-calendar .mx-calendar-day-selected,.mx-calendar .mx-calendar-day-selected:hover{color:#fff;border-radius:50%;background:#0595DB}.mx-calendar .mx-calendar-year-switcher{text-align:center;margin-top:10px;color:#7dd2fc}.mx-calendar .mx-calendar-year-switcher span.mx-calendar-year-selected{color:#0595DB;margin-left:10px;margin-right:10px}.mx-calendar .mx-calendar-year-switcher span:hover{cursor:pointer;text-decoration:underline;background-color:transparent}.mx-calendar-month-dropdown-options{z-index:10020 !important;position:absolute;top:25px;padding:2px 10px;border-radius:4px;background-color:#fff}.mx-calendar-month-dropdown-options div{cursor:pointer;font-size:12px;padding:2px 0}.mx-calendar-month-dropdown-options div:hover,.mx-calendar-month-dropdown-options div:focus{color:#0595DB}.mx-header{z-index:100;display:flex;width:100%;height:45px;padding:0;text-align:initial;color:#555;border-bottom:1px solid #D7D7D7;background-color:#fff;box-shadow:0 1px 4px 0 rgba(0,0,0,0.14)}.mx-header div.mx-header-left,.mx-header div.mx-header-right{position:relative;top:initial;right:initial;left:initial;display:flex;align-items:center;width:25%;height:100%}.mx-header div.mx-header-left .mx-placeholder,.mx-header div.mx-header-right .mx-placeholder{display:flex;align-items:center;height:100%}.mx-header div.mx-header-left .mx-placeholder{order:1}.mx-header div.mx-header-left .mx-placeholder .mx-placeholder{justify-content:flex-start}.mx-header div.mx-header-center{overflow:hidden;flex:1;order:2;text-align:center}.mx-header div.mx-header-center .mx-title{overflow:hidden;width:100%;margin:0;text-overflow:ellipsis;color:#555;font-size:17px;line-height:45px}.mx-header div.mx-header-right{order:3}.mx-header div.mx-header-right .mx-placeholder{justify-content:flex-end}.mx-header .mx-link{display:flex;align-items:center;height:100%;-webkit-transition:all 0.2s;-moz-transition:all 0.2s;transition:all 0.2s;text-decoration:none}.mx-header .mx-link .glyphicon{top:0;font-size:23px}.mx-header .mx-link:active{-webkit-transform:translateY(1px);transform:translateY(1px);color:#036290}.mx-header .mx-link,.mx-header .btn,.mx-header img{padding:0 8px}.mx-header .mx-sidebartoggle{font-size:24px;line-height:45px}.mx-header .mx-sidebartoggle img{height:20px}body[dir='rtl'] .mx-header-left{order:3}body[dir='rtl'] .mx-header-right{order:1}.mx-glyphicon:before{display:inline-block;margin-top:-0.2em;margin-right:0.4555555em;vertical-align:middle;font-family:"Glyphicons Halflings";font-weight:normal;font-style:normal;line-height:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.mx-groupbox{margin:0}.mx-groupbox>.mx-groupbox-header{margin:0;color:#555;border-width:1px 1px 0 1px;border-style:solid;border-color:#ddd;background:#ddd;font-size:14px}.mx-groupbox>.mx-groupbox-header .mx-groupbox-collapse-icon{margin-top:0.1em}.mx-groupbox>.mx-groupbox-body{padding:10px 15px;border-width:1px;border-style:solid;border-color:#ddd;background-color:#FFFFFF}.mx-groupbox .mx-groupbox-header+.mx-groupbox-body{border-top:none}.groupbox-default>.mx-groupbox-header{color:#555;border-color:#ddd;background:#ddd}.groupbox-default>.mx-groupbox-body{border-color:#ddd}.groupbox-primary>.mx-groupbox-header{color:#fff;border-color:#0595DB;background:#0595DB}.groupbox-primary>.mx-groupbox-body{border-color:#0595DB}.groupbox-inverse>.mx-groupbox-header{color:#fff;border-color:#252C36;background:#252C36}.groupbox-inverse>.mx-groupbox-body{border-color:#252C36}.groupbox-success>.mx-groupbox-header{color:#fff;border-color:#76CA02;background:#76CA02}.groupbox-success>.mx-groupbox-body{border-color:#76CA02}.groupbox-info>.mx-groupbox-header{color:#fff;border-color:#48B0F7;background:#48B0F7}.groupbox-info>.mx-groupbox-body{border-color:#48B0F7}.groupbox-warning>.mx-groupbox-header{color:#fff;border-color:#F99B1D;background:#F99B1D}.groupbox-warning>.mx-groupbox-body{border-color:#F99B1D}.groupbox-danger>.mx-groupbox-header{color:#fff;border-color:#ED1C24;background:#ED1C24}.groupbox-danger>.mx-groupbox-body{border-color:#ED1C24}.groupbox-white>.mx-groupbox-header{color:#555;border-color:#fff;background:#fff}.groupbox-white>.mx-groupbox-body{border-color:#fff}.groupbox-transparent{border-bottom:1px solid #D7D7D7}.groupbox-transparent>.mx-groupbox-header{padding:15px 0;color:#222;border-style:none;background:transparent;font-size:16px;font-weight:600}.groupbox-transparent .mx-groupbox-body{padding:15px 0;border-style:none;background-color:transparent}.groupbox-transparent .mx-groupbox-collapse-icon{color:#0595DB}.groupbox-h1>.mx-groupbox-header{font-size:31px}.groupbox-h2>.mx-groupbox-header{font-size:26px}.groupbox-h3>.mx-groupbox-header{font-size:24px}.groupbox-h4>.mx-groupbox-header{font-size:18px}.groupbox-h5>.mx-groupbox-header{font-size:14px}.groupbox-h6>.mx-groupbox-header{font-size:12px}.groupbox-callout>.mx-groupbox-header,.groupbox-callout>.mx-groupbox-body{border:0;background-color:#daeffd}.groupbox-callout .mx-groupbox-header+.mx-groupbox-body{padding-top:0}.groupbox-info.groupbox-callout>.mx-groupbox-header,.groupbox-info.groupbox-callout>.mx-groupbox-body{background-color:#daeffd}.groupbox-info.groupbox-callout>.mx-groupbox-header{color:#48B0F7}.groupbox-success.groupbox-callout>.mx-groupbox-header,.groupbox-success.groupbox-callout>.mx-groupbox-body{background-color:#e4f4cc}.groupbox-success.groupbox-callout>.mx-groupbox-header{color:#76CA02}.groupbox-warning.groupbox-callout>.mx-groupbox-header,.groupbox-warning.groupbox-callout>.mx-groupbox-body{background-color:#feebd2}.groupbox-warning.groupbox-callout>.mx-groupbox-header{color:#F99B1D}.groupbox-danger.groupbox-callout>.mx-groupbox-header,.groupbox-danger.groupbox-callout>.mx-groupbox-body{background-color:#fbd2d3}.groupbox-danger.groupbox-callout>.mx-groupbox-header{color:#ED1C24}img.img-rounded,.img-rounded img{border-radius:6px}img.img-thumbnail,.img-thumbnail img{display:inline-block;max-width:100%;height:auto;padding:4px;-webkit-transition:all 0.2s ease-in-out;-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;border:1px solid #ddd;border-radius:4px;background-color:#FFFFFF;line-height:1.42857}img.img-circle,.img-circle img{border-radius:50%}img.img-auto,.img-auto img{width:auto !important;max-width:100% !important;height:auto !important;max-height:100% !important}img.img-center,.img-center img{margin-right:auto !important;margin-left:auto !important}.label{display:inline-block;padding:0.2em 0.6em 0.3em;text-align:center;vertical-align:baseline;white-space:nowrap;color:#ffffff;border-radius:0.25em;font-size:100%;line-height:1;margin:0}.label .form-control-static,.label .form-group div[class*='textBox']>.control-label,.form-group .label div[class*='textBox']>.control-label,.label .form-group div[class*='textArea']>.control-label,.form-group .label div[class*='textArea']>.control-label,.label .form-group div[class*='datePicker']>.control-label,.form-group .label div[class*='datePicker']>.control-label{all:unset;font-weight:normal}.label-default{color:#555;background-color:#ddd}.label-primary{color:#fff;background-color:#0595DB}.label-success{color:#fff;background-color:#76CA02}.label-inverse{color:#fff;background-color:#252C36}.label-info{color:#fff;background-color:#48B0F7}.label-warning{color:#fff;background-color:#F99B1D}.label-danger{color:#fff;background-color:#ED1C24}.mx-listview{padding:0}.mx-listview .mx-listview-searchbar{margin-bottom:15px}.mx-listview .mx-listview-searchbar .btn{width:auto}.mx-listview>.btn{width:100%;margin:10px auto}.mx-listview>ul{margin:0}.mx-listview>ul .mx-listview-empty{border-style:none;background-color:transparent}.mx-listview>ul>li{-webkit-transition:all .3s 0s cubic-bezier(0.4, 0, 0.2, 1);-moz-transition:all .3s 0s cubic-bezier(0.4, 0, 0.2, 1);-o-transition:all .3s 0s cubic-bezier(0.4, 0, 0.2, 1);transition:all .3s 0s cubic-bezier(0.4, 0, 0.2, 1);transform-style:initial;padding:15px 15px 15px 15px;border-width:1px 0 0 0;border-style:solid;border-color:#D7D7D7;background-color:#fff}.mx-listview>ul>li:first-child{border-radius:0}.mx-listview>ul>li:last-child{border-bottom:1px solid #D7D7D7;border-radius:0}.mx-listview>ul>li:focus,.mx-listview>ul>li:active{outline:0;background-color:#f7f7f7}.mx-listview>ul>li.selected{background-color:#f3f3f3}.mx-listview .mx-layoutgrid{padding-top:0 !important;padding-bottom:0 !important}.profile-phone .mx-listview .mx-listview-searchbar{margin-bottom:3px;background:#FFFFFF;box-shadow:0 1px 4px 0 rgba(0,0,0,0.14)}.profile-phone .mx-listview .mx-listview-searchbar input{padding:14px 15px;color:#555555;border-style:none;border-radius:0;box-shadow:none}.profile-phone .mx-listview .mx-listview-searchbar .btn{padding:14px 15px;color:inherit;border-style:none}.profile-phone .mx-listview>ul>li:first-child{border-top:none}.listview-bordered.mx-listview>ul>li{border:1px solid #D7D7D7;border-top:0}.listview-bordered.mx-listview>ul>li:first-child{border-top:1px solid #D7D7D7;border-radius:0}.listview-bordered.mx-listview>ul>li:last-child{border-radius:0}.listview-striped.mx-listview>ul>li:nth-child(2n+1){background-color:#fbfbfb}.listview-seperated.mx-listview>ul>li{margin-bottom:15px;border-width:1px;border-style:solid;border-radius:4px}.listview-stylingless.mx-listview>ul>li{padding:0;cursor:default;border:0;background-color:transparent}.listview-stylingless.mx-listview>ul>li:hover,.listview-stylingless.mx-listview>ul>li:focus,.listview-stylingless.mx-listview>ul>li:active{background-color:transparent}.listview-stylingless.mx-listview>ul>li.selected{background-color:transparent !important}.listview-stylingless.mx-listview>ul>li.selected:hover,.listview-stylingless.mx-listview>ul>li.selected:focus,.listview-stylingless.mx-listview>ul>li.selected:active{background-color:transparent !important}.listview-hover.mx-listview>ul>li:hover,.listview-hover.mx-listview>ul>li:focus,.listview-hover.mx-listview>ul>li:active{background-color:#f7f7f7 !important}.listview-hover.mx-listview>ul>li.selected:hover,.listview-hover.mx-listview>ul>li.selected:focus,.listview-hover.mx-listview>ul>li.selected:active{background-color:#ebebeb !important}.listview-lg.mx-listview>ul>li{padding:30px 30px 30px 30px}.listview-sm.mx-listview>ul>li{padding:7.5px 7.5px 7.5px 7.5px}.mx-listview[class*='lv-col']{overflow:hidden}.mx-listview[class*='lv-col']>ul{display:block;margin-right:-15px;margin-left:-15px}.mx-listview[class*='lv-col']>ul::before,.mx-listview[class*='lv-col']>ul::after{display:table;clear:both;content:' '}.mx-listview[class*='lv-col']>ul>li{position:relative;display:block;float:left;min-height:1px;padding-right:15px;padding-left:15px;border:0}@media (max-width: 991px){.mx-listview[class*='lv-col']>ul>li{width:100% !important}}.mx-listview[class*='lv-col']>ul>li>.mx-dataview{overflow:hidden}.mx-listview[class*='lv-col'].lv-col-xs-12>ul>li{width:100% !important}.mx-listview[class*='lv-col'].lv-col-xs-11>ul>li{width:91.66666667% !important}.mx-listview[class*='lv-col'].lv-col-xs-10>ul>li{width:83.33333333% !important}.mx-listview[class*='lv-col'].lv-col-xs-9>ul>li{width:75% !important}.mx-listview[class*='lv-col'].lv-col-xs-8>ul>li{width:66.66666667% !important}.mx-listview[class*='lv-col'].lv-col-xs-7>ul>li{width:58.33333333% !important}.mx-listview[class*='lv-col'].lv-col-xs-6>ul>li{width:50% !important}.mx-listview[class*='lv-col'].lv-col-xs-5>ul>li{width:41.66666667% !important}.mx-listview[class*='lv-col'].lv-col-xs-4>ul>li{width:33.33333333% !important}.mx-listview[class*='lv-col'].lv-col-xs-3>ul>li{width:25% !important}.mx-listview[class*='lv-col'].lv-col-xs-2>ul>li{width:16.66666667% !important}.mx-listview[class*='lv-col'].lv-col-xs-1>ul>li{width:8.33333333% !important}@media (min-width: 768px){.mx-listview[class*='lv-col'].lv-col-sm-12>ul>li{width:100% !important}.mx-listview[class*='lv-col'].lv-col-sm-11>ul>li{width:91.66666667% !important}.mx-listview[class*='lv-col'].lv-col-sm-10>ul>li{width:83.33333333% !important}.mx-listview[class*='lv-col'].lv-col-sm-9>ul>li{width:75% !important}.mx-listview[class*='lv-col'].lv-col-sm-8>ul>li{width:66.66666667% !important}.mx-listview[class*='lv-col'].lv-col-sm-7>ul>li{width:58.33333333% !important}.mx-listview[class*='lv-col'].lv-col-sm-6>ul>li{width:50% !important}.mx-listview[class*='lv-col'].lv-col-sm-5>ul>li{width:41.66666667% !important}.mx-listview[class*='lv-col'].lv-col-sm-4>ul>li{width:33.33333333% !important}.mx-listview[class*='lv-col'].lv-col-sm-3>ul>li{width:25% !important}.mx-listview[class*='lv-col'].lv-col-sm-2>ul>li{width:16.66666667% !important}.mx-listview[class*='lv-col'].lv-col-sm-1>ul>li{width:8.33333333% !important}}@media (min-width: 992px){.mx-listview[class*='lv-col'].lv-col-md-12>ul>li{width:100% !important}.mx-listview[class*='lv-col'].lv-col-md-11>ul>li{width:91.66666667% !important}.mx-listview[class*='lv-col'].lv-col-md-10>ul>li{width:83.33333333% !important}.mx-listview[class*='lv-col'].lv-col-md-9>ul>li{width:75% !important}.mx-listview[class*='lv-col'].lv-col-md-8>ul>li{width:66.66666667% !important}.mx-listview[class*='lv-col'].lv-col-md-7>ul>li{width:58.33333333% !important}.mx-listview[class*='lv-col'].lv-col-md-6>ul>li{width:50% !important}.mx-listview[class*='lv-col'].lv-col-md-5>ul>li{width:41.66666667% !important}.mx-listview[class*='lv-col'].lv-col-md-4>ul>li{width:33.33333333% !important}.mx-listview[class*='lv-col'].lv-col-md-3>ul>li{width:25% !important}.mx-listview[class*='lv-col'].lv-col-md-2>ul>li{width:16.66666667% !important}.mx-listview[class*='lv-col'].lv-col-md-1>ul>li{width:16.66666667% !important}}@media (min-width: 1200px){.mx-listview[class*='lv-col'].lv-col-lg-12>ul>li{width:100% !important}.mx-listview[class*='lv-col'].lv-col-lg-11>ul>li{width:91.66666667% !important}.mx-listview[class*='lv-col'].lv-col-lg-10>ul>li{width:83.33333333% !important}.mx-listview[class*='lv-col'].lv-col-lg-9>ul>li{width:75% !important}.mx-listview[class*='lv-col'].lv-col-lg-8>ul>li{width:66.66666667% !important}.mx-listview[class*='lv-col'].lv-col-lg-7>ul>li{width:58.33333333% !important}.mx-listview[class*='lv-col'].lv-col-lg-6>ul>li{width:50% !important}.mx-listview[class*='lv-col'].lv-col-lg-5>ul>li{width:41.66666667% !important}.mx-listview[class*='lv-col'].lv-col-lg-4>ul>li{width:33.33333333% !important}.mx-listview[class*='lv-col'].lv-col-lg-3>ul>li{width:25% !important}.mx-listview[class*='lv-col'].lv-col-lg-2>ul>li{width:16.66666667% !important}.mx-listview[class*='lv-col'].lv-col-lg-1>ul>li{width:8.33333333% !important}}.modal-dialog .modal-content{border:1px solid #D7D7D7;border-radius:4px;box-shadow:0 2px 4px rgba(0,0,0,0.2)}.modal-dialog .modal-content .modal-header{padding:15px 20px;border-bottom-color:#D7D7D7;border-radius:0;background-color:rgba(0,0,0,0)}.modal-dialog .modal-content .modal-header h4{margin:0;color:#555;font-size:16px;font-weight:bold}.modal-dialog .modal-content .modal-header .close{margin-top:-3px;opacity:1;color:#555;text-shadow:none;filter:alpha(opacity=100)}.modal-dialog .modal-content .modal-body{padding:20px}.modal-dialog .modal-content .modal-footer{display:flex;justify-content:flex-end;margin-top:0;padding:20px;border-style:none}.mx-window.mx-window-view .mx-window-body{overflow:hidden;padding:0}.mx-window.mx-window-view .mx-window-body>.mx-dataview>.mx-dataview-content,.mx-window.mx-window-view .mx-window-body>.mx-placeholder>.mx-dataview>.mx-dataview-content{padding:20px}.mx-window.mx-window-view .mx-window-body>.mx-dataview>.mx-dataview-controls,.mx-window.mx-window-view .mx-window-body>.mx-placeholder>.mx-dataview>.mx-dataview-controls{display:flex;justify-content:flex-end;margin:0;padding:20px;text-align:left;border-top:1px solid #D7D7D7}.mx-window .mx-dataview-controls{padding-bottom:0}.mx-window .mx-layoutgrid{padding-right:0;padding-left:0}.mx-login .modal-body{padding:0 15px}.mx-login .modal-content input{height:56px;padding:12px 12px;border:1px solid #EEEEEE;background:#EEEEEE;box-shadow:none;font-size:16px}.mx-login .modal-content input:focus{border-color:#66AFE9}.mx-login .modal-header,.mx-login .modal-footer{border:0}.mx-login button{font-size:16px}.mx-login h4{color:#AAAAAA;font-size:20px;font-weight:bold}.mx-navbar{margin:0;border-style:none;border-radius:0;background-color:#252C36}.mx-navbar ul.nav{margin:0}.mx-navbar ul.nav>li.mx-navbar-item>a{display:flex;align-items:center;min-height:60px;padding:5px 15px;vertical-align:middle;color:#fff;border-radius:0;font-size:14px;font-weight:normal}.mx-navbar ul.nav>li.mx-navbar-item>a .caret{border-top-color:#fff;border-bottom-color:#fff}.mx-navbar ul.nav>li.mx-navbar-item>a:hover,.mx-navbar ul.nav>li.mx-navbar-item>a:focus,.mx-navbar ul.nav>li.mx-navbar-item>a.active{text-decoration:none;color:#fff;background-color:#2d3642}.mx-navbar ul.nav>li.mx-navbar-item>a:hover .caret,.mx-navbar ul.nav>li.mx-navbar-item>a:focus .caret,.mx-navbar ul.nav>li.mx-navbar-item>a.active .caret{border-top-color:#fff;border-bottom-color:#fff}.mx-navbar ul.nav>li.mx-navbar-item>a.active{color:#fff;background-color:#36404e}.mx-navbar ul.nav>li.mx-navbar-item>a .mx-navbar-submenu::before{position:absolute;top:-9px;left:15px;width:0;height:0;content:'';-webkit-transform:rotate(360deg);transform:rotate(360deg);border-width:0 9px 9px 9px;border-style:solid;border-color:transparent transparent #2d3642 transparent}.mx-navbar ul.nav>li.mx-navbar-item>a img{width:20px;height:auto;margin-right:0.5em}.mx-navbar ul.nav>li.mx-navbar-item>a .glyphicon{top:0;margin-right:0.5em;vertical-align:middle;font-size:20px}.mx-navbar ul.nav>.mx-navbar-item.active a{color:#fff}.mx-navbar ul.nav>.mx-navbar-item>a:hover,.mx-navbar ul.nav>.mx-navbar-item>a:focus,.mx-navbar ul.nav>.mx-navbar-item.open>a,.mx-navbar ul.nav>.mx-navbar-item.open>a:hover,.mx-navbar ul.nav>.mx-navbar-item.open>a:focus{text-decoration:none;color:#fff;background-color:#2d3642}.mx-navbar ul.nav>.mx-navbar-item>a:hover .caret,.mx-navbar ul.nav>.mx-navbar-item>a:focus .caret,.mx-navbar ul.nav>.mx-navbar-item.open>a .caret,.mx-navbar ul.nav>.mx-navbar-item.open>a:hover .caret,.mx-navbar ul.nav>.mx-navbar-item.open>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.mx-navbar ul.nav>.mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem.active a{color:#0595DB;background-color:#1d222a}.mx-navbar ul.nav>.mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem.active a .caret{border-top-color:#0595DB;border-bottom-color:#0595DB}@media (max-width: 768px){.mx-navbar ul.nav>li.mx-navbar-item>a{padding:10px 20px}.mx-navbar .mx-navbar-item.open .dropdown-menu{padding:0;border-radius:0;background-color:#1d222a}.mx-navbar .mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem>a{padding:10px 20px;color:#AAA;border-radius:0;font-size:12px;font-weight:normal}.mx-navbar .mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem>a:hover,.mx-navbar .mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem>a:focus{color:#0595DB;background-color:#1d222a}.mx-navbar .mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem>a.active{color:#0595DB;background-color:#1d222a}}.mx-navbar:focus{outline:0}.region-topbar .mx-navbar{background-color:#fff}.region-topbar .mx-navbar ul.nav>li.mx-navbar-item>a{color:#555;font-size:14px}.region-topbar .mx-navbar ul.nav>li.mx-navbar-item>a .caret{border-top-color:#555;border-bottom-color:#555}.region-topbar .mx-navbar ul.nav>li.mx-navbar-item>a:hover,.region-topbar .mx-navbar ul.nav>li.mx-navbar-item>a:focus,.region-topbar .mx-navbar ul.nav>li.mx-navbar-item>a.active{color:#555;background-color:#f5f5f5}.region-topbar .mx-navbar ul.nav>li.mx-navbar-item>a:hover .caret,.region-topbar .mx-navbar ul.nav>li.mx-navbar-item>a:focus .caret,.region-topbar .mx-navbar ul.nav>li.mx-navbar-item>a.active .caret{border-top-color:#555;border-bottom-color:#555}.region-topbar .mx-navbar ul.nav>li.mx-navbar-item>a.active{color:#555;background-color:#ebebeb}.region-topbar .mx-navbar ul.nav>li.mx-navbar-item>a .mx-navbar-submenu::before{border-color:transparent transparent #D7D7D7 transparent}.region-topbar .mx-navbar ul.nav>li.mx-navbar-item>a .glyphicon{font-size:1.2em}.region-topbar .mx-navbar ul.nav>.mx-navbar-item>a:hover,.region-topbar .mx-navbar ul.nav>.mx-navbar-item>a:focus,.region-topbar .mx-navbar ul.nav>.mx-navbar-item.active a,.region-topbar .mx-navbar ul.nav>.mx-navbar-item.open>a,.region-topbar .mx-navbar ul.nav>.mx-navbar-item.open>a:hover,.region-topbar .mx-navbar ul.nav>.mx-navbar-item.open>a:focus{color:#555;background-color:#f5f5f5}.region-topbar .mx-navbar ul.nav>.mx-navbar-item>a:hover .caret,.region-topbar .mx-navbar ul.nav>.mx-navbar-item>a:focus .caret,.region-topbar .mx-navbar ul.nav>.mx-navbar-item.active a .caret,.region-topbar .mx-navbar ul.nav>.mx-navbar-item.open>a .caret,.region-topbar .mx-navbar ul.nav>.mx-navbar-item.open>a:hover .caret,.region-topbar .mx-navbar ul.nav>.mx-navbar-item.open>a:focus .caret{border-top-color:#555;border-bottom-color:#555}.region-topbar .mx-navbar ul.nav>.mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem.active a{color:#0595DB;background-color:#fff}.region-topbar .mx-navbar ul.nav>.mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem.active a .caret{border-top-color:#0595DB;border-bottom-color:#0595DB}@media (max-width: 768px){.region-topbar .mx-navbar .mx-navbar-item.open .dropdown-menu{background-color:#fff}.region-topbar .mx-navbar .mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem>a{color:#AAA;font-size:12px}.region-topbar .mx-navbar .mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem>a:hover,.region-topbar .mx-navbar .mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem>a:focus{color:#0595DB;background-color:#fff}.region-topbar .mx-navbar .mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem>a.active{color:#0595DB;background-color:#fff}}.region-sidebar .mx-navbar{background-color:#252C36}.region-sidebar .mx-navbar ul.nav>li.mx-navbar-item>a{color:#fff;font-size:14px}.region-sidebar .mx-navbar ul.nav>li.mx-navbar-item>a .caret{border-top-color:#fff;border-bottom-color:#fff}.region-sidebar .mx-navbar ul.nav>li.mx-navbar-item>a:hover,.region-sidebar .mx-navbar ul.nav>li.mx-navbar-item>a:focus,.region-sidebar .mx-navbar ul.nav>li.mx-navbar-item>a.active{color:#fff;background-color:#2d3642}.region-sidebar .mx-navbar ul.nav>li.mx-navbar-item>a:hover .caret,.region-sidebar .mx-navbar ul.nav>li.mx-navbar-item>a:focus .caret,.region-sidebar .mx-navbar ul.nav>li.mx-navbar-item>a.active .caret{border-top-color:#fff;border-bottom-color:#fff}.region-sidebar .mx-navbar ul.nav>li.mx-navbar-item>a.active{color:#fff;background-color:#36404e}.region-sidebar .mx-navbar ul.nav>li.mx-navbar-item>a .mx-navbar-submenu::before{border-color:transparent transparent #2d3642 transparent}.region-sidebar .mx-navbar ul.nav>li.mx-navbar-item>a .glyphicon{font-size:20px}.region-sidebar .mx-navbar ul.nav>.mx-navbar-item>a:hover,.region-sidebar .mx-navbar ul.nav>.mx-navbar-item>a:focus,.region-sidebar .mx-navbar ul.nav>.mx-navbar-item.active a,.region-sidebar .mx-navbar ul.nav>.mx-navbar-item.open>a,.region-sidebar .mx-navbar ul.nav>.mx-navbar-item.open>a:hover,.region-sidebar .mx-navbar ul.nav>.mx-navbar-item.open>a:focus{color:#fff;background-color:#2d3642}.region-sidebar .mx-navbar ul.nav>.mx-navbar-item>a:hover .caret,.region-sidebar .mx-navbar ul.nav>.mx-navbar-item>a:focus .caret,.region-sidebar .mx-navbar ul.nav>.mx-navbar-item.active a .caret,.region-sidebar .mx-navbar ul.nav>.mx-navbar-item.open>a .caret,.region-sidebar .mx-navbar ul.nav>.mx-navbar-item.open>a:hover .caret,.region-sidebar .mx-navbar ul.nav>.mx-navbar-item.open>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.region-sidebar .mx-navbar ul.nav>.mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem.active a{color:#0595DB;background-color:#1d222a}.region-sidebar .mx-navbar ul.nav>.mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem.active a .caret{border-top-color:#0595DB;border-bottom-color:#0595DB}@media (max-width: 768px){.region-sidebar .mx-navbar .mx-navbar-item.open .dropdown-menu{background-color:#fff}.region-sidebar .mx-navbar .mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem>a{color:#AAA;font-size:12px}.region-sidebar .mx-navbar .mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem>a:hover,.region-sidebar .mx-navbar .mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem>a:focus{color:#0595DB;background-color:#1d222a}.region-sidebar .mx-navbar .mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem>a.active{color:#0595DB;background-color:#1d222a}}.mx-navigationlist{margin:0;padding:0;list-style:none}.mx-navigationlist li.mx-navigationlist-item{-webkit-transition:all .3s 0s cubic-bezier(0.4, 0, 0.2, 1);-moz-transition:all .3s 0s cubic-bezier(0.4, 0, 0.2, 1);-o-transition:all .3s 0s cubic-bezier(0.4, 0, 0.2, 1);transition:all .3s 0s cubic-bezier(0.4, 0, 0.2, 1);transform-style:initial;padding:15px 15px 15px 15px;border-width:1px;border-style:none none solid none;border-color:#D7D7D7;border-radius:0;background-color:#fff}.mx-navigationlist li.mx-navigationlist-item:hover,.mx-navigationlist li.mx-navigationlist-item:focus{color:inherit;background-color:#f7f7f7}.mx-navigationlist li.mx-navigationlist-item.active{color:inherit;background-color:#f3f3f3}.mx-navigationtree{background-color:#252C36}.mx-navigationtree .navbar-inner>ul{margin:0;padding-left:0}.mx-navigationtree .navbar-inner>ul>li{padding:0;border-style:none}.mx-navigationtree .navbar-inner>ul>li>a{display:flex;align-items:center;height:60px;padding:5px 15px;color:#fff;border-bottom:1px solid #2d3642;border-radius:0;background-color:#252C36;text-shadow:none;font-size:14px;font-weight:normal}.mx-navigationtree .navbar-inner>ul>li>a .caret{border-top-color:#fff;border-bottom-color:#fff}.mx-navigationtree .navbar-inner>ul>li>a img{width:20px;height:auto;margin-right:0.5em}.mx-navigationtree .navbar-inner>ul>li>a .glyphicon{top:0;margin-right:0.5em;vertical-align:middle;font-size:20px}.mx-navigationtree .navbar-inner>ul>li a:hover,.mx-navigationtree .navbar-inner>ul>li a:focus,.mx-navigationtree .navbar-inner>ul>li a.active{text-decoration:none;color:#fff;background-color:#2d3642}.mx-navigationtree .navbar-inner>ul>li a:hover .caret,.mx-navigationtree .navbar-inner>ul>li a:focus .caret,.mx-navigationtree .navbar-inner>ul>li a.active .caret{border-top-color:#fff;border-bottom-color:#fff}.mx-navigationtree .navbar-inner>ul>li a.active{color:#fff;border-left-color:#fff;background-color:#36404e}.mx-navigationtree li.mx-navigationtree-has-items>ul{margin:0;padding-left:0;background-color:#1d222a}.mx-navigationtree li.mx-navigationtree-has-items>ul li{margin:0;padding:0;border:0}.mx-navigationtree li.mx-navigationtree-has-items>ul li a{padding:12px 20px 12px 25px;text-decoration:none;color:#AAA;border:0;background-color:#1d222a;text-shadow:none;font-size:12px;font-weight:normal}.mx-navigationtree li.mx-navigationtree-has-items>ul li a:hover,.mx-navigationtree li.mx-navigationtree-has-items>ul li a:focus,.mx-navigationtree li.mx-navigationtree-has-items>ul li a.active{color:#0595DB;outline:0;background-color:#1d222a}.mx-navigationtree li.mx-navigationtree-has-items>ul li a.active{color:#0595DB;border:0;background-color:#1d222a}.mx-navigationtree:focus{outline:0}.region-topbar .mx-navigationtree{background-color:#fff}.region-topbar .mx-navigationtree .navbar-inner>ul>li>a{color:#555;border-color:#D7D7D7;background-color:#fff;font-size:14px}.region-topbar .mx-navigationtree .navbar-inner>ul>li>a .caret{border-top-color:#555;border-bottom-color:#555}.region-topbar .mx-navigationtree .navbar-inner>ul>li>a .glyphicon{font-size:1.2em}.region-topbar .mx-navigationtree .navbar-inner>ul>li a:hover,.region-topbar .mx-navigationtree .navbar-inner>ul>li a:focus,.region-topbar .mx-navigationtree .navbar-inner>ul>li a.active{color:#555;background-color:#f5f5f5}.region-topbar .mx-navigationtree .navbar-inner>ul>li a:hover .caret,.region-topbar .mx-navigationtree .navbar-inner>ul>li a:focus .caret,.region-topbar .mx-navigationtree .navbar-inner>ul>li a.active .caret{border-top-color:#555;border-bottom-color:#555}.region-topbar .mx-navigationtree .navbar-inner>ul>li a.active{color:#555;border-left-color:#555;background-color:#ebebeb}.region-topbar .mx-navigationtree li.mx-navigationtree-has-items>ul{background-color:#fff}.region-topbar .mx-navigationtree li.mx-navigationtree-has-items>ul li a{color:#AAA;background-color:#fff;font-size:12px}.region-topbar .mx-navigationtree li.mx-navigationtree-has-items>ul li a:hover,.region-topbar .mx-navigationtree li.mx-navigationtree-has-items>ul li a:focus,.region-topbar .mx-navigationtree li.mx-navigationtree-has-items>ul li a.active{color:#0595DB;background-color:#fff}.region-topbar .mx-navigationtree li.mx-navigationtree-has-items>ul li a.active{color:#0595DB;background-color:#fff}.region-sidebar .mx-navigationtree{background-color:#252C36}.region-sidebar .mx-navigationtree .navbar-inner>ul>li>a{color:#fff;border-color:#2d3642;background-color:#252C36;font-size:14px}.region-sidebar .mx-navigationtree .navbar-inner>ul>li>a .caret{border-top-color:#fff;border-bottom-color:#fff}.region-sidebar .mx-navigationtree .navbar-inner>ul>li>a .glyphicon{font-size:20px}.region-sidebar .mx-navigationtree .navbar-inner>ul>li a:hover,.region-sidebar .mx-navigationtree .navbar-inner>ul>li a:focus,.region-sidebar .mx-navigationtree .navbar-inner>ul>li a.active{color:#fff;background-color:#2d3642}.region-sidebar .mx-navigationtree .navbar-inner>ul>li a:hover .caret,.region-sidebar .mx-navigationtree .navbar-inner>ul>li a:focus .caret,.region-sidebar .mx-navigationtree .navbar-inner>ul>li a.active .caret{border-top-color:#fff;border-bottom-color:#fff}.region-sidebar .mx-navigationtree .navbar-inner>ul>li a.active{color:#fff;border-left-color:#fff;background-color:#36404e}.region-sidebar .mx-navigationtree li.mx-navigationtree-has-items>ul{background-color:#1d222a}.region-sidebar .mx-navigationtree li.mx-navigationtree-has-items>ul li a{color:#AAA;background-color:#1d222a;font-size:12px}.region-sidebar .mx-navigationtree li.mx-navigationtree-has-items>ul li a:hover,.region-sidebar .mx-navigationtree li.mx-navigationtree-has-items>ul li a:focus,.region-sidebar .mx-navigationtree li.mx-navigationtree-has-items>ul li a.active{color:#0595DB;background-color:#1d222a}.region-sidebar .mx-navigationtree li.mx-navigationtree-has-items>ul li a.active{color:#0595DB;background-color:#1d222a}.nav-content-center-text-icons.mx-navigationtree .navbar-inner ul a{flex-direction:column;justify-content:center}.nav-content-center-text-icons.mx-navigationtree .navbar-inner ul a .glyphicon{margin:0 0 5px 0}.nav-content-center.mx-navigationtree .navbar-inner ul a{justify-content:center}.popupmenu{position:relative;display:inline-flex}.popupmenu-trigger{cursor:pointer}.popupmenu-menu{position:absolute;z-index:999;display:none;flex-direction:column;width:max-content;border-radius:8px;background-color:#fff;box-shadow:0 2px 20px 1px rgba(5,15,129,0.05),0 2px 16px 0 rgba(33,43,54,0.08)}.popupmenu-menu.popupmenu-position-left{top:0;left:0;transform:translateX(-100%)}.popupmenu-menu.popupmenu-position-right{top:0;right:0;transform:translateX(100%)}.popupmenu-menu.popupmenu-position-top{top:0;transform:translateY(-100%)}.popupmenu-menu.popupmenu-position-bottom{bottom:0;transform:translateY(100%)}.popupmenu-menu .popupmenu-basic-item:first-child,.popupmenu-menu .popupmenu-custom-item:first-child{border-top-left-radius:8px;border-top-right-radius:8px}.popupmenu-menu .popupmenu-basic-item:last-child,.popupmenu-menu .popupmenu-custom-item:last-child{border-bottom-right-radius:8px;border-bottom-left-radius:8px}.popupmenu-basic-divider{width:100%;height:1px;background-color:#ddd}.popupmenu-basic-item{padding:12px 16px;color:#555;font-size:14px}.popupmenu-basic-item:hover,.popupmenu-basic-item:focus,.popupmenu-basic-item:active{cursor:pointer;border-color:#F5F8FD;background-color:#F5F8FD}.popupmenu-basic-item-inverse{color:#252C36}.popupmenu-basic-item-primary{color:#0595DB}.popupmenu-basic-item-info{color:#48B0F7}.popupmenu-basic-item-success{color:#76CA02}.popupmenu-basic-item-warning{color:#F99B1D}.popupmenu-basic-item-danger{color:#ED1C24}.popupmenu-custom-item:hover,.popupmenu-custom-item:focus,.popupmenu-custom-item:active{cursor:pointer;border-color:#F5F8FD;background-color:#F5F8FD}.mx-menubar{padding:0;background-color:#252C36}.mx-menubar ul.mx-menubar-list{display:flex;width:100%;min-height:50px}.mx-menubar ul.mx-menubar-list li.mx-menubar-item{margin:0}.mx-menubar ul.mx-menubar-list li.mx-menubar-item>a{display:flex;overflow:hidden;align-items:center;justify-content:center;height:100%;padding:5px 15px;white-space:nowrap;color:#fff;border-radius:0;font-size:14px;font-weight:normal}.mx-menubar ul.mx-menubar-list li.mx-menubar-item>a img{margin-right:0.5em}.mx-menubar ul.mx-menubar-list li.mx-menubar-item>a .glyphicon{top:-1px;margin-right:0.5em;vertical-align:middle;font-size:20px}.mx-menubar ul.mx-menubar-list li.mx-menubar-item a:hover,.mx-menubar ul.mx-menubar-list li.mx-menubar-item a:focus,.mx-menubar ul.mx-menubar-list li.mx-menubar-item:hover a,.mx-menubar ul.mx-menubar-list li.mx-menubar-item:focus a,.mx-menubar ul.mx-menubar-list li.mx-menubar-item.active a{text-decoration:none;color:#fff;background-color:#2d3642}.mx-menubar ul.mx-menubar-list li.mx-menubar-item.active a{color:#fff;background-color:#36404e}.mx-menubar:focus{outline:0}.mx-menubar-vertical{background-color:#252C36}.mx-menubar-vertical ul.mx-menubar-list{display:flex}.mx-menubar-vertical ul.mx-menubar-list li.mx-menubar-item{display:block}.mx-menubar-vertical ul.mx-menubar-list li.mx-menubar-item a{border-bottom:1px solid #2d3642}.mx-menubar-horizontal{box-shadow:2px 0 4px 0 rgba(0,0,0,0.14)}.mx-menubar-horizontal ul.mx-menubar-list li.mx-menubar-item{width:auto}.mx-menubar-horizontal ul.mx-menubar-list li.mx-menubar-item a{width:100%}.mx-menubar-horizontal.menubar-col-6 ul.mx-menubar-list li.mx-menubar-item{width:50%}.mx-menubar-horizontal.menubar-col-4 ul.mx-menubar-list li.mx-menubar-item{width:33.33333333%}.mx-menubar-horizontal.menubar-col-3 ul.mx-menubar-list li.mx-menubar-item{width:25%}.mx-menubar-horizontal.menubar-col-2 ul.mx-menubar-list li.mx-menubar-item{width:20%}.region-topbar .mx-menubar{background-color:#fff}.region-topbar .mx-menubar ul.mx-menubar-list li.mx-menubar-item a{color:#555;font-size:14px}.region-topbar .mx-menubar ul.mx-menubar-list li.mx-menubar-item a .glyphicon{font-size:1.2em}.region-topbar .mx-menubar ul.mx-menubar-list li.mx-menubar-item a:hover,.region-topbar .mx-menubar ul.mx-menubar-list li.mx-menubar-item a:focus,.region-topbar .mx-menubar ul.mx-menubar-list li.mx-menubar-item:hover a,.region-topbar .mx-menubar ul.mx-menubar-list li.mx-menubar-item:focus a,.region-topbar .mx-menubar ul.mx-menubar-list li.mx-menubar-item.active a{color:#555;background-color:#f5f5f5}.region-topbar .mx-menubar ul.mx-menubar-list li.mx-menubar-item.active a{color:#555;background-color:#ebebeb}.region-topbar .mx-menubar-vertical{background-color:#fff}.region-topbar .mx-menubar-vertical ul.mx-menubar-list li.mx-menubar-item a{height:60px;border-color:#D7D7D7}.region-sidebar .mx-menubar{background-color:#252C36}.region-sidebar .mx-menubar ul.mx-menubar-list li.mx-menubar-item a{color:#fff;font-size:14px}.region-sidebar .mx-menubar ul.mx-menubar-list li.mx-menubar-item a .glyphicon{font-size:20px}.region-sidebar .mx-menubar ul.mx-menubar-list li.mx-menubar-item a:hover,.region-sidebar .mx-menubar ul.mx-menubar-list li.mx-menubar-item a:focus,.region-sidebar .mx-menubar ul.mx-menubar-list li.mx-menubar-item:hover a,.region-sidebar .mx-menubar ul.mx-menubar-list li.mx-menubar-item:focus a,.region-sidebar .mx-menubar ul.mx-menubar-list li.mx-menubar-item.active a{color:#fff;background-color:#2d3642}.region-sidebar .mx-menubar ul.mx-menubar-list li.mx-menubar-item.active a{color:#fff;background-color:#36404e}.region-sidebar .mx-menubar-vertical{background-color:#252C36}.region-sidebar .mx-menubar-vertical ul.mx-menubar-list li.mx-menubar-item a{border-color:#2d3642}@supports (padding-bottom: env(safe-area-inset-bottom)){.mx-menubar{padding-bottom:env(safe-area-inset-bottom)}}.bottom-nav-text-icons.mx-menubar ul.mx-menubar-list li.mx-menubar-item a{flex-direction:column;padding:8px 8px 6px 8px;line-height:normal;font-size:11px}.bottom-nav-text-icons.mx-menubar ul.mx-menubar-list li.mx-menubar-item a .glyphicon{display:block;margin:0 0 5px 0;font-size:18px}.bottom-nav-text-icons.mx-menubar ul.mx-menubar-list li.mx-menubar-item a img{display:block;height:18px;margin:0 0 5px 0}.mx-radiobuttons.inline .mx-radiogroup{display:flex;flex-direction:row}.mx-radiobuttons.inline .mx-radiogroup .radio{margin:0 20px 0 0}.mx-radiobuttons .radio:last-child{margin-bottom:0}.radio{display:flex !important;align-items:center;margin-top:0}input[type='radio']{position:relative !important;width:16px;height:16px;margin:0;cursor:pointer;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;-webkit-user-select:none;user-select:none;appearance:none;-moz-appearance:none;-webkit-appearance:none}input[type='radio']::-ms-check{color:#D7D7D7;border-color:#D7D7D7;background-color:#fff}input[type='radio']:focus::-ms-check,input[type='radio']:checked::-ms-check{color:#0595DB;border-color:#0595DB;background-color:#fff}input[type='radio']:before,input[type='radio']:after{position:absolute;display:block;transition:all 0.3s ease-in-out;border-radius:50%}input[type='radio']:before{width:100%;height:100%;content:'';border:1px solid #D7D7D7;background-color:transparent}input[type='radio']:after{top:50%;left:50%;width:50%;height:50%;transform:translate(-50%, -50%);pointer-events:none;background-color:#0595DB}input[type='radio']:not(:checked):after{transform:translate(-50%, -50%) scale(0);opacity:0}input[type='radio']:not(:disabled):not(:checked):hover:after{background-color:#D7D7D7}input[type='radio']:checked:after,input[type='radio']:not(:disabled):not(:checked):hover:after{content:'';transform:translate(-50%, -50%) scale(1);opacity:1}input[type='radio']:checked:before{border-color:#0595DB;background-color:#fff}input[type='radio']:disabled:before{background-color:#eee}input[type='radio']:checked:disabled:before{border-color:rgba(5,149,219,0.4)}input[type='radio']:checked:disabled:after{background-color:rgba(5,149,219,0.4)}input[type='radio']+label{margin-left:8px}.mx-tabcontainer .mx-tabcontainer-tabs{margin-bottom:20px;border-color:#D7D7D7}.mx-tabcontainer .mx-tabcontainer-tabs>li>a{margin-right:0;-webkit-transition:all 0.2s ease-in-out;-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;color:#888;font-weight:normal}.mx-tabcontainer .mx-tabcontainer-tabs>li>a:hover,.mx-tabcontainer .mx-tabcontainer-tabs>li>a:focus{background-color:#e4e4e4}.mx-tabcontainer .mx-tabcontainer-tabs>li.active>a,.mx-tabcontainer .mx-tabcontainer-tabs>li.active>a:hover,.mx-tabcontainer .mx-tabcontainer-tabs>li.active>a:focus{color:#555;border:1px solid #D7D7D7;border-bottom-color:transparent;background-color:#fff}.tab-mobile.mx-tabcontainer>.mx-tabcontainer-tabs{margin:0;text-align:center;border-style:none;background-color:#0595DB}.tab-mobile.mx-tabcontainer>.mx-tabcontainer-tabs li{display:table-cell;float:none;width:1%;margin:0;text-align:center;border-style:none;border-radius:0}.tab-mobile.mx-tabcontainer>.mx-tabcontainer-tabs li a{padding:15px;text-transform:uppercase;color:#FFFFFF;border-width:0 1px 0 0;border-style:solid;border-color:rgba(255,255,255,0.3);border-radius:0;font-size:12px;font-weight:normal}.tab-mobile.mx-tabcontainer>.mx-tabcontainer-tabs li a:hover,.tab-mobile.mx-tabcontainer>.mx-tabcontainer-tabs li a:focus{background-color:inherit}.tab-mobile.mx-tabcontainer>.mx-tabcontainer-tabs li:last-child a{border-right:none}.tab-mobile.mx-tabcontainer>.mx-tabcontainer-tabs li.active>a,.tab-mobile.mx-tabcontainer>.mx-tabcontainer-tabs li.active>a:hover,.tab-mobile.mx-tabcontainer>.mx-tabcontainer-tabs li.active>a:focus{color:#FFFFFF;border-style:none;border-radius:0;background-color:#0477af}.mx-tabcontainer-badge{margin-left:8px;border-radius:12px;background-color:#0595DB;color:#fff;font-size:12px;font-weight:bold;line-height:1;padding:3px 7px}.tab-pills.mx-tabcontainer>.mx-tabcontainer-tabs{border:0}.tab-pills.mx-tabcontainer>.mx-tabcontainer-tabs>li>a{margin-right:2px;color:#888;border:1px solid #D7D7D7;border-radius:4px}.tab-pills.mx-tabcontainer>.mx-tabcontainer-tabs>li>a:hover,.tab-pills.mx-tabcontainer>.mx-tabcontainer-tabs>li>a:focus{background-color:#e4e4e4}.tab-pills.mx-tabcontainer>.mx-tabcontainer-tabs>li.active>a,.tab-pills.mx-tabcontainer>.mx-tabcontainer-tabs>li.active>a:hover,.tab-pills.mx-tabcontainer>.mx-tabcontainer-tabs>li.active>a:focus{color:#FFFFFF;border-color:#0595DB;background-color:#0595DB}.tab-lined.mx-tabcontainer>.mx-tabcontainer-tabs{border-width:3px}.tab-lined.mx-tabcontainer>.mx-tabcontainer-tabs li{margin-right:30px;margin-bottom:-3px}.tab-lined.mx-tabcontainer>.mx-tabcontainer-tabs li>a{padding:10px 0;color:#888;border:0;border-style:solid;border-color:transparent;border-bottom-width:3px;border-radius:0}.tab-lined.mx-tabcontainer>.mx-tabcontainer-tabs li>a:hover,.tab-lined.mx-tabcontainer>.mx-tabcontainer-tabs li>a:focus{color:#888;border:0;border-color:transparent;background:transparent}.tab-lined.mx-tabcontainer>.mx-tabcontainer-tabs li.active>a,.tab-lined.mx-tabcontainer>.mx-tabcontainer-tabs li.active>a:hover,.tab-lined.mx-tabcontainer>.mx-tabcontainer-tabs li.active>a:focus{color:#0595DB;border:0;border-bottom:3px solid #0595DB;background-color:transparent}.tab-justified.mx-tabcontainer>.mx-tabcontainer-tabs{width:100%;border-bottom:0}.tab-justified.mx-tabcontainer>.mx-tabcontainer-tabs>li{display:table-cell;float:none;width:1%;margin:0}@media (max-width: 767px){.tab-justified.mx-tabcontainer>.mx-tabcontainer-tabs>li{display:block;width:100%}}.tab-justified.mx-tabcontainer>.mx-tabcontainer-tabs>li>a{text-align:center;border-bottom:1px solid #D7D7D7}.tab-justified.mx-tabcontainer>.mx-tabcontainer-tabs>li.active>a{border-bottom-color:transparent;border-radius:4px}@media (max-width: 767px){.tab-justified.mx-tabcontainer>.mx-tabcontainer-tabs>li.active>a{border-bottom-color:#D7D7D7}}.tab-bordered.mx-tabcontainer>.mx-tabcontainer-tabs{margin:0}.tab-bordered.mx-tabcontainer>.mx-tabcontainer-content{padding:10px;border-width:0 1px 1px 1px;border-style:solid;border-color:#D7D7D7;background-color:#FFFFFF}.tab-wizard.mx-tabcontainer>.mx-tabcontainer-tabs{position:relative;display:flex;justify-content:space-between;border-style:none}.tab-wizard.mx-tabcontainer>.mx-tabcontainer-tabs::before{position:absolute;top:16px;display:block;width:100%;height:1px;content:"";background-color:#D7D7D7}.tab-wizard.mx-tabcontainer>.mx-tabcontainer-tabs>li{position:relative;float:none;width:100%;text-align:center}.tab-wizard.mx-tabcontainer>.mx-tabcontainer-tabs>li>a{width:33px;height:33px;margin:auto;padding:0;text-align:center;color:#ddd;border:1px solid #D7D7D7;border-radius:100%;background-color:#FFFFFF;font-size:18px;font-weight:bold;line-height:33px}.tab-wizard.mx-tabcontainer>.mx-tabcontainer-tabs>li.active>a,.tab-wizard.mx-tabcontainer>.mx-tabcontainer-tabs>li.active>a:hover,.tab-wizard.mx-tabcontainer>.mx-tabcontainer-tabs>li.active>a:focus{color:#FFFFFF;border-color:#0595DB;background-color:#0595DB}th{font-weight:bold}html body .mx-page table.mx-table th.nopadding,html body .mx-page table.mx-table td.nopadding{padding:0}table.mx-table>tbody>tr>th{padding:8px 8px 8px 8px}table.mx-table>tbody>tr>th s *{color:#666;font-weight:bold;font-weight:600}table.mx-table>tbody>tr>th>label{padding-top:7px;padding-bottom:6px}table.mx-table>tbody>tr>td{padding:8px 8px 8px 8px}table.mx-table>tbody>tr>td>div>label,table.mx-table>tbody>tr>td .mx-referenceselector-input-wrapper label{padding-top:7px;padding-bottom:6px}.mx-templategrid table.mx-table>tbody>tr>th,.mx-templategrid table.mx-table>tbody>tr>td{padding:8px 8px 8px 8px}.mx-list table.mx-table>tbody>tr>th,.mx-list table.mx-table>tbody>tr>td{padding:8px 8px 8px 8px}table.table-lined.mx-table>tbody>tr>td{border-width:1px 0;border-style:solid;border-color:#D7D7D7}table.table-bordered.mx-table>tbody>tr>th,table.table-bordered.mx-table>tbody>tr>td{border-width:1px;border-style:solid;border-color:#D7D7D7}table.table-compact.mx-table>tbody>tr>th,table.table-compact.mx-table>tbody>tr>td{padding-top:2px;padding-bottom:2px}table.table-sideless.mx-table>tbody>tr>td,table.table-sideless.mx-table>tbody>tr>th{padding-right:0}table.table-sideless.mx-table>tbody>tr>th:first-child,table.table-sideless.mx-table>tbody>tr>td:first-child{padding-left:0}table.table-spaceless.mx-table>tbody>tr>th,table.table-spaceless.mx-table>tbody>tr>td{padding:0}table.table-vertical.mx-table>tbody>tr>th{padding-bottom:0}table.table-vertical.mx-table>tbody>tr>th>label{padding:0}table.table-vertical.mx-table>tbody>tr>th>div>label{padding:0}table.table-align-vertical-middle.mx-table>tbody>tr>th,table.table-align-vertical-middle.mx-table>tbody>tr>td{vertical-align:middle}table.table-label-compact.mx-table>tbody>tr>th>label,table.table-label-compact.mx-table>tbody>tr>td>label{margin:0;padding:0}table.table-label-compact.mx-table>tbody>tr>th>div>label,table.table-label-compact.mx-table>tbody>tr>th .mx-referenceselector-input-wrapper label,table.table-label-compact.mx-table>tbody>tr>td>div>label,table.table-label-compact.mx-table>tbody>tr>td .mx-referenceselector-input-wrapper label{margin:0;padding:0}table.table-row-s.mx-table>tbody>tr>th,table.table-row-s.mx-table>tbody>tr>td{height:55px}table.table-row-m.mx-table>tbody>tr>th,table.table-row-m.mx-table>tbody>tr>td{height:70px}table.table-row-l.mx-table>tbody>tr>th,table.table-row-l.mx-table>tbody>tr>td{height:120px}table.table-fixed{table-layout:fixed}.mx-templategrid .mx-templategrid-content-wrapper{table-layout:fixed}.mx-templategrid .mx-templategrid-item{padding:15px 15px 15px 15px;cursor:default;background-color:#fff}.mx-templategrid .mx-templategrid-item:hover{background-color:transparent}.mx-templategrid .mx-templategrid-item.selected{background-color:#f3f3f3 !important}.mx-templategrid .mx-layoutgrid{padding-top:0 !important;padding-bottom:0 !important}.templategrid-selectable.mx-templategrid .mx-templategrid-item{cursor:pointer}.templategrid-lined.mx-templategrid .mx-grid-content{border-top-width:2px;border-top-style:solid;border-top-color:#D7D7D7}.templategrid-lined.mx-templategrid .mx-templategrid-item{border-top:1px solid #D7D7D7;border-right:none;border-bottom:1px solid #D7D7D7;border-left:none}.templategrid-striped.mx-templategrid .mx-templategrid-row:nth-child(odd) .mx-templategrid-item{background-color:#F9F9F9}.templategrid-stylingless.mx-templategrid .mx-templategrid-item{padding:0;cursor:default;border:0;background-color:transparent}.templategrid-stylingless.mx-templategrid .mx-templategrid-item:hover{background-color:transparent}.templategrid-stylingless.mx-templategrid .mx-templategrid-item.selected{background-color:transparent !important}.templategrid-stylingless.mx-templategrid .mx-templategrid-item.selected:hover{background-color:transparent !important}.templategrid-transparent.mx-templategrid .mx-templategrid-item{border:0;background-color:transparent}.templategrid-hover.mx-templategrid .mx-templategrid-item:hover{background-color:#f7f7f7 !important}.templategrid-hover.mx-templategrid .mx-templategrid-item.selected{background-color:#f3f3f3 !important}.templategrid-hover.mx-templategrid .mx-templategrid-item.selected:hover{background-color:#ebebeb !important}.templategrid-lg.mx-templategrid .mx-templategrid-item{padding:30px 30px 30px 30px}.templategrid-sm.mx-templategrid .mx-templategrid-item{padding:7.5px 7.5px 7.5px 7.5px}.mx-templategrid[class*="tg-col"]{overflow:hidden}.mx-templategrid[class*="tg-col"] .mx-templategrid-content-wrapper{display:block}.mx-templategrid[class*="tg-col"] .mx-templategrid-row{display:block;margin-right:-15px;margin-left:-15px}.mx-templategrid[class*="tg-col"] .mx-templategrid-row::before,.mx-templategrid[class*="tg-col"] .mx-templategrid-row::after{display:table;clear:both;content:" "}.mx-templategrid[class*="tg-col"] .mx-templategrid-item{position:relative;display:block;float:left;min-height:1px;padding-right:15px;padding-left:15px;border:0}@media (max-width: 992px){.mx-templategrid[class*="tg-col"] .mx-templategrid-item{width:100% !important}}.mx-templategrid[class*="tg-col"] .mx-templategrid-item .mx-dataview{overflow:hidden}.mx-templategrid[class*="tg-col"].tg-col-xs-12 .mx-templategrid-item{width:100% !important}.mx-templategrid[class*="tg-col"].tg-col-xs-11 .mx-templategrid-item{width:91.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-xs-10 .mx-templategrid-item{width:83.33333333% !important}.mx-templategrid[class*="tg-col"].tg-col-xs-9 .mx-templategrid-item{width:75% !important}.mx-templategrid[class*="tg-col"].tg-col-xs-8 .mx-templategrid-item{width:66.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-xs-7 .mx-templategrid-item{width:58.33333333% !important}.mx-templategrid[class*="tg-col"].tg-col-xs-6 .mx-templategrid-item{width:50% !important}.mx-templategrid[class*="tg-col"].tg-col-xs-5 .mx-templategrid-item{width:41.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-xs-4 .mx-templategrid-item{width:33.33333333% !important}.mx-templategrid[class*="tg-col"].tg-col-xs-3 .mx-templategrid-item{width:25% !important}.mx-templategrid[class*="tg-col"].tg-col-xs-2 .mx-templategrid-item{width:16.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-xs-1 .mx-templategrid-item{width:8.33333333% !important}@media (min-width: 768px){.mx-templategrid[class*="tg-col"].tg-col-sm-12 .mx-templategrid-item{width:100% !important}.mx-templategrid[class*="tg-col"].tg-col-sm-11 .mx-templategrid-item{width:91.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-sm-10 .mx-templategrid-item{width:83.33333333% !important}.mx-templategrid[class*="tg-col"].tg-col-sm-9 .mx-templategrid-item{width:75% !important}.mx-templategrid[class*="tg-col"].tg-col-sm-8 .mx-templategrid-item{width:66.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-sm-7 .mx-templategrid-item{width:58.33333333% !important}.mx-templategrid[class*="tg-col"].tg-col-sm-6 .mx-templategrid-item{width:50% !important}.mx-templategrid[class*="tg-col"].tg-col-sm-5 .mx-templategrid-item{width:41.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-sm-4 .mx-templategrid-item{width:33.33333333% !important}.mx-templategrid[class*="tg-col"].tg-col-sm-3 .mx-templategrid-item{width:25% !important}.mx-templategrid[class*="tg-col"].tg-col-sm-2 .mx-templategrid-item{width:16.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-sm-1 .mx-templategrid-item{width:8.33333333% !important}}@media (min-width: 992px){.mx-templategrid[class*="tg-col"].tg-col-md-12 .mx-templategrid-item{width:100% !important}.mx-templategrid[class*="tg-col"].tg-col-md-11 .mx-templategrid-item{width:91.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-md-10 .mx-templategrid-item{width:83.33333333% !important}.mx-templategrid[class*="tg-col"].tg-col-md-9 .mx-templategrid-item{width:75% !important}.mx-templategrid[class*="tg-col"].tg-col-md-8 .mx-templategrid-item{width:66.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-md-7 .mx-templategrid-item{width:58.33333333% !important}.mx-templategrid[class*="tg-col"].tg-col-md-6 .mx-templategrid-item{width:50% !important}.mx-templategrid[class*="tg-col"].tg-col-md-5 .mx-templategrid-item{width:41.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-md-4 .mx-templategrid-item{width:33.33333333% !important}.mx-templategrid[class*="tg-col"].tg-col-md-3 .mx-templategrid-item{width:25% !important}.mx-templategrid[class*="tg-col"].tg-col-md-2 .mx-templategrid-item{width:16.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-md-1 .mx-templategrid-item{width:8.33333333% !important}}@media (min-width: 1200px){.mx-templategrid[class*="tg-col"].tg-col-lg-12 .mx-templategrid-item{width:100% !important}.mx-templategrid[class*="tg-col"].tg-col-lg-11 .mx-templategrid-item{width:91.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-lg-10 .mx-templategrid-item{width:83.33333333% !important}.mx-templategrid[class*="tg-col"].tg-col-lg-9 .mx-templategrid-item{width:75% !important}.mx-templategrid[class*="tg-col"].tg-col-lg-8 .mx-templategrid-item{width:66.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-lg-7 .mx-templategrid-item{width:58.33333333% !important}.mx-templategrid[class*="tg-col"].tg-col-lg-6 .mx-templategrid-item{width:50% !important}.mx-templategrid[class*="tg-col"].tg-col-lg-5 .mx-templategrid-item{width:41.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-lg-4 .mx-templategrid-item{width:33.33333333% !important}.mx-templategrid[class*="tg-col"].tg-col-lg-3 .mx-templategrid-item{width:25% !important}.mx-templategrid[class*="tg-col"].tg-col-lg-2 .mx-templategrid-item{width:16.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-lg-1 .mx-templategrid-item{width:8.33333333% !important}}p{line-height:1.78571}label{padding-top:0}.mx-title{margin:15px 0 30px 0;color:#17347B;font-size:31px;font-weight:normal}h1,.h1,.h1>*{font-size:31px}h2,.h2,.h2>*{font-size:26px}h3,.h3,.h3>*{font-size:24px}h4,.h4,.h4>*{font-size:18px}h5,.h5,.h5>*{font-size:14px}h6,.h6,.h6>*{font-size:12px}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{margin:15px 0 30px 0;color:#17347B;font-weight:normal;line-height:1.3}.text-small{font-size:12px !important}.text-large{font-size:16px !important}.text-light,.text-light>*,.text-light label{font-weight:100 !important}.text-normal,.text-normal>*,.text-normal label{font-weight:normal !important}.text-semibold,.text-semibold>*,.text-semibold label{font-weight:600 !important}.text-bold,.text-bold>*,.text-bold label{font-weight:bold !important}.text-default,.text-default:hover{color:#555 !important}.text-primary,.text-primary:hover{color:#0595DB !important}.text-info,.text-info:hover{color:#48B0F7 !important}.text-success,.text-success:hover{color:#76CA02 !important}.text-warning,.text-warning:hover{color:#F99B1D !important}.text-danger,.text-danger:hover{color:#ED1C24 !important}.text-header{color:#17347B !important}.text-detail{color:#888 !important}.text-white{color:#ffffff}.text-left{text-align:left !important}.text-center{text-align:center !important}.text-right{text-align:right !important}.text-justify{text-align:justify !important}.text-lowercase{text-transform:lowercase !important}.text-uppercase{text-transform:uppercase !important}.text-capitalize{text-transform:capitalize !important}.text-break{word-break:break-all !important;word-break:break-word !important;-ms-word-break:break-all !important;-webkit-hyphens:auto !important;-moz-hyphens:auto !important;hyphens:auto !important}.text-nowrap{white-space:nowrap !important}.text-nowrap{overflow:hidden !important;max-width:100% !important;white-space:nowrap !important;text-overflow:ellipsis !important}.mx-layoutgrid{width:100%;margin-right:auto;margin-left:auto;padding-right:15px;padding-left:15px}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.row::before,.row::after{content:normal}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*="col-"]{padding-right:0;padding-left:0}.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col,.col-auto,.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,.col-sm,.col-sm-auto,.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,.col-md,.col-md-auto,.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,.col-lg,.col-lg-auto,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;max-width:100%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1,.col-offset-1{margin-left:8.333333%}.offset-2,.col-offset-2{margin-left:16.666667%}.offset-3,.col-offset-3{margin-left:25%}.offset-4,.col-offset-4{margin-left:33.333333%}.offset-5,.col-offset-5{margin-left:41.666667%}.offset-6,.col-offset-6{margin-left:50%}.offset-7,.col-offset-7{margin-left:58.333333%}.offset-8,.col-offset-8{margin-left:66.666667%}.offset-9,.col-offset-9{margin-left:75%}.offset-10,.col-offset-10{margin-left:83.333333%}.offset-11,.col-offset-11{margin-left:91.666667%}@media (min-width: 576px){.mx-layoutgrid-fixed{max-width:540px}}@media (min-width: 768px){.mx-layoutgrid-fixed{max-width:720px}}@media (min-width: 992px){.mx-layoutgrid-fixed{max-width:960px}}@media (min-width: 1200px){.mx-layoutgrid-fixed{max-width:1140px}}@media (min-width: 576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0,.col-sm-offset-0{margin-left:0}.offset-sm-1,.col-sm-offset-1{margin-left:8.333333%}.offset-sm-2,.col-sm-offset-2{margin-left:16.666667%}.offset-sm-3,.col-sm-offset-3{margin-left:25%}.offset-sm-4,.col-sm-offset-4{margin-left:33.333333%}.offset-sm-5,.col-sm-offset-5{margin-left:41.666667%}.offset-sm-6,.col-sm-offset-6{margin-left:50%}.offset-sm-7,.col-sm-offset-7{margin-left:58.333333%}.offset-sm-8,.col-sm-offset-8{margin-left:66.666667%}.offset-sm-9,.col-sm-offset-9{margin-left:75%}.offset-sm-10,.col-sm-offset-10{margin-left:83.333333%}.offset-sm-11,.col-sm-offset-11{margin-left:91.666667%}}@media (min-width: 768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0,.col-md-offset-0{margin-left:0}.offset-md-1,.col-md-offset-1{margin-left:8.333333%}.offset-md-2,.col-md-offset-2{margin-left:16.666667%}.offset-md-3,.col-md-offset-3{margin-left:25%}.offset-md-4,.col-md-offset-4{margin-left:33.333333%}.offset-md-5,.col-md-offset-5{margin-left:41.666667%}.offset-md-6,.col-md-offset-6{margin-left:50%}.offset-md-7,.col-md-offset-7{margin-left:58.333333%}.offset-md-8,.col-md-offset-8{margin-left:66.666667%}.offset-md-9,.col-md-offset-9{margin-left:75%}.offset-md-10,.col-md-offset-10{margin-left:83.333333%}.offset-md-11,.col-md-offset-11{margin-left:91.666667%}}@media (min-width: 992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0,.col-lg-offset-0{margin-left:0}.offset-lg-1,.col-lg-offset-1{margin-left:8.333333%}.offset-lg-2,.col-lg-offset-2{margin-left:16.666667%}.offset-lg-3,.col-lg-offset-3{margin-left:25%}.offset-lg-4,.col-lg-offset-4{margin-left:33.333333%}.offset-lg-5,.col-lg-offset-5{margin-left:41.666667%}.offset-lg-6,.col-lg-offset-6{margin-left:50%}.offset-lg-7,.col-lg-offset-7{margin-left:58.333333%}.offset-lg-8,.col-lg-offset-8{margin-left:66.666667%}.offset-lg-9,.col-lg-offset-9{margin-left:75%}.offset-lg-10,.col-lg-offset-10{margin-left:83.333333%}.offset-lg-11,.col-lg-offset-11{margin-left:91.666667%}}@media (min-width: 1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0,.col-xl-offset-0{margin-left:0}.offset-xl-1,.col-xl-offset-1{margin-left:8.333333%}.offset-xl-2,.col-xl-offset-2{margin-left:16.666667%}.offset-xl-3,.col-xl-offset-3{margin-left:25%}.offset-xl-4,.col-xl-offset-4{margin-left:33.333333%}.offset-xl-5,.col-xl-offset-5{margin-left:41.666667%}.offset-xl-6,.col-xl-offset-6{margin-left:50%}.offset-xl-7,.col-xl-offset-7{margin-left:58.333333%}.offset-xl-8,.col-xl-offset-8{margin-left:66.666667%}.offset-xl-9,.col-xl-offset-9{margin-left:75%}.offset-xl-10,.col-xl-offset-10{margin-left:83.333333%}.offset-xl-11,.col-xl-offset-11{margin-left:91.666667%}}.mx-progress{color:#555;background:#F5F8FD}.mx-progress .mx-progress-message{color:#555}.mx-progress .mx-progress-indicator{position:relative;overflow:hidden;width:100%;max-width:100%;height:2px;margin:auto;padding:0;border-radius:0;background:#eee}.mx-progress .mx-progress-indicator:before,.mx-progress .mx-progress-indicator:after{position:absolute;top:0;left:0;display:block;width:50%;height:2px;content:"";transform:translate3d(-100%, 0, 0);background:#0595DB}.mx-progress .mx-progress-indicator::before{animation:loader 2s infinite}.mx-progress .mx-progress-indicator::after{animation:loader 2s -2s infinite}@keyframes loader{0%{transform:translate3d(-100%, 0, 0)}100%{transform:translate3d(200%, 0, 0)}}.widget-timeline-date-header{display:inline-block;width:110px;overflow-wrap:break-word;padding:8px;text-align:center;border:1px solid #D7D7D7;border-radius:30px}.widget-timeline-events-wrapper{display:flex;flex:1;margin-left:55px;padding-top:35px}.widget-timeline-events-wrapper ul{padding:0;list-style:none;margin-bottom:0}.widget-timeline-title{color:#17347B;font-weight:600;margin:0 0 10px 0}.widget-timeline-description{color:#888}.widget-timeline-event{position:relative;margin-left:9px;padding-left:30px;padding-bottom:20px}.widget-timeline-event:not(:last-of-type){border-left:1px solid #D7D7D7}.widget-timeline-event.clickable{cursor:pointer;transition:background 0.8s}.widget-timeline-event.clickable:hover .widget-timeline-title{color:#dadcde}.widget-timeline-icon-wrapper{position:absolute;top:0;left:0;display:flex;justify-content:center;align-items:center;width:18px;height:18px;transform:translateX(-50%)}.widget-timeline-icon-wrapper .glyphicon{font-size:18px}.widget-timeline-icon-wrapper img{max-width:18px;max-height:18px}.widget-timeline-content-wrapper .widget-timeline-date-time-wrapper{margin-right:15px}.widget-timeline-content-wrapper .widget-timeline-info-wrapper{flex-direction:column}.widget-timeline-icon-circle{width:18px;height:18px;border-radius:50%;background-color:#0595DB}.widget-timeline-no-divider{padding-bottom:0;padding-top:0;margin-left:0}.widget-timeline-flex-container{display:flex}.d-none{display:none !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.show,.d-block{display:block !important}.table,.d-table{display:table !important}.table-row,.d-table-row{display:table-row !important}.table-cell,.d-table-cell{display:table-cell !important}.hide,.hidden{display:none !important;visibility:hidden !important}.invisible{visibility:hidden !important}.display-ie8-only:not([attr*=""]){display:none !important;padding:0 !important}.list-nostyle ul{margin:0 !important;padding:0 !important}.list-nostyle ul li{list-style-type:none !important}.nowrap,.nowrap *{overflow:hidden !important;white-space:nowrap !important;text-overflow:ellipsis !important}.table{display:table !important}.table-row{display:table-row !important}.table-cell{display:table-cell !important}.pull-left{float:left !important}.pull-right{float:right !important}.align-top{vertical-align:top !important}.align-middle{vertical-align:middle !important}.align-bottom{vertical-align:bottom !important}.row-left{display:flex !important;align-items:center !important;flex-flow:row !important;justify-content:flex-start !important}.row-center{display:flex !important;align-items:center !important;flex-flow:row !important;justify-content:center !important}.row-right{display:flex !important;align-items:center !important;flex-flow:row !important;justify-content:flex-end !important}.col-left{display:flex !important;align-items:flex-start !important;flex-direction:column !important;justify-content:center !important}.col-center{display:flex !important;align-items:center !important;flex-direction:column !important;justify-content:center !important}.col-right{display:flex !important;align-items:flex-end !important;flex-direction:column !important;justify-content:center !important}@media (max-width: 767px){.hide-phone{display:none !important}}@media (min-width: 768px) and (max-width: 991px){.hide-tablet{display:none !important}}@media (min-width: 992px){.hide-desktop{display:none !important}}@media (max-width: 575px){.hide-xs,.hidden-xs,.d-xs-none{display:none !important}.d-xs-flex{display:flex !important}.d-xs-inline-flex{display:inline-flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-block{display:block !important}.d-xs-table{display:table !important}.d-xs-table-row{display:table-row !important}.d-xs-table-cell{display:table-cell !important}}@media (min-width: 576px) and (max-width: 767px){.hide-sm,.hidden-sm,.d-sm-none{display:none !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}}@media (min-width: 768px) and (max-width: 991px){.hide-md,.hidden-md,.d-md-none{display:none !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}}@media (min-width: 992px) and (max-width: 1200px){.hide-lg,.hidden-lg,.d-lg-none{display:none !important}.d-lg-flex{display:flex !important}.d-lg-inline-flex{display:inline-flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}}@media (min-width: 1200px){.hide-xl,.hidden-xl,.d-xl-none{display:none !important}.d-xl-flex{display:flex !important}.d-xl-inline-flex{display:inline-flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}}.mx-tooltip .dijitTooltipContainer{border-width:1px;border-color:#888;border-radius:4px;background:#ffffff;box-shadow:0 6px 12px rgba(0,0,0,0.175)}.mx-tooltip .dijitTooltipContainer .mx-tooltip-content{padding:10px}.mx-tooltip .dijitTooltipContainer .form-group{margin-bottom:5px}.mx-tooltip .dijitTooltipConnector{width:0;height:0;margin-left:-10px;border-width:10px 10px 10px 0;border-style:solid;border-color:transparent;border-right-color:#888}.dijitBorderContainer{padding:5px;background-color:#fcfcfc}.dijitBorderContainer .dijitSplitterV,.dijitBorderContainer .dijitGutterV{width:5px;border:0;background:#fcfcfc}.dijitBorderContainer .dijitSplitterH,.dijitBorderContainer .dijitGutterH{height:5px;border:0;background:#fcfcfc}.dijitBorderContainer .dijitSplitterH .dijitSplitterThumb{top:2px;width:19px;height:1px;background:#b0b0b0}.dijitBorderContainer .dijitSplitterV .dijitSplitterThumb{left:2px;width:1px;height:19px;background:#b0b0b0}.dijitBorderContainer .dijitSplitContainer-child,.dijitBorderContainer .dijitBorderContainer-child{border:1px solid #cccccc}.dijitBorderContainer .dijitBorderContainer-dijitTabContainerTop,.dijitBorderContainer .dijitBorderContainer-dijitTabContainerBottom,.dijitBorderContainer .dijitBorderContainer-dijitTabContainerLeft,.dijitBorderContainer .dijitBorderContainer-dijitTabContainerRight{border:none}.dijitBorderContainer .dijitBorderContainer-dijitBorderContainer{padding:0;border:none}.dijitBorderContainer .dijitSplitterActive{margin:0;opacity:0.6;background-color:#aaaaaa;background-image:none;font-size:1px;filter:alpha(opacity=60)}.dijitBorderContainer .dijitSplitContainer-dijitContentPane,.dijitBorderContainer .dijitBorderContainer-dijitContentPane{padding:5px;background-color:#ffffff}.dijitMenuPopup{margin-top:10px}.dijitMenuPopup .dijitMenu{display:block;width:200px !important;margin-top:0;padding:12px 10px;border-radius:3px;background:#252C36}.dijitMenuPopup .dijitMenu:after{position:absolute;bottom:100%;left:20px;width:0;height:0;margin-left:-10px;content:' ';pointer-events:none;border:medium solid transparent;border-width:10px;border-bottom-color:#252C36}.dijitMenuPopup .dijitMenu .dijitMenuItem{background:transparent}.dijitMenuPopup .dijitMenu .dijitMenuItem .dijitMenuItemLabel{display:block;overflow:hidden;width:180px !important;padding:10px;text-overflow:ellipsis;color:#ffffff;border-radius:3px}.dijitMenuPopup .dijitMenu .dijitMenuItem.dijitMenuItemHover{background:none}.dijitMenuPopup .dijitMenu .dijitMenuItem.dijitMenuItemHover .dijitMenuItemLabel{background:#0595DB}.dijitMenuPopup .dijitMenu .tg_newlabelmenuitem .dijitMenuItemLabel{font-weight:bold}.dijitMenuPopup .dijitMenu .dijitMenuSeparator td{padding:0;border-bottom-width:3px}.dijitMenuPopup .dijitMenu .dijitMenuSeparator .dijitMenuSeparatorIconCell>div{margin:0}div.widget-progress-bar .progress-bar-default{background-color:#ddd}div.widget-progress-bar .progress-bar-primary{background-color:#0595DB}div.widget-progress-bar .progress-bar-success{background-color:#76CA02}div.widget-progress-bar .progress-bar-info{background-color:#48B0F7}div.widget-progress-bar .progress-bar-warning{background-color:#F99B1D}div.widget-progress-bar .progress-bar-danger{background-color:#ED1C24}div.widget-progress-bar .progress-bar-inverse{background-color:#252C36}div.widget-progress-bar-alert.widget-progress-bar-text-contrast .progress-bar{color:#8e1116}div.widget-progress-bar-text-contrast .progress-bar{color:#555}path.widget-progress-circle-path{stroke:#0595DB}.widget-progress-circle-primary path.widget-progress-circle-path{stroke:#0595DB}.widget-progress-circle-primary .progressbar-text{color:#0595DB !important}.widget-progress-circle-info path.widget-progress-circle-path{stroke:#48B0F7}.widget-progress-circle-info .progressbar-text{color:#48B0F7 !important}.widget-progress-circle-success path.widget-progress-circle-path{stroke:#76CA02}.widget-progress-circle-success .progressbar-text{color:#76CA02 !important}.widget-progress-circle-warning path.widget-progress-circle-path{stroke:#F99B1D}.widget-progress-circle-warning .progressbar-text{color:#F99B1D !important}.widget-progress-circle-danger path.widget-progress-circle-path{stroke:#ED1C24}.widget-progress-circle-danger .progressbar-text{color:#ED1C24 !important}.widget-progress-circle-inverse path.widget-progress-circle-path{stroke:#252C36}.widget-progress-circle-inverse .progressbar-text{color:#252C36 !important}div.widget-range-slider .rc-slider-handle,div.widget-range-slider .rc-slider-dot-active{border-color:#ddd}div.widget-range-slider .rc-slider-handle:active,div.widget-range-slider .rc-slider-dot-active:active{border-color:#ddd;box-shadow:none}div.widget-range-slider .rc-slider-handle:hover,div.widget-range-slider .rc-slider-dot-active:hover{border-color:#ddd}div.widget-range-slider.has-error .rc-slider-track,div.widget-range-slider.has-error .rc-slider-rail{background-color:#ED1C24}div.widget-range-slider-primary .rc-slider-track{background-color:#0595DB}div.widget-range-slider-info .rc-slider-track{background-color:#48B0F7}div.widget-range-slider-success .rc-slider-track{background-color:#76CA02}div.widget-range-slider-warning .rc-slider-track{background-color:#F99B1D}div.widget-range-slider-danger .rc-slider-track{background-color:#ED1C24}div.widget-range-slider-inverse .rc-slider-track{background-color:#252C36}.rc-slider-tooltip{z-index:999}div.widget-slider .rc-slider-handle,div.widget-slider .rc-slider-dot-active{border-color:#ddd}div.widget-slider .rc-slider-handle:active,div.widget-slider .rc-slider-dot-active:active{border-color:#ddd}div.widget-slider .rc-slider-handle:hover,div.widget-slider .rc-slider-dot-active:hover{border-color:#ddd}div.widget-slider.has-error .rc-slider-track,div.widget-slider.has-error .rc-slider-rail{background-color:#ED1C24}div.widget-slider-primary .rc-slider-track{background-color:#0595DB}div.widget-slider-info .rc-slider-track{background-color:#48B0F7}div.widget-slider-success .rc-slider-track{background-color:#76CA02}div.widget-slider-warning .rc-slider-track{background-color:#F99B1D}div.widget-slider-danger .rc-slider-track{background-color:#ED1C24}div.widget-slider-inverse .rc-slider-track{background-color:#252C36}span.widget-star-rating-full-default{color:#ddd}span.widget-star-rating-full-primary{color:#0595DB}span.widget-star-rating-full-success{color:#76CA02}span.widget-star-rating-full-info{color:#48B0F7}span.widget-star-rating-full-warning{color:#F99B1D}span.widget-star-rating-full-danger{color:#ED1C24}span.widget-star-rating-full-inverse{color:#252C36}.widget-switch-btn-wrapper:focus{outline:1px solid #0595DB}div.widget-switch.iOS .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-default{border-color:#64bd63;background-color:#64bd63;box-shadow:#64bd63 0 0 0 16px inset}div.widget-switch.iOS .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-success{border-color:#76CA02;background-color:#76CA02;box-shadow:#76CA02 0 0 0 16px inset}div.widget-switch.iOS .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-info{border-color:#48B0F7;background-color:#48B0F7;box-shadow:#48B0F7 0 0 0 16px inset}div.widget-switch.iOS .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-primary{border-color:#0595DB;background-color:#0595DB;box-shadow:#0595DB 0 0 0 16px inset}div.widget-switch.iOS .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-warning{border-color:#F99B1D;background-color:#F99B1D;box-shadow:#F99B1D 0 0 0 16px inset}div.widget-switch.iOS .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-danger{border-color:#ED1C24;background-color:#ED1C24;box-shadow:#ED1C24 0 0 0 16px inset}div.widget-switch.iOS .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-inverse{border-color:#252C36;background-color:#252C36;box-shadow:#252C36 0 0 0 16px inset}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-default{background-color:#92cec7}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-default .widget-switch-btn{background:#6FBEB5}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-success{background-color:#94fd03}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-success .widget-switch-btn{background:#76CA02}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-info{background-color:#79c5f9}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-info .widget-switch-btn{background:#48B0F7}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-primary{background-color:#19b0fa}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-primary .widget-switch-btn{background:#0595DB}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-warning{background-color:#fab14f}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-warning .widget-switch-btn{background:#F99B1D}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-danger{background-color:#f14b52}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-danger .widget-switch-btn{background:#ED1C24}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-inverse{background-color:#3a4554}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-inverse .widget-switch-btn{background:#252C36}div.widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-default{border-color:#64bd63;background-color:#64bd63;box-shadow:#64bd63 0 0 0 16px inset}div.widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-success{border-color:#76CA02;background-color:#76CA02;box-shadow:#76CA02 0 0 0 16px inset}div.widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-info{border-color:#48B0F7;background-color:#48B0F7;box-shadow:#48B0F7 0 0 0 16px inset}div.widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-primary{border-color:#0595DB;background-color:#0595DB;box-shadow:#0595DB 0 0 0 16px inset}div.widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-warning{border-color:#F99B1D;background-color:#F99B1D;box-shadow:#F99B1D 0 0 0 16px inset}div.widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-danger{border-color:#ED1C24;background-color:#ED1C24;box-shadow:#ED1C24 0 0 0 16px inset}div.widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-inverse{border-color:#252C36;background-color:#252C36;box-shadow:#252C36 0 0 0 16px inset}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-default{background-color:#92cec7}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-default .widget-switch-btn{background:#6FBEB5}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-success{background-color:#94fd03}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-success .widget-switch-btn{background:#76CA02}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-info{background-color:#79c5f9}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-info .widget-switch-btn{background:#48B0F7}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-primary{background-color:#19b0fa}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-primary .widget-switch-btn{background:#0595DB}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-warning{background-color:#fab14f}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-warning .widget-switch-btn{background:#F99B1D}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-danger{background-color:#f14b52}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-danger .widget-switch-btn{background:#ED1C24}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-inverse{background-color:#3a4554}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-inverse .widget-switch-btn{background:#252C36}html div.dj_ios .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-default{border-color:#64bd63;background-color:#64bd63;box-shadow:#64bd63 0 0 0 16px inset}html div.dj_ios .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-success{border-color:#76CA02;background-color:#76CA02;box-shadow:#76CA02 0 0 0 16px inset}html div.dj_ios .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-info{border-color:#48B0F7;background-color:#48B0F7;box-shadow:#48B0F7 0 0 0 16px inset}html div.dj_ios .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-primary{border-color:#0595DB;background-color:#0595DB;box-shadow:#0595DB 0 0 0 16px inset}html div.dj_ios .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-warning{border-color:#F99B1D;background-color:#F99B1D;box-shadow:#F99B1D 0 0 0 16px inset}html div.dj_ios .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-danger{border-color:#ED1C24;background-color:#ED1C24;box-shadow:#ED1C24 0 0 0 16px inset}html div.dj_ios .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-inverse{border-color:#252C36;background-color:#252C36;box-shadow:#252C36 0 0 0 16px inset}.breadcrumb{margin:0;padding:0;border-radius:0;background-color:transparent;font-size:14px}.breadcrumb-item{display:inline-block;margin:0}.breadcrumb-item:last-child{color:#555}.breadcrumb-item:last-child a{text-decoration:none}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:10px;padding-left:10px;content:"/";color:#888}.breadcrumb-large{font-size:24px}.breadcrumb-underline{padding-bottom:15px;border-bottom:1px solid #D7D7D7}.card{padding:30px;border:1px solid #D7D7D7;border-radius:4px;background-color:#FFFFFF}.card-title{margin-top:0}.cardaction .card-image .glyphicon{font-size:58px}.cardmetrics .card-title{margin-bottom:0}.cardmetrics .card-image{width:100px;height:auto}.cardmetrics .card-image.btn{width:100px;height:100px;padding:0;cursor:default;pointer-events:none;font-size:40px}.cardmetrics .card-counter{margin:0;font-size:64px}.cardinfo .card-text{margin-bottom:30px}.textwithicon{overflow:hidden;max-width:100%;margin-bottom:15px;text-overflow:ellipsis}.textwithicon .textwithicon-icon,.textwithicon .textwithicon-text{display:inline-block;vertical-align:middle}.textwithicon .textwithicon-icon{margin-right:15px;padding:0;color:#0595DB;border:0;background:transparent;font-size:23px}.socialprofiles .socialprofiles-title{display:block;margin-bottom:10px;font-weight:bold}.socialprofiles .socialprofiles-button{width:24px;height:24px;margin-right:15px;padding:0;border-radius:24px}.socialprofiles .socialprofiles-button .glyphicon{margin:0}.cardtabs{padding:0}.cardtabs-tabs{margin:0}.cardtabs-tabs ul.mx-tabcontainer-tabs{display:flex;margin:0;background-color:#f7f7f7}.cardtabs-tabs ul.mx-tabcontainer-tabs li{flex:1 1 auto;text-align:center}.cardtabs-tabs ul.mx-tabcontainer-tabs li a,.cardtabs-tabs ul.mx-tabcontainer-tabs li a:hover,.cardtabs-tabs ul.mx-tabcontainer-tabs li a:focus{border-top-width:0;border-right-width:1px;border-left-width:0}.cardtabs-tabs ul.mx-tabcontainer-tabs li:first-child a{border-radius:4px 0 0 0}.cardtabs-tabs ul.mx-tabcontainer-tabs li:last-child a{border-radius:0 4px 0 0}@media (max-width: 767px){.cardtabs-tabs .mx-tabcontainer-pane{padding:15px}}@media (min-width: 768px){.cardtabs-tabs .mx-tabcontainer-pane{padding:30px}}@media (min-width: 992px){.cardtabs-tabs .mx-tabcontainer-pane{padding:30px}}.cardproduct,.cardproduct2,.cardproduct3{padding:0}.cardproduct-header{position:relative;overflow:hidden;height:200px}.cardproduct-header .card-image{position:absolute;top:0;left:0;width:100%;height:auto}.cardproduct-overlay{position:absolute;bottom:0;left:0;width:100%;padding:20px 30px;background:rgba(0,0,0,0.6)}.cardproduct-overlay-category,.cardproduct-overlay-title{margin:0;color:#FFFFFF}.cardproduct-footer .col{padding:20px 30px}.cardproduct-footer .col .widget-star-rating-font{font-size:20px}.cardproduct-name{margin:0}.cardproduct-btn{display:flex;align-items:center;height:100%;padding:30px;border-left:1px solid #D7D7D7}.cardproduct2 .cardproduct-header::after{position:absolute;bottom:0;left:0;display:block;width:100%;padding:20px 30px;content:"";background:rgba(0,0,0,0.6);background:-moz-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(250,250,250,0) 2%, rgba(0,0,0,0.99) 99%, #000 100%);background:-webkit-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(250,250,250,0) 2%, rgba(0,0,0,0.99) 99%, #000 100%);background:linear-gradient(to bottom, rgba(255,255,255,0) 0%, rgba(250,250,250,0) 2%, rgba(0,0,0,0.99) 99%, #000 100%)}.cardproduct3 .cardproduct-header{height:320px}.cardproduct3 .cardproduct-header img{width:100%;height:100%;object-fit:cover}.cardproduct3 .cardproduct-overlay{min-height:100px;padding:30px;background:-moz-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(250,250,250,0) 8%, rgba(0,0,0,0.99) 121%, #000 100%);background:-webkit-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(250,250,250,0) 8%, rgba(0,0,0,0.99) 121%, #000 100%);background:linear-gradient(to bottom, rgba(255,255,255,0) 0%, rgba(250,250,250,0) 8%, rgba(0,0,0,0.99) 121%, #000 100%);font-size:14px}.cardstatus{padding:20px}.cardstatus .card-linkicon{font-size:30px}.cardstatus .cardstatus-status{margin-bottom:5px}.cardprogress-state{width:80px;height:80px;padding:0;cursor:default;pointer-events:none;border-radius:100%;font-size:28px}.cardhighlight{border-top:4px solid #0595DB}.cardchat{overflow:hidden;padding:0}.cardchat .chat{height:400px}@media screen and (max-width: 991px){.widget-charts:not([height]),.widget-charts-line:not([height]){padding-bottom:80% !important}}@media screen and (max-width: 1199px){.cardprogress .cardprogress-state{width:60px;height:60px;font-size:24px}}.chat{display:flex;flex-direction:column;height:100%;background-color:#F5F8FD}.chat-content{display:flex;overflow:auto;flex:1;flex-direction:column;justify-content:flex-end}.chat-content .chat-list{position:relative;overflow:auto}.chat-content .chat-list ul{display:flex;flex-direction:column-reverse;margin-bottom:15px}.chat-content .chat-list li{padding:15px 30px;animation:fadeIn 0.2s;background-color:transparent;animation-fill-mode:both}.chat-content .chat-list li,.chat-content .chat-list li:last-child{border:0}.chat-content .chat-list .mx-listview-loadMore{position:absolute;top:0;right:0;left:0;display:block;width:50%;margin:15px auto;color:#FFFFFF;background-color:#0595DB;box-shadow:0 2px 20px 0 rgba(0,0,0,0.05)}.chat-message{display:flex}.chat-avatar{margin:0 20px 0 0;border-radius:50%}.chat-message-content{display:inline-flex;flex-direction:column}.chat-message-balloon{position:relative;display:flex;flex-direction:column;padding:10px 15px;border-radius:5px;background-color:#fff}.chat-message-balloon::after{position:absolute;top:10px;right:100%;width:0;height:0;content:'';border:10px solid transparent;border-top:0;border-right-color:#fff;border-left:0}.chat-message-time{padding-top:2px}.chat-message-time .form-control-static,.chat-message-time .form-group div[class*='textBox']>.control-label,.form-group .chat-message-time div[class*='textBox']>.control-label,.chat-message-time .form-group div[class*='textArea']>.control-label,.form-group .chat-message-time div[class*='textArea']>.control-label,.chat-message-time .form-group div[class*='datePicker']>.control-label,.form-group .chat-message-time div[class*='datePicker']>.control-label{border:0}.chat-footer{z-index:1;padding:15px;background-color:#fff;box-shadow:0 2px 20px 0 rgba(0,0,0,0.05)}.chat-input{display:flex}.chat-input .chat-textbox{flex:1;margin-right:30px;margin-bottom:0}.chat-input .chat-textbox .form-control{border:0}.chat-message-self{justify-content:flex-end}.chat-message-self .chat-avatar{margin:0 0 0 20px}.chat-message-self .chat-message-balloon{background-color:#cdeaf8}.chat-message-self .chat-message-balloon::after{left:100%;border:10px solid transparent;border-top:0;border-right:0;border-left-color:#cdeaf8}.chat-message-self .chat-message-time{text-align:right}.controlgroup .btn,.controlgroup .btn-group{margin-right:5px;margin-bottom:5px}.controlgroup .btn:last-child,.controlgroup .btn-group:last-child{margin-right:0}.controlgroup .btn .btn,.controlgroup .btn-group .btn{margin-right:0;margin-bottom:0}.controlgroup .btn-group .btn+.btn{margin-left:-1px}.fullpageblock{position:relative;height:100%;min-height:100%}.fullpageblock .fullheight{height:100% !important}.fullpageblock .fullheight>.mx-dataview-content{height:inherit !important}.fullpageblock .fullpage-overlay{position:absolute;z-index:10;bottom:0;left:0;width:100%}.pageheader{border-bottom:1px solid #D7D7D7;background:#F5F8FD}.mx-scrollcontainer .mx-placeholder .mx-layoutgrid .pageheader{background:transparent}@media (max-width: 767px){.mx-scrollcontainer .mx-placeholder .mx-layoutgrid .pageheader{margin-bottom:15px}}@media (min-width: 768px){.mx-scrollcontainer .mx-placeholder .mx-layoutgrid .pageheader{margin-bottom:30px}}@media (min-width: 992px){.mx-scrollcontainer .mx-placeholder .mx-layoutgrid .pageheader{margin-bottom:30px}}@media (max-width: 767px){.mx-scrollcontainer .mx-placeholder .mx-layoutgrid .pageheader{padding-bottom:15px}}@media (min-width: 768px){.mx-scrollcontainer .mx-placeholder .mx-layoutgrid .pageheader{padding-bottom:30px}}@media (min-width: 992px){.mx-scrollcontainer .mx-placeholder .mx-layoutgrid .pageheader{padding-bottom:30px}}.pageheader-type{margin:0}.pageheader-title{margin:0}.pageheader-subtitle{margin:0}.pageheaderwithsearch .pageheader-title{margin-bottom:1em}.heroheader{border-bottom:1px solid #D7D7D7;background:#F5F8FD}.heroheader-title{margin:0 0 10px 0}.heroheader-subtitle{margin:0;padding:0 15px}.heroheader-subtitle::before{display:block;max-width:330px;height:1px;margin:auto auto 10px auto;content:"";background-color:#e1e1e1}.heroheader1{background-image:linear-gradient(152deg, #0CC7F0 0%, #087ECC 51%, #077AC9 55%, #0659B9 78%)}.heroheader1 .heroheader-title{margin-bottom:10px;color:#FFFFFF}.heroheader1 .heroheader-subtitle{padding:0;color:#FFFFFF}.heroheader1 .heroheader-subtitle::before{display:none}.heroheadermap{padding:0 !important}.heroheadermap-controls{padding:30px;background:#F5F8FD}.heroheaderproduct{position:relative;overflow:hidden;height:300px;background-color:#000000}.heroheaderproduct .heroheaderproduct-backgroundimage{position:absolute;z-index:0;top:0;width:100%;opacity:0.7;filter:blur(5px)}.heroheaderproduct .heroheaderproduct-overlay{position:absolute;z-index:1;top:50%;left:50%;transform:translate(-50%, -50%)}.heroheaderexpense .heroheaderexpense-title{font-size:72px}.heroheaderexpense .heroheaderexpense-type{align-items:center}.heroheaderexpense .heroheaderexpense-type::before{flex-grow:1;height:1px;margin-right:10px;content:"";background-color:#D2D2D2}.formblock-title{margin-bottom:15px;padding-bottom:15px;border-bottom:1px solid #D7D7D7}.masterdetail .masterdetail-master .controlgroup{margin-bottom:15px}@media (max-width: 992px) and (max-width: 767px){.masterdetail .masterdetail-master{margin-bottom:15px}}@media (max-width: 992px) and (min-width: 768px){.masterdetail .masterdetail-master{margin-bottom:30px}}@media (max-width: 992px) and (min-width: 992px){.masterdetail .masterdetail-master{margin-bottom:30px}}@media (min-width: 992px){.masterdetail .masterdetail-master{border-right:1px solid #D7D7D7}.masterdetail .masterdetail-master .mx-listview-searchbar{margin:15px}.masterdetail .masterdetail-master .controlgroup{padding:15px;border-bottom:1px solid #D7D7D7}}@media (min-width: 992px) and (max-width: 767px){.masterdetail .masterdetail-detail{padding:15px 15px 15px 15px}}@media (min-width: 992px) and (min-width: 768px){.masterdetail .masterdetail-detail{padding:30px 30px 30px 30px}}@media (min-width: 992px) and (min-width: 992px){.masterdetail .masterdetail-detail{padding:30px 30px 30px 30px}}@media (max-width: 767px){.masterdetailvertical .masterdetail-master{margin-bottom:15px}}@media (min-width: 768px){.masterdetailvertical .masterdetail-master{margin-bottom:30px}}@media (min-width: 992px){.masterdetailvertical .masterdetail-master{margin-bottom:30px}}@media (max-width: 767px){.masterdetailvertical .masterdetail-detail{padding-top:15px}}@media (min-width: 768px){.masterdetailvertical .masterdetail-detail{padding-top:30px}}@media (min-width: 992px){.masterdetailvertical .masterdetail-detail{padding-top:30px}}.wizard{display:flex;justify-content:space-between}.wizard .wizard-step{position:relative;width:100%;text-align:center}.wizard .wizard-step::before{position:absolute;z-index:-1;top:30px;display:block;width:100%;height:2px;content:"";background-color:#D7D7D7}.wizard .wizard-step .wizard-step-number{width:60px;height:60px;border-color:#D7D7D7;border-radius:50%;background-color:#FFFFFF;font-size:20px}.wizard .wizard-step .wizard-step-text{display:block;margin-top:15px}.wizard .wizard-step-active .wizard-step-number{color:#FFFFFF;border-color:#0595DB;background-color:#0595DB}.wizard .wizard-step-active .wizard-step-text{color:#0595DB}.wizard .wizard-step-visited .wizard-step-number{color:#FFFFFF;border-color:#76CA02;background-color:#76CA02}.wizardprogress{display:flex;justify-content:space-between}.wizardprogress .wizard-step-text{width:100%}.wizardprogress .wizard-step{position:relative;width:100%;height:50px;margin-left:-25px;padding-left:25px;border:1px solid #D7D7D7;background:#FFFFFF}.wizardprogress .wizard-step a{display:block;overflow:hidden;width:100%;height:100%;padding:14px;white-space:nowrap;text-decoration:none;text-overflow:ellipsis;color:#555}.wizardprogress .wizard-step::before,.wizardprogress .wizard-step::after{position:absolute;z-index:1;left:100%;margin-left:-25px;content:" ";border-style:solid;border-color:transparent}.wizardprogress .wizard-step::after{top:1px;border-width:24px;border-left-color:#FFFFFF}.wizardprogress .wizard-step::before{top:0;border-width:25px;border-left-color:#D7D7D7}.wizardprogress .wizard-step:first-child{margin-left:0;padding-left:0;border-radius:5px 0 0 5px}.wizardprogress .wizard-step:last-child{border-radius:0 5px 5px 0}.wizardprogress .wizard-step:last-child::before,.wizardprogress .wizard-step:last-child::after{display:none}.wizardprogress .wizard-step-active{background:#0595DB}.wizardprogress .wizard-step-active a{text-decoration:none;color:#FFFFFF}.wizardprogress .wizard-step-active::after{border-left-color:#0595DB}.wizardprogress .wizard-step-visited a{color:#0595DB}.timeline .timeline-header{display:inline-block;width:110px;padding:8px;text-align:center;border:1px solid #D7D7D7;border-radius:30px}.timeline-itemwrapper.mx-listview{margin-bottom:0;margin-left:55px;padding:30px 0;border-left:1px solid #D7D7D7}.timeline-itemwrapper.mx-listview>ul>li{position:relative;padding-left:30px}.timeline-itemwrapper.mx-listview>ul>li::before{position:absolute;top:5px;left:-5px;display:block;width:10px;height:10px;content:'';border-radius:50%;background-color:#0595DB}.timeline-itemwrapper.mx-listview li+li{margin-top:30px}.timeline2 .timeline-itemwrapper.mx-listview>ul>li{padding-left:15px}.layout-atlas .toggle-btn>.glyphicon{margin:0}.layout-atlas .region-sidebar{background-color:#252C36}.layout-atlas .region-sidebar .mx-navigationtree .navbar-inner>ul>li>a{padding:0 15px}.layout-atlas .region-sidebar .mx-navigationtree .navbar-inner>ul>li>a .glyphicon{margin-right:10px}.layout-atlas .region-sidebar .toggle-btn{border-color:transparent;border-radius:0;background:transparent}.layout-atlas .region-topbar{position:relative;z-index:1;min-height:60px;border-bottom:1px solid #D7D7D7;background-color:#fff;box-shadow:0 1px 4px 0 rgba(0,0,0,0.14)}.layout-atlas .region-topbar::before{z-index:1;display:block;width:100%;height:4px;content:"";background-color:#0595DB}.layout-atlas .region-topbar .topbar-content{display:flex;align-items:center;min-height:60px}.layout-atlas .region-topbar .toggle-btn{margin-right:15px;padding:5px}.layout-atlas .region-topbar .navbar-brand{display:inline-block;float:none;height:auto;padding:0;line-height:inherit}.layout-atlas .region-topbar .navbar-brand img{display:inline-block;width:auto;height:30px}.layout-atlas .region-topbar .navbar-brand a{margin-left:5px;color:#D7D7D7;font-size:20px}.layout-atlas .region-topbar .navbar-brand a:hover,.layout-atlas .region-topbar .navbar-brand a:focus{text-decoration:none}.layout-atlas .region-topbar .mx-navbar{display:inline-block;margin-left:15px;vertical-align:middle;background:transparent}.layout-atlas .region-topbar .mx-navbar>.mx-navbar-item>a{margin-top:5px;padding:0 20px}.layout-atlas-phone .region-topbar{min-height:45px;border-style:none;background-color:#fff}.layout-atlas-phone .region-topbar::before{display:none}@media (min-width: 768px){.layout-atlas-responsive-default .mx-scrollcontainer:not(.mx-scrollcontainer-open)>.region-sidebar{width:60px !important}.layout-atlas-responsive-default .mx-scrollcontainer:not(.mx-scrollcontainer-open)>.region-sidebar .mx-scrollcontainer-wrapper>.mx-navigationtree ul li.mx-navigationtree-has-items:hover a{background-color:#1d222a}.layout-atlas-responsive-default .mx-scrollcontainer:not(.mx-scrollcontainer-open)>.region-sidebar .mx-scrollcontainer-wrapper>.mx-navigationtree ul li.mx-navigationtree-has-items:hover ul{position:absolute;z-index:100;top:0;bottom:0;left:60px;display:block;overflow-y:auto;min-width:200px;padding-top:10px}.layout-atlas-responsive-default .mx-scrollcontainer:not(.mx-scrollcontainer-open)>.region-sidebar .mx-scrollcontainer-wrapper>.mx-navigationtree ul li.mx-navigationtree-collapsed ul,.layout-atlas-responsive-default .mx-scrollcontainer:not(.mx-scrollcontainer-open)>.region-sidebar .mx-scrollcontainer-wrapper>.mx-navigationtree ul li.mx-navigationtree-has-items ul{display:none}}.layout-atlas-responsive-default .mx-scrollcontainer-slide.mx-scrollcontainer-open>.region-sidebar{width:60px !important}@media (max-width: 767px){.layout-atlas-responsive-default .mx-scrollcontainer-open:not(.mx-scrollcontainer-slide){width:1100px}.layout-atlas-responsive-default .mx-scrollcontainer-slide .toggle-btn{display:inline-block !important}}.layout-atlas-responsive-default .region-sidebar .toggle-btn{width:60px;height:60px;border-color:transparent;border-radius:0;background:transparent}.layout-atlas-responsive-default .region-sidebar .mx-scrollcontainer-wrapper>.mx-navigationtree .navbar-inner>ul>li>a{height:60px}.layout-atlas-responsive-default .region-sidebar .mx-scrollcontainer-wrapper>.mx-navigationtree .navbar-inner>ul>li>a .glyphicon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;margin-left:-5px;padding:10px;border-radius:3px}.layout-atlas-responsive-default .region-sidebar .mx-scrollcontainer-wrapper>.mx-navigationtree .navbar-inner>ul>li>a.active .glyphicon{background:#0595DB}.layout-atlas-responsive-topbar .mx-scrollcontainer-slide:not(.mx-scrollcontainer-open)>.region-sidebar,.layout-atlas-responsive-topbar .mx-scrollcontainer-push:not(.mx-scrollcontainer-open)>.region-sidebar{visibility:hidden}.layout-atlas-responsive-default .region-topbar .toggle-btn,.layout-atlas-responsive-topbar .region-topbar .toggle-btn{display:none}@media (max-width: 767px){.layout-atlas-responsive-default .region-topbar .toggle-btn,.layout-atlas-responsive-topbar .region-topbar .toggle-btn{display:inline-block}}.layout-atlas-responsive-default .mx-scrollcontainer-slide:not(.mx-scrollcontainer-open)>.region-sidebar,.layout-atlas-responsive-topbar .mx-scrollcontainer-slide:not(.mx-scrollcontainer-open)>.region-sidebar{overflow:hidden}.layout-atlas-responsive-default .mx-scrollcontainer-slide.mx-scrollcontainer-open>.region-sidebar>.mx-scrollcontainer-wrapper,.layout-atlas-responsive-topbar .mx-scrollcontainer-slide.mx-scrollcontainer-open>.region-sidebar>.mx-scrollcontainer-wrapper{position:relative}.layout-atlas-responsive-default .mx-scrollcontainer-slide .region-sidebar>.mx-scrollcontainer-wrapper,.layout-atlas-responsive-topbar .mx-scrollcontainer-slide .region-sidebar>.mx-scrollcontainer-wrapper{z-index:2;background-color:inherit}.profile-tablet .mx-scrollcontainer:not(.mx-scrollcontainer-open)>.region-sidebar{overflow-y:hidden}.profile-tablet .mx-scrollcontainer:not(.mx-scrollcontainer-open)>.region-sidebar .mx-scrollcontainer-wrapper{overflow:visible} - -/*# sourceMappingURL=main.css.map */ diff --git a/theme/styles/web/css/main.css.map b/theme/styles/web/css/main.css.map deleted file mode 100644 index 2f6d31b..0000000 --- a/theme/styles/web/css/main.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"main.css","sources":["main.scss","core/_legacy/bootstrap/_bootstrap.scss","core/_legacy/bootstrap/_bootstrap-rtl.scss","core/_legacy/_mxui.scss","app/_custom-variables.scss","core/_variables.scss","core/base/mixins/_animations.scss","core/base/mixins/_spacing.scss","core/base/mixins/_layout-spacing.scss","core/base/mixins/_buttons.scss","core/base/mixins/_groupbox.scss","core/base/_animation.scss","core/base/_flex.scss","core/base/_spacing.scss","core/base/_reset.scss","core/base/_base.scss","core/base/_login.scss","core/widgets/_inputs.scss","core/widgets/_alerts.scss","core/helpers/_alerts.scss","core/helpers/_backgrounds.scss","core/widgets/_buttons.scss","core/helpers/_buttons.scss","core/widgets/_checkbox.scss","core/widgets/_grid.scss","core/widgets/_datagrids.scss","core/helpers/_datagrids.scss","core/widgets/_dataview.scss","core/widgets/_datepicker.scss","core/widgets/_header.scss","core/widgets/_glyphicons.scss","core/widgets/_groupbox.scss","core/helpers/_groupbox.scss","core/helpers/_images.scss","core/widgets/_labels.scss","core/helpers/_labels.scss","core/widgets/_listview.scss","core/helpers/_listview.scss","core/widgets/_modals.scss","core/widgets/_navigationbar.scss","core/helpers/_navigationbar.scss","core/widgets/_navigationlist.scss","core/widgets/_navigationtree.scss","core/helpers/_navigationtree.scss","core/widgets/_popupmenu.scss","core/widgets/_simplemenubar.scss","core/helpers/_simplemenubar.scss","core/widgets/_radiobuttons.scss","core/widgets/_tabcontainer.scss","core/helpers/_tabcontainer.scss","core/widgets/_tables.scss","core/helpers/_tables.scss","core/widgets/_templategrids.scss","core/helpers/_templategrids.scss","core/widgets/_typography.scss","core/helpers/_typography.scss","core/widgets/_layoutgrid.scss","core/widgets/_progress.scss","core/widgets/_timeline.scss","core/helpers/_helperclasses.scss","core/widgetscustom/_dijit-widgets.scss","core/widgetscustom/_progress-bar-theme.scss","core/widgetscustom/_progress-circle-theme.scss","core/widgetscustom/_range-slider-theme.scss","core/widgetscustom/_slider-theme.scss","core/widgetscustom/_star-rating-theme.scss","core/widgetscustom/_switchwidget.scss","ui_resources/atlas_ui_resources/buildingblocks/_breadcrumb.scss","ui_resources/atlas_ui_resources/buildingblocks/_card.scss","ui_resources/atlas_ui_resources/buildingblocks/_chat.scss","ui_resources/atlas_ui_resources/buildingblocks/_controlgroup.scss","ui_resources/atlas_ui_resources/buildingblocks/_pageblocks.scss","ui_resources/atlas_ui_resources/buildingblocks/_pageheader.scss","ui_resources/atlas_ui_resources/buildingblocks/_heroheader.scss","ui_resources/atlas_ui_resources/buildingblocks/_formblock.scss","ui_resources/atlas_ui_resources/buildingblocks/_master-detail.scss","ui_resources/atlas_ui_resources/buildingblocks/_userprofile.scss","ui_resources/atlas_ui_resources/buildingblocks/_wizard.scss","ui_resources/atlas_ui_resources/buildingblocks/_timeline.scss","ui_resources/atlas_ui_resources/layouts/_layout-atlas.scss","ui_resources/atlas_ui_resources/layouts/_layout-atlas-phone.scss","ui_resources/atlas_ui_resources/layouts/_layout-atlas-responsive.scss","ui_resources/atlas_ui_resources/layouts/_layout-atlas-tablet.scss","app/_custom.scss"],"sourcesContent":["// Utilities\n@import 'core/_legacy/bootstrap/bootstrap';\n@import 'core/_legacy/bootstrap/bootstrap-rtl';\n@import 'core/_legacy/mxui';\n\n// Custom variables\n@import 'app/custom-variables';\n\n//================================== CORE ==================================\\\\\n\n// Default variables\n@import 'core/variables';\n\n// Base\n@import 'core/base/mixins/animations';\n@import 'core/base/mixins/spacing';\n@import 'core/base/mixins/layout-spacing';\n@import 'core/base/mixins/buttons';\n@import 'core/base/mixins/groupbox';\n@import 'core/base/animation';\n@import 'core/base/flex';\n@import 'core/base/spacing';\n@import 'core/base/reset';\n@import 'core/base/base';\n@import 'core/base/login';\n\n// Widgets\n@import 'core/widgets/inputs';\n@import 'core/widgets/alerts';\n@import 'core/helpers/alerts';\n@import 'core/helpers/backgrounds';\n@import 'core/widgets/buttons';\n@import 'core/helpers/buttons';\n@import 'core/widgets/checkbox';\n@import 'core/widgets/grid';\n@import 'core/widgets/datagrids';\n@import 'core/helpers/datagrids';\n@import 'core/widgets/dataview';\n@import 'core/widgets/datepicker';\n@import 'core/widgets/header';\n@import 'core/widgets/glyphicons';\n@import 'core/widgets/groupbox';\n@import 'core/helpers/groupbox';\n@import 'core/helpers/images';\n@import 'core/widgets/labels';\n@import 'core/helpers/labels';\n@import 'core/widgets/listview';\n@import 'core/helpers/listview';\n@import 'core/widgets/modals';\n@import 'core/widgets/navigationbar';\n@import 'core/helpers/navigationbar';\n@import 'core/widgets/navigationlist';\n@import 'core/widgets/navigationtree';\n@import 'core/helpers/navigationtree';\n@import 'core/widgets/popupmenu';\n@import 'core/widgets/simplemenubar';\n@import 'core/helpers/simplemenubar';\n@import 'core/widgets/radiobuttons';\n@import 'core/widgets/tabcontainer';\n@import 'core/helpers/tabcontainer';\n@import 'core/widgets/tables';\n@import 'core/helpers/tables';\n@import 'core/widgets/templategrids';\n@import 'core/helpers/templategrids';\n@import 'core/widgets/typography';\n@import 'core/helpers/typography';\n@import 'core/widgets/layoutgrid';\n@import 'core/widgets/progress';\n@import 'core/widgets/timeline';\n@import 'core/helpers/helperclasses';\n\n// Custom widgets\n@import 'core/widgetscustom/dijit-widgets';\n@import 'core/widgetscustom/progress-bar-theme';\n@import 'core/widgetscustom/progress-circle-theme';\n@import 'core/widgetscustom/range-slider-theme';\n@import 'core/widgetscustom/slider-theme';\n@import 'core/widgetscustom/star-rating-theme';\n@import 'core/widgetscustom/switchwidget';\n\n//================================= CUSTOM =================================\\\\\n\n// Building blocks\n@import 'ui_resources/atlas_ui_resources/buildingblocks/breadcrumb';\n@import 'ui_resources/atlas_ui_resources/buildingblocks/card';\n@import 'ui_resources/atlas_ui_resources/buildingblocks/chat';\n@import 'ui_resources/atlas_ui_resources/buildingblocks/controlgroup';\n@import 'ui_resources/atlas_ui_resources/buildingblocks/pageblocks';\n@import 'ui_resources/atlas_ui_resources/buildingblocks/pageheader';\n@import 'ui_resources/atlas_ui_resources/buildingblocks/heroheader';\n@import 'ui_resources/atlas_ui_resources/buildingblocks/formblock';\n@import 'ui_resources/atlas_ui_resources/buildingblocks/master-detail';\n@import 'ui_resources/atlas_ui_resources/buildingblocks/userprofile';\n@import 'ui_resources/atlas_ui_resources/buildingblocks/wizard';\n@import 'ui_resources/atlas_ui_resources/buildingblocks/timeline';\n\n// Layouts\n@import 'ui_resources/atlas_ui_resources/layouts/layout-atlas';\n@import 'ui_resources/atlas_ui_resources/layouts/layout-atlas-phone';\n@import 'ui_resources/atlas_ui_resources/layouts/layout-atlas-responsive';\n@import 'ui_resources/atlas_ui_resources/layouts/layout-atlas-tablet';\n\n// Custom\n@import 'app/custom';\n","/*!\n * Bootstrap v3.3.4 (http://getbootstrap.com)\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n/*! normalize.css v3.0.2 | MIT License | git.io/normalize */\nhtml {\n font-family: sans-serif;\n -webkit-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n}\nbody {\n margin: 0;\n}\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block;\n vertical-align: baseline;\n}\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n[hidden],\ntemplate {\n display: none;\n}\na {\n background-color: transparent;\n}\na:active,\na:hover {\n outline: 0;\n}\nabbr[title] {\n border-bottom: 1px dotted;\n}\nb,\nstrong {\n font-weight: bold;\n}\ndfn {\n font-style: italic;\n}\nh1 {\n margin: 0.67em 0;\n font-size: 2em;\n}\nmark {\n color: #000;\n background: #ff0;\n}\nsmall {\n font-size: 80%;\n}\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\nsup {\n top: -0.5em;\n}\nsub {\n bottom: -0.25em;\n}\nimg {\n border: 0;\n}\nsvg:not(:root) {\n overflow: hidden;\n}\nfigure {\n margin: 1em 40px;\n}\nhr {\n height: 0;\n -webkit-box-sizing: content-box;\n -moz-box-sizing: content-box;\n box-sizing: content-box;\n}\npre {\n overflow: auto;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n margin: 0;\n font: inherit;\n color: inherit;\n}\nbutton {\n overflow: visible;\n}\nbutton,\nselect {\n text-transform: none;\n}\nbutton,\nhtml input[type='button'],\ninput[type='reset'],\ninput[type='submit'] {\n -webkit-appearance: button;\n cursor: pointer;\n}\n//button[disabled],\n//html input[disabled] {\n// cursor: default;\n//}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n padding: 0;\n border: 0;\n}\ninput {\n line-height: normal;\n}\ninput[type='checkbox'],\ninput[type='radio'] {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n padding: 0;\n}\ninput[type='number']::-webkit-inner-spin-button,\ninput[type='number']::-webkit-outer-spin-button {\n height: auto;\n}\ninput[type='search'] {\n -webkit-box-sizing: content-box;\n -moz-box-sizing: content-box;\n box-sizing: content-box;\n -webkit-appearance: textfield;\n}\ninput[type='search']::-webkit-search-cancel-button,\ninput[type='search']::-webkit-search-decoration {\n -webkit-appearance: none;\n}\nfieldset {\n padding: 0.35em 0.625em 0.75em;\n margin: 0 2px;\n border: 1px solid #c0c0c0;\n}\nlegend {\n padding: 0;\n border: 0;\n}\ntextarea {\n overflow: auto;\n}\noptgroup {\n font-weight: bold;\n}\ntable {\n border-spacing: 0;\n border-collapse: collapse;\n}\ntd,\nth {\n padding: 0;\n}\n/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n@media print {\n *,\n *:before,\n *:after {\n color: #000 !important;\n text-shadow: none !important;\n background: transparent !important;\n -webkit-box-shadow: none !important;\n box-shadow: none !important;\n }\n a,\n a:visited {\n text-decoration: underline;\n }\n a[href]:after {\n content: ' (' attr(href) ')';\n }\n abbr[title]:after {\n content: ' (' attr(title) ')';\n }\n a[href^='#']:after,\n a[href^='javascript:']:after {\n content: '';\n }\n pre,\n blockquote {\n border: 1px solid #999;\n\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n img {\n max-width: 100% !important;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n select {\n background: #fff !important;\n }\n .navbar {\n display: none;\n }\n .btn > .caret,\n .dropup > .btn > .caret {\n border-top-color: #000 !important;\n }\n .label {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #ddd !important;\n }\n}\n@font-face {\n font-family: 'Glyphicons Halflings';\n src: url('./fonts/glyphicons-halflings-regular.woff2') format('woff2'),\n url('./fonts/glyphicons-halflings-regular.woff') format('woff');\n}\n.glyphicon {\n position: relative;\n top: 1px;\n display: inline-block;\n font-family: 'Glyphicons Halflings';\n font-style: normal;\n font-weight: normal;\n line-height: 1;\n\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n.glyphicon-asterisk:before {\n content: '\\2a';\n}\n.glyphicon-plus:before {\n content: '\\2b';\n}\n.glyphicon-euro:before,\n.glyphicon-eur:before {\n content: '\\20ac';\n}\n.glyphicon-minus:before {\n content: '\\2212';\n}\n.glyphicon-cloud:before {\n content: '\\2601';\n}\n.glyphicon-envelope:before {\n content: '\\2709';\n}\n.glyphicon-pencil:before {\n content: '\\270f';\n}\n.glyphicon-glass:before {\n content: '\\e001';\n}\n.glyphicon-music:before {\n content: '\\e002';\n}\n.glyphicon-search:before {\n content: '\\e003';\n}\n.glyphicon-heart:before {\n content: '\\e005';\n}\n.glyphicon-star:before {\n content: '\\e006';\n}\n.glyphicon-star-empty:before {\n content: '\\e007';\n}\n.glyphicon-user:before {\n content: '\\e008';\n}\n.glyphicon-film:before {\n content: '\\e009';\n}\n.glyphicon-th-large:before {\n content: '\\e010';\n}\n.glyphicon-th:before {\n content: '\\e011';\n}\n.glyphicon-th-list:before {\n content: '\\e012';\n}\n.glyphicon-ok:before {\n content: '\\e013';\n}\n.glyphicon-remove:before {\n content: '\\e014';\n}\n.glyphicon-zoom-in:before {\n content: '\\e015';\n}\n.glyphicon-zoom-out:before {\n content: '\\e016';\n}\n.glyphicon-off:before {\n content: '\\e017';\n}\n.glyphicon-signal:before {\n content: '\\e018';\n}\n.glyphicon-cog:before {\n content: '\\e019';\n}\n.glyphicon-trash:before {\n content: '\\e020';\n}\n.glyphicon-home:before {\n content: '\\e021';\n}\n.glyphicon-file:before {\n content: '\\e022';\n}\n.glyphicon-time:before {\n content: '\\e023';\n}\n.glyphicon-road:before {\n content: '\\e024';\n}\n.glyphicon-download-alt:before {\n content: '\\e025';\n}\n.glyphicon-download:before {\n content: '\\e026';\n}\n.glyphicon-upload:before {\n content: '\\e027';\n}\n.glyphicon-inbox:before {\n content: '\\e028';\n}\n.glyphicon-play-circle:before {\n content: '\\e029';\n}\n.glyphicon-repeat:before {\n content: '\\e030';\n}\n.glyphicon-refresh:before {\n content: '\\e031';\n}\n.glyphicon-list-alt:before {\n content: '\\e032';\n}\n.glyphicon-lock:before {\n content: '\\e033';\n}\n.glyphicon-flag:before {\n content: '\\e034';\n}\n.glyphicon-headphones:before {\n content: '\\e035';\n}\n.glyphicon-volume-off:before {\n content: '\\e036';\n}\n.glyphicon-volume-down:before {\n content: '\\e037';\n}\n.glyphicon-volume-up:before {\n content: '\\e038';\n}\n.glyphicon-qrcode:before {\n content: '\\e039';\n}\n.glyphicon-barcode:before {\n content: '\\e040';\n}\n.glyphicon-tag:before {\n content: '\\e041';\n}\n.glyphicon-tags:before {\n content: '\\e042';\n}\n.glyphicon-book:before {\n content: '\\e043';\n}\n.glyphicon-bookmark:before {\n content: '\\e044';\n}\n.glyphicon-print:before {\n content: '\\e045';\n}\n.glyphicon-camera:before {\n content: '\\e046';\n}\n.glyphicon-font:before {\n content: '\\e047';\n}\n.glyphicon-bold:before {\n content: '\\e048';\n}\n.glyphicon-italic:before {\n content: '\\e049';\n}\n.glyphicon-text-height:before {\n content: '\\e050';\n}\n.glyphicon-text-width:before {\n content: '\\e051';\n}\n.glyphicon-align-left:before {\n content: '\\e052';\n}\n.glyphicon-align-center:before {\n content: '\\e053';\n}\n.glyphicon-align-right:before {\n content: '\\e054';\n}\n.glyphicon-align-justify:before {\n content: '\\e055';\n}\n.glyphicon-list:before {\n content: '\\e056';\n}\n.glyphicon-indent-left:before {\n content: '\\e057';\n}\n.glyphicon-indent-right:before {\n content: '\\e058';\n}\n.glyphicon-facetime-video:before {\n content: '\\e059';\n}\n.glyphicon-picture:before {\n content: '\\e060';\n}\n.glyphicon-map-marker:before {\n content: '\\e062';\n}\n.glyphicon-adjust:before {\n content: '\\e063';\n}\n.glyphicon-tint:before {\n content: '\\e064';\n}\n.glyphicon-edit:before {\n content: '\\e065';\n}\n.glyphicon-share:before {\n content: '\\e066';\n}\n.glyphicon-check:before {\n content: '\\e067';\n}\n.glyphicon-move:before {\n content: '\\e068';\n}\n.glyphicon-step-backward:before {\n content: '\\e069';\n}\n.glyphicon-fast-backward:before {\n content: '\\e070';\n}\n.glyphicon-backward:before {\n content: '\\e071';\n}\n.glyphicon-play:before {\n content: '\\e072';\n}\n.glyphicon-pause:before {\n content: '\\e073';\n}\n.glyphicon-stop:before {\n content: '\\e074';\n}\n.glyphicon-forward:before {\n content: '\\e075';\n}\n.glyphicon-fast-forward:before {\n content: '\\e076';\n}\n.glyphicon-step-forward:before {\n content: '\\e077';\n}\n.glyphicon-eject:before {\n content: '\\e078';\n}\n.glyphicon-chevron-left:before {\n content: '\\e079';\n}\n.glyphicon-chevron-right:before {\n content: '\\e080';\n}\n.glyphicon-plus-sign:before {\n content: '\\e081';\n}\n.glyphicon-minus-sign:before {\n content: '\\e082';\n}\n.glyphicon-remove-sign:before {\n content: '\\e083';\n}\n.glyphicon-ok-sign:before {\n content: '\\e084';\n}\n.glyphicon-question-sign:before {\n content: '\\e085';\n}\n.glyphicon-info-sign:before {\n content: '\\e086';\n}\n.glyphicon-screenshot:before {\n content: '\\e087';\n}\n.glyphicon-remove-circle:before {\n content: '\\e088';\n}\n.glyphicon-ok-circle:before {\n content: '\\e089';\n}\n.glyphicon-ban-circle:before {\n content: '\\e090';\n}\n.glyphicon-arrow-left:before {\n content: '\\e091';\n}\n.glyphicon-arrow-right:before {\n content: '\\e092';\n}\n.glyphicon-arrow-up:before {\n content: '\\e093';\n}\n.glyphicon-arrow-down:before {\n content: '\\e094';\n}\n.glyphicon-share-alt:before {\n content: '\\e095';\n}\n.glyphicon-resize-full:before {\n content: '\\e096';\n}\n.glyphicon-resize-small:before {\n content: '\\e097';\n}\n.glyphicon-exclamation-sign:before {\n content: '\\e101';\n}\n.glyphicon-gift:before {\n content: '\\e102';\n}\n.glyphicon-leaf:before {\n content: '\\e103';\n}\n.glyphicon-fire:before {\n content: '\\e104';\n}\n.glyphicon-eye-open:before {\n content: '\\e105';\n}\n.glyphicon-eye-close:before {\n content: '\\e106';\n}\n.glyphicon-warning-sign:before {\n content: '\\e107';\n}\n.glyphicon-plane:before {\n content: '\\e108';\n}\n.glyphicon-calendar:before {\n content: '\\e109';\n}\n.glyphicon-random:before {\n content: '\\e110';\n}\n.glyphicon-comment:before {\n content: '\\e111';\n}\n.glyphicon-magnet:before {\n content: '\\e112';\n}\n.glyphicon-chevron-up:before {\n content: '\\e113';\n}\n.glyphicon-chevron-down:before {\n content: '\\e114';\n}\n.glyphicon-retweet:before {\n content: '\\e115';\n}\n.glyphicon-shopping-cart:before {\n content: '\\e116';\n}\n.glyphicon-folder-close:before {\n content: '\\e117';\n}\n.glyphicon-folder-open:before {\n content: '\\e118';\n}\n.glyphicon-resize-vertical:before {\n content: '\\e119';\n}\n.glyphicon-resize-horizontal:before {\n content: '\\e120';\n}\n.glyphicon-hdd:before {\n content: '\\e121';\n}\n.glyphicon-bullhorn:before {\n content: '\\e122';\n}\n.glyphicon-bell:before {\n content: '\\e123';\n}\n.glyphicon-certificate:before {\n content: '\\e124';\n}\n.glyphicon-thumbs-up:before {\n content: '\\e125';\n}\n.glyphicon-thumbs-down:before {\n content: '\\e126';\n}\n.glyphicon-hand-right:before {\n content: '\\e127';\n}\n.glyphicon-hand-left:before {\n content: '\\e128';\n}\n.glyphicon-hand-up:before {\n content: '\\e129';\n}\n.glyphicon-hand-down:before {\n content: '\\e130';\n}\n.glyphicon-circle-arrow-right:before {\n content: '\\e131';\n}\n.glyphicon-circle-arrow-left:before {\n content: '\\e132';\n}\n.glyphicon-circle-arrow-up:before {\n content: '\\e133';\n}\n.glyphicon-circle-arrow-down:before {\n content: '\\e134';\n}\n.glyphicon-globe:before {\n content: '\\e135';\n}\n.glyphicon-wrench:before {\n content: '\\e136';\n}\n.glyphicon-tasks:before {\n content: '\\e137';\n}\n.glyphicon-filter:before {\n content: '\\e138';\n}\n.glyphicon-briefcase:before {\n content: '\\e139';\n}\n.glyphicon-fullscreen:before {\n content: '\\e140';\n}\n.glyphicon-dashboard:before {\n content: '\\e141';\n}\n.glyphicon-paperclip:before {\n content: '\\e142';\n}\n.glyphicon-heart-empty:before {\n content: '\\e143';\n}\n.glyphicon-link:before {\n content: '\\e144';\n}\n.glyphicon-phone:before {\n content: '\\e145';\n}\n.glyphicon-pushpin:before {\n content: '\\e146';\n}\n.glyphicon-usd:before {\n content: '\\e148';\n}\n.glyphicon-gbp:before {\n content: '\\e149';\n}\n.glyphicon-sort:before {\n content: '\\e150';\n}\n.glyphicon-sort-by-alphabet:before {\n content: '\\e151';\n}\n.glyphicon-sort-by-alphabet-alt:before {\n content: '\\e152';\n}\n.glyphicon-sort-by-order:before {\n content: '\\e153';\n}\n.glyphicon-sort-by-order-alt:before {\n content: '\\e154';\n}\n.glyphicon-sort-by-attributes:before {\n content: '\\e155';\n}\n.glyphicon-sort-by-attributes-alt:before {\n content: '\\e156';\n}\n.glyphicon-unchecked:before {\n content: '\\e157';\n}\n.glyphicon-expand:before {\n content: '\\e158';\n}\n.glyphicon-collapse-down:before {\n content: '\\e159';\n}\n.glyphicon-collapse-up:before {\n content: '\\e160';\n}\n.glyphicon-log-in:before {\n content: '\\e161';\n}\n.glyphicon-flash:before {\n content: '\\e162';\n}\n.glyphicon-log-out:before {\n content: '\\e163';\n}\n.glyphicon-new-window:before {\n content: '\\e164';\n}\n.glyphicon-record:before {\n content: '\\e165';\n}\n.glyphicon-save:before {\n content: '\\e166';\n}\n.glyphicon-open:before {\n content: '\\e167';\n}\n.glyphicon-saved:before {\n content: '\\e168';\n}\n.glyphicon-import:before {\n content: '\\e169';\n}\n.glyphicon-export:before {\n content: '\\e170';\n}\n.glyphicon-send:before {\n content: '\\e171';\n}\n.glyphicon-floppy-disk:before {\n content: '\\e172';\n}\n.glyphicon-floppy-saved:before {\n content: '\\e173';\n}\n.glyphicon-floppy-remove:before {\n content: '\\e174';\n}\n.glyphicon-floppy-save:before {\n content: '\\e175';\n}\n.glyphicon-floppy-open:before {\n content: '\\e176';\n}\n.glyphicon-credit-card:before {\n content: '\\e177';\n}\n.glyphicon-transfer:before {\n content: '\\e178';\n}\n.glyphicon-cutlery:before {\n content: '\\e179';\n}\n.glyphicon-header:before {\n content: '\\e180';\n}\n.glyphicon-compressed:before {\n content: '\\e181';\n}\n.glyphicon-earphone:before {\n content: '\\e182';\n}\n.glyphicon-phone-alt:before {\n content: '\\e183';\n}\n.glyphicon-tower:before {\n content: '\\e184';\n}\n.glyphicon-stats:before {\n content: '\\e185';\n}\n.glyphicon-sd-video:before {\n content: '\\e186';\n}\n.glyphicon-hd-video:before {\n content: '\\e187';\n}\n.glyphicon-subtitles:before {\n content: '\\e188';\n}\n.glyphicon-sound-stereo:before {\n content: '\\e189';\n}\n.glyphicon-sound-dolby:before {\n content: '\\e190';\n}\n.glyphicon-sound-5-1:before {\n content: '\\e191';\n}\n.glyphicon-sound-6-1:before {\n content: '\\e192';\n}\n.glyphicon-sound-7-1:before {\n content: '\\e193';\n}\n.glyphicon-copyright-mark:before {\n content: '\\e194';\n}\n.glyphicon-registration-mark:before {\n content: '\\e195';\n}\n.glyphicon-cloud-download:before {\n content: '\\e197';\n}\n.glyphicon-cloud-upload:before {\n content: '\\e198';\n}\n.glyphicon-tree-conifer:before {\n content: '\\e199';\n}\n.glyphicon-tree-deciduous:before {\n content: '\\e200';\n}\n.glyphicon-cd:before {\n content: '\\e201';\n}\n.glyphicon-save-file:before {\n content: '\\e202';\n}\n.glyphicon-open-file:before {\n content: '\\e203';\n}\n.glyphicon-level-up:before {\n content: '\\e204';\n}\n.glyphicon-copy:before {\n content: '\\e205';\n}\n.glyphicon-paste:before {\n content: '\\e206';\n}\n.glyphicon-alert:before {\n content: '\\e209';\n}\n.glyphicon-equalizer:before {\n content: '\\e210';\n}\n.glyphicon-king:before {\n content: '\\e211';\n}\n.glyphicon-queen:before {\n content: '\\e212';\n}\n.glyphicon-pawn:before {\n content: '\\e213';\n}\n.glyphicon-bishop:before {\n content: '\\e214';\n}\n.glyphicon-knight:before {\n content: '\\e215';\n}\n.glyphicon-baby-formula:before {\n content: '\\e216';\n}\n.glyphicon-tent:before {\n content: '\\26fa';\n}\n.glyphicon-blackboard:before {\n content: '\\e218';\n}\n.glyphicon-bed:before {\n content: '\\e219';\n}\n.glyphicon-apple:before {\n content: '\\f8ff';\n}\n.glyphicon-erase:before {\n content: '\\e221';\n}\n.glyphicon-hourglass:before {\n content: '\\231b';\n}\n.glyphicon-lamp:before {\n content: '\\e223';\n}\n.glyphicon-duplicate:before {\n content: '\\e224';\n}\n.glyphicon-piggy-bank:before {\n content: '\\e225';\n}\n.glyphicon-scissors:before {\n content: '\\e226';\n}\n.glyphicon-bitcoin:before {\n content: '\\e227';\n}\n.glyphicon-btc:before {\n content: '\\e227';\n}\n.glyphicon-xbt:before {\n content: '\\e227';\n}\n.glyphicon-yen:before {\n content: '\\00a5';\n}\n.glyphicon-jpy:before {\n content: '\\00a5';\n}\n.glyphicon-ruble:before {\n content: '\\20bd';\n}\n.glyphicon-rub:before {\n content: '\\20bd';\n}\n.glyphicon-scale:before {\n content: '\\e230';\n}\n.glyphicon-ice-lolly:before {\n content: '\\e231';\n}\n.glyphicon-ice-lolly-tasted:before {\n content: '\\e232';\n}\n.glyphicon-education:before {\n content: '\\e233';\n}\n.glyphicon-option-horizontal:before {\n content: '\\e234';\n}\n.glyphicon-option-vertical:before {\n content: '\\e235';\n}\n.glyphicon-menu-hamburger:before {\n content: '\\e236';\n}\n.glyphicon-modal-window:before {\n content: '\\e237';\n}\n.glyphicon-oil:before {\n content: '\\e238';\n}\n.glyphicon-grain:before {\n content: '\\e239';\n}\n.glyphicon-sunglasses:before {\n content: '\\e240';\n}\n.glyphicon-text-size:before {\n content: '\\e241';\n}\n.glyphicon-text-color:before {\n content: '\\e242';\n}\n.glyphicon-text-background:before {\n content: '\\e243';\n}\n.glyphicon-object-align-top:before {\n content: '\\e244';\n}\n.glyphicon-object-align-bottom:before {\n content: '\\e245';\n}\n.glyphicon-object-align-horizontal:before {\n content: '\\e246';\n}\n.glyphicon-object-align-left:before {\n content: '\\e247';\n}\n.glyphicon-object-align-vertical:before {\n content: '\\e248';\n}\n.glyphicon-object-align-right:before {\n content: '\\e249';\n}\n.glyphicon-triangle-right:before {\n content: '\\e250';\n}\n.glyphicon-triangle-left:before {\n content: '\\e251';\n}\n.glyphicon-triangle-bottom:before {\n content: '\\e252';\n}\n.glyphicon-triangle-top:before {\n content: '\\e253';\n}\n.glyphicon-console:before {\n content: '\\e254';\n}\n.glyphicon-superscript:before {\n content: '\\e255';\n}\n.glyphicon-subscript:before {\n content: '\\e256';\n}\n.glyphicon-menu-left:before {\n content: '\\e257';\n}\n.glyphicon-menu-right:before {\n content: '\\e258';\n}\n.glyphicon-menu-down:before {\n content: '\\e259';\n}\n.glyphicon-menu-up:before {\n content: '\\e260';\n}\n* {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n*:before,\n*:after {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\nhtml {\n font-size: 10px;\n\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\nbody {\n font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;\n font-size: 14px;\n line-height: 1.42857143;\n color: #333;\n background-color: #fff;\n}\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\na {\n color: #337ab7;\n text-decoration: none;\n}\na:hover,\na:focus {\n color: #23527c;\n text-decoration: underline;\n}\na:focus {\n outline: thin dotted;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\nfigure {\n margin: 0;\n}\nimg {\n vertical-align: middle;\n}\n.img-responsive,\n.thumbnail > img,\n.thumbnail a > img,\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n display: block;\n max-width: 100%;\n height: auto;\n}\n.img-rounded {\n border-radius: 6px;\n}\n.img-thumbnail {\n display: inline-block;\n max-width: 100%;\n height: auto;\n padding: 4px;\n line-height: 1.42857143;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n -webkit-transition: all 0.2s ease-in-out;\n -o-transition: all 0.2s ease-in-out;\n transition: all 0.2s ease-in-out;\n}\n.img-circle {\n border-radius: 50%;\n}\nhr {\n margin-top: 20px;\n margin-bottom: 20px;\n border: 0;\n border-top: 1px solid #eee;\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n[role='button'] {\n cursor: pointer;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6 {\n font-family: inherit;\n font-weight: 500;\n line-height: 1.1;\n color: inherit;\n}\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small,\n.h1 small,\n.h2 small,\n.h3 small,\n.h4 small,\n.h5 small,\n.h6 small,\nh1 .small,\nh2 .small,\nh3 .small,\nh4 .small,\nh5 .small,\nh6 .small,\n.h1 .small,\n.h2 .small,\n.h3 .small,\n.h4 .small,\n.h5 .small,\n.h6 .small {\n font-weight: normal;\n line-height: 1;\n color: #777;\n}\nh1,\n.h1,\nh2,\n.h2,\nh3,\n.h3 {\n margin-top: 20px;\n margin-bottom: 10px;\n}\nh1 small,\n.h1 small,\nh2 small,\n.h2 small,\nh3 small,\n.h3 small,\nh1 .small,\n.h1 .small,\nh2 .small,\n.h2 .small,\nh3 .small,\n.h3 .small {\n font-size: 65%;\n}\nh4,\n.h4,\nh5,\n.h5,\nh6,\n.h6 {\n margin-top: 10px;\n margin-bottom: 10px;\n}\nh4 small,\n.h4 small,\nh5 small,\n.h5 small,\nh6 small,\n.h6 small,\nh4 .small,\n.h4 .small,\nh5 .small,\n.h5 .small,\nh6 .small,\n.h6 .small {\n font-size: 75%;\n}\nh1,\n.h1 {\n font-size: 36px;\n}\nh2,\n.h2 {\n font-size: 30px;\n}\nh3,\n.h3 {\n font-size: 24px;\n}\nh4,\n.h4 {\n font-size: 18px;\n}\nh5,\n.h5 {\n font-size: 14px;\n}\nh6,\n.h6 {\n font-size: 12px;\n}\np {\n margin: 0 0 10px;\n}\n.lead {\n margin-bottom: 20px;\n font-size: 16px;\n font-weight: 300;\n line-height: 1.4;\n}\n@media (min-width: 768px) {\n .lead {\n font-size: 21px;\n }\n}\nsmall,\n.small {\n font-size: 85%;\n}\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n.text-left {\n text-align: left;\n}\n.text-right {\n text-align: right;\n}\n.text-center {\n text-align: center;\n}\n.text-justify {\n text-align: justify;\n}\n.text-nowrap {\n white-space: nowrap;\n}\n.text-lowercase {\n text-transform: lowercase;\n}\n.text-uppercase {\n text-transform: uppercase;\n}\n.text-capitalize {\n text-transform: capitalize;\n}\n.text-muted {\n color: #777;\n}\n.text-primary {\n color: #337ab7;\n}\na.text-primary:hover {\n color: #286090;\n}\n.text-success {\n color: #3c763d;\n}\na.text-success:hover {\n color: #2b542c;\n}\n.text-info {\n color: #31708f;\n}\na.text-info:hover {\n color: #245269;\n}\n.text-warning {\n color: #8a6d3b;\n}\na.text-warning:hover {\n color: #66512c;\n}\n.text-danger {\n color: #a94442;\n}\na.text-danger:hover {\n color: #843534;\n}\n.bg-primary {\n color: #fff;\n background-color: #337ab7;\n}\na.bg-primary:hover {\n background-color: #286090;\n}\n.bg-success {\n background-color: #dff0d8;\n}\na.bg-success:hover {\n background-color: #c1e2b3;\n}\n.bg-info {\n background-color: #d9edf7;\n}\na.bg-info:hover {\n background-color: #afd9ee;\n}\n.bg-warning {\n background-color: #fcf8e3;\n}\na.bg-warning:hover {\n background-color: #f7ecb5;\n}\n.bg-danger {\n background-color: #f2dede;\n}\na.bg-danger:hover {\n background-color: #e4b9b9;\n}\n.page-header {\n padding-bottom: 9px;\n margin: 40px 0 20px;\n border-bottom: 1px solid #eee;\n}\nul,\nol {\n margin-top: 0;\n margin-bottom: 10px;\n}\nul ul,\nol ul,\nul ol,\nol ol {\n margin-bottom: 0;\n}\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n.list-inline {\n padding-left: 0;\n margin-left: -5px;\n list-style: none;\n}\n.list-inline > li {\n display: inline-block;\n padding-right: 5px;\n padding-left: 5px;\n}\ndl {\n margin-top: 0;\n margin-bottom: 20px;\n}\ndt,\ndd {\n line-height: 1.42857143;\n}\ndt {\n font-weight: bold;\n}\ndd {\n margin-left: 0;\n}\n@media (min-width: 768px) {\n .dl-horizontal dt {\n float: left;\n width: 160px;\n overflow: hidden;\n clear: left;\n text-align: right;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .dl-horizontal dd {\n margin-left: 180px;\n }\n}\nabbr[title],\nabbr[data-original-title] {\n cursor: help;\n border-bottom: 1px dotted #777;\n}\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\nblockquote {\n padding: 10px 20px;\n margin: 0 0 20px;\n font-size: 17.5px;\n border-left: 5px solid #eee;\n}\nblockquote p:last-child,\nblockquote ul:last-child,\nblockquote ol:last-child {\n margin-bottom: 0;\n}\nblockquote footer,\nblockquote small,\nblockquote .small {\n display: block;\n font-size: 80%;\n line-height: 1.42857143;\n color: #777;\n}\nblockquote footer:before,\nblockquote small:before,\nblockquote .small:before {\n content: '\\2014 \\00A0';\n}\n.blockquote-reverse,\nblockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n text-align: right;\n border-right: 5px solid #eee;\n border-left: 0;\n}\n.blockquote-reverse footer:before,\nblockquote.pull-right footer:before,\n.blockquote-reverse small:before,\nblockquote.pull-right small:before,\n.blockquote-reverse .small:before,\nblockquote.pull-right .small:before {\n content: '';\n}\n.blockquote-reverse footer:after,\nblockquote.pull-right footer:after,\n.blockquote-reverse small:after,\nblockquote.pull-right small:after,\n.blockquote-reverse .small:after,\nblockquote.pull-right .small:after {\n content: '\\00A0 \\2014';\n}\naddress {\n margin-bottom: 20px;\n font-style: normal;\n line-height: 1.42857143;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;\n}\ncode {\n padding: 2px 4px;\n font-size: 90%;\n color: #c7254e;\n background-color: #f9f2f4;\n border-radius: 4px;\n}\nkbd {\n padding: 2px 4px;\n font-size: 90%;\n color: #fff;\n background-color: #333;\n border-radius: 3px;\n -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: bold;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\npre {\n display: block;\n padding: 9.5px;\n margin: 0 0 10px;\n font-size: 13px;\n line-height: 1.42857143;\n color: #333;\n word-break: break-all;\n word-wrap: break-word;\n background-color: #f5f5f5;\n border: 1px solid #ccc;\n border-radius: 4px;\n}\npre code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border-radius: 0;\n}\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n.container {\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n@media (min-width: 768px) {\n .container {\n width: 750px;\n }\n}\n@media (min-width: 992px) {\n .container {\n width: 970px;\n }\n}\n@media (min-width: 1200px) {\n .container {\n width: 1170px;\n }\n}\n.container-fluid {\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n.row {\n margin-right: -15px;\n margin-left: -15px;\n}\n//.col-xs-1,\n//.col-sm-1,\n//.col-md-1,\n//.col-lg-1,\n//.col-xs-2,\n//.col-sm-2,\n//.col-md-2,\n//.col-lg-2,\n//.col-xs-3,\n//.col-sm-3,\n//.col-md-3,\n//.col-lg-3,\n//.col-xs-4,\n//.col-sm-4,\n//.col-md-4,\n//.col-lg-4,\n//.col-xs-5,\n//.col-sm-5,\n//.col-md-5,\n//.col-lg-5,\n//.col-xs-6,\n//.col-sm-6,\n//.col-md-6,\n//.col-lg-6,\n//.col-xs-7,\n//.col-sm-7,\n//.col-md-7,\n//.col-lg-7,\n//.col-xs-8,\n//.col-sm-8,\n//.col-md-8,\n//.col-lg-8,\n//.col-xs-9,\n//.col-sm-9,\n//.col-md-9,\n//.col-lg-9,\n//.col-xs-10,\n//.col-sm-10,\n//.col-md-10,\n//.col-lg-10,\n//.col-xs-11,\n//.col-sm-11,\n//.col-md-11,\n//.col-lg-11,\n//.col-xs-12,\n//.col-sm-12,\n//.col-md-12,\n//.col-lg-12 {\n// position: relative;\n// min-height: 1px;\n// padding-right: 15px;\n// padding-left: 15px;\n//}\n//.col-xs-1,\n//.col-xs-2,\n//.col-xs-3,\n//.col-xs-4,\n//.col-xs-5,\n//.col-xs-6,\n//.col-xs-7,\n//.col-xs-8,\n//.col-xs-9,\n//.col-xs-10,\n//.col-xs-11,\n//.col-xs-12 {\n// float: left;\n//}\n//.col-xs-12 {\n// width: 100%;\n//}\n//.col-xs-11 {\n// width: 91.66666667%;\n//}\n//.col-xs-10 {\n// width: 83.33333333%;\n//}\n//.col-xs-9 {\n// width: 75%;\n//}\n//.col-xs-8 {\n// width: 66.66666667%;\n//}\n//.col-xs-7 {\n// width: 58.33333333%;\n//}\n//.col-xs-6 {\n// width: 50%;\n//}\n//.col-xs-5 {\n// width: 41.66666667%;\n//}\n//.col-xs-4 {\n// width: 33.33333333%;\n//}\n//.col-xs-3 {\n// width: 25%;\n//}\n//.col-xs-2 {\n// width: 16.66666667%;\n//}\n//.col-xs-1 {\n// width: 8.33333333%;\n//}\n//.col-xs-pull-12 {\n// right: 100%;\n//}\n//.col-xs-pull-11 {\n// right: 91.66666667%;\n//}\n//.col-xs-pull-10 {\n// right: 83.33333333%;\n//}\n//.col-xs-pull-9 {\n// right: 75%;\n//}\n//.col-xs-pull-8 {\n// right: 66.66666667%;\n//}\n//.col-xs-pull-7 {\n// right: 58.33333333%;\n//}\n//.col-xs-pull-6 {\n// right: 50%;\n//}\n//.col-xs-pull-5 {\n// right: 41.66666667%;\n//}\n//.col-xs-pull-4 {\n// right: 33.33333333%;\n//}\n//.col-xs-pull-3 {\n// right: 25%;\n//}\n//.col-xs-pull-2 {\n// right: 16.66666667%;\n//}\n//.col-xs-pull-1 {\n// right: 8.33333333%;\n//}\n//.col-xs-pull-0 {\n// right: auto;\n//}\n//.col-xs-push-12 {\n// left: 100%;\n//}\n//.col-xs-push-11 {\n// left: 91.66666667%;\n//}\n//.col-xs-push-10 {\n// left: 83.33333333%;\n//}\n//.col-xs-push-9 {\n// left: 75%;\n//}\n//.col-xs-push-8 {\n// left: 66.66666667%;\n//}\n//.col-xs-push-7 {\n// left: 58.33333333%;\n//}\n//.col-xs-push-6 {\n// left: 50%;\n//}\n//.col-xs-push-5 {\n// left: 41.66666667%;\n//}\n//.col-xs-push-4 {\n// left: 33.33333333%;\n//}\n//.col-xs-push-3 {\n// left: 25%;\n//}\n//.col-xs-push-2 {\n// left: 16.66666667%;\n//}\n//.col-xs-push-1 {\n// left: 8.33333333%;\n//}\n//.col-xs-push-0 {\n// left: auto;\n//}\n//.col-xs-offset-12 {\n// margin-left: 100%;\n//}\n//.col-xs-offset-11 {\n// margin-left: 91.66666667%;\n//}\n//.col-xs-offset-10 {\n// margin-left: 83.33333333%;\n//}\n//.col-xs-offset-9 {\n// margin-left: 75%;\n//}\n//.col-xs-offset-8 {\n// margin-left: 66.66666667%;\n//}\n//.col-xs-offset-7 {\n// margin-left: 58.33333333%;\n//}\n//.col-xs-offset-6 {\n// margin-left: 50%;\n//}\n//.col-xs-offset-5 {\n// margin-left: 41.66666667%;\n//}\n//.col-xs-offset-4 {\n// margin-left: 33.33333333%;\n//}\n//.col-xs-offset-3 {\n// margin-left: 25%;\n//}\n//.col-xs-offset-2 {\n// margin-left: 16.66666667%;\n//}\n//.col-xs-offset-1 {\n// margin-left: 8.33333333%;\n//}\n//.col-xs-offset-0 {\n// margin-left: 0;\n//}\n//@media (min-width: 768px) {\n// .col-sm-1,\n// .col-sm-2,\n// .col-sm-3,\n// .col-sm-4,\n// .col-sm-5,\n// .col-sm-6,\n// .col-sm-7,\n// .col-sm-8,\n// .col-sm-9,\n// .col-sm-10,\n// .col-sm-11,\n// .col-sm-12 {\n// float: left;\n// }\n// .col-sm-12 {\n// width: 100%;\n// }\n// .col-sm-11 {\n// width: 91.66666667%;\n// }\n// .col-sm-10 {\n// width: 83.33333333%;\n// }\n// .col-sm-9 {\n// width: 75%;\n// }\n// .col-sm-8 {\n// width: 66.66666667%;\n// }\n// .col-sm-7 {\n// width: 58.33333333%;\n// }\n// .col-sm-6 {\n// width: 50%;\n// }\n// .col-sm-5 {\n// width: 41.66666667%;\n// }\n// .col-sm-4 {\n// width: 33.33333333%;\n// }\n// .col-sm-3 {\n// width: 25%;\n// }\n// .col-sm-2 {\n// width: 16.66666667%;\n// }\n// .col-sm-1 {\n// width: 8.33333333%;\n// }\n// .col-sm-pull-12 {\n// right: 100%;\n// }\n// .col-sm-pull-11 {\n// right: 91.66666667%;\n// }\n// .col-sm-pull-10 {\n// right: 83.33333333%;\n// }\n// .col-sm-pull-9 {\n// right: 75%;\n// }\n// .col-sm-pull-8 {\n// right: 66.66666667%;\n// }\n// .col-sm-pull-7 {\n// right: 58.33333333%;\n// }\n// .col-sm-pull-6 {\n// right: 50%;\n// }\n// .col-sm-pull-5 {\n// right: 41.66666667%;\n// }\n// .col-sm-pull-4 {\n// right: 33.33333333%;\n// }\n// .col-sm-pull-3 {\n// right: 25%;\n// }\n// .col-sm-pull-2 {\n// right: 16.66666667%;\n// }\n// .col-sm-pull-1 {\n// right: 8.33333333%;\n// }\n// .col-sm-pull-0 {\n// right: auto;\n// }\n// .col-sm-push-12 {\n// left: 100%;\n// }\n// .col-sm-push-11 {\n// left: 91.66666667%;\n// }\n// .col-sm-push-10 {\n// left: 83.33333333%;\n// }\n// .col-sm-push-9 {\n// left: 75%;\n// }\n// .col-sm-push-8 {\n// left: 66.66666667%;\n// }\n// .col-sm-push-7 {\n// left: 58.33333333%;\n// }\n// .col-sm-push-6 {\n// left: 50%;\n// }\n// .col-sm-push-5 {\n// left: 41.66666667%;\n// }\n// .col-sm-push-4 {\n// left: 33.33333333%;\n// }\n// .col-sm-push-3 {\n// left: 25%;\n// }\n// .col-sm-push-2 {\n// left: 16.66666667%;\n// }\n// .col-sm-push-1 {\n// left: 8.33333333%;\n// }\n// .col-sm-push-0 {\n// left: auto;\n// }\n// .col-sm-offset-12 {\n// margin-left: 100%;\n// }\n// .col-sm-offset-11 {\n// margin-left: 91.66666667%;\n// }\n// .col-sm-offset-10 {\n// margin-left: 83.33333333%;\n// }\n// .col-sm-offset-9 {\n// margin-left: 75%;\n// }\n// .col-sm-offset-8 {\n// margin-left: 66.66666667%;\n// }\n// .col-sm-offset-7 {\n// margin-left: 58.33333333%;\n// }\n// .col-sm-offset-6 {\n// margin-left: 50%;\n// }\n// .col-sm-offset-5 {\n// margin-left: 41.66666667%;\n// }\n// .col-sm-offset-4 {\n// margin-left: 33.33333333%;\n// }\n// .col-sm-offset-3 {\n// margin-left: 25%;\n// }\n// .col-sm-offset-2 {\n// margin-left: 16.66666667%;\n// }\n// .col-sm-offset-1 {\n// margin-left: 8.33333333%;\n// }\n// .col-sm-offset-0 {\n// margin-left: 0;\n// }\n//}\n//@media (min-width: 992px) {\n// .col-md-1,\n// .col-md-2,\n// .col-md-3,\n// .col-md-4,\n// .col-md-5,\n// .col-md-6,\n// .col-md-7,\n// .col-md-8,\n// .col-md-9,\n// .col-md-10,\n// .col-md-11,\n// .col-md-12 {\n// float: left;\n// }\n// .col-md-12 {\n// width: 100%;\n// }\n// .col-md-11 {\n// width: 91.66666667%;\n// }\n// .col-md-10 {\n// width: 83.33333333%;\n// }\n// .col-md-9 {\n// width: 75%;\n// }\n// .col-md-8 {\n// width: 66.66666667%;\n// }\n// .col-md-7 {\n// width: 58.33333333%;\n// }\n// .col-md-6 {\n// width: 50%;\n// }\n// .col-md-5 {\n// width: 41.66666667%;\n// }\n// .col-md-4 {\n// width: 33.33333333%;\n// }\n// .col-md-3 {\n// width: 25%;\n// }\n// .col-md-2 {\n// width: 16.66666667%;\n// }\n// .col-md-1 {\n// width: 8.33333333%;\n// }\n// .col-md-pull-12 {\n// right: 100%;\n// }\n// .col-md-pull-11 {\n// right: 91.66666667%;\n// }\n// .col-md-pull-10 {\n// right: 83.33333333%;\n// }\n// .col-md-pull-9 {\n// right: 75%;\n// }\n// .col-md-pull-8 {\n// right: 66.66666667%;\n// }\n// .col-md-pull-7 {\n// right: 58.33333333%;\n// }\n// .col-md-pull-6 {\n// right: 50%;\n// }\n// .col-md-pull-5 {\n// right: 41.66666667%;\n// }\n// .col-md-pull-4 {\n// right: 33.33333333%;\n// }\n// .col-md-pull-3 {\n// right: 25%;\n// }\n// .col-md-pull-2 {\n// right: 16.66666667%;\n// }\n// .col-md-pull-1 {\n// right: 8.33333333%;\n// }\n// .col-md-pull-0 {\n// right: auto;\n// }\n// .col-md-push-12 {\n// left: 100%;\n// }\n// .col-md-push-11 {\n// left: 91.66666667%;\n// }\n// .col-md-push-10 {\n// left: 83.33333333%;\n// }\n// .col-md-push-9 {\n// left: 75%;\n// }\n// .col-md-push-8 {\n// left: 66.66666667%;\n// }\n// .col-md-push-7 {\n// left: 58.33333333%;\n// }\n// .col-md-push-6 {\n// left: 50%;\n// }\n// .col-md-push-5 {\n// left: 41.66666667%;\n// }\n// .col-md-push-4 {\n// left: 33.33333333%;\n// }\n// .col-md-push-3 {\n// left: 25%;\n// }\n// .col-md-push-2 {\n// left: 16.66666667%;\n// }\n// .col-md-push-1 {\n// left: 8.33333333%;\n// }\n// .col-md-push-0 {\n// left: auto;\n// }\n// .col-md-offset-12 {\n// margin-left: 100%;\n// }\n// .col-md-offset-11 {\n// margin-left: 91.66666667%;\n// }\n// .col-md-offset-10 {\n// margin-left: 83.33333333%;\n// }\n// .col-md-offset-9 {\n// margin-left: 75%;\n// }\n// .col-md-offset-8 {\n// margin-left: 66.66666667%;\n// }\n// .col-md-offset-7 {\n// margin-left: 58.33333333%;\n// }\n// .col-md-offset-6 {\n// margin-left: 50%;\n// }\n// .col-md-offset-5 {\n// margin-left: 41.66666667%;\n// }\n// .col-md-offset-4 {\n// margin-left: 33.33333333%;\n// }\n// .col-md-offset-3 {\n// margin-left: 25%;\n// }\n// .col-md-offset-2 {\n// margin-left: 16.66666667%;\n// }\n// .col-md-offset-1 {\n// margin-left: 8.33333333%;\n// }\n// .col-md-offset-0 {\n// margin-left: 0;\n// }\n//}\n//@media (min-width: 1200px) {\n// .col-lg-1,\n// .col-lg-2,\n// .col-lg-3,\n// .col-lg-4,\n// .col-lg-5,\n// .col-lg-6,\n// .col-lg-7,\n// .col-lg-8,\n// .col-lg-9,\n// .col-lg-10,\n// .col-lg-11,\n// .col-lg-12 {\n// float: left;\n// }\n// .col-lg-12 {\n// width: 100%;\n// }\n// .col-lg-11 {\n// width: 91.66666667%;\n// }\n// .col-lg-10 {\n// width: 83.33333333%;\n// }\n// .col-lg-9 {\n// width: 75%;\n// }\n// .col-lg-8 {\n// width: 66.66666667%;\n// }\n// .col-lg-7 {\n// width: 58.33333333%;\n// }\n// .col-lg-6 {\n// width: 50%;\n// }\n// .col-lg-5 {\n// width: 41.66666667%;\n// }\n// .col-lg-4 {\n// width: 33.33333333%;\n// }\n// .col-lg-3 {\n// width: 25%;\n// }\n// .col-lg-2 {\n// width: 16.66666667%;\n// }\n// .col-lg-1 {\n// width: 8.33333333%;\n// }\n// .col-lg-pull-12 {\n// right: 100%;\n// }\n// .col-lg-pull-11 {\n// right: 91.66666667%;\n// }\n// .col-lg-pull-10 {\n// right: 83.33333333%;\n// }\n// .col-lg-pull-9 {\n// right: 75%;\n// }\n// .col-lg-pull-8 {\n// right: 66.66666667%;\n// }\n// .col-lg-pull-7 {\n// right: 58.33333333%;\n// }\n// .col-lg-pull-6 {\n// right: 50%;\n// }\n// .col-lg-pull-5 {\n// right: 41.66666667%;\n// }\n// .col-lg-pull-4 {\n// right: 33.33333333%;\n// }\n// .col-lg-pull-3 {\n// right: 25%;\n// }\n// .col-lg-pull-2 {\n// right: 16.66666667%;\n// }\n// .col-lg-pull-1 {\n// right: 8.33333333%;\n// }\n// .col-lg-pull-0 {\n// right: auto;\n// }\n// .col-lg-push-12 {\n// left: 100%;\n// }\n// .col-lg-push-11 {\n// left: 91.66666667%;\n// }\n// .col-lg-push-10 {\n// left: 83.33333333%;\n// }\n// .col-lg-push-9 {\n// left: 75%;\n// }\n// .col-lg-push-8 {\n// left: 66.66666667%;\n// }\n// .col-lg-push-7 {\n// left: 58.33333333%;\n// }\n// .col-lg-push-6 {\n// left: 50%;\n// }\n// .col-lg-push-5 {\n// left: 41.66666667%;\n// }\n// .col-lg-push-4 {\n// left: 33.33333333%;\n// }\n// .col-lg-push-3 {\n// left: 25%;\n// }\n// .col-lg-push-2 {\n// left: 16.66666667%;\n// }\n// .col-lg-push-1 {\n// left: 8.33333333%;\n// }\n// .col-lg-push-0 {\n// left: auto;\n// }\n// .col-lg-offset-12 {\n// margin-left: 100%;\n// }\n// .col-lg-offset-11 {\n// margin-left: 91.66666667%;\n// }\n// .col-lg-offset-10 {\n// margin-left: 83.33333333%;\n// }\n// .col-lg-offset-9 {\n// margin-left: 75%;\n// }\n// .col-lg-offset-8 {\n// margin-left: 66.66666667%;\n// }\n// .col-lg-offset-7 {\n// margin-left: 58.33333333%;\n// }\n// .col-lg-offset-6 {\n// margin-left: 50%;\n// }\n// .col-lg-offset-5 {\n// margin-left: 41.66666667%;\n// }\n// .col-lg-offset-4 {\n// margin-left: 33.33333333%;\n// }\n// .col-lg-offset-3 {\n// margin-left: 25%;\n// }\n// .col-lg-offset-2 {\n// margin-left: 16.66666667%;\n// }\n// .col-lg-offset-1 {\n// margin-left: 8.33333333%;\n// }\n// .col-lg-offset-0 {\n// margin-left: 0;\n// }\n//}\ntable {\n background-color: transparent;\n}\ncaption {\n padding-top: 8px;\n padding-bottom: 8px;\n color: #777;\n text-align: left;\n}\nth {\n text-align: left;\n}\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: 20px;\n}\n.table > thead > tr > th,\n.table > tbody > tr > th,\n.table > tfoot > tr > th,\n.table > thead > tr > td,\n.table > tbody > tr > td,\n.table > tfoot > tr > td {\n padding: 8px;\n line-height: 1.42857143;\n vertical-align: top;\n border-top: 1px solid #ddd;\n}\n.table > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid #ddd;\n}\n.table > caption + thead > tr:first-child > th,\n.table > colgroup + thead > tr:first-child > th,\n.table > thead:first-child > tr:first-child > th,\n.table > caption + thead > tr:first-child > td,\n.table > colgroup + thead > tr:first-child > td,\n.table > thead:first-child > tr:first-child > td {\n border-top: 0;\n}\n.table > tbody + tbody {\n border-top: 2px solid #ddd;\n}\n.table .table {\n background-color: #fff;\n}\n.table-condensed > thead > tr > th,\n.table-condensed > tbody > tr > th,\n.table-condensed > tfoot > tr > th,\n.table-condensed > thead > tr > td,\n.table-condensed > tbody > tr > td,\n.table-condensed > tfoot > tr > td {\n padding: 5px;\n}\n.table-bordered {\n border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > tbody > tr > th,\n.table-bordered > tfoot > tr > th,\n.table-bordered > thead > tr > td,\n.table-bordered > tbody > tr > td,\n.table-bordered > tfoot > tr > td {\n border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > thead > tr > td {\n border-bottom-width: 2px;\n}\n.table-striped > tbody > tr:nth-of-type(odd) {\n background-color: #f9f9f9;\n}\n.table-hover > tbody > tr:hover {\n background-color: #f5f5f5;\n}\ntable col[class*='col-'] {\n position: static;\n display: table-column;\n float: none;\n}\ntable td[class*='col-'],\ntable th[class*='col-'] {\n position: static;\n display: table-cell;\n float: none;\n}\n.table > thead > tr > td.active,\n.table > tbody > tr > td.active,\n.table > tfoot > tr > td.active,\n.table > thead > tr > th.active,\n.table > tbody > tr > th.active,\n.table > tfoot > tr > th.active,\n.table > thead > tr.active > td,\n.table > tbody > tr.active > td,\n.table > tfoot > tr.active > td,\n.table > thead > tr.active > th,\n.table > tbody > tr.active > th,\n.table > tfoot > tr.active > th {\n background-color: #f5f5f5;\n}\n.table-hover > tbody > tr > td.active:hover,\n.table-hover > tbody > tr > th.active:hover,\n.table-hover > tbody > tr.active:hover > td,\n.table-hover > tbody > tr:hover > .active,\n.table-hover > tbody > tr.active:hover > th {\n background-color: #e8e8e8;\n}\n.table > thead > tr > td.success,\n.table > tbody > tr > td.success,\n.table > tfoot > tr > td.success,\n.table > thead > tr > th.success,\n.table > tbody > tr > th.success,\n.table > tfoot > tr > th.success,\n.table > thead > tr.success > td,\n.table > tbody > tr.success > td,\n.table > tfoot > tr.success > td,\n.table > thead > tr.success > th,\n.table > tbody > tr.success > th,\n.table > tfoot > tr.success > th {\n background-color: #dff0d8;\n}\n.table-hover > tbody > tr > td.success:hover,\n.table-hover > tbody > tr > th.success:hover,\n.table-hover > tbody > tr.success:hover > td,\n.table-hover > tbody > tr:hover > .success,\n.table-hover > tbody > tr.success:hover > th {\n background-color: #d0e9c6;\n}\n.table > thead > tr > td.info,\n.table > tbody > tr > td.info,\n.table > tfoot > tr > td.info,\n.table > thead > tr > th.info,\n.table > tbody > tr > th.info,\n.table > tfoot > tr > th.info,\n.table > thead > tr.info > td,\n.table > tbody > tr.info > td,\n.table > tfoot > tr.info > td,\n.table > thead > tr.info > th,\n.table > tbody > tr.info > th,\n.table > tfoot > tr.info > th {\n background-color: #d9edf7;\n}\n.table-hover > tbody > tr > td.info:hover,\n.table-hover > tbody > tr > th.info:hover,\n.table-hover > tbody > tr.info:hover > td,\n.table-hover > tbody > tr:hover > .info,\n.table-hover > tbody > tr.info:hover > th {\n background-color: #c4e3f3;\n}\n.table > thead > tr > td.warning,\n.table > tbody > tr > td.warning,\n.table > tfoot > tr > td.warning,\n.table > thead > tr > th.warning,\n.table > tbody > tr > th.warning,\n.table > tfoot > tr > th.warning,\n.table > thead > tr.warning > td,\n.table > tbody > tr.warning > td,\n.table > tfoot > tr.warning > td,\n.table > thead > tr.warning > th,\n.table > tbody > tr.warning > th,\n.table > tfoot > tr.warning > th {\n background-color: #fcf8e3;\n}\n.table-hover > tbody > tr > td.warning:hover,\n.table-hover > tbody > tr > th.warning:hover,\n.table-hover > tbody > tr.warning:hover > td,\n.table-hover > tbody > tr:hover > .warning,\n.table-hover > tbody > tr.warning:hover > th {\n background-color: #faf2cc;\n}\n.table > thead > tr > td.danger,\n.table > tbody > tr > td.danger,\n.table > tfoot > tr > td.danger,\n.table > thead > tr > th.danger,\n.table > tbody > tr > th.danger,\n.table > tfoot > tr > th.danger,\n.table > thead > tr.danger > td,\n.table > tbody > tr.danger > td,\n.table > tfoot > tr.danger > td,\n.table > thead > tr.danger > th,\n.table > tbody > tr.danger > th,\n.table > tfoot > tr.danger > th {\n background-color: #f2dede;\n}\n.table-hover > tbody > tr > td.danger:hover,\n.table-hover > tbody > tr > th.danger:hover,\n.table-hover > tbody > tr.danger:hover > td,\n.table-hover > tbody > tr:hover > .danger,\n.table-hover > tbody > tr.danger:hover > th {\n background-color: #ebcccc;\n}\n.table-responsive {\n min-height: 0.01%;\n overflow-x: auto;\n}\n@media screen and (max-width: 767px) {\n .table-responsive {\n width: 100%;\n margin-bottom: 15px;\n overflow-y: hidden;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n border: 1px solid #ddd;\n }\n .table-responsive > .table {\n margin-bottom: 0;\n }\n .table-responsive > .table > thead > tr > th,\n .table-responsive > .table > tbody > tr > th,\n .table-responsive > .table > tfoot > tr > th,\n .table-responsive > .table > thead > tr > td,\n .table-responsive > .table > tbody > tr > td,\n .table-responsive > .table > tfoot > tr > td {\n white-space: nowrap;\n }\n .table-responsive > .table-bordered {\n border: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:first-child,\n .table-responsive > .table-bordered > tbody > tr > th:first-child,\n .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n .table-responsive > .table-bordered > thead > tr > td:first-child,\n .table-responsive > .table-bordered > tbody > tr > td:first-child,\n .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:last-child,\n .table-responsive > .table-bordered > tbody > tr > th:last-child,\n .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n .table-responsive > .table-bordered > thead > tr > td:last-child,\n .table-responsive > .table-bordered > tbody > tr > td:last-child,\n .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n }\n .table-responsive > .table-bordered > tbody > tr:last-child > th,\n .table-responsive > .table-bordered > tfoot > tr:last-child > th,\n .table-responsive > .table-bordered > tbody > tr:last-child > td,\n .table-responsive > .table-bordered > tfoot > tr:last-child > td {\n border-bottom: 0;\n }\n}\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: 20px;\n font-size: 21px;\n line-height: inherit;\n color: #333;\n border: 0;\n border-bottom: 1px solid #e5e5e5;\n}\nlabel {\n display: inline-block;\n max-width: 100%;\n margin-bottom: 5px;\n font-weight: bold;\n}\ninput[type='search'] {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\ninput[type='radio'],\ninput[type='checkbox'] {\n margin: 4px 0 0;\n margin-top: 1px \\9;\n line-height: normal;\n}\ninput[type='file'] {\n display: block;\n}\ninput[type='range'] {\n display: block;\n width: 100%;\n}\nselect[multiple],\nselect[size] {\n height: auto;\n}\ninput[type='file']:focus,\ninput[type='radio']:focus,\ninput[type='checkbox']:focus {\n outline: thin dotted;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\noutput {\n display: block;\n padding-top: 7px;\n font-size: 14px;\n line-height: 1.42857143;\n color: #555;\n}\n//.form-control {\n// display: block;\n// width: 100%;\n// height: 34px;\n// padding: 6px 12px;\n// font-size: 14px;\n// line-height: 1.42857143;\n// color: #555;\n// background-color: #fff;\n// background-image: none;\n// border: 1px solid #ccc;\n// border-radius: 4px;\n// -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n// box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n// -webkit-transition: border-color ease-in-out 0.15s, -webkit-box-shadow ease-in-out 0.15s;\n// -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n// transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n//}\n//.form-control:focus {\n// border-color: #66afe9;\n// outline: 0;\n// -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);\n// box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);\n//}\n//.form-control::-moz-placeholder {\n// color: #999;\n// opacity: 1;\n//}\n//.form-control:-ms-input-placeholder {\n// color: #999;\n//}\n//.form-control::-webkit-input-placeholder {\n// color: #999;\n//}\n//.form-control[disabled],\n//.form-control[readonly],\n//fieldset[disabled] .form-control {\n// background-color: #eee;\n// opacity: 1;\n//}\n//.form-control[disabled],\n//fieldset[disabled] .form-control {\n// cursor: not-allowed;\n//}\n//textarea.form-control {\n// height: auto;\n//}\n//input[type='search'] {\n// -webkit-appearance: none;\n//}\n// @media screen and (-webkit-min-device-pixel-ratio: 0) {\n// input[type='date'],\n// input[type='time'],\n// input[type='datetime-local'],\n// input[type='month'] {\n// line-height: 34px;\n// }\n// input[type='date'].input-sm,\n// input[type='time'].input-sm,\n// input[type='datetime-local'].input-sm,\n// input[type='month'].input-sm,\n// .input-group-sm input[type='date'],\n// .input-group-sm input[type='time'],\n// .input-group-sm input[type='datetime-local'],\n// .input-group-sm input[type='month'] {\n// line-height: 30px;\n// }\n// input[type='date'].input-lg,\n// input[type='time'].input-lg,\n// input[type='datetime-local'].input-lg,\n// input[type='month'].input-lg,\n// .input-group-lg input[type='date'],\n// .input-group-lg input[type='time'],\n// .input-group-lg input[type='datetime-local'],\n// .input-group-lg input[type='month'] {\n// line-height: 46px;\n// }\n// }\n//.form-group {\n// margin-bottom: 15px;\n//}\n.radio,\n.checkbox {\n position: relative;\n display: block;\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.radio label,\n.checkbox label {\n min-height: 20px;\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: normal;\n cursor: pointer;\n}\n.radio input[type='radio'],\n.radio-inline input[type='radio'],\n.checkbox input[type='checkbox'],\n.checkbox-inline input[type='checkbox'] {\n position: absolute;\n margin-top: 4px \\9;\n margin-left: -20px;\n}\n.radio + .radio,\n.checkbox + .checkbox {\n margin-top: -5px;\n}\n.radio-inline,\n.checkbox-inline {\n position: relative;\n display: inline-block;\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: normal;\n vertical-align: middle;\n cursor: pointer;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n margin-top: 0;\n margin-left: 10px;\n}\ninput[type='radio'][disabled],\ninput[type='checkbox'][disabled],\ninput[type='radio'].disabled,\ninput[type='checkbox'].disabled,\nfieldset[disabled] input[type='radio'],\nfieldset[disabled] input[type='checkbox'] {\n cursor: not-allowed;\n}\n.radio-inline.disabled,\n.checkbox-inline.disabled,\nfieldset[disabled] .radio-inline,\nfieldset[disabled] .checkbox-inline {\n cursor: not-allowed;\n}\n.radio.disabled label,\n.checkbox.disabled label,\nfieldset[disabled] .radio label,\nfieldset[disabled] .checkbox label {\n cursor: not-allowed;\n}\n.form-control-static {\n min-height: 34px;\n padding-top: 7px;\n padding-bottom: 7px;\n margin-bottom: 0;\n}\n.form-control-static.input-lg,\n.form-control-static.input-sm {\n padding-right: 0;\n padding-left: 0;\n}\n.input-sm {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-sm {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-sm,\nselect[multiple].input-sm {\n height: auto;\n}\n.form-group-sm .form-control {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.form-group-sm .form-control {\n height: 30px;\n line-height: 30px;\n}\ntextarea.form-group-sm .form-control,\nselect[multiple].form-group-sm .form-control {\n height: auto;\n}\n.form-group-sm .form-control-static {\n height: 30px;\n min-height: 32px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n.input-lg {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-lg {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-lg,\nselect[multiple].input-lg {\n height: auto;\n}\n.form-group-lg .form-control {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.form-group-lg .form-control {\n height: 46px;\n line-height: 46px;\n}\ntextarea.form-group-lg .form-control,\nselect[multiple].form-group-lg .form-control {\n height: auto;\n}\n.form-group-lg .form-control-static {\n height: 46px;\n min-height: 38px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n}\n.has-feedback {\n position: relative;\n}\n.has-feedback .form-control {\n padding-right: 42.5px;\n}\n.form-control-feedback {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n display: block;\n width: 34px;\n height: 34px;\n line-height: 34px;\n text-align: center;\n pointer-events: none;\n}\n.input-lg + .form-control-feedback {\n width: 46px;\n height: 46px;\n line-height: 46px;\n}\n.input-sm + .form-control-feedback {\n width: 30px;\n height: 30px;\n line-height: 30px;\n}\n.has-success .help-block,\n.has-success .control-label,\n.has-success .radio,\n.has-success .checkbox,\n.has-success .radio-inline,\n.has-success .checkbox-inline,\n.has-success.radio label,\n.has-success.checkbox label,\n.has-success.radio-inline label,\n.has-success.checkbox-inline label {\n color: #3c763d;\n}\n.has-success .form-control {\n border-color: #3c763d;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-success .form-control:focus {\n border-color: #2b542c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n}\n.has-success .input-group-addon {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #3c763d;\n}\n.has-success .form-control-feedback {\n color: #3c763d;\n}\n.has-warning .help-block,\n.has-warning .control-label,\n.has-warning .radio,\n.has-warning .checkbox,\n.has-warning .radio-inline,\n.has-warning .checkbox-inline,\n.has-warning.radio label,\n.has-warning.checkbox label,\n.has-warning.radio-inline label,\n.has-warning.checkbox-inline label {\n color: #8a6d3b;\n}\n.has-warning .form-control {\n border-color: #8a6d3b;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-warning .form-control:focus {\n border-color: #66512c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n}\n.has-warning .input-group-addon {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #8a6d3b;\n}\n.has-warning .form-control-feedback {\n color: #8a6d3b;\n}\n.has-error .help-block,\n.has-error .control-label,\n.has-error .radio,\n.has-error .checkbox,\n.has-error .radio-inline,\n.has-error .checkbox-inline,\n.has-error.radio label,\n.has-error.checkbox label,\n.has-error.radio-inline label,\n.has-error.checkbox-inline label {\n color: #a94442;\n}\n.has-error .form-control {\n border-color: #a94442;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-error .form-control:focus {\n border-color: #843534;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n}\n.has-error .input-group-addon {\n color: #a94442;\n background-color: #f2dede;\n border-color: #a94442;\n}\n.has-error .form-control-feedback {\n color: #a94442;\n}\n.has-feedback label ~ .form-control-feedback {\n top: 25px;\n}\n.has-feedback label.sr-only ~ .form-control-feedback {\n top: 0;\n}\n.help-block {\n display: block;\n margin-top: 5px;\n margin-bottom: 10px;\n color: #737373;\n}\n@media (min-width: 768px) {\n .form-inline .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-static {\n display: inline-block;\n }\n .form-inline .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .form-inline .input-group .input-group-addon,\n .form-inline .input-group .input-group-btn,\n .form-inline .input-group .form-control {\n width: auto;\n }\n .form-inline .input-group > .form-control {\n width: 100%;\n }\n .form-inline .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio,\n .form-inline .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio label,\n .form-inline .checkbox label {\n padding-left: 0;\n }\n .form-inline .radio input[type='radio'],\n .form-inline .checkbox input[type='checkbox'] {\n position: relative;\n margin-left: 0;\n }\n .form-inline .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox,\n.form-horizontal .radio-inline,\n.form-horizontal .checkbox-inline {\n padding-top: 7px;\n margin-top: 0;\n margin-bottom: 0;\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox {\n min-height: 27px;\n}\n.form-horizontal .form-group {\n margin-right: -15px;\n margin-left: -15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .control-label {\n padding-top: 7px;\n margin-bottom: 0;\n text-align: right;\n }\n}\n.form-horizontal .has-feedback .form-control-feedback {\n right: 15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-lg .control-label {\n padding-top: 14.333333px;\n }\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-sm .control-label {\n padding-top: 6px;\n }\n}\n.btn {\n display: inline-block;\n padding: 6px 12px;\n margin-bottom: 0;\n font-size: 14px;\n font-weight: normal;\n line-height: 1.42857143;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n -ms-touch-action: manipulation;\n touch-action: manipulation;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n background-image: none;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.btn:focus,\n.btn:active:focus,\n.btn.active:focus,\n.btn.focus,\n.btn:active.focus,\n.btn.active.focus {\n outline: thin dotted;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n.btn:hover,\n.btn:focus,\n.btn.focus {\n color: #333;\n text-decoration: none;\n}\n.btn:active,\n.btn.active {\n background-image: none;\n outline: 0;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn.disabled,\n.btn[disabled],\nfieldset[disabled] .btn {\n pointer-events: none;\n cursor: not-allowed;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none;\n opacity: 0.65;\n}\n.btn-default {\n color: #333;\n background-color: #fff;\n border-color: #ccc;\n}\n.btn-default:hover,\n.btn-default:focus,\n.btn-default.focus,\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n color: #333;\n background-color: #e6e6e6;\n border-color: #adadad;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n background-image: none;\n}\n.btn-default.disabled,\n.btn-default[disabled],\nfieldset[disabled] .btn-default,\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus,\n.btn-default.disabled:active,\n.btn-default[disabled]:active,\nfieldset[disabled] .btn-default:active,\n.btn-default.disabled.active,\n.btn-default[disabled].active,\nfieldset[disabled] .btn-default.active {\n background-color: #fff;\n border-color: #ccc;\n}\n.btn-default .badge {\n color: #fff;\n background-color: #333;\n}\n.btn-primary {\n color: #fff;\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary:hover,\n.btn-primary:focus,\n.btn-primary.focus,\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n color: #fff;\n background-color: #286090;\n border-color: #204d74;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n background-image: none;\n}\n.btn-primary.disabled,\n.btn-primary[disabled],\nfieldset[disabled] .btn-primary,\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus,\n.btn-primary.disabled:active,\n.btn-primary[disabled]:active,\nfieldset[disabled] .btn-primary:active,\n.btn-primary.disabled.active,\n.btn-primary[disabled].active,\nfieldset[disabled] .btn-primary.active {\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.btn-success {\n color: #fff;\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success:hover,\n.btn-success:focus,\n.btn-success.focus,\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n color: #fff;\n background-color: #449d44;\n border-color: #398439;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n background-image: none;\n}\n.btn-success.disabled,\n.btn-success[disabled],\nfieldset[disabled] .btn-success,\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus,\n.btn-success.disabled:active,\n.btn-success[disabled]:active,\nfieldset[disabled] .btn-success:active,\n.btn-success.disabled.active,\n.btn-success[disabled].active,\nfieldset[disabled] .btn-success.active {\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success .badge {\n color: #5cb85c;\n background-color: #fff;\n}\n.btn-info {\n color: #fff;\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info:hover,\n.btn-info:focus,\n.btn-info.focus,\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n color: #fff;\n background-color: #31b0d5;\n border-color: #269abc;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n background-image: none;\n}\n.btn-info.disabled,\n.btn-info[disabled],\nfieldset[disabled] .btn-info,\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus,\n.btn-info.disabled:active,\n.btn-info[disabled]:active,\nfieldset[disabled] .btn-info:active,\n.btn-info.disabled.active,\n.btn-info[disabled].active,\nfieldset[disabled] .btn-info.active {\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info .badge {\n color: #5bc0de;\n background-color: #fff;\n}\n.btn-warning {\n color: #fff;\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning:hover,\n.btn-warning:focus,\n.btn-warning.focus,\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n color: #fff;\n background-color: #ec971f;\n border-color: #d58512;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n background-image: none;\n}\n.btn-warning.disabled,\n.btn-warning[disabled],\nfieldset[disabled] .btn-warning,\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus,\n.btn-warning.disabled:active,\n.btn-warning[disabled]:active,\nfieldset[disabled] .btn-warning:active,\n.btn-warning.disabled.active,\n.btn-warning[disabled].active,\nfieldset[disabled] .btn-warning.active {\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning .badge {\n color: #f0ad4e;\n background-color: #fff;\n}\n.btn-danger {\n color: #fff;\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger:hover,\n.btn-danger:focus,\n.btn-danger.focus,\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n color: #fff;\n background-color: #c9302c;\n border-color: #ac2925;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n background-image: none;\n}\n.btn-danger.disabled,\n.btn-danger[disabled],\nfieldset[disabled] .btn-danger,\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus,\n.btn-danger.disabled:active,\n.btn-danger[disabled]:active,\nfieldset[disabled] .btn-danger:active,\n.btn-danger.disabled.active,\n.btn-danger[disabled].active,\nfieldset[disabled] .btn-danger.active {\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger .badge {\n color: #d9534f;\n background-color: #fff;\n}\n.btn-link {\n font-weight: normal;\n color: #337ab7;\n border-radius: 0;\n}\n.btn-link,\n.btn-link:active,\n.btn-link.active,\n.btn-link[disabled],\nfieldset[disabled] .btn-link {\n background-color: transparent;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-link,\n.btn-link:hover,\n.btn-link:focus,\n.btn-link:active {\n border-color: transparent;\n}\n.btn-link:hover,\n.btn-link:focus {\n color: #23527c;\n text-decoration: underline;\n background-color: transparent;\n}\n.btn-link[disabled]:hover,\nfieldset[disabled] .btn-link:hover,\n.btn-link[disabled]:focus,\nfieldset[disabled] .btn-link:focus {\n color: #777;\n text-decoration: none;\n}\n.btn-lg,\n.btn-group-lg > .btn {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\n.btn-sm,\n.btn-group-sm > .btn {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-xs,\n.btn-group-xs > .btn {\n padding: 1px 5px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-block {\n display: block;\n width: 100%;\n}\n.btn-block + .btn-block {\n margin-top: 5px;\n}\ninput[type='submit'].btn-block,\ninput[type='reset'].btn-block,\ninput[type='button'].btn-block {\n width: 100%;\n}\n.fade {\n opacity: 0;\n -webkit-transition: opacity 0.15s linear;\n -o-transition: opacity 0.15s linear;\n transition: opacity 0.15s linear;\n}\n.fade.in {\n opacity: 1;\n}\n.collapse {\n display: none;\n}\n.collapse.in {\n display: block;\n}\ntr.collapse.in {\n display: table-row;\n}\ntbody.collapse.in {\n display: table-row-group;\n}\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n -webkit-transition-timing-function: ease;\n -o-transition-timing-function: ease;\n transition-timing-function: ease;\n -webkit-transition-duration: 0.35s;\n -o-transition-duration: 0.35s;\n transition-duration: 0.35s;\n -webkit-transition-property: height, visibility;\n -o-transition-property: height, visibility;\n transition-property: height, visibility;\n}\n.caret {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 2px;\n vertical-align: middle;\n border-top: 4px dashed;\n border-right: 4px solid transparent;\n border-left: 4px solid transparent;\n}\n.dropup,\n.dropdown {\n position: relative;\n}\n.dropdown-toggle:focus {\n outline: 0;\n}\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 160px;\n padding: 5px 0;\n margin: 2px 0 0;\n font-size: 14px;\n text-align: left;\n list-style: none;\n background-color: #fff;\n -webkit-background-clip: padding-box;\n background-clip: padding-box;\n border: 1px solid #ccc;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n}\n.dropdown-menu.pull-right {\n right: 0;\n left: auto;\n}\n.dropdown-menu .divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.dropdown-menu > li > a {\n display: block;\n padding: 3px 20px;\n clear: both;\n font-weight: normal;\n line-height: 1.42857143;\n color: #333;\n white-space: nowrap;\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n color: #262626;\n text-decoration: none;\n background-color: #f5f5f5;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n color: #fff;\n text-decoration: none;\n background-color: #337ab7;\n outline: 0;\n}\n.dropdown-menu > .disabled > a,\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n color: #777;\n}\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n text-decoration: none;\n cursor: not-allowed;\n background-color: transparent;\n background-image: none;\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n}\n.open > .dropdown-menu {\n display: block;\n}\n.open > a {\n outline: 0;\n}\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n.dropdown-header {\n display: block;\n padding: 3px 20px;\n font-size: 12px;\n line-height: 1.42857143;\n color: #777;\n white-space: nowrap;\n}\n.dropdown-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 990;\n}\n.pull-right > .dropdown-menu {\n right: 0;\n left: auto;\n}\n.dropup .caret,\n.navbar-fixed-bottom .dropdown .caret {\n content: '';\n border-top: 0;\n border-bottom: 4px solid;\n}\n.dropup .dropdown-menu,\n.navbar-fixed-bottom .dropdown .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-bottom: 2px;\n}\n@media (min-width: 768px) {\n .navbar-right .dropdown-menu {\n right: 0;\n left: auto;\n }\n .navbar-right .dropdown-menu-left {\n right: auto;\n left: 0;\n }\n}\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n}\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n float: left;\n}\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover,\n.btn-group > .btn:focus,\n.btn-group-vertical > .btn:focus,\n.btn-group > .btn:active,\n.btn-group-vertical > .btn:active,\n.btn-group > .btn.active,\n.btn-group-vertical > .btn.active {\n z-index: 2;\n}\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group {\n margin-left: -1px;\n}\n.btn-toolbar {\n margin-left: -5px;\n}\n.btn-toolbar .btn-group,\n.btn-toolbar .input-group {\n float: left;\n}\n.btn-toolbar > .btn,\n.btn-toolbar > .btn-group,\n.btn-toolbar > .input-group {\n margin-left: 5px;\n}\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n border-radius: 0;\n}\n.btn-group > .btn:first-child {\n margin-left: 0;\n}\n.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group > .btn-group {\n float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n outline: 0;\n}\n.btn-group > .btn + .dropdown-toggle {\n padding-right: 8px;\n padding-left: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n padding-right: 12px;\n padding-left: 12px;\n}\n.btn-group.open .dropdown-toggle {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-group.open .dropdown-toggle.btn-link {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn .caret {\n margin-left: 0;\n}\n.btn-lg .caret {\n border-width: 5px 5px 0;\n border-bottom-width: 0;\n}\n.dropup .btn-lg .caret {\n border-width: 0 5px 5px;\n}\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group,\n.btn-group-vertical > .btn-group > .btn {\n display: block;\n float: none;\n width: 100%;\n max-width: 100%;\n}\n.btn-group-vertical > .btn-group > .btn {\n float: none;\n}\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n}\n.btn-group-vertical > .btn:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.btn-group-vertical > .btn:first-child:not(:last-child) {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn:last-child:not(:first-child) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n border-bottom-left-radius: 4px;\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.btn-group-justified {\n display: table;\n width: 100%;\n table-layout: fixed;\n border-collapse: separate;\n}\n.btn-group-justified > .btn,\n.btn-group-justified > .btn-group {\n display: table-cell;\n float: none;\n width: 1%;\n}\n.btn-group-justified > .btn-group .btn {\n width: 100%;\n}\n.btn-group-justified > .btn-group .dropdown-menu {\n left: auto;\n}\n[data-toggle='buttons'] > .btn input[type='radio'],\n[data-toggle='buttons'] > .btn-group > .btn input[type='radio'],\n[data-toggle='buttons'] > .btn input[type='checkbox'],\n[data-toggle='buttons'] > .btn-group > .btn input[type='checkbox'] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n.input-group {\n position: relative;\n display: table;\n border-collapse: separate;\n}\n.input-group[class*='col-'] {\n float: none;\n padding-right: 0;\n padding-left: 0;\n}\n.input-group .form-control {\n position: relative;\n z-index: 2;\n float: left;\n width: 100%;\n margin-bottom: 0;\n}\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-group-lg > .form-control,\nselect.input-group-lg > .input-group-addon,\nselect.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-group-lg > .form-control,\ntextarea.input-group-lg > .input-group-addon,\ntextarea.input-group-lg > .input-group-btn > .btn,\nselect[multiple].input-group-lg > .form-control,\nselect[multiple].input-group-lg > .input-group-addon,\nselect[multiple].input-group-lg > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-group-sm > .form-control,\nselect.input-group-sm > .input-group-addon,\nselect.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-group-sm > .form-control,\ntextarea.input-group-sm > .input-group-addon,\ntextarea.input-group-sm > .input-group-btn > .btn,\nselect[multiple].input-group-sm > .form-control,\nselect[multiple].input-group-sm > .input-group-addon,\nselect[multiple].input-group-sm > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n display: table-cell;\n}\n.input-group-addon:not(:first-child):not(:last-child),\n.input-group-btn:not(:first-child):not(:last-child),\n.input-group .form-control:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.input-group-addon,\n.input-group-btn {\n width: 1%;\n white-space: nowrap;\n vertical-align: middle;\n}\n.input-group-addon {\n padding: 6px 12px;\n font-size: 14px;\n font-weight: normal;\n line-height: 1;\n color: #555;\n text-align: center;\n background-color: #eee;\n border: 1px solid #ccc;\n border-radius: 4px;\n}\n.input-group-addon.input-sm {\n padding: 5px 10px;\n font-size: 12px;\n border-radius: 3px;\n}\n.input-group-addon.input-lg {\n padding: 10px 16px;\n font-size: 18px;\n border-radius: 6px;\n}\n.input-group-addon input[type='radio'],\n.input-group-addon input[type='checkbox'] {\n margin-top: 0;\n}\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.input-group-addon:first-child {\n border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.input-group-addon:last-child {\n border-left: 0;\n}\n.input-group-btn {\n position: relative;\n font-size: 0;\n white-space: nowrap;\n}\n.input-group-btn > .btn {\n position: relative;\n}\n.input-group-btn > .btn + .btn {\n margin-left: -1px;\n}\n.input-group-btn > .btn:hover,\n.input-group-btn > .btn:focus,\n.input-group-btn > .btn:active {\n z-index: 2;\n}\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group {\n margin-right: -1px;\n}\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group {\n margin-left: -1px;\n}\n.nav {\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n.nav > li {\n position: relative;\n display: block;\n}\n.nav > li > a {\n position: relative;\n display: block;\n padding: 10px 15px;\n}\n.nav > li > a:hover,\n.nav > li > a:focus {\n text-decoration: none;\n background-color: #eee;\n}\n.nav > li.disabled > a {\n color: #777;\n}\n.nav > li.disabled > a:hover,\n.nav > li.disabled > a:focus {\n color: #777;\n text-decoration: none;\n cursor: not-allowed;\n background-color: transparent;\n}\n.nav .open > a,\n.nav .open > a:hover,\n.nav .open > a:focus {\n background-color: #eee;\n border-color: #337ab7;\n}\n.nav .nav-divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.nav > li > a > img {\n max-width: none;\n}\n.nav-tabs {\n border-bottom: 1px solid #ddd;\n}\n.nav-tabs > li {\n float: left;\n margin-bottom: -1px;\n}\n.nav-tabs > li > a {\n margin-right: 2px;\n line-height: 1.42857143;\n border: 1px solid transparent;\n border-radius: 4px 4px 0 0;\n}\n.nav-tabs > li > a:hover {\n border-color: #eee #eee #ddd;\n}\n.nav-tabs > li.active > a,\n.nav-tabs > li.active > a:hover,\n.nav-tabs > li.active > a:focus {\n color: #555;\n cursor: default;\n background-color: #fff;\n border: 1px solid #ddd;\n border-bottom-color: transparent;\n}\n.nav-tabs.nav-justified {\n width: 100%;\n border-bottom: 0;\n}\n.nav-tabs.nav-justified > li {\n float: none;\n}\n.nav-tabs.nav-justified > li > a {\n margin-bottom: 5px;\n text-align: center;\n}\n.nav-tabs.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-tabs.nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs.nav-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs.nav-justified > .active > a,\n.nav-tabs.nav-justified > .active > a:hover,\n.nav-tabs.nav-justified > .active > a:focus {\n border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li > a {\n border-bottom: 1px solid #ddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs.nav-justified > .active > a,\n .nav-tabs.nav-justified > .active > a:hover,\n .nav-tabs.nav-justified > .active > a:focus {\n border-bottom-color: #fff;\n }\n}\n.nav-pills > li {\n float: left;\n}\n.nav-pills > li > a {\n border-radius: 4px;\n}\n.nav-pills > li + li {\n margin-left: 2px;\n}\n.nav-pills > li.active > a,\n.nav-pills > li.active > a:hover,\n.nav-pills > li.active > a:focus {\n color: #fff;\n background-color: #337ab7;\n}\n.nav-stacked > li {\n float: none;\n}\n.nav-stacked > li + li {\n margin-top: 2px;\n margin-left: 0;\n}\n.nav-justified {\n width: 100%;\n}\n.nav-justified > li {\n float: none;\n}\n.nav-justified > li > a {\n margin-bottom: 5px;\n text-align: center;\n}\n.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs-justified {\n border-bottom: 0;\n}\n.nav-tabs-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs-justified > .active > a,\n.nav-tabs-justified > .active > a:hover,\n.nav-tabs-justified > .active > a:focus {\n border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n .nav-tabs-justified > li > a {\n border-bottom: 1px solid #ddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs-justified > .active > a,\n .nav-tabs-justified > .active > a:hover,\n .nav-tabs-justified > .active > a:focus {\n border-bottom-color: #fff;\n }\n}\n.tab-content > .tab-pane {\n display: none;\n}\n.tab-content > .active {\n display: block;\n}\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.navbar {\n position: relative;\n min-height: 50px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n}\n@media (min-width: 768px) {\n .navbar {\n border-radius: 4px;\n }\n}\n@media (min-width: 768px) {\n .navbar-header {\n float: left;\n }\n}\n.navbar-collapse {\n padding-right: 15px;\n padding-left: 15px;\n overflow-x: visible;\n -webkit-overflow-scrolling: touch;\n border-top: 1px solid transparent;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);\n}\n.navbar-collapse.in {\n overflow-y: auto;\n}\n@media (min-width: 768px) {\n .navbar-collapse {\n width: auto;\n border-top: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n .navbar-collapse.collapse {\n display: block !important;\n height: auto !important;\n padding-bottom: 0;\n overflow: visible !important;\n }\n .navbar-collapse.in {\n overflow-y: visible;\n }\n .navbar-fixed-top .navbar-collapse,\n .navbar-static-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n padding-right: 0;\n padding-left: 0;\n }\n}\n.navbar-fixed-top .navbar-collapse,\n.navbar-fixed-bottom .navbar-collapse {\n max-height: 340px;\n}\n@media (max-device-width: 480px) and (orientation: landscape) {\n .navbar-fixed-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n max-height: 200px;\n }\n}\n.container > .navbar-header,\n.container-fluid > .navbar-header,\n.container > .navbar-collapse,\n.container-fluid > .navbar-collapse {\n margin-right: -15px;\n margin-left: -15px;\n}\n@media (min-width: 768px) {\n .container > .navbar-header,\n .container-fluid > .navbar-header,\n .container > .navbar-collapse,\n .container-fluid > .navbar-collapse {\n margin-right: 0;\n margin-left: 0;\n }\n}\n.navbar-static-top {\n z-index: 1000;\n border-width: 0 0 1px;\n}\n@media (min-width: 768px) {\n .navbar-static-top {\n border-radius: 0;\n }\n}\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n position: fixed;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n@media (min-width: 768px) {\n .navbar-fixed-top,\n .navbar-fixed-bottom {\n border-radius: 0;\n }\n}\n.navbar-fixed-top {\n top: 0;\n border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n bottom: 0;\n margin-bottom: 0;\n border-width: 1px 0 0;\n}\n.navbar-brand {\n float: left;\n height: 50px;\n padding: 15px 15px;\n font-size: 18px;\n line-height: 20px;\n}\n.navbar-brand:hover,\n.navbar-brand:focus {\n text-decoration: none;\n}\n.navbar-brand > img {\n display: block;\n}\n@media (min-width: 768px) {\n .navbar > .container .navbar-brand,\n .navbar > .container-fluid .navbar-brand {\n margin-left: -15px;\n }\n}\n.navbar-toggle {\n position: relative;\n float: right;\n padding: 9px 10px;\n margin-top: 8px;\n margin-right: 15px;\n margin-bottom: 8px;\n background-color: transparent;\n background-image: none;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.navbar-toggle:focus {\n outline: 0;\n}\n.navbar-toggle .icon-bar {\n display: block;\n width: 22px;\n height: 2px;\n border-radius: 1px;\n}\n.navbar-toggle .icon-bar + .icon-bar {\n margin-top: 4px;\n}\n@media (min-width: 768px) {\n .navbar-toggle {\n display: none;\n }\n}\n.navbar-nav {\n margin: 7.5px -15px;\n}\n.navbar-nav > li > a {\n padding-top: 10px;\n padding-bottom: 10px;\n line-height: 20px;\n}\n@media (max-width: 767px) {\n .navbar-nav .open .dropdown-menu {\n position: static;\n float: none;\n width: auto;\n margin-top: 0;\n background-color: transparent;\n border: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n .navbar-nav .open .dropdown-menu > li > a,\n .navbar-nav .open .dropdown-menu .dropdown-header {\n padding: 5px 15px 5px 25px;\n }\n .navbar-nav .open .dropdown-menu > li > a {\n line-height: 20px;\n }\n .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-nav .open .dropdown-menu > li > a:focus {\n background-image: none;\n }\n}\n@media (min-width: 768px) {\n .navbar-nav {\n float: left;\n margin: 0;\n }\n .navbar-nav > li {\n float: left;\n }\n .navbar-nav > li > a {\n padding-top: 15px;\n padding-bottom: 15px;\n }\n}\n.navbar-form {\n padding: 10px 15px;\n margin-top: 8px;\n margin-right: -15px;\n margin-bottom: 8px;\n margin-left: -15px;\n border-top: 1px solid transparent;\n border-bottom: 1px solid transparent;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n}\n@media (min-width: 768px) {\n .navbar-form .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .navbar-form .form-control-static {\n display: inline-block;\n }\n .navbar-form .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .navbar-form .input-group .input-group-addon,\n .navbar-form .input-group .input-group-btn,\n .navbar-form .input-group .form-control {\n width: auto;\n }\n .navbar-form .input-group > .form-control {\n width: 100%;\n }\n .navbar-form .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio,\n .navbar-form .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio label,\n .navbar-form .checkbox label {\n padding-left: 0;\n }\n .navbar-form .radio input[type='radio'],\n .navbar-form .checkbox input[type='checkbox'] {\n position: relative;\n margin-left: 0;\n }\n .navbar-form .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n@media (max-width: 767px) {\n .navbar-form .form-group {\n margin-bottom: 5px;\n }\n .navbar-form .form-group:last-child {\n margin-bottom: 0;\n }\n}\n@media (min-width: 768px) {\n .navbar-form {\n width: auto;\n padding-top: 0;\n padding-bottom: 0;\n margin-right: 0;\n margin-left: 0;\n border: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n}\n.navbar-nav > li > .dropdown-menu {\n margin-top: 0;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n margin-bottom: 0;\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.navbar-btn {\n margin-top: 8px;\n margin-bottom: 8px;\n}\n.navbar-btn.btn-sm {\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.navbar-btn.btn-xs {\n margin-top: 14px;\n margin-bottom: 14px;\n}\n.navbar-text {\n margin-top: 15px;\n margin-bottom: 15px;\n}\n@media (min-width: 768px) {\n .navbar-text {\n float: left;\n margin-right: 15px;\n margin-left: 15px;\n }\n}\n@media (min-width: 768px) {\n .navbar-left {\n float: left !important;\n }\n .navbar-right {\n float: right !important;\n margin-right: -15px;\n }\n .navbar-right ~ .navbar-right {\n margin-right: 0;\n }\n}\n.navbar-default {\n background-color: #f8f8f8;\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-brand {\n color: #777;\n}\n.navbar-default .navbar-brand:hover,\n.navbar-default .navbar-brand:focus {\n color: #5e5e5e;\n background-color: transparent;\n}\n.navbar-default .navbar-text {\n color: #777;\n}\n.navbar-default .navbar-nav > li > a {\n color: #777;\n}\n.navbar-default .navbar-nav > li > a:hover,\n.navbar-default .navbar-nav > li > a:focus {\n color: #333;\n background-color: transparent;\n}\n.navbar-default .navbar-nav > .active > a,\n.navbar-default .navbar-nav > .active > a:hover,\n.navbar-default .navbar-nav > .active > a:focus {\n color: #555;\n background-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .disabled > a,\n.navbar-default .navbar-nav > .disabled > a:hover,\n.navbar-default .navbar-nav > .disabled > a:focus {\n color: #ccc;\n background-color: transparent;\n}\n.navbar-default .navbar-toggle {\n border-color: #ddd;\n}\n.navbar-default .navbar-toggle:hover,\n.navbar-default .navbar-toggle:focus {\n background-color: #ddd;\n}\n.navbar-default .navbar-toggle .icon-bar {\n background-color: #888;\n}\n.navbar-default .navbar-collapse,\n.navbar-default .navbar-form {\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .open > a:hover,\n.navbar-default .navbar-nav > .open > a:focus {\n color: #555;\n background-color: #e7e7e7;\n}\n@media (max-width: 767px) {\n .navbar-default .navbar-nav .open .dropdown-menu > li > a {\n color: #777;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #333;\n background-color: transparent;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #555;\n background-color: #e7e7e7;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #ccc;\n background-color: transparent;\n }\n}\n.navbar-default .navbar-link {\n color: #777;\n}\n.navbar-default .navbar-link:hover {\n color: #333;\n}\n.navbar-default .btn-link {\n color: #777;\n}\n.navbar-default .btn-link:hover,\n.navbar-default .btn-link:focus {\n color: #333;\n}\n.navbar-default .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-default .btn-link:hover,\n.navbar-default .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-default .btn-link:focus {\n color: #ccc;\n}\n.navbar-inverse {\n background-color: #222;\n border-color: #080808;\n}\n.navbar-inverse .navbar-brand {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-brand:hover,\n.navbar-inverse .navbar-brand:focus {\n color: #fff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-text {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a:hover,\n.navbar-inverse .navbar-nav > li > a:focus {\n color: #fff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-nav > .active > a,\n.navbar-inverse .navbar-nav > .active > a:hover,\n.navbar-inverse .navbar-nav > .active > a:focus {\n color: #fff;\n background-color: #080808;\n}\n.navbar-inverse .navbar-nav > .disabled > a,\n.navbar-inverse .navbar-nav > .disabled > a:hover,\n.navbar-inverse .navbar-nav > .disabled > a:focus {\n color: #444;\n background-color: transparent;\n}\n.navbar-inverse .navbar-toggle {\n border-color: #333;\n}\n.navbar-inverse .navbar-toggle:hover,\n.navbar-inverse .navbar-toggle:focus {\n background-color: #333;\n}\n.navbar-inverse .navbar-toggle .icon-bar {\n background-color: #fff;\n}\n.navbar-inverse .navbar-collapse,\n.navbar-inverse .navbar-form {\n border-color: #101010;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .open > a:hover,\n.navbar-inverse .navbar-nav > .open > a:focus {\n color: #fff;\n background-color: #080808;\n}\n@media (max-width: 767px) {\n .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {\n border-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu .divider {\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {\n color: #9d9d9d;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #fff;\n background-color: transparent;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #fff;\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #444;\n background-color: transparent;\n }\n}\n.navbar-inverse .navbar-link {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-link:hover {\n color: #fff;\n}\n.navbar-inverse .btn-link {\n color: #9d9d9d;\n}\n.navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link:focus {\n color: #fff;\n}\n.navbar-inverse .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-inverse .btn-link:focus {\n color: #444;\n}\n.breadcrumb {\n padding: 8px 15px;\n margin-bottom: 20px;\n list-style: none;\n background-color: #f5f5f5;\n border-radius: 4px;\n}\n.breadcrumb > li {\n display: inline-block;\n}\n.breadcrumb > li + li:before {\n padding: 0 5px;\n color: #ccc;\n content: '/\\00a0';\n}\n.breadcrumb > .active {\n color: #777;\n}\n.pagination {\n display: inline-block;\n padding-left: 0;\n margin: 20px 0;\n border-radius: 4px;\n}\n.pagination > li {\n display: inline;\n}\n.pagination > li > a,\n.pagination > li > span {\n position: relative;\n float: left;\n padding: 6px 12px;\n margin-left: -1px;\n line-height: 1.42857143;\n color: #337ab7;\n text-decoration: none;\n background-color: #fff;\n border: 1px solid #ddd;\n}\n.pagination > li:first-child > a,\n.pagination > li:first-child > span {\n margin-left: 0;\n border-top-left-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n.pagination > li:last-child > a,\n.pagination > li:last-child > span {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 4px;\n}\n.pagination > li > a:hover,\n.pagination > li > span:hover,\n.pagination > li > a:focus,\n.pagination > li > span:focus {\n color: #23527c;\n background-color: #eee;\n border-color: #ddd;\n}\n.pagination > .active > a,\n.pagination > .active > span,\n.pagination > .active > a:hover,\n.pagination > .active > span:hover,\n.pagination > .active > a:focus,\n.pagination > .active > span:focus {\n z-index: 2;\n color: #fff;\n cursor: default;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.pagination > .disabled > span,\n.pagination > .disabled > span:hover,\n.pagination > .disabled > span:focus,\n.pagination > .disabled > a,\n.pagination > .disabled > a:hover,\n.pagination > .disabled > a:focus {\n color: #777;\n cursor: not-allowed;\n background-color: #fff;\n border-color: #ddd;\n}\n.pagination-lg > li > a,\n.pagination-lg > li > span {\n padding: 10px 16px;\n font-size: 18px;\n}\n.pagination-lg > li:first-child > a,\n.pagination-lg > li:first-child > span {\n border-top-left-radius: 6px;\n border-bottom-left-radius: 6px;\n}\n.pagination-lg > li:last-child > a,\n.pagination-lg > li:last-child > span {\n border-top-right-radius: 6px;\n border-bottom-right-radius: 6px;\n}\n.pagination-sm > li > a,\n.pagination-sm > li > span {\n padding: 5px 10px;\n font-size: 12px;\n}\n.pagination-sm > li:first-child > a,\n.pagination-sm > li:first-child > span {\n border-top-left-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.pagination-sm > li:last-child > a,\n.pagination-sm > li:last-child > span {\n border-top-right-radius: 3px;\n border-bottom-right-radius: 3px;\n}\n.pager {\n padding-left: 0;\n margin: 20px 0;\n text-align: center;\n list-style: none;\n}\n.pager li {\n display: inline;\n}\n.pager li > a,\n.pager li > span {\n display: inline-block;\n padding: 5px 14px;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 15px;\n}\n.pager li > a:hover,\n.pager li > a:focus {\n text-decoration: none;\n background-color: #eee;\n}\n.pager .next > a,\n.pager .next > span {\n float: right;\n}\n.pager .previous > a,\n.pager .previous > span {\n float: left;\n}\n.pager .disabled > a,\n.pager .disabled > a:hover,\n.pager .disabled > a:focus,\n.pager .disabled > span {\n color: #777;\n cursor: not-allowed;\n background-color: #fff;\n}\n.label {\n display: inline;\n padding: 0.2em 0.6em 0.3em;\n font-size: 75%;\n font-weight: bold;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25em;\n}\na.label:hover,\na.label:focus {\n color: #fff;\n text-decoration: none;\n cursor: pointer;\n}\n.label:empty {\n display: none;\n}\n.btn .label {\n position: relative;\n top: -1px;\n}\n.label-default {\n background-color: #777;\n}\n.label-default[href]:hover,\n.label-default[href]:focus {\n background-color: #5e5e5e;\n}\n.label-primary {\n background-color: #337ab7;\n}\n.label-primary[href]:hover,\n.label-primary[href]:focus {\n background-color: #286090;\n}\n.label-success {\n background-color: #5cb85c;\n}\n.label-success[href]:hover,\n.label-success[href]:focus {\n background-color: #449d44;\n}\n.label-info {\n background-color: #5bc0de;\n}\n.label-info[href]:hover,\n.label-info[href]:focus {\n background-color: #31b0d5;\n}\n.label-warning {\n background-color: #f0ad4e;\n}\n.label-warning[href]:hover,\n.label-warning[href]:focus {\n background-color: #ec971f;\n}\n.label-danger {\n background-color: #d9534f;\n}\n.label-danger[href]:hover,\n.label-danger[href]:focus {\n background-color: #c9302c;\n}\n.badge {\n display: inline-block;\n min-width: 10px;\n padding: 3px 7px;\n font-size: 12px;\n font-weight: bold;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n background-color: #777;\n border-radius: 10px;\n}\n.badge:empty {\n display: none;\n}\n.btn .badge {\n position: relative;\n top: -1px;\n}\n.btn-xs .badge,\n.btn-group-xs > .btn .badge {\n top: 0;\n padding: 1px 5px;\n}\na.badge:hover,\na.badge:focus {\n color: #fff;\n text-decoration: none;\n cursor: pointer;\n}\n.list-group-item.active > .badge,\n.nav-pills > .active > a > .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.list-group-item > .badge {\n float: right;\n}\n.list-group-item > .badge + .badge {\n margin-right: 5px;\n}\n.nav-pills > li > a > .badge {\n margin-left: 3px;\n}\n.jumbotron {\n padding: 30px 15px;\n margin-bottom: 30px;\n color: inherit;\n background-color: #eee;\n}\n.jumbotron h1,\n.jumbotron .h1 {\n color: inherit;\n}\n.jumbotron p {\n margin-bottom: 15px;\n font-size: 21px;\n font-weight: 200;\n}\n.jumbotron > hr {\n border-top-color: #d5d5d5;\n}\n.container .jumbotron,\n.container-fluid .jumbotron {\n border-radius: 6px;\n}\n.jumbotron .container {\n max-width: 100%;\n}\n@media screen and (min-width: 768px) {\n .jumbotron {\n padding: 48px 0;\n }\n .container .jumbotron,\n .container-fluid .jumbotron {\n padding-right: 60px;\n padding-left: 60px;\n }\n .jumbotron h1,\n .jumbotron .h1 {\n font-size: 63px;\n }\n}\n.thumbnail {\n display: block;\n padding: 4px;\n margin-bottom: 20px;\n line-height: 1.42857143;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n -webkit-transition: border 0.2s ease-in-out;\n -o-transition: border 0.2s ease-in-out;\n transition: border 0.2s ease-in-out;\n}\n.thumbnail > img,\n.thumbnail a > img {\n margin-right: auto;\n margin-left: auto;\n}\na.thumbnail:hover,\na.thumbnail:focus,\na.thumbnail.active {\n border-color: #337ab7;\n}\n.thumbnail .caption {\n padding: 9px;\n color: #333;\n}\n.alert {\n padding: 15px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.alert h4 {\n margin-top: 0;\n color: inherit;\n}\n.alert .alert-link {\n font-weight: bold;\n}\n.alert > p,\n.alert > ul {\n margin-bottom: 0;\n}\n.alert > p + p {\n margin-top: 5px;\n}\n.alert-dismissable,\n.alert-dismissible {\n padding-right: 35px;\n}\n.alert-dismissable .close,\n.alert-dismissible .close {\n position: relative;\n top: -2px;\n right: -21px;\n color: inherit;\n}\n.alert-success {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #d6e9c6;\n}\n.alert-success hr {\n border-top-color: #c9e2b3;\n}\n.alert-success .alert-link {\n color: #2b542c;\n}\n.alert-info {\n color: #31708f;\n background-color: #d9edf7;\n border-color: #bce8f1;\n}\n.alert-info hr {\n border-top-color: #a6e1ec;\n}\n.alert-info .alert-link {\n color: #245269;\n}\n.alert-warning {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #faebcc;\n}\n.alert-warning hr {\n border-top-color: #f7e1b5;\n}\n.alert-warning .alert-link {\n color: #66512c;\n}\n.alert-danger {\n color: #a94442;\n background-color: #f2dede;\n border-color: #ebccd1;\n}\n.alert-danger hr {\n border-top-color: #e4b9c0;\n}\n.alert-danger .alert-link {\n color: #843534;\n}\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n@-o-keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n@keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n.progress {\n height: 20px;\n margin-bottom: 20px;\n overflow: hidden;\n background-color: #f5f5f5;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n.progress-bar {\n float: left;\n width: 0;\n height: 100%;\n font-size: 12px;\n line-height: 20px;\n color: #fff;\n text-align: center;\n background-color: #337ab7;\n -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n -webkit-transition: width 0.6s ease;\n -o-transition: width 0.6s ease;\n transition: width 0.6s ease;\n}\n.progress-striped .progress-bar,\n.progress-bar-striped {\n background-image: -webkit-linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n background-image: -o-linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n background-image: linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n -webkit-background-size: 40px 40px;\n background-size: 40px 40px;\n}\n.progress.active .progress-bar,\n.progress-bar.active {\n -webkit-animation: progress-bar-stripes 2s linear infinite;\n -o-animation: progress-bar-stripes 2s linear infinite;\n animation: progress-bar-stripes 2s linear infinite;\n}\n.progress-bar-success {\n background-color: #5cb85c;\n}\n.progress-striped .progress-bar-success {\n background-image: -webkit-linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n background-image: -o-linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n background-image: linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n}\n.progress-bar-info {\n background-color: #5bc0de;\n}\n.progress-striped .progress-bar-info {\n background-image: -webkit-linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n background-image: -o-linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n background-image: linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n}\n.progress-bar-warning {\n background-color: #f0ad4e;\n}\n.progress-striped .progress-bar-warning {\n background-image: -webkit-linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n background-image: -o-linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n background-image: linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n}\n.progress-bar-danger {\n background-color: #d9534f;\n}\n.progress-striped .progress-bar-danger {\n background-image: -webkit-linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n background-image: -o-linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n background-image: linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n}\n.media {\n margin-top: 15px;\n}\n.media:first-child {\n margin-top: 0;\n}\n.media,\n.media-body {\n overflow: hidden;\n zoom: 1;\n}\n.media-body {\n width: 10000px;\n}\n.media-object {\n display: block;\n}\n.media-right,\n.media > .pull-right {\n padding-left: 10px;\n}\n.media-left,\n.media > .pull-left {\n padding-right: 10px;\n}\n.media-left,\n.media-right,\n.media-body {\n display: table-cell;\n vertical-align: top;\n}\n.media-middle {\n vertical-align: middle;\n}\n.media-bottom {\n vertical-align: bottom;\n}\n.media-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.media-list {\n padding-left: 0;\n list-style: none;\n}\n.list-group {\n padding-left: 0;\n margin-bottom: 20px;\n}\n.list-group-item {\n position: relative;\n display: block;\n padding: 10px 15px;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid #ddd;\n}\n.list-group-item:first-child {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n}\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\na.list-group-item {\n color: #555;\n}\na.list-group-item .list-group-item-heading {\n color: #333;\n}\na.list-group-item:hover,\na.list-group-item:focus {\n color: #555;\n text-decoration: none;\n background-color: #f5f5f5;\n}\n.list-group-item.disabled,\n.list-group-item.disabled:hover,\n.list-group-item.disabled:focus {\n color: #777;\n cursor: not-allowed;\n background-color: #eee;\n}\n.list-group-item.disabled .list-group-item-heading,\n.list-group-item.disabled:hover .list-group-item-heading,\n.list-group-item.disabled:focus .list-group-item-heading {\n color: inherit;\n}\n.list-group-item.disabled .list-group-item-text,\n.list-group-item.disabled:hover .list-group-item-text,\n.list-group-item.disabled:focus .list-group-item-text {\n color: #777;\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n z-index: 2;\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.list-group-item.active .list-group-item-heading,\n.list-group-item.active:hover .list-group-item-heading,\n.list-group-item.active:focus .list-group-item-heading,\n.list-group-item.active .list-group-item-heading > small,\n.list-group-item.active:hover .list-group-item-heading > small,\n.list-group-item.active:focus .list-group-item-heading > small,\n.list-group-item.active .list-group-item-heading > .small,\n.list-group-item.active:hover .list-group-item-heading > .small,\n.list-group-item.active:focus .list-group-item-heading > .small {\n color: inherit;\n}\n.list-group-item.active .list-group-item-text,\n.list-group-item.active:hover .list-group-item-text,\n.list-group-item.active:focus .list-group-item-text {\n color: #c7ddef;\n}\n.list-group-item-success {\n color: #3c763d;\n background-color: #dff0d8;\n}\na.list-group-item-success {\n color: #3c763d;\n}\na.list-group-item-success .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-success:hover,\na.list-group-item-success:focus {\n color: #3c763d;\n background-color: #d0e9c6;\n}\na.list-group-item-success.active,\na.list-group-item-success.active:hover,\na.list-group-item-success.active:focus {\n color: #fff;\n background-color: #3c763d;\n border-color: #3c763d;\n}\n.list-group-item-info {\n color: #31708f;\n background-color: #d9edf7;\n}\na.list-group-item-info {\n color: #31708f;\n}\na.list-group-item-info .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-info:hover,\na.list-group-item-info:focus {\n color: #31708f;\n background-color: #c4e3f3;\n}\na.list-group-item-info.active,\na.list-group-item-info.active:hover,\na.list-group-item-info.active:focus {\n color: #fff;\n background-color: #31708f;\n border-color: #31708f;\n}\n.list-group-item-warning {\n color: #8a6d3b;\n background-color: #fcf8e3;\n}\na.list-group-item-warning {\n color: #8a6d3b;\n}\na.list-group-item-warning .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-warning:hover,\na.list-group-item-warning:focus {\n color: #8a6d3b;\n background-color: #faf2cc;\n}\na.list-group-item-warning.active,\na.list-group-item-warning.active:hover,\na.list-group-item-warning.active:focus {\n color: #fff;\n background-color: #8a6d3b;\n border-color: #8a6d3b;\n}\n.list-group-item-danger {\n color: #a94442;\n background-color: #f2dede;\n}\na.list-group-item-danger {\n color: #a94442;\n}\na.list-group-item-danger .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-danger:hover,\na.list-group-item-danger:focus {\n color: #a94442;\n background-color: #ebcccc;\n}\na.list-group-item-danger.active,\na.list-group-item-danger.active:hover,\na.list-group-item-danger.active:focus {\n color: #fff;\n background-color: #a94442;\n border-color: #a94442;\n}\n.list-group-item-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.list-group-item-text {\n margin-bottom: 0;\n line-height: 1.3;\n}\n.panel {\n margin-bottom: 20px;\n background-color: #fff;\n border: 1px solid transparent;\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.panel-body {\n padding: 15px;\n}\n.panel-heading {\n padding: 10px 15px;\n border-bottom: 1px solid transparent;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel-heading > .dropdown .dropdown-toggle {\n color: inherit;\n}\n.panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: 16px;\n color: inherit;\n}\n.panel-title > a,\n.panel-title > small,\n.panel-title > .small,\n.panel-title > small > a,\n.panel-title > .small > a {\n color: inherit;\n}\n.panel-footer {\n padding: 10px 15px;\n background-color: #f5f5f5;\n border-top: 1px solid #ddd;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .list-group,\n.panel > .panel-collapse > .list-group {\n margin-bottom: 0;\n}\n.panel > .list-group .list-group-item,\n.panel > .panel-collapse > .list-group .list-group-item {\n border-width: 1px 0;\n border-radius: 0;\n}\n.panel > .list-group:first-child .list-group-item:first-child,\n.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {\n border-top: 0;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .list-group:last-child .list-group-item:last-child,\n.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {\n border-bottom: 0;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel-heading + .list-group .list-group-item:first-child {\n border-top-width: 0;\n}\n.list-group + .panel-footer {\n border-top-width: 0;\n}\n.panel > .table,\n.panel > .table-responsive > .table,\n.panel > .panel-collapse > .table {\n margin-bottom: 0;\n}\n.panel > .table caption,\n.panel > .table-responsive > .table caption,\n.panel > .panel-collapse > .table caption {\n padding-right: 15px;\n padding-left: 15px;\n}\n.panel > .table:first-child,\n.panel > .table-responsive:first-child > .table:first-child {\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {\n border-top-left-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {\n border-top-right-radius: 3px;\n}\n.panel > .table:last-child,\n.panel > .table-responsive:last-child > .table:last-child {\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {\n border-bottom-right-radius: 3px;\n}\n.panel > .panel-body + .table,\n.panel > .panel-body + .table-responsive,\n.panel > .table + .panel-body,\n.panel > .table-responsive + .panel-body {\n border-top: 1px solid #ddd;\n}\n.panel > .table > tbody:first-child > tr:first-child th,\n.panel > .table > tbody:first-child > tr:first-child td {\n border-top: 0;\n}\n.panel > .table-bordered,\n.panel > .table-responsive > .table-bordered {\n border: 0;\n}\n.panel > .table-bordered > thead > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\n.panel > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-bordered > thead > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\n.panel > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-bordered > tfoot > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n}\n.panel > .table-bordered > thead > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\n.panel > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-bordered > thead > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\n.panel > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-bordered > tfoot > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n}\n.panel > .table-bordered > thead > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,\n.panel > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-bordered > thead > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,\n.panel > .table-bordered > tbody > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {\n border-bottom: 0;\n}\n.panel > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-bordered > tfoot > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {\n border-bottom: 0;\n}\n.panel > .table-responsive {\n margin-bottom: 0;\n border: 0;\n}\n.panel-group {\n margin-bottom: 20px;\n}\n.panel-group .panel {\n margin-bottom: 0;\n border-radius: 4px;\n}\n.panel-group .panel + .panel {\n margin-top: 5px;\n}\n.panel-group .panel-heading {\n border-bottom: 0;\n}\n.panel-group .panel-heading + .panel-collapse > .panel-body,\n.panel-group .panel-heading + .panel-collapse > .list-group {\n border-top: 1px solid #ddd;\n}\n.panel-group .panel-footer {\n border-top: 0;\n}\n.panel-group .panel-footer + .panel-collapse .panel-body {\n border-bottom: 1px solid #ddd;\n}\n.panel-default {\n border-color: #ddd;\n}\n.panel-default > .panel-heading {\n color: #333;\n background-color: #f5f5f5;\n border-color: #ddd;\n}\n.panel-default > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ddd;\n}\n.panel-default > .panel-heading .badge {\n color: #f5f5f5;\n background-color: #333;\n}\n.panel-default > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ddd;\n}\n.panel-primary {\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading {\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #337ab7;\n}\n.panel-primary > .panel-heading .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.panel-primary > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #337ab7;\n}\n.panel-success {\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #d6e9c6;\n}\n.panel-success > .panel-heading .badge {\n color: #dff0d8;\n background-color: #3c763d;\n}\n.panel-success > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #d6e9c6;\n}\n.panel-info {\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading {\n color: #31708f;\n background-color: #d9edf7;\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #bce8f1;\n}\n.panel-info > .panel-heading .badge {\n color: #d9edf7;\n background-color: #31708f;\n}\n.panel-info > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #bce8f1;\n}\n.panel-warning {\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #faebcc;\n}\n.panel-warning > .panel-heading .badge {\n color: #fcf8e3;\n background-color: #8a6d3b;\n}\n.panel-warning > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #faebcc;\n}\n.panel-danger {\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading {\n color: #a94442;\n background-color: #f2dede;\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ebccd1;\n}\n.panel-danger > .panel-heading .badge {\n color: #f2dede;\n background-color: #a94442;\n}\n.panel-danger > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ebccd1;\n}\n.embed-responsive {\n position: relative;\n display: block;\n height: 0;\n padding: 0;\n overflow: hidden;\n}\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n.embed-responsive-16by9 {\n padding-bottom: 56.25%;\n}\n.embed-responsive-4by3 {\n padding-bottom: 75%;\n}\n.well {\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border: 1px solid #e3e3e3;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.well blockquote {\n border-color: #ddd;\n border-color: rgba(0, 0, 0, 0.15);\n}\n.well-lg {\n padding: 24px;\n border-radius: 6px;\n}\n.well-sm {\n padding: 9px;\n border-radius: 3px;\n}\n.close {\n float: right;\n font-size: 21px;\n font-weight: bold;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n filter: alpha(opacity=20);\n opacity: 0.2;\n}\n.close:hover,\n.close:focus {\n color: #000;\n text-decoration: none;\n cursor: pointer;\n filter: alpha(opacity=50);\n opacity: 0.5;\n}\nbutton.close {\n -webkit-appearance: none;\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n}\n.modal-open {\n overflow: hidden;\n}\n.modal {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1050;\n display: none;\n overflow: hidden;\n -webkit-overflow-scrolling: touch;\n outline: 0;\n}\n.modal.fade .modal-dialog {\n -webkit-transition: -webkit-transform 0.3s ease-out;\n -o-transition: -o-transform 0.3s ease-out;\n transition: transform 0.3s ease-out;\n -webkit-transform: translate(0, -25%);\n -ms-transform: translate(0, -25%);\n -o-transform: translate(0, -25%);\n transform: translate(0, -25%);\n}\n.modal.in .modal-dialog {\n -webkit-transform: translate(0, 0);\n -ms-transform: translate(0, 0);\n -o-transform: translate(0, 0);\n transform: translate(0, 0);\n}\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 10px;\n}\n.modal-content {\n position: relative;\n background-color: #fff;\n -webkit-background-clip: padding-box;\n background-clip: padding-box;\n border: 1px solid #999;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n outline: 0;\n -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n}\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1040;\n background-color: #000;\n}\n.modal-backdrop.fade {\n filter: alpha(opacity=0);\n opacity: 0;\n}\n.modal-backdrop.in {\n filter: alpha(opacity=50);\n opacity: 0.5;\n}\n.modal-header {\n min-height: 16.42857143px;\n padding: 15px;\n border-bottom: 1px solid #e5e5e5;\n}\n.modal-header .close {\n margin-top: -2px;\n}\n.modal-title {\n margin: 0;\n line-height: 1.42857143;\n}\n.modal-body {\n position: relative;\n padding: 15px;\n}\n.modal-footer {\n padding: 15px;\n text-align: right;\n border-top: 1px solid #e5e5e5;\n}\n.modal-footer .btn + .btn {\n margin-bottom: 0;\n margin-left: 5px;\n}\n.modal-footer .btn-group .btn + .btn {\n margin-left: -1px;\n}\n.modal-footer .btn-block + .btn-block {\n margin-left: 0;\n}\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n@media (min-width: 768px) {\n .modal-dialog {\n width: 600px;\n margin: 30px auto;\n }\n .modal-content {\n -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n }\n .modal-sm {\n width: 300px;\n }\n}\n@media (min-width: 992px) {\n .modal-lg {\n width: 900px;\n }\n}\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;\n font-size: 12px;\n font-weight: normal;\n line-height: 1.4;\n filter: alpha(opacity=0);\n opacity: 0;\n}\n.tooltip.in {\n filter: alpha(opacity=90);\n opacity: 0.9;\n}\n.tooltip.top {\n padding: 5px 0;\n margin-top: -3px;\n}\n.tooltip.right {\n padding: 0 5px;\n margin-left: 3px;\n}\n.tooltip.bottom {\n padding: 5px 0;\n margin-top: 3px;\n}\n.tooltip.left {\n padding: 0 5px;\n margin-left: -3px;\n}\n.tooltip-inner {\n max-width: 200px;\n padding: 3px 8px;\n color: #fff;\n text-align: center;\n text-decoration: none;\n background-color: #000;\n border-radius: 4px;\n}\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.tooltip.top .tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.top-left .tooltip-arrow {\n right: 5px;\n bottom: 0;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.top-right .tooltip-arrow {\n bottom: 0;\n left: 5px;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.right .tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: #000;\n}\n.tooltip.left .tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: #000;\n}\n.tooltip.bottom .tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.tooltip.bottom-left .tooltip-arrow {\n top: 0;\n right: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.tooltip.bottom-right .tooltip-arrow {\n top: 0;\n left: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: none;\n max-width: 276px;\n padding: 1px;\n font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;\n font-size: 14px;\n font-weight: normal;\n line-height: 1.42857143;\n text-align: left;\n white-space: normal;\n background-color: #fff;\n -webkit-background-clip: padding-box;\n background-clip: padding-box;\n border: 1px solid #ccc;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n}\n.popover.top {\n margin-top: -10px;\n}\n.popover.right {\n margin-left: 10px;\n}\n.popover.bottom {\n margin-top: 10px;\n}\n.popover.left {\n margin-left: -10px;\n}\n.popover-title {\n padding: 8px 14px;\n margin: 0;\n font-size: 14px;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-radius: 5px 5px 0 0;\n}\n.popover-content {\n padding: 9px 14px;\n}\n.popover > .arrow,\n.popover > .arrow:after {\n position: absolute;\n display: block;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.popover > .arrow {\n border-width: 11px;\n}\n.popover > .arrow:after {\n content: '';\n border-width: 10px;\n}\n.popover.top > .arrow {\n bottom: -11px;\n left: 50%;\n margin-left: -11px;\n border-top-color: #999;\n border-top-color: rgba(0, 0, 0, 0.25);\n border-bottom-width: 0;\n}\n.popover.top > .arrow:after {\n bottom: 1px;\n margin-left: -10px;\n content: ' ';\n border-top-color: #fff;\n border-bottom-width: 0;\n}\n.popover.right > .arrow {\n top: 50%;\n left: -11px;\n margin-top: -11px;\n border-right-color: #999;\n border-right-color: rgba(0, 0, 0, 0.25);\n border-left-width: 0;\n}\n.popover.right > .arrow:after {\n bottom: -10px;\n left: 1px;\n content: ' ';\n border-right-color: #fff;\n border-left-width: 0;\n}\n.popover.bottom > .arrow {\n top: -11px;\n left: 50%;\n margin-left: -11px;\n border-top-width: 0;\n border-bottom-color: #999;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n.popover.bottom > .arrow:after {\n top: 1px;\n margin-left: -10px;\n content: ' ';\n border-top-width: 0;\n border-bottom-color: #fff;\n}\n.popover.left > .arrow {\n top: 50%;\n right: -11px;\n margin-top: -11px;\n border-right-width: 0;\n border-left-color: #999;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n.popover.left > .arrow:after {\n right: 1px;\n bottom: -10px;\n content: ' ';\n border-right-width: 0;\n border-left-color: #fff;\n}\n.carousel {\n position: relative;\n}\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n.carousel-inner > .item {\n position: relative;\n display: none;\n -webkit-transition: 0.6s ease-in-out left;\n -o-transition: 0.6s ease-in-out left;\n transition: 0.6s ease-in-out left;\n}\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n line-height: 1;\n}\n@media all and (transform-3d), (-webkit-transform-3d) {\n .carousel-inner > .item {\n -webkit-transition: -webkit-transform 0.6s ease-in-out;\n -o-transition: -o-transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out;\n\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n -webkit-perspective: 1000;\n perspective: 1000;\n }\n .carousel-inner > .item.next,\n .carousel-inner > .item.active.right {\n left: 0;\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n }\n .carousel-inner > .item.prev,\n .carousel-inner > .item.active.left {\n left: 0;\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n }\n .carousel-inner > .item.next.left,\n .carousel-inner > .item.prev.right,\n .carousel-inner > .item.active {\n left: 0;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}\n.carousel-inner > .active,\n.carousel-inner > .next,\n.carousel-inner > .prev {\n display: block;\n}\n.carousel-inner > .active {\n left: 0;\n}\n.carousel-inner > .next,\n.carousel-inner > .prev {\n position: absolute;\n top: 0;\n width: 100%;\n}\n.carousel-inner > .next {\n left: 100%;\n}\n.carousel-inner > .prev {\n left: -100%;\n}\n.carousel-inner > .next.left,\n.carousel-inner > .prev.right {\n left: 0;\n}\n.carousel-inner > .active.left {\n left: -100%;\n}\n.carousel-inner > .active.right {\n left: 100%;\n}\n.carousel-control {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 15%;\n font-size: 20px;\n color: #fff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n filter: alpha(opacity=50);\n opacity: 0.5;\n}\n.carousel-control.left {\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: -webkit-gradient(\n linear,\n left top,\n right top,\n from(rgba(0, 0, 0, 0.5)),\n to(rgba(0, 0, 0, 0.0001))\n );\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);\n background-repeat: repeat-x;\n}\n.carousel-control.right {\n right: 0;\n left: auto;\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: -webkit-gradient(\n linear,\n left top,\n right top,\n from(rgba(0, 0, 0, 0.0001)),\n to(rgba(0, 0, 0, 0.5))\n );\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);\n background-repeat: repeat-x;\n}\n.carousel-control:hover,\n.carousel-control:focus {\n color: #fff;\n text-decoration: none;\n filter: alpha(opacity=90);\n outline: 0;\n opacity: 0.9;\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-left,\n.carousel-control .glyphicon-chevron-right {\n position: absolute;\n top: 50%;\n z-index: 5;\n display: inline-block;\n}\n.carousel-control .icon-prev,\n.carousel-control .glyphicon-chevron-left {\n left: 50%;\n margin-left: -10px;\n}\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-right {\n right: 50%;\n margin-right: -10px;\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next {\n width: 20px;\n height: 20px;\n margin-top: -10px;\n font-family: serif;\n line-height: 1;\n}\n.carousel-control .icon-prev:before {\n content: '\\2039';\n}\n.carousel-control .icon-next:before {\n content: '\\203a';\n}\n.carousel-indicators {\n position: absolute;\n bottom: 10px;\n left: 50%;\n z-index: 15;\n width: 60%;\n padding-left: 0;\n margin-left: -30%;\n text-align: center;\n list-style: none;\n}\n.carousel-indicators li {\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 1px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #000 \\9;\n background-color: rgba(0, 0, 0, 0);\n border: 1px solid #fff;\n border-radius: 10px;\n}\n.carousel-indicators .active {\n width: 12px;\n height: 12px;\n margin: 0;\n background-color: #fff;\n}\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n}\n.carousel-caption .btn {\n text-shadow: none;\n}\n@media screen and (min-width: 768px) {\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-prev,\n .carousel-control .icon-next {\n width: 30px;\n height: 30px;\n margin-top: -15px;\n font-size: 30px;\n }\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .icon-prev {\n margin-left: -15px;\n }\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-next {\n margin-right: -15px;\n }\n .carousel-caption {\n right: 20%;\n left: 20%;\n padding-bottom: 30px;\n }\n .carousel-indicators {\n bottom: 20px;\n }\n}\n.clearfix:before,\n.clearfix:after,\n.dl-horizontal dd:before,\n.dl-horizontal dd:after,\n.container:before,\n.container:after,\n.container-fluid:before,\n.container-fluid:after,\n.row:before,\n.row:after,\n.form-horizontal .form-group:before,\n.form-horizontal .form-group:after,\n.btn-toolbar:before,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:before,\n.btn-group-vertical > .btn-group:after,\n.nav:before,\n.nav:after,\n.navbar:before,\n.navbar:after,\n.navbar-header:before,\n.navbar-header:after,\n.navbar-collapse:before,\n.navbar-collapse:after,\n.pager:before,\n.pager:after,\n.panel-body:before,\n.panel-body:after,\n.modal-footer:before,\n.modal-footer:after {\n display: table;\n content: ' ';\n}\n.clearfix:after,\n.dl-horizontal dd:after,\n.container:after,\n.container-fluid:after,\n.row:after,\n.form-horizontal .form-group:after,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:after,\n.nav:after,\n.navbar:after,\n.navbar-header:after,\n.navbar-collapse:after,\n.pager:after,\n.panel-body:after,\n.modal-footer:after {\n clear: both;\n}\n.center-block {\n display: block;\n margin-right: auto;\n margin-left: auto;\n}\n.pull-right {\n float: right !important;\n}\n.pull-left {\n float: left !important;\n}\n.hide {\n display: none !important;\n}\n.show {\n display: block !important;\n}\n.invisible {\n visibility: hidden;\n}\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n.hidden {\n display: none !important;\n}\n.affix {\n position: fixed;\n}\n@-ms-viewport {\n width: device-width;\n}\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n display: none !important;\n}\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n display: none !important;\n}\n@media (max-width: 767px) {\n .visible-xs {\n display: block !important;\n }\n table.visible-xs {\n display: table;\n }\n tr.visible-xs {\n display: table-row !important;\n }\n th.visible-xs,\n td.visible-xs {\n display: table-cell !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-block {\n display: block !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline {\n display: inline !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm {\n display: block !important;\n }\n table.visible-sm {\n display: table;\n }\n tr.visible-sm {\n display: table-row !important;\n }\n th.visible-sm,\n td.visible-sm {\n display: table-cell !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-block {\n display: block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline {\n display: inline !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md {\n display: block !important;\n }\n table.visible-md {\n display: table;\n }\n tr.visible-md {\n display: table-row !important;\n }\n th.visible-md,\n td.visible-md {\n display: table-cell !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-block {\n display: block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline {\n display: inline !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg {\n display: block !important;\n }\n table.visible-lg {\n display: table;\n }\n tr.visible-lg {\n display: table-row !important;\n }\n th.visible-lg,\n td.visible-lg {\n display: table-cell !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-block {\n display: block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline {\n display: inline !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline-block {\n display: inline-block !important;\n }\n}\n@media (max-width: 767px) {\n .hidden-xs {\n display: none !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .hidden-sm {\n display: none !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .hidden-md {\n display: none !important;\n }\n}\n@media (min-width: 1200px) {\n .hidden-lg {\n display: none !important;\n }\n}\n.visible-print {\n display: none !important;\n}\n@media print {\n .visible-print {\n display: block !important;\n }\n table.visible-print {\n display: table;\n }\n tr.visible-print {\n display: table-row !important;\n }\n th.visible-print,\n td.visible-print {\n display: table-cell !important;\n }\n}\n.visible-print-block {\n display: none !important;\n}\n@media print {\n .visible-print-block {\n display: block !important;\n }\n}\n.visible-print-inline {\n display: none !important;\n}\n@media print {\n .visible-print-inline {\n display: inline !important;\n }\n}\n.visible-print-inline-block {\n display: none !important;\n}\n@media print {\n .visible-print-inline-block {\n display: inline-block !important;\n }\n}\n@media print {\n .hidden-print {\n display: none !important;\n }\n}\n","/*******************************************************************************\n * bootstrap-rtl (version 3.3.4)\n * Author: Morteza Ansarinia (http://github.com/morteza)\n * Created on: August 13,2015\n * Project: bootstrap-rtl\n * Copyright: Unlicensed Public Domain\n *******************************************************************************/\n\n[dir='rtl'] {\n .flip.text-left {\n text-align: right;\n }\n .flip.text-right {\n text-align: left;\n }\n .list-unstyled {\n padding-right: 0;\n padding-left: initial;\n }\n .list-inline {\n padding-right: 0;\n padding-left: initial;\n margin-right: -5px;\n margin-left: 0;\n }\n dd {\n margin-right: 0;\n margin-left: initial;\n }\n @media (min-width: 768px) {\n .dl-horizontal dt {\n float: right;\n clear: right;\n text-align: left;\n }\n .dl-horizontal dd {\n margin-right: 180px;\n margin-left: 0;\n }\n }\n blockquote {\n border-right: 5px solid #eeeeee;\n border-left: 0;\n }\n .blockquote-reverse,\n blockquote.pull-left {\n padding-left: 15px;\n padding-right: 0;\n border-left: 5px solid #eeeeee;\n border-right: 0;\n text-align: left;\n }\n .col-xs-1,\n .col-sm-1,\n .col-md-1,\n .col-lg-1,\n .col-xs-2,\n .col-sm-2,\n .col-md-2,\n .col-lg-2,\n .col-xs-3,\n .col-sm-3,\n .col-md-3,\n .col-lg-3,\n .col-xs-4,\n .col-sm-4,\n .col-md-4,\n .col-lg-4,\n .col-xs-5,\n .col-sm-5,\n .col-md-5,\n .col-lg-5,\n .col-xs-6,\n .col-sm-6,\n .col-md-6,\n .col-lg-6,\n .col-xs-7,\n .col-sm-7,\n .col-md-7,\n .col-lg-7,\n .col-xs-8,\n .col-sm-8,\n .col-md-8,\n .col-lg-8,\n .col-xs-9,\n .col-sm-9,\n .col-md-9,\n .col-lg-9,\n .col-xs-10,\n .col-sm-10,\n .col-md-10,\n .col-lg-10,\n .col-xs-11,\n .col-sm-11,\n .col-md-11,\n .col-lg-11,\n .col-xs-12,\n .col-sm-12,\n .col-md-12,\n .col-lg-12 {\n position: relative;\n min-height: 1px;\n padding-left: 15px;\n padding-right: 15px;\n }\n .col-xs-1,\n .col-xs-2,\n .col-xs-3,\n .col-xs-4,\n .col-xs-5,\n .col-xs-6,\n .col-xs-7,\n .col-xs-8,\n .col-xs-9,\n .col-xs-10,\n .col-xs-11,\n .col-xs-12 {\n float: right;\n }\n .col-xs-12 {\n width: 100%;\n }\n .col-xs-11 {\n width: 91.66666667%;\n }\n .col-xs-10 {\n width: 83.33333333%;\n }\n .col-xs-9 {\n width: 75%;\n }\n .col-xs-8 {\n width: 66.66666667%;\n }\n .col-xs-7 {\n width: 58.33333333%;\n }\n .col-xs-6 {\n width: 50%;\n }\n .col-xs-5 {\n width: 41.66666667%;\n }\n .col-xs-4 {\n width: 33.33333333%;\n }\n .col-xs-3 {\n width: 25%;\n }\n .col-xs-2 {\n width: 16.66666667%;\n }\n .col-xs-1 {\n width: 8.33333333%;\n }\n .col-xs-pull-12 {\n left: 100%;\n right: auto;\n }\n .col-xs-pull-11 {\n left: 91.66666667%;\n right: auto;\n }\n .col-xs-pull-10 {\n left: 83.33333333%;\n right: auto;\n }\n .col-xs-pull-9 {\n left: 75%;\n right: auto;\n }\n .col-xs-pull-8 {\n left: 66.66666667%;\n right: auto;\n }\n .col-xs-pull-7 {\n left: 58.33333333%;\n right: auto;\n }\n .col-xs-pull-6 {\n left: 50%;\n right: auto;\n }\n .col-xs-pull-5 {\n left: 41.66666667%;\n right: auto;\n }\n .col-xs-pull-4 {\n left: 33.33333333%;\n right: auto;\n }\n .col-xs-pull-3 {\n left: 25%;\n right: auto;\n }\n .col-xs-pull-2 {\n left: 16.66666667%;\n right: auto;\n }\n .col-xs-pull-1 {\n left: 8.33333333%;\n right: auto;\n }\n .col-xs-pull-0 {\n left: auto;\n right: auto;\n }\n .col-xs-push-12 {\n right: 100%;\n left: 0;\n }\n .col-xs-push-11 {\n right: 91.66666667%;\n left: 0;\n }\n .col-xs-push-10 {\n right: 83.33333333%;\n left: 0;\n }\n .col-xs-push-9 {\n right: 75%;\n left: 0;\n }\n .col-xs-push-8 {\n right: 66.66666667%;\n left: 0;\n }\n .col-xs-push-7 {\n right: 58.33333333%;\n left: 0;\n }\n .col-xs-push-6 {\n right: 50%;\n left: 0;\n }\n .col-xs-push-5 {\n right: 41.66666667%;\n left: 0;\n }\n .col-xs-push-4 {\n right: 33.33333333%;\n left: 0;\n }\n .col-xs-push-3 {\n right: 25%;\n left: 0;\n }\n .col-xs-push-2 {\n right: 16.66666667%;\n left: 0;\n }\n .col-xs-push-1 {\n right: 8.33333333%;\n left: 0;\n }\n .col-xs-push-0 {\n right: auto;\n left: 0;\n }\n .col-xs-offset-12 {\n margin-right: 100%;\n margin-left: 0;\n }\n .col-xs-offset-11 {\n margin-right: 91.66666667%;\n margin-left: 0;\n }\n .col-xs-offset-10 {\n margin-right: 83.33333333%;\n margin-left: 0;\n }\n .col-xs-offset-9 {\n margin-right: 75%;\n margin-left: 0;\n }\n .col-xs-offset-8 {\n margin-right: 66.66666667%;\n margin-left: 0;\n }\n .col-xs-offset-7 {\n margin-right: 58.33333333%;\n margin-left: 0;\n }\n .col-xs-offset-6 {\n margin-right: 50%;\n margin-left: 0;\n }\n .col-xs-offset-5 {\n margin-right: 41.66666667%;\n margin-left: 0;\n }\n .col-xs-offset-4 {\n margin-right: 33.33333333%;\n margin-left: 0;\n }\n .col-xs-offset-3 {\n margin-right: 25%;\n margin-left: 0;\n }\n .col-xs-offset-2 {\n margin-right: 16.66666667%;\n margin-left: 0;\n }\n .col-xs-offset-1 {\n margin-right: 8.33333333%;\n margin-left: 0;\n }\n .col-xs-offset-0 {\n margin-right: 0%;\n margin-left: 0;\n }\n @media (min-width: 768px) {\n .col-sm-1,\n .col-sm-2,\n .col-sm-3,\n .col-sm-4,\n .col-sm-5,\n .col-sm-6,\n .col-sm-7,\n .col-sm-8,\n .col-sm-9,\n .col-sm-10,\n .col-sm-11,\n .col-sm-12 {\n float: right;\n }\n .col-sm-12 {\n width: 100%;\n }\n .col-sm-11 {\n width: 91.66666667%;\n }\n .col-sm-10 {\n width: 83.33333333%;\n }\n .col-sm-9 {\n width: 75%;\n }\n .col-sm-8 {\n width: 66.66666667%;\n }\n .col-sm-7 {\n width: 58.33333333%;\n }\n .col-sm-6 {\n width: 50%;\n }\n .col-sm-5 {\n width: 41.66666667%;\n }\n .col-sm-4 {\n width: 33.33333333%;\n }\n .col-sm-3 {\n width: 25%;\n }\n .col-sm-2 {\n width: 16.66666667%;\n }\n .col-sm-1 {\n width: 8.33333333%;\n }\n .col-sm-pull-12 {\n left: 100%;\n right: auto;\n }\n .col-sm-pull-11 {\n left: 91.66666667%;\n right: auto;\n }\n .col-sm-pull-10 {\n left: 83.33333333%;\n right: auto;\n }\n .col-sm-pull-9 {\n left: 75%;\n right: auto;\n }\n .col-sm-pull-8 {\n left: 66.66666667%;\n right: auto;\n }\n .col-sm-pull-7 {\n left: 58.33333333%;\n right: auto;\n }\n .col-sm-pull-6 {\n left: 50%;\n right: auto;\n }\n .col-sm-pull-5 {\n left: 41.66666667%;\n right: auto;\n }\n .col-sm-pull-4 {\n left: 33.33333333%;\n right: auto;\n }\n .col-sm-pull-3 {\n left: 25%;\n right: auto;\n }\n .col-sm-pull-2 {\n left: 16.66666667%;\n right: auto;\n }\n .col-sm-pull-1 {\n left: 8.33333333%;\n right: auto;\n }\n .col-sm-pull-0 {\n left: auto;\n right: auto;\n }\n .col-sm-push-12 {\n right: 100%;\n left: 0;\n }\n .col-sm-push-11 {\n right: 91.66666667%;\n left: 0;\n }\n .col-sm-push-10 {\n right: 83.33333333%;\n left: 0;\n }\n .col-sm-push-9 {\n right: 75%;\n left: 0;\n }\n .col-sm-push-8 {\n right: 66.66666667%;\n left: 0;\n }\n .col-sm-push-7 {\n right: 58.33333333%;\n left: 0;\n }\n .col-sm-push-6 {\n right: 50%;\n left: 0;\n }\n .col-sm-push-5 {\n right: 41.66666667%;\n left: 0;\n }\n .col-sm-push-4 {\n right: 33.33333333%;\n left: 0;\n }\n .col-sm-push-3 {\n right: 25%;\n left: 0;\n }\n .col-sm-push-2 {\n right: 16.66666667%;\n left: 0;\n }\n .col-sm-push-1 {\n right: 8.33333333%;\n left: 0;\n }\n .col-sm-push-0 {\n right: auto;\n left: 0;\n }\n .col-sm-offset-12 {\n margin-right: 100%;\n margin-left: 0;\n }\n .col-sm-offset-11 {\n margin-right: 91.66666667%;\n margin-left: 0;\n }\n .col-sm-offset-10 {\n margin-right: 83.33333333%;\n margin-left: 0;\n }\n .col-sm-offset-9 {\n margin-right: 75%;\n margin-left: 0;\n }\n .col-sm-offset-8 {\n margin-right: 66.66666667%;\n margin-left: 0;\n }\n .col-sm-offset-7 {\n margin-right: 58.33333333%;\n margin-left: 0;\n }\n .col-sm-offset-6 {\n margin-right: 50%;\n margin-left: 0;\n }\n .col-sm-offset-5 {\n margin-right: 41.66666667%;\n margin-left: 0;\n }\n .col-sm-offset-4 {\n margin-right: 33.33333333%;\n margin-left: 0;\n }\n .col-sm-offset-3 {\n margin-right: 25%;\n margin-left: 0;\n }\n .col-sm-offset-2 {\n margin-right: 16.66666667%;\n margin-left: 0;\n }\n .col-sm-offset-1 {\n margin-right: 8.33333333%;\n margin-left: 0;\n }\n .col-sm-offset-0 {\n margin-right: 0%;\n margin-left: 0;\n }\n }\n @media (min-width: 992px) {\n .col-md-1,\n .col-md-2,\n .col-md-3,\n .col-md-4,\n .col-md-5,\n .col-md-6,\n .col-md-7,\n .col-md-8,\n .col-md-9,\n .col-md-10,\n .col-md-11,\n .col-md-12 {\n float: right;\n }\n .col-md-12 {\n width: 100%;\n }\n .col-md-11 {\n width: 91.66666667%;\n }\n .col-md-10 {\n width: 83.33333333%;\n }\n .col-md-9 {\n width: 75%;\n }\n .col-md-8 {\n width: 66.66666667%;\n }\n .col-md-7 {\n width: 58.33333333%;\n }\n .col-md-6 {\n width: 50%;\n }\n .col-md-5 {\n width: 41.66666667%;\n }\n .col-md-4 {\n width: 33.33333333%;\n }\n .col-md-3 {\n width: 25%;\n }\n .col-md-2 {\n width: 16.66666667%;\n }\n .col-md-1 {\n width: 8.33333333%;\n }\n .col-md-pull-12 {\n left: 100%;\n right: auto;\n }\n .col-md-pull-11 {\n left: 91.66666667%;\n right: auto;\n }\n .col-md-pull-10 {\n left: 83.33333333%;\n right: auto;\n }\n .col-md-pull-9 {\n left: 75%;\n right: auto;\n }\n .col-md-pull-8 {\n left: 66.66666667%;\n right: auto;\n }\n .col-md-pull-7 {\n left: 58.33333333%;\n right: auto;\n }\n .col-md-pull-6 {\n left: 50%;\n right: auto;\n }\n .col-md-pull-5 {\n left: 41.66666667%;\n right: auto;\n }\n .col-md-pull-4 {\n left: 33.33333333%;\n right: auto;\n }\n .col-md-pull-3 {\n left: 25%;\n right: auto;\n }\n .col-md-pull-2 {\n left: 16.66666667%;\n right: auto;\n }\n .col-md-pull-1 {\n left: 8.33333333%;\n right: auto;\n }\n .col-md-pull-0 {\n left: auto;\n right: auto;\n }\n .col-md-push-12 {\n right: 100%;\n left: 0;\n }\n .col-md-push-11 {\n right: 91.66666667%;\n left: 0;\n }\n .col-md-push-10 {\n right: 83.33333333%;\n left: 0;\n }\n .col-md-push-9 {\n right: 75%;\n left: 0;\n }\n .col-md-push-8 {\n right: 66.66666667%;\n left: 0;\n }\n .col-md-push-7 {\n right: 58.33333333%;\n left: 0;\n }\n .col-md-push-6 {\n right: 50%;\n left: 0;\n }\n .col-md-push-5 {\n right: 41.66666667%;\n left: 0;\n }\n .col-md-push-4 {\n right: 33.33333333%;\n left: 0;\n }\n .col-md-push-3 {\n right: 25%;\n left: 0;\n }\n .col-md-push-2 {\n right: 16.66666667%;\n left: 0;\n }\n .col-md-push-1 {\n right: 8.33333333%;\n left: 0;\n }\n .col-md-push-0 {\n right: auto;\n left: 0;\n }\n .col-md-offset-12 {\n margin-right: 100%;\n margin-left: 0;\n }\n .col-md-offset-11 {\n margin-right: 91.66666667%;\n margin-left: 0;\n }\n .col-md-offset-10 {\n margin-right: 83.33333333%;\n margin-left: 0;\n }\n .col-md-offset-9 {\n margin-right: 75%;\n margin-left: 0;\n }\n .col-md-offset-8 {\n margin-right: 66.66666667%;\n margin-left: 0;\n }\n .col-md-offset-7 {\n margin-right: 58.33333333%;\n margin-left: 0;\n }\n .col-md-offset-6 {\n margin-right: 50%;\n margin-left: 0;\n }\n .col-md-offset-5 {\n margin-right: 41.66666667%;\n margin-left: 0;\n }\n .col-md-offset-4 {\n margin-right: 33.33333333%;\n margin-left: 0;\n }\n .col-md-offset-3 {\n margin-right: 25%;\n margin-left: 0;\n }\n .col-md-offset-2 {\n margin-right: 16.66666667%;\n margin-left: 0;\n }\n .col-md-offset-1 {\n margin-right: 8.33333333%;\n margin-left: 0;\n }\n .col-md-offset-0 {\n margin-right: 0%;\n margin-left: 0;\n }\n }\n @media (min-width: 1200px) {\n .col-lg-1,\n .col-lg-2,\n .col-lg-3,\n .col-lg-4,\n .col-lg-5,\n .col-lg-6,\n .col-lg-7,\n .col-lg-8,\n .col-lg-9,\n .col-lg-10,\n .col-lg-11,\n .col-lg-12 {\n float: right;\n }\n .col-lg-12 {\n width: 100%;\n }\n .col-lg-11 {\n width: 91.66666667%;\n }\n .col-lg-10 {\n width: 83.33333333%;\n }\n .col-lg-9 {\n width: 75%;\n }\n .col-lg-8 {\n width: 66.66666667%;\n }\n .col-lg-7 {\n width: 58.33333333%;\n }\n .col-lg-6 {\n width: 50%;\n }\n .col-lg-5 {\n width: 41.66666667%;\n }\n .col-lg-4 {\n width: 33.33333333%;\n }\n .col-lg-3 {\n width: 25%;\n }\n .col-lg-2 {\n width: 16.66666667%;\n }\n .col-lg-1 {\n width: 8.33333333%;\n }\n .col-lg-pull-12 {\n left: 100%;\n right: auto;\n }\n .col-lg-pull-11 {\n left: 91.66666667%;\n right: auto;\n }\n .col-lg-pull-10 {\n left: 83.33333333%;\n right: auto;\n }\n .col-lg-pull-9 {\n left: 75%;\n right: auto;\n }\n .col-lg-pull-8 {\n left: 66.66666667%;\n right: auto;\n }\n .col-lg-pull-7 {\n left: 58.33333333%;\n right: auto;\n }\n .col-lg-pull-6 {\n left: 50%;\n right: auto;\n }\n .col-lg-pull-5 {\n left: 41.66666667%;\n right: auto;\n }\n .col-lg-pull-4 {\n left: 33.33333333%;\n right: auto;\n }\n .col-lg-pull-3 {\n left: 25%;\n right: auto;\n }\n .col-lg-pull-2 {\n left: 16.66666667%;\n right: auto;\n }\n .col-lg-pull-1 {\n left: 8.33333333%;\n right: auto;\n }\n .col-lg-pull-0 {\n left: auto;\n right: auto;\n }\n .col-lg-push-12 {\n right: 100%;\n left: 0;\n }\n .col-lg-push-11 {\n right: 91.66666667%;\n left: 0;\n }\n .col-lg-push-10 {\n right: 83.33333333%;\n left: 0;\n }\n .col-lg-push-9 {\n right: 75%;\n left: 0;\n }\n .col-lg-push-8 {\n right: 66.66666667%;\n left: 0;\n }\n .col-lg-push-7 {\n right: 58.33333333%;\n left: 0;\n }\n .col-lg-push-6 {\n right: 50%;\n left: 0;\n }\n .col-lg-push-5 {\n right: 41.66666667%;\n left: 0;\n }\n .col-lg-push-4 {\n right: 33.33333333%;\n left: 0;\n }\n .col-lg-push-3 {\n right: 25%;\n left: 0;\n }\n .col-lg-push-2 {\n right: 16.66666667%;\n left: 0;\n }\n .col-lg-push-1 {\n right: 8.33333333%;\n left: 0;\n }\n .col-lg-push-0 {\n right: auto;\n left: 0;\n }\n .col-lg-offset-12 {\n margin-right: 100%;\n margin-left: 0;\n }\n .col-lg-offset-11 {\n margin-right: 91.66666667%;\n margin-left: 0;\n }\n .col-lg-offset-10 {\n margin-right: 83.33333333%;\n margin-left: 0;\n }\n .col-lg-offset-9 {\n margin-right: 75%;\n margin-left: 0;\n }\n .col-lg-offset-8 {\n margin-right: 66.66666667%;\n margin-left: 0;\n }\n .col-lg-offset-7 {\n margin-right: 58.33333333%;\n margin-left: 0;\n }\n .col-lg-offset-6 {\n margin-right: 50%;\n margin-left: 0;\n }\n .col-lg-offset-5 {\n margin-right: 41.66666667%;\n margin-left: 0;\n }\n .col-lg-offset-4 {\n margin-right: 33.33333333%;\n margin-left: 0;\n }\n .col-lg-offset-3 {\n margin-right: 25%;\n margin-left: 0;\n }\n .col-lg-offset-2 {\n margin-right: 16.66666667%;\n margin-left: 0;\n }\n .col-lg-offset-1 {\n margin-right: 8.33333333%;\n margin-left: 0;\n }\n .col-lg-offset-0 {\n margin-right: 0%;\n margin-left: 0;\n }\n }\n caption {\n text-align: right;\n }\n th:not(.mx-left-aligned) {\n text-align: right;\n }\n @media screen and (max-width: 767px) {\n .table-responsive > .table-bordered {\n border: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:first-child,\n .table-responsive > .table-bordered > tbody > tr > th:first-child,\n .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n .table-responsive > .table-bordered > thead > tr > td:first-child,\n .table-responsive > .table-bordered > tbody > tr > td:first-child,\n .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-right: 0;\n border-left: initial;\n }\n .table-responsive > .table-bordered > thead > tr > th:last-child,\n .table-responsive > .table-bordered > tbody > tr > th:last-child,\n .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n .table-responsive > .table-bordered > thead > tr > td:last-child,\n .table-responsive > .table-bordered > tbody > tr > td:last-child,\n .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-left: 0;\n border-right: initial;\n }\n }\n .radio label,\n .checkbox label {\n padding-right: 20px;\n padding-left: initial;\n }\n .radio input[type='radio'],\n .radio-inline input[type='radio'],\n .checkbox input[type='checkbox'],\n .checkbox-inline input[type='checkbox'] {\n margin-right: -20px;\n margin-left: auto;\n }\n .radio-inline,\n .checkbox-inline {\n padding-right: 20px;\n padding-left: 0;\n }\n .radio-inline + .radio-inline,\n .checkbox-inline + .checkbox-inline {\n margin-right: 10px;\n margin-left: 0;\n }\n .has-feedback .form-control {\n padding-left: 42.5px;\n padding-right: 12px;\n }\n .form-control-feedback {\n left: 0;\n right: auto;\n }\n @media (min-width: 768px) {\n .form-inline label {\n padding-right: 0;\n padding-left: initial;\n }\n .form-inline .radio input[type='radio'],\n .form-inline .checkbox input[type='checkbox'] {\n margin-right: 0;\n margin-left: auto;\n }\n }\n @media (min-width: 768px) {\n .form-horizontal .control-label {\n text-align: left;\n }\n }\n .form-horizontal .has-feedback .form-control-feedback {\n left: 15px;\n right: auto;\n }\n .caret {\n margin-right: 2px;\n margin-left: 0;\n }\n .dropdown-menu {\n right: 0;\n left: auto;\n float: left;\n text-align: right;\n }\n .dropdown-menu.pull-right {\n left: 0;\n right: auto;\n float: right;\n }\n .dropdown-menu-right {\n left: auto;\n right: 0;\n }\n .dropdown-menu-left {\n left: 0;\n right: auto;\n }\n @media (min-width: 768px) {\n .navbar-right .dropdown-menu {\n left: auto;\n right: 0;\n }\n .navbar-right .dropdown-menu-left {\n left: 0;\n right: auto;\n }\n }\n .btn-group > .btn,\n .btn-group-vertical > .btn {\n float: right;\n }\n .btn-group .btn + .btn,\n .btn-group .btn + .btn-group,\n .btn-group .btn-group + .btn,\n .btn-group .btn-group + .btn-group {\n margin-right: -1px;\n margin-left: 0px;\n }\n .btn-toolbar {\n margin-right: -5px;\n margin-left: 0px;\n }\n .btn-toolbar .btn-group,\n .btn-toolbar .input-group {\n float: right;\n }\n .btn-toolbar > .btn,\n .btn-toolbar > .btn-group,\n .btn-toolbar > .input-group {\n margin-right: 5px;\n margin-left: 0px;\n }\n .btn-group > .btn:first-child {\n margin-right: 0;\n }\n .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n }\n .btn-group > .btn:last-child:not(:first-child),\n .btn-group > .dropdown-toggle:not(:first-child) {\n border-top-left-radius: 4px;\n border-bottom-left-radius: 4px;\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n }\n .btn-group > .btn-group {\n float: right;\n }\n .btn-group.btn-group-justified > .btn,\n .btn-group.btn-group-justified > .btn-group {\n float: none;\n }\n .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n }\n .btn-group > .btn-group:first-child > .btn:last-child,\n .btn-group > .btn-group:first-child > .dropdown-toggle {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n }\n .btn-group > .btn-group:last-child > .btn:first-child {\n border-top-left-radius: 4px;\n border-bottom-left-radius: 4px;\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n }\n .btn .caret {\n margin-right: 0;\n }\n .btn-group-vertical > .btn + .btn,\n .btn-group-vertical > .btn + .btn-group,\n .btn-group-vertical > .btn-group + .btn,\n .btn-group-vertical > .btn-group + .btn-group {\n margin-top: -1px;\n margin-right: 0;\n }\n .input-group .form-control {\n float: right;\n }\n .input-group .form-control:first-child,\n .input-group-addon:first-child,\n .input-group-btn:first-child > .btn,\n .input-group-btn:first-child > .btn-group > .btn,\n .input-group-btn:first-child > .dropdown-toggle,\n .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n .input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 4px;\n border-top-right-radius: 4px;\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n }\n .input-group-addon:first-child {\n border-left: 0px;\n border-right: 1px solid;\n }\n .input-group .form-control:last-child,\n .input-group-addon:last-child,\n .input-group-btn:last-child > .btn,\n .input-group-btn:last-child > .btn-group > .btn,\n .input-group-btn:last-child > .dropdown-toggle,\n .input-group-btn:first-child > .btn:not(:first-child),\n .input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n border-bottom-left-radius: 4px;\n border-top-left-radius: 4px;\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n }\n .input-group-addon:last-child {\n border-left-width: 1px;\n border-left-style: solid;\n border-right: 0px;\n }\n .input-group-btn > .btn + .btn {\n margin-right: -1px;\n margin-left: auto;\n }\n .input-group-btn:first-child > .btn,\n .input-group-btn:first-child > .btn-group {\n margin-left: -1px;\n margin-right: auto;\n }\n .input-group-btn:last-child > .btn,\n .input-group-btn:last-child > .btn-group {\n margin-right: -1px;\n margin-left: auto;\n }\n .nav {\n padding-right: 0;\n padding-left: initial;\n }\n .nav-tabs > li {\n float: right;\n }\n .nav-tabs > li > a {\n margin-left: auto;\n margin-right: -2px;\n border-radius: 4px 4px 0 0;\n }\n .nav-pills > li {\n float: right;\n }\n .nav-pills > li > a {\n border-radius: 4px;\n }\n .nav-pills > li + li {\n margin-right: 2px;\n margin-left: auto;\n }\n .nav-stacked > li {\n float: none;\n }\n .nav-stacked > li + li {\n margin-right: 0;\n margin-left: auto;\n }\n .nav-justified > .dropdown .dropdown-menu {\n right: auto;\n }\n .nav-tabs-justified > li > a {\n margin-left: 0;\n margin-right: auto;\n }\n @media (min-width: 768px) {\n .nav-tabs-justified > li > a {\n border-radius: 4px 4px 0 0;\n }\n }\n @media (min-width: 768px) {\n .navbar-header {\n float: right;\n }\n }\n .navbar-collapse {\n padding-right: 15px;\n padding-left: 15px;\n }\n .navbar-brand {\n float: right;\n }\n @media (min-width: 768px) {\n .navbar > .container .navbar-brand,\n .navbar > .container-fluid .navbar-brand {\n margin-right: -15px;\n margin-left: auto;\n }\n }\n .navbar-toggle {\n float: left;\n margin-left: 15px;\n margin-right: auto;\n }\n @media (max-width: 767px) {\n .navbar-nav .open .dropdown-menu > li > a,\n .navbar-nav .open .dropdown-menu .dropdown-header {\n padding: 5px 25px 5px 15px;\n }\n }\n @media (min-width: 768px) {\n .navbar-nav {\n float: right;\n }\n .navbar-nav > li {\n float: right;\n }\n }\n @media (min-width: 768px) {\n .navbar-left.flip {\n float: right !important;\n }\n .navbar-right:last-child {\n margin-left: -15px;\n margin-right: auto;\n }\n .navbar-right.flip {\n float: left !important;\n margin-left: -15px;\n margin-right: auto;\n }\n .navbar-right .dropdown-menu {\n left: 0;\n right: auto;\n }\n }\n @media (min-width: 768px) {\n .navbar-text {\n float: right;\n }\n .navbar-text.navbar-right:last-child {\n margin-left: 0;\n margin-right: auto;\n }\n }\n .pagination {\n padding-right: 0;\n }\n .pagination > li > a,\n .pagination > li > span {\n float: right;\n margin-right: -1px;\n margin-left: 0px;\n }\n .pagination > li:first-child > a,\n .pagination > li:first-child > span {\n margin-left: 0;\n border-bottom-right-radius: 4px;\n border-top-right-radius: 4px;\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n }\n .pagination > li:last-child > a,\n .pagination > li:last-child > span {\n margin-right: -1px;\n border-bottom-left-radius: 4px;\n border-top-left-radius: 4px;\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n }\n .pager {\n padding-right: 0;\n padding-left: initial;\n }\n .pager .next > a,\n .pager .next > span {\n float: left;\n }\n .pager .previous > a,\n .pager .previous > span {\n float: right;\n }\n .nav-pills > li > a > .badge {\n margin-left: 0px;\n margin-right: 3px;\n }\n .list-group-item > .badge {\n float: left;\n }\n .list-group-item > .badge + .badge {\n margin-left: 5px;\n margin-right: auto;\n }\n .alert-dismissable,\n .alert-dismissible {\n padding-left: 35px;\n padding-right: 15px;\n }\n .alert-dismissable .close,\n .alert-dismissible .close {\n right: auto;\n left: -21px;\n }\n .progress-bar {\n float: right;\n }\n .media > .pull-left {\n margin-right: 10px;\n }\n .media > .pull-left.flip {\n margin-right: 0;\n margin-left: 10px;\n }\n .media > .pull-right {\n margin-left: 10px;\n }\n .media > .pull-right.flip {\n margin-left: 0;\n margin-right: 10px;\n }\n .media-right,\n .media > .pull-right {\n padding-right: 10px;\n padding-left: initial;\n }\n .media-left,\n .media > .pull-left {\n padding-left: 10px;\n padding-right: initial;\n }\n .media-list {\n padding-right: 0;\n padding-left: initial;\n list-style: none;\n }\n .list-group {\n padding-right: 0;\n padding-left: initial;\n }\n .panel > .table:first-child > thead:first-child > tr:first-child td:first-child,\n .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,\n .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n .panel > .table:first-child > thead:first-child > tr:first-child th:first-child,\n .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,\n .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,\n .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {\n border-top-right-radius: 3px;\n border-top-left-radius: 0;\n }\n .panel > .table:first-child > thead:first-child > tr:first-child td:last-child,\n .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,\n .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n .panel > .table:first-child > thead:first-child > tr:first-child th:last-child,\n .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,\n .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,\n .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {\n border-top-left-radius: 3px;\n border-top-right-radius: 0;\n }\n .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,\n .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {\n border-bottom-left-radius: 3px;\n border-top-right-radius: 0;\n }\n .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,\n .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {\n border-bottom-right-radius: 3px;\n border-top-left-radius: 0;\n }\n .panel > .table-bordered > thead > tr > th:first-child,\n .panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\n .panel > .table-bordered > tbody > tr > th:first-child,\n .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\n .panel > .table-bordered > tfoot > tr > th:first-child,\n .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n .panel > .table-bordered > thead > tr > td:first-child,\n .panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\n .panel > .table-bordered > tbody > tr > td:first-child,\n .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\n .panel > .table-bordered > tfoot > tr > td:first-child,\n .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-right: 0;\n border-left: none;\n }\n .panel > .table-bordered > thead > tr > th:last-child,\n .panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\n .panel > .table-bordered > tbody > tr > th:last-child,\n .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\n .panel > .table-bordered > tfoot > tr > th:last-child,\n .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n .panel > .table-bordered > thead > tr > td:last-child,\n .panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\n .panel > .table-bordered > tbody > tr > td:last-child,\n .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\n .panel > .table-bordered > tfoot > tr > td:last-child,\n .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: none;\n border-left: 0;\n }\n .embed-responsive .embed-responsive-item,\n .embed-responsive iframe,\n .embed-responsive embed,\n .embed-responsive object {\n right: 0;\n left: auto;\n }\n .close {\n float: left;\n }\n .modal-footer {\n text-align: left;\n }\n .modal-footer.flip {\n text-align: right;\n }\n .modal-footer .btn + .btn {\n margin-left: auto;\n margin-right: 5px;\n }\n .modal-footer .btn-group .btn + .btn {\n margin-right: -1px;\n margin-left: auto;\n }\n .modal-footer .btn-block + .btn-block {\n margin-right: 0;\n margin-left: auto;\n }\n .popover {\n left: auto;\n text-align: right;\n }\n .popover.top > .arrow {\n right: 50%;\n left: auto;\n margin-right: -11px;\n margin-left: auto;\n }\n .popover.top > .arrow:after {\n margin-right: -10px;\n margin-left: auto;\n }\n .popover.bottom > .arrow {\n right: 50%;\n left: auto;\n margin-right: -11px;\n margin-left: auto;\n }\n .popover.bottom > .arrow:after {\n margin-right: -10px;\n margin-left: auto;\n }\n .carousel-control {\n right: 0;\n bottom: 0;\n }\n .carousel-control.left {\n right: auto;\n left: 0;\n background-image: -webkit-linear-gradient(\n left,\n color-stop(rgba(0, 0, 0, 0.5) 0%),\n color-stop(rgba(0, 0, 0, 0.0001) 100%)\n );\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);\n }\n .carousel-control.right {\n left: auto;\n right: 0;\n background-image: -webkit-linear-gradient(\n left,\n color-stop(rgba(0, 0, 0, 0.0001) 0%),\n color-stop(rgba(0, 0, 0, 0.5) 100%)\n );\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);\n }\n .carousel-control .icon-prev,\n .carousel-control .glyphicon-chevron-left {\n left: 50%;\n right: auto;\n margin-right: -10px;\n }\n .carousel-control .icon-next,\n .carousel-control .glyphicon-chevron-right {\n right: 50%;\n left: auto;\n margin-left: -10px;\n }\n .carousel-indicators {\n right: 50%;\n left: 0;\n margin-right: -30%;\n margin-left: 0;\n padding-left: 0;\n }\n @media screen and (min-width: 768px) {\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .icon-prev {\n margin-left: 0;\n margin-right: -15px;\n }\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-next {\n margin-left: 0;\n margin-right: -15px;\n }\n .carousel-caption {\n left: 20%;\n right: 20%;\n padding-bottom: 30px;\n }\n }\n .pull-right.flip {\n float: left !important;\n }\n .pull-left.flip {\n float: right !important;\n }\n}\n","/* @preserve\n Copyright (c) 2005-2016, Mendix bv. All rights reserved.\n See mxclientsystem/licenses.txt for third party licenses that apply.\n*/\n\n\n/*\n\tEssential styles that themes can inherit.\n\tIn other words, works but doesn't look great.\n*/\n\n\n\n/****\n\t\tGENERIC PIECES\n ****/\n\n .dijitReset {\n\t/* Use this style to null out padding, margin, border in your template elements\n\t\tso that page specific styles don't break them.\n\t\t- Use in all TABLE, TR and TD tags.\n\t*/\n\tmargin:0;\n\tborder:0;\n\tpadding:0;\n\tfont: inherit;\n\tline-height:normal;\n\tcolor: inherit;\n}\n.dj_a11y .dijitReset {\n\t-moz-appearance: none; /* remove predefined high-contrast styling in Firefox */\n}\n\n.dijitInline {\n\t/* To inline block elements.\n\t\tSimilar to InlineBox below, but this has fewer side-effects in Moz.\n\t\tAlso, apparently works on a DIV as well as a FIELDSET.\n\t*/\n\tdisplay:inline-block;\t\t\t/* webkit and FF3 */\n\tborder:0;\n\tpadding:0;\n\tvertical-align:middle;\n}\n\ntable.dijitInline {\n\t/* To inline tables with a given width set */\n\tdisplay:inline-table;\n\tbox-sizing: content-box; -moz-box-sizing: content-box;\n}\n\n.dijitHidden {\n\t/* To hide unselected panes in StackContainer etc. */\n\tposition: absolute; /* remove from normal document flow to simulate display: none */\n\tvisibility: hidden; /* hide element from view, but don't break scrolling, see #18612 */\n}\n.dijitHidden * {\n\tvisibility: hidden !important; /* hide visibility:visible descendants of class=dijitHidden nodes, see #18799 */\n}\n\n.dijitVisible {\n\t/* To show selected pane in StackContainer etc. */\n\tdisplay: block !important;\t/* override user's display:none setting via style setting or indirectly via class */\n\tposition: relative;\t\t\t/* to support setting width/height, see #2033 */\n\tvisibility: visible;\n}\n\n.dj_ie6 .dijitComboBox .dijitInputContainer,\n.dijitInputContainer {\n\t/* for positioning of placeHolder */\n\toverflow: hidden;\n\tfloat: none !important; /* needed to squeeze the INPUT in */\n\tposition: relative;\n}\n.dj_ie7 .dijitInputContainer {\n\tfloat: left !important; /* needed by IE to squeeze the INPUT in */\n\tclear: left;\n\tdisplay: inline-block !important; /* to fix wrong text alignment in textdir=rtl text box */\n}\n\n.dj_ie .dijitSelect input,\n.dj_ie input.dijitTextBox,\n.dj_ie .dijitTextBox input {\n\tfont-size: 100%;\n}\n.dijitSelect .dijitButtonText {\n\tfloat: left;\n\tvertical-align: top;\n}\nTABLE.dijitSelect {\n\tpadding: 0 !important; /* messes up border alignment */\n\tborder-collapse: separate; /* so jsfiddle works with Normalized CSS checked */\n}\n.dijitTextBox .dijitSpinnerButtonContainer,\n.dijitTextBox .dijitArrowButtonContainer,\n.dijitValidationTextBox .dijitValidationContainer {\n\tfloat: right;\n\ttext-align: center;\n}\n.dijitSelect input.dijitInputField,\n.dijitTextBox input.dijitInputField {\n\t/* override unreasonable user styling of buttons and icons */\n\tpadding-left: 0 !important;\n\tpadding-right: 0 !important;\n}\n.dijitValidationTextBox .dijitValidationContainer {\n\tdisplay: none;\n}\n\n.dijitTeeny {\n\tfont-size:1px;\n\tline-height:1px;\n}\n\n.dijitOffScreen { /* these class attributes should supersede any inline positioning style */\n\tposition: absolute !important;\n\tleft: -10000px !important;\n\ttop: -10000px !important;\n}\n\n/*\n * Popup items have a wrapper div (dijitPopup)\n * with the real popup inside, and maybe an iframe too\n */\n.dijitPopup {\n\tposition: absolute;\n\tbackground-color: transparent;\n\tmargin: 0;\n\tborder: 0;\n\tpadding: 0;\n\t-webkit-overflow-scrolling: touch;\n}\n\n.dijitPositionOnly {\n\t/* Null out all position-related properties */\n\tpadding: 0 !important;\n\tborder: 0 !important;\n\tbackground-color: transparent !important;\n\tbackground-image: none !important;\n\theight: auto !important;\n\twidth: auto !important;\n}\n\n.dijitNonPositionOnly {\n\t/* Null position-related properties */\n\tfloat: none !important;\n\tposition: static !important;\n\tmargin: 0 0 0 0 !important;\n\tvertical-align: middle !important;\n}\n\n.dijitBackgroundIframe {\n\t/* iframe used to prevent problems with PDF or other applets overlaying menus etc */\n\tposition: absolute;\n\tleft: 0;\n\ttop: 0;\n\twidth: 100%;\n\theight: 100%;\n\tz-index: -1;\n\tborder: 0;\n\tpadding: 0;\n\tmargin: 0;\n}\n\n.dijitDisplayNone {\n\t/* hide something. Use this as a class rather than element.style so another class can override */\n\tdisplay:none !important;\n}\n\n.dijitContainer {\n\t/* for all layout containers */\n\toverflow: hidden;\t/* need on IE so something can be reduced in size, and so scrollbars aren't temporarily displayed when resizing */\n}\n\n/****\n\t\tA11Y\n ****/\n.dj_a11y .dijitIcon,\n.dj_a11y div.dijitArrowButtonInner, /* is this only for Spinner? if so, it should be deleted */\n.dj_a11y span.dijitArrowButtonInner,\n.dj_a11y img.dijitArrowButtonInner,\n.dj_a11y .dijitCalendarIncrementControl,\n.dj_a11y .dijitTreeExpando {\n\t/* hide icon nodes in high contrast mode; when necessary they will be replaced by character equivalents\n\t * exception for input.dijitArrowButtonInner, because the icon and character are controlled by the same node */\n\tdisplay: none;\n}\n.dijitSpinner div.dijitArrowButtonInner {\n\tdisplay: block; /* override previous rule */\n}\n\n.dj_a11y .dijitA11ySideArrow {\n\tdisplay: inline !important; /* display text instead */\n\tcursor: pointer;\n}\n\n/*\n * Since we can't use shading in a11y mode, and since the underline indicates today's date,\n * use a border to show the selected date.\n * Avoid screen jitter when switching selected date by compensating for the selected node's\n * border w/padding on other nodes.\n */\n.dj_a11y .dijitCalendarDateLabel {\n\tpadding: 1px;\n\tborder: 0px !important;\n}\n.dj_a11y .dijitCalendarSelectedDate .dijitCalendarDateLabel {\n\tborder-style: solid !important;\n\tborder-width: 1px !important;\n\tpadding: 0;\n}\n.dj_a11y .dijitCalendarDateTemplate {\n\tpadding-bottom: 0.1em !important;\t/* otherwise bottom border doesn't appear on IE */\n\tborder: 0px !important;\n}\n.dj_a11y .dijitButtonNode {\n\tborder: black outset medium !important;\n\n\t/* In claro, hovering a toolbar button reduces padding and adds a border.\n\t * Not needed in a11y mode since Toolbar buttons always have a border.\n\t */\n\tpadding: 0 !important;\n}\n.dj_a11y .dijitArrowButton {\n\tpadding: 0 !important;\n}\n\n.dj_a11y .dijitButtonContents {\n\tmargin: 0.15em; /* Margin needed to make focus outline visible */\n}\n\n.dj_a11y .dijitTextBoxReadOnly .dijitInputField,\n.dj_a11y .dijitTextBoxReadOnly .dijitButtonNode {\n\tborder-style: outset!important;\n\tborder-width: medium!important;\n\tborder-color: #999 !important;\n\tcolor:#999 !important;\n}\n\n/* button inner contents - labels, icons etc. */\n.dijitButtonNode * {\n\tvertical-align: middle;\n}\n.dijitSelect .dijitArrowButtonInner,\n.dijitButtonNode .dijitArrowButtonInner {\n\t/* the arrow icon node */\n\tbackground: no-repeat center;\n\twidth: 12px;\n\theight: 12px;\n\tdirection: ltr; /* needed by IE/RTL */\n}\n\n/****\n\t3-element borders: ( dijitLeft + dijitStretch + dijitRight )\n\tThese were added for rounded corners on dijit.form.*Button but never actually used.\n ****/\n\n.dijitLeft {\n\t/* Left part of a 3-element border */\n\tbackground-position:left top;\n\tbackground-repeat:no-repeat;\n}\n\n.dijitStretch {\n\t/* Middle (stretchy) part of a 3-element border */\n\twhite-space:nowrap;\t\t\t/* MOW: move somewhere else */\n\tbackground-repeat:repeat-x;\n}\n\n.dijitRight {\n\t/* Right part of a 3-element border */\n\tbackground-position:right top;\n\tbackground-repeat:no-repeat;\n}\n\n/* Buttons */\n.dj_gecko .dj_a11y .dijitButtonDisabled .dijitButtonNode {\n\topacity: 0.5;\n}\n\n.dijitToggleButton,\n.dijitButton,\n.dijitDropDownButton,\n.dijitComboButton {\n\t/* outside of button */\n\tmargin: 0.2em;\n\tvertical-align: middle;\n}\n\n.dijitButtonContents {\n\tdisplay: block;\t\t/* to make focus border rectangular */\n}\ntd.dijitButtonContents {\n\tdisplay: table-cell;\t/* but don't affect Select, ComboButton */\n}\n\n.dijitButtonNode img {\n\t/* make text and images line up cleanly */\n\tvertical-align:middle;\n\t/*margin-bottom:.2em;*/\n}\n\n.dijitToolbar .dijitComboButton {\n\t/* because Toolbar only draws a border around the hovered thing */\n\tborder-collapse: separate;\n}\n\n.dijitToolbar .dijitToggleButton,\n.dijitToolbar .dijitButton,\n.dijitToolbar .dijitDropDownButton,\n.dijitToolbar .dijitComboButton {\n\tmargin: 0;\n}\n\n.dijitToolbar .dijitButtonContents {\n\t/* just because it used to be this way */\n\tpadding: 1px 2px;\n}\n\n\n.dj_webkit .dijitToolbar .dijitDropDownButton {\n\tpadding-left: 0.3em;\n}\n.dj_gecko .dijitToolbar .dijitButtonNode::-moz-focus-inner {\n\tpadding:0;\n}\n\n.dijitSelect {\n\tborder:1px solid gray;\n}\n.dijitButtonNode {\n\t/* Node that is acting as a button -- may or may not be a BUTTON element */\n\tborder:1px solid gray;\n\tmargin:0;\n\tline-height:normal;\n\tvertical-align: middle;\n\ttext-align:center;\n\twhite-space: nowrap;\n}\n.dj_webkit .dijitSpinner .dijitSpinnerButtonContainer {\n\t/* apparent WebKit bug where messing with the font coupled with line-height:normal X 2 (dijitReset & dijitButtonNode)\n\tcan be different than just a single line-height:normal, visible in InlineEditBox/Spinner */\n\tline-height:inherit;\n}\n.dijitTextBox .dijitButtonNode {\n\tborder-width: 0;\n}\n\n.dijitSelect,\n.dijitSelect *,\n.dijitButtonNode,\n.dijitButtonNode * {\n\tcursor: pointer;\n\t-webkit-tap-highlight-color: transparent;\n}\n\n.dj_ie .dijitButtonNode {\n\t/* ensure hasLayout */\n\tzoom: 1;\n}\n\n.dj_ie .dijitButtonNode button {\n\t/*\n\t\tdisgusting hack to get rid of spurious padding around button elements\n\t\ton IE. MSIE is truly the web's boat anchor.\n\t*/\n\toverflow: visible;\n}\n\ndiv.dijitArrowButton {\n\tfloat: right;\n}\n\n/******\n\tTextBox related.\n\tEverything that has an \n*******/\n\n.dijitTextBox {\n\tborder: solid black 1px;\n\twidth: 15em;\t/* need to set default size on outer node since inner nodes say and . user can override */\n\tvertical-align: middle;\n}\n\n.dijitTextBoxReadOnly,\n.dijitTextBoxDisabled {\n\tcolor: gray;\n}\n.dj_safari .dijitTextBoxDisabled input {\n\tcolor: #B0B0B0; /* because Safari lightens disabled input/textarea no matter what color you specify */\n}\n.dj_safari textarea.dijitTextAreaDisabled {\n\tcolor: #333; /* because Safari lightens disabled input/textarea no matter what color you specify */\n}\n.dj_gecko .dijitTextBoxReadOnly input.dijitInputField, /* disable arrow and validation presentation inputs but allow real input for text selection */\n.dj_gecko .dijitTextBoxDisabled input {\n\t-moz-user-input: none; /* prevent focus of disabled textbox buttons */\n}\n\n.dijitPlaceHolder {\n\t/* hint text that appears in a textbox until user starts typing */\n\tcolor: #AAAAAA;\n\tfont-style: italic;\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\twhite-space: nowrap;\n\tpointer-events: none; /* so cut/paste context menu shows up when right clicking */\n}\n\n.dijitTimeTextBox {\n\twidth: 8em;\n}\n\n/* rules for webkit to deal with fuzzy blue focus border */\n.dijitTextBox input:focus {\n\toutline: none;\t/* blue fuzzy line looks wrong on combobox or something w/validation icon showing */\n}\n.dijitTextBoxFocused {\n\toutline: 5px -webkit-focus-ring-color;\n}\n\n.dijitSelect input,\n.dijitTextBox input {\n\tfloat: left; /* needed by IE to remove secret margin */\n}\n.dj_ie6 input.dijitTextBox,\n.dj_ie6 .dijitTextBox input {\n\tfloat: none;\n}\n.dijitInputInner {\n\t/* for when an is embedded inside an inline-block
with a size and border */\n\tborder:0 !important;\n\tbackground-color:transparent !important;\n\twidth:100% !important;\n\t/* IE dislikes horizontal tweaking combined with width:100% so punish everyone for consistency */\n\tpadding-left: 0 !important;\n\tpadding-right: 0 !important;\n\tmargin-left: 0 !important;\n\tmargin-right: 0 !important;\n}\n.dj_a11y .dijitTextBox input {\n\tmargin: 0 !important;\n}\n.dijitValidationTextBoxError input.dijitValidationInner,\n.dijitSelect input,\n.dijitTextBox input.dijitArrowButtonInner {\n\t/* used to display arrow icon/validation icon, or in arrow character in high contrast mode.\n\t * The css below is a trick to hide the character in non-high-contrast mode\n\t */\n\ttext-indent: -2em !important;\n\tdirection: ltr !important;\n\ttext-align: left !important;\n\theight: auto !important;\n}\n.dj_ie .dijitSelect input,\n.dj_ie .dijitTextBox input,\n.dj_ie input.dijitTextBox {\n\toverflow-y: visible; /* inputs need help expanding when padding is added or line-height is adjusted */\n\tline-height: normal; /* strict mode */\n}\n.dijitSelect .dijitSelectLabel span {\n\tline-height: 100%;\n}\n.dj_ie .dijitSelect .dijitSelectLabel {\n\tline-height: normal;\n}\n.dj_ie6 .dijitSelect .dijitSelectLabel,\n.dj_ie7 .dijitSelect .dijitSelectLabel,\n.dj_ie8 .dijitSelect .dijitSelectLabel,\n.dj_iequirks .dijitSelect .dijitSelectLabel,\n.dijitSelect td,\n.dj_ie6 .dijitSelect input,\n.dj_iequirks .dijitSelect input,\n.dj_ie6 .dijitSelect .dijitValidationContainer,\n.dj_ie6 .dijitTextBox input,\n.dj_ie6 input.dijitTextBox,\n.dj_iequirks .dijitTextBox input.dijitValidationInner,\n.dj_iequirks .dijitTextBox input.dijitArrowButtonInner,\n.dj_iequirks .dijitTextBox input.dijitSpinnerButtonInner,\n.dj_iequirks .dijitTextBox input.dijitInputInner,\n.dj_iequirks input.dijitTextBox {\n\tline-height: 100%; /* IE7 problem where the icon is vertically way too low w/o this */\n}\n.dj_a11y input.dijitValidationInner,\n.dj_a11y input.dijitArrowButtonInner {\n\t/* (in high contrast mode) revert rules from above so character displays */\n\ttext-indent: 0 !important;\n\twidth: 1em !important;\n\tcolor: black !important;\n}\n.dijitValidationTextBoxError .dijitValidationContainer {\n\tdisplay: inline;\n\tcursor: default;\n}\n\n/* ComboBox & Spinner */\n\n.dijitSpinner .dijitSpinnerButtonContainer,\n.dijitComboBox .dijitArrowButtonContainer {\n\t/* dividing line between input area and up/down button(s) for ComboBox and Spinner */\n\tborder-width: 0 0 0 1px !important; /* !important needed due to wayward \".theme .dijitButtonNode\" rules */\n}\n.dj_a11y .dijitSelect .dijitArrowButtonContainer,\n.dijitToolbar .dijitComboBox .dijitArrowButtonContainer {\n\t/* overrides above rule plus mirror-image rule in dijit_rtl.css to have no divider when ComboBox in Toolbar */\n\tborder-width: 0 !important;\n}\n\n.dijitComboBoxMenu {\n\t/* Drop down menu is implemented as
  • ... but we don't want circles before each item */\n\tlist-style-type: none;\n}\n.dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode {\n\t/* dividing line between input area and up/down button(s) for ComboBox and Spinner */\n\tborder-width: 0;\n}\n.dj_ie .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode {\n\tclear: both; /* IE workaround */\n}\n\n.dj_ie .dijitToolbar .dijitComboBox {\n\t/* make combobox buttons align properly with other buttons in a toolbar */\n\tvertical-align: middle;\n}\n\n/* Spinner */\n\n.dijitTextBox .dijitSpinnerButtonContainer {\n\twidth: 1em;\n\tposition: relative !important;\n\toverflow: hidden;\n}\n.dijitSpinner .dijitSpinnerButtonInner {\n\twidth:1em;\n\tvisibility:hidden !important; /* just a sizing element */\n\toverflow-x:hidden;\n}\n.dijitComboBox .dijitButtonNode,\n.dijitSpinnerButtonContainer .dijitButtonNode {\n\tborder-width: 0;\n}\n.dj_a11y .dijitSpinnerButtonContainer .dijitButtonNode {\n\tborder-width: 0px !important;\n\tborder-style: solid !important;\n}\n.dj_a11y .dijitTextBox .dijitSpinnerButtonContainer,\n.dj_a11y .dijitSpinner .dijitArrowButtonInner,\n.dj_a11y .dijitSpinnerButtonContainer input {\n\twidth: 1em !important;\n}\n.dj_a11y .dijitSpinner .dijitArrowButtonInner {\n\tmargin: 0 auto !important; /* should auto-center */\n}\n.dj_ie .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {\n\tpadding-left: 0.3em !important;\n\tpadding-right: 0.3em !important;\n\tmargin-left: 0.3em !important;\n\tmargin-right: 0.3em !important;\n\twidth: 1.4em !important;\n}\n.dj_ie7 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {\n\tpadding-left: 0 !important; /* manually center INPUT: character is .5em and total width = 1em */\n\tpadding-right: 0 !important;\n\twidth: 1em !important;\n}\n.dj_ie6 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {\n\tmargin-left: 0.1em !important;\n\tmargin-right: 0.1em !important;\n\twidth: 1em !important;\n}\n.dj_iequirks .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {\n\tmargin-left: 0 !important;\n\tmargin-right: 0 !important;\n\twidth: 2em !important;\n}\n.dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {\n\t/* note: .dijitInputLayoutContainer makes this rule override .dijitArrowButton settings\n\t * for dijit.form.Button\n\t */\n\tpadding: 0;\n\tposition: absolute !important;\n\tright: 0;\n\tfloat: none;\n\theight: 50%;\n\twidth: 100%;\n\tbottom: auto;\n\tleft: 0;\n\tright: auto;\n}\n.dj_iequirks .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {\n\twidth: auto;\n}\n.dj_a11y .dijitSpinnerButtonContainer .dijitArrowButton {\n\toverflow: visible !important;\n}\n.dijitSpinner .dijitSpinnerButtonContainer .dijitDownArrowButton {\n\ttop: 50%;\n\tborder-top-width: 1px !important;\n}\n.dijitSpinner .dijitSpinnerButtonContainer .dijitUpArrowButton {\n\ttop: 0;\n}\n.dijitSpinner .dijitArrowButtonInner {\n\tmargin: auto;\n\toverflow-x: hidden;\n\theight: 100% !important;\n}\n.dj_iequirks .dijitSpinner .dijitArrowButtonInner {\n\theight: auto !important;\n}\n.dijitSpinner .dijitArrowButtonInner .dijitInputField {\n\t-moz-transform: scale(0.5);\n\t-moz-transform-origin: center top;\n\t-webkit-transform: scale(0.5);\n\t-webkit-transform-origin: center top;\n\t-o-transform: scale(0.5);\n\t-o-transform-origin: center top;\n\ttransform: scale(0.5);\n\ttransform-origin: left top;\n\tpadding-top: 0;\n\tpadding-bottom: 0;\n\tpadding-left: 0 !important;\n\tpadding-right: 0 !important;\n\twidth: 100%;\n\tvisibility: hidden;\n}\n.dj_ie .dijitSpinner .dijitArrowButtonInner .dijitInputField {\n\tzoom: 50%; /* emulate transform: scale(0.5) */\n}\n.dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButtonInner {\n\toverflow: hidden;\n}\n\n.dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {\n\twidth: 100%;\n}\n.dj_iequirks .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {\n\twidth: 1em; /* matches .dj_a11y .dijitTextBox .dijitSpinnerButtonContainer rule - 100% is the whole screen width in quirks */\n}\n.dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {\n\tvertical-align:top;\n\tvisibility: visible;\n}\n.dj_a11y .dijitSpinnerButtonContainer {\n\twidth: 1em;\n}\n\n/****\n\t\tdijit.form.CheckBox\n \t &\n \t\tdijit.form.RadioButton\n ****/\n\n.dijitCheckBox,\n.dijitRadio,\n.dijitCheckBoxInput {\n\tpadding: 0;\n\tborder: 0;\n\twidth: 16px;\n\theight: 16px;\n\tbackground-position:center center;\n\tbackground-repeat:no-repeat;\n\toverflow: hidden;\n}\n\n.dijitCheckBox input,\n.dijitRadio input {\n\tmargin: 0;\n\tpadding: 0;\n\tdisplay: block;\n}\n\n.dijitCheckBoxInput {\n\t/* place the actual input on top, but invisible */\n\topacity: 0;\n}\n\n.dj_ie .dijitCheckBoxInput {\n\tfilter: alpha(opacity=0);\n}\n\n.dj_a11y .dijitCheckBox,\n.dj_a11y .dijitRadio {\n\t/* in a11y mode we display the native checkbox (not the icon), so don't restrict the size */\n\twidth: auto !important;\n\theight: auto !important;\n}\n.dj_a11y .dijitCheckBoxInput {\n\topacity: 1;\n\tfilter: none;\n\twidth: auto;\n\theight: auto;\n}\n\n.dj_a11y .dijitFocusedLabel {\n\t/* for checkboxes or radio buttons in high contrast mode, use border rather than outline to indicate focus (outline does not work in FF)*/\n\tborder: 1px dotted;\n\toutline: 0px !important;\n}\n\n/****\n\t\tdijit.ProgressBar\n ****/\n\n.dijitProgressBar {\n z-index: 0; /* so z-index settings below have no effect outside of the ProgressBar */\n}\n.dijitProgressBarEmpty {\n\t/* outer container and background of the bar that's not finished yet*/\n\tposition:relative;overflow:hidden;\n\tborder:1px solid black; \t/* a11y: border necessary for high-contrast mode */\n\tz-index:0;\t\t\t/* establish a stacking context for this progress bar */\n}\n\n.dijitProgressBarFull {\n\t/* outer container for background of bar that is finished */\n\tposition:absolute;\n\toverflow:hidden;\n\tz-index:-1;\n\ttop:0;\n\twidth:100%;\n}\n.dj_ie6 .dijitProgressBarFull {\n\theight:1.6em;\n}\n\n.dijitProgressBarTile {\n\t/* inner container for finished portion */\n\tposition:absolute;\n\toverflow:hidden;\n\ttop:0;\n\tleft:0;\n\tbottom:0;\n\tright:0;\n\tmargin:0;\n\tpadding:0;\n\twidth: 100%; /* needed for IE/quirks */\n\theight:auto;\n\tbackground-color:#aaa;\n\tbackground-attachment: fixed;\n}\n\n.dj_a11y .dijitProgressBarTile {\n\t/* a11y: The border provides visibility in high-contrast mode */\n\tborder-width:2px;\n\tborder-style:solid;\n\tbackground-color:transparent !important;\n}\n\n.dj_ie6 .dijitProgressBarTile {\n\t/* width:auto works in IE6 with position:static but not position:absolute */\n\tposition:static;\n\t/* height:auto or 100% does not work in IE6 */\n\theight:1.6em;\n}\n\n.dijitProgressBarIndeterminate .dijitProgressBarTile {\n\t/* animated gif for 'indeterminate' mode */\n}\n\n.dijitProgressBarIndeterminateHighContrastImage {\n\tdisplay:none;\n}\n\n.dj_a11y .dijitProgressBarIndeterminate .dijitProgressBarIndeterminateHighContrastImage {\n\tdisplay:block;\n\tposition:absolute;\n\ttop:0;\n\tbottom:0;\n\tmargin:0;\n\tpadding:0;\n\twidth:100%;\n\theight:auto;\n}\n\n.dijitProgressBarLabel {\n\tdisplay:block;\n\tposition:static;\n\twidth:100%;\n\ttext-align:center;\n\tbackground-color:transparent !important;\n}\n\n/****\n\t\tdijit.Tooltip\n ****/\n\n.dijitTooltip {\n\tposition: absolute;\n\tz-index: 2000;\n\tdisplay: block;\n\t/* make visible but off screen */\n\tleft: 0;\n\ttop: -10000px;\n\toverflow: visible;\n}\n\n.dijitTooltipContainer {\n\tborder: solid black 2px;\n\tbackground: #b8b5b5;\n\tcolor: black;\n\tfont-size: small;\n}\n\n.dijitTooltipFocusNode {\n\tpadding: 2px 2px 2px 2px;\n}\n\n.dijitTooltipConnector {\n\tposition: absolute;\n}\n.dj_a11y .dijitTooltipConnector {\n\tdisplay: none;\t/* won't show b/c it's background-image; hide to avoid border gap */\n}\n\n.dijitTooltipData {\n\tdisplay:none;\n}\n\n/* Layout widgets. This is essential CSS to make layout work (it isn't \"styling\" CSS)\n make sure that the position:absolute in dijitAlign* overrides other classes */\n\n.dijitLayoutContainer {\n\tposition: relative;\n\tdisplay: block;\n\toverflow: hidden;\n}\n\n.dijitAlignTop,\n.dijitAlignBottom,\n.dijitAlignLeft,\n.dijitAlignRight {\n\tposition: absolute;\n\toverflow: hidden;\n}\n\nbody .dijitAlignClient { position: absolute; }\n\n/*\n * BorderContainer\n *\n * .dijitBorderContainer is a stylized layout where panes have border and margin.\n * .dijitBorderContainerNoGutter is a raw layout.\n */\n.dijitBorderContainer, .dijitBorderContainerNoGutter {\n\tposition:relative;\n\toverflow: hidden;\n z-index: 0; /* so z-index settings below have no effect outside of the BorderContainer */\n}\n\n.dijitBorderContainerPane,\n.dijitBorderContainerNoGutterPane {\n\tposition: absolute !important;\t/* !important to override position:relative in dijitTabContainer etc. */\n\tz-index: 2;\t\t/* above the splitters so that off-by-one browser errors don't cover up border of pane */\n}\n\n.dijitBorderContainer > .dijitTextArea {\n\t/* On Safari, for SimpleTextArea inside a BorderContainer,\n\t\tdon't want to display the grip to resize */\n\tresize: none;\n}\n\n.dijitGutter {\n\t/* gutter is just a place holder for empty space between panes in BorderContainer */\n\tposition: absolute;\n\tfont-size: 1px;\t\t/* needed by IE6 even though div is empty, otherwise goes to 15px */\n}\n\n/* SplitContainer\n\n\t'V' == container that splits vertically (up/down)\n\t'H' = horizontal (left/right)\n*/\n\n.dijitSplitter {\n\tposition: absolute;\n\toverflow: hidden;\n\tz-index: 10;\t\t/* above the panes so that splitter focus is visible on FF, see #7583*/\n\tbackground-color: #fff;\n\tborder-color: gray;\n\tborder-style: solid;\n\tborder-width: 0;\n}\n.dj_ie .dijitSplitter {\n\tz-index: 1;\t/* behind the panes so that pane borders aren't obscured see test_Gui.html/[14392] */\n}\n\n.dijitSplitterActive {\n\tz-index: 11 !important;\n}\n\n.dijitSplitterCover {\n\tposition:absolute;\n\tz-index:-1;\n\ttop:0;\n\tleft:0;\n\twidth:100%;\n\theight:100%;\n}\n\n.dijitSplitterCoverActive {\n\tz-index:3 !important;\n}\n\n/* #6945: stop mouse events */\n.dj_ie .dijitSplitterCover {\n\tbackground: white;\n\topacity: 0;\n}\n.dj_ie6 .dijitSplitterCover,\n.dj_ie7 .dijitSplitterCover,\n.dj_ie8 .dijitSplitterCover {\n\tfilter: alpha(opacity=0);\n}\n\n.dijitSplitterH {\n\theight: 7px;\n\tborder-top:1px;\n\tborder-bottom:1px;\n\tcursor: row-resize;\n\t-webkit-tap-highlight-color: transparent;\n}\n.dijitSplitterV {\n\twidth: 7px;\n\tborder-left:1px;\n\tborder-right:1px;\n\tcursor: col-resize;\n\t-webkit-tap-highlight-color: transparent;\n}\n.dijitSplitContainer {\n\tposition: relative;\n\toverflow: hidden;\n\tdisplay: block;\n}\n\n.dijitSplitPane {\n\tposition: absolute;\n}\n\n.dijitSplitContainerSizerH,\n.dijitSplitContainerSizerV {\n\tposition:absolute;\n\tfont-size: 1px;\n\tbackground-color: ThreeDFace;\n\tborder: 1px solid;\n\tborder-color: ThreeDHighlight ThreeDShadow ThreeDShadow ThreeDHighlight;\n\tmargin: 0;\n}\n\n.dijitSplitContainerSizerH .thumb, .dijitSplitterV .dijitSplitterThumb {\n\toverflow:hidden;\n\tposition:absolute;\n\ttop:49%;\n}\n\n.dijitSplitContainerSizerV .thumb, .dijitSplitterH .dijitSplitterThumb {\n\tposition:absolute;\n\tleft:49%;\n}\n\n.dijitSplitterShadow,\n.dijitSplitContainerVirtualSizerH,\n.dijitSplitContainerVirtualSizerV {\n\tfont-size: 1px;\n\tbackground-color: ThreeDShadow;\n\t-moz-opacity: 0.5;\n\topacity: 0.5;\n\tfilter: Alpha(Opacity=50);\n\tmargin: 0;\n}\n\n.dijitSplitContainerSizerH, .dijitSplitContainerVirtualSizerH {\n\tcursor: col-resize;\n}\n\n.dijitSplitContainerSizerV, .dijitSplitContainerVirtualSizerV {\n\tcursor: row-resize;\n}\n\n.dj_a11y .dijitSplitterH {\n\tborder-top:1px solid #d3d3d3 !important;\n\tborder-bottom:1px solid #d3d3d3 !important;\n}\n.dj_a11y .dijitSplitterV {\n\tborder-left:1px solid #d3d3d3 !important;\n\tborder-right:1px solid #d3d3d3 !important;\n}\n\n/* ContentPane */\n\n.dijitContentPane {\n\tdisplay: block;\n\toverflow: auto;\t/* if we don't have this (or overflow:hidden), then Widget.resizeTo() doesn't make sense for ContentPane */\n\t-webkit-overflow-scrolling: touch;\n}\n\n.dijitContentPaneSingleChild {\n\t/*\n\t * if the ContentPane holds a single layout widget child which is being sized to match the content pane,\n\t * then the ContentPane should never get a scrollbar (but it does due to browser bugs, see #9449\n\t */\n\toverflow: hidden;\n}\n\n.dijitContentPaneLoading .dijitIconLoading,\n.dijitContentPaneError .dijitIconError {\n\tmargin-right: 9px;\n}\n\n/* TitlePane and Fieldset */\n\n.dijitTitlePane {\n\tdisplay: block;\n\toverflow: hidden;\n}\n.dijitFieldset {\n\tborder: 1px solid gray;\n}\n.dijitTitlePaneTitle, .dijitFieldsetTitle {\n\tcursor: pointer;\n\t-webkit-tap-highlight-color: transparent;\n}\n.dijitTitlePaneTitleFixedOpen, .dijitTitlePaneTitleFixedClosed,\n.dijitFieldsetTitleFixedOpen, .dijitFieldsetTitleFixedClosed {\n\t/* TitlePane or Fieldset that cannot be toggled */\n\tcursor: default;\n}\n.dijitTitlePaneTitle * {\n\tvertical-align: middle;\n}\n.dijitTitlePane .dijitArrowNodeInner, .dijitFieldset .dijitArrowNodeInner {\n\t/* normally, hide arrow text in favor of icon */\n\tdisplay: none;\n}\n.dj_a11y .dijitTitlePane .dijitArrowNodeInner, .dj_a11y .dijitFieldset .dijitArrowNodeInner {\n\t/* ... except in a11y mode, then show text arrow */\n\tdisplay: inline;\n\tfont-family: monospace;\t\t/* because - and + are different widths */\n}\n.dj_a11y .dijitTitlePane .dijitArrowNode, .dj_a11y .dijitFieldset .dijitArrowNode {\n\t/* ... and hide icon (TODO: just point dijitIcon class on the icon, and it hides automatically) */\n\tdisplay: none;\n}\n.dijitTitlePaneTitleFixedOpen .dijitArrowNode, .dijitTitlePaneTitleFixedOpen .dijitArrowNodeInner,\n.dijitTitlePaneTitleFixedClosed .dijitArrowNode, .dijitTitlePaneTitleFixedClosed .dijitArrowNodeInner,\n.dijitFieldsetTitleFixedOpen .dijitArrowNode, .dijitFieldsetTitleFixedOpen .dijitArrowNodeInner,\n.dijitFieldsetTitleFixedClosed .dijitArrowNode, .dijitFieldsetTitleFixedClosed .dijitArrowNodeInner {\n\t/* don't show the open close icon or text arrow; it makes the user think the pane is closable */\n\tdisplay: none !important;\t/* !important to override above a11y rules to show text arrow */\n}\n\n.dj_ie6 .dijitTitlePaneContentOuter,\n.dj_ie6 .dijitTitlePane .dijitTitlePaneTitle {\n\t/* force hasLayout to ensure borders etc, show up */\n\tzoom: 1;\n}\n\n/* Color Palette\n * Sizes designed so that table cell positions match icons in underlying image,\n * which appear at 20x20 intervals.\n */\n\n.dijitColorPalette {\n\tborder: 1px solid #999;\n\tbackground: #fff;\n\tposition: relative;\n}\n\n.dijitColorPalette .dijitPaletteTable {\n\t/* Table that holds the palette cells, and overlays image file with color swatches.\n\t * padding/margin to align table with image.\n\t */\n\tpadding: 2px 3px 3px 3px;\n\tposition: relative;\n\toverflow: hidden;\n\toutline: 0;\n\tborder-collapse: separate;\n}\n.dj_ie6 .dijitColorPalette .dijitPaletteTable,\n.dj_ie7 .dijitColorPalette .dijitPaletteTable,\n.dj_iequirks .dijitColorPalette .dijitPaletteTable {\n\t/* using padding above so that focus border isn't cutoff on moz/webkit,\n\t * but using margin on IE because padding doesn't seem to work\n\t */\n\tpadding: 0;\n\tmargin: 2px 3px 3px 3px;\n}\n\n.dijitColorPalette .dijitPaletteCell {\n\t/* in the */\n\tfont-size: 1px;\n\tvertical-align: middle;\n\ttext-align: center;\n\tbackground: none;\n}\n.dijitColorPalette .dijitPaletteImg {\n\t/* Called dijitPaletteImg for back-compat, this actually wraps the color swatch with a border and padding */\n\tpadding: 1px;\t\t/* white area between gray border and color swatch */\n\tborder: 1px solid #999;\n\tmargin: 2px 1px;\n\tcursor: default;\n\tfont-size: 1px;\t\t/* prevent from getting bigger just to hold a character */\n}\n.dj_gecko .dijitColorPalette .dijitPaletteImg {\n\tpadding-bottom: 0;\t/* workaround rendering glitch on FF, it adds an extra pixel at the bottom */\n}\n.dijitColorPalette .dijitColorPaletteSwatch {\n\t/* the actual part where the color is */\n\twidth: 14px;\n\theight: 12px;\n}\n.dijitPaletteTable td {\n\t\tpadding: 0;\n}\n.dijitColorPalette .dijitPaletteCell:hover .dijitPaletteImg {\n\t/* hovered color swatch */\n\tborder: 1px solid #000;\n}\n\n.dijitColorPalette .dijitPaletteCell:active .dijitPaletteImg,\n.dijitColorPalette .dijitPaletteTable .dijitPaletteCellSelected .dijitPaletteImg {\n\tborder: 2px solid #000;\n\tmargin: 1px 0;\t/* reduce margin to compensate for increased border */\n}\n\n\n.dj_a11y .dijitColorPalette .dijitPaletteTable,\n.dj_a11y .dijitColorPalette .dijitPaletteTable * {\n\t/* table cells are to catch events, but the swatches are in the PaletteImg behind the table */\n\tbackground-color: transparent !important;\n}\n\n/* AccordionContainer */\n\n.dijitAccordionContainer {\n\tborder:1px solid #b7b7b7;\n\tborder-top:0 !important;\n}\n.dijitAccordionTitle {\n\tcursor: pointer;\n\t-webkit-tap-highlight-color: transparent;\n}\n.dijitAccordionTitleSelected {\n\tcursor: default;\n}\n\n/* images off, high-contrast mode styles */\n.dijitAccordionTitle .arrowTextUp,\n.dijitAccordionTitle .arrowTextDown {\n\tdisplay: none;\n\tfont-size: 0.65em;\n\tfont-weight: normal !important;\n}\n\n.dj_a11y .dijitAccordionTitle .arrowTextUp,\n.dj_a11y .dijitAccordionTitleSelected .arrowTextDown {\n\tdisplay: inline;\n}\n\n.dj_a11y .dijitAccordionTitleSelected .arrowTextUp {\n\tdisplay: none;\n}\n\n.dijitAccordionChildWrapper {\n\t/* this is the node whose height is adjusted */\n\toverflow: hidden;\n}\n\n/* Calendar */\n\n.dijitCalendarContainer table {\n\twidth: auto;\t/* in case user has specified a width for the TABLE nodes, see #10553 */\n\tclear: both; /* clear margin created for left/right month arrows; needed on IE10 for CalendarLite */\n}\n.dijitCalendarContainer th, .dijitCalendarContainer td {\n\tpadding: 0;\n\tvertical-align: middle;\n}\n\n.dijitCalendarMonthContainer {\n\ttext-align: center;\n}\n.dijitCalendarDecrementArrow {\n\tfloat: left;\n}\n.dijitCalendarIncrementArrow {\n\tfloat: right;\n}\n\n.dijitCalendarYearLabel {\n white-space: nowrap; /* make sure previous, current, and next year appear on same row */\n}\n\n.dijitCalendarNextYear {\n\tmargin:0 0 0 0.55em;\n}\n\n.dijitCalendarPreviousYear {\n\tmargin:0 0.55em 0 0;\n}\n\n.dijitCalendarIncrementControl {\n\tvertical-align: middle;\n}\n\n.dijitCalendarIncrementControl,\n.dijitCalendarDateTemplate,\n.dijitCalendarMonthLabel,\n.dijitCalendarPreviousYear,\n.dijitCalendarNextYear {\n\tcursor: pointer;\n\t-webkit-tap-highlight-color: transparent;\n}\n\n.dijitCalendarDisabledDate {\n\tcolor: gray;\n\ttext-decoration: line-through;\n\tcursor: default;\n}\n\n.dijitSpacer {\n\t/* don't display it, but make it affect the width */\n \tposition: relative;\n \theight: 1px;\n \toverflow: hidden;\n \tvisibility: hidden;\n}\n\n/* Styling for month drop down list */\n\n.dijitCalendarMonthMenu .dijitCalendarMonthLabel {\n\ttext-align:center;\n}\n\n/* Menu */\n\n.dijitMenu {\n\tborder:1px solid black;\n\tbackground-color:white;\n}\n.dijitMenuTable {\n\tborder-collapse:collapse;\n\tborder-width:0;\n\tbackground-color:white;\n}\n\n/* workaround for webkit bug #8427, remove this when it is fixed upstream */\n.dj_webkit .dijitMenuTable td[colspan=\"2\"]{\n\tborder-right:hidden;\n}\n\n.dijitMenuItem {\n\ttext-align: left;\n\twhite-space: nowrap;\n\tpadding:.1em .2em;\n\tcursor:pointer;\n\t-webkit-tap-highlight-color: transparent;\n}\n\n/*\nNo need to show a focus border since it's obvious from the shading, and there's a .dj_a11y .dijitMenuItemSelected\nrule below that handles the high contrast case when there's no shading.\nHiding the focus border also works around webkit bug https://code.google.com/p/chromium/issues/detail?id=125779.\n*/\n.dijitMenuItem:focus {\n\toutline: none\n}\n\n.dijitMenuPassive .dijitMenuItemHover,\n.dijitMenuItemSelected {\n\t/*\n\t * dijitMenuItemHover refers to actual mouse over\n\t * dijitMenuItemSelected is used after a menu has been \"activated\" by\n\t * clicking it, tabbing into it, or being opened from a parent menu,\n\t * and denotes that the menu item has focus or that focus is on a child\n\t * menu\n\t */\n\tbackground-color:black;\n\tcolor:white;\n}\n\n.dijitMenuItemIcon, .dijitMenuExpand {\n\tbackground-repeat: no-repeat;\n}\n\n.dijitMenuItemDisabled * {\n\t/* for a disabled menu item, just set it to mostly transparent */\n\topacity:0.5;\n\tcursor:default;\n}\n.dj_ie .dj_a11y .dijitMenuItemDisabled,\n.dj_ie .dj_a11y .dijitMenuItemDisabled *,\n.dj_ie .dijitMenuItemDisabled * {\n\tcolor: gray;\n\tfilter: alpha(opacity=35);\n}\n\n.dijitMenuItemLabel {\n\tvertical-align: middle;\n}\n\n.dj_a11y .dijitMenuItemSelected {\n\tborder: 1px dotted black !important;\t/* for 2.0 use outline instead, to prevent jitter */\n}\n\n.dj_a11y .dijitMenuItemSelected .dijitMenuItemLabel {\n\tborder-width: 1px;\n\tborder-style: solid;\n}\n.dj_ie8 .dj_a11y .dijitMenuItemLabel {\n\tposition:static;\n}\n\n.dijitMenuExpandA11y {\n\tdisplay: none;\n}\n.dj_a11y .dijitMenuExpandA11y {\n\tdisplay: inline;\n}\n\n.dijitMenuSeparator td {\n\tborder: 0;\n\tpadding: 0;\n}\n\n/* separator can be two pixels -- set border of either one to 0 to have only one */\n.dijitMenuSeparatorTop {\n\theight: 50%;\n\tmargin: 0;\n\tmargin-top:3px;\n\tfont-size: 1px;\n}\n\n.dijitMenuSeparatorBottom {\n\theight: 50%;\n\tmargin: 0;\n\tmargin-bottom:3px;\n\tfont-size: 1px;\n}\n\n/* CheckedMenuItem and RadioMenuItem */\n.dijitMenuItemIconChar {\n\tdisplay: none;\t\t/* don't display except in high contrast mode */\n\tvisibility: hidden;\t/* for high contrast mode when menuitem is unchecked: leave space for when it is checked */\n}\n.dj_a11y .dijitMenuItemIconChar {\n\tdisplay: inline;\t/* display character in high contrast mode, since icon doesn't show */\n}\n.dijitCheckedMenuItemChecked .dijitMenuItemIconChar,\n.dijitRadioMenuItemChecked .dijitMenuItemIconChar {\n\tvisibility: visible; /* menuitem is checked */\n}\n.dj_ie .dj_a11y .dijitMenuBar .dijitMenuItem {\n\t/* so bottom border of MenuBar appears on IE7 in high-contrast mode */\n\tmargin: 0;\n}\n\n/* StackContainer */\n\n.dijitStackController .dijitToggleButtonChecked * {\n\tcursor: default;\t/* because pressing it has no effect */\n}\n\n/***\nTabContainer\n\nMain class hierarchy:\n\n.dijitTabContainer - the whole TabContainer\n .dijitTabController / .dijitTabListContainer-top - wrapper for tab buttons, scroll buttons\n\t .dijitTabListWrapper / .dijitTabContainerTopStrip - outer wrapper for tab buttons (normal width)\n\t\t.nowrapTabStrip / .dijitTabContainerTop-tabs - inner wrapper for tab buttons (50K width)\n .dijitTabPaneWrapper - wrapper for content panes, has all borders except the one between content and tabs\n***/\n\n.dijitTabContainer {\n z-index: 0; /* so z-index settings below have no effect outside of the TabContainer */\n overflow: visible; /* prevent off-by-one-pixel errors from hiding bottom border (opposite tab labels) */\n}\n.dj_ie6 .dijitTabContainer {\n /* workaround IE6 problem when tall content overflows TabContainer, see editor/test_FullScreen.html */\n overflow: hidden;\n\n}\n.dijitTabContainerNoLayout {\n\twidth: 100%;\t/* otherwise ScrollingTabController goes to 50K pixels wide */\n}\n\n.dijitTabContainerBottom-tabs,\n.dijitTabContainerTop-tabs,\n.dijitTabContainerLeft-tabs,\n.dijitTabContainerRight-tabs {\n z-index: 1;\n\toverflow: visible !important; /* so tabs can cover up border adjacent to container */\n}\n\n.dijitTabController {\n z-index: 1;\n}\n.dijitTabContainerBottom-container,\n.dijitTabContainerTop-container,\n.dijitTabContainerLeft-container,\n.dijitTabContainerRight-container {\n\tz-index:0;\n\toverflow: hidden;\n\tborder: 1px solid black;\n}\n.nowrapTabStrip {\n\twidth: 50000px;\n\tdisplay: block;\n\tposition: relative;\n text-align: left; /* just in case ancestor has non-standard setting */\n z-index: 1;\n}\n.dijitTabListWrapper {\n\toverflow: hidden;\n z-index: 1;\n}\n\n.dj_a11y .tabStripButton img {\n\t/* hide the icons (or rather the empty space where they normally appear) because text will appear instead */\n\tdisplay: none;\n}\n\n.dijitTabContainerTop-tabs {\n\tborder-bottom: 1px solid black;\n}\n.dijitTabContainerTop-container {\n\tborder-top: 0;\n}\n\n.dijitTabContainerLeft-tabs {\n\tborder-right: 1px solid black;\n\tfloat: left; /* needed for IE7 RTL mode */\n}\n.dijitTabContainerLeft-container {\n\tborder-left: 0;\n}\n\n.dijitTabContainerBottom-tabs {\n\tborder-top: 1px solid black;\n}\n.dijitTabContainerBottom-container {\n\tborder-bottom: 0;\n}\n\n.dijitTabContainerRight-tabs {\n\tborder-left: 1px solid black;\n\tfloat: left; /* needed for IE7 RTL mode */\n}\n.dijitTabContainerRight-container {\n\tborder-right: 0;\n}\n\ndiv.dijitTabDisabled, .dj_ie div.dijitTabDisabled {\n\tcursor: auto;\n}\n\n.dijitTab {\n\tposition:relative;\n\tcursor:pointer;\n\t-webkit-tap-highlight-color: transparent;\n\twhite-space:nowrap;\n\tz-index:3;\n}\n.dijitTab * {\n\t/* make tab icons and close icon line up w/text */\n\tvertical-align: middle;\n}\n.dijitTabChecked {\n\tcursor: default;\t/* because clicking will have no effect */\n}\n\n.dijitTabContainerTop-tabs .dijitTab {\n\ttop: 1px;\t/* to overlap border on .dijitTabContainerTop-tabs */\n}\n.dijitTabContainerBottom-tabs .dijitTab {\n\ttop: -1px;\t/* to overlap border on .dijitTabContainerBottom-tabs */\n}\n.dijitTabContainerLeft-tabs .dijitTab {\n\tleft: 1px;\t/* to overlap border on .dijitTabContainerLeft-tabs */\n}\n.dijitTabContainerRight-tabs .dijitTab {\n\tleft: -1px;\t/* to overlap border on .dijitTabContainerRight-tabs */\n}\n\n\n.dijitTabContainerTop-tabs .dijitTab,\n.dijitTabContainerBottom-tabs .dijitTab {\n\t/* Inline-block */\n\tdisplay:inline-block;\t\t\t/* webkit and FF3 */\n}\n\n.tabStripButton {\n\tz-index: 12;\n}\n\n.dijitTabButtonDisabled .tabStripButton {\n\tdisplay: none;\n}\n\n\n.dijitTabCloseButton {\n\tmargin-left: 1em;\n}\n\n.dijitTabCloseText {\n\tdisplay:none;\n}\n\n.dijitTab .tabLabel {\n\t/* make sure tabs w/close button and w/out close button are same height, even w/small (<15px) font.\n\t * assumes <=15px height for close button icon.\n\t */\n\tmin-height: 15px;\n\tdisplay: inline-block;\n}\n.dijitNoIcon {\n\t/* applied to / node when there is no icon specified */\n\tdisplay: none;\n}\n.dj_ie6 .dijitTab .dijitNoIcon {\n\t/* because min-height (on .tabLabel, above) doesn't work on IE6 */\n\tdisplay: inline;\n\theight: 15px;\n\twidth: 1px;\n}\n\n/* images off, high-contrast mode styles */\n\n.dj_a11y .dijitTabCloseButton {\n\tbackground-image: none !important;\n\twidth: auto !important;\n\theight: auto !important;\n}\n\n.dj_a11y .dijitTabCloseText {\n\tdisplay: inline;\n}\n\n.dijitTabPane,\n.dijitStackContainer-child,\n.dijitAccordionContainer-child {\n\t/* children of TabContainer, StackContainer, and AccordionContainer shouldn't have borders\n\t * b/c a border is already there from the TabContainer/StackContainer/AccordionContainer itself.\n\t */\n border: none !important;\n}\n\n/* InlineEditBox */\n.dijitInlineEditBoxDisplayMode {\n\tborder: 1px solid transparent;\t/* so keyline (border) on hover can appear without screen jump */\n\tcursor: text;\n}\n\n.dj_a11y .dijitInlineEditBoxDisplayMode,\n.dj_ie6 .dijitInlineEditBoxDisplayMode {\n\t/* except that IE6 doesn't support transparent borders, nor does high contrast mode */\n\tborder: none;\n}\n\n.dijitInlineEditBoxDisplayModeHover,\n.dj_a11y .dijitInlineEditBoxDisplayModeHover,\n.dj_ie6 .dijitInlineEditBoxDisplayModeHover {\n\t/* An InlineEditBox in view mode (click this to edit the text) */\n\tbackground-color: #e2ebf2;\n\tborder: solid 1px black;\n}\n\n.dijitInlineEditBoxDisplayModeDisabled {\n\tcursor: default;\n}\n\n/* Tree */\n.dijitTree {\n\toverflow: auto;\t/* for scrollbars when Tree has a height setting, and to prevent wrapping around float elements, see #11491 */\n\t-webkit-tap-highlight-color: transparent;\n}\n\n.dijitTreeContainer {\n\tfloat: left;\t/* for correct highlighting during horizontal scroll, see #16132 */\n}\n\n.dijitTreeIndent {\n\t/* amount to indent each tree node (relative to parent node) */\n\twidth: 19px;\n}\n\n.dijitTreeRow, .dijitTreeContent {\n\twhite-space: nowrap;\n}\n\n.dj_ie .dijitTreeLabel:focus {\n\t/* workaround IE9 behavior where down arrowing through TreeNodes doesn't show focus outline */\n\toutline: 1px dotted black;\n}\n\n.dijitTreeRow img {\n\t/* make the expando and folder icons line up with the label */\n\tvertical-align: middle;\n}\n\n.dijitTreeContent {\n cursor: default;\n}\n\n.dijitExpandoText {\n\tdisplay: none;\n}\n\n.dj_a11y .dijitExpandoText {\n\tdisplay: inline;\n\tpadding-left: 10px;\n\tpadding-right: 10px;\n\tfont-family: monospace;\n\tborder-style: solid;\n\tborder-width: thin;\n\tcursor: pointer;\n}\n\n.dijitTreeLabel {\n\tmargin: 0 4px;\n}\n\n/* Dialog */\n\n.dijitDialog {\n\tposition: absolute;\n\tz-index: 999;\n\toverflow: hidden;\t/* override overflow: auto; from ContentPane to make dragging smoother */\n}\n\n.dijitDialogTitleBar {\n\tcursor: move;\n}\n.dijitDialogFixed .dijitDialogTitleBar {\n\tcursor:default;\n}\n.dijitDialogCloseIcon {\n\tcursor: pointer;\n\t-webkit-tap-highlight-color: transparent;\n}\n.dijitDialogPaneContent {\n\t-webkit-overflow-scrolling: touch;\n}\n.dijitDialogUnderlayWrapper {\n\tposition: absolute;\n\tleft: 0;\n\ttop: 0;\n\tz-index: 998;\n\tdisplay: none;\n\tbackground: transparent !important;\n}\n\n.dijitDialogUnderlay {\n\tbackground: #eee;\n\topacity: 0.5;\n}\n\n.dj_ie .dijitDialogUnderlay {\n\tfilter: alpha(opacity=50);\n}\n\n/* images off, high-contrast mode styles */\n.dj_a11y .dijitSpinnerButtonContainer,\n.dj_a11y .dijitDialog {\n\topacity: 1 !important;\n\tbackground-color: white !important;\n}\n\n.dijitDialog .closeText {\n\tdisplay:none;\n\t/* for the onhover border in high contrast on IE: */\n\tposition:absolute;\n}\n\n.dj_a11y .dijitDialog .closeText {\n\tdisplay:inline;\n}\n\n/* Slider */\n\n.dijitSliderMoveable {\n\tz-index:99;\n\tposition:absolute !important;\n\tdisplay:block;\n\tvertical-align:middle;\n}\n\n.dijitSliderMoveableH {\n\tright:0;\n}\n.dijitSliderMoveableV {\n\tright:50%;\n}\n\n.dj_a11y div.dijitSliderImageHandle,\n.dijitSliderImageHandle {\n\tmargin:0;\n\tpadding:0;\n\tposition:relative !important;\n\tborder:8px solid gray;\n\twidth:0;\n\theight:0;\n\tcursor: pointer;\n\t-webkit-tap-highlight-color: transparent;\n}\n.dj_iequirks .dj_a11y .dijitSliderImageHandle {\n\tfont-size: 0;\n}\n.dj_ie7 .dijitSliderImageHandle {\n\toverflow: hidden; /* IE7 workaround to make slider handle VISIBLE in non-a11y mode */\n}\n.dj_ie7 .dj_a11y .dijitSliderImageHandle {\n\toverflow: visible; /* IE7 workaround to make slider handle VISIBLE in a11y mode */\n}\n.dj_a11y .dijitSliderFocused .dijitSliderImageHandle {\n\tborder:4px solid #000;\n\theight:8px;\n\twidth:8px;\n}\n\n.dijitSliderImageHandleV {\n\ttop:-8px;\n\tright: -50%;\n}\n\n.dijitSliderImageHandleH {\n\tleft:50%;\n\ttop:-5px;\n\tvertical-align:top;\n}\n\n.dijitSliderBar {\n\tborder-style:solid;\n\tborder-color:black;\n\tcursor: pointer;\n\t-webkit-tap-highlight-color: transparent;\n}\n\n.dijitSliderBarContainerV {\n\tposition:relative;\n\theight:100%;\n\tz-index:1;\n}\n\n.dijitSliderBarContainerH {\n\tposition:relative;\n\tz-index:1;\n}\n\n.dijitSliderBarH {\n\theight:4px;\n\tborder-width:1px 0;\n}\n\n.dijitSliderBarV {\n\twidth:4px;\n\tborder-width:0 1px;\n}\n\n.dijitSliderProgressBar {\n\tbackground-color:red;\n\tz-index:1;\n}\n\n.dijitSliderProgressBarV {\n\tposition:static !important;\n\theight:0;\n\tvertical-align:top;\n\ttext-align:left;\n}\n\n.dijitSliderProgressBarH {\n\tposition:absolute !important;\n\twidth:0;\n\tvertical-align:middle;\n\toverflow:visible;\n}\n\n.dijitSliderRemainingBar {\n\toverflow:hidden;\n\tbackground-color:transparent;\n\tz-index:1;\n}\n\n.dijitSliderRemainingBarV {\n\theight:100%;\n\ttext-align:left;\n}\n\n.dijitSliderRemainingBarH {\n\twidth:100% !important;\n}\n\n/* the slider bumper is the space consumed by the slider handle when it hangs over an edge */\n.dijitSliderBumper {\n\toverflow:hidden;\n\tz-index:1;\n}\n\n.dijitSliderBumperV {\n\twidth:4px;\n\theight:8px;\n\tborder-width:0 1px;\n}\n\n.dijitSliderBumperH {\n\twidth:8px;\n\theight:4px;\n\tborder-width:1px 0;\n}\n\n.dijitSliderBottomBumper,\n.dijitSliderLeftBumper {\n\tbackground-color:red;\n}\n\n.dijitSliderTopBumper,\n.dijitSliderRightBumper {\n\tbackground-color:transparent;\n}\n\n.dijitSliderDecoration {\n\ttext-align:center;\n}\n\n.dijitSliderDecorationC,\n.dijitSliderDecorationV {\n\tposition: relative; /* needed for IE+quirks+RTL+vertical (rendering bug) but add everywhere for custom styling consistency but this messes up IE horizontal sliders */\n}\n\n.dijitSliderDecorationH {\n\twidth: 100%;\n}\n\n.dijitSliderDecorationV {\n\theight: 100%;\n\twhite-space: nowrap;\n}\n\n.dijitSliderButton {\n\tfont-family:monospace;\n\tmargin:0;\n\tpadding:0;\n\tdisplay:block;\n}\n\n.dj_a11y .dijitSliderButtonInner {\n\tvisibility:visible !important;\n}\n\n.dijitSliderButtonContainer {\n\ttext-align:center;\n\theight:0;\t/* ??? */\n}\n.dijitSliderButtonContainer * {\n\tcursor: pointer;\n\t-webkit-tap-highlight-color: transparent;\n}\n\n.dijitSlider .dijitButtonNode {\n\tpadding:0;\n\tdisplay:block;\n}\n\n.dijitRuleContainer {\n\tposition:relative;\n\toverflow:visible;\n}\n\n.dijitRuleContainerV {\n\theight:100%;\n\tline-height:0;\n\tfloat:left;\n\ttext-align:left;\n}\n\n.dj_opera .dijitRuleContainerV {\n\tline-height:2%;\n}\n\n.dj_ie .dijitRuleContainerV {\n\tline-height:normal;\n}\n\n.dj_gecko .dijitRuleContainerV {\n\tmargin:0 0 1px 0; /* mozilla bug workaround for float:left,height:100% block elements */\n}\n\n.dijitRuleMark {\n\tposition:absolute;\n\tborder:1px solid black;\n\tline-height:0;\n\theight:100%;\n}\n\n.dijitRuleMarkH {\n\twidth:0;\n\tborder-top-width:0 !important;\n\tborder-bottom-width:0 !important;\n\tborder-left-width:0 !important;\n}\n\n.dijitRuleLabelContainer {\n\tposition:absolute;\n}\n\n.dijitRuleLabelContainerH {\n\ttext-align:center;\n\tdisplay:inline-block;\n}\n\n.dijitRuleLabelH {\n\tposition:relative;\n\tleft:-50%;\n}\n\n.dijitRuleLabelV {\n\t/* so that long labels don't overflow to multiple rows, or overwrite slider itself */\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n\toverflow: hidden;\n}\n\n.dijitRuleMarkV {\n\theight:0;\n\tborder-right-width:0 !important;\n\tborder-bottom-width:0 !important;\n\tborder-left-width:0 !important;\n\twidth:100%;\n\tleft:0;\n}\n\n.dj_ie .dijitRuleLabelContainerV {\n\tmargin-top:-.55em;\n}\n\n.dj_a11y .dijitSliderReadOnly,\n.dj_a11y .dijitSliderDisabled {\n\topacity:0.6;\n}\n.dj_ie .dj_a11y .dijitSliderReadOnly .dijitSliderBar,\n.dj_ie .dj_a11y .dijitSliderDisabled .dijitSliderBar {\n\tfilter: alpha(opacity=40);\n}\n\n/* + and - Slider buttons: override theme settings to display icons */\n.dj_a11y .dijitSlider .dijitSliderButtonContainer div {\n\tfont-family: monospace; /* otherwise hyphen is larger and more vertically centered */\n\tfont-size: 1em;\n\tline-height: 1em;\n\theight: auto;\n\twidth: auto;\n\tmargin: 0 4px;\n}\n\n/* Icon-only buttons (often in toolbars) still display the text in high-contrast mode */\n.dj_a11y .dijitButtonContents .dijitButtonText,\n.dj_a11y .dijitTab .tabLabel {\n\tdisplay: inline !important;\n}\n.dj_a11y .dijitSelect .dijitButtonText {\n\tdisplay: inline-block !important;\n}\n\n/* TextArea, SimpleTextArea */\n.dijitTextArea {\n\twidth:100%;\n\toverflow-y: auto;\t/* w/out this IE's SimpleTextArea goes to overflow: scroll */\n}\n.dijitTextArea[cols] {\n\twidth:auto; /* SimpleTextArea cols */\n}\n.dj_ie .dijitTextAreaCols {\n\twidth:auto;\n}\n\n.dijitExpandingTextArea {\n\t/* for auto exanding textarea (called Textarea currently, rename for 2.0) don't want to display the grip to resize */\n\tresize: none;\n}\n\n\n/* Toolbar\n * Note that other toolbar rules (for objects in toolbars) are scattered throughout this file.\n */\n\n.dijitToolbarSeparator {\n\theight: 18px;\n\twidth: 5px;\n\tpadding: 0 1px;\n\tmargin: 0;\n}\n\n/* Editor */\n.dijitIEFixedToolbar {\n\tposition:absolute;\n\t/* top:0; */\n\ttop: expression(eval((document.documentElement||document.body).scrollTop));\n}\n\n.dijitEditor {\n\tdisplay: block;\t/* prevents glitch on FF with InlineEditBox, see #8404 */\n}\n\n.dijitEditorDisabled,\n.dijitEditorReadOnly {\n\tcolor: gray;\n}\n\n/* TimePicker */\n\n.dijitTimePicker {\n\tbackground-color: white;\n}\n.dijitTimePickerItem {\n\tcursor:pointer;\n\t-webkit-tap-highlight-color: transparent;\n}\n.dijitTimePickerItemHover {\n\tbackground-color:gray;\n\tcolor:white;\n}\n.dijitTimePickerItemSelected {\n\tfont-weight:bold;\n\tcolor:#333;\n\tbackground-color:#b7cdee;\n}\n.dijitTimePickerItemDisabled {\n\tcolor:gray;\n\ttext-decoration:line-through;\n}\n\n.dijitTimePickerItemInner {\n\ttext-align:center;\n\tborder:0;\n\tpadding:2px 8px 2px 8px;\n}\n\n.dijitTimePickerTick,\n.dijitTimePickerMarker {\n\tborder-bottom:1px solid gray;\n}\n\n.dijitTimePicker .dijitDownArrowButton {\n\tborder-top: none !important;\n}\n\n.dijitTimePickerTick {\n\tcolor:#CCC;\n}\n\n.dijitTimePickerMarker {\n\tcolor:black;\n\tbackground-color:#CCC;\n}\n\n.dj_a11y .dijitTimePickerItemSelected .dijitTimePickerItemInner {\n\tborder: solid 4px black;\n}\n.dj_a11y .dijitTimePickerItemHover .dijitTimePickerItemInner {\n\tborder: dashed 4px black;\n}\n\n\n.dijitToggleButtonIconChar {\n\t/* character (instead of icon) to show that ToggleButton is checked */\n\tdisplay:none !important;\n}\n.dj_a11y .dijitToggleButton .dijitToggleButtonIconChar {\n\tdisplay:inline !important;\n\tvisibility:hidden;\n}\n.dj_ie6 .dijitToggleButtonIconChar, .dj_ie6 .tabStripButton .dijitButtonText {\n\tfont-family: \"Arial Unicode MS\";\t/* otherwise the a11y character (checkmark, arrow, etc.) appears as a box */\n}\n.dj_a11y .dijitToggleButtonChecked .dijitToggleButtonIconChar {\n\tdisplay: inline !important; /* In high contrast mode, display the check symbol */\n\tvisibility:visible !important;\n}\n\n.dijitArrowButtonChar {\n\tdisplay:none !important;\n}\n.dj_a11y .dijitArrowButtonChar {\n\tdisplay:inline !important;\n}\n\n.dj_a11y .dijitDropDownButton .dijitArrowButtonInner,\n.dj_a11y .dijitComboButton .dijitArrowButtonInner {\n\tdisplay:none !important;\n}\n\n/* Select */\n.dj_a11y .dijitSelect {\n\tborder-collapse: separate !important;\n\tborder-width: 1px;\n\tborder-style: solid;\n}\n.dj_ie .dijitSelect {\n\tvertical-align: middle; /* Set this back for what we hack in dijit inline */\n}\n.dj_ie6 .dijitSelect .dijitValidationContainer,\n.dj_ie8 .dijitSelect .dijitButtonText {\n\tvertical-align: top;\n}\n.dj_ie6 .dijitTextBox .dijitInputContainer,\n.dj_iequirks .dijitTextBox .dijitInputContainer,\n.dj_ie6 .dijitTextBox .dijitArrowButtonInner,\n.dj_ie6 .dijitSpinner .dijitSpinnerButtonInner,\n.dijitSelect .dijitSelectLabel {\n\tvertical-align: baseline;\n}\n\n.dijitNumberTextBox {\n\ttext-align: left;\n\tdirection: ltr;\n}\n\n.dijitNumberTextBox .dijitInputInner {\n\ttext-align: inherit; /* input */\n}\n\n.dijitNumberTextBox input.dijitInputInner,\n.dijitCurrencyTextBox input.dijitInputInner,\n.dijitSpinner input.dijitInputInner {\n\ttext-align: right;\n}\n\n.dj_ie8 .dijitNumberTextBox input.dijitInputInner, .dj_ie9 .dijitNumberTextBox input.dijitInputInner,\n.dj_ie8 .dijitCurrencyTextBox input.dijitInputInner, .dj_ie9 .dijitCurrencyTextBox input.dijitInputInner,\n.dj_ie8 .dijitSpinner input.dijitInputInner, .dj_ie9 .dijitSpinner input.dijitInputInner {\n\t/* workaround bug where caret invisible in empty textboxes */\n\tpadding-right: 1px !important;\n}\n\n.dijitToolbar .dijitSelect {\n\tmargin: 0;\n}\n.dj_webkit .dijitToolbar .dijitSelect {\n\tpadding-left: 0.3em;\n}\n.dijitSelect .dijitButtonContents {\n\tpadding: 0;\n\twhite-space: nowrap;\n\ttext-align: left;\n\tborder-style: none solid none none;\n\tborder-width: 1px;\n}\n.dijitSelectFixedWidth .dijitButtonContents {\n\twidth: 100%;\n}\n\n.dijitSelectMenu .dijitMenuItemIcon {\n\t/* avoid blank area in left side of menu (since we have no icons) */\n\tdisplay:none;\n}\n.dj_ie6 .dijitSelectMenu .dijitMenuItemLabel,\n.dj_ie7 .dijitSelectMenu .dijitMenuItemLabel {\n\t/* Set back to static due to bug in ie6/ie7 - See Bug #9651 */\n\tposition: static;\n}\n\n/* Fix the baseline of our label (for multi-size font elements) */\n.dijitSelectLabel *\n{\n\tvertical-align: baseline;\n}\n\n/* Styling for the currently-selected option (rich text can mess this up) */\n.dijitSelectSelectedOption * {\n\tfont-weight: bold;\n}\n\n/* Fix the styling of the dropdown menu to be more combobox-like */\n.dijitSelectMenu {\n\tborder-width: 1px;\n}\n\n/* Used in cases, such as FullScreen plugin, when we need to force stuff to static positioning. */\n.dijitForceStatic {\n\tposition: static !important;\n}\n\n/**** Disabled cursor *****/\n.dijitReadOnly *,\n.dijitDisabled *,\n.dijitReadOnly,\n.dijitDisabled {\n\t/* a region the user would be able to click on, but it's disabled */\n\tcursor: default;\n}\n\n/* Drag and Drop */\n.dojoDndItem {\n padding: 2px; /* will be replaced by border during drag over (dojoDndItemBefore, dojoDndItemAfter) */\n\n\t/* Prevent magnifying-glass text selection icon to appear on mobile webkit as it causes a touchout event */\n\t-webkit-touch-callout: none;\n\t-webkit-user-select: none; /* Disable selection/Copy of UIWebView */\n}\n.dojoDndHorizontal .dojoDndItem {\n /* make contents of horizontal container be side by side, rather than vertical */\n display: inline-block;\n}\n\n.dojoDndItemBefore,\n.dojoDndItemAfter {\n\tborder: 0px solid #369;\n}\n.dojoDndItemBefore {\n border-width: 2px 0 0 0;\n padding: 0 2px 2px 2px;\n}\n.dojoDndItemAfter {\n border-width: 0 0 2px 0;\n padding: 2px 2px 0 2px;\n}\n.dojoDndHorizontal .dojoDndItemBefore {\n border-width: 0 0 0 2px;\n padding: 2px 2px 2px 0;\n}\n.dojoDndHorizontal .dojoDndItemAfter {\n border-width: 0 2px 0 0;\n padding: 2px 0 2px 2px;\n}\n\n.dojoDndItemOver {\n\tcursor:pointer;\n}\n.dj_gecko .dijitArrowButtonInner INPUT,\n.dj_gecko INPUT.dijitArrowButtonInner {\n\t-moz-user-focus:ignore;\n}\n.dijitFocused .dijitMenuItemShortcutKey {\n\ttext-decoration: underline;\n}\n\n/* Dijit custom styling */\n.dijitBorderContainer {\n height: 350px;\n}\n.dijitTooltipContainer {\n background: #fff;\n border: 1px solid #ccc;\n border-radius: 6px;\n}\n.dijitContentPane {\n box-sizing: content-box;\n overflow: auto !important; /* Widgets like the data grid pass their scroll\n offset to the parent if there is not enough room to display a scroll bar\n in the widget itself, so do not hide the overflow. */\n}\n\n/* Global Bootstrap changes */\n\n/* Client defaults and helpers */\n.mx-dataview-content, .mx-scrollcontainer-wrapper:not(.mx-scrollcontainer-nested), .mx-tabcontainer-content, .mx-grid-content {\n -webkit-overflow-scrolling: touch;\n}\nhtml, body, #content {\n height: 100%;\n}\n#content > .mx-page {\n width: 100%;\n min-height: 100%;\n}\n\n.mx-left-aligned {\n text-align: left;\n}\n.mx-right-aligned {\n text-align: right;\n}\n.mx-center-aligned {\n text-align: center;\n}\n\n.mx-table {\n width: 100%;\n}\n.mx-table th,\n.mx-table td {\n padding: 8px;\n vertical-align: top;\n}\n.mx-table th.nopadding,\n.mx-table td.nopadding {\n\tpadding: 0;\n}\n\n.mx-offscreen {\n /* When position relative is not set IE doesn't properly render when this class is removed\n * with the effect that elements are not displayed or are not clickable.\n */\n position: relative;\n height: 0;\n overflow: hidden;\n}\n\n.mx-ie-event-shield {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: -1;\n}\n\n.mx-swipe-navigation-progress {\n position: absolute;\n height: 54px;\n width: 54px;\n top: calc(50% - 27px);\n left: calc(50% - 27px);\n background: url(data:image/gif;base64,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);\n}\n\n\n/* Bacause we use checkboxes without labels, align them with other widgets. */\ninput[type=\"checkbox\"] {\n margin: 9px 0;\n}\n\n.mx-checkbox input[type=\"checkbox\"] {\n margin-left: 0;\n margin-right: 8px;\n position: static;\n}\n\n.form-vertical .form-group.mx-checkbox input[type=\"checkbox\"] {\n display: block;\n}\n\n.form-vertical .form-group.mx-checkbox.label-after input[type=\"checkbox\"] {\n display: inline-block;\n}\n\n.form-horizontal .form-group.no-columns {\n padding-left: 15px;\n padding-right: 15px;\n}\n\n.mx-radiobuttons.inline .radio {\n display: inline-block;\n margin-right: 20px;\n}\n\n.mx-radiobuttons .radio input[type=\"radio\"] {\n /* Reset bootstrap rules */\n position: static;\n margin-right: 8px;\n margin-left: 0;\n}\n\n.mx-radiobuttons .radio label {\n /* Reset bootstrap rules */\n padding-left: 0;\n}\n\n.alert {\n margin-top: 8px;\n margin-bottom: 10px;\n white-space: pre-line;\n}\n\n.mx-compound-control {\n display: flex;\n}\n\n.mx-compound-control button {\n margin-left: 5px;\n}\n\n[dir=\"rtl\"] .mx-compound-control button {\n margin-left: 0;\n margin-right: 5px;\n}\n\n.mx-tooltip {\n margin: 10px;\n}\n.mx-tooltip-content {\n width: 400px;\n overflow-y: auto;\n}\n.mx-tooltip-prepare {\n height: 24px;\n padding: 8px;\n background: transparent url(data:image/gif;base64,R0lGODlhGAAYAMQdAKXZ8nfF64TL7QuX3Fe45zaq4hOb3fL6/fr9/rri9dXt+ZrU8Cym4Umy5cHl9uPz+2K86Oj1/Nzw+rDd9M3q+JDQ72rA6iOi3+34/ECu48jo9x2f3gWV2////wAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQwIDc5LjE2MDQ1MSwgMjAxNy8wNS8wNi0wMTowODoyMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RUJFNkU4NEZCNEVDMTFFODk3MDBBNUU1RUM4Qjg3QTUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RUJFNkU4NTBCNEVDMTFFODk3MDBBNUU1RUM4Qjg3QTUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpFQkU2RTg0REI0RUMxMUU4OTcwMEE1RTVFQzhCODdBNSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpFQkU2RTg0RUI0RUMxMUU4OTcwMEE1RTVFQzhCODdBNSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6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) no-repeat scroll center center;\n}\n.mx-tooltip-content .table th,\n.mx-tooltip-content .table td {\n padding: 2px 8px;\n}\n\n.mx-tabcontainer-pane {\n height: 100%;\n}\n.mx-tabcontainer-content.loading {\n min-height: 48px;\n background: url(data:image/gif;base64,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) no-repeat center center;\n background-size: 32px 32px;\n}\n.mx-tabcontainer-tabs {\n margin-bottom: 8px;\n}\n.mx-tabcontainer-tabs li {\n position: relative;\n}\n.mx-tabcontainer-indicator {\n position: absolute;\n background: #f2dede;\n border-radius: 8px;\n color: #b94a48;\n top: 0px;\n right: -5px;\n width: 16px;\n height: 16px;\n line-height: 16px;\n text-align: center;\n vertical-align: middle;\n font-size: 10px;\n font-weight: 600;\n z-index: 1; /* indicator should not hide behind other tab */\n}\n\n/* base structure */\n.mx-grid {\n padding: 8px;\n overflow: hidden; /* to prevent any margin from escaping grid and foobaring our size calculations */\n}\n.mx-grid-controlbar, .mx-grid-searchbar {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n}\n.mx-grid-controlbar .mx-button,\n.mx-grid-search-controls .mx-button {\n margin-bottom: 8px;\n}\n\n.mx-grid-search-controls .mx-button + .mx-button,\n.mx-grid-controlbar .mx-button + .mx-button {\n margin-left: 0.3em;\n}\n\n[dir=\"rtl\"] .mx-grid-search-controls .mx-button + .mx-button,\n[dir=\"rtl\"] .mx-grid-controlbar .mx-button + .mx-button {\n margin-left: 0;\n margin-right: 0.3em;\n}\n\n.mx-grid-pagingbar,\n.mx-grid-search-controls {\n display: flex;\n white-space: nowrap;\n align-items: baseline;\n margin-left: auto;\n}\n\n.mx-grid-toolbar, .mx-grid-search-inputs {\n margin-right: 5px;\n flex: 1;\n}\n\n[dir=\"rtl\"] .mx-grid-toolbar,\n[dir=\"rtl\"] .mx-grid-search-inputs {\n margin-left: 5px;\n margin-right: 0px;\n}\n[dir=\"rtl\"] .mx-grid-pagingbar,\n[dir=\"rtl\"] .mx-grid-search-controls {\n margin-left: 0px;\n margin-right: auto;\n}\n\n.mx-grid-paging-status {\n padding: 0 8px 5px;\n}\n\n/* search fields */\n.mx-grid-search-item {\n display: inline-block;\n vertical-align: top;\n margin-bottom: 8px;\n}\n.mx-grid-search-label {\n width: 110px;\n padding: 0 5px;\n text-align: right;\n display: inline-block;\n vertical-align: top;\n overflow: hidden;\n}\n[dir=\"rtl\"] .mx-grid-search-label {\n text-align: left;\n}\n.mx-grid-search-input {\n width: 150px;\n padding: 0 5px;\n display: inline-block;\n vertical-align: top;\n}\n.mx-grid-search-message {\n flex-basis: 100%;\n}\n\n/* widget combinations */\n.mx-dataview .mx-grid {\n border: 1px solid #ddd;\n border-radius: 3px;\n}\n\n.mx-calendar {\n z-index: 1000;\n}\n\n.mx-calendar-month-dropdown-options {\n position: absolute;\n}\n\n.mx-calendar, .mx-calendar-month-dropdown {\n user-select: none;\n}\n\n.mx-calendar-month-current {\n display: inline-block;\n}\n\n.mx-calendar-month-spacer {\n position: relative;\n height: 0px;\n overflow: hidden;\n visibility: hidden;\n}\n\n.mx-calendar, .mx-calendar-month-dropdown-options {\n border: 1px solid lightgrey;\n background-color: white;\n}\n\n.mx-datagrid tr {\n cursor: pointer;\n}\n\n.mx-datagrid tr.mx-datagrid-row-empty {\n cursor: default;\n}\n\n.mx-datagrid table {\n width: 100%;\n max-width: 100%;\n table-layout: fixed;\n margin-bottom: 0;\n}\n\n.mx-datagrid th, .mx-datagrid td {\n padding: 8px;\n line-height: 1.42857143;\n vertical-align: bottom;\n border: 1px solid #ddd;\n}\n\n/* head */\n.mx-datagrid th {\n position: relative; /* Required for the positioning of the column resizers */\n border-bottom-width: 2px;\n}\n.mx-datagrid-head-caption {\n overflow: hidden;\n white-space: nowrap;\n}\n.mx-datagrid-sort-icon {\n float: right;\n padding-left: 5px;\n}\n[dir=\"rtl\"] .mx-datagrid-sort-icon {\n float: left;\n padding: 0 5px 0 0;\n}\n.mx-datagrid-column-resizer {\n position: absolute;\n top: 0;\n left: -6px;\n width: 10px;\n height: 100%;\n cursor: col-resize;\n}\n[dir=\"rtl\"] .mx-datagrid-column-resizer {\n left: auto;\n right: -6px;\n}\n\n/* body */\n.mx-datagrid tbody tr:first-child td {\n border-top: none;\n}\n//.mx-datagrid tbody tr:nth-child(2n+1) td {\n// background-color: #f9f9f9;\n//}\n.mx-datagrid tbody .selected td {\n background-color: #eee;\n}\n.mx-datagrid-data-wrapper {\n overflow: hidden;\n white-space: nowrap;\n}\n.mx-datagrid tbody img {\n max-width: 16px;\n max-height: 16px;\n}\n.mx-datagrid input,\n.mx-datagrid select,\n.mx-datagrid textarea {\n cursor: auto;\n}\n\n/* foot */\n.mx-datagrid tfoot th,\n.mx-datagrid tfoot td {\n padding: 3px 8px;\n}\n.mx-datagrid tfoot th {\n border-top: 1px solid #ddd;\n}\n.mx-datagrid.mx-content-loading .mx-content-loader {\n display: inline-block;\n width: 90%;\n animation: placeholderGradient 1s linear infinite;\n border-radius: 4px;\n background: #F5F5F5;\n background: repeating-linear-gradient(to right, #F5F5F5 0%, #F5F5F5 5%, #F9F9F9 50%, #F5F5F5 95%, #F5F5F5 100%);\n background-size: 200px 100px;\n animation-fill-mode: both;\n}\n@keyframes placeholderGradient {\n 0% { background-position: 100px 0; }\n 100% { background-position: -100px 0; }\n}\n\n.mx-datagrid-table-resizing th,\n.mx-datagrid-table-resizing td {\n cursor: col-resize !important;\n}\n\n.mx-templategrid-content-wrapper {\n display: table;\n width: 100%;\n border-collapse: collapse;\n box-sizing: border-box;\n}\n.mx-templategrid-row {\n display: table-row;\n}\n.mx-templategrid-item {\n padding: 5px;\n display: table-cell;\n border: 1px solid #ddd;\n cursor: pointer;\n box-sizing: border-box;\n}\n.mx-templategrid-empty {\n display: table-cell;\n}\n.mx-templategrid-item.selected {\n background-color: #f5f5f5;\n}\n.mx-templategrid-item .mx-table th,\n.mx-templategrid-item .mx-table td {\n padding: 2px 8px;\n}\n\n.mx-scrollcontainer-horizontal {\n width: 100%;\n display: table;\n table-layout: fixed;\n}\n.mx-scrollcontainer-horizontal > div {\n display: table-cell;\n vertical-align: top;\n}\n//.mx-scrollcontainer-wrapper {\n// padding: 10px;\n//}\n.mx-scrollcontainer-nested {\n padding: 0;\n}\n.mx-scrollcontainer-fixed > .mx-scrollcontainer-middle > .mx-scrollcontainer-wrapper,\n.mx-scrollcontainer-fixed > .mx-scrollcontainer-left > .mx-scrollcontainer-wrapper,\n.mx-scrollcontainer-fixed > .mx-scrollcontainer-center > .mx-scrollcontainer-wrapper,\n.mx-scrollcontainer-fixed > .mx-scrollcontainer-right > .mx-scrollcontainer-wrapper {\n overflow: auto;\n}\n\n.mx-scrollcontainer-move-in {\n transition: left 250ms ease-out;\n}\n.mx-scrollcontainer-move-out {\n transition: left 250ms ease-in;\n}\n.mx-scrollcontainer-shrink .mx-scrollcontainer-toggleable {\n transition-property: width;\n}\n\n.mx-scrollcontainer-toggleable {\n background-color: #fff;\n}\n//.mx-scrollcontainer-slide > .mx-scrollcontainer-toggleable > .mx-scrollcontainer-wrapper {\n// position: relative;\n// z-index: 1;\n// background-color: inherit;\n//}\n.mx-scrollcontainer-push {\n position: relative;\n}\n.mx-scrollcontainer-shrink > .mx-scrollcontainer-toggleable {\n overflow: hidden;\n}\n.mx-scrollcontainer-push.mx-scrollcontainer-open > div,\n.mx-scrollcontainer-slide.mx-scrollcontainer-open > div {\n pointer-events: none;\n}\n.mx-scrollcontainer-push.mx-scrollcontainer-open > .mx-scrollcontainer-toggleable,\n.mx-scrollcontainer-slide.mx-scrollcontainer-open > .mx-scrollcontainer-toggleable {\n pointer-events: auto;\n}\n\n.mx-navbar-item img,\n.mx-navbar-subitem img {\n height: 16px;\n}\n\n\n.mx-navigationtree .navbar-inner {\n padding-left: 0;\n padding-right: 0;\n}\n.mx-navigationtree ul {\n list-style: none;\n}\n.mx-navigationtree ul li {\n border-bottom: 1px solid #dfe6ea;\n}\n.mx-navigationtree li:last-child {\n border-style: none;\n}\n.mx-navigationtree a {\n display: block;\n padding: 5px 10px;\n color: #777;\n text-shadow: 0 1px 0 #fff;\n text-decoration: none;\n}\n.mx-navigationtree a.active {\n color: #FFF;\n text-shadow: none;\n background: #3498DB;\n border-radius: 3px;\n}\n.mx-navigationtree .mx-navigationtree-collapsed ul {\n display: none;\n}\n.mx-navigationtree ul {\n margin: 0;\n padding: 0;\n}\n.mx-navigationtree ul li {\n padding: 5px 0;\n}\n.mx-navigationtree ul li ul {\n padding: 0;\n margin-left: 10px;\n}\n.mx-navigationtree ul li ul li {\n margin-left: 8px;\n padding: 5px 0;\n}\n[dir=\"rtl\"] .mx-navigationtree ul li ul li {\n margin-left: auto;\n margin-right: 8px;\n}\n.mx-navigationtree ul li ul li ul li {\n font-size: 10px;\n padding-top: 3px;\n padding-bottom: 3px;\n}\n.mx-navigationtree ul li ul li ul li img {\n vertical-align: top;\n}\n\n.mx-link img,\n.mx-button img {\n height: 16px;\n}\n.mx-link {\n padding: 6px 12px;\n display: inline-block;\n}\n\n.mx-groupbox {\n margin-bottom: 10px;\n}\n.mx-groupbox-header {\n margin: 0;\n padding: 10px 15px;\n color: #eee;\n background: #333;\n font-size: inherit;\n line-height: inherit;\n border-radius: 4px 4px 0 0;\n}\n.mx-groupbox-collapsible > .mx-groupbox-header {\n cursor: pointer;\n}\n.mx-groupbox.collapsed > .mx-groupbox-header {\n border-radius: 4px;\n}\n.mx-groupbox-body {\n padding: 8px;\n border: 1px solid #ddd;\n border-radius: 4px;\n}\n.mx-groupbox.collapsed > .mx-groupbox-body {\n display: none;\n}\n.mx-groupbox-header + .mx-groupbox-body {\n border-top: none;\n border-radius: 0 0 4px 4px;\n}\n.mx-groupbox-collapse-icon {\n float: right;\n}\n[dir=\"rtl\"] .mx-groupbox-collapse-icon {\n float: left;\n}\n\n.mx-dataview {\n position: relative;\n}\n.mx-dataview-controls {\n padding: 19px 20px 12px;\n background-color: #f5f5f5;\n border-top: 1px solid #eee;\n}\n\n.mx-dataview-controls .mx-button {\n margin-bottom: 8px;\n}\n\n.mx-dataview-controls .mx-button + .mx-button {\n margin-left: 0.3em;\n}\n\n.mx-dataview-message {\n background: #fff;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n}\n.mx-dataview-message > div {\n display: table;\n width: 100%;\n height: 100%;\n}\n.mx-dataview-message > div > p {\n display: table-cell;\n text-align: center;\n vertical-align: middle;\n}\n\n/* Top-level data view in window is a special case, handle it as such. */\n.mx-window-view .mx-window-body {\n padding: 0;\n}\n.mx-window-view .mx-window-body > .mx-dataview > .mx-dataview-content,\n.mx-window-view .mx-window-body > .mx-placeholder > .mx-dataview > .mx-dataview-content {\n padding: 15px;\n}\n.mx-window-view .mx-window-body > .mx-dataview > .mx-dataview-controls,\n.mx-window-view .mx-window-body > .mx-placeholder > .mx-dataview > .mx-dataview-controls {\n border-radius: 0px 0px 6px 6px;\n}\n\n.mx-dialog {\n position: fixed;\n left: auto;\n right: auto;\n padding: 0;\n width: 500px;\n /* If the margin is set to auto, IE9 reports the calculated value of the\n * margin as the actual value. Other browsers will just report 0. Eliminate\n * this difference by setting margin to 0 for every browser. */\n margin: 0;\n}\n.mx-dialog-header {\n cursor: move;\n}\n.mx-dialog-body {\n overflow: auto;\n}\n\n.mx-window {\n position: fixed;\n left: auto;\n right: auto;\n padding: 0;\n width: 600px;\n /* If the margin is set to auto, IE9 reports the calculated value of the\n * margin as the actual value. Other browsers will just report 0. Eliminate\n * this difference by setting margin to 0 for every browser. */\n margin: 0;\n}\n.mx-window-content {\n height: 100%;\n overflow: hidden;\n}\n.mx-window-active .mx-window-header {\n background-color: #f5f5f5;\n border-radius: 6px 6px 0 0;\n}\n.mx-window-header {\n cursor: move;\n}\n.mx-window-body {\n overflow: auto;\n}\n\n.mx-dropdown-list * {\n cursor: pointer;\n}\n.mx-dropdown-list img {\n width: 35px;\n vertical-align: middle;\n margin-right: 10px;\n}\n[dir=\"rtl\"] .mx-dropdown-list img {\n margin-left: 10px;\n margin-right: auto;\n}\n\n.mx-dropdown-list {\n padding: 0;\n list-style: none;\n}\n.mx-dropdown-list > li {\n padding: 5px 10px 10px;\n border: 1px #ddd;\n border-style: solid solid none;\n background-color: #fff;\n}\n.mx-dropdown-list > li:first-child {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n}\n.mx-dropdown-list > li:last-child {\n border-bottom-style: solid;\n border-bottom-left-radius: 4px;\n border-bottom-right-radius: 4px;\n}\n.mx-dropdown-list-striped > li:nth-child(2n+1) {\n background: #f9f9f9;\n}\n.mx-dropdown-list > li:hover {\n background: #f5f5f5;\n}\n\n.mx-header {\n position: relative;\n padding: 9px;\n background: #333;\n text-align: center;\n}\n.mx-header-center {\n display: inline-block;\n color: #eee;\n line-height: 30px; /* height of buttons */\n}\nbody[dir=\"ltr\"] .mx-header-left,\nbody[dir=\"rtl\"] .mx-header-right {\n position: absolute;\n top: 9px;\n left: 9px;\n}\nbody[dir=\"ltr\"] .mx-header-right,\nbody[dir=\"rtl\"] .mx-header-left {\n position: absolute;\n top: 9px;\n right: 9px;\n}\n\n.mx-title {\n margin-bottom: 0px;\n margin-top: 0px;\n}\n\n.mx-listview {\n padding: 8px;\n}\n.mx-listview > ul {\n padding: 0px;\n list-style: none;\n}\n// .mx-listview > ul > li {\n// padding: 5px 10px 10px;\n// border: 1px #ddd;\n// border-style: solid solid none;\n// background-color: #fff;\n// outline: none;\n// }\n// .mx-listview > ul > li:first-child {\n// border-top-left-radius: 4px;\n// border-top-right-radius: 4px;\n// }\n// .mx-listview > ul > li:last-child {\n// border-bottom-style: solid;\n// border-bottom-left-radius: 4px;\n// border-bottom-right-radius: 4px;\n// }\n//.mx-listview li:nth-child(2n+1) {\n// background: #f9f9f9;\n//}\n//.mx-listview li:nth-child(2n+1):hover {\n// background: #f5f5f5;\n//}\n.mx-listview > ul > li.selected {\n// background: #eee;\n}\n.mx-listview-clickable > ul > li {\n cursor: pointer;\n}\n.mx-listview-empty {\n color: #999;\n text-align: center;\n}\n.mx-listview .mx-listview-loading {\n padding: 10px;\n line-height: 0;\n text-align: center;\n}\n.mx-listview-searchbar {\n display: flex;\n margin-bottom: 10px;\n}\n.mx-listview-searchbar > input {\n width: 100%;\n}\n.mx-listview-searchbar > button {\n margin-left: 5px;\n}\n[dir=\"rtl\"] .mx-listview-searchbar > button {\n margin-left: 0;\n margin-right: 5px;\n}\n.mx-listview-selection {\n display: table-cell;\n vertical-align: middle;\n padding: 0 15px 0 5px;\n}\n[dir=\"rtl\"] .mx-listview-selection {\n padding: 0 5px 0 15px;\n}\n.mx-listview-selectable .mx-listview-content {\n display: table-cell;\n vertical-align: middle;\n width: 100%;\n}\n.mx-listview .selected {\n background: #def;\n}\n.mx-listview .mx-table th,\n.mx-listview .mx-table td {\n padding: 2px;\n}\n\n.mx-login .form-control {\n margin-top: 10px;\n}\n\n.mx-menubar {\n padding: 8px;\n}\n.mx-menubar-icon {\n height: 16px;\n}\n.mx-menubar-more-icon {\n display: inline-block;\n width: 16px;\n height: 16px;\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAYAAAAe2bNZAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAKNJREFUeNpi/P//P8NgAUwMgwiMOmbUMaOOGXXMqGNGHTPYHMOCTfDs2bMeQKoOiI1BXCBuMjY23kFrdYzoTQigRm8gtQWLG0OBBqyhlTpc0dSOIxTraKwOq2PUcWhWp7E6rI65iUPzTRqrw+qYGhyam2isDtMxwES1CUgFAfFxqBCIDkJPbNRWhzU3jRZ6o44ZdcyoY0YdM+qYUccMUscABBgAUXpEjE/Bs/IAAAAASUVORK5CYII=) no-repeat center center;\n background-size: 16px 16px;\n vertical-align: middle;\n}\n\n.mx-navigationlist {\n padding: 8px;\n}\n.mx-navigationlist li:hover,\n.mx-navigationlist li:focus,\n.mx-navigationlist li.active {\n color: #FFF;\n background-color: #3498DB;\n}\n.mx-navigationlist * {\n cursor: pointer;\n}\n.mx-navigationlist .table th,\n.mx-navigationlist .table td {\n padding: 2px;\n}\n\n.mx-progress {\n position: fixed;\n top: 30%;\n left: 0;\n right: 0;\n margin: auto;\n width: 250px;\n max-width: 90%;\n background: #333;\n opacity: 0.8;\n z-index: 5000;\n border-radius: 4px;\n padding: 20px 15px;\n transition: opacity 0.4s ease-in-out;\n}\n.mx-progress-hidden {\n opacity: 0;\n}\n.mx-progress-message {\n color: #fff;\n text-align: center;\n margin-bottom: 15px;\n}\n.mx-progress-empty .mx-progress-message {\n display: none;\n}\n.mx-progress-indicator {\n width: 70px;\n height: 10px;\n margin: auto;\n background: url(data:image/gif;base64,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);\n}\n\n.mx-reload-notification {\n position: fixed;\n z-index: 1001;\n top: 0;\n width: 100%;\n padding: 1rem;\n\n border: 1px solid hsl(200, 96%, 41%);\n background-color: hsl(200, 96%, 44%);\n\n box-shadow: 0 5px 20px rgba(1, 37, 55, 0.16);\n color: white;\n\n text-align: center;\n font-size: 14px;\n}\n\n.mx-resizer-n,\n.mx-resizer-s {\n position: absolute;\n left: 0;\n width: 100%;\n height: 10px;\n}\n.mx-resizer-n {\n top: -5px;\n cursor: n-resize;\n}\n.mx-resizer-s {\n bottom: -5px;\n cursor: s-resize;\n}\n\n.mx-resizer-e,\n.mx-resizer-w {\n position: absolute;\n top: 0;\n width: 10px;\n height: 100%;\n}\n.mx-resizer-e {\n right: -5px;\n cursor: e-resize;\n}\n.mx-resizer-w {\n left: -5px;\n cursor: w-resize;\n}\n\n.mx-resizer-nw,\n.mx-resizer-ne,\n.mx-resizer-sw,\n.mx-resizer-se {\n position: absolute;\n width: 20px;\n height: 20px;\n}\n\n.mx-resizer-nw,\n.mx-resizer-ne {\n top: -5px;\n}\n.mx-resizer-sw,\n.mx-resizer-se {\n bottom: -5px;\n}\n.mx-resizer-nw,\n.mx-resizer-sw {\n left: -5px;\n}\n.mx-resizer-ne,\n.mx-resizer-se {\n right: -5px;\n}\n\n.mx-resizer-nw {\n cursor: nw-resize;\n}\n.mx-resizer-ne {\n cursor: ne-resize;\n}\n.mx-resizer-sw {\n cursor: sw-resize;\n}\n.mx-resizer-se {\n cursor: se-resize;\n}\n\n.mx-text {\n white-space: pre-line;\n}\n\n.mx-textarea textarea {\n resize: none;\n overflow-y: hidden;\n}\n.mx-textarea .mx-textarea-noresize {\n height: auto;\n resize: vertical;\n overflow-y: auto;\n}\n.mx-textarea .mx-textarea-counter {\n font-size: smaller;\n}\n.mx-textarea .form-control-static {\n white-space: pre-line;\n}\n\n.mx-underlay {\n position: fixed;\n top: 0;\n width: 100%;\n height: 100%;\n z-index: 1000;\n opacity: 0.5;\n background-color: #333;\n}\n\n.mx-imagezoom {\n position: absolute;\n display: table;\n width: 100%;\n height: 100%;\n background-color: #999;\n}\n.mx-imagezoom-wrapper {\n display: table-cell;\n text-align: center;\n vertical-align: middle;\n}\n.mx-imagezoom-image {\n max-width: none;\n}\n\n.mx-dropdown li {\n padding: 3px 20px;\n cursor: pointer;\n}\n.mx-dropdown label {\n padding: 0;\n color: #333;\n white-space: nowrap;\n cursor: pointer;\n}\n.mx-dropdown input {\n margin: 0;\n vertical-align: middle;\n cursor: pointer;\n}\n.mx-dropdown .selected {\n background: #f8f8f8;\n}\n//.mx-selectbox {\n// text-align: left;\n//}\n//.mx-selectbox-caret-wrapper {\n// float: right;\n// height: 100%;\n//}\n\n.mx-demouserswitcher {\n position: fixed;\n top: 0;\n right: 0;\n width: 360px;\n height: 100%;\n z-index: 20000;\n box-shadow: -1px 0 5px rgba(28,59,86,.2);\n}\n.mx-demouserswitcher-content {\n padding: 80px 40px 20px;\n height: 100%;\n color: #387ea2;\n font-size: 14px;\n overflow: auto;\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOgAAABgCAYAAAAXSj7NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0MzkwOTREMDQ2NEYxMUU0QTQ4MUI5NTNGMUQ3QzE5NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0MzkwOTREMTQ2NEYxMUU0QTQ4MUI5NTNGMUQ3QzE5NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc0REMyMUZGNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc0REMyMjAwNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+g1tRlwAAEFFJREFUeNrsnYl3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) top right no-repeat #1b3149;\n /* background-attachement local is not supported on IE8\n * when this is part of background the complete background is ignored */\n background-attachment: local;\n}\n.mx-demouserswitcher ul {\n padding: 0;\n margin-top: 25px;\n list-style-type: none;\n border-top: 1px solid #496076;\n}\n.mx-demouserswitcher a {\n display: block;\n padding: 10px 0;\n color: #387ea2;\n border-bottom: 1px solid #496076;\n}\n.mx-demouserswitcher h2 {\n margin: 20px 0 5px;\n color: #5bc4fe;\n font-size: 28px;\n}\n.mx-demouserswitcher h3 {\n margin: 0 0 2px;\n color: #5bc4fe;\n font-size: 18px;\n font-weight: normal;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.mx-demouserswitcher .active h3 {\n color: #11efdb;\n}\n.mx-demouserswitcher p {\n margin-bottom: 0;\n}\n.mx-demouserswitcher-toggle {\n position: absolute;\n top: 25%;\n left: -35px;\n width: 35px;\n height: 38px;\n margin-top: -40px;\n cursor: pointer;\n border-top-left-radius: 3px;\n border-bottom-left-radius: 3px;\n box-shadow: -1px 0 5px rgba(28,59,86,.2);\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3NERDMjFGRDQ2NEMxMUU0QTQ4MUI5NTNGMUQ3QzE5NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3NERDMjFGRTQ2NEMxMUU0QTQ4MUI5NTNGMUQ3QzE5NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc0REMyMUZCNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc0REMyMUZDNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+1ZovNAAAAWdJREFUeNqM1M0rRFEYx/E7Y5qIQpOUbIiymQWysBgvJVJK2VgryZQtKSULZelPsB0LZaNZjJUNK1FskJqUvCS3NAsZc3zP9NziOOfeeepTc8/c8+vc8xZTSnmOakEGKdzgDBXXy54OMsSwjpL6W9cYsrxfZWvcUu7y0VdLUCc+VXgd2oLixpfOIOmF17TtHTOozYuupCxAaNB9DUEfeDUbE8bzEXxZerP00l8hh3LUiHTIMr6N9j2ksYoihv/1deyLSVzKKm1jEW+WfZV2Lf8gskjIcwcWpOM++pHCFPLosgWtoCyd7jCPOjzhGHHLyDPY1achaJhDxRj6rBwJXUuoN0IG8IIv7OiGBjxadvAITuT3rex6c0SbKASflnUcBT3JTThAjyWkGUVsBEEFR5CerzXpNIacrFIrJnCBB3muBvkhB1TP27hM/Lvx3zl6gxHqu6c74kiU8IxGjKJdLrrT3xfdjwADAJaMxP2bvD2BAAAAAElFTkSuQmCC) center center no-repeat #1b3149;\n}\n\n/* master details screen for mobile */\n.mx-master-detail-screen {\n top: 0;\n left: 0;\n overflow: auto;\n width: 100%;\n height: 100%;\n position: absolute;\n background-color: white;\n will-change: transform;\n}\n\n.mx-master-detail-screen .mx-master-detail-details {\n padding: 15px;\n}\n\n.mx-master-detail-screen-header {\n position: relative;\n overflow: auto;\n border-bottom: 1px solid #ccc;\n background-color: #f7f7f7;\n}\n\n.mx-master-detail-screen-header-caption {\n text-align: center;\n font-size: 17px;\n line-height: 24px;\n font-weight: 600;\n}\n\n.mx-master-detail-screen-header-close {\n position: absolute;\n left: 0;\n top: 0;\n height: 100%;\n width: 50px;\n border: none;\n background: transparent;\n color: #007aff;\n}\n\nbody[dir=\"rtl\"] .mx-master-detail-screen-header-close {\n right: 0;\n left: auto;\n}\n\n.mx-master-detail-screen-header-close::before {\n content: \"\\2039\";\n font-size: 52px;\n line-height: 24px;\n}\n\n/* classes for content page */\n.mx-master-detail-content-fix {\n height: 100vh;\n overflow: hidden;\n}\n\n.mx-master-detail-content-hidden {\n transform: translateX(-200%);\n}\n\nbody[dir=\"rtl\"] .mx-master-detail-content-hidden {\n transform: translateX(200%);\n}\n.reportingReport {\n padding: 5px;\n border: 1px solid #ddd;\n -webkit-border-radius: 3px;\n -moz-border-radius: 3px;\n border-radius: 3px;\n}\n\n.reportingReportParameter th {\n text-align: right;\n}\n\n.reportingDateRange table {\n width: 100%;\n table-layout: fixed;\n}\n.reportingDateRange th {\n padding: 5px;\n text-align: right;\n background-color: #eee;\n}\n.reportingDateRange td {\n padding: 5px;\n}\n\n.mx-reportmatrix table {\n width: 100%;\n max-width: 100%;\n table-layout: fixed;\n margin-bottom: 0;\n}\n\n.mx-reportmatrix th, .mx-reportmatrix td {\n padding: 8px;\n line-height: 1.42857143;\n vertical-align: bottom;\n border: 1px solid #ddd;\n}\n\n.mx-reportmatrix tbody tr:first-child td {\n border-top: none;\n}\n\n.mx-reportmatrix tbody tr:nth-child(2n+1) td {\n background-color: #f9f9f9;\n}\n\n.mx-reportmatrix tbody img {\n max-width: 16px;\n max-height: 16px;\n}\n\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n .dijitInline {\n zoom: 1; /* set hasLayout:true to mimic inline-block */\n display:inline; /* don't use .dj_ie since that increases the priority */\n vertical-align: auto;\t/* makes TextBox,Button line up w/native counterparts on IE6 */\n }\n\n .dj_ie6 .dijitComboBox .dijitInputContainer,\n .dijitInputContainer {\n zoom: 1;\n }\n\n .dijitRight {\n /* Right part of a 3-element border */\n display:inline;\t\t\t\t/* IE7 sizes to outer size w/o this */\n }\n\n .dijitButtonNode {\n vertical-align: auto;\n }\n\n .dijitTextBox {\n overflow: hidden; /* #6027, #6067 */\n }\n\n .dijitPlaceHolder {\n filter: \"\"; /* make this show up in IE6 after the rendering of the widget */\n }\n\n .dijitValidationTextBoxError input.dijitValidationInner,\n .dijitSelect input,\n .dijitTextBox input.dijitArrowButtonInner {\n text-indent: 0 !important;\n letter-spacing: -5em !important;\n text-align: right !important;\n }\n\n .dj_a11y input.dijitValidationInner,\n .dj_a11y input.dijitArrowButtonInner {\n text-align: left !important;\n }\n\n .dijitSpinner .dijitSpinnerButtonContainer .dijitUpArrowButton {\n bottom: 50%;\t/* otherwise (on some machines) top arrow icon too close to splitter border (IE6/7) */\n }\n\n .dijitTabContainerTop-tabs .dijitTab,\n .dijitTabContainerBottom-tabs .dijitTab {\n zoom: 1; /* set hasLayout:true to mimic inline-block */\n display:inline; /* don't use .dj_ie since that increases the priority */\n }\n\n .dojoDndHorizontal .dojoDndItem {\n /* make contents of horizontal container be side by side, rather than vertical */\n display: inline;\n }\n}\n\n\n\n/* WARNING: IE9 limits nested imports to three levels deep: http://jorgealbaladejo.com/2011/05/28/internet-explorer-limits-nested-import-css-statements */\n\n/* dijit base */\n\n/* mendix base */\n\n/* widgets */\n\n/* reporting */\n\n\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9kb2pvL2Rpaml0L3RoZW1lcy9kaWppdC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS9iYXNlLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL2Zvcm1zLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9Ub29sdGlwLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9UYWJDb250YWluZXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L19HcmlkLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9DYWxlbmRhci5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvRGF0YUdyaWQuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RlbXBsYXRlR3JpZC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvU2Nyb2xsQ29udGFpbmVyLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9OYXZiYXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L05hdmlnYXRpb25UcmVlLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9CdXR0b24uY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L0dyb3VwQm94LmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9EYXRhVmlldy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvRGlhbG9nLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9XaW5kb3cuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L0Ryb3BEb3duLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9IZWFkZXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RpdGxlLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9MaXN0Vmlldy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvTG9naW5EaWFsb2cuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L01lbnVCYXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L05hdmlnYXRpb25MaXN0LmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9Qcm9ncmVzcy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvUmVsb2FkTm90aWZpY2F0aW9uLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9SZXNpemFibGUuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RleHQuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RleHRBcmVhLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9VbmRlcmxheS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvSW1hZ2Vab29tLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9TZWxlY3RCb3guY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L0RlbW9Vc2VyU3dpdGNoZXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L01hc3RlckRldGFpbC5jc3MiLCJ3ZWJwYWNrOi8vLy4vcmVwb3J0aW5nL3VpL3dpZGdldC9SZXBvcnQuY3NzIiwid2VicGFjazovLy8uL3JlcG9ydGluZy91aS93aWRnZXQvUmVwb3J0UGFyYW1ldGVyLmNzcyIsIndlYnBhY2s6Ly8vLi9yZXBvcnRpbmcvdWkvd2lkZ2V0L0RhdGVSYW5nZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vcmVwb3J0aW5nL3VpL3dpZGdldC9SZXBvcnRNYXRyaXguY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvbXh1aS5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7Ozs7QUFJQTtBQUNBO0FBQ0E7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QUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QjtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkIsd0JBQXdCO0FBQ3hCLFdBQVc7QUFDWDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLHlDQUF5QztBQUN4RDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLHdCQUF3QixvQkFBb0I7O0FBRTVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZjs7QUFFQTtBQUNBO0FBQ0EsK0JBQStCO0FBQy9CLFlBQVk7QUFDWjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQ7QUFDakQsMEJBQTBCO0FBQzFCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0EsYUFBYTtBQUNiLGFBQWEsd0RBQXdEO0FBQ3JFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0Esd0JBQXdCO0FBQ3hCOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtB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QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxrQkFBa0I7QUFDbEI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7QUFFQTtBQUNBLGdCQUFnQjtBQUNoQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQztBQUNqQztBQUNBO0FBQ0EsNEJBQTRCO0FBQzVCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHFCQUFxQjtBQUNyQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxpQkFBaUI7O0FBRWpCO0FBQ0E7QUFDQSwyQkFBMkI7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdnNFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQzs7O0FDOUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUN6REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0M7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmOztBQzdCQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JGQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQzFCQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLDhCQUE4QjtBQUN0QyxVQUFVLCtCQUErQjtBQUN6Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUN0R0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyREE7QUFDQTtBQUNBO0FBQ0E7OztBQ0hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RCQTtBQUNBO0FBQ0E7QUFDQTs7QUNIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN0VBO0FBQ0E7QUFDQTs7QUNGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQztBQUNBO0FBQ0E7O0FDYkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDZkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DO0FBQ25DOztBQy9CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JFQTtBQUNBO0FBQ0E7O0FDRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDZEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUM7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQzs7QUMvREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxDO0FDaEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ05BO0FBQ0E7QUFDQTs7QUNGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDWEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDekJBOztBQUVBOztBQUVBOztBQUVBOztBQUVBIiwiZmlsZSI6Im14dWkvdWkvbXh1aS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuXHRFc3NlbnRpYWwgc3R5bGVzIHRoYXQgdGhlbWVzIGNhbiBpbmhlcml0LlxuXHRJbiBvdGhlciB3b3Jkcywgd29ya3MgYnV0IGRvZXNuJ3QgbG9vayBncmVhdC5cbiovXG5cblxuXG4vKioqKlxuXHRcdEdFTkVSSUMgUElFQ0VTXG4gKioqKi9cblxuLmRpaml0UmVzZXQge1xuXHQvKiBVc2UgdGhpcyBzdHlsZSB0byBudWxsIG91dCBwYWRkaW5nLCBtYXJnaW4sIGJvcmRlciBpbiB5b3VyIHRlbXBsYXRlIGVsZW1lbnRzXG5cdFx0c28gdGhhdCBwYWdlIHNwZWNpZmljIHN0eWxlcyBkb24ndCBicmVhayB0aGVtLlxuXHRcdC0gVXNlIGluIGFsbCBUQUJMRSwgVFIgYW5kIFREIHRhZ3MuXG5cdCovXG5cdG1hcmdpbjowO1xuXHRib3JkZXI6MDtcblx0cGFkZGluZzowO1xuXHRmb250OiBpbmhlcml0O1xuXHRsaW5lLWhlaWdodDpub3JtYWw7XG5cdGNvbG9yOiBpbmhlcml0O1xufVxuLmRqX2ExMXkgLmRpaml0UmVzZXQge1xuXHQtbW96LWFwcGVhcmFuY2U6IG5vbmU7IC8qIHJlbW92ZSBwcmVkZWZpbmVkIGhpZ2gtY29udHJhc3Qgc3R5bGluZyBpbiBGaXJlZm94ICovXG59XG5cbi5kaWppdElubGluZSB7XG5cdC8qICBUbyBpbmxpbmUgYmxvY2sgZWxlbWVudHMuXG5cdFx0U2ltaWxhciB0byBJbmxpbmVCb3ggYmVsb3csIGJ1dCB0aGlzIGhhcyBmZXdlciBzaWRlLWVmZmVjdHMgaW4gTW96LlxuXHRcdEFsc28sIGFwcGFyZW50bHkgd29ya3Mgb24gYSBESVYgYXMgd2VsbCBhcyBhIEZJRUxEU0VULlxuXHQqL1xuXHRkaXNwbGF5OmlubGluZS1ibG9jaztcdFx0XHQvKiB3ZWJraXQgYW5kIEZGMyAqL1xuXHQjem9vbTogMTsgLyogc2V0IGhhc0xheW91dDp0cnVlIHRvIG1pbWljIGlubGluZS1ibG9jayAqL1xuXHQjZGlzcGxheTppbmxpbmU7IC8qIGRvbid0IHVzZSAuZGpfaWUgc2luY2UgdGhhdCBpbmNyZWFzZXMgdGhlIHByaW9yaXR5ICovXG5cdGJvcmRlcjowO1xuXHRwYWRkaW5nOjA7XG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0I3ZlcnRpY2FsLWFsaWduOiBhdXRvO1x0LyogbWFrZXMgVGV4dEJveCxCdXR0b24gbGluZSB1cCB3L25hdGl2ZSBjb3VudGVycGFydHMgb24gSUU2ICovXG59XG5cbnRhYmxlLmRpaml0SW5saW5lIHtcblx0LyogVG8gaW5saW5lIHRhYmxlcyB3aXRoIGEgZ2l2ZW4gd2lkdGggc2V0ICovXG5cdGRpc3BsYXk6aW5saW5lLXRhYmxlO1xuXHRib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cblxuLmRpaml0SGlkZGVuIHtcblx0LyogVG8gaGlkZSB1bnNlbGVjdGVkIHBhbmVzIGluIFN0YWNrQ29udGFpbmVyIGV0Yy4gKi9cblx0cG9zaXRpb246IGFic29sdXRlOyAvKiByZW1vdmUgZnJvbSBub3JtYWwgZG9jdW1lbnQgZmxvdyB0byBzaW11bGF0ZSBkaXNwbGF5OiBub25lICovXG5cdHZpc2liaWxpdHk6IGhpZGRlbjsgLyogaGlkZSBlbGVtZW50IGZyb20gdmlldywgYnV0IGRvbid0IGJyZWFrIHNjcm9sbGluZywgc2VlICMxODYxMiAqL1xufVxuLmRpaml0SGlkZGVuICoge1xuXHR2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDsgLyogaGlkZSB2aXNpYmlsaXR5OnZpc2libGUgZGVzY2VuZGFudHMgb2YgY2xhc3M9ZGlqaXRIaWRkZW4gbm9kZXMsIHNlZSAjMTg3OTkgKi9cbn1cblxuLmRpaml0VmlzaWJsZSB7XG5cdC8qIFRvIHNob3cgc2VsZWN0ZWQgcGFuZSBpbiBTdGFja0NvbnRhaW5lciBldGMuICovXG5cdGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHQvKiBvdmVycmlkZSB1c2VyJ3MgZGlzcGxheTpub25lIHNldHRpbmcgdmlhIHN0eWxlIHNldHRpbmcgb3IgaW5kaXJlY3RseSB2aWEgY2xhc3MgKi9cblx0cG9zaXRpb246IHJlbGF0aXZlO1x0XHRcdC8qIHRvIHN1cHBvcnQgc2V0dGluZyB3aWR0aC9oZWlnaHQsIHNlZSAjMjAzMyAqL1xuXHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuXG4uZGpfaWU2IC5kaWppdENvbWJvQm94IC5kaWppdElucHV0Q29udGFpbmVyLFxuLmRpaml0SW5wdXRDb250YWluZXIge1xuXHQvKiBmb3IgcG9zaXRpb25pbmcgb2YgcGxhY2VIb2xkZXIgKi9cblx0I3pvb206IDE7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGZsb2F0OiBub25lICFpbXBvcnRhbnQ7IC8qIG5lZWRlZCB0byBzcXVlZXplIHRoZSBJTlBVVCBpbiAqL1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uZGpfaWU3IC5kaWppdElucHV0Q29udGFpbmVyIHtcblx0ZmxvYXQ6IGxlZnQgIWltcG9ydGFudDsgLyogbmVlZGVkIGJ5IElFIHRvIHNxdWVlemUgdGhlIElOUFVUIGluICovXG5cdGNsZWFyOiBsZWZ0O1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgLyogdG8gZml4IHdyb25nIHRleHQgYWxpZ25tZW50IGluIHRleHRkaXI9cnRsIHRleHQgYm94ICovXG59XG5cbi5kal9pZSAuZGlqaXRTZWxlY3QgaW5wdXQsXG4uZGpfaWUgaW5wdXQuZGlqaXRUZXh0Qm94LFxuLmRqX2llIC5kaWppdFRleHRCb3ggaW5wdXQge1xuXHRmb250LXNpemU6IDEwMCU7XG59XG4uZGlqaXRTZWxlY3QgLmRpaml0QnV0dG9uVGV4dCB7XG5cdGZsb2F0OiBsZWZ0O1xuXHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuVEFCTEUuZGlqaXRTZWxlY3Qge1xuXHRwYWRkaW5nOiAwICFpbXBvcnRhbnQ7IC8qIG1lc3NlcyB1cCBib3JkZXIgYWxpZ25tZW50ICovXG5cdGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7IC8qIHNvIGpzZmlkZGxlIHdvcmtzIHdpdGggTm9ybWFsaXplZCBDU1MgY2hlY2tlZCAqL1xufVxuLmRpaml0VGV4dEJveCAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyLFxuLmRpaml0VGV4dEJveCAuZGlqaXRBcnJvd0J1dHRvbkNvbnRhaW5lcixcbi5kaWppdFZhbGlkYXRpb25UZXh0Qm94IC5kaWppdFZhbGlkYXRpb25Db250YWluZXIge1xuXHRmbG9hdDogcmlnaHQ7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5kaWppdFNlbGVjdCBpbnB1dC5kaWppdElucHV0RmllbGQsXG4uZGlqaXRUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRGaWVsZCB7XG5cdC8qIG92ZXJyaWRlIHVucmVhc29uYWJsZSB1c2VyIHN0eWxpbmcgb2YgYnV0dG9ucyBhbmQgaWNvbnMgKi9cblx0cGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbn1cbi5kaWppdFZhbGlkYXRpb25UZXh0Qm94IC5kaWppdFZhbGlkYXRpb25Db250YWluZXIge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uZGlqaXRUZWVueSB7XG5cdGZvbnQtc2l6ZToxcHg7XG5cdGxpbmUtaGVpZ2h0OjFweDtcbn1cblxuLmRpaml0T2ZmU2NyZWVuIHsgLyogdGhlc2UgY2xhc3MgYXR0cmlidXRlcyBzaG91bGQgc3VwZXJzZWRlIGFueSBpbmxpbmUgcG9zaXRpb25pbmcgc3R5bGUgKi9cblx0cG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG5cdGxlZnQ6IC0xMDAwMHB4ICFpbXBvcnRhbnQ7XG5cdHRvcDogLTEwMDAwcHggIWltcG9ydGFudDtcbn1cblxuLypcbiAqIFBvcHVwIGl0ZW1zIGhhdmUgYSB3cmFwcGVyIGRpdiAoZGlqaXRQb3B1cClcbiAqIHdpdGggdGhlIHJlYWwgcG9wdXAgaW5zaWRlLCBhbmQgbWF5YmUgYW4gaWZyYW1lIHRvb1xuICovXG4uZGlqaXRQb3B1cCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdG1hcmdpbjogMDtcblx0Ym9yZGVyOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHQtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG5cbi5kaWppdFBvc2l0aW9uT25seSB7XG5cdC8qIE51bGwgb3V0IGFsbCBwb3NpdGlvbi1yZWxhdGVkIHByb3BlcnRpZXMgKi9cblx0cGFkZGluZzogMCAhaW1wb3J0YW50O1xuXHRib3JkZXI6IDAgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcblx0d2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLmRpaml0Tm9uUG9zaXRpb25Pbmx5IHtcblx0LyogTnVsbCBwb3NpdGlvbi1yZWxhdGVkIHByb3BlcnRpZXMgKi9cblx0ZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcblx0cG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuXHRtYXJnaW46IDAgMCAwIDAgIWltcG9ydGFudDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50O1xufVxuXG4uZGlqaXRCYWNrZ3JvdW5kSWZyYW1lIHtcblx0LyogaWZyYW1lIHVzZWQgdG8gcHJldmVudCBwcm9ibGVtcyB3aXRoIFBERiBvciBvdGhlciBhcHBsZXRzIG92ZXJsYXlpbmcgbWVudXMgZXRjICovXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogMDtcblx0dG9wOiAwO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHR6LWluZGV4OiAtMTtcblx0Ym9yZGVyOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHRtYXJnaW46IDA7XG59XG5cbi5kaWppdERpc3BsYXlOb25lIHtcblx0LyogaGlkZSBzb21ldGhpbmcuICBVc2UgdGhpcyBhcyBhIGNsYXNzIHJhdGhlciB0aGFuIGVsZW1lbnQuc3R5bGUgc28gYW5vdGhlciBjbGFzcyBjYW4gb3ZlcnJpZGUgKi9cblx0ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdENvbnRhaW5lciB7XG5cdC8qIGZvciBhbGwgbGF5b3V0IGNvbnRhaW5lcnMgKi9cblx0b3ZlcmZsb3c6IGhpZGRlbjtcdC8qIG5lZWQgb24gSUUgc28gc29tZXRoaW5nIGNhbiBiZSByZWR1Y2VkIGluIHNpemUsIGFuZCBzbyBzY3JvbGxiYXJzIGFyZW4ndCB0ZW1wb3JhcmlseSBkaXNwbGF5ZWQgd2hlbiByZXNpemluZyAqL1xufVxuXG4vKioqKlxuXHRcdEExMVlcbiAqKioqL1xuLmRqX2ExMXkgLmRpaml0SWNvbixcbi5kal9hMTF5IGRpdi5kaWppdEFycm93QnV0dG9uSW5uZXIsIC8qIGlzIHRoaXMgb25seSBmb3IgU3Bpbm5lcj8gIGlmIHNvLCBpdCBzaG91bGQgYmUgZGVsZXRlZCAqL1xuLmRqX2ExMXkgc3Bhbi5kaWppdEFycm93QnV0dG9uSW5uZXIsXG4uZGpfYTExeSBpbWcuZGlqaXRBcnJvd0J1dHRvbklubmVyLFxuLmRqX2ExMXkgLmRpaml0Q2FsZW5kYXJJbmNyZW1lbnRDb250cm9sLFxuLmRqX2ExMXkgLmRpaml0VHJlZUV4cGFuZG8ge1xuXHQvKiBoaWRlIGljb24gbm9kZXMgaW4gaGlnaCBjb250cmFzdCBtb2RlOyB3aGVuIG5lY2Vzc2FyeSB0aGV5IHdpbGwgYmUgcmVwbGFjZWQgYnkgY2hhcmFjdGVyIGVxdWl2YWxlbnRzXG5cdCAqIGV4Y2VwdGlvbiBmb3IgaW5wdXQuZGlqaXRBcnJvd0J1dHRvbklubmVyLCBiZWNhdXNlIHRoZSBpY29uIGFuZCBjaGFyYWN0ZXIgYXJlIGNvbnRyb2xsZWQgYnkgdGhlIHNhbWUgbm9kZSAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuLmRpaml0U3Bpbm5lciBkaXYuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0ZGlzcGxheTogYmxvY2s7IC8qIG92ZXJyaWRlIHByZXZpb3VzIHJ1bGUgKi9cbn1cblxuLmRqX2ExMXkgLmRpaml0QTExeVNpZGVBcnJvdyB7XG5cdGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyAvKiBkaXNwbGF5IHRleHQgaW5zdGVhZCAqL1xuXHRjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8qXG4gKiBTaW5jZSB3ZSBjYW4ndCB1c2Ugc2hhZGluZyBpbiBhMTF5IG1vZGUsIGFuZCBzaW5jZSB0aGUgdW5kZXJsaW5lIGluZGljYXRlcyB0b2RheSdzIGRhdGUsXG4gKiB1c2UgYSBib3JkZXIgdG8gc2hvdyB0aGUgc2VsZWN0ZWQgZGF0ZS5cbiAqIEF2b2lkIHNjcmVlbiBqaXR0ZXIgd2hlbiBzd2l0Y2hpbmcgc2VsZWN0ZWQgZGF0ZSBieSBjb21wZW5zYXRpbmcgZm9yIHRoZSBzZWxlY3RlZCBub2RlJ3NcbiAqIGJvcmRlciB3L3BhZGRpbmcgb24gb3RoZXIgbm9kZXMuXG4gKi9cbi5kal9hMTF5IC5kaWppdENhbGVuZGFyRGF0ZUxhYmVsIHtcblx0cGFkZGluZzogMXB4O1xuXHRib3JkZXI6IDBweCAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0Q2FsZW5kYXJTZWxlY3RlZERhdGUgLmRpaml0Q2FsZW5kYXJEYXRlTGFiZWwge1xuXHRib3JkZXItc3R5bGU6IHNvbGlkICFpbXBvcnRhbnQ7XG5cdGJvcmRlci13aWR0aDogMXB4ICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmc6IDA7XG59XG4uZGpfYTExeSAuZGlqaXRDYWxlbmRhckRhdGVUZW1wbGF0ZSB7XG5cdHBhZGRpbmctYm90dG9tOiAwLjFlbSAhaW1wb3J0YW50O1x0Lyogb3RoZXJ3aXNlIGJvdHRvbSBib3JkZXIgZG9lc24ndCBhcHBlYXIgb24gSUUgKi9cblx0Ym9yZGVyOiAwcHggIWltcG9ydGFudDtcbn1cbi5kal9hMTF5IC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXI6IGJsYWNrIG91dHNldCBtZWRpdW0gIWltcG9ydGFudDtcblxuXHQvKiBJbiBjbGFybywgaG92ZXJpbmcgYSB0b29sYmFyIGJ1dHRvbiByZWR1Y2VzIHBhZGRpbmcgYW5kIGFkZHMgYSBib3JkZXIuXG5cdCAqIE5vdCBuZWVkZWQgaW4gYTExeSBtb2RlIHNpbmNlIFRvb2xiYXIgYnV0dG9ucyBhbHdheXMgaGF2ZSBhIGJvcmRlci5cblx0ICovXG5cdHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbn1cbi5kal9hMTF5IC5kaWppdEFycm93QnV0dG9uIHtcblx0cGFkZGluZzogMCAhaW1wb3J0YW50O1xufVxuXG4uZGpfYTExeSAuZGlqaXRCdXR0b25Db250ZW50cyB7XG5cdG1hcmdpbjogMC4xNWVtOyAvKiBNYXJnaW4gbmVlZGVkIHRvIG1ha2UgZm9jdXMgb3V0bGluZSB2aXNpYmxlICovXG59XG5cbi5kal9hMTF5IC5kaWppdFRleHRCb3hSZWFkT25seSAuZGlqaXRJbnB1dEZpZWxkLFxuLmRqX2ExMXkgLmRpaml0VGV4dEJveFJlYWRPbmx5IC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXItc3R5bGU6IG91dHNldCFpbXBvcnRhbnQ7XG5cdGJvcmRlci13aWR0aDogbWVkaXVtIWltcG9ydGFudDtcblx0Ym9yZGVyLWNvbG9yOiAjOTk5ICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiM5OTkgIWltcG9ydGFudDtcbn1cblxuLyogYnV0dG9uIGlubmVyIGNvbnRlbnRzIC0gbGFiZWxzLCBpY29ucyBldGMuICovXG4uZGlqaXRCdXR0b25Ob2RlICoge1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmRpaml0U2VsZWN0IC5kaWppdEFycm93QnV0dG9uSW5uZXIsXG4uZGlqaXRCdXR0b25Ob2RlIC5kaWppdEFycm93QnV0dG9uSW5uZXIge1xuXHQvKiB0aGUgYXJyb3cgaWNvbiBub2RlICovXG5cdGJhY2tncm91bmQ6IG5vLXJlcGVhdCBjZW50ZXI7XG5cdHdpZHRoOiAxMnB4O1xuXHRoZWlnaHQ6IDEycHg7XG5cdGRpcmVjdGlvbjogbHRyOyAvKiBuZWVkZWQgYnkgSUUvUlRMICovXG59XG5cbi8qKioqXG5cdDMtZWxlbWVudCBib3JkZXJzOiAgKCBkaWppdExlZnQgKyBkaWppdFN0cmV0Y2ggKyBkaWppdFJpZ2h0IClcblx0VGhlc2Ugd2VyZSBhZGRlZCBmb3Igcm91bmRlZCBjb3JuZXJzIG9uIGRpaml0LmZvcm0uKkJ1dHRvbiBidXQgbmV2ZXIgYWN0dWFsbHkgdXNlZC5cbiAqKioqL1xuXG4uZGlqaXRMZWZ0IHtcblx0LyogTGVmdCBwYXJ0IG9mIGEgMy1lbGVtZW50IGJvcmRlciAqL1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgdG9wO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XG59XG5cbi5kaWppdFN0cmV0Y2gge1xuXHQvKiBNaWRkbGUgKHN0cmV0Y2h5KSBwYXJ0IG9mIGEgMy1lbGVtZW50IGJvcmRlciAqL1xuXHR3aGl0ZS1zcGFjZTpub3dyYXA7XHRcdFx0LyogTU9XOiBtb3ZlIHNvbWV3aGVyZSBlbHNlICovXG5cdGJhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14O1xufVxuXG4uZGlqaXRSaWdodCB7XG5cdC8qIFJpZ2h0IHBhcnQgb2YgYSAzLWVsZW1lbnQgYm9yZGVyICovXG5cdCNkaXNwbGF5OmlubGluZTtcdFx0XHRcdC8qIElFNyBzaXplcyB0byBvdXRlciBzaXplIHcvbyB0aGlzICovXG5cdGJhY2tncm91bmQtcG9zaXRpb246cmlnaHQgdG9wO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XG59XG5cbi8qIEJ1dHRvbnMgKi9cbi5kal9nZWNrbyAuZGpfYTExeSAuZGlqaXRCdXR0b25EaXNhYmxlZCAuZGlqaXRCdXR0b25Ob2RlIHtcblx0b3BhY2l0eTogMC41O1xufVxuXG4uZGlqaXRUb2dnbGVCdXR0b24sXG4uZGlqaXRCdXR0b24sXG4uZGlqaXREcm9wRG93bkJ1dHRvbixcbi5kaWppdENvbWJvQnV0dG9uIHtcblx0Lyogb3V0c2lkZSBvZiBidXR0b24gKi9cblx0bWFyZ2luOiAwLjJlbTtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHRkaXNwbGF5OiBibG9jaztcdFx0LyogdG8gbWFrZSBmb2N1cyBib3JkZXIgcmVjdGFuZ3VsYXIgKi9cbn1cbnRkLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHRkaXNwbGF5OiB0YWJsZS1jZWxsO1x0LyogYnV0IGRvbid0IGFmZmVjdCBTZWxlY3QsIENvbWJvQnV0dG9uICovXG59XG5cbi5kaWppdEJ1dHRvbk5vZGUgaW1nIHtcblx0LyogbWFrZSB0ZXh0IGFuZCBpbWFnZXMgbGluZSB1cCBjbGVhbmx5ICovXG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0LyptYXJnaW4tYm90dG9tOi4yZW07Ki9cbn1cblxuLmRpaml0VG9vbGJhciAuZGlqaXRDb21ib0J1dHRvbiB7XG5cdC8qIGJlY2F1c2UgVG9vbGJhciBvbmx5IGRyYXdzIGEgYm9yZGVyIGFyb3VuZCB0aGUgaG92ZXJlZCB0aGluZyAqL1xuXHRib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xufVxuXG4uZGlqaXRUb29sYmFyIC5kaWppdFRvZ2dsZUJ1dHRvbixcbi5kaWppdFRvb2xiYXIgLmRpaml0QnV0dG9uLFxuLmRpaml0VG9vbGJhciAuZGlqaXREcm9wRG93bkJ1dHRvbixcbi5kaWppdFRvb2xiYXIgLmRpaml0Q29tYm9CdXR0b24ge1xuXHRtYXJnaW46IDA7XG59XG5cbi5kaWppdFRvb2xiYXIgLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHQvKiBqdXN0IGJlY2F1c2UgaXQgdXNlZCB0byBiZSB0aGlzIHdheSAqL1xuXHRwYWRkaW5nOiAxcHggMnB4O1xufVxuXG5cbi5kal93ZWJraXQgLmRpaml0VG9vbGJhciAuZGlqaXREcm9wRG93bkJ1dHRvbiB7XG5cdHBhZGRpbmctbGVmdDogMC4zZW07XG59XG4uZGpfZ2Vja28gLmRpaml0VG9vbGJhciAuZGlqaXRCdXR0b25Ob2RlOjotbW96LWZvY3VzLWlubmVyIHtcblx0cGFkZGluZzowO1xufVxuXG4uZGlqaXRTZWxlY3Qge1xuXHRib3JkZXI6MXB4IHNvbGlkIGdyYXk7XG59XG4uZGlqaXRCdXR0b25Ob2RlIHtcblx0LyogTm9kZSB0aGF0IGlzIGFjdGluZyBhcyBhIGJ1dHRvbiAtLSBtYXkgb3IgbWF5IG5vdCBiZSBhIEJVVFRPTiBlbGVtZW50ICovXG5cdGJvcmRlcjoxcHggc29saWQgZ3JheTtcblx0bWFyZ2luOjA7XG5cdGxpbmUtaGVpZ2h0Om5vcm1hbDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0I3ZlcnRpY2FsLWFsaWduOiBhdXRvO1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5kal93ZWJraXQgLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIHtcblx0LyogYXBwYXJlbnQgV2ViS2l0IGJ1ZyB3aGVyZSBtZXNzaW5nIHdpdGggdGhlIGZvbnQgY291cGxlZCB3aXRoIGxpbmUtaGVpZ2h0Om5vcm1hbCBYIDIgKGRpaml0UmVzZXQgJiBkaWppdEJ1dHRvbk5vZGUpXG5cdGNhbiBiZSBkaWZmZXJlbnQgdGhhbiBqdXN0IGEgc2luZ2xlIGxpbmUtaGVpZ2h0Om5vcm1hbCwgdmlzaWJsZSBpbiBJbmxpbmVFZGl0Qm94L1NwaW5uZXIgKi9cblx0bGluZS1oZWlnaHQ6aW5oZXJpdDtcbn1cbi5kaWppdFRleHRCb3ggLmRpaml0QnV0dG9uTm9kZSB7XG5cdGJvcmRlci13aWR0aDogMDtcbn1cblxuLmRpaml0U2VsZWN0LFxuLmRpaml0U2VsZWN0ICosXG4uZGlqaXRCdXR0b25Ob2RlLFxuLmRpaml0QnV0dG9uTm9kZSAqIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uZGpfaWUgLmRpaml0QnV0dG9uTm9kZSB7XG5cdC8qIGVuc3VyZSBoYXNMYXlvdXQgKi9cblx0em9vbTogMTtcbn1cblxuLmRqX2llIC5kaWppdEJ1dHRvbk5vZGUgYnV0dG9uIHtcblx0Lypcblx0XHRkaXNndXN0aW5nIGhhY2sgdG8gZ2V0IHJpZCBvZiBzcHVyaW91cyBwYWRkaW5nIGFyb3VuZCBidXR0b24gZWxlbWVudHNcblx0XHRvbiBJRS4gTVNJRSBpcyB0cnVseSB0aGUgd2ViJ3MgYm9hdCBhbmNob3IuXG5cdCovXG5cdG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG5kaXYuZGlqaXRBcnJvd0J1dHRvbiB7XG5cdGZsb2F0OiByaWdodDtcbn1cblxuLyoqKioqKlxuXHRUZXh0Qm94IHJlbGF0ZWQuXG5cdEV2ZXJ5dGhpbmcgdGhhdCBoYXMgYW4gPGlucHV0PlxuKioqKioqKi9cblxuLmRpaml0VGV4dEJveCB7XG5cdGJvcmRlcjogc29saWQgYmxhY2sgMXB4O1xuXHQjb3ZlcmZsb3c6IGhpZGRlbjsgLyogIzYwMjcsICM2MDY3ICovXG5cdHdpZHRoOiAxNWVtO1x0LyogbmVlZCB0byBzZXQgZGVmYXVsdCBzaXplIG9uIG91dGVyIG5vZGUgc2luY2UgaW5uZXIgbm9kZXMgc2F5IDxpbnB1dCBzdHlsZT1cIndpZHRoOjEwMCVcIj4gYW5kIDx0ZCB3aWR0aD0xMDAlPi4gIHVzZXIgY2FuIG92ZXJyaWRlICovXG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5kaWppdFRleHRCb3hSZWFkT25seSxcbi5kaWppdFRleHRCb3hEaXNhYmxlZCB7XG5cdGNvbG9yOiBncmF5O1xufVxuLmRqX3NhZmFyaSAuZGlqaXRUZXh0Qm94RGlzYWJsZWQgaW5wdXQge1xuXHRjb2xvcjogI0IwQjBCMDsgLyogYmVjYXVzZSBTYWZhcmkgbGlnaHRlbnMgZGlzYWJsZWQgaW5wdXQvdGV4dGFyZWEgbm8gbWF0dGVyIHdoYXQgY29sb3IgeW91IHNwZWNpZnkgKi9cbn1cbi5kal9zYWZhcmkgdGV4dGFyZWEuZGlqaXRUZXh0QXJlYURpc2FibGVkIHtcblx0Y29sb3I6ICMzMzM7IC8qIGJlY2F1c2UgU2FmYXJpIGxpZ2h0ZW5zIGRpc2FibGVkIGlucHV0L3RleHRhcmVhIG5vIG1hdHRlciB3aGF0IGNvbG9yIHlvdSBzcGVjaWZ5ICovXG59XG4uZGpfZ2Vja28gLmRpaml0VGV4dEJveFJlYWRPbmx5IGlucHV0LmRpaml0SW5wdXRGaWVsZCwgLyogZGlzYWJsZSBhcnJvdyBhbmQgdmFsaWRhdGlvbiBwcmVzZW50YXRpb24gaW5wdXRzIGJ1dCBhbGxvdyByZWFsIGlucHV0IGZvciB0ZXh0IHNlbGVjdGlvbiAqL1xuLmRqX2dlY2tvIC5kaWppdFRleHRCb3hEaXNhYmxlZCBpbnB1dCB7XG5cdC1tb3otdXNlci1pbnB1dDogbm9uZTsgLyogcHJldmVudCBmb2N1cyBvZiBkaXNhYmxlZCB0ZXh0Ym94IGJ1dHRvbnMgKi9cbn1cblxuLmRpaml0UGxhY2VIb2xkZXIge1xuXHQvKiBoaW50IHRleHQgdGhhdCBhcHBlYXJzIGluIGEgdGV4dGJveCB1bnRpbCB1c2VyIHN0YXJ0cyB0eXBpbmcgKi9cblx0Y29sb3I6ICNBQUFBQUE7XG5cdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdCNmaWx0ZXI6IFwiXCI7IC8qIG1ha2UgdGhpcyBzaG93IHVwIGluIElFNiBhZnRlciB0aGUgcmVuZGVyaW5nIG9mIHRoZSB3aWRnZXQgKi9cblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7ICAgLyogc28gY3V0L3Bhc3RlIGNvbnRleHQgbWVudSBzaG93cyB1cCB3aGVuIHJpZ2h0IGNsaWNraW5nICovXG59XG5cbi5kaWppdFRpbWVUZXh0Qm94IHtcblx0d2lkdGg6IDhlbTtcbn1cblxuLyogcnVsZXMgZm9yIHdlYmtpdCB0byBkZWFsIHdpdGggZnV6enkgYmx1ZSBmb2N1cyBib3JkZXIgKi9cbi5kaWppdFRleHRCb3ggaW5wdXQ6Zm9jdXMge1xuXHRvdXRsaW5lOiBub25lO1x0LyogYmx1ZSBmdXp6eSBsaW5lIGxvb2tzIHdyb25nIG9uIGNvbWJvYm94IG9yIHNvbWV0aGluZyB3L3ZhbGlkYXRpb24gaWNvbiBzaG93aW5nICovXG59XG4uZGlqaXRUZXh0Qm94Rm9jdXNlZCB7XG5cdG91dGxpbmU6IDVweCAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XG59XG5cbi5kaWppdFNlbGVjdCBpbnB1dCxcbi5kaWppdFRleHRCb3ggaW5wdXQge1xuXHRmbG9hdDogbGVmdDsgLyogbmVlZGVkIGJ5IElFIHRvIHJlbW92ZSBzZWNyZXQgbWFyZ2luICovXG59XG4uZGpfaWU2IGlucHV0LmRpaml0VGV4dEJveCxcbi5kal9pZTYgLmRpaml0VGV4dEJveCBpbnB1dCB7XG5cdGZsb2F0OiBub25lO1xufVxuLmRpaml0SW5wdXRJbm5lciB7XG5cdC8qIGZvciB3aGVuIGFuIDxpbnB1dD4gaXMgZW1iZWRkZWQgaW5zaWRlIGFuIGlubGluZS1ibG9jayA8ZGl2PiB3aXRoIGEgc2l6ZSBhbmQgYm9yZGVyICovXG5cdGJvcmRlcjowICFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblx0d2lkdGg6MTAwJSAhaW1wb3J0YW50O1xuXHQvKiBJRSBkaXNsaWtlcyBob3Jpem9udGFsIHR3ZWFraW5nIGNvbWJpbmVkIHdpdGggd2lkdGg6MTAwJSBzbyBwdW5pc2ggZXZlcnlvbmUgZm9yIGNvbnNpc3RlbmN5ICovXG5cdHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0VGV4dEJveCBpbnB1dCB7XG5cdG1hcmdpbjogMCAhaW1wb3J0YW50O1xufVxuLmRpaml0VmFsaWRhdGlvblRleHRCb3hFcnJvciBpbnB1dC5kaWppdFZhbGlkYXRpb25Jbm5lcixcbi5kaWppdFNlbGVjdCBpbnB1dCxcbi5kaWppdFRleHRCb3ggaW5wdXQuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0LyogPGlucHV0PiB1c2VkIHRvIGRpc3BsYXkgYXJyb3cgaWNvbi92YWxpZGF0aW9uIGljb24sIG9yIGluIGFycm93IGNoYXJhY3RlciBpbiBoaWdoIGNvbnRyYXN0IG1vZGUuXG5cdCAqIFRoZSBjc3MgYmVsb3cgaXMgYSB0cmljayB0byBoaWRlIHRoZSBjaGFyYWN0ZXIgaW4gbm9uLWhpZ2gtY29udHJhc3QgbW9kZVxuXHQgKi9cblx0dGV4dC1pbmRlbnQ6IC0yZW0gIWltcG9ydGFudDtcblx0ZGlyZWN0aW9uOiBsdHIgIWltcG9ydGFudDtcblx0dGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcblx0I3RleHQtaW5kZW50OiAwICFpbXBvcnRhbnQ7XG5cdCNsZXR0ZXItc3BhY2luZzogLTVlbSAhaW1wb3J0YW50O1xuXHQjdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDtcbn1cbi5kal9pZSAuZGlqaXRTZWxlY3QgaW5wdXQsXG4uZGpfaWUgLmRpaml0VGV4dEJveCBpbnB1dCxcbi5kal9pZSBpbnB1dC5kaWppdFRleHRCb3gge1xuXHRvdmVyZmxvdy15OiB2aXNpYmxlOyAvKiBpbnB1dHMgbmVlZCBoZWxwIGV4cGFuZGluZyB3aGVuIHBhZGRpbmcgaXMgYWRkZWQgb3IgbGluZS1oZWlnaHQgaXMgYWRqdXN0ZWQgKi9cblx0bGluZS1oZWlnaHQ6IG5vcm1hbDsgLyogc3RyaWN0IG1vZGUgKi9cbn1cbi5kaWppdFNlbGVjdCAuZGlqaXRTZWxlY3RMYWJlbCBzcGFuIHtcblx0bGluZS1oZWlnaHQ6IDEwMCU7XG59XG4uZGpfaWUgLmRpaml0U2VsZWN0IC5kaWppdFNlbGVjdExhYmVsIHtcblx0bGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cbi5kal9pZTYgLmRpaml0U2VsZWN0IC5kaWppdFNlbGVjdExhYmVsLFxuLmRqX2llNyAuZGlqaXRTZWxlY3QgLmRpaml0U2VsZWN0TGFiZWwsXG4uZGpfaWU4IC5kaWppdFNlbGVjdCAuZGlqaXRTZWxlY3RMYWJlbCxcbi5kal9pZXF1aXJrcyAuZGlqaXRTZWxlY3QgLmRpaml0U2VsZWN0TGFiZWwsXG4uZGlqaXRTZWxlY3QgdGQsXG4uZGpfaWU2IC5kaWppdFNlbGVjdCBpbnB1dCxcbi5kal9pZXF1aXJrcyAuZGlqaXRTZWxlY3QgaW5wdXQsXG4uZGpfaWU2IC5kaWppdFNlbGVjdCAuZGlqaXRWYWxpZGF0aW9uQ29udGFpbmVyLFxuLmRqX2llNiAuZGlqaXRUZXh0Qm94IGlucHV0LFxuLmRqX2llNiBpbnB1dC5kaWppdFRleHRCb3gsXG4uZGpfaWVxdWlya3MgLmRpaml0VGV4dEJveCBpbnB1dC5kaWppdFZhbGlkYXRpb25Jbm5lcixcbi5kal9pZXF1aXJrcyAuZGlqaXRUZXh0Qm94IGlucHV0LmRpaml0QXJyb3dCdXR0b25Jbm5lcixcbi5kal9pZXF1aXJrcyAuZGlqaXRUZXh0Qm94IGlucHV0LmRpaml0U3Bpbm5lckJ1dHRvbklubmVyLFxuLmRqX2llcXVpcmtzIC5kaWppdFRleHRCb3ggaW5wdXQuZGlqaXRJbnB1dElubmVyLFxuLmRqX2llcXVpcmtzIGlucHV0LmRpaml0VGV4dEJveCB7XG5cdGxpbmUtaGVpZ2h0OiAxMDAlOyAvKiBJRTcgcHJvYmxlbSB3aGVyZSB0aGUgaWNvbiBpcyB2ZXJ0aWNhbGx5IHdheSB0b28gbG93IHcvbyB0aGlzICovXG59XG4uZGpfYTExeSBpbnB1dC5kaWppdFZhbGlkYXRpb25Jbm5lcixcbi5kal9hMTF5IGlucHV0LmRpaml0QXJyb3dCdXR0b25Jbm5lciB7XG5cdC8qIChpbiBoaWdoIGNvbnRyYXN0IG1vZGUpIHJldmVydCBydWxlcyBmcm9tIGFib3ZlIHNvIGNoYXJhY3RlciBkaXNwbGF5cyAqL1xuXHR0ZXh0LWluZGVudDogMCAhaW1wb3J0YW50O1xuXHR3aWR0aDogMWVtICFpbXBvcnRhbnQ7XG5cdCN0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiBibGFjayAhaW1wb3J0YW50O1xufVxuLmRpaml0VmFsaWRhdGlvblRleHRCb3hFcnJvciAuZGlqaXRWYWxpZGF0aW9uQ29udGFpbmVyIHtcblx0ZGlzcGxheTogaW5saW5lO1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qIENvbWJvQm94ICYgU3Bpbm5lciAqL1xuXG4uZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIsXG4uZGlqaXRDb21ib0JveCAuZGlqaXRBcnJvd0J1dHRvbkNvbnRhaW5lciB7XG5cdC8qIGRpdmlkaW5nIGxpbmUgYmV0d2VlbiBpbnB1dCBhcmVhIGFuZCB1cC9kb3duIGJ1dHRvbihzKSBmb3IgQ29tYm9Cb3ggYW5kIFNwaW5uZXIgKi9cblx0Ym9yZGVyLXdpZHRoOiAwIDAgMCAxcHggIWltcG9ydGFudDsgLyogIWltcG9ydGFudCBuZWVkZWQgZHVlIHRvIHdheXdhcmQgXCIudGhlbWUgLmRpaml0QnV0dG9uTm9kZVwiIHJ1bGVzICovXG59XG4uZGpfYTExeSAuZGlqaXRTZWxlY3QgLmRpaml0QXJyb3dCdXR0b25Db250YWluZXIsXG4uZGlqaXRUb29sYmFyIC5kaWppdENvbWJvQm94IC5kaWppdEFycm93QnV0dG9uQ29udGFpbmVyIHtcblx0Lyogb3ZlcnJpZGVzIGFib3ZlIHJ1bGUgcGx1cyBtaXJyb3ItaW1hZ2UgcnVsZSBpbiBkaWppdF9ydGwuY3NzIHRvIGhhdmUgbm8gZGl2aWRlciB3aGVuIENvbWJvQm94IGluIFRvb2xiYXIgKi9cblx0Ym9yZGVyLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdENvbWJvQm94TWVudSB7XG5cdC8qIERyb3AgZG93biBtZW51IGlzIGltcGxlbWVudGVkIGFzIDx1bD4gPGxpLz4gPGxpLz4gLi4uIGJ1dCB3ZSBkb24ndCB3YW50IGNpcmNsZXMgYmVmb3JlIGVhY2ggaXRlbSAqL1xuXHRsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0QnV0dG9uTm9kZSB7XG5cdC8qIGRpdmlkaW5nIGxpbmUgYmV0d2VlbiBpbnB1dCBhcmVhIGFuZCB1cC9kb3duIGJ1dHRvbihzKSBmb3IgQ29tYm9Cb3ggYW5kIFNwaW5uZXIgKi9cblx0Ym9yZGVyLXdpZHRoOiAwO1xufVxuLmRqX2llIC5kal9hMTF5IC5kaWppdFNwaW5uZXIgLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciAuZGlqaXRCdXR0b25Ob2RlIHtcblx0Y2xlYXI6IGJvdGg7IC8qIElFIHdvcmthcm91bmQgKi9cbn1cblxuLmRqX2llIC5kaWppdFRvb2xiYXIgLmRpaml0Q29tYm9Cb3gge1xuXHQvKiBtYWtlIGNvbWJvYm94IGJ1dHRvbnMgYWxpZ24gcHJvcGVybHkgd2l0aCBvdGhlciBidXR0b25zIGluIGEgdG9vbGJhciAqL1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4vKiBTcGlubmVyICovXG5cbi5kaWppdFRleHRCb3ggLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciB7XG5cdHdpZHRoOiAxZW07XG5cdHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uSW5uZXIge1xuXHR3aWR0aDoxZW07XG5cdHZpc2liaWxpdHk6aGlkZGVuICFpbXBvcnRhbnQ7IC8qIGp1c3QgYSBzaXppbmcgZWxlbWVudCAqL1xuXHRvdmVyZmxvdy14OmhpZGRlbjtcbn1cbi5kaWppdENvbWJvQm94IC5kaWppdEJ1dHRvbk5vZGUsXG4uZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXItd2lkdGg6IDA7XG59XG4uZGpfYTExeSAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXItd2lkdGg6IDBweCAhaW1wb3J0YW50O1xuXHRib3JkZXItc3R5bGU6IHNvbGlkICFpbXBvcnRhbnQ7XG59XG4uZGpfYTExeSAuZGlqaXRUZXh0Qm94IC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIsXG4uZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIsXG4uZGpfYTExeSAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIGlucHV0IHtcblx0d2lkdGg6IDFlbSAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0bWFyZ2luOiAwIGF1dG8gIWltcG9ydGFudDsgLyogc2hvdWxkIGF1dG8tY2VudGVyICovXG59XG4uZGpfaWUgLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHRwYWRkaW5nLWxlZnQ6IDAuM2VtICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctcmlnaHQ6IDAuM2VtICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1sZWZ0OiAwLjNlbSAhaW1wb3J0YW50O1xuXHRtYXJnaW4tcmlnaHQ6IDAuM2VtICFpbXBvcnRhbnQ7XG5cdHdpZHRoOiAxLjRlbSAhaW1wb3J0YW50O1xufVxuLmRqX2llNyAuZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIgLmRpaml0SW5wdXRGaWVsZCB7XG5cdHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50OyAvKiBtYW51YWxseSBjZW50ZXIgSU5QVVQ6IGNoYXJhY3RlciBpcyAuNWVtIGFuZCB0b3RhbCB3aWR0aCA9IDFlbSAqL1xuXHRwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG5cdHdpZHRoOiAxZW0gIWltcG9ydGFudDtcbn1cbi5kal9pZTYgLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHRtYXJnaW4tbGVmdDogMC4xZW0gIWltcG9ydGFudDtcblx0bWFyZ2luLXJpZ2h0OiAwLjFlbSAhaW1wb3J0YW50O1xuXHR3aWR0aDogMWVtICFpbXBvcnRhbnQ7XG59XG4uZGpfaWVxdWlya3MgLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHRtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuXHRtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcblx0d2lkdGg6IDJlbSAhaW1wb3J0YW50O1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEFycm93QnV0dG9uIHtcblx0Lyogbm90ZTogLmRpaml0SW5wdXRMYXlvdXRDb250YWluZXIgbWFrZXMgdGhpcyBydWxlIG92ZXJyaWRlIC5kaWppdEFycm93QnV0dG9uIHNldHRpbmdzXG5cdCAqIGZvciBkaWppdC5mb3JtLkJ1dHRvblxuXHQgKi9cblx0cGFkZGluZzogMDtcblx0cG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG5cdHJpZ2h0OiAwO1xuXHRmbG9hdDogbm9uZTtcblx0aGVpZ2h0OiA1MCU7XG5cdHdpZHRoOiAxMDAlO1xuXHRib3R0b206IGF1dG87XG5cdGxlZnQ6IDA7XG5cdHJpZ2h0OiBhdXRvO1xufVxuLmRqX2llcXVpcmtzIC5kaWppdFNwaW5uZXIgLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciAuZGlqaXRBcnJvd0J1dHRvbiB7XG5cdHdpZHRoOiBhdXRvO1xufVxuLmRqX2ExMXkgLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciAuZGlqaXRBcnJvd0J1dHRvbiB7XG5cdG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0RG93bkFycm93QnV0dG9uIHtcblx0dG9wOiA1MCU7XG5cdGJvcmRlci10b3Atd2lkdGg6IDFweCAhaW1wb3J0YW50O1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdFVwQXJyb3dCdXR0b24ge1xuXHQjYm90dG9tOiA1MCU7XHQvKiBvdGhlcndpc2UgKG9uIHNvbWUgbWFjaGluZXMpIHRvcCBhcnJvdyBpY29uIHRvbyBjbG9zZSB0byBzcGxpdHRlciBib3JkZXIgKElFNi83KSAqL1xuXHR0b3A6IDA7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIge1xuXHRtYXJnaW46IGF1dG87XG5cdG92ZXJmbG93LXg6IGhpZGRlbjtcblx0aGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG59XG4uZGpfaWVxdWlya3MgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0aGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIgLmRpaml0SW5wdXRGaWVsZCB7XG5cdC1tb3otdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuXHQtbW96LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciB0b3A7XG5cdC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuXHQtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciB0b3A7XG5cdC1vLXRyYW5zZm9ybTogc2NhbGUoMC41KTtcblx0LW8tdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIHRvcDtcblx0dHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuXHR0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDtcblx0cGFkZGluZy10b3A6IDA7XG5cdHBhZGRpbmctYm90dG9tOiAwO1xuXHRwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcblx0cGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuXHR3aWR0aDogMTAwJTtcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLmRqX2llIC5kaWppdFNwaW5uZXIgLmRpaml0QXJyb3dCdXR0b25Jbm5lciAuZGlqaXRJbnB1dEZpZWxkIHtcblx0em9vbTogNTAlOyAvKiBlbXVsYXRlIHRyYW5zZm9ybTogc2NhbGUoMC41KSAqL1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIge1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0QXJyb3dCdXR0b24ge1xuXHR3aWR0aDogMTAwJTtcbn1cbi5kal9pZXF1aXJrcyAuZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0QXJyb3dCdXR0b24ge1xuXHR3aWR0aDogMWVtOyAvKiBtYXRjaGVzIC5kal9hMTF5IC5kaWppdFRleHRCb3ggLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciBydWxlIC0gMTAwJSBpcyB0aGUgd2hvbGUgc2NyZWVuIHdpZHRoIGluIHF1aXJrcyAqL1xufVxuLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHR2ZXJ0aWNhbC1hbGlnbjp0b3A7XG5cdHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4uZGpfYTExeSAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIHtcblx0d2lkdGg6IDFlbTtcbn1cblxuLyoqKipcblx0XHRkaWppdC5mb3JtLkNoZWNrQm94XG4gXHQgJlxuICBcdFx0ZGlqaXQuZm9ybS5SYWRpb0J1dHRvblxuICoqKiovXG5cbi5kaWppdENoZWNrQm94LFxuLmRpaml0UmFkaW8sXG4uZGlqaXRDaGVja0JveElucHV0IHtcblx0cGFkZGluZzogMDtcblx0Ym9yZGVyOiAwO1xuXHR3aWR0aDogMTZweDtcblx0aGVpZ2h0OiAxNnB4O1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciBjZW50ZXI7XG5cdGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmRpaml0Q2hlY2tCb3ggaW5wdXQsXG4uZGlqaXRSYWRpbyBpbnB1dCB7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbi5kaWppdENoZWNrQm94SW5wdXQge1xuXHQvKiBwbGFjZSB0aGUgYWN0dWFsIGlucHV0IG9uIHRvcCwgYnV0IGludmlzaWJsZSAqL1xuXHRvcGFjaXR5OiAwO1xufVxuXG4uZGpfaWUgLmRpaml0Q2hlY2tCb3hJbnB1dCB7XG5cdGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTtcbn1cblxuLmRqX2ExMXkgLmRpaml0Q2hlY2tCb3gsXG4uZGpfYTExeSAuZGlqaXRSYWRpbyB7XG5cdC8qIGluIGExMXkgbW9kZSB3ZSBkaXNwbGF5IHRoZSBuYXRpdmUgY2hlY2tib3ggKG5vdCB0aGUgaWNvbiksIHNvIGRvbid0IHJlc3RyaWN0IHRoZSBzaXplICovXG5cdHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG5cdGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0Q2hlY2tCb3hJbnB1dCB7XG5cdG9wYWNpdHk6IDE7XG5cdGZpbHRlcjogbm9uZTtcblx0d2lkdGg6IGF1dG87XG5cdGhlaWdodDogYXV0bztcbn1cblxuLmRqX2ExMXkgLmRpaml0Rm9jdXNlZExhYmVsIHtcblx0LyogZm9yIGNoZWNrYm94ZXMgb3IgcmFkaW8gYnV0dG9ucyBpbiBoaWdoIGNvbnRyYXN0IG1vZGUsIHVzZSBib3JkZXIgcmF0aGVyIHRoYW4gb3V0bGluZSB0byBpbmRpY2F0ZSBmb2N1cyAob3V0bGluZSBkb2VzIG5vdCB3b3JrIGluIEZGKSovXG5cdGJvcmRlcjogMXB4IGRvdHRlZDtcblx0b3V0bGluZTogMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi8qKioqXG5cdFx0ZGlqaXQuUHJvZ3Jlc3NCYXJcbiAqKioqL1xuXG4uZGlqaXRQcm9ncmVzc0JhciB7XG4gICAgei1pbmRleDogMDsgLyogc28gei1pbmRleCBzZXR0aW5ncyBiZWxvdyBoYXZlIG5vIGVmZmVjdCBvdXRzaWRlIG9mIHRoZSBQcm9ncmVzc0JhciAqL1xufVxuLmRpaml0UHJvZ3Jlc3NCYXJFbXB0eSB7XG5cdC8qIG91dGVyIGNvbnRhaW5lciBhbmQgYmFja2dyb3VuZCBvZiB0aGUgYmFyIHRoYXQncyBub3QgZmluaXNoZWQgeWV0Ki9cblx0cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuO1xuXHRib3JkZXI6MXB4IHNvbGlkIGJsYWNrOyBcdC8qIGExMXk6IGJvcmRlciBuZWNlc3NhcnkgZm9yIGhpZ2gtY29udHJhc3QgbW9kZSAqL1xuXHR6LWluZGV4OjA7XHRcdFx0LyogZXN0YWJsaXNoIGEgc3RhY2tpbmcgY29udGV4dCBmb3IgdGhpcyBwcm9ncmVzcyBiYXIgKi9cbn1cblxuLmRpaml0UHJvZ3Jlc3NCYXJGdWxsIHtcblx0Lyogb3V0ZXIgY29udGFpbmVyIGZvciBiYWNrZ3JvdW5kIG9mIGJhciB0aGF0IGlzIGZpbmlzaGVkICovXG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHRvdmVyZmxvdzpoaWRkZW47XG5cdHotaW5kZXg6LTE7XG5cdHRvcDowO1xuXHR3aWR0aDoxMDAlO1xufVxuLmRqX2llNiAuZGlqaXRQcm9ncmVzc0JhckZ1bGwge1xuXHRoZWlnaHQ6MS42ZW07XG59XG5cbi5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIGlubmVyIGNvbnRhaW5lciBmb3IgZmluaXNoZWQgcG9ydGlvbiAqL1xuXHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0b3ZlcmZsb3c6aGlkZGVuO1xuXHR0b3A6MDtcblx0bGVmdDowO1xuXHRib3R0b206MDtcblx0cmlnaHQ6MDtcblx0bWFyZ2luOjA7XG5cdHBhZGRpbmc6MDtcblx0d2lkdGg6IDEwMCU7ICAgIC8qIG5lZWRlZCBmb3IgSUUvcXVpcmtzICovXG5cdGhlaWdodDphdXRvO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiNhYWE7XG5cdGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG59XG5cbi5kal9hMTF5IC5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIGExMXk6ICBUaGUgYm9yZGVyIHByb3ZpZGVzIHZpc2liaWxpdHkgaW4gaGlnaC1jb250cmFzdCBtb2RlICovXG5cdGJvcmRlci13aWR0aDoycHg7XG5cdGJvcmRlci1zdHlsZTpzb2xpZDtcblx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4uZGpfaWU2IC5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIHdpZHRoOmF1dG8gd29ya3MgaW4gSUU2IHdpdGggcG9zaXRpb246c3RhdGljIGJ1dCBub3QgcG9zaXRpb246YWJzb2x1dGUgKi9cblx0cG9zaXRpb246c3RhdGljO1xuXHQvKiBoZWlnaHQ6YXV0byBvciAxMDAlIGRvZXMgbm90IHdvcmsgaW4gSUU2ICovXG5cdGhlaWdodDoxLjZlbTtcbn1cblxuLmRpaml0UHJvZ3Jlc3NCYXJJbmRldGVybWluYXRlIC5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIGFuaW1hdGVkIGdpZiBmb3IgJ2luZGV0ZXJtaW5hdGUnIG1vZGUgKi9cbn1cblxuLmRpaml0UHJvZ3Jlc3NCYXJJbmRldGVybWluYXRlSGlnaENvbnRyYXN0SW1hZ2Uge1xuXHRkaXNwbGF5Om5vbmU7XG59XG5cbi5kal9hMTF5IC5kaWppdFByb2dyZXNzQmFySW5kZXRlcm1pbmF0ZSAuZGlqaXRQcm9ncmVzc0JhckluZGV0ZXJtaW5hdGVIaWdoQ29udHJhc3RJbWFnZSB7XG5cdGRpc3BsYXk6YmxvY2s7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHR0b3A6MDtcblx0Ym90dG9tOjA7XG5cdG1hcmdpbjowO1xuXHRwYWRkaW5nOjA7XG5cdHdpZHRoOjEwMCU7XG5cdGhlaWdodDphdXRvO1xufVxuXG4uZGlqaXRQcm9ncmVzc0JhckxhYmVsIHtcblx0ZGlzcGxheTpibG9jaztcblx0cG9zaXRpb246c3RhdGljO1xuXHR3aWR0aDoxMDAlO1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4vKioqKlxuXHRcdGRpaml0LlRvb2x0aXBcbiAqKioqL1xuXG4uZGlqaXRUb29sdGlwIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiAyMDAwO1xuXHRkaXNwbGF5OiBibG9jaztcblx0LyogbWFrZSB2aXNpYmxlIGJ1dCBvZmYgc2NyZWVuICovXG5cdGxlZnQ6IDA7XG5cdHRvcDogLTEwMDAwcHg7XG5cdG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4uZGlqaXRUb29sdGlwQ29udGFpbmVyIHtcblx0Ym9yZGVyOiBzb2xpZCBibGFjayAycHg7XG5cdGJhY2tncm91bmQ6ICNiOGI1YjU7XG5cdGNvbG9yOiBibGFjaztcblx0Zm9udC1zaXplOiBzbWFsbDtcbn1cblxuLmRpaml0VG9vbHRpcEZvY3VzTm9kZSB7XG5cdHBhZGRpbmc6IDJweCAycHggMnB4IDJweDtcbn1cblxuLmRpaml0VG9vbHRpcENvbm5lY3RvciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5kal9hMTF5IC5kaWppdFRvb2x0aXBDb25uZWN0b3Ige1xuXHRkaXNwbGF5OiBub25lO1x0Lyogd29uJ3Qgc2hvdyBiL2MgaXQncyBiYWNrZ3JvdW5kLWltYWdlOyBoaWRlIHRvIGF2b2lkIGJvcmRlciBnYXAgKi9cbn1cblxuLmRpaml0VG9vbHRpcERhdGEge1xuXHRkaXNwbGF5Om5vbmU7XG59XG5cbi8qIExheW91dCB3aWRnZXRzLiBUaGlzIGlzIGVzc2VudGlhbCBDU1MgdG8gbWFrZSBsYXlvdXQgd29yayAoaXQgaXNuJ3QgXCJzdHlsaW5nXCIgQ1NTKVxuICAgbWFrZSBzdXJlIHRoYXQgdGhlIHBvc2l0aW9uOmFic29sdXRlIGluIGRpaml0QWxpZ24qIG92ZXJyaWRlcyBvdGhlciBjbGFzc2VzICovXG5cbi5kaWppdExheW91dENvbnRhaW5lciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5kaWppdEFsaWduVG9wLFxuLmRpaml0QWxpZ25Cb3R0b20sXG4uZGlqaXRBbGlnbkxlZnQsXG4uZGlqaXRBbGlnblJpZ2h0IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5ib2R5IC5kaWppdEFsaWduQ2xpZW50IHsgcG9zaXRpb246IGFic29sdXRlOyB9XG5cbi8qXG4gKiBCb3JkZXJDb250YWluZXJcbiAqXG4gKiAuZGlqaXRCb3JkZXJDb250YWluZXIgaXMgYSBzdHlsaXplZCBsYXlvdXQgd2hlcmUgcGFuZXMgaGF2ZSBib3JkZXIgYW5kIG1hcmdpbi5cbiAqIC5kaWppdEJvcmRlckNvbnRhaW5lck5vR3V0dGVyIGlzIGEgcmF3IGxheW91dC5cbiAqL1xuLmRpaml0Qm9yZGVyQ29udGFpbmVyLCAuZGlqaXRCb3JkZXJDb250YWluZXJOb0d1dHRlciB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuICAgIHotaW5kZXg6IDA7IC8qIHNvIHotaW5kZXggc2V0dGluZ3MgYmVsb3cgaGF2ZSBubyBlZmZlY3Qgb3V0c2lkZSBvZiB0aGUgQm9yZGVyQ29udGFpbmVyICovXG59XG5cbi5kaWppdEJvcmRlckNvbnRhaW5lclBhbmUsXG4uZGlqaXRCb3JkZXJDb250YWluZXJOb0d1dHRlclBhbmUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcdC8qICFpbXBvcnRhbnQgdG8gb3ZlcnJpZGUgcG9zaXRpb246cmVsYXRpdmUgaW4gZGlqaXRUYWJDb250YWluZXIgZXRjLiAqL1xuXHR6LWluZGV4OiAyO1x0XHQvKiBhYm92ZSB0aGUgc3BsaXR0ZXJzIHNvIHRoYXQgb2ZmLWJ5LW9uZSBicm93c2VyIGVycm9ycyBkb24ndCBjb3ZlciB1cCBib3JkZXIgb2YgcGFuZSAqL1xufVxuXG4uZGlqaXRCb3JkZXJDb250YWluZXIgPiAuZGlqaXRUZXh0QXJlYSB7XG5cdC8qIE9uIFNhZmFyaSwgZm9yIFNpbXBsZVRleHRBcmVhIGluc2lkZSBhIEJvcmRlckNvbnRhaW5lcixcblx0XHRkb24ndCB3YW50IHRvIGRpc3BsYXkgdGhlIGdyaXAgdG8gcmVzaXplICovXG5cdHJlc2l6ZTogbm9uZTtcbn1cblxuLmRpaml0R3V0dGVyIHtcblx0LyogZ3V0dGVyIGlzIGp1c3QgYSBwbGFjZSBob2xkZXIgZm9yIGVtcHR5IHNwYWNlIGJldHdlZW4gcGFuZXMgaW4gQm9yZGVyQ29udGFpbmVyICovXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0Zm9udC1zaXplOiAxcHg7XHRcdC8qIG5lZWRlZCBieSBJRTYgZXZlbiB0aG91Z2ggZGl2IGlzIGVtcHR5LCBvdGhlcndpc2UgZ29lcyB0byAxNXB4ICovXG59XG5cbi8qIFNwbGl0Q29udGFpbmVyXG5cblx0J1YnID09IGNvbnRhaW5lciB0aGF0IHNwbGl0cyB2ZXJ0aWNhbGx5ICh1cC9kb3duKVxuXHQnSCcgPSBob3Jpem9udGFsIChsZWZ0L3JpZ2h0KVxuKi9cblxuLmRpaml0U3BsaXR0ZXIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHotaW5kZXg6IDEwO1x0XHQvKiBhYm92ZSB0aGUgcGFuZXMgc28gdGhhdCBzcGxpdHRlciBmb2N1cyBpcyB2aXNpYmxlIG9uIEZGLCBzZWUgIzc1ODMqL1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRib3JkZXItY29sb3I6IGdyYXk7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci13aWR0aDogMDtcbn1cbi5kal9pZSAuZGlqaXRTcGxpdHRlciB7XG5cdHotaW5kZXg6IDE7XHQvKiBiZWhpbmQgdGhlIHBhbmVzIHNvIHRoYXQgcGFuZSBib3JkZXJzIGFyZW4ndCBvYnNjdXJlZCBzZWUgdGVzdF9HdWkuaHRtbC9bMTQzOTJdICovXG59XG5cbi5kaWppdFNwbGl0dGVyQWN0aXZlIHtcblx0ei1pbmRleDogMTEgIWltcG9ydGFudDtcbn1cblxuLmRpaml0U3BsaXR0ZXJDb3ZlciB7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHR6LWluZGV4Oi0xO1xuXHR0b3A6MDtcblx0bGVmdDowO1xuXHR3aWR0aDoxMDAlO1xuXHRoZWlnaHQ6MTAwJTtcbn1cblxuLmRpaml0U3BsaXR0ZXJDb3ZlckFjdGl2ZSB7XG5cdHotaW5kZXg6MyAhaW1wb3J0YW50O1xufVxuXG4vKiAjNjk0NTogc3RvcCBtb3VzZSBldmVudHMgKi9cbi5kal9pZSAuZGlqaXRTcGxpdHRlckNvdmVyIHtcblx0YmFja2dyb3VuZDogd2hpdGU7XG5cdG9wYWNpdHk6IDA7XG59XG4uZGpfaWU2IC5kaWppdFNwbGl0dGVyQ292ZXIsXG4uZGpfaWU3IC5kaWppdFNwbGl0dGVyQ292ZXIsXG4uZGpfaWU4IC5kaWppdFNwbGl0dGVyQ292ZXIge1xuXHRmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MCk7XG59XG5cbi5kaWppdFNwbGl0dGVySCB7XG5cdGhlaWdodDogN3B4O1xuXHRib3JkZXItdG9wOjFweDtcblx0Ym9yZGVyLWJvdHRvbToxcHg7XG5cdGN1cnNvcjogcm93LXJlc2l6ZTtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5kaWppdFNwbGl0dGVyViB7XG5cdHdpZHRoOiA3cHg7XG5cdGJvcmRlci1sZWZ0OjFweDtcblx0Ym9yZGVyLXJpZ2h0OjFweDtcblx0Y3Vyc29yOiBjb2wtcmVzaXplO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmRpaml0U3BsaXRDb250YWluZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uZGlqaXRTcGxpdFBhbmUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbi5kaWppdFNwbGl0Q29udGFpbmVyU2l6ZXJILFxuLmRpaml0U3BsaXRDb250YWluZXJTaXplclYge1xuXHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0Zm9udC1zaXplOiAxcHg7XG5cdGJhY2tncm91bmQtY29sb3I6IFRocmVlREZhY2U7XG5cdGJvcmRlcjogMXB4IHNvbGlkO1xuXHRib3JkZXItY29sb3I6IFRocmVlREhpZ2hsaWdodCBUaHJlZURTaGFkb3cgVGhyZWVEU2hhZG93IFRocmVlREhpZ2hsaWdodDtcblx0bWFyZ2luOiAwO1xufVxuXG4uZGlqaXRTcGxpdENvbnRhaW5lclNpemVySCAudGh1bWIsIC5kaWppdFNwbGl0dGVyViAuZGlqaXRTcGxpdHRlclRodW1iIHtcblx0b3ZlcmZsb3c6aGlkZGVuO1xuXHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0dG9wOjQ5JTtcbn1cblxuLmRpaml0U3BsaXRDb250YWluZXJTaXplclYgLnRodW1iLCAuZGlqaXRTcGxpdHRlckggLmRpaml0U3BsaXR0ZXJUaHVtYiB7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHRsZWZ0OjQ5JTtcbn1cblxuLmRpaml0U3BsaXR0ZXJTaGFkb3csXG4uZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplckgsXG4uZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplclYge1xuXHRmb250LXNpemU6IDFweDtcblx0YmFja2dyb3VuZC1jb2xvcjogVGhyZWVEU2hhZG93O1xuXHQtbW96LW9wYWNpdHk6IDAuNTtcblx0b3BhY2l0eTogMC41O1xuXHRmaWx0ZXI6IEFscGhhKE9wYWNpdHk9NTApO1xuXHRtYXJnaW46IDA7XG59XG5cbi5kaWppdFNwbGl0Q29udGFpbmVyU2l6ZXJILCAuZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplckgge1xuXHRjdXJzb3I6IGNvbC1yZXNpemU7XG59XG5cbi5kaWppdFNwbGl0Q29udGFpbmVyU2l6ZXJWLCAuZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplclYge1xuXHRjdXJzb3I6IHJvdy1yZXNpemU7XG59XG5cbi5kal9hMTF5IC5kaWppdFNwbGl0dGVySCB7XG5cdGJvcmRlci10b3A6MXB4IHNvbGlkICNkM2QzZDMgIWltcG9ydGFudDtcblx0Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2QzZDNkMyAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0U3BsaXR0ZXJWIHtcblx0Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNkM2QzZDMgIWltcG9ydGFudDtcblx0Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjZDNkM2QzICFpbXBvcnRhbnQ7XG59XG5cbi8qIENvbnRlbnRQYW5lICovXG5cbi5kaWppdENvbnRlbnRQYW5lIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG92ZXJmbG93OiBhdXRvO1x0LyogaWYgd2UgZG9uJ3QgaGF2ZSB0aGlzIChvciBvdmVyZmxvdzpoaWRkZW4pLCB0aGVuIFdpZGdldC5yZXNpemVUbygpIGRvZXNuJ3QgbWFrZSBzZW5zZSBmb3IgQ29udGVudFBhbmUgKi9cblx0LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuXG4uZGlqaXRDb250ZW50UGFuZVNpbmdsZUNoaWxkIHtcblx0Lypcblx0ICogaWYgdGhlIENvbnRlbnRQYW5lIGhvbGRzIGEgc2luZ2xlIGxheW91dCB3aWRnZXQgY2hpbGQgd2hpY2ggaXMgYmVpbmcgc2l6ZWQgdG8gbWF0Y2ggdGhlIGNvbnRlbnQgcGFuZSxcblx0ICogdGhlbiB0aGUgQ29udGVudFBhbmUgc2hvdWxkIG5ldmVyIGdldCBhIHNjcm9sbGJhciAoYnV0IGl0IGRvZXMgZHVlIHRvIGJyb3dzZXIgYnVncywgc2VlICM5NDQ5XG5cdCAqL1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZGlqaXRDb250ZW50UGFuZUxvYWRpbmcgLmRpaml0SWNvbkxvYWRpbmcsXG4uZGlqaXRDb250ZW50UGFuZUVycm9yIC5kaWppdEljb25FcnJvciB7XG5cdG1hcmdpbi1yaWdodDogOXB4O1xufVxuXG4vKiBUaXRsZVBhbmUgYW5kIEZpZWxkc2V0ICovXG5cbi5kaWppdFRpdGxlUGFuZSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuLmRpaml0RmllbGRzZXQge1xuXHRib3JkZXI6IDFweCBzb2xpZCBncmF5O1xufVxuLmRpaml0VGl0bGVQYW5lVGl0bGUsIC5kaWppdEZpZWxkc2V0VGl0bGUge1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZGlqaXRUaXRsZVBhbmVUaXRsZUZpeGVkT3BlbiwgLmRpaml0VGl0bGVQYW5lVGl0bGVGaXhlZENsb3NlZCxcbi5kaWppdEZpZWxkc2V0VGl0bGVGaXhlZE9wZW4sIC5kaWppdEZpZWxkc2V0VGl0bGVGaXhlZENsb3NlZCB7XG5cdC8qIFRpdGxlUGFuZSBvciBGaWVsZHNldCB0aGF0IGNhbm5vdCBiZSB0b2dnbGVkICovXG5cdGN1cnNvcjogZGVmYXVsdDtcbn1cbi5kaWppdFRpdGxlUGFuZVRpdGxlICoge1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmRpaml0VGl0bGVQYW5lIC5kaWppdEFycm93Tm9kZUlubmVyLCAuZGlqaXRGaWVsZHNldCAuZGlqaXRBcnJvd05vZGVJbm5lciB7XG5cdC8qIG5vcm1hbGx5LCBoaWRlIGFycm93IHRleHQgaW4gZmF2b3Igb2YgaWNvbiAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuLmRqX2ExMXkgLmRpaml0VGl0bGVQYW5lIC5kaWppdEFycm93Tm9kZUlubmVyLCAuZGpfYTExeSAuZGlqaXRGaWVsZHNldCAuZGlqaXRBcnJvd05vZGVJbm5lciB7XG5cdC8qIC4uLiBleGNlcHQgaW4gYTExeSBtb2RlLCB0aGVuIHNob3cgdGV4dCBhcnJvdyAqL1xuXHRkaXNwbGF5OiBpbmxpbmU7XG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XHRcdC8qIGJlY2F1c2UgLSBhbmQgKyBhcmUgZGlmZmVyZW50IHdpZHRocyAqL1xufVxuLmRqX2ExMXkgLmRpaml0VGl0bGVQYW5lIC5kaWppdEFycm93Tm9kZSwgLmRqX2ExMXkgLmRpaml0RmllbGRzZXQgLmRpaml0QXJyb3dOb2RlIHtcblx0LyogLi4uIGFuZCBoaWRlIGljb24gKFRPRE86IGp1c3QgcG9pbnQgZGlqaXRJY29uIGNsYXNzIG9uIHRoZSBpY29uLCBhbmQgaXQgaGlkZXMgYXV0b21hdGljYWxseSkgKi9cblx0ZGlzcGxheTogbm9uZTtcbn1cbi5kaWppdFRpdGxlUGFuZVRpdGxlRml4ZWRPcGVuIC5kaWppdEFycm93Tm9kZSwgLmRpaml0VGl0bGVQYW5lVGl0bGVGaXhlZE9wZW4gLmRpaml0QXJyb3dOb2RlSW5uZXIsXG4uZGlqaXRUaXRsZVBhbmVUaXRsZUZpeGVkQ2xvc2VkIC5kaWppdEFycm93Tm9kZSwgLmRpaml0VGl0bGVQYW5lVGl0bGVGaXhlZENsb3NlZCAuZGlqaXRBcnJvd05vZGVJbm5lcixcbi5kaWppdEZpZWxkc2V0VGl0bGVGaXhlZE9wZW4gLmRpaml0QXJyb3dOb2RlLCAuZGlqaXRGaWVsZHNldFRpdGxlRml4ZWRPcGVuIC5kaWppdEFycm93Tm9kZUlubmVyLFxuLmRpaml0RmllbGRzZXRUaXRsZUZpeGVkQ2xvc2VkIC5kaWppdEFycm93Tm9kZSwgLmRpaml0RmllbGRzZXRUaXRsZUZpeGVkQ2xvc2VkIC5kaWppdEFycm93Tm9kZUlubmVyIHtcblx0LyogZG9uJ3Qgc2hvdyB0aGUgb3BlbiBjbG9zZSBpY29uIG9yIHRleHQgYXJyb3c7IGl0IG1ha2VzIHRoZSB1c2VyIHRoaW5rIHRoZSBwYW5lIGlzIGNsb3NhYmxlICovXG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcdC8qICFpbXBvcnRhbnQgdG8gb3ZlcnJpZGUgYWJvdmUgYTExeSBydWxlcyB0byBzaG93IHRleHQgYXJyb3cgKi9cbn1cblxuLmRqX2llNiAuZGlqaXRUaXRsZVBhbmVDb250ZW50T3V0ZXIsXG4uZGpfaWU2IC5kaWppdFRpdGxlUGFuZSAuZGlqaXRUaXRsZVBhbmVUaXRsZSB7XG5cdC8qIGZvcmNlIGhhc0xheW91dCB0byBlbnN1cmUgYm9yZGVycyBldGMsIHNob3cgdXAgKi9cblx0em9vbTogMTtcbn1cblxuLyogQ29sb3IgUGFsZXR0ZVxuICogU2l6ZXMgZGVzaWduZWQgc28gdGhhdCB0YWJsZSBjZWxsIHBvc2l0aW9ucyBtYXRjaCBpY29ucyBpbiB1bmRlcmx5aW5nIGltYWdlLFxuICogd2hpY2ggYXBwZWFyIGF0IDIweDIwIGludGVydmFscy5cbiAqL1xuXG4uZGlqaXRDb2xvclBhbGV0dGUge1xuXHRib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuXHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5kaWppdENvbG9yUGFsZXR0ZSAuZGlqaXRQYWxldHRlVGFibGUge1xuXHQvKiBUYWJsZSB0aGF0IGhvbGRzIHRoZSBwYWxldHRlIGNlbGxzLCBhbmQgb3ZlcmxheXMgaW1hZ2UgZmlsZSB3aXRoIGNvbG9yIHN3YXRjaGVzLlxuXHQgKiBwYWRkaW5nL21hcmdpbiB0byBhbGlnbiB0YWJsZSB3aXRoIGltYWdlLlxuXHQgKi9cblx0cGFkZGluZzogMnB4IDNweCAzcHggM3B4O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdG91dGxpbmU6IDA7XG5cdGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG59XG4uZGpfaWU2IC5kaWppdENvbG9yUGFsZXR0ZSAuZGlqaXRQYWxldHRlVGFibGUsXG4uZGpfaWU3IC5kaWppdENvbG9yUGFsZXR0ZSAuZGlqaXRQYWxldHRlVGFibGUsXG4uZGpfaWVxdWlya3MgLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVUYWJsZSB7XG5cdC8qIHVzaW5nIHBhZGRpbmcgYWJvdmUgc28gdGhhdCBmb2N1cyBib3JkZXIgaXNuJ3QgY3V0b2ZmIG9uIG1vei93ZWJraXQsXG5cdCAqIGJ1dCB1c2luZyBtYXJnaW4gb24gSUUgYmVjYXVzZSBwYWRkaW5nIGRvZXNuJ3Qgc2VlbSB0byB3b3JrXG5cdCAqL1xuXHRwYWRkaW5nOiAwO1xuXHRtYXJnaW46IDJweCAzcHggM3B4IDNweDtcbn1cblxuLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVDZWxsIHtcblx0LyogPHRkPiBpbiB0aGUgPHRhYmxlPiAqL1xuXHRmb250LXNpemU6IDFweDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRiYWNrZ3JvdW5kOiBub25lO1xufVxuLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVJbWcge1xuXHQvKiBDYWxsZWQgZGlqaXRQYWxldHRlSW1nIGZvciBiYWNrLWNvbXBhdCwgdGhpcyBhY3R1YWxseSB3cmFwcyB0aGUgY29sb3Igc3dhdGNoIHdpdGggYSBib3JkZXIgYW5kIHBhZGRpbmcgKi9cblx0cGFkZGluZzogMXB4O1x0XHQvKiB3aGl0ZSBhcmVhIGJldHdlZW4gZ3JheSBib3JkZXIgYW5kIGNvbG9yIHN3YXRjaCAqL1xuXHRib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuXHRtYXJnaW46IDJweCAxcHg7XG5cdGN1cnNvcjogZGVmYXVsdDtcblx0Zm9udC1zaXplOiAxcHg7XHRcdC8qIHByZXZlbnQgPHNwYW4+IGZyb20gZ2V0dGluZyBiaWdnZXIganVzdCB0byBob2xkIGEgY2hhcmFjdGVyICovXG59XG4uZGpfZ2Vja28gLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVJbWcge1xuXHRwYWRkaW5nLWJvdHRvbTogMDtcdC8qIHdvcmthcm91bmQgcmVuZGVyaW5nIGdsaXRjaCBvbiBGRiwgaXQgYWRkcyBhbiBleHRyYSBwaXhlbCBhdCB0aGUgYm90dG9tICovXG59XG4uZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0Q29sb3JQYWxldHRlU3dhdGNoIHtcblx0LyogdGhlIGFjdHVhbCBwYXJ0IHdoZXJlIHRoZSBjb2xvciBpcyAqL1xuXHR3aWR0aDogMTRweDtcblx0aGVpZ2h0OiAxMnB4O1xufVxuLmRpaml0UGFsZXR0ZVRhYmxlIHRkIHtcblx0XHRwYWRkaW5nOiAwO1xufVxuLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVDZWxsOmhvdmVyIC5kaWppdFBhbGV0dGVJbWcge1xuXHQvKiBob3ZlcmVkIGNvbG9yIHN3YXRjaCAqL1xuXHRib3JkZXI6IDFweCBzb2xpZCAjMDAwO1xufVxuXG4uZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0UGFsZXR0ZUNlbGw6YWN0aXZlIC5kaWppdFBhbGV0dGVJbWcsXG4uZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0UGFsZXR0ZVRhYmxlIC5kaWppdFBhbGV0dGVDZWxsU2VsZWN0ZWQgLmRpaml0UGFsZXR0ZUltZyB7XG5cdGJvcmRlcjogMnB4IHNvbGlkICMwMDA7XG5cdG1hcmdpbjogMXB4IDA7XHQvKiByZWR1Y2UgbWFyZ2luIHRvIGNvbXBlbnNhdGUgZm9yIGluY3JlYXNlZCBib3JkZXIgKi9cbn1cblxuXG4uZGpfYTExeSAuZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0UGFsZXR0ZVRhYmxlLFxuLmRqX2ExMXkgLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVUYWJsZSAqIHtcblx0LyogdGFibGUgY2VsbHMgYXJlIHRvIGNhdGNoIGV2ZW50cywgYnV0IHRoZSBzd2F0Y2hlcyBhcmUgaW4gdGhlIFBhbGV0dGVJbWcgYmVoaW5kIHRoZSB0YWJsZSAqL1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4vKiBBY2NvcmRpb25Db250YWluZXIgKi9cblxuLmRpaml0QWNjb3JkaW9uQ29udGFpbmVyIHtcblx0Ym9yZGVyOjFweCBzb2xpZCAjYjdiN2I3O1xuXHRib3JkZXItdG9wOjAgIWltcG9ydGFudDtcbn1cbi5kaWppdEFjY29yZGlvblRpdGxlIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmRpaml0QWNjb3JkaW9uVGl0bGVTZWxlY3RlZCB7XG5cdGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLyogaW1hZ2VzIG9mZiwgaGlnaC1jb250cmFzdCBtb2RlIHN0eWxlcyAqL1xuLmRpaml0QWNjb3JkaW9uVGl0bGUgLmFycm93VGV4dFVwLFxuLmRpaml0QWNjb3JkaW9uVGl0bGUgLmFycm93VGV4dERvd24ge1xuXHRkaXNwbGF5OiBub25lO1xuXHRmb250LXNpemU6IDAuNjVlbTtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbCAhaW1wb3J0YW50O1xufVxuXG4uZGpfYTExeSAuZGlqaXRBY2NvcmRpb25UaXRsZSAuYXJyb3dUZXh0VXAsXG4uZGpfYTExeSAuZGlqaXRBY2NvcmRpb25UaXRsZVNlbGVjdGVkIC5hcnJvd1RleHREb3duIHtcblx0ZGlzcGxheTogaW5saW5lO1xufVxuXG4uZGpfYTExeSAuZGlqaXRBY2NvcmRpb25UaXRsZVNlbGVjdGVkIC5hcnJvd1RleHRVcCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kaWppdEFjY29yZGlvbkNoaWxkV3JhcHBlciB7XG5cdC8qIHRoaXMgaXMgdGhlIG5vZGUgd2hvc2UgaGVpZ2h0IGlzIGFkanVzdGVkICovXG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIENhbGVuZGFyICovXG5cbi5kaWppdENhbGVuZGFyQ29udGFpbmVyIHRhYmxlIHtcblx0d2lkdGg6IGF1dG87XHQvKiBpbiBjYXNlIHVzZXIgaGFzIHNwZWNpZmllZCBhIHdpZHRoIGZvciB0aGUgVEFCTEUgbm9kZXMsIHNlZSAjMTA1NTMgKi9cblx0Y2xlYXI6IGJvdGg7ICAgIC8qIGNsZWFyIG1hcmdpbiBjcmVhdGVkIGZvciBsZWZ0L3JpZ2h0IG1vbnRoIGFycm93czsgbmVlZGVkIG9uIElFMTAgZm9yIENhbGVuZGFyTGl0ZSAqL1xufVxuLmRpaml0Q2FsZW5kYXJDb250YWluZXIgdGgsIC5kaWppdENhbGVuZGFyQ29udGFpbmVyIHRkIHtcblx0cGFkZGluZzogMDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmRpaml0Q2FsZW5kYXJNb250aENvbnRhaW5lciB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5kaWppdENhbGVuZGFyRGVjcmVtZW50QXJyb3cge1xuXHRmbG9hdDogbGVmdDtcbn1cbi5kaWppdENhbGVuZGFySW5jcmVtZW50QXJyb3cge1xuXHRmbG9hdDogcmlnaHQ7XG59XG5cbi5kaWppdENhbGVuZGFyWWVhckxhYmVsIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyAgICAvKiBtYWtlIHN1cmUgcHJldmlvdXMsIGN1cnJlbnQsIGFuZCBuZXh0IHllYXIgYXBwZWFyIG9uIHNhbWUgcm93ICovXG59XG5cbi5kaWppdENhbGVuZGFyTmV4dFllYXIge1xuXHRtYXJnaW46MCAwIDAgMC41NWVtO1xufVxuXG4uZGlqaXRDYWxlbmRhclByZXZpb3VzWWVhciB7XG5cdG1hcmdpbjowIDAuNTVlbSAwIDA7XG59XG5cbi5kaWppdENhbGVuZGFySW5jcmVtZW50Q29udHJvbCB7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5kaWppdENhbGVuZGFySW5jcmVtZW50Q29udHJvbCxcbi5kaWppdENhbGVuZGFyRGF0ZVRlbXBsYXRlLFxuLmRpaml0Q2FsZW5kYXJNb250aExhYmVsLFxuLmRpaml0Q2FsZW5kYXJQcmV2aW91c1llYXIsXG4uZGlqaXRDYWxlbmRhck5leHRZZWFyIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uZGlqaXRDYWxlbmRhckRpc2FibGVkRGF0ZSB7XG5cdGNvbG9yOiBncmF5O1xuXHR0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcblx0Y3Vyc29yOiBkZWZhdWx0O1xufVxuXG4uZGlqaXRTcGFjZXIge1xuXHQvKiBkb24ndCBkaXNwbGF5IGl0LCBidXQgbWFrZSBpdCBhZmZlY3QgdGhlIHdpZHRoICovXG4gIFx0cG9zaXRpb246IHJlbGF0aXZlO1xuICBcdGhlaWdodDogMXB4O1xuICBcdG92ZXJmbG93OiBoaWRkZW47XG4gIFx0dmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4vKiBTdHlsaW5nIGZvciBtb250aCBkcm9wIGRvd24gbGlzdCAqL1xuXG4uZGlqaXRDYWxlbmRhck1vbnRoTWVudSAuZGlqaXRDYWxlbmRhck1vbnRoTGFiZWwge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcbn1cblxuLyogTWVudSAqL1xuXG4uZGlqaXRNZW51IHtcblx0Ym9yZGVyOjFweCBzb2xpZCBibGFjaztcblx0YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtcbn1cbi5kaWppdE1lbnVUYWJsZSB7XG5cdGJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtcblx0Ym9yZGVyLXdpZHRoOjA7XG5cdGJhY2tncm91bmQtY29sb3I6d2hpdGU7XG59XG5cbi8qIHdvcmthcm91bmQgZm9yIHdlYmtpdCBidWcgIzg0MjcsIHJlbW92ZSB0aGlzIHdoZW4gaXQgaXMgZml4ZWQgdXBzdHJlYW0gKi9cbi5kal93ZWJraXQgLmRpaml0TWVudVRhYmxlIHRkW2NvbHNwYW49XCIyXCJde1xuXHRib3JkZXItcmlnaHQ6aGlkZGVuO1xufVxuXG4uZGlqaXRNZW51SXRlbSB7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdHBhZGRpbmc6LjFlbSAuMmVtO1xuXHRjdXJzb3I6cG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLypcbk5vIG5lZWQgdG8gc2hvdyBhIGZvY3VzIGJvcmRlciBzaW5jZSBpdCdzIG9idmlvdXMgZnJvbSB0aGUgc2hhZGluZywgYW5kIHRoZXJlJ3MgYSAuZGpfYTExeSAuZGlqaXRNZW51SXRlbVNlbGVjdGVkXG5ydWxlIGJlbG93IHRoYXQgaGFuZGxlcyB0aGUgaGlnaCBjb250cmFzdCBjYXNlIHdoZW4gdGhlcmUncyBubyBzaGFkaW5nLlxuSGlkaW5nIHRoZSBmb2N1cyBib3JkZXIgYWxzbyB3b3JrcyBhcm91bmQgd2Via2l0IGJ1ZyBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9MTI1Nzc5LlxuKi9cbi5kaWppdE1lbnVJdGVtOmZvY3VzIHtcblx0b3V0bGluZTogbm9uZVxufVxuXG4uZGlqaXRNZW51UGFzc2l2ZSAuZGlqaXRNZW51SXRlbUhvdmVyLFxuLmRpaml0TWVudUl0ZW1TZWxlY3RlZCB7XG5cdC8qXG5cdCAqIGRpaml0TWVudUl0ZW1Ib3ZlciByZWZlcnMgdG8gYWN0dWFsIG1vdXNlIG92ZXJcblx0ICogZGlqaXRNZW51SXRlbVNlbGVjdGVkIGlzIHVzZWQgYWZ0ZXIgYSBtZW51IGhhcyBiZWVuIFwiYWN0aXZhdGVkXCIgYnlcblx0ICogY2xpY2tpbmcgaXQsIHRhYmJpbmcgaW50byBpdCwgb3IgYmVpbmcgb3BlbmVkIGZyb20gYSBwYXJlbnQgbWVudSxcblx0ICogYW5kIGRlbm90ZXMgdGhhdCB0aGUgbWVudSBpdGVtIGhhcyBmb2N1cyBvciB0aGF0IGZvY3VzIGlzIG9uIGEgY2hpbGRcblx0ICogbWVudVxuXHQgKi9cblx0YmFja2dyb3VuZC1jb2xvcjpibGFjaztcblx0Y29sb3I6d2hpdGU7XG59XG5cbi5kaWppdE1lbnVJdGVtSWNvbiwgLmRpaml0TWVudUV4cGFuZCB7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG5cbi5kaWppdE1lbnVJdGVtRGlzYWJsZWQgKiB7XG5cdC8qIGZvciBhIGRpc2FibGVkIG1lbnUgaXRlbSwganVzdCBzZXQgaXQgdG8gbW9zdGx5IHRyYW5zcGFyZW50ICovXG5cdG9wYWNpdHk6MC41O1xuXHRjdXJzb3I6ZGVmYXVsdDtcbn1cbi5kal9pZSAuZGpfYTExeSAuZGlqaXRNZW51SXRlbURpc2FibGVkLFxuLmRqX2llIC5kal9hMTF5IC5kaWppdE1lbnVJdGVtRGlzYWJsZWQgKixcbi5kal9pZSAuZGlqaXRNZW51SXRlbURpc2FibGVkICoge1xuXHRjb2xvcjogZ3JheTtcblx0ZmlsdGVyOiBhbHBoYShvcGFjaXR5PTM1KTtcbn1cblxuLmRpaml0TWVudUl0ZW1MYWJlbCB7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5kal9hMTF5IC5kaWppdE1lbnVJdGVtU2VsZWN0ZWQge1xuXHRib3JkZXI6IDFweCBkb3R0ZWQgYmxhY2sgIWltcG9ydGFudDtcdC8qIGZvciAyLjAgdXNlIG91dGxpbmUgaW5zdGVhZCwgdG8gcHJldmVudCBqaXR0ZXIgKi9cbn1cblxuLmRqX2ExMXkgLmRpaml0TWVudUl0ZW1TZWxlY3RlZCAuZGlqaXRNZW51SXRlbUxhYmVsIHtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG59XG4uZGpfaWU4IC5kal9hMTF5IC5kaWppdE1lbnVJdGVtTGFiZWwge1xuXHRwb3NpdGlvbjpzdGF0aWM7XG59XG5cbi5kaWppdE1lbnVFeHBhbmRBMTF5IHtcblx0ZGlzcGxheTogbm9uZTtcbn1cbi5kal9hMTF5IC5kaWppdE1lbnVFeHBhbmRBMTF5IHtcblx0ZGlzcGxheTogaW5saW5lO1xufVxuXG4uZGlqaXRNZW51U2VwYXJhdG9yIHRkIHtcblx0Ym9yZGVyOiAwO1xuXHRwYWRkaW5nOiAwO1xufVxuXG4vKiBzZXBhcmF0b3IgY2FuIGJlIHR3byBwaXhlbHMgLS0gc2V0IGJvcmRlciBvZiBlaXRoZXIgb25lIHRvIDAgdG8gaGF2ZSBvbmx5IG9uZSAqL1xuLmRpaml0TWVudVNlcGFyYXRvclRvcCB7XG5cdGhlaWdodDogNTAlO1xuXHRtYXJnaW46IDA7XG5cdG1hcmdpbi10b3A6M3B4O1xuXHRmb250LXNpemU6IDFweDtcbn1cblxuLmRpaml0TWVudVNlcGFyYXRvckJvdHRvbSB7XG5cdGhlaWdodDogNTAlO1xuXHRtYXJnaW46IDA7XG5cdG1hcmdpbi1ib3R0b206M3B4O1xuXHRmb250LXNpemU6IDFweDtcbn1cblxuLyogQ2hlY2tlZE1lbnVJdGVtIGFuZCBSYWRpb01lbnVJdGVtICovXG4uZGlqaXRNZW51SXRlbUljb25DaGFyIHtcblx0ZGlzcGxheTogbm9uZTtcdFx0LyogZG9uJ3QgZGlzcGxheSBleGNlcHQgaW4gaGlnaCBjb250cmFzdCBtb2RlICovXG5cdHZpc2liaWxpdHk6IGhpZGRlbjtcdC8qIGZvciBoaWdoIGNvbnRyYXN0IG1vZGUgd2hlbiBtZW51aXRlbSBpcyB1bmNoZWNrZWQ6IGxlYXZlIHNwYWNlIGZvciB3aGVuIGl0IGlzIGNoZWNrZWQgKi9cbn1cbi5kal9hMTF5IC5kaWppdE1lbnVJdGVtSWNvbkNoYXIge1xuXHRkaXNwbGF5OiBpbmxpbmU7XHQvKiBkaXNwbGF5IGNoYXJhY3RlciBpbiBoaWdoIGNvbnRyYXN0IG1vZGUsIHNpbmNlIGljb24gZG9lc24ndCBzaG93ICovXG59XG4uZGlqaXRDaGVja2VkTWVudUl0ZW1DaGVja2VkIC5kaWppdE1lbnVJdGVtSWNvbkNoYXIsXG4uZGlqaXRSYWRpb01lbnVJdGVtQ2hlY2tlZCAuZGlqaXRNZW51SXRlbUljb25DaGFyIHtcblx0dmlzaWJpbGl0eTogdmlzaWJsZTsgLyogbWVudWl0ZW0gaXMgY2hlY2tlZCAqL1xufVxuLmRqX2llIC5kal9hMTF5IC5kaWppdE1lbnVCYXIgLmRpaml0TWVudUl0ZW0ge1xuXHQvKiBzbyBib3R0b20gYm9yZGVyIG9mIE1lbnVCYXIgYXBwZWFycyBvbiBJRTcgaW4gaGlnaC1jb250cmFzdCBtb2RlICovXG5cdG1hcmdpbjogMDtcbn1cblxuLyogU3RhY2tDb250YWluZXIgKi9cblxuLmRpaml0U3RhY2tDb250cm9sbGVyIC5kaWppdFRvZ2dsZUJ1dHRvbkNoZWNrZWQgKiB7XG5cdGN1cnNvcjogZGVmYXVsdDtcdC8qIGJlY2F1c2UgcHJlc3NpbmcgaXQgaGFzIG5vIGVmZmVjdCAqL1xufVxuXG4vKioqXG5UYWJDb250YWluZXJcblxuTWFpbiBjbGFzcyBoaWVyYXJjaHk6XG5cbi5kaWppdFRhYkNvbnRhaW5lciAtIHRoZSB3aG9sZSBUYWJDb250YWluZXJcbiAgIC5kaWppdFRhYkNvbnRyb2xsZXIgLyAuZGlqaXRUYWJMaXN0Q29udGFpbmVyLXRvcCAtIHdyYXBwZXIgZm9yIHRhYiBidXR0b25zLCBzY3JvbGwgYnV0dG9uc1xuXHQgLmRpaml0VGFiTGlzdFdyYXBwZXIgLyAuZGlqaXRUYWJDb250YWluZXJUb3BTdHJpcCAtIG91dGVyIHdyYXBwZXIgZm9yIHRhYiBidXR0b25zIChub3JtYWwgd2lkdGgpXG5cdFx0Lm5vd3JhcFRhYlN0cmlwIC8gLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMgLSBpbm5lciB3cmFwcGVyIGZvciB0YWIgYnV0dG9ucyAoNTBLIHdpZHRoKVxuICAgLmRpaml0VGFiUGFuZVdyYXBwZXIgLSB3cmFwcGVyIGZvciBjb250ZW50IHBhbmVzLCBoYXMgYWxsIGJvcmRlcnMgZXhjZXB0IHRoZSBvbmUgYmV0d2VlbiBjb250ZW50IGFuZCB0YWJzXG4qKiovXG5cbi5kaWppdFRhYkNvbnRhaW5lciB7XG4gICAgei1pbmRleDogMDsgLyogc28gei1pbmRleCBzZXR0aW5ncyBiZWxvdyBoYXZlIG5vIGVmZmVjdCBvdXRzaWRlIG9mIHRoZSBUYWJDb250YWluZXIgKi9cbiAgICBvdmVyZmxvdzogdmlzaWJsZTsgLyogcHJldmVudCBvZmYtYnktb25lLXBpeGVsIGVycm9ycyBmcm9tIGhpZGluZyBib3R0b20gYm9yZGVyIChvcHBvc2l0ZSB0YWIgbGFiZWxzKSAqL1xufVxuLmRqX2llNiAuZGlqaXRUYWJDb250YWluZXIge1xuICAgIC8qIHdvcmthcm91bmQgSUU2IHByb2JsZW0gd2hlbiB0YWxsIGNvbnRlbnQgb3ZlcmZsb3dzIFRhYkNvbnRhaW5lciwgc2VlIGVkaXRvci90ZXN0X0Z1bGxTY3JlZW4uaHRtbCAqL1xuICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxufVxuLmRpaml0VGFiQ29udGFpbmVyTm9MYXlvdXQge1xuXHR3aWR0aDogMTAwJTtcdC8qIG90aGVyd2lzZSBTY3JvbGxpbmdUYWJDb250cm9sbGVyIGdvZXMgdG8gNTBLIHBpeGVscyB3aWRlICovXG59XG5cbi5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS10YWJzLFxuLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMsXG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LXRhYnMsXG4uZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzIHtcbiAgICB6LWluZGV4OiAxO1xuXHRvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50OyAgLyogc28gdGFicyBjYW4gY292ZXIgdXAgYm9yZGVyIGFkamFjZW50IHRvIGNvbnRhaW5lciAqL1xufVxuXG4uZGlqaXRUYWJDb250cm9sbGVyIHtcbiAgICB6LWluZGV4OiAxO1xufVxuLmRpaml0VGFiQ29udGFpbmVyQm90dG9tLWNvbnRhaW5lcixcbi5kaWppdFRhYkNvbnRhaW5lclRvcC1jb250YWluZXIsXG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LWNvbnRhaW5lcixcbi5kaWppdFRhYkNvbnRhaW5lclJpZ2h0LWNvbnRhaW5lciB7XG5cdHotaW5kZXg6MDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0Ym9yZGVyOiAxcHggc29saWQgYmxhY2s7XG59XG4ubm93cmFwVGFiU3RyaXAge1xuXHR3aWR0aDogNTAwMDBweDtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyAgLyoganVzdCBpbiBjYXNlIGFuY2VzdG9yIGhhcyBub24tc3RhbmRhcmQgc2V0dGluZyAqL1xuICAgIHotaW5kZXg6IDE7XG59XG4uZGlqaXRUYWJMaXN0V3JhcHBlciB7XG5cdG92ZXJmbG93OiBoaWRkZW47XG4gICAgei1pbmRleDogMTtcbn1cblxuLmRqX2ExMXkgLnRhYlN0cmlwQnV0dG9uIGltZyB7XG5cdC8qIGhpZGUgdGhlIGljb25zIChvciByYXRoZXIgdGhlIGVtcHR5IHNwYWNlIHdoZXJlIHRoZXkgbm9ybWFsbHkgYXBwZWFyKSBiZWNhdXNlIHRleHQgd2lsbCBhcHBlYXIgaW5zdGVhZCAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJUb3AtdGFicyB7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBibGFjaztcbn1cbi5kaWppdFRhYkNvbnRhaW5lclRvcC1jb250YWluZXIge1xuXHRib3JkZXItdG9wOiAwO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LXRhYnMge1xuXHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCBibGFjaztcblx0ZmxvYXQ6IGxlZnQ7ICAgIC8qIG5lZWRlZCBmb3IgSUU3IFJUTCBtb2RlICovXG59XG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LWNvbnRhaW5lciB7XG5cdGJvcmRlci1sZWZ0OiAwO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJCb3R0b20tdGFicyB7XG5cdGJvcmRlci10b3A6IDFweCBzb2xpZCBibGFjaztcbn1cbi5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS1jb250YWluZXIge1xuXHRib3JkZXItYm90dG9tOiAwO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzIHtcblx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCBibGFjaztcblx0ZmxvYXQ6IGxlZnQ7ICAgIC8qIG5lZWRlZCBmb3IgSUU3IFJUTCBtb2RlICovXG59XG4uZGlqaXRUYWJDb250YWluZXJSaWdodC1jb250YWluZXIge1xuXHRib3JkZXItcmlnaHQ6IDA7XG59XG5cbmRpdi5kaWppdFRhYkRpc2FibGVkLCAuZGpfaWUgZGl2LmRpaml0VGFiRGlzYWJsZWQge1xuXHRjdXJzb3I6IGF1dG87XG59XG5cbi5kaWppdFRhYiB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRjdXJzb3I6cG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcblx0d2hpdGUtc3BhY2U6bm93cmFwO1xuXHR6LWluZGV4OjM7XG59XG4uZGlqaXRUYWIgKiB7XG5cdC8qIG1ha2UgdGFiIGljb25zIGFuZCBjbG9zZSBpY29uIGxpbmUgdXAgdy90ZXh0ICovXG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4uZGlqaXRUYWJDaGVja2VkIHtcblx0Y3Vyc29yOiBkZWZhdWx0O1x0LyogYmVjYXVzZSBjbGlja2luZyB3aWxsIGhhdmUgbm8gZWZmZWN0ICovXG59XG5cbi5kaWppdFRhYkNvbnRhaW5lclRvcC10YWJzIC5kaWppdFRhYiB7XG5cdHRvcDogMXB4O1x0LyogdG8gb3ZlcmxhcCBib3JkZXIgb24gLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMgKi9cbn1cbi5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS10YWJzIC5kaWppdFRhYiB7XG5cdHRvcDogLTFweDtcdC8qIHRvIG92ZXJsYXAgYm9yZGVyIG9uIC5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS10YWJzICovXG59XG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LXRhYnMgLmRpaml0VGFiIHtcblx0bGVmdDogMXB4O1x0LyogdG8gb3ZlcmxhcCBib3JkZXIgb24gLmRpaml0VGFiQ29udGFpbmVyTGVmdC10YWJzICovXG59XG4uZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzIC5kaWppdFRhYiB7XG5cdGxlZnQ6IC0xcHg7XHQvKiB0byBvdmVybGFwIGJvcmRlciBvbiAuZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzICovXG59XG5cblxuLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMgLmRpaml0VGFiLFxuLmRpaml0VGFiQ29udGFpbmVyQm90dG9tLXRhYnMgLmRpaml0VGFiIHtcblx0LyogSW5saW5lLWJsb2NrICovXG5cdGRpc3BsYXk6aW5saW5lLWJsb2NrO1x0XHRcdC8qIHdlYmtpdCBhbmQgRkYzICovXG5cdCN6b29tOiAxOyAvKiBzZXQgaGFzTGF5b3V0OnRydWUgdG8gbWltaWMgaW5saW5lLWJsb2NrICovXG5cdCNkaXNwbGF5OmlubGluZTsgLyogZG9uJ3QgdXNlIC5kal9pZSBzaW5jZSB0aGF0IGluY3JlYXNlcyB0aGUgcHJpb3JpdHkgKi9cbn1cblxuLnRhYlN0cmlwQnV0dG9uIHtcblx0ei1pbmRleDogMTI7XG59XG5cbi5kaWppdFRhYkJ1dHRvbkRpc2FibGVkIC50YWJTdHJpcEJ1dHRvbiB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cblxuLmRpaml0VGFiQ2xvc2VCdXR0b24ge1xuXHRtYXJnaW4tbGVmdDogMWVtO1xufVxuXG4uZGlqaXRUYWJDbG9zZVRleHQge1xuXHRkaXNwbGF5Om5vbmU7XG59XG5cbi5kaWppdFRhYiAudGFiTGFiZWwge1xuXHQvKiBtYWtlIHN1cmUgdGFicyB3L2Nsb3NlIGJ1dHRvbiBhbmQgdy9vdXQgY2xvc2UgYnV0dG9uIGFyZSBzYW1lIGhlaWdodCwgZXZlbiB3L3NtYWxsICg8MTVweCkgZm9udC5cblx0ICogYXNzdW1lcyA8PTE1cHggaGVpZ2h0IGZvciBjbG9zZSBidXR0b24gaWNvbi5cblx0ICovXG5cdG1pbi1oZWlnaHQ6IDE1cHg7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5kaWppdE5vSWNvbiB7XG5cdC8qIGFwcGxpZWQgdG8gPGltZz4vPHNwYW4+IG5vZGUgd2hlbiB0aGVyZSBpcyBubyBpY29uIHNwZWNpZmllZCAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuLmRqX2llNiAuZGlqaXRUYWIgLmRpaml0Tm9JY29uIHtcblx0LyogYmVjYXVzZSBtaW4taGVpZ2h0IChvbiAudGFiTGFiZWwsIGFib3ZlKSBkb2Vzbid0IHdvcmsgb24gSUU2ICovXG5cdGRpc3BsYXk6IGlubGluZTtcblx0aGVpZ2h0OiAxNXB4O1xuXHR3aWR0aDogMXB4O1xufVxuXG4vKiBpbWFnZXMgb2ZmLCBoaWdoLWNvbnRyYXN0IG1vZGUgc3R5bGVzICovXG5cbi5kal9hMTF5IC5kaWppdFRhYkNsb3NlQnV0dG9uIHtcblx0YmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuXHR3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLmRqX2ExMXkgLmRpaml0VGFiQ2xvc2VUZXh0IHtcblx0ZGlzcGxheTogaW5saW5lO1xufVxuXG4uZGlqaXRUYWJQYW5lLFxuLmRpaml0U3RhY2tDb250YWluZXItY2hpbGQsXG4uZGlqaXRBY2NvcmRpb25Db250YWluZXItY2hpbGQge1xuXHQvKiBjaGlsZHJlbiBvZiBUYWJDb250YWluZXIsIFN0YWNrQ29udGFpbmVyLCBhbmQgQWNjb3JkaW9uQ29udGFpbmVyIHNob3VsZG4ndCBoYXZlIGJvcmRlcnNcblx0ICogYi9jIGEgYm9yZGVyIGlzIGFscmVhZHkgdGhlcmUgZnJvbSB0aGUgVGFiQ29udGFpbmVyL1N0YWNrQ29udGFpbmVyL0FjY29yZGlvbkNvbnRhaW5lciBpdHNlbGYuXG5cdCAqL1xuICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiBJbmxpbmVFZGl0Qm94ICovXG4uZGlqaXRJbmxpbmVFZGl0Qm94RGlzcGxheU1vZGUge1xuXHRib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcdC8qIHNvIGtleWxpbmUgKGJvcmRlcikgb24gaG92ZXIgY2FuIGFwcGVhciB3aXRob3V0IHNjcmVlbiBqdW1wICovXG5cdGN1cnNvcjogdGV4dDtcbn1cblxuLmRqX2ExMXkgLmRpaml0SW5saW5lRWRpdEJveERpc3BsYXlNb2RlLFxuLmRqX2llNiAuZGlqaXRJbmxpbmVFZGl0Qm94RGlzcGxheU1vZGUge1xuXHQvKiBleGNlcHQgdGhhdCBJRTYgZG9lc24ndCBzdXBwb3J0IHRyYW5zcGFyZW50IGJvcmRlcnMsIG5vciBkb2VzIGhpZ2ggY29udHJhc3QgbW9kZSAqL1xuXHRib3JkZXI6IG5vbmU7XG59XG5cbi5kaWppdElubGluZUVkaXRCb3hEaXNwbGF5TW9kZUhvdmVyLFxuLmRqX2ExMXkgLmRpaml0SW5saW5lRWRpdEJveERpc3BsYXlNb2RlSG92ZXIsXG4uZGpfaWU2IC5kaWppdElubGluZUVkaXRCb3hEaXNwbGF5TW9kZUhvdmVyIHtcblx0LyogQW4gSW5saW5lRWRpdEJveCBpbiB2aWV3IG1vZGUgKGNsaWNrIHRoaXMgdG8gZWRpdCB0aGUgdGV4dCkgKi9cblx0YmFja2dyb3VuZC1jb2xvcjogI2UyZWJmMjtcblx0Ym9yZGVyOiBzb2xpZCAxcHggYmxhY2s7XG59XG5cbi5kaWppdElubGluZUVkaXRCb3hEaXNwbGF5TW9kZURpc2FibGVkIHtcblx0Y3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKiBUcmVlICovXG4uZGlqaXRUcmVlIHtcblx0b3ZlcmZsb3c6IGF1dG87XHQvKiBmb3Igc2Nyb2xsYmFycyB3aGVuIFRyZWUgaGFzIGEgaGVpZ2h0IHNldHRpbmcsIGFuZCB0byBwcmV2ZW50IHdyYXBwaW5nIGFyb3VuZCBmbG9hdCBlbGVtZW50cywgc2VlICMxMTQ5MSAqL1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uZGlqaXRUcmVlQ29udGFpbmVyIHtcblx0ZmxvYXQ6IGxlZnQ7XHQvKiBmb3IgY29ycmVjdCBoaWdobGlnaHRpbmcgZHVyaW5nIGhvcml6b250YWwgc2Nyb2xsLCBzZWUgIzE2MTMyICovXG59XG5cbi5kaWppdFRyZWVJbmRlbnQge1xuXHQvKiBhbW91bnQgdG8gaW5kZW50IGVhY2ggdHJlZSBub2RlIChyZWxhdGl2ZSB0byBwYXJlbnQgbm9kZSkgKi9cblx0d2lkdGg6IDE5cHg7XG59XG5cbi5kaWppdFRyZWVSb3csIC5kaWppdFRyZWVDb250ZW50IHtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmRqX2llIC5kaWppdFRyZWVMYWJlbDpmb2N1cyB7XG5cdC8qIHdvcmthcm91bmQgSUU5IGJlaGF2aW9yIHdoZXJlIGRvd24gYXJyb3dpbmcgdGhyb3VnaCBUcmVlTm9kZXMgZG9lc24ndCBzaG93IGZvY3VzIG91dGxpbmUgKi9cblx0b3V0bGluZTogMXB4IGRvdHRlZCBibGFjaztcbn1cblxuLmRpaml0VHJlZVJvdyBpbWcge1xuXHQvKiBtYWtlIHRoZSBleHBhbmRvIGFuZCBmb2xkZXIgaWNvbnMgbGluZSB1cCB3aXRoIHRoZSBsYWJlbCAqL1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uZGlqaXRUcmVlQ29udGVudCB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4uZGlqaXRFeHBhbmRvVGV4dCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kal9hMTF5IC5kaWppdEV4cGFuZG9UZXh0IHtcblx0ZGlzcGxheTogaW5saW5lO1xuXHRwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cdHBhZGRpbmctcmlnaHQ6IDEwcHg7XG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci13aWR0aDogdGhpbjtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZGlqaXRUcmVlTGFiZWwge1xuXHRtYXJnaW46IDAgNHB4O1xufVxuXG4vKiBEaWFsb2cgKi9cblxuLmRpaml0RGlhbG9nIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiA5OTk7XG5cdG92ZXJmbG93OiBoaWRkZW47XHQvKiBvdmVycmlkZSBvdmVyZmxvdzogYXV0bzsgZnJvbSBDb250ZW50UGFuZSB0byBtYWtlIGRyYWdnaW5nIHNtb290aGVyICovXG59XG5cbi5kaWppdERpYWxvZ1RpdGxlQmFyIHtcblx0Y3Vyc29yOiBtb3ZlO1xufVxuLmRpaml0RGlhbG9nRml4ZWQgLmRpaml0RGlhbG9nVGl0bGVCYXIge1xuXHRjdXJzb3I6ZGVmYXVsdDtcbn1cbi5kaWppdERpYWxvZ0Nsb3NlSWNvbiB7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5kaWppdERpYWxvZ1BhbmVDb250ZW50IHtcblx0LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuLmRpaml0RGlhbG9nVW5kZXJsYXlXcmFwcGVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAwO1xuXHR0b3A6IDA7XG5cdHotaW5kZXg6IDk5ODtcblx0ZGlzcGxheTogbm9uZTtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cblxuLmRpaml0RGlhbG9nVW5kZXJsYXkge1xuXHRiYWNrZ3JvdW5kOiAjZWVlO1xuXHRvcGFjaXR5OiAwLjU7XG59XG5cbi5kal9pZSAuZGlqaXREaWFsb2dVbmRlcmxheSB7XG5cdGZpbHRlcjogYWxwaGEob3BhY2l0eT01MCk7XG59XG5cbi8qIGltYWdlcyBvZmYsIGhpZ2gtY29udHJhc3QgbW9kZSBzdHlsZXMgKi9cbi5kal9hMTF5IC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIsXG4uZGpfYTExeSAuZGlqaXREaWFsb2cge1xuXHRvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdERpYWxvZyAuY2xvc2VUZXh0IHtcblx0ZGlzcGxheTpub25lO1xuXHQvKiBmb3IgdGhlIG9uaG92ZXIgYm9yZGVyIGluIGhpZ2ggY29udHJhc3Qgb24gSUU6ICovXG5cdHBvc2l0aW9uOmFic29sdXRlO1xufVxuXG4uZGpfYTExeSAuZGlqaXREaWFsb2cgLmNsb3NlVGV4dCB7XG5cdGRpc3BsYXk6aW5saW5lO1xufVxuXG4vKiBTbGlkZXIgKi9cblxuLmRpaml0U2xpZGVyTW92ZWFibGUge1xuXHR6LWluZGV4Ojk5O1xuXHRwb3NpdGlvbjphYnNvbHV0ZSAhaW1wb3J0YW50O1xuXHRkaXNwbGF5OmJsb2NrO1xuXHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XG59XG5cbi5kaWppdFNsaWRlck1vdmVhYmxlSCB7XG5cdHJpZ2h0OjA7XG59XG4uZGlqaXRTbGlkZXJNb3ZlYWJsZVYge1xuXHRyaWdodDo1MCU7XG59XG5cbi5kal9hMTF5IGRpdi5kaWppdFNsaWRlckltYWdlSGFuZGxlLFxuLmRpaml0U2xpZGVySW1hZ2VIYW5kbGUge1xuXHRtYXJnaW46MDtcblx0cGFkZGluZzowO1xuXHRwb3NpdGlvbjpyZWxhdGl2ZSAhaW1wb3J0YW50O1xuXHRib3JkZXI6OHB4IHNvbGlkIGdyYXk7XG5cdHdpZHRoOjA7XG5cdGhlaWdodDowO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZGpfaWVxdWlya3MgLmRqX2ExMXkgLmRpaml0U2xpZGVySW1hZ2VIYW5kbGUge1xuXHRmb250LXNpemU6IDA7XG59XG4uZGpfaWU3IC5kaWppdFNsaWRlckltYWdlSGFuZGxlIHtcblx0b3ZlcmZsb3c6IGhpZGRlbjsgLyogSUU3IHdvcmthcm91bmQgdG8gbWFrZSBzbGlkZXIgaGFuZGxlIFZJU0lCTEUgaW4gbm9uLWExMXkgbW9kZSAqL1xufVxuLmRqX2llNyAuZGpfYTExeSAuZGlqaXRTbGlkZXJJbWFnZUhhbmRsZSB7XG5cdG92ZXJmbG93OiB2aXNpYmxlOyAvKiBJRTcgd29ya2Fyb3VuZCB0byBtYWtlIHNsaWRlciBoYW5kbGUgVklTSUJMRSBpbiBhMTF5IG1vZGUgKi9cbn1cbi5kal9hMTF5IC5kaWppdFNsaWRlckZvY3VzZWQgLmRpaml0U2xpZGVySW1hZ2VIYW5kbGUge1xuXHRib3JkZXI6NHB4IHNvbGlkICMwMDA7XG5cdGhlaWdodDo4cHg7XG5cdHdpZHRoOjhweDtcbn1cblxuLmRpaml0U2xpZGVySW1hZ2VIYW5kbGVWIHtcblx0dG9wOi04cHg7XG5cdHJpZ2h0OiAtNTAlO1xufVxuXG4uZGlqaXRTbGlkZXJJbWFnZUhhbmRsZUgge1xuXHRsZWZ0OjUwJTtcblx0dG9wOi01cHg7XG5cdHZlcnRpY2FsLWFsaWduOnRvcDtcbn1cblxuLmRpaml0U2xpZGVyQmFyIHtcblx0Ym9yZGVyLXN0eWxlOnNvbGlkO1xuXHRib3JkZXItY29sb3I6YmxhY2s7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmRpaml0U2xpZGVyQmFyQ29udGFpbmVyViB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRoZWlnaHQ6MTAwJTtcblx0ei1pbmRleDoxO1xufVxuXG4uZGlqaXRTbGlkZXJCYXJDb250YWluZXJIIHtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdHotaW5kZXg6MTtcbn1cblxuLmRpaml0U2xpZGVyQmFySCB7XG5cdGhlaWdodDo0cHg7XG5cdGJvcmRlci13aWR0aDoxcHggMDtcbn1cblxuLmRpaml0U2xpZGVyQmFyViB7XG5cdHdpZHRoOjRweDtcblx0Ym9yZGVyLXdpZHRoOjAgMXB4O1xufVxuXG4uZGlqaXRTbGlkZXJQcm9ncmVzc0JhciB7XG5cdGJhY2tncm91bmQtY29sb3I6cmVkO1xuXHR6LWluZGV4OjE7XG59XG5cbi5kaWppdFNsaWRlclByb2dyZXNzQmFyViB7XG5cdHBvc2l0aW9uOnN0YXRpYyAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6MDtcblx0dmVydGljYWwtYWxpZ246dG9wO1xuXHR0ZXh0LWFsaWduOmxlZnQ7XG59XG5cbi5kaWppdFNsaWRlclByb2dyZXNzQmFySCB7XG5cdHBvc2l0aW9uOmFic29sdXRlICFpbXBvcnRhbnQ7XG5cdHdpZHRoOjA7XG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0b3ZlcmZsb3c6dmlzaWJsZTtcbn1cblxuLmRpaml0U2xpZGVyUmVtYWluaW5nQmFyIHtcblx0b3ZlcmZsb3c6aGlkZGVuO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O1xuXHR6LWluZGV4OjE7XG59XG5cbi5kaWppdFNsaWRlclJlbWFpbmluZ0JhclYge1xuXHRoZWlnaHQ6MTAwJTtcblx0dGV4dC1hbGlnbjpsZWZ0O1xufVxuXG4uZGlqaXRTbGlkZXJSZW1haW5pbmdCYXJIIHtcblx0d2lkdGg6MTAwJSAhaW1wb3J0YW50O1xufVxuXG4vKiB0aGUgc2xpZGVyIGJ1bXBlciBpcyB0aGUgc3BhY2UgY29uc3VtZWQgYnkgdGhlIHNsaWRlciBoYW5kbGUgd2hlbiBpdCBoYW5ncyBvdmVyIGFuIGVkZ2UgKi9cbi5kaWppdFNsaWRlckJ1bXBlciB7XG5cdG92ZXJmbG93OmhpZGRlbjtcblx0ei1pbmRleDoxO1xufVxuXG4uZGlqaXRTbGlkZXJCdW1wZXJWIHtcblx0d2lkdGg6NHB4O1xuXHRoZWlnaHQ6OHB4O1xuXHRib3JkZXItd2lkdGg6MCAxcHg7XG59XG5cbi5kaWppdFNsaWRlckJ1bXBlckgge1xuXHR3aWR0aDo4cHg7XG5cdGhlaWdodDo0cHg7XG5cdGJvcmRlci13aWR0aDoxcHggMDtcbn1cblxuLmRpaml0U2xpZGVyQm90dG9tQnVtcGVyLFxuLmRpaml0U2xpZGVyTGVmdEJ1bXBlciB7XG5cdGJhY2tncm91bmQtY29sb3I6cmVkO1xufVxuXG4uZGlqaXRTbGlkZXJUb3BCdW1wZXIsXG4uZGlqaXRTbGlkZXJSaWdodEJ1bXBlciB7XG5cdGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7XG59XG5cbi5kaWppdFNsaWRlckRlY29yYXRpb24ge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcbn1cblxuLmRpaml0U2xpZGVyRGVjb3JhdGlvbkMsXG4uZGlqaXRTbGlkZXJEZWNvcmF0aW9uViB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogbmVlZGVkIGZvciBJRStxdWlya3MrUlRMK3ZlcnRpY2FsIChyZW5kZXJpbmcgYnVnKSBidXQgYWRkIGV2ZXJ5d2hlcmUgZm9yIGN1c3RvbSBzdHlsaW5nIGNvbnNpc3RlbmN5IGJ1dCB0aGlzIG1lc3NlcyB1cCBJRSBob3Jpem9udGFsIHNsaWRlcnMgKi9cbn1cblxuLmRpaml0U2xpZGVyRGVjb3JhdGlvbkgge1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLmRpaml0U2xpZGVyRGVjb3JhdGlvblYge1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5kaWppdFNsaWRlckJ1dHRvbiB7XG5cdGZvbnQtZmFtaWx5Om1vbm9zcGFjZTtcblx0bWFyZ2luOjA7XG5cdHBhZGRpbmc6MDtcblx0ZGlzcGxheTpibG9jaztcbn1cblxuLmRqX2ExMXkgLmRpaml0U2xpZGVyQnV0dG9uSW5uZXIge1xuXHR2aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDtcbn1cblxuLmRpaml0U2xpZGVyQnV0dG9uQ29udGFpbmVyIHtcblx0dGV4dC1hbGlnbjpjZW50ZXI7XG5cdGhlaWdodDowO1x0LyogPz8/ICovXG59XG4uZGlqaXRTbGlkZXJCdXR0b25Db250YWluZXIgKiB7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmRpaml0U2xpZGVyIC5kaWppdEJ1dHRvbk5vZGUge1xuXHRwYWRkaW5nOjA7XG5cdGRpc3BsYXk6YmxvY2s7XG59XG5cbi5kaWppdFJ1bGVDb250YWluZXIge1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0b3ZlcmZsb3c6dmlzaWJsZTtcbn1cblxuLmRpaml0UnVsZUNvbnRhaW5lclYge1xuXHRoZWlnaHQ6MTAwJTtcblx0bGluZS1oZWlnaHQ6MDtcblx0ZmxvYXQ6bGVmdDtcblx0dGV4dC1hbGlnbjpsZWZ0O1xufVxuXG4uZGpfb3BlcmEgLmRpaml0UnVsZUNvbnRhaW5lclYge1xuXHRsaW5lLWhlaWdodDoyJTtcbn1cblxuLmRqX2llIC5kaWppdFJ1bGVDb250YWluZXJWIHtcblx0bGluZS1oZWlnaHQ6bm9ybWFsO1xufVxuXG4uZGpfZ2Vja28gLmRpaml0UnVsZUNvbnRhaW5lclYge1xuXHRtYXJnaW46MCAwIDFweCAwOyAvKiBtb3ppbGxhIGJ1ZyB3b3JrYXJvdW5kIGZvciBmbG9hdDpsZWZ0LGhlaWdodDoxMDAlIGJsb2NrIGVsZW1lbnRzICovXG59XG5cbi5kaWppdFJ1bGVNYXJrIHtcblx0cG9zaXRpb246YWJzb2x1dGU7XG5cdGJvcmRlcjoxcHggc29saWQgYmxhY2s7XG5cdGxpbmUtaGVpZ2h0OjA7XG5cdGhlaWdodDoxMDAlO1xufVxuXG4uZGlqaXRSdWxlTWFya0gge1xuXHR3aWR0aDowO1xuXHRib3JkZXItdG9wLXdpZHRoOjAgIWltcG9ydGFudDtcblx0Ym9yZGVyLWJvdHRvbS13aWR0aDowICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1sZWZ0LXdpZHRoOjAgIWltcG9ydGFudDtcbn1cblxuLmRpaml0UnVsZUxhYmVsQ29udGFpbmVyIHtcblx0cG9zaXRpb246YWJzb2x1dGU7XG59XG5cbi5kaWppdFJ1bGVMYWJlbENvbnRhaW5lckgge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG59XG5cbi5kaWppdFJ1bGVMYWJlbEgge1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0bGVmdDotNTAlO1xufVxuXG4uZGlqaXRSdWxlTGFiZWxWIHtcblx0Lyogc28gdGhhdCBsb25nIGxhYmVscyBkb24ndCBvdmVyZmxvdyB0byBtdWx0aXBsZSByb3dzLCBvciBvdmVyd3JpdGUgc2xpZGVyIGl0c2VsZiAqL1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmRpaml0UnVsZU1hcmtWIHtcblx0aGVpZ2h0OjA7XG5cdGJvcmRlci1yaWdodC13aWR0aDowICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1ib3R0b20td2lkdGg6MCAhaW1wb3J0YW50O1xuXHRib3JkZXItbGVmdC13aWR0aDowICFpbXBvcnRhbnQ7XG5cdHdpZHRoOjEwMCU7XG5cdGxlZnQ6MDtcbn1cblxuLmRqX2llIC5kaWppdFJ1bGVMYWJlbENvbnRhaW5lclYge1xuXHRtYXJnaW4tdG9wOi0uNTVlbTtcbn1cblxuLmRqX2ExMXkgLmRpaml0U2xpZGVyUmVhZE9ubHksXG4uZGpfYTExeSAuZGlqaXRTbGlkZXJEaXNhYmxlZCB7XG5cdG9wYWNpdHk6MC42O1xufVxuLmRqX2llIC5kal9hMTF5IC5kaWppdFNsaWRlclJlYWRPbmx5IC5kaWppdFNsaWRlckJhcixcbi5kal9pZSAuZGpfYTExeSAuZGlqaXRTbGlkZXJEaXNhYmxlZCAuZGlqaXRTbGlkZXJCYXIge1xuXHRmaWx0ZXI6IGFscGhhKG9wYWNpdHk9NDApO1xufVxuXG4vKiArIGFuZCAtIFNsaWRlciBidXR0b25zOiBvdmVycmlkZSB0aGVtZSBzZXR0aW5ncyB0byBkaXNwbGF5IGljb25zICovXG4uZGpfYTExeSAuZGlqaXRTbGlkZXIgLmRpaml0U2xpZGVyQnV0dG9uQ29udGFpbmVyIGRpdiB7XG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7IC8qIG90aGVyd2lzZSBoeXBoZW4gaXMgbGFyZ2VyIGFuZCBtb3JlIHZlcnRpY2FsbHkgY2VudGVyZWQgKi9cblx0Zm9udC1zaXplOiAxZW07XG5cdGxpbmUtaGVpZ2h0OiAxZW07XG5cdGhlaWdodDogYXV0bztcblx0d2lkdGg6IGF1dG87XG5cdG1hcmdpbjogMCA0cHg7XG59XG5cbi8qIEljb24tb25seSBidXR0b25zIChvZnRlbiBpbiB0b29sYmFycykgc3RpbGwgZGlzcGxheSB0aGUgdGV4dCBpbiBoaWdoLWNvbnRyYXN0IG1vZGUgKi9cbi5kal9hMTF5IC5kaWppdEJ1dHRvbkNvbnRlbnRzIC5kaWppdEJ1dHRvblRleHQsXG4uZGpfYTExeSAuZGlqaXRUYWIgLnRhYkxhYmVsIHtcblx0ZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG59XG4uZGpfYTExeSAuZGlqaXRTZWxlY3QgLmRpaml0QnV0dG9uVGV4dCB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xufVxuXG4vKiBUZXh0QXJlYSwgU2ltcGxlVGV4dEFyZWEgKi9cbi5kaWppdFRleHRBcmVhIHtcblx0d2lkdGg6MTAwJTtcblx0b3ZlcmZsb3cteTogYXV0bztcdC8qIHcvb3V0IHRoaXMgSUUncyBTaW1wbGVUZXh0QXJlYSBnb2VzIHRvIG92ZXJmbG93OiBzY3JvbGwgKi9cbn1cbi5kaWppdFRleHRBcmVhW2NvbHNdIHtcblx0d2lkdGg6YXV0bzsgLyogU2ltcGxlVGV4dEFyZWEgY29scyAqL1xufVxuLmRqX2llIC5kaWppdFRleHRBcmVhQ29scyB7XG5cdHdpZHRoOmF1dG87XG59XG5cbi5kaWppdEV4cGFuZGluZ1RleHRBcmVhIHtcblx0LyogZm9yIGF1dG8gZXhhbmRpbmcgdGV4dGFyZWEgKGNhbGxlZCBUZXh0YXJlYSBjdXJyZW50bHksIHJlbmFtZSBmb3IgMi4wKSBkb24ndCB3YW50IHRvIGRpc3BsYXkgdGhlIGdyaXAgdG8gcmVzaXplICovXG5cdHJlc2l6ZTogbm9uZTtcbn1cblxuXG4vKiBUb29sYmFyXG4gKiBOb3RlIHRoYXQgb3RoZXIgdG9vbGJhciBydWxlcyAoZm9yIG9iamVjdHMgaW4gdG9vbGJhcnMpIGFyZSBzY2F0dGVyZWQgdGhyb3VnaG91dCB0aGlzIGZpbGUuXG4gKi9cblxuLmRpaml0VG9vbGJhclNlcGFyYXRvciB7XG5cdGhlaWdodDogMThweDtcblx0d2lkdGg6IDVweDtcblx0cGFkZGluZzogMCAxcHg7XG5cdG1hcmdpbjogMDtcbn1cblxuLyogRWRpdG9yICovXG4uZGlqaXRJRUZpeGVkVG9vbGJhciB7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHQvKiB0b3A6MDsgKi9cblx0dG9wOiBleHByZXNzaW9uKGV2YWwoKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudHx8ZG9jdW1lbnQuYm9keSkuc2Nyb2xsVG9wKSk7XG59XG5cbi5kaWppdEVkaXRvciB7XG5cdGRpc3BsYXk6IGJsb2NrO1x0LyogcHJldmVudHMgZ2xpdGNoIG9uIEZGIHdpdGggSW5saW5lRWRpdEJveCwgc2VlICM4NDA0ICovXG59XG5cbi5kaWppdEVkaXRvckRpc2FibGVkLFxuLmRpaml0RWRpdG9yUmVhZE9ubHkge1xuXHRjb2xvcjogZ3JheTtcbn1cblxuLyogVGltZVBpY2tlciAqL1xuXG4uZGlqaXRUaW1lUGlja2VyIHtcblx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uZGlqaXRUaW1lUGlja2VySXRlbSB7XG5cdGN1cnNvcjpwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmRpaml0VGltZVBpY2tlckl0ZW1Ib3ZlciB7XG5cdGJhY2tncm91bmQtY29sb3I6Z3JheTtcblx0Y29sb3I6d2hpdGU7XG59XG4uZGlqaXRUaW1lUGlja2VySXRlbVNlbGVjdGVkIHtcblx0Zm9udC13ZWlnaHQ6Ym9sZDtcblx0Y29sb3I6IzMzMztcblx0YmFja2dyb3VuZC1jb2xvcjojYjdjZGVlO1xufVxuLmRpaml0VGltZVBpY2tlckl0ZW1EaXNhYmxlZCB7XG5cdGNvbG9yOmdyYXk7XG5cdHRleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2g7XG59XG5cbi5kaWppdFRpbWVQaWNrZXJJdGVtSW5uZXIge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0Ym9yZGVyOjA7XG5cdHBhZGRpbmc6MnB4IDhweCAycHggOHB4O1xufVxuXG4uZGlqaXRUaW1lUGlja2VyVGljayxcbi5kaWppdFRpbWVQaWNrZXJNYXJrZXIge1xuXHRib3JkZXItYm90dG9tOjFweCBzb2xpZCBncmF5O1xufVxuXG4uZGlqaXRUaW1lUGlja2VyIC5kaWppdERvd25BcnJvd0J1dHRvbiB7XG5cdGJvcmRlci10b3A6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmRpaml0VGltZVBpY2tlclRpY2sge1xuXHRjb2xvcjojQ0NDO1xufVxuXG4uZGlqaXRUaW1lUGlja2VyTWFya2VyIHtcblx0Y29sb3I6YmxhY2s7XG5cdGJhY2tncm91bmQtY29sb3I6I0NDQztcbn1cblxuLmRqX2ExMXkgLmRpaml0VGltZVBpY2tlckl0ZW1TZWxlY3RlZCAuZGlqaXRUaW1lUGlja2VySXRlbUlubmVyIHtcblx0Ym9yZGVyOiBzb2xpZCA0cHggYmxhY2s7XG59XG4uZGpfYTExeSAuZGlqaXRUaW1lUGlja2VySXRlbUhvdmVyIC5kaWppdFRpbWVQaWNrZXJJdGVtSW5uZXIge1xuXHRib3JkZXI6IGRhc2hlZCA0cHggYmxhY2s7XG59XG5cblxuLmRpaml0VG9nZ2xlQnV0dG9uSWNvbkNoYXIge1xuXHQvKiBjaGFyYWN0ZXIgKGluc3RlYWQgb2YgaWNvbikgdG8gc2hvdyB0aGF0IFRvZ2dsZUJ1dHRvbiBpcyBjaGVja2VkICovXG5cdGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0VG9nZ2xlQnV0dG9uIC5kaWppdFRvZ2dsZUJ1dHRvbkljb25DaGFyIHtcblx0ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudDtcblx0dmlzaWJpbGl0eTpoaWRkZW47XG59XG4uZGpfaWU2IC5kaWppdFRvZ2dsZUJ1dHRvbkljb25DaGFyLCAuZGpfaWU2IC50YWJTdHJpcEJ1dHRvbiAuZGlqaXRCdXR0b25UZXh0IHtcblx0Zm9udC1mYW1pbHk6IFwiQXJpYWwgVW5pY29kZSBNU1wiO1x0Lyogb3RoZXJ3aXNlIHRoZSBhMTF5IGNoYXJhY3RlciAoY2hlY2ttYXJrLCBhcnJvdywgZXRjLikgYXBwZWFycyBhcyBhIGJveCAqL1xufVxuLmRqX2ExMXkgLmRpaml0VG9nZ2xlQnV0dG9uQ2hlY2tlZCAuZGlqaXRUb2dnbGVCdXR0b25JY29uQ2hhciB7XG5cdGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyAvKiBJbiBoaWdoIGNvbnRyYXN0IG1vZGUsIGRpc3BsYXkgdGhlIGNoZWNrIHN5bWJvbCAqL1xuXHR2aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDtcbn1cblxuLmRpaml0QXJyb3dCdXR0b25DaGFyIHtcblx0ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG59XG4uZGpfYTExeSAuZGlqaXRBcnJvd0J1dHRvbkNoYXIge1xuXHRkaXNwbGF5OmlubGluZSAhaW1wb3J0YW50O1xufVxuXG4uZGpfYTExeSAuZGlqaXREcm9wRG93bkJ1dHRvbiAuZGlqaXRBcnJvd0J1dHRvbklubmVyLFxuLmRqX2ExMXkgLmRpaml0Q29tYm9CdXR0b24gLmRpaml0QXJyb3dCdXR0b25Jbm5lciB7XG5cdGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiBTZWxlY3QgKi9cbi5kal9hMTF5IC5kaWppdFNlbGVjdCB7XG5cdGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGUgIWltcG9ydGFudDtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG59XG4uZGpfaWUgLmRpaml0U2VsZWN0IHtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTsgLyogU2V0IHRoaXMgYmFjayBmb3Igd2hhdCB3ZSBoYWNrIGluIGRpaml0IGlubGluZSAqL1xufVxuLmRqX2llNiAuZGlqaXRTZWxlY3QgLmRpaml0VmFsaWRhdGlvbkNvbnRhaW5lcixcbi5kal9pZTggLmRpaml0U2VsZWN0IC5kaWppdEJ1dHRvblRleHQge1xuXHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLmRqX2llNiAuZGlqaXRUZXh0Qm94IC5kaWppdElucHV0Q29udGFpbmVyLFxuLmRqX2llcXVpcmtzIC5kaWppdFRleHRCb3ggLmRpaml0SW5wdXRDb250YWluZXIsXG4uZGpfaWU2IC5kaWppdFRleHRCb3ggLmRpaml0QXJyb3dCdXR0b25Jbm5lcixcbi5kal9pZTYgLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uSW5uZXIsXG4uZGlqaXRTZWxlY3QgLmRpaml0U2VsZWN0TGFiZWwge1xuXHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi5kaWppdE51bWJlclRleHRCb3gge1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRkaXJlY3Rpb246IGx0cjtcbn1cblxuLmRpaml0TnVtYmVyVGV4dEJveCAuZGlqaXRJbnB1dElubmVyIHtcblx0dGV4dC1hbGlnbjogaW5oZXJpdDsgLyogaW5wdXQgKi9cbn1cblxuLmRpaml0TnVtYmVyVGV4dEJveCBpbnB1dC5kaWppdElucHV0SW5uZXIsXG4uZGlqaXRDdXJyZW5jeVRleHRCb3ggaW5wdXQuZGlqaXRJbnB1dElubmVyLFxuLmRpaml0U3Bpbm5lciBpbnB1dC5kaWppdElucHV0SW5uZXIge1xuXHR0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLmRqX2llOCAuZGlqaXROdW1iZXJUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRJbm5lciwgLmRqX2llOSAuZGlqaXROdW1iZXJUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRJbm5lcixcbi5kal9pZTggLmRpaml0Q3VycmVuY3lUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRJbm5lciwgLmRqX2llOSAuZGlqaXRDdXJyZW5jeVRleHRCb3ggaW5wdXQuZGlqaXRJbnB1dElubmVyLFxuLmRqX2llOCAuZGlqaXRTcGlubmVyIGlucHV0LmRpaml0SW5wdXRJbm5lciwgLmRqX2llOSAuZGlqaXRTcGlubmVyIGlucHV0LmRpaml0SW5wdXRJbm5lciB7XG5cdC8qIHdvcmthcm91bmQgYnVnIHdoZXJlIGNhcmV0IGludmlzaWJsZSBpbiBlbXB0eSB0ZXh0Ym94ZXMgKi9cblx0cGFkZGluZy1yaWdodDogMXB4ICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdFRvb2xiYXIgLmRpaml0U2VsZWN0IHtcblx0bWFyZ2luOiAwO1xufVxuLmRqX3dlYmtpdCAuZGlqaXRUb29sYmFyIC5kaWppdFNlbGVjdCB7XG5cdHBhZGRpbmctbGVmdDogMC4zZW07XG59XG4uZGlqaXRTZWxlY3QgLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHRwYWRkaW5nOiAwO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRib3JkZXItc3R5bGU6IG5vbmUgc29saWQgbm9uZSBub25lO1xuXHRib3JkZXItd2lkdGg6IDFweDtcbn1cbi5kaWppdFNlbGVjdEZpeGVkV2lkdGggLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLmRpaml0U2VsZWN0TWVudSAuZGlqaXRNZW51SXRlbUljb24ge1xuXHQvKiBhdm9pZCBibGFuayBhcmVhIGluIGxlZnQgc2lkZSBvZiBtZW51IChzaW5jZSB3ZSBoYXZlIG5vIGljb25zKSAqL1xuXHRkaXNwbGF5Om5vbmU7XG59XG4uZGpfaWU2IC5kaWppdFNlbGVjdE1lbnUgLmRpaml0TWVudUl0ZW1MYWJlbCxcbi5kal9pZTcgLmRpaml0U2VsZWN0TWVudSAuZGlqaXRNZW51SXRlbUxhYmVsIHtcblx0LyogU2V0IGJhY2sgdG8gc3RhdGljIGR1ZSB0byBidWcgaW4gaWU2L2llNyAtIFNlZSBCdWcgIzk2NTEgKi9cblx0cG9zaXRpb246IHN0YXRpYztcbn1cblxuLyogRml4IHRoZSBiYXNlbGluZSBvZiBvdXIgbGFiZWwgKGZvciBtdWx0aS1zaXplIGZvbnQgZWxlbWVudHMpICovXG4uZGlqaXRTZWxlY3RMYWJlbCAqXG57XG5cdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLyogU3R5bGluZyBmb3IgdGhlIGN1cnJlbnRseS1zZWxlY3RlZCBvcHRpb24gKHJpY2ggdGV4dCBjYW4gbWVzcyB0aGlzIHVwKSAqL1xuLmRpaml0U2VsZWN0U2VsZWN0ZWRPcHRpb24gKiB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKiBGaXggdGhlIHN0eWxpbmcgb2YgdGhlIGRyb3Bkb3duIG1lbnUgdG8gYmUgbW9yZSBjb21ib2JveC1saWtlICovXG4uZGlqaXRTZWxlY3RNZW51IHtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG59XG5cbi8qIFVzZWQgaW4gY2FzZXMsIHN1Y2ggYXMgRnVsbFNjcmVlbiBwbHVnaW4sIHdoZW4gd2UgbmVlZCB0byBmb3JjZSBzdHVmZiB0byBzdGF0aWMgcG9zaXRpb25pbmcuICovXG4uZGlqaXRGb3JjZVN0YXRpYyB7XG5cdHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbn1cblxuLyoqKiogRGlzYWJsZWQgY3Vyc29yICoqKioqL1xuLmRpaml0UmVhZE9ubHkgKixcbi5kaWppdERpc2FibGVkICosXG4uZGlqaXRSZWFkT25seSxcbi5kaWppdERpc2FibGVkIHtcblx0LyogYSByZWdpb24gdGhlIHVzZXIgd291bGQgYmUgYWJsZSB0byBjbGljayBvbiwgYnV0IGl0J3MgZGlzYWJsZWQgKi9cblx0Y3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKiBEcmFnIGFuZCBEcm9wICovXG4uZG9qb0RuZEl0ZW0ge1xuICAgIHBhZGRpbmc6IDJweDsgIC8qIHdpbGwgYmUgcmVwbGFjZWQgYnkgYm9yZGVyIGR1cmluZyBkcmFnIG92ZXIgKGRvam9EbmRJdGVtQmVmb3JlLCBkb2pvRG5kSXRlbUFmdGVyKSAqL1xuXG5cdC8qIFByZXZlbnQgbWFnbmlmeWluZy1nbGFzcyB0ZXh0IHNlbGVjdGlvbiBpY29uIHRvIGFwcGVhciBvbiBtb2JpbGUgd2Via2l0IGFzIGl0IGNhdXNlcyBhIHRvdWNob3V0IGV2ZW50ICovXG5cdC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcblx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsgLyogRGlzYWJsZSBzZWxlY3Rpb24vQ29weSBvZiBVSVdlYlZpZXcgKi9cbn1cbi5kb2pvRG5kSG9yaXpvbnRhbCAuZG9qb0RuZEl0ZW0ge1xuICAgIC8qIG1ha2UgY29udGVudHMgb2YgaG9yaXpvbnRhbCBjb250YWluZXIgYmUgc2lkZSBieSBzaWRlLCByYXRoZXIgdGhhbiB2ZXJ0aWNhbCAqL1xuICAgICNkaXNwbGF5OiBpbmxpbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uZG9qb0RuZEl0ZW1CZWZvcmUsXG4uZG9qb0RuZEl0ZW1BZnRlciB7XG5cdGJvcmRlcjogMHB4IHNvbGlkICMzNjk7XG59XG4uZG9qb0RuZEl0ZW1CZWZvcmUge1xuICAgIGJvcmRlci13aWR0aDogMnB4IDAgMCAwO1xuICAgIHBhZGRpbmc6IDAgMnB4IDJweCAycHg7XG59XG4uZG9qb0RuZEl0ZW1BZnRlciB7XG4gICAgYm9yZGVyLXdpZHRoOiAwIDAgMnB4IDA7XG4gICAgcGFkZGluZzogMnB4IDJweCAwIDJweDtcbn1cbi5kb2pvRG5kSG9yaXpvbnRhbCAuZG9qb0RuZEl0ZW1CZWZvcmUge1xuICAgIGJvcmRlci13aWR0aDogMCAwIDAgMnB4O1xuICAgIHBhZGRpbmc6IDJweCAycHggMnB4IDA7XG59XG4uZG9qb0RuZEhvcml6b250YWwgLmRvam9EbmRJdGVtQWZ0ZXIge1xuICAgIGJvcmRlci13aWR0aDogMCAycHggMCAwO1xuICAgIHBhZGRpbmc6IDJweCAwIDJweCAycHg7XG59XG5cbi5kb2pvRG5kSXRlbU92ZXIge1xuXHRjdXJzb3I6cG9pbnRlcjtcbn1cbi5kal9nZWNrbyAuZGlqaXRBcnJvd0J1dHRvbklubmVyIElOUFVULFxuLmRqX2dlY2tvIElOUFVULmRpaml0QXJyb3dCdXR0b25Jbm5lciB7XG5cdC1tb3otdXNlci1mb2N1czppZ25vcmU7XG59XG4uZGlqaXRGb2N1c2VkIC5kaWppdE1lbnVJdGVtU2hvcnRjdXRLZXkge1xuXHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbiIsIi8qIERpaml0IGN1c3RvbSBzdHlsaW5nICovXG4uZGlqaXRCb3JkZXJDb250YWluZXIge1xuICAgIGhlaWdodDogMzUwcHg7XG59XG4uZGlqaXRUb29sdGlwQ29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuLmRpaml0Q29udGVudFBhbmUge1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIG92ZXJmbG93OiBhdXRvICFpbXBvcnRhbnQ7IC8qIFdpZGdldHMgbGlrZSB0aGUgZGF0YSBncmlkIHBhc3MgdGhlaXIgc2Nyb2xsXG4gICAgb2Zmc2V0IHRvIHRoZSBwYXJlbnQgaWYgdGhlcmUgaXMgbm90IGVub3VnaCByb29tIHRvIGRpc3BsYXkgYSBzY3JvbGwgYmFyXG4gICAgaW4gdGhlIHdpZGdldCBpdHNlbGYsIHNvIGRvIG5vdCBoaWRlIHRoZSBvdmVyZmxvdy4gKi9cbn1cblxuLyogR2xvYmFsIEJvb3RzdHJhcCBjaGFuZ2VzICovXG5cbi8qIENsaWVudCBkZWZhdWx0cyBhbmQgaGVscGVycyAqL1xuLm14LWRhdGF2aWV3LWNvbnRlbnQsIC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlcjpub3QoLm14LXNjcm9sbGNvbnRhaW5lci1uZXN0ZWQpLCAubXgtdGFiY29udGFpbmVyLWNvbnRlbnQsIC5teC1ncmlkLWNvbnRlbnQge1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cbmh0bWwsIGJvZHksICNjb250ZW50IHtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG4jY29udGVudCA+IC5teC1wYWdlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xufVxuXG4ubXgtbGVmdC1hbGlnbmVkIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLm14LXJpZ2h0LWFsaWduZWQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLm14LWNlbnRlci1hbGlnbmVkIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5teC10YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4ubXgtdGFibGUgdGgsXG4ubXgtdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLm14LXRhYmxlIHRoLm5vcGFkZGluZyxcbi5teC10YWJsZSB0ZC5ub3BhZGRpbmcge1xuXHRwYWRkaW5nOiAwO1xufVxuXG4ubXgtb2Zmc2NyZWVuIHtcbiAgICAvKiBXaGVuIHBvc2l0aW9uIHJlbGF0aXZlIGlzIG5vdCBzZXQgSUUgZG9lc24ndCBwcm9wZXJseSByZW5kZXIgd2hlbiB0aGlzIGNsYXNzIGlzIHJlbW92ZWRcbiAgICAgKiB3aXRoIHRoZSBlZmZlY3QgdGhhdCBlbGVtZW50cyBhcmUgbm90IGRpc3BsYXllZCBvciBhcmUgbm90IGNsaWNrYWJsZS5cbiAgICAqL1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm14LWllLWV2ZW50LXNoaWVsZCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB6LWluZGV4OiAtMTtcbn1cblxuLm14LXN3aXBlLW5hdmlnYXRpb24tcHJvZ3Jlc3Mge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IDU0cHg7XG4gICAgd2lkdGg6IDU0cHg7XG4gICAgdG9wOiBjYWxjKDUwJSAtIDI3cHgpO1xuICAgIGxlZnQ6IGNhbGMoNTAlIC0gMjdweCk7XG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaE5nQTJBUE1BQVAvLy93QUFBSGg0ZUJ3Y0hBNE9EdGpZMkZSVVZOemMzTVRFeEVoSVNJcUtpZ0FBQUFBQUFBQUFBQUFBQUFBQUFDSDVCQWtLQUFBQUlmNGFRM0psWVhSbFpDQjNhWFJvSUdGcVlYaHNiMkZrTG1sdVptOEFJZjhMVGtWVVUwTkJVRVV5TGpBREFRQUFBQ3dBQUFBQU5nQTJBQUFFeXhESVNhdTlPT3ZOdS85Z0tJNWt5U0VKUVNTSTZVcUtLaFBLV3lMejNOcGltcXNKbnVnM0U0YUlNaVBJOXdzcVBUamlUbGt3cUF3RlRDeFhleFlHczBIMmdnSk9MWUxCUURDeTVnd213WXg5SkpyQXNzSFFYc0tyOUNGdU0zQWxjakowSUFkK0JBTUhMbWxySkFkdUJvNVBsNWlabXB1Y25aNmZjV3FJbUpDamFIT1poaXFtRkl1QWw2NFpzWml6RjZvRXJFSzN1Uk9sbTc2Z3djTER4TVhHeDhYQWo2SWt1NCtvSXJVazBoL1UwV0Vqem5IUUlzcWhrY2pCM3NuY3hkYkM1K0xseWN6aDdrOFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRNRU1oSnE3MDQ2ODI3LzJBb2ptUnBubVZoRUlSUm9HY3hzT3p3d3VSS3N3Wk83anZmQ0VnVGluUzduaEYwbU5FR2h3c2l3VW9nbHBTRHpoQzFLSWlLa1dBd0VKZ1FSTllWSk5pWlNkUjBJdVNzbGRKRlVKMHd1T01KSVcwMGJ5TnhSSE9CWklRamFHbHJXQnhmUUdHUUhsTlZqNVdhbTV5ZG5wOUxZMldib29zV2dpeW1RcWdFcWhON2ZaQ3dHYk95TzdFWHJLNDR1aHFscElxZ3dzUEV4Y2JIeU1lL0tNc2l2U2JQZExjbnRkSlAxTlBPYmlmUmlhUE13Y25DemNyYnlOWEc2TVhkeHVUaTd6NFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRPRU1oSnE3MDQ2ODI3LzJBb2ptUnBubWlxQXNJd0NLc3BFRFFCeCtOUUV3T2U3ejFmYUZhN0NVR3QxMUZZTU5BTUJWTFNTQ3JvYW9Qb2NFY1ZPWGNFZytoS0M1TEF0VEhRaEthSmlMUnU2THNUdjEzeTBJSE1PeXc5QjE4R2ZuK0Zob2VJaVlvWkNBazBDUWlMRmdwb0NobFRSd2h0QkpFV2NEWkNqbTBKRjN4bU1adHVGcVpDcVFRWG4za29vbWlrc0hpWm01MlNBSlJnbHJ3VGpZKzd3Y2JIeU1uS0U1Z296VzljSjdFL1dDZXNhdFVtMTF0RjB0RWp6eks0eTRuaHh0UEkyOGJxd2VqSTV1VHhKaEVBSWZrRUNRb0FBQUFzQUFBQUFEWUFOZ0FBQk1zUXlFbXJ2VGpyemJ2L1lDaU9aR21lYUtvQ3dqQUlxeWtRTkFISDQxQVRBNTd2UFY5b1Zyc0pRYTNYY1lsS0dtV3VKM0luRlJGcDFZNnVGaXh0YVYzUWwzY2FoejlYMnltZDdUaFRiNlo4VHEvYjcvaTh2R0NnR1FvYWNVSUZab0FYYkVkOU93UUdHR1pIaXpXT1FKQ1JCQmlJUW9vN2paaFJTd2RtQjNvVUI0b0dvNlNxcTZ5dE1RZ0pOQWtJckFxUkNpT0NJd2lXQkxSVFJTV3hsZ2toanlTOU5NYVV5TWxEVk1LOXhVT2ZKYnlXdjNxMmk3aEx1aFd3c3RsQ21hdkg1c3lyNWVyVnJ1NDRFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWlaY2dVR05BWUZKSk1pQldhZ1E0TWxuVHNFQmlLTElxczFya0Ftc1RSV3FDU3FPNjFXa1JrSUNUUUpDQmNIWmdkSENyRUt4cW9HeVVJSXRnVEZlc0syQ1h2VXQzcmNCSHZZc2RwNjA3Yldlc3VyelpYQncrZ2lFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWdTQ0FrMENRaVdDanMwQ3BRSW9qV2ZKWk1kbktjRUNhcURJSzQxWGtBaHREUzJYQ0d0cDdBa2p4Nm1ycW5Ca1NLaG9xUVhCUVkwQmdWTG01M0dGUVZtMHBUUG9nYVZ0Tit1bGR3NzNwUUhaZ2VXQjl3RzZwa29FUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2dktVU0Nsa0RnTFFvN05BcC9Fd2lDTlg1Q2NSWjdpQVFKaTFRWGp6VkNacFNWQkpkQUY0NklrVDVzRjRlUGlxSlJHWUdDaElXR2puMnVzck8wdFhZRkJqUUdCYlFGWnJ4UVNpSzVnZ1l5a3lHVkpwakpqOHVkSWNRN3hpV2pJUWRtQjJ1cEl3ZkVCdHEySG95ejFyUE01OURseUxUazR1OHBFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3a1JDVm9Db1dtOWhCTEZqcWFBZGhEVEdyUGtOSDZTV1VLQ3UvTjJ3cldTcmhiOG9HbHFZQWljSFpPSU5ETUhHOTdlWFhvZFVsTlZWbGRnUzRhS2k0eU5qbzhGQmpRR0JZOFhCV3MwQTVWUVhSbVNVd2FkWlJob1VKazhwV0duY2hlZ082SkNlRFlZQjZnREIxYWVHUWVnQnJtV3djTER4TVhHeDF5QUtic2lzNEVnemo5c0o3ZlNtdFN0UTZReTI4M0tLTXpJamVIRTBjYlY1OW5sM2NYazR1OG9FUUE3KTtcbn1cblxuIiwiLyogQmFjYXVzZSB3ZSB1c2UgY2hlY2tib3hlcyB3aXRob3V0IGxhYmVscywgYWxpZ24gdGhlbSB3aXRoIG90aGVyIHdpZGdldHMuICovXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIG1hcmdpbjogOXB4IDA7XG59XG5cbi5teC1jaGVja2JveCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG59XG5cbi5mb3JtLXZlcnRpY2FsIC5mb3JtLWdyb3VwLm14LWNoZWNrYm94IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5mb3JtLXZlcnRpY2FsIC5mb3JtLWdyb3VwLm14LWNoZWNrYm94LmxhYmVsLWFmdGVyIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uZm9ybS1ob3Jpem9udGFsIC5mb3JtLWdyb3VwLm5vLWNvbHVtbnMge1xuICAgIHBhZGRpbmctbGVmdDogMTVweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xufVxuXG4ubXgtcmFkaW9idXR0b25zLmlubGluZSAucmFkaW8ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG59XG5cbi5teC1yYWRpb2J1dHRvbnMgLnJhZGlvIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgLyogUmVzZXQgYm9vdHN0cmFwIHJ1bGVzICovXG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLm14LXJhZGlvYnV0dG9ucyAucmFkaW8gbGFiZWwge1xuICAgIC8qIFJlc2V0IGJvb3RzdHJhcCBydWxlcyAqL1xuICAgIHBhZGRpbmctbGVmdDogMDtcbn1cblxuLmFsZXJ0IHtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7XG59XG5cbi5teC1jb21wb3VuZC1jb250cm9sIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xufVxuXG4ubXgtY29tcG91bmQtY29udHJvbCBidXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG59XG5cbltkaXI9XCJydGxcIl0gLm14LWNvbXBvdW5kLWNvbnRyb2wgYnV0dG9uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbiIsIi5teC10b29sdGlwIHtcbiAgICBtYXJnaW46IDEwcHg7XG59XG4ubXgtdG9vbHRpcC1jb250ZW50IHtcbiAgICB3aWR0aDogNDAwcHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbn1cbi5teC10b29sdGlwLXByZXBhcmUge1xuICAgIGhlaWdodDogMjRweDtcbiAgICBwYWRkaW5nOiA4cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKGRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEdBQVlBTVFkQUtYWjhuZkY2NFRMN1F1WDNGZTQ1emFxNGhPYjNmTDYvZnI5L3JyaTlkWHQrWnJVOEN5bTRVbXk1Y0hsOXVQeisySzg2T2oxL056dytyRGQ5TTNxK0pEUTcyckE2aU9pMyszNC9FQ3U0OGpvOXgyZjNnV1YyLy8vL3dBQUFBQUFBQ0gvQzA1RlZGTkRRVkJGTWk0d0F3RUFBQUFoL3d0WVRWQWdSR0YwWVZoTlVEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU5pMWpNVFF3SURjNUxqRTJNRFExTVN3Z01qQXhOeTh3TlM4d05pMHdNVG93T0RveU1TQWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JTWldZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlZKbFppTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRnZ0tFMWhZMmx1ZEc5emFDa2lJSGh0Y0UxTk9rbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZSVUpGTmtVNE5FWkNORVZETVRGRk9EazNNREJCTlVVMVJVTTRRamczUVRVaUlIaHRjRTFOT2tSdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNlJVSkZOa1U0TlRCQ05FVkRNVEZGT0RrM01EQkJOVVUxUlVNNFFqZzNRVFVpUGlBOGVHMXdUVTA2UkdWeWFYWmxaRVp5YjIwZ2MzUlNaV1k2YVc1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRwRlFrVTJSVGcwUkVJMFJVTXhNVVU0T1Rjd01FRTFSVFZGUXpoQ09EZEJOU0lnYzNSU1pXWTZaRzlqZFcxbGJuUkpSRDBpZUcxd0xtUnBaRHBGUWtVMlJUZzBSVUkwUlVNeE1VVTRPVGN3TUVFMVJUVkZRemhDT0RkQk5TSXZQaUE4TDNKa1pqcEVaWE5qY21sd2RHbHZiajRnUEM5eVpHWTZVa1JHUGlBOEwzZzZlRzF3YldWMFlUNGdQRDk0Y0dGamEyVjBJR1Z1WkQwaWNpSS9QZ0gvL3YzOCsvcjUrUGYyOWZUejh2SHc3Kzd0N092cTZlam41dVhrNCtMaDROL2UzZHpiMnRuWTE5YlYxTlBTMGREUHpzM015OHJKeU1mR3hjVER3c0hBdjc2OXZMdTZ1YmkzdHJXMHM3S3hzSyt1cmF5cnFxbW9wNmFscEtPaW9hQ2ZucDJjbTVxWm1KZVdsWlNUa3BHUWo0Nk5qSXVLaVlpSGhvV0VnNEtCZ0g5K2ZYeDdlbmw0ZDNaMWRITnljWEJ2Ym0xc2EycHBhR2RtWldSalltRmdYMTVkWEZ0YVdWaFhWbFZVVTFKUlVFOU9UVXhMU2tsSVIwWkZSRU5DUVVBL1BqMDhPem81T0RjMk5UUXpNakV3THk0dExDc3FLU2duSmlVa0l5SWhJQjhlSFJ3Ykdoa1lGeFlWRkJNU0VSQVBEZzBNQ3dvSkNBY0dCUVFEQWdFQUFDSDVCQVVFQUIwQUxBQUFBQUFZQUJnQUFBVWNZQ2VPWkdtZWFLcXViT3UrY0N6UGRHM2ZlSzd2Zk8vL3dPQXJCQUFoK1FRRkJBQWRBQ3dBQUFBQUFRQUJBQUFGQTJBWEFnQWgrUVFGQkFBZEFDd1VBQXdBQVFBQ0FBQUZBeURUaEFBaCtRUUZCQUFkQUN3VEFBc0FBZ0FHQUFBRkMyQVhkRnhuZE1UUU1WMElBQ0g1QkFVRUFCMEFMQkVBQ3dBRUFBZ0FBQVVSWUNjMllpbHlvcldkVm1jTnA4aTBYUWdBSWZrRUJRUUFIUUFzRHdBT0FBWUFCZ0FBQlE5Z0ozYUJNWjRqaDQ0V0I0bkZjSVlBSWZrRUNRUUFIUUFzRFFBUEFBZ0FCZ0FBQlJGZ0o0NGRSSGJCcVlvcEdRd2NPUmhxQ0FBaCtRUUpCQUFkQUN3QUFBQUFHQUFZQUFBRkxXQW5qbVJwbm1pcXJtenJ2bkFzejNSdDMzaXVrOEpnRHdRYlIyaWhCVGlOV1c4WTR6aDlHaGxnUnkyRkFBQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZNMkFuam1ScG5taXFybXpydm5Bc3ozUnQzMmh6YzN0U0M3emFZT2VvY1NBMFlNWlZJUWtHd1JhUVE2VjJpaklBYnFzS0FRQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZObUFuam1ScG5taXFybXpydm5Bc3ozUnQzMmh6Yy90VVY3eWFJV01MMGppRVZRVUZMS3dDSEVPcFlqQ3lNcHlzbGloYjRMNnJFQUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGT21BbmptUnBubWlxcm16cnZuQXN6M1J0MzJoemN6dFFWN3phcG1BTG1vQXNqZzdGTUI0NWpGV0RzeWxWTnM1VmdjUHRFbU8rQ202c0NnRUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCVDlnSjQ1a2FaNW9xcTVzNjc1d0xNOTBiZDhvY1hPQ3plMm14c2ExWVp4K0xRN2cxRUNxT0prVWc3TkljWXlxNXJDMGdicW1uSENZc1lRdGU3aDBLZ1FBSWZrRUNRUUFIUUFzQUFBQUFCZ0FHQUFBQlVSZ0o0NWthWjVvcXE1czY3NXdMTTkwYmQ4b1lRWXdKNVNjbmluNElwSVlGOWNsV1ZvWVY1ekZLZk5FY1RLcFN4WElURkc3SXkyMnhlQ1l6eGNwVFBxajRONm9FQUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGU21BbmptUnBubWlxcm16cnZuQXN6M1ROYm5iQXdZUzV2NXdBcWZKekZVZEhWckt6WWJnWU9OK2t4YW1jQ2dQV29KRGFaRk9EYUtyQWNaWVlIRzVydzJtN04xWllSUmkzMlZjaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVlBZQ2VPWkdtZWFLcXViT3UrY0N6UDVVYlFJb2QzZ3I3N3JodkpBbXh4TEtVaVM5bmhURjVNQThQRk1KaDZMbzdneEJpd0JsUFV4cHNhYkZZTVRwaVVYcXNFQm81OGJ0akN0aGI3YnI4S0FRQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZVMkFuam1ScG5taXFybXpydmpETFhERXBjRFZwWlBtSTk1MGJVUFJ6UVVxUVlvdHpKQ2xaejhsenhabVVEQVZYd1hDYW9yeWRDM2Rsb0tFTTQzTWFkZUZrU3dXT2VSVXdjTzU0UXlBbU9BcUdnQzBoQUNINUJBVUVBQjBBTEFBQUFBQVlBQmdBQUFWWFlDZU9aR21lYUtxdWJMdHVsbnNhaG14dXRVMEduRjRPRFIrcEp4VHhpaUpDemhYNzJRYUVIZEUxSFZWWkhNQXY0OG9NVE1jV0ozRENzUXliMUdBNSs2bzJIRzRwdzBtekFnTU9aNURmazIwQlVYOUloQzBoQUNINUJBa0VBQjBBTEFJQUF3QVVBQk1BQUFVL1lDZUsxdENNYUpweWhPcU93L2JPOUd6VmM0dnY5YzJuc2w5QVpQaDFpajZqY3JRUW5YYlBEc1E0SFFWcFYxUld0VTFGUjE5WDlWZ1VqV20rWkNvRUFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVmJZQ2VPWkdtZWFLcU9GckdpeE1CeHpHc2FuR3VidzdhZkJ0K3ZST0FNVGJsanlhaGtNWnVkaG5BWEtFbUhtOFp5K0JRdHVpL09ZcWw3RlUvZ1ZQSTJUVzBNcVo1cU0xamh5cU1pM0R6amJEWjllRFlRRFZwalVJZy9JUUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGWUdBbmptUnBubWlxaWxXWFpjUnFFaHczWE5jZ2t3WUg3U2ZPQlhneURJa2xHdExrVzVZNFRoSkJGeFZsamtCQjZZcThaRXBVWUpnRkpYSmFwT1lPVXBhMlY1eVl5U2k3R0ZKQzFlVmRWSlBZZHpJME5qZ0ROWEpFQkYrSVZZMUFJUUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGWldBbmptUnBubWlxaWtKWEZNUnFOaHhuTUlWUngvTEFXYWFBck1OaERGRUQ0M0hHV1o1K3pwS2dHUzBacXFTQ2Npa2NhWjA0RXVHNk5QQkcxR01hRFJ4YTFpS2F1bkZLeWhpRFZGSEZnSnQ4YlNSdmVUSTBOZ3dNT2h4MFRnUXZIUzFZa2xFaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVm1ZQ2VPWkdtZWFLcUtRY01VeldwbUhMZDF4VlpuY2pjTUFWUGdwMXB3Q2lyR0RUVkE5azZad1JQRm1aNENWV3Vwc2RTT1h0cmdWMXRna0xqV1RZeVVmYlpISExFTU81UDJCanhUVTFhd240NHFCVzhtQzBSQ2hpczBOZ1U1TzFZdFptdGVrNU1oQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFWbllDZU9aR21lYUtxS1FYWmQyV29XSEhkMURWTVhjc1VOSjRHQnMrTHdVclFLeWlpam5RcEFXY2R3NGdTa3FBQVJlM0p4VDdkdngwS0NmYjBqTk5aTTJtTGRJeXRXTzR2S0JzY1NjK1ZjNXA5d1ZYWWtBUU9CS0RRMkdTNDdYeTB2SFZkaWs1UWlJUUFoK1FRRkJBQWRBQ3dBQUFBQUdBQVlBQUFGYm1BbmptUnBubWlxaWxheGJjVnFNaHpIZEExdHl3Sm5uQUlEUjZEaVpGUVpUc29vUzU0WVAxbkhjQ3NOcFNJbHlhTEZjZ0trUWhWcjJwQkZpOUttY1c2WVIrSXpJMGJxU3UxWm9qZFJnbUtwSjB3clRpaUNLSVFvUFZFbFFYZ29PZ3dOT1RWalVpMW1kR2VhbXlVaEFDSDVCQVVFQUIwQUxBSUFBZ0FVQUJRQUFBVmJZQ2VPa01HZG5BR05MSWx5dy9DdWJjZWNXWjJkVEhzYk5aYXBKNEtrZ2kwVDdZU3NNWTI1Sm10WDRraWRKdXVWaFJwc1dUTFlkeFRXamsrbXNTZ0ZIVk03ekcvY0NMd3FSei9wMElmVDhZSkdYV1VjTkVoVktDbzFJUUFoK1FRRkJBQWRBQ3dCQUFFQUZnQVdBQUFGWjJBbmptUFZCV1NxbmdaSGNnYTZqc2JyMG5OMTEyVEZjNmFVNnpZYnBtckVXY2ZGTzRrRXloSFUyYWsxbzlYc0VydHlCYm1xWUpKN1E0MnhMaG00MlBsaVRUc3QxeXBTYzZkcUpGa3VHazVWQWtZcE9pSlhiVDlLVnh4Smhpb0JMUytOVVNaMktpRUFJZmtFQ1FRQUhRQXNBUUFCQUJZQUZnQUFCV3BnSjQ2aWxWMVgxazFrUzE2Y3kxMHUyY1MxeURVMU0zSUVFZ0hYOGRsR3dWcXl3L3ZsY2tSYVovbE1TbVBFcDY0VHM0aW8ycVJKcXoyUm42aHpMcVd1cWI1dEtyWTk3MGpCU3BHVTI5Nk9tbE01UzRBaVJseFVReU9HTmxreWhDNHdNbnRrSmlncUxDNGhBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVYrWUNlT1pHbWVwVlZjVjlaTjZMbHhkRTF2OGRqWWZOM0VEQnVFQkxFeFRqdmE4RlNrL1VxMW5DaEttbkdXdVNadVJKVjJ1aGFsbDh1eGlESzBNZG5WdWFUVlg4NUY1T2JBNC9NTzJnNm5zZU5ZVWsxbVUyOWVYUjFXZ1NoYUpBdUlLSkFkU1ZlTVBpZEJrRTAwUnlpVVBaZFNWajFiYWhZWkxCbUVkM0FoQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFXQllDZU9aR21lcFZWY1Y5Rk42TGx4ZEUxdjhkallmTjNFakpyQlpLZ3hUanRhVE9BejFYS2lKMm5HRVVDakhOeUlOcngyaXB5UlJlbnRNRGtXVVlGY3ByazZGN2FYZGhIRncrVU9YUzIvdXJkVlpXY2tYR1ZnVTMweE55UUxVamsxQ3lWSmdTZG5IRDhtUVlVa0FtQWNSeWlUUFUxUVZEMWFaU29zQldsNXJoMGhBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVdDWUNlT1pHbWVwVlZjVjlGTjZMbHhkRTF2OGRqWWZOM0VqTnJGZEtreFRqdk9JRGVnL1VxMFphN1Q1SlJtMXFub1JxSU50WjFpdG1PaGdVYzBpNmhnUG5kb3JuRDc3QldKM1cvT2x6MEd3OUY5VXdCcEloTjFZSGNqV0hRY09GMUtXbFVtU1FNQU1WVlBKVUdISXdCaUhFY29TVDAybVRGWVBZNW5LaXd1TUhodUlRQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZlbUFuam1ScG5xV1ZNVXlHdmhjbnovTDFqZzJ0ejgxYnpLNVNabFk0NVRpR20wSFdLOG1TdDg2U1U0cFJvNklhU1JiRURxOGRpd3k3NVZoRVgvS0lLMktNMVIwWm8vMVd5OUYxTWpzTDF2ZjNYaklUSTFaMkhEWmxVRXA1SWtlS0oxTk5KVCtBSTE4Y1JTaEhPelNTTUp5SGNHRXJMUjJEb25BaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVjlZQ2VPWkdtZVpkQXdUSU8rRnlmUDh2V09CRDFjMTBBVHI4SU1Zb0xNQ3FjY3h3YVRBVXUxbXlqR0tWR2xvMmlXUThSMmpGVlJRT2JkQmtRTnpxQXM4bzBZUzNZbnhoREJtV1Y2ZHMzMnVUcGpZV1ZrVzExWVlDUlhYbHBiZUUyQ09Jd25WRThsUWpLR0kyQWNTQzg2UEQ0elhsUTBrbGhuTEg5eWNpRUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCWDFnSjQ1a2FaNWwwQlJGZzc0TUo4OHk4NDRFZlhYWlJST3ZqR3h3RWd4a21WT09rd3pLZ0NYa1RTVGtsR0xFcWVob0c4bTBwSzhvSUFaM1pBRlJnN016ZDN5akF0UE40eFJFY25yOUxtTFQ0V05sWUdoZUhBSnVnbGhtWEZGelUxVW1TMDBvVlZBbFZWa2xSbEl2T2hrOU5HQXhORE5kWmlvZExYcDZJUUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGZ0dBbmptUnBucVhRRkZrbm9HakJ6ZlJjd0NORUR4M1JaUU1hQk5hWWJWQ2JXZU9rNCtCNnM5UE05K3hFU2JKanRaTzhqYTViQUZqQTRXMUZ3WmVJMHpyL25LSU1oK3BteCtGdWdoM2FQc3ZwWlc0ZFFTUmdXNFpaWjEwbFUxVjZlRG1OTUk5REprVWNXaVpKa0ZJekF4aytRRUpWTWpVMFhtY3ZHYUNDclIwaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVjZZQ2VPWkdtZXBkQmxHWUcrR1NmUGN2YU8xcnk1UWJmTmxoZEJWa0FWWks2VDdOWUpMRTJ5SHJQekhNV0swODdSTnFwbXF3TE9KanY2cVVTY0pIbG81WkJKSEc1TVNuWnkyZThPSGoxK203dHViMTVYWkZzbFVWK0JKRG1LS0U0Y1FTWkRIRmdtUjJrM09qd0VQMTR3TkRSY1pDb3NIV2Q1YnlFQUlma0VDUVFBSFFBc0FBQUFBQmdBR0FBQUJYcGdKNDVrYVo1bDFXVk5wNkpueHMzMG5NRmpRQmR1RnhTMEFJd3dHeFpSbkFGT05PQUlTOGRsSnlxU0VhUWk0bTFFbFVZckhCNVdCQ1J4eG1hSXFNRjVqY0d0RGh2TmpVK2ZZOTBJTEI2WHVXZG9WRlpqV2xDQlhvaG1Ta3ROZUNSRUhGY25rWk1uT2pNOEtqOUJVakkxTkZ0b0VBMHRiblJqSVFBaCtRUUpCQUFkQUN3QUFBQUFHQUFZQUFBRmdHQW5qbVJwbmlaRWRCYnFObHdzeDQwN0NyR3hkbE5IR0RHQkM4SVp1QUlEam90anNJbUF3bExST1VxV1lBR3FLTUNwalpqYUVaREUyWVU3U3BFbGZhNXdXajcydVN3aXlNTjBFYWR5N3JoSEMzZGFIQXRmVFdkakkxaGhYRjVmUmxwV0ptQk9pU2xGV1NkSUhCQXVPRXc3UFQ4eFdqQXpNbzVoRml0d2ZYMGhBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVYxWUNlT1pHbWVwa1YwQWVvU1hDekhxeXRXOFVWTzNSWGJIWTdCWnVCWVRqZ2QwSGNTQWtmRkV1dzVXbkJxSW82UzJ1T1FPQzF1ZGhUd2lqc1RzR2g2RG1MTlozaTVIUXpYei9PUjlzd2NzYmxYSlU1VVVTVkpUejRWS0VJTEtBdEZSeWc0ZXlNOFBuQTJNRE15V0Z3QkJDc0FkR0loQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFWellDZU9aR21lWmdCMUFlb1NBeWZQQStHU2NWWldHVGZjQWM3bGR1RzBUaHpkclZQZ25BYkRwZWp5SXhHYzBoSEhOaG9vczUxTVZZUUZrMGRCcy9ZSUtaczVxN082QXhlbDUyNU9SVjF4ZTlWaVZtNVNXeVZRWUZSSUJWSk5LRUZSS0VWSEtEazdQV00zTURNMFhHWXFjWE5xSVFBaCtRUUpCQUFkQUN3QUFBQUFHQUFZQUFBRmQyQW5qbVJwbm1iUVdkMkVvdERBY1lZeEQ5QkxEZ05oRWp4ZGdKUFJaVGlxRThlbkUzRk9nMkpUbEJtVVl0TmRidFRMam9Da3AzY2s3Z2pLWTQ1Z1pCaXpSNWEydTJOZ09lZWQ4Z1R0NWJoRVhXTmdPMjQ0SlZGZVZTWUxTMU1FZkdGU0tFZE5QRXdrUUZaVE1UTTFOMXRqYXl4L2VGa2hBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVZvWUNlT1pHbWVwdEFGYU50WkJtY3dUR3hZN21nWXA3QzdBZzdFQmVHMGpMa1ZzbVFZSmpzUUhnbjIxT0YwVlpKVXRNd3VmVm1kU3NRSWswZUJzcG5CRW0yejcyNjFheGhYd1NNcTNOU3NSazl5UnloQlRpaEZkaWMvS1lvNU1ESTBObVlkS20yU1dTRUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCV3hnSjQ1a2FaNW0xUVZvdXhvYzB6UU1aN0N1YURBb1k3Z1ZUazRnUkJWekhjN0VaQkFnUllJZktjQjdpcW9qcVZWSE9tNlBGZXlXb1JJMXRxT3pDSWZ1cUsvdERubmt0WG9OaTdaMjFXYXdkVTVQVVNkMUxZVWlRWUVvUkRrN1BYc3RBVEF5TkRaL1ZwZHhUeUVBSWZrRUNRUUFIUUFzQUFBQUFCZ0FHQUFBQldOZ0o0NWthWjVtMVFsbzJ3V2IwWFJRWTJ5Qk8yN3oyV3c2ZzY0alJCa2NRK0xFQkV5S21xTkF6emw5T2tsUTRuVlVGRldwcXRWMkJCa0p5bU8wZDl5cGRxL3ZyRE1yM1g2MThOUGJaVmlhRm50NkN5NDhLRDlKTURJME5qaGpLaXhzV3lFQUlma0VDUVFBSFFBc0FBQUFBQmdBR0FBQUJWaGdKNDVrYVo3bTBnbG91MjdGMmxuRjVwSTJhdVV0M3dNb24wc29JZzVMQXN1dHBNUXRUYjdZa3lRVk5hZldFUXRMMnNxNDN5ejQycWxpemNhYmtMeGtkOUxCRTd5VUJzeUxhcmYxUG9JcFdUVmdJaXdxZ2xnaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVlpZQ2VPWkdtZXA5QUJhTnN4aE5xcGpPeSt0c25jeGQzMUtLQlBTTnI1UnNaUjdyaE1Ia1ZPd3BQVUlDMmZyT21wSXVKcVI5N1pWenlTZnF2SXNaTThiV3JYSXFKTFRxS2I3TVdyU0FCSHdUb0xZbjArWGdwalV5RUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCVkZnSjQ1a2FaNW5oYTVqWm9sSloyVXNTYVBBdlJKMXg2Ty9YdERXSTVZQVJaS3FsVFNLWHMxb2JTSmFTcSttbUlpSzVjcXVVSkd1T2NhYXlqVzBMemtzdFUvdmtwclpxOUNRSFdURzJ1U2JleUVBSWZrRUNRUUFIUUFzQUFBQUFCZ0FHQUFBQlVsZ0o0NWthWjVuaGE0anBJcE9CN0Vrd2Rwc1FIYzYydSsvMms0NExNcU1MZVF1cHV4TVJJdW05QlNGVGErZGwyaW01R0pMdUdLWUZNeXR5dEt4U2IzeWlpcnU0clA2WllVQUFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVTVZQ2VPWkdtZUo0Q3VZMUNxS2l1Nk1ydlVkNjJiOU43dnRaOFBTQ3dtUkxHaU1yVkVKWnZMMzdNcGxGV2hwWnpOaW0zeGxxcGpseFVDQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFVM1lDZU9aR21lNklTdTRtSzY3RmpGTkoyc2Q2M0g4MTdEUHFCdlNDeUtWRVdrY1lrUzZweE1VUys2azFCWDAxT1dCWVhxbE5kVENBQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZMR0Fuam1ScG5taXFvdFBxdm5Bc3oySkxxL2F0Ny96cDlNRGdLQmNqQ284OHhVdXBNNmFjVHRnUGFRb0JBQ0g1QkFVRUFCMEFMQUFBQUFBWUFCZ0FBQVVqWUNlT1pHbWVhS3F1Yk91K2NMeFNjbTNmZUk3VGV0L3p2cUJ3eUFLV2pDOGtNUVFBT3c9PSkgbm8tcmVwZWF0IHNjcm9sbCBjZW50ZXIgY2VudGVyO1xufVxuLm14LXRvb2x0aXAtY29udGVudCAudGFibGUgdGgsXG4ubXgtdG9vbHRpcC1jb250ZW50IC50YWJsZSB0ZCB7XG4gICAgcGFkZGluZzogMnB4IDhweDtcbn1cbiIsIi5teC10YWJjb250YWluZXItcGFuZSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuLm14LXRhYmNvbnRhaW5lci1jb250ZW50LmxvYWRpbmcge1xuICAgIG1pbi1oZWlnaHQ6IDQ4cHg7XG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaE5nQTJBUE1BQVAvLy93QUFBSGg0ZUJ3Y0hBNE9EdGpZMkZSVVZOemMzTVRFeEVoSVNJcUtpZ0FBQUFBQUFBQUFBQUFBQUFBQUFDSDVCQWtLQUFBQUlmNGFRM0psWVhSbFpDQjNhWFJvSUdGcVlYaHNiMkZrTG1sdVptOEFJZjhMVGtWVVUwTkJVRVV5TGpBREFRQUFBQ3dBQUFBQU5nQTJBQUFFeXhESVNhdTlPT3ZOdS85Z0tJNWt5U0VKUVNTSTZVcUtLaFBLV3lMejNOcGltcXNKbnVnM0U0YUlNaVBJOXdzcVBUamlUbGt3cUF3RlRDeFhleFlHczBIMmdnSk9MWUxCUURDeTVnd213WXg5SkpyQXNzSFFYc0tyOUNGdU0zQWxjakowSUFkK0JBTUhMbWxySkFkdUJvNVBsNWlabXB1Y25aNmZjV3FJbUpDamFIT1poaXFtRkl1QWw2NFpzWml6RjZvRXJFSzN1Uk9sbTc2Z3djTER4TVhHeDhYQWo2SWt1NCtvSXJVazBoL1UwV0Vqem5IUUlzcWhrY2pCM3NuY3hkYkM1K0xseWN6aDdrOFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRNRU1oSnE3MDQ2ODI3LzJBb2ptUnBubVZoRUlSUm9HY3hzT3p3d3VSS3N3Wk83anZmQ0VnVGluUzduaEYwbU5FR2h3c2l3VW9nbHBTRHpoQzFLSWlLa1dBd0VKZ1FSTllWSk5pWlNkUjBJdVNzbGRKRlVKMHd1T01KSVcwMGJ5TnhSSE9CWklRamFHbHJXQnhmUUdHUUhsTlZqNVdhbTV5ZG5wOUxZMldib29zV2dpeW1RcWdFcWhON2ZaQ3dHYk95TzdFWHJLNDR1aHFscElxZ3dzUEV4Y2JIeU1lL0tNc2l2U2JQZExjbnRkSlAxTlBPYmlmUmlhUE13Y25DemNyYnlOWEc2TVhkeHVUaTd6NFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRPRU1oSnE3MDQ2ODI3LzJBb2ptUnBubWlxQXNJd0NLc3BFRFFCeCtOUUV3T2U3ejFmYUZhN0NVR3QxMUZZTU5BTUJWTFNTQ3JvYW9Qb2NFY1ZPWGNFZytoS0M1TEF0VEhRaEthSmlMUnU2THNUdjEzeTBJSE1PeXc5QjE4R2ZuK0Zob2VJaVlvWkNBazBDUWlMRmdwb0NobFRSd2h0QkpFV2NEWkNqbTBKRjN4bU1adHVGcVpDcVFRWG4za29vbWlrc0hpWm01MlNBSlJnbHJ3VGpZKzd3Y2JIeU1uS0U1Z296VzljSjdFL1dDZXNhdFVtMTF0RjB0RWp6eks0eTRuaHh0UEkyOGJxd2VqSTV1VHhKaEVBSWZrRUNRb0FBQUFzQUFBQUFEWUFOZ0FBQk1zUXlFbXJ2VGpyemJ2L1lDaU9aR21lYUtvQ3dqQUlxeWtRTkFISDQxQVRBNTd2UFY5b1Zyc0pRYTNYY1lsS0dtV3VKM0luRlJGcDFZNnVGaXh0YVYzUWwzY2FoejlYMnltZDdUaFRiNlo4VHEvYjcvaTh2R0NnR1FvYWNVSUZab0FYYkVkOU93UUdHR1pIaXpXT1FKQ1JCQmlJUW9vN2paaFJTd2RtQjNvVUI0b0dvNlNxcTZ5dE1RZ0pOQWtJckFxUkNpT0NJd2lXQkxSVFJTV3hsZ2toanlTOU5NYVV5TWxEVk1LOXhVT2ZKYnlXdjNxMmk3aEx1aFd3c3RsQ21hdkg1c3lyNWVyVnJ1NDRFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWlaY2dVR05BWUZKSk1pQldhZ1E0TWxuVHNFQmlLTElxczFya0Ftc1RSV3FDU3FPNjFXa1JrSUNUUUpDQmNIWmdkSENyRUt4cW9HeVVJSXRnVEZlc0syQ1h2VXQzcmNCSHZZc2RwNjA3Yldlc3VyelpYQncrZ2lFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWdTQ0FrMENRaVdDanMwQ3BRSW9qV2ZKWk1kbktjRUNhcURJSzQxWGtBaHREUzJYQ0d0cDdBa2p4Nm1ycW5Ca1NLaG9xUVhCUVkwQmdWTG01M0dGUVZtMHBUUG9nYVZ0Tit1bGR3NzNwUUhaZ2VXQjl3RzZwa29FUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2dktVU0Nsa0RnTFFvN05BcC9Fd2lDTlg1Q2NSWjdpQVFKaTFRWGp6VkNacFNWQkpkQUY0NklrVDVzRjRlUGlxSlJHWUdDaElXR2puMnVzck8wdFhZRkJqUUdCYlFGWnJ4UVNpSzVnZ1l5a3lHVkpwakpqOHVkSWNRN3hpV2pJUWRtQjJ1cEl3ZkVCdHEySG95ejFyUE01OURseUxUazR1OHBFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3a1JDVm9Db1dtOWhCTEZqcWFBZGhEVEdyUGtOSDZTV1VLQ3UvTjJ3cldTcmhiOG9HbHFZQWljSFpPSU5ETUhHOTdlWFhvZFVsTlZWbGRnUzRhS2k0eU5qbzhGQmpRR0JZOFhCV3MwQTVWUVhSbVNVd2FkWlJob1VKazhwV0duY2hlZ082SkNlRFlZQjZnREIxYWVHUWVnQnJtV3djTER4TVhHeDF5QUtic2lzNEVnemo5c0o3ZlNtdFN0UTZReTI4M0tLTXpJamVIRTBjYlY1OW5sM2NYazR1OG9FUUE3KSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDMycHggMzJweDtcbn1cbi5teC10YWJjb250YWluZXItdGFicyB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuLm14LXRhYmNvbnRhaW5lci10YWJzIGxpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ubXgtdGFiY29udGFpbmVyLWluZGljYXRvciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQ6ICNmMmRlZGU7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGNvbG9yOiAjYjk0YTQ4O1xuICAgIHRvcDogMHB4O1xuICAgIHJpZ2h0OiAtNXB4O1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB6LWluZGV4OiAxOyAvKiBpbmRpY2F0b3Igc2hvdWxkIG5vdCBoaWRlIGJlaGluZCBvdGhlciB0YWIgKi9cbn1cbiIsIi8qIGJhc2Ugc3RydWN0dXJlICovXG4ubXgtZ3JpZCB7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47IC8qIHRvIHByZXZlbnQgYW55IG1hcmdpbiBmcm9tIGVzY2FwaW5nIGdyaWQgYW5kIGZvb2JhcmluZyBvdXIgc2l6ZSBjYWxjdWxhdGlvbnMgKi9cbn1cbi5teC1ncmlkLWNvbnRyb2xiYXIsIC5teC1ncmlkLXNlYXJjaGJhciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZmxleC13cmFwOiB3cmFwO1xufVxuLm14LWdyaWQtY29udHJvbGJhciAubXgtYnV0dG9uLFxuLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIC5teC1idXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbn1cblxuLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIC5teC1idXR0b24gKyAubXgtYnV0dG9uLFxuLm14LWdyaWQtY29udHJvbGJhciAubXgtYnV0dG9uICsgLm14LWJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDAuM2VtO1xufVxuXG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXNlYXJjaC1jb250cm9scyAubXgtYnV0dG9uICsgLm14LWJ1dHRvbixcbltkaXI9XCJydGxcIl0gLm14LWdyaWQtY29udHJvbGJhciAubXgtYnV0dG9uICsgLm14LWJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjNlbTtcbn1cblxuLm14LWdyaWQtcGFnaW5nYmFyLFxuLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG4ubXgtZ3JpZC10b29sYmFyLCAubXgtZ3JpZC1zZWFyY2gtaW5wdXRzIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICBmbGV4OiAxO1xufVxuXG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXRvb2xiYXIsXG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXNlYXJjaC1pbnB1dHMge1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAwcHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXBhZ2luZ2JhcixcbltkaXI9XCJydGxcIl0gLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIHtcbiAgICBtYXJnaW4tbGVmdDogMHB4O1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLm14LWdyaWQtcGFnaW5nLXN0YXR1cyB7XG4gICAgcGFkZGluZzogMCA4cHggNXB4O1xufVxuXG4vKiBzZWFyY2ggZmllbGRzICovXG4ubXgtZ3JpZC1zZWFyY2gtaXRlbSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuLm14LWdyaWQtc2VhcmNoLWxhYmVsIHtcbiAgICB3aWR0aDogMTEwcHg7XG4gICAgcGFkZGluZzogMCA1cHg7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbltkaXI9XCJydGxcIl0gLm14LWdyaWQtc2VhcmNoLWxhYmVsIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLm14LWdyaWQtc2VhcmNoLWlucHV0IHtcbiAgICB3aWR0aDogMTUwcHg7XG4gICAgcGFkZGluZzogMCA1cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4ubXgtZ3JpZC1zZWFyY2gtbWVzc2FnZSB7XG4gICAgZmxleC1iYXNpczogMTAwJTtcbn1cblxuLyogd2lkZ2V0IGNvbWJpbmF0aW9ucyAqL1xuLm14LWRhdGF2aWV3IC5teC1ncmlkIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbiIsIi5teC1jYWxlbmRhciB7XG4gICAgei1pbmRleDogMTAwMDtcbn1cblxuLm14LWNhbGVuZGFyLW1vbnRoLWRyb3Bkb3duLW9wdGlvbnMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLm14LWNhbGVuZGFyLCAubXgtY2FsZW5kYXItbW9udGgtZHJvcGRvd24ge1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4ubXgtY2FsZW5kYXItbW9udGgtY3VycmVudCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4ubXgtY2FsZW5kYXItbW9udGgtc3BhY2VyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5teC1jYWxlbmRhciwgLm14LWNhbGVuZGFyLW1vbnRoLWRyb3Bkb3duLW9wdGlvbnMge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JleTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbiIsIi5teC1kYXRhZ3JpZCB0ciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubXgtZGF0YWdyaWQgdHIubXgtZGF0YWdyaWQtcm93LWVtcHR5IHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5teC1kYXRhZ3JpZCB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLm14LWRhdGFncmlkIHRoLCAubXgtZGF0YWdyaWQgdGQge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG59XG5cbi8qIGhlYWQgKi9cbi5teC1kYXRhZ3JpZCB0aCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBSZXF1aXJlZCBmb3IgdGhlIHBvc2l0aW9uaW5nIG9mIHRoZSBjb2x1bW4gcmVzaXplcnMgKi9cbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAycHg7XG59XG4ubXgtZGF0YWdyaWQtaGVhZC1jYXB0aW9uIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ubXgtZGF0YWdyaWQtc29ydC1pY29uIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1kYXRhZ3JpZC1zb3J0LWljb24ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmc6IDAgNXB4IDAgMDtcbn1cbi5teC1kYXRhZ3JpZC1jb2x1bW4tcmVzaXplciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAtNnB4O1xuICAgIHdpZHRoOiAxMHB4O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBjdXJzb3I6IGNvbC1yZXNpemU7XG59XG5bZGlyPVwicnRsXCJdIC5teC1kYXRhZ3JpZC1jb2x1bW4tcmVzaXplciB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogLTZweDtcbn1cblxuLyogYm9keSAqL1xuLm14LWRhdGFncmlkIHRib2R5IHRyOmZpcnN0LWNoaWxkIHRkIHtcbiAgICBib3JkZXItdG9wOiBub25lO1xufVxuLm14LWRhdGFncmlkIHRib2R5IHRyOm50aC1jaGlsZCgybisxKSB0ZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcbn1cbi5teC1kYXRhZ3JpZCB0Ym9keSAuc2VsZWN0ZWQgdGQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG59XG4ubXgtZGF0YWdyaWQtZGF0YS13cmFwcGVyIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ubXgtZGF0YWdyaWQgdGJvZHkgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDE2cHg7XG4gICAgbWF4LWhlaWdodDogMTZweDtcbn1cbi5teC1kYXRhZ3JpZCBpbnB1dCxcbi5teC1kYXRhZ3JpZCBzZWxlY3QsXG4ubXgtZGF0YWdyaWQgdGV4dGFyZWEge1xuICAgIGN1cnNvcjogYXV0bztcbn1cblxuLyogZm9vdCAqL1xuLm14LWRhdGFncmlkIHRmb290IHRoLFxuLm14LWRhdGFncmlkIHRmb290IHRkIHtcbiAgICBwYWRkaW5nOiAzcHggOHB4O1xufVxuLm14LWRhdGFncmlkIHRmb290IHRoIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDtcbn1cbi5teC1kYXRhZ3JpZC5teC1jb250ZW50LWxvYWRpbmcgLm14LWNvbnRlbnQtbG9hZGVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDkwJTtcbiAgICBhbmltYXRpb246IHBsYWNlaG9sZGVyR3JhZGllbnQgMXMgbGluZWFyIGluZmluaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiAjRjVGNUY1O1xuICAgIGJhY2tncm91bmQ6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNGNUY1RjUgMCUsICNGNUY1RjUgNSUsICNGOUY5RjkgNTAlLCAjRjVGNUY1IDk1JSwgI0Y1RjVGNSAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDIwMHB4IDEwMHB4O1xuICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG59XG5Aa2V5ZnJhbWVzIHBsYWNlaG9sZGVyR3JhZGllbnQge1xuICAgIDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwcHggMDsgfVxuICAgIDEwMCUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTAwcHggMDsgfVxufVxuXG4ubXgtZGF0YWdyaWQtdGFibGUtcmVzaXppbmcgdGgsXG4ubXgtZGF0YWdyaWQtdGFibGUtcmVzaXppbmcgdGQge1xuICAgIGN1cnNvcjogY29sLXJlc2l6ZSAhaW1wb3J0YW50O1xufVxuIiwiLm14LXRlbXBsYXRlZ3JpZC1jb250ZW50LXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5teC10ZW1wbGF0ZWdyaWQtcm93IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3c7XG59XG4ubXgtdGVtcGxhdGVncmlkLWl0ZW0ge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4ubXgtdGVtcGxhdGVncmlkLWVtcHR5IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuLm14LXRlbXBsYXRlZ3JpZC1pdGVtLnNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xufVxuLm14LXRlbXBsYXRlZ3JpZC1pdGVtIC5teC10YWJsZSB0aCxcbi5teC10ZW1wbGF0ZWdyaWQtaXRlbSAubXgtdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDJweCA4cHg7XG59XG4iLCIubXgtc2Nyb2xsY29udGFpbmVyLWhvcml6b250YWwge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG59XG4ubXgtc2Nyb2xsY29udGFpbmVyLWhvcml6b250YWwgPiBkaXYge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi5teC1zY3JvbGxjb250YWluZXItd3JhcHBlciB7XG4gICAgcGFkZGluZzogMTBweDtcbn1cbi5teC1zY3JvbGxjb250YWluZXItbmVzdGVkIHtcbiAgICBwYWRkaW5nOiAwO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1maXhlZCA+IC5teC1zY3JvbGxjb250YWluZXItbWlkZGxlID4gLm14LXNjcm9sbGNvbnRhaW5lci13cmFwcGVyLFxuLm14LXNjcm9sbGNvbnRhaW5lci1maXhlZCA+IC5teC1zY3JvbGxjb250YWluZXItbGVmdCA+IC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlcixcbi5teC1zY3JvbGxjb250YWluZXItZml4ZWQgPiAubXgtc2Nyb2xsY29udGFpbmVyLWNlbnRlciA+IC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlcixcbi5teC1zY3JvbGxjb250YWluZXItZml4ZWQgPiAubXgtc2Nyb2xsY29udGFpbmVyLXJpZ2h0ID4gLm14LXNjcm9sbGNvbnRhaW5lci13cmFwcGVyIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cblxuLm14LXNjcm9sbGNvbnRhaW5lci1tb3ZlLWluIHtcbiAgICB0cmFuc2l0aW9uOiBsZWZ0IDI1MG1zIGVhc2Utb3V0O1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1tb3ZlLW91dCB7XG4gICAgdHJhbnNpdGlvbjogbGVmdCAyNTBtcyBlYXNlLWluO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1zaHJpbmsgLm14LXNjcm9sbGNvbnRhaW5lci10b2dnbGVhYmxlIHtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB3aWR0aDtcbn1cblxuLm14LXNjcm9sbGNvbnRhaW5lci10b2dnbGVhYmxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1zbGlkZSA+IC5teC1zY3JvbGxjb250YWluZXItdG9nZ2xlYWJsZSA+IC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbn1cbi5teC1zY3JvbGxjb250YWluZXItcHVzaCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1zaHJpbmsgPiAubXgtc2Nyb2xsY29udGFpbmVyLXRvZ2dsZWFibGUge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG4ubXgtc2Nyb2xsY29udGFpbmVyLXB1c2gubXgtc2Nyb2xsY29udGFpbmVyLW9wZW4gPiBkaXYsXG4ubXgtc2Nyb2xsY29udGFpbmVyLXNsaWRlLm14LXNjcm9sbGNvbnRhaW5lci1vcGVuID4gZGl2IHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5teC1zY3JvbGxjb250YWluZXItcHVzaC5teC1zY3JvbGxjb250YWluZXItb3BlbiA+IC5teC1zY3JvbGxjb250YWluZXItdG9nZ2xlYWJsZSxcbi5teC1zY3JvbGxjb250YWluZXItc2xpZGUubXgtc2Nyb2xsY29udGFpbmVyLW9wZW4gPiAubXgtc2Nyb2xsY29udGFpbmVyLXRvZ2dsZWFibGUge1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuIiwiLm14LW5hdmJhci1pdGVtIGltZyxcbi5teC1uYXZiYXItc3ViaXRlbSBpbWcge1xuICAgIGhlaWdodDogMTZweDtcbn1cblxuIiwiLm14LW5hdmlnYXRpb250cmVlIC5uYXZiYXItaW5uZXIge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xufVxuLm14LW5hdmlnYXRpb250cmVlIHVsIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuLm14LW5hdmlnYXRpb250cmVlIHVsIGxpIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RmZTZlYTtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSBsaTpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG4ubXgtbmF2aWdhdGlvbnRyZWUgYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgY29sb3I6ICM3Nzc7XG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgI2ZmZjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4ubXgtbmF2aWdhdGlvbnRyZWUgYS5hY3RpdmUge1xuICAgIGNvbG9yOiAjRkZGO1xuICAgIHRleHQtc2hhZG93OiBub25lO1xuICAgIGJhY2tncm91bmQ6ICMzNDk4REI7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuLm14LW5hdmlnYXRpb250cmVlIC5teC1uYXZpZ2F0aW9udHJlZS1jb2xsYXBzZWQgdWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4ubXgtbmF2aWdhdGlvbnRyZWUgdWwge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xufVxuLm14LW5hdmlnYXRpb250cmVlIHVsIGxpIHtcbiAgICBwYWRkaW5nOiA1cHggMDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCBsaSB7XG4gICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICBwYWRkaW5nOiA1cHggMDtcbn1cbltkaXI9XCJydGxcIl0gLm14LW5hdmlnYXRpb250cmVlIHVsIGxpIHVsIGxpIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCBsaSB1bCBsaSB7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIHBhZGRpbmctdG9wOiAzcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDNweDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCBsaSB1bCBsaSBpbWcge1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4iLCIubXgtbGluayBpbWcsXG4ubXgtYnV0dG9uIGltZyB7XG4gICAgaGVpZ2h0OiAxNnB4O1xufVxuLm14LWxpbmsge1xuICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbiIsIi5teC1ncm91cGJveCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi5teC1ncm91cGJveC1oZWFkZXIge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gICAgY29sb3I6ICNlZWU7XG4gICAgYmFja2dyb3VuZDogIzMzMztcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4IDRweCAwIDA7XG59XG4ubXgtZ3JvdXBib3gtY29sbGFwc2libGUgPiAubXgtZ3JvdXBib3gtaGVhZGVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubXgtZ3JvdXBib3guY29sbGFwc2VkID4gLm14LWdyb3VwYm94LWhlYWRlciB7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLm14LWdyb3VwYm94LWJvZHkge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5teC1ncm91cGJveC5jb2xsYXBzZWQgPiAubXgtZ3JvdXBib3gtYm9keSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbi5teC1ncm91cGJveC1oZWFkZXIgKyAubXgtZ3JvdXBib3gtYm9keSB7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgNHB4IDRweDtcbn1cbi5teC1ncm91cGJveC1jb2xsYXBzZS1pY29uIHtcbiAgICBmbG9hdDogcmlnaHQ7XG59XG5bZGlyPVwicnRsXCJdIC5teC1ncm91cGJveC1jb2xsYXBzZS1pY29uIHtcbiAgICBmbG9hdDogbGVmdDtcbn1cbiIsIi5teC1kYXRhdmlldyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLm14LWRhdGF2aWV3LWNvbnRyb2xzIHtcbiAgICBwYWRkaW5nOiAxOXB4IDIwcHggMTJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWVlO1xufVxuXG4ubXgtZGF0YXZpZXctY29udHJvbHMgLm14LWJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG4ubXgtZGF0YXZpZXctY29udHJvbHMgLm14LWJ1dHRvbiArIC5teC1idXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiAwLjNlbTtcbn1cblxuLm14LWRhdGF2aWV3LW1lc3NhZ2Uge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbn1cbi5teC1kYXRhdmlldy1tZXNzYWdlID4gZGl2IHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG4ubXgtZGF0YXZpZXctbWVzc2FnZSA+IGRpdiA+IHAge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi8qIFRvcC1sZXZlbCBkYXRhIHZpZXcgaW4gd2luZG93IGlzIGEgc3BlY2lhbCBjYXNlLCBoYW5kbGUgaXQgYXMgc3VjaC4gKi9cbi5teC13aW5kb3ctdmlldyAubXgtd2luZG93LWJvZHkge1xuICAgIHBhZGRpbmc6IDA7XG59XG4ubXgtd2luZG93LXZpZXcgLm14LXdpbmRvdy1ib2R5ID4gLm14LWRhdGF2aWV3ID4gLm14LWRhdGF2aWV3LWNvbnRlbnQsXG4ubXgtd2luZG93LXZpZXcgLm14LXdpbmRvdy1ib2R5ID4gLm14LXBsYWNlaG9sZGVyID4gLm14LWRhdGF2aWV3ID4gLm14LWRhdGF2aWV3LWNvbnRlbnQge1xuICAgIHBhZGRpbmc6IDE1cHg7XG59XG4ubXgtd2luZG93LXZpZXcgLm14LXdpbmRvdy1ib2R5ID4gLm14LWRhdGF2aWV3ID4gLm14LWRhdGF2aWV3LWNvbnRyb2xzLFxuLm14LXdpbmRvdy12aWV3IC5teC13aW5kb3ctYm9keSA+IC5teC1wbGFjZWhvbGRlciA+IC5teC1kYXRhdmlldyA+IC5teC1kYXRhdmlldy1jb250cm9scyB7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4IDBweCA2cHggNnB4O1xufVxuIiwiLm14LWRpYWxvZyB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogNTAwcHg7XG4gICAgLyogSWYgdGhlIG1hcmdpbiBpcyBzZXQgdG8gYXV0bywgSUU5IHJlcG9ydHMgdGhlIGNhbGN1bGF0ZWQgdmFsdWUgb2YgdGhlXG4gICAgICogbWFyZ2luIGFzIHRoZSBhY3R1YWwgdmFsdWUuIE90aGVyIGJyb3dzZXJzIHdpbGwganVzdCByZXBvcnQgMC4gRWxpbWluYXRlXG4gICAgICogdGhpcyBkaWZmZXJlbmNlIGJ5IHNldHRpbmcgbWFyZ2luIHRvIDAgZm9yIGV2ZXJ5IGJyb3dzZXIuICovXG4gICAgbWFyZ2luOiAwO1xufVxuLm14LWRpYWxvZy1oZWFkZXIge1xuICAgIGN1cnNvcjogbW92ZTtcbn1cbi5teC1kaWFsb2ctYm9keSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG59XG4iLCIubXgtd2luZG93IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiA2MDBweDtcbiAgICAvKiBJZiB0aGUgbWFyZ2luIGlzIHNldCB0byBhdXRvLCBJRTkgcmVwb3J0cyB0aGUgY2FsY3VsYXRlZCB2YWx1ZSBvZiB0aGVcbiAgICAgKiBtYXJnaW4gYXMgdGhlIGFjdHVhbCB2YWx1ZS4gT3RoZXIgYnJvd3NlcnMgd2lsbCBqdXN0IHJlcG9ydCAwLiBFbGltaW5hdGVcbiAgICAgKiB0aGlzIGRpZmZlcmVuY2UgYnkgc2V0dGluZyBtYXJnaW4gdG8gMCBmb3IgZXZlcnkgYnJvd3Nlci4gKi9cbiAgICBtYXJnaW46IDA7XG59XG4ubXgtd2luZG93LWNvbnRlbnQge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLm14LXdpbmRvdy1hY3RpdmUgLm14LXdpbmRvdy1oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4IDZweCAwIDA7XG59XG4ubXgtd2luZG93LWhlYWRlciB7XG4gICAgY3Vyc29yOiBtb3ZlO1xufVxuLm14LXdpbmRvdy1ib2R5IHtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cbiIsIi5teC1kcm9wZG93bi1saXN0ICoge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1kcm9wZG93bi1saXN0IGltZyB7XG4gICAgd2lkdGg6IDM1cHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1kcm9wZG93bi1saXN0IGltZyB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4ubXgtZHJvcGRvd24tbGlzdCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuLm14LWRyb3Bkb3duLWxpc3QgPiBsaSB7XG4gICAgcGFkZGluZzogNXB4IDEwcHggMTBweDtcbiAgICBib3JkZXI6IDFweCAjZGRkO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLm14LWRyb3Bkb3duLWxpc3QgPiBsaTpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4O1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7XG59XG4ubXgtZHJvcGRvd24tbGlzdCA+IGxpOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xufVxuLm14LWRyb3Bkb3duLWxpc3Qtc3RyaXBlZCA+IGxpOm50aC1jaGlsZCgybisxKSB7XG4gICAgYmFja2dyb3VuZDogI2Y5ZjlmOTtcbn1cbi5teC1kcm9wZG93bi1saXN0ID4gbGk6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7XG59XG4iLCIubXgtaGVhZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogOXB4O1xuICAgIGJhY2tncm91bmQ6ICMzMzM7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLm14LWhlYWRlci1jZW50ZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBjb2xvcjogI2VlZTtcbiAgICBsaW5lLWhlaWdodDogMzBweDsgLyogaGVpZ2h0IG9mIGJ1dHRvbnMgKi9cbn1cbmJvZHlbZGlyPVwibHRyXCJdIC5teC1oZWFkZXItbGVmdCxcbmJvZHlbZGlyPVwicnRsXCJdIC5teC1oZWFkZXItcmlnaHQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDlweDtcbiAgICBsZWZ0OiA5cHg7XG59XG5ib2R5W2Rpcj1cImx0clwiXSAubXgtaGVhZGVyLXJpZ2h0LFxuYm9keVtkaXI9XCJydGxcIl0gLm14LWhlYWRlci1sZWZ0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA5cHg7XG4gICAgcmlnaHQ6IDlweDtcbn1cbiIsIi5teC10aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIG1hcmdpbi10b3A6IDBweDtcbn1cbiIsIi5teC1saXN0dmlldyB7XG4gICAgcGFkZGluZzogOHB4O1xufVxuLm14LWxpc3R2aWV3ID4gdWwge1xuICAgIHBhZGRpbmc6IDBweDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuLm14LWxpc3R2aWV3ID4gdWwgPiBsaSB7XG4gICAgcGFkZGluZzogNXB4IDEwcHggMTBweDtcbiAgICBib3JkZXI6IDFweCAjZGRkO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG4ubXgtbGlzdHZpZXcgPiB1bCA+IGxpOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweDtcbn1cbi5teC1saXN0dmlldyA+IHVsID4gbGk6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4O1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7XG59XG4ubXgtbGlzdHZpZXcgbGk6bnRoLWNoaWxkKDJuKzEpIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjlmOWY5O1xufVxuLm14LWxpc3R2aWV3IGxpOm50aC1jaGlsZCgybisxKTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2Y1ZjVmNTtcbn1cbi5teC1saXN0dmlldyA+IHVsID4gbGkuc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQ6ICNlZWU7XG59XG4ubXgtbGlzdHZpZXctY2xpY2thYmxlIHVsICoge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1saXN0dmlldy1lbXB0eSB7XG4gICAgY29sb3I6ICM5OTk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLm14LWxpc3R2aWV3IC5teC1saXN0dmlldy1sb2FkaW5nIHtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5teC1saXN0dmlldy1zZWFyY2hiYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi5teC1saXN0dmlldy1zZWFyY2hiYXIgPiBpbnB1dCB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4ubXgtbGlzdHZpZXctc2VhcmNoYmFyID4gYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xufVxuW2Rpcj1cInJ0bFwiXSAubXgtbGlzdHZpZXctc2VhcmNoYmFyID4gYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbi5teC1saXN0dmlldy1zZWxlY3Rpb24ge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBwYWRkaW5nOiAwIDE1cHggMCA1cHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1saXN0dmlldy1zZWxlY3Rpb24ge1xuICAgIHBhZGRpbmc6IDAgNXB4IDAgMTVweDtcbn1cbi5teC1saXN0dmlldy1zZWxlY3RhYmxlIC5teC1saXN0dmlldy1jb250ZW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4ubXgtbGlzdHZpZXcgLnNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZGVmO1xufVxuLm14LWxpc3R2aWV3IC5teC10YWJsZSB0aCxcbi5teC1saXN0dmlldyAubXgtdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDJweDtcbn1cbiIsIi5teC1sb2dpbiAuZm9ybS1jb250cm9sIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuIiwiLm14LW1lbnViYXIge1xuICAgIHBhZGRpbmc6IDhweDtcbn1cbi5teC1tZW51YmFyLWljb24ge1xuICAgIGhlaWdodDogMTZweDtcbn1cbi5teC1tZW51YmFyLW1vcmUtaWNvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDTUFBQUFqQ0FZQUFBQWUyYk5aQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFLTkpSRUZVZU5waS9QLy9QOE5nQVV3TWd3aU1PbWJVTWFPT0dYWE1xR05HSFRQWUhNT0NUZkRzMmJNZVFLb09pSTFCWENCdU1qWTIza0ZyZFl6b1RRaWdSbThndFFXTEcwT0JCcXlobFRwYzBkU09JeFRyYUt3T3EyUFVjV2hXcDdFNnJJNjVpVVB6VFJxcncrcVlHaHlhbTJpc0R0TXh3RVMxQ1VnRkFmRnhxQkNJRGtKUGJOUldoelUzalJaNm80NFpkY3lvWTBZZE0rcVlVY2NNVXNjQUJCZ0FVWHBFakUvQnMvSUFBQUFBU1VWT1JLNUNZSUk9KSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDE2cHggMTZweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuIiwiLm14LW5hdmlnYXRpb25saXN0IHtcbiAgICBwYWRkaW5nOiA4cHg7XG59XG4ubXgtbmF2aWdhdGlvbmxpc3QgbGk6aG92ZXIsXG4ubXgtbmF2aWdhdGlvbmxpc3QgbGk6Zm9jdXMsXG4ubXgtbmF2aWdhdGlvbmxpc3QgbGkuYWN0aXZlIHtcbiAgICBjb2xvcjogI0ZGRjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OERCO1xufVxuLm14LW5hdmlnYXRpb25saXN0ICoge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1uYXZpZ2F0aW9ubGlzdCAudGFibGUgdGgsXG4ubXgtbmF2aWdhdGlvbmxpc3QgLnRhYmxlIHRkIHtcbiAgICBwYWRkaW5nOiAycHg7XG59XG4iLCIubXgtcHJvZ3Jlc3Mge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDMwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICB3aWR0aDogMjUwcHg7XG4gICAgbWF4LXdpZHRoOiA5MCU7XG4gICAgYmFja2dyb3VuZDogIzMzMztcbiAgICBvcGFjaXR5OiAwLjg7XG4gICAgei1pbmRleDogNTAwMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgcGFkZGluZzogMjBweCAxNXB4O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBlYXNlLWluLW91dDtcbn1cbi5teC1wcm9ncmVzcy1oaWRkZW4ge1xuICAgIG9wYWNpdHk6IDA7XG59XG4ubXgtcHJvZ3Jlc3MtbWVzc2FnZSB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG59XG4ubXgtcHJvZ3Jlc3MtZW1wdHkgLm14LXByb2dyZXNzLW1lc3NhZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4ubXgtcHJvZ3Jlc3MtaW5kaWNhdG9yIHtcbiAgICB3aWR0aDogNzBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIGJhY2tncm91bmQ6IHVybChkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhSZ0FLQU1RQUFEbzZPb0dCZ1ZwYVduQndjSTZPanF5c3JGSlNVbVJrWkQ4L1AweE1UTTdPenFlbnAxaFlXRjFkWFVoSVNISnljb2VIaDB0TFMxZFhWNmlvcU0vUHoyVmxaVDA5UFRjM04wQkFRSVdGaGRiVzFseGNYSzJ0clVGQlFUTXpNd0FBQUNIL0MwNUZWRk5EUVZCRk1pNHdBd0VBQUFBaCtRUUVEQUFBQUN3QUFBQUFSZ0FLQUFBRms2RG5YUmFHV1plb3JxU0pybkI3cHJBcXY3VjQweDdRL1VCQXpnZjhDV3ZFNGhHV0RBNkx4aEVVeU5OTmYxWHBOWHU1ZHJoZWt0Y0NzNHpMNTVYNVNsYVBNVjRNREg2VnIraFR1d29QMVl2NFJTWnhjNE4zaFh1SGYzRnJVMjBxakZDT0lwQkZraDZVUUphWVB5aGhNWjRzb0RhaVZsczlVMHNyVFZGSXFFOVFxU3FySFVzN09Ub2xNN2NqdVRnNXRyZkFJUUFoK1FRRURBQUFBQ3dBQUFBQUNnQUtBQUFGSktEbkhZV2lGSWZvUVZyclFxTXJhK1RzbG5acjV0ckpvN3dVYXdZVFZRb1VDa29VQWdBaCtRUUVEQUFBQUN3QUFBQUFHUUFLQUFBRldhRG5NY1N5RUpLb3JrZWhLTVdoUGx4dFA2c0thWHdQZVJLYmtNUElIWHBJellFd3RCRnloV1N2c0dqV0ZqbUZsS2VvV3JFcjdWYkJ0RDVYMFcyQllTVWF0MG9QYllqTGVYYkpuNGcwbVJDS2RpSVZCUlFVTVNJaEFDSDVCQVFNQUFBQUxBQUFBQUFvQUFvQUFBV0tvT2NsUXhBTWthaXVETEVzaExUT1I2RW94YUUyV2U4M005R0RReXcrZ2g2SVpzbUVlQ0srYUNZeGt4U3ZIQWFOeWRVY0JsTGZZRWJBRmdtelFwZFpDSVI3Z2RuQ1RGek1GT3Vsd3YyT3IrWjBkaXQ0ZVFwZ2IyTXJaWFJvSzJwNUJRbHZVek1NZEZsYmVUbzhVa0JCUTFoSFFVcGRUaUlrSmdOVVNCNHRFeE1FV3F3VkJSUVVPU0loQUNINUJBUU1BQUFBTEFBQUFBQTNBQW9BQUFXOG9PY2hoaUFZaUtpdXlSQUVRN1RPRExFc2hEU3ZSNkVvaFlQS3NTa2FIVHRQSThOc05wSVBqblQ2U0VJMDJDeGtaT3h1VXF0SWM1eEp6Q1RUTkljeE8yVGZtb1BCYXpUTUJ1VG1ZRVpRVHdrekJYQlpCUUowUlFJekFYbE1BVE1MZmxJTE13cURXQXFHaDRrcmk0eU9LNUNSa3l1VmxncHpoM1lyZUl4N0szMlJnQ3VDbGdVSWgxOHpDWXhsTkpGcmJaWnhIa1JlU0R0TFpFODdVV3BWTzFkd1d5SVlKU2RnU1MwdkEyWkpIalVURXdSczNoVUZGQlJCSWlFQUlma0VCQXdBQUFBc0FBQUFBRVlBQ2dBQUJmQ2c1MTBXaGxtWHFLNklJUWdHc3M3SkVBUkROSzhNc1N3RXlVNTFLQ2dVaFlNSzBHazZBVVBIWmtwMURCdVpyTFl4ZkhDKzRNY1FvaW1iSVNPbnVwTmlVZDhiMlNxaXJXY1NNd2w0ejJITURtYUJHZ2NXYTA0V013WndWQVl6QTNaYUF6TUVmR0FFTXdXQ1pnVVloazBZTXdLTFV3SXpBWkJaQVRNTGxWOExNd3FhWlFxZG5xQXJvcU9sSzZlb3FpdXNyYThyc2JJS2haNklLNHFqalN1UHFKSXJsSzJYSzVteUJSZWViRE1JbzNFMHFIY3pESzE5ZjdLREhreHJVRHRTY0ZZN1dIWmNPMTU4WWp0a2dtZ2lKRXlnR0NJQ2d3c1ljb2JVdURFQUQ4RWVFeVlROEVPd1FnRUtGSktJQ0FFQUlma0VCQXdBQUFBc0R3QUFBRGNBQ2dBQUJicWc1MTBXaGxtWHFLNklJUWdHc3M3SkVBUkROSzhNc1N3RWlRclFLUm9CTzQ5ancydzZrbzJNZE5wSVBqalk3R05rN0haU3JLWjRJMXRGcHVoTVlpYkp1amtNaTlkb21SbkdUY05za0o0T1pnUnZXUVFZYzBVWU13SjRUQUl6QVgxU0FUTUxnbGdMaFlhSUs0cUxqU3VQa0pJcmxKVUxjb1oxSzNlTGVpdDhrSDhyZ1pVRUY0WmZNd2lMWkRTUWFqTU1sWEFlUkY1SU8wdGpUenRSYVZVN1YyOWJJaVFtS0VraUdDNHdaVWsxTndOcjJEMFRFd1FNSWlFQUlma0VCQXdBQUFBc0hnQUFBQ2dBQ2dBQUJZZWc1MTBXaGxtWHFLNklJUWdHc3M3SkVBUkRwQUpkN3dNemtXTkRMRHFDbmtabXlXeU1mTkJPaWxXc2JtU3JDSE9iU1ZpaVBzdk1ZQzBhWmdNdWM0QUI5ekF6UVprb21BWFV5MERiRFYvSjUzVXJkM2dCWDI1aUsyUnpaeXRwZUFNWGJsSXpDSE5YTkhoZEhqeFJRRUZEVmtkQlNseE9JaVFtS0VnaUdDNHdXRWcxTndNSklpRUFJZmtFQkF3QUFBQXNMUUFBQUJrQUNnQUFCVldnNTEwV2hsbVhxSzZJSVFnR29nSmRiUU9yNm14ODc0eTJZQ2ZGNmhrM0NJdlFac2taamowRFpsbkQ1QVJRbm1CS3RhNndXWUdTMmx3OXM0WUxkWmhEWkpFZW1oQ1g4K3lPUHhISmhLcXJNQzR3TWg0aEFDSDVCQVFNQUFBQUxEd0FBQUFLQUFvQUFBVWlvT2RkRm9aWmwrZ0JYZXNDb3l0MzVPeVdkbXZtM2NtanZCUnJCaE9SVENoUkNBQTcpO1xufVxuIiwiLm14LXJlbG9hZC1ub3RpZmljYXRpb24ge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiAxMDAxO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxcmVtO1xuXG4gICAgYm9yZGVyOiAxcHggc29saWQgaHNsKDIwMCwgOTYlLCA0MSUpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgyMDAsIDk2JSwgNDQlKTtcblxuICAgIGJveC1zaGFkb3c6IDAgNXB4IDIwcHggcmdiYSgxLCAzNywgNTUsIDAuMTYpO1xuICAgIGNvbG9yOiB3aGl0ZTtcblxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDE0cHg7XG59XG4iLCIubXgtcmVzaXplci1uLFxuLm14LXJlc2l6ZXItcyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMHB4O1xufVxuLm14LXJlc2l6ZXItbiB7XG4gICAgdG9wOiAtNXB4O1xuICAgIGN1cnNvcjogbi1yZXNpemU7XG59XG4ubXgtcmVzaXplci1zIHtcbiAgICBib3R0b206IC01cHg7XG4gICAgY3Vyc29yOiBzLXJlc2l6ZTtcbn1cblxuLm14LXJlc2l6ZXItZSxcbi5teC1yZXNpemVyLXcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDEwcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuLm14LXJlc2l6ZXItZSB7XG4gICAgcmlnaHQ6IC01cHg7XG4gICAgY3Vyc29yOiBlLXJlc2l6ZTtcbn1cbi5teC1yZXNpemVyLXcge1xuICAgIGxlZnQ6IC01cHg7XG4gICAgY3Vyc29yOiB3LXJlc2l6ZTtcbn1cblxuLm14LXJlc2l6ZXItbncsXG4ubXgtcmVzaXplci1uZSxcbi5teC1yZXNpemVyLXN3LFxuLm14LXJlc2l6ZXItc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG59XG5cbi5teC1yZXNpemVyLW53LFxuLm14LXJlc2l6ZXItbmUge1xuICAgIHRvcDogLTVweDtcbn1cbi5teC1yZXNpemVyLXN3LFxuLm14LXJlc2l6ZXItc2Uge1xuICAgIGJvdHRvbTogLTVweDtcbn1cbi5teC1yZXNpemVyLW53LFxuLm14LXJlc2l6ZXItc3cge1xuICAgIGxlZnQ6IC01cHg7XG59XG4ubXgtcmVzaXplci1uZSxcbi5teC1yZXNpemVyLXNlIHtcbiAgICByaWdodDogLTVweDtcbn1cblxuLm14LXJlc2l6ZXItbncge1xuICAgIGN1cnNvcjogbnctcmVzaXplO1xufVxuLm14LXJlc2l6ZXItbmUge1xuICAgIGN1cnNvcjogbmUtcmVzaXplO1xufVxuLm14LXJlc2l6ZXItc3cge1xuICAgIGN1cnNvcjogc3ctcmVzaXplO1xufVxuLm14LXJlc2l6ZXItc2Uge1xuICAgIGN1cnNvcjogc2UtcmVzaXplO1xufVxuIiwiLm14LXRleHQge1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtbGluZTtcbn1cbiIsIi5teC10ZXh0YXJlYSB0ZXh0YXJlYSB7XG4gICAgcmVzaXplOiBub25lO1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbn1cbi5teC10ZXh0YXJlYSAubXgtdGV4dGFyZWEtbm9yZXNpemUge1xuICAgIGhlaWdodDogYXV0bztcbiAgICByZXNpemU6IHZlcnRpY2FsO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG59XG4ubXgtdGV4dGFyZWEgLm14LXRleHRhcmVhLWNvdW50ZXIge1xuICAgIGZvbnQtc2l6ZTogc21hbGxlcjtcbn1cbi5teC10ZXh0YXJlYSAuZm9ybS1jb250cm9sLXN0YXRpYyB7XG4gICAgd2hpdGUtc3BhY2U6IHByZS1saW5lO1xufVxuIiwiLm14LXVuZGVybGF5IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB6LWluZGV4OiAxMDAwO1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xufVxuIiwiLm14LWltYWdlem9vbSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTk5O1xufVxuLm14LWltYWdlem9vbS13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLm14LWltYWdlem9vbS1pbWFnZSB7XG4gICAgbWF4LXdpZHRoOiBub25lO1xufVxuIiwiLm14LWRyb3Bkb3duIGxpIHtcbiAgICBwYWRkaW5nOiAzcHggMjBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubXgtZHJvcGRvd24gbGFiZWwge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubXgtZHJvcGRvd24gaW5wdXQge1xuICAgIG1hcmdpbjogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1kcm9wZG93biAuc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQ6ICNmOGY4Zjg7XG59XG4ubXgtc2VsZWN0Ym94IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLm14LXNlbGVjdGJveC1jYXJldC13cmFwcGVyIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuIiwiLm14LWRlbW91c2Vyc3dpdGNoZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogMzYwcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHotaW5kZXg6IDIwMDAwO1xuICAgIGJveC1zaGFkb3c6IC0xcHggMCA1cHggcmdiYSgyOCw1OSw4NiwuMik7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlci1jb250ZW50IHtcbiAgICBwYWRkaW5nOiA4MHB4IDQwcHggMjBweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgY29sb3I6ICMzODdlYTI7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIGJhY2tncm91bmQ6IHVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU9nQUFBQmdDQVlBQUFBWFNqN05BQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlScFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1TXkxak1ERXhJRFkyTGpFME5UWTJNU3dnTWpBeE1pOHdNaTh3TmkweE5EbzFOam95TnlBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVOVE5pQW9UV0ZqYVc1MGIzTm9LU0lnZUcxd1RVMDZTVzV6ZEdGdVkyVkpSRDBpZUcxd0xtbHBaRG8wTXprd09UUkVNRFEyTkVZeE1VVTBRVFE0TVVJNU5UTkdNVVEzUXpFNU55SWdlRzF3VFUwNlJHOWpkVzFsYm5SSlJEMGllRzF3TG1ScFpEbzBNemt3T1RSRU1UUTJORVl4TVVVMFFUUTRNVUk1TlROR01VUTNRekU1TnlJK0lEeDRiWEJOVFRwRVpYSnBkbVZrUm5KdmJTQnpkRkpsWmpwcGJuTjBZVzVqWlVsRVBTSjRiWEF1YVdsa09qYzBSRU15TVVaR05EWTBRekV4UlRSQk5EZ3hRamsxTTBZeFJEZERNVGszSWlCemRGSmxaanBrYjJOMWJXVnVkRWxFUFNKNGJYQXVaR2xrT2pjMFJFTXlNakF3TkRZMFF6RXhSVFJCTkRneFFqazFNMFl4UkRkRE1UazNJaTgrSUR3dmNtUm1Pa1JsYzJOeWFYQjBhVzl1UGlBOEwzSmtaanBTUkVZK0lEd3ZlRHA0YlhCdFpYUmhQaUE4UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrZzF0Umx3QUFFRkZKUkVGVWVOcnNuWWwzVmNVZHgyZHU4ckpESUpDd0NnalZhclZvc1ZYYzZqbldubnBJUWxKV2w2T0NyUFlma2gxY2l1d2xMRm81dFQzbFZKUlZFVVVFUlFRSlM0Q1FRRWpDUzk3MCs1Mlo5M0lUREd1Uzk4ajcvVGp6N3IyL2U5OTlaTzU4N205K003K1owY05YYnNxS2FUTmVLVlZvbEttT0tiWDM5RXNWS2wxRVY2MklLSzN3QjV1SGNZZy8zM3lDNHgybS9FMmpSRVNTTE1HSmw4dXZZcnNIaWR1aFNBK21Vd2FZaWhsUk0zSEdPdXp1Wlg0Zy9SbHBpdDY4TkZ1S2gwalNEWWd4emxBTVc3V3BDQmIwNlJqTmlEWUh6azZ2UEpaMm1iRnArYStKTEN4b0hyYm5vVnB0eW1lZGxXSWlrblJBS1VOWFZRMERvT01BcUlKMlg4MzB5cFBwQitteVFsL2xIWTNES0xaYlRmbnNMNldvaUNRZFVNcmdWVlZqQWVoSWFHTXhaWGFlbi83WGMybVpNWnVYVm1MenFGSTJmL1lCMm85TTJleW9GQm1ScEFKS0tWbTk4UkZvUndCUUZzZ2RnTFErVFNFZEIwQkxzWnNCUUd1d3Y4NlV6VGtqeFVZa3FZQlNpbGR2SEFkQWgyRzNDUloxUisyMFNRM3BDZW1TZ2RpVUFkQlJBTFFGKzl1UWRnTlVhZVVWU1I2Z2xBR3IvL0U0Tm9NQWFBTjgweDExMHlZMXBXMUdiVmxDdi9SMy92QVE5amVac3JsWHBBaUpkS2NFTnpqUDdoZFU3VlErMGhOOTFxeVBwR3RHd2Yrc3dvYmRNWmVRSGtENm05Nnk2SDRwUWlKSnM2RGVpa1pnUVIrSEJTMUNsYmZXYVBQWjVhbFRXdFBYa2k0dXNGVmVaUjV3Q3ZhZm1vOU42YnlyVXB4RWVoeFFTdjgxRzNJQUtDQTFoUUQwSFBaM1hVbGpTQjJvaTU3QjVua0FpbHFJdVlEOWpZRDB1QlFwa1I0SGxGSzRaa01lQUIwUFFQTUI2TmxXWlhZM1Q1MGFTM05JaXdIb2l3QjBqSEw5TWJ1UVBoRnJLdExqZ0ZMZ2crWUQwUEdnTWcrQW5zRjJUelROSWJXWnVIVWhxcnpxOS82dzFqWWdsYzcvVVlxWFNJOENTaWxZdTQ0VzlDa0F5bXJ2S2ZpbmUxdW5URE1DNmNJaDJQd0o2VmNBbFBteEY5YjFYMmJDL0NZcFppSTlCaWdsRDVDMnVyamRiQUJhRGRVK2dUUnNUWTJ6cHRxMitQNFRrSDRqT1NQU1k0QlNzdGV1TFFDZ1R3UFFMQnhXd3ovZFo2Wk1GMGd0cEF0S3NIa0JnTWE3WVk0QTJnL05oTGRxSlhkRWVnUlFTb1NRYXNQV3pBZ0FQVVZMQ2toamtxMCtjejljOEFRMlR5TDFVeTVzY2p2U0RvRGFLcmtqMHUyQVVqTFdyV0cvNEZNQWxPTW56K0NPZTh6a2x3VFNOa2laTHhNQTZDTmV4UzZaandEcEVja2RrVzRIMUVPYUQwQ2Z3bTRPN3NqeGs0UlVyRVE3VU4rK2p5OHlwSHU5Nmp1a2p3SHFCY2tka1c0RjFONW8zV3FHQTQ3SEhmT1VEUTgwdTgza2x3WFNhMEY5RnBzL0lQVlZkcnlwK3N4WGU2VzFWNlQ3QUUxQXFnMzlybndmWGJNTGtNb1l5bXNoemNYbUw4cU9ON1hDb1B2L0lPMEZxT0llaUhRUG9QYUc2MWZsT1F0aGFDSHE4QXM3emFSWG1pV3JmeEhVVWI3YUcyL3Q1Y0NFYmVLZmluUWJvQjdTSE44WDJCKy93SEdrbndOU0daclZPYWkveGVZeHBGRmU5Wk5peU9DRXR5UzJWd0R0bnE1THZmNkRMRnZvdE9HQVovaFhCcEMrZWtteS9JYitLV0V0OGFyRFNQOEdxS2NsZHdUUTdvQTBFNy9BUWM2RGZUL2dia0I2WHJMOXVwQnE1VUlHQ1dxaGNrSDRqRVQ2TDBDdGtSd1NRTHYrUnphczVOdytuRDRscG9MWUY2Ynl0V3JKK2h1Q0NqZEJ2YURhZ3ZBOXFCcWd6aGRRQmRDdWh2VHY3S2dmQVVENWd3Y0I2VkhKL3BzQ2xZMXR6M2tmMVQ0eWIxRzNBMVNaczFjQTdWSkl4d0xRa2Q0Z0hIV2d2aTd4dTdjRXFuNHNaRkhwbzM0S1VLVXhTUUR0b2gvYytONFFWMjJ6djN0S2FmV0ZxWGhkQWhwdUd0UUZCUFdQb2FvdnM1S0EvZy9waUNtZEx5ODhBZlNPSVdYd09BTWFzZ0RvUmV6dk1oVnZTRi9wcllIS1lJZW5rZTREb0lPOG1sWGVuVGo3bFNtZEp3RWlBdWlkUVBwdXZ2V3JORnNxRGNQY2RnTFNlbmtrdDVHWFd4YzhZMEZWeXJzUG1uM09YQXhxRjBDVnJpMEI5TFlocFFYbDhncTBBQzJLWTBvclpzak03YmNQS2h2aXhtSnZqRmZSZFRpbzJMMGxFNW9Kb0xmOW42aDZoMzJsdy8xVUlkOEMwaC9rMGR3SnFBdHBTVG5wK0VNaExhdS91NUVPbU5LNUVwZ3ZnTjR5cEhqekcxZEYwK29rOXZlYmlUT2w4ZWpPUUdXZ0EwZk9qTURSQ0srK0NwLzFBTFpmbXJLNUp5U1hCTkJiZ0hURllNVVJIbHBGQUdpZHJacE5uTmtvajZrcllGM0V5Q1NtKzFYaWtXdXVYTWVsRmZlYnNqbmlxd3FnTndWcEhnQmw1RkYvKzdaWFpvK1orS2FFQjNZZHFNVUE5RkZ2VmUveGFnNXhvMXZ4RlhTSFpKbEZBZlQ2LzZsTkt6SUJKZ3ZSRU8rWEhnU2tFbm5VMWZtOFpUR0h1VDNTd1ZkbEZmZ1FmVldrbzZaOHRyZ1pBbWhub0M1SDRURWp2RjlhYmYzUzhsa3Q4dGk2SEZUT216UlcyVVdoOUppMktqQUhrdXR2bFdzSlBvYThGMWdGMEk2UUxodGlDNDlXV1FDMHdmcWw1YlBFWCtvMldKZjBBNkQwVlVjck8zK1NqcDlxeFA1M09FZGdmMENOUmw2VUFtZ0MwbHlVRTFyVFltWDc5c3dCVkwya0JiSzc4MzN6RXVTMy9vMXlBOGtkcks2NHdFZlZkRGtZQzN6WVRKd3BMOHgwQnJTdHdDeWxYM3FQTHlYSFVWNitObVhpSS9WUTNoZmg4MEZrL1JoblhST1dsUS9qRkk2UFlJOE5UVCtiaWhreXIxSTZBdW9MQ254U3d5cFlnREp5R2Z0N1Rka2NDUkhzNlJxTjBteGdZdklOVEFucjJvejlZOHExQ2g4MUZXK2NreHhMSTBCOTFhdkErNlVEVUNyNHR2NEdrQjZUeDVrTVdKZHJWd1cyalV0czBCc1JzcTY4NGhMMFA5a2Fqd08zeGxTK0ppTnVlak9nb1FZTnh2SEcrL0k0Ync4NzNHVnR6bVErazZvVnVUNFdlTFNIZFdBb01JSWZET1Evb1dMQno2d09RMWN0c3o3MlVrQWRwSXM1bFFvYk1qaEZTQ09BWlFpYlZLdFNCdGgzKzNyTE9zcUhHN29KMFdKQi9BcldnR284cktkd0xWKzBaMlErNVY0Q3FJYzBSN2wrdkVIZUVUcUtsL1VoVXpwWEdwQlM3Vmx0ZkkvRERJY0QwT0hLTnZqcFVhR3pjVDgyNXNNUUFhcytBeDBEL1dzQ3BldlNiWm5MWGdGb0NOUnd3RDJiL3I4QXBIV0NSUW8vc3cwcmFVcUxMYlJLRHdXTWpNY2UxdWJISnFCbHErQlZEMm9OZEJmd3hRc1pTbk1GZ3d0WHBrNXBFa0R2Q2tnWGNRVEhRNjRCaVc5aXc3NjY3MDNwUEdtWXVGdWU0Zm9QTXF6dmFxZHIxU1dBa2RYaVlvRFp6NE5xb1NYWkdSN2tER01IcWRkQ1YwOUxpLzJMZ2RGczNlZHhQYTY2Y25aNjVWMFJYUEhraXUyWitMdnp0VkY5ZWgyZ2lZZThkWkdiUmRDOWZpOHFOaUNWenBQdW1MdFlNdGF0eWZLZ011Qy9DREFXQWRBaXhhM1JPUTVlRHpDM1JzY3RiOXdlTjBGM09YQWhqQTJFRnNlMHZFM2FUcTZ1bTNDdVVSdE4vemVLL1didGZPU3IwTVZDOTJvKzlPcUw3ZnA2SDM1L1c0RC9VN1pPL0xvT3NNMENaTmhxNkRsQ1MwZXd6Y1YxT2REeC81dURxN0d2OHFETGc0N1Yvd0p0MjFPMG5iK3gxd0xxSVVYVnlUeWc3QUs2ZHNRR1Y3cUdOWjB2SGVtOVRQcXNXYy9DM1E5UUZhTFFzeFpWQ1BnNHdWcGZIUGZWZGtFdmxVRm9BMTkxMWlHSTQ1K0JyVmJHd1ZZSnRQVzFzRnRkK0Y2MEJTRkE3ZFpDMW5hWDBIVWQ3aGZTYVJzdGh4ZUlVZlg2K2NXZjI3UEdmeG9kUDhKV3U3MlkxYnR6aVd2dE9XTkxmZnc2NC8vRmRIdy9acjhUaTkveG11KzA3Y2V2aVlYMEhmZGpmcjhWKzYzdDlQRy9NUDZ5TVNyeFZ6TmxYL2JXMU9wb1JiOVVMYmwxMTE3YnlYSGlDWVpmWnAzcE81N3JvTHZ6MTg2MUtuTVQxNFIxNWdiWG1jN3VwYS96M2M3T2RhSnZhOFc5d2JYdGZGQjFuU3F1dWdrTG1nTmRRVUNMcFRRdFZXN2dMRyt1dDFxd2FMQnVSc1BhcVlqZFY1cGZoU1hVR2FGNzBaSUhIUUJsOGJ3YUFyUlZXOHRMQkRRdE5NTWpvOVpTRzFwc1o3bHhkYU5tNzROUnNPaWFzZWFYdlRXM3hUa3pMVjZ2elFYN0FTbG5zMmZrQzZ0RXo2ck14dStSQjBkVU5FZGFldE5IbW55NmF5UkltMGNUemF0QitsVFppQmI3a3VNc2VNK3BTRk94bEZzUkFUUjFRTjJQengzS2RZNjdWY0V6bThhcHpPWnNLUTRpS2RlTzBwc2JpVzc0eDMrNGdGVmVocVRSNTRDUFlEalc4YmlaOEpaMHlZZ0lvQ2tDS1dkbzU0aU1JYjQxb2hicGEwQjZVWXFIaUFDYU9xQnlYbDVhMC9pYW5Cd1EvaTFBbGVCN0VRRTBkVUI5bXpHOUkrTWVLOUozaXZQeFNMVlhSQUJOR1VnNTN2UkJaVVBOckxEdjlLQ3NjQzBpZ0tZV3FFT1ZuWXZIOXAxU3pucFFaUTRlRVFFMGhVQmxueWtqa2ZLOGY4b1pBZzREVkJsb0xDS0FwZ2lrakxwNlNDVkNCcmthbS9vZTZVZUFLbE5RaWdpZ0tRSXFBN0RaZnpyRXEyaEZqOUNxQWxRSndoY1JRRk1FMUJMdm41WjRGY2Nqc3NYM3BMVDRpZ2lncVFNcUc1TFlMVFBRcXk1NVVFOExxQ0lDYU9xQVN0K1U4K3dNOEtwNlgvVTlKYUNLQ0tDcEErcG83NThXdFZsVWZkaUJPbDh5VzBRQVRSRlE2WjhPZGFEcWVOV1hyYjdWQUZVYWswUUUwTlFCVlE4SlZYMjVZdmdQeXFqanBuUytEQllYRVVCVEE5UUZJNzFGZFkxSmhxdUhxeCtaQUtwTTBpd2lnS1lJcUlSMEJBQ056K1JBSzNxQ3kvbVowbmtOa2tNaUFtZ3FaUHpXQlFSMGxFb0U1TnNaenhpTXozVTNhd0NyWkpLSUFKb0NvREl5NlY2L2JrbGNMbmxRVHdKVThWTUZVSkhrZzdxUXNiN3NvcUZsalhmUlJIMzE5eWRUT3ZleTVKSUFLcElhc0RMZ1liaUhWZmx1bXZOSXg3ajZseW1iSzkwMEFxaElDb0JhcU5xVzdYTmliSEErcDJNNUFWREZxZ3FnSXNrSGRaRmZ4Vm9OQnFBRFEyZHFQYXpWcG15T2ROVUlvQ0pKZjJCYkZ0RS92Y2Y1cWJyQXE5bVFkTnI3cStkTTJXeDVxQUtvU1BKaFhVdy9sZjJxZzBKYUxtMVFEVXQ3MHBUUGxxbERCVkNSRkFBMTExdFZWSC8xQU8rclVoajRjQkk2d0RwTC9GVUJWQ1Q1c0M3aFVvdkR1SDZtY3NzdXFsQ3cvaWttd0NycnBBcWdJa2wvdUp1WERGUnVPWG5DV2hBNjAyQmhOWW9ydnRXWmlXOUtaZ21nSXNtRmRTbGg5ZU5VN2NLMjhXb3cxNkxrZEtKbkZFTU1KODZVeUNVQlZDUzVzQzRyc3JBYU93U3VNTFNJTGdNZ3p1SDRETTZkTlJVenJraHVDYUFpeVN3QW01YWg2cXZaQ2x5c3dwRkxiWTFNTlRobUVQOTVVL0dHOUxVS29DTEpnM1U1NDRFQnF5N3gxalUzQWF4RDlxSUg5anlPYWszbDYxSWRGa0JGa2xZNHFsYjBkVmJWZHQyRSsxcUphOHdCcXhramZJSEpWTDRtRTNnTG9DTEpnZlVkcnNaTzMzV0FiUlZPaEJ3bS9GY1VwS0FlMk5aNlM0dXR2bXdtdlNLWko0Q0s5SGpCMmZndWdlM25yU3ZCTFFHZ3JwbXA3YXFvQTlWYTJqb2dYR2Ntdjl3b3VTZUFpdlE0c08vQmxBWjlBV2gvSFBiMzhCWjBxQlpUb2haV1oyWHJzVjhQZllPWk1sMkcwQW1nSWoxYXVEYXNqSVJnN1FjUTZkUG1ocXJGWVgvMkNtR0ZEV1pJNHFWQTZVc0VOenAxYWt3QUZSSHBxUUszL29Nc2ZIS2NLMU5mR3pSaFZKODRySUcvTG5EZ21zQUZValJrdUxWdkdqS01qWUpxZ0w2eGJ0cmtxQUFxSXRMZGhYRGRhbktaajcwK2dRdEp4RmIzSWJpQkJ6ZkRYd3RBUGNCVzN4SzRlWWFiQXFPNWJmUkFOMnUzNmx3ejlNMm5YNnE0SzYzdytCWGJBd0ZVSkdVbHNuYXRCbkE1QUM0L3d3S3M4Z0VvdDNtQnF5cEhFaGEzUGJpSlNqVDFnWnZiQ2RCcXprVWNoWTdIVVczWGVOVlJmNzVGRzgxdUl1T09OZThZWmZVYjMydnRjTytXUTYrKzJBNmNoOS9meHAvTTFDWitsZjNNME81ckVmd21WUkZ0VCtsTWZHVGFZNlBwQm1UaW9peXY1M0dXTWpwYjIvTUNxTWhkS29Wck5tUTZVRlV1QU1peFd3ZHVGZ3AzTm81em9NOEtQRnR4Yk9NdzZ3N1ZhdjFMa0p2UTkwSjYzY2tMb1FPZzdWNFV2NlR2N0Q0QWxQc3hBVlNrMTh2UVZWVzBTckJJT3N0YnM0aTNaaEZ2aGVQV2pEWHB3QjNyd0ZvNW83QzErakJFc0pUV0lvWjF4bG5oZG9DMmF0ZngxSUxmdEZ0M2JQVnhxMjJ0dWJmYVVhKy9Da0NiZDg3NFkvVC9BZ3dBMk1pN0hkQWUraWtBQUFBQVNVVk9SSzVDWUlJPSkgdG9wIHJpZ2h0IG5vLXJlcGVhdCAjMWIzMTQ5O1xuICAgIC8qIGJhY2tncm91bmQtYXR0YWNoZW1lbnQgbG9jYWwgaXMgbm90IHN1cHBvcnRlZCBvbiBJRThcbiAgICAgKiB3aGVuIHRoaXMgaXMgcGFydCBvZiBiYWNrZ3JvdW5kIHRoZSBjb21wbGV0ZSBiYWNrZ3JvdW5kIGlzIGlnbm9yZWQgKi9cbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGxvY2FsO1xufVxuLm14LWRlbW91c2Vyc3dpdGNoZXIgdWwge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luLXRvcDogMjVweDtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM0OTYwNzY7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlciBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgY29sb3I6ICMzODdlYTI7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM0OTYwNzY7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlciBoMiB7XG4gICAgbWFyZ2luOiAyMHB4IDAgNXB4O1xuICAgIGNvbG9yOiAjNWJjNGZlO1xuICAgIGZvbnQtc2l6ZTogMjhweDtcbn1cbi5teC1kZW1vdXNlcnN3aXRjaGVyIGgzIHtcbiAgICBtYXJnaW46IDAgMCAycHg7XG4gICAgY29sb3I6ICM1YmM0ZmU7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuLm14LWRlbW91c2Vyc3dpdGNoZXIgLmFjdGl2ZSBoMyB7XG4gICAgY29sb3I6ICMxMWVmZGI7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlciBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLm14LWRlbW91c2Vyc3dpdGNoZXItdG9nZ2xlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAyNSU7XG4gICAgbGVmdDogLTM1cHg7XG4gICAgd2lkdGg6IDM1cHg7XG4gICAgaGVpZ2h0OiAzOHB4O1xuICAgIG1hcmdpbi10b3A6IC00MHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xuICAgIGJveC1zaGFkb3c6IC0xcHggMCA1cHggcmdiYSgyOCw1OSw4NiwuMik7XG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQklBQUFBU0NBWUFBQUJXem81WEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeVJwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVNeTFqTURFeElEWTJMakUwTlRZMk1Td2dNakF4TWk4d01pOHdOaTB4TkRvMU5qb3lOeUFnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5UTmlBb1RXRmphVzUwYjNOb0tTSWdlRzF3VFUwNlNXNXpkR0Z1WTJWSlJEMGllRzF3TG1scFpEbzNORVJETWpGR1JEUTJORU14TVVVMFFUUTRNVUk1TlROR01VUTNRekU1TnlJZ2VHMXdUVTA2Ukc5amRXMWxiblJKUkQwaWVHMXdMbVJwWkRvM05FUkRNakZHUlRRMk5FTXhNVVUwUVRRNE1VSTVOVE5HTVVRM1F6RTVOeUkrSUR4NGJYQk5UVHBFWlhKcGRtVmtSbkp2YlNCemRGSmxaanBwYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2pjMFJFTXlNVVpDTkRZMFF6RXhSVFJCTkRneFFqazFNMFl4UkRkRE1UazNJaUJ6ZEZKbFpqcGtiMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPamMwUkVNeU1VWkRORFkwUXpFeFJUUkJORGd4UWprMU0wWXhSRGRETVRrM0lpOCtJRHd2Y21SbU9rUmxjMk55YVhCMGFXOXVQaUE4TDNKa1pqcFNSRVkrSUR3dmVEcDRiWEJ0WlhSaFBpQThQM2h3WVdOclpYUWdaVzVrUFNKeUlqOCsxWm92TkFBQUFXZEpSRUZVZU5xTTFNMHJSRkVZeC9FN1k1cUlRcE9VYklpeW1RV3lzQmd2SlZKSzJWZ3J5WlF0S1NVTFplbFBzQjBMWmFOWmpKVU5LMUZza0pxVXZDUzNOQXNaYzN6UDlOemlPT2ZlZWVwVGM4L2M4K3ZjOHhaVFNubU9ha0VHS2R6Z0RCWFh5NTRPTXNTd2pwTDZXOWNZc3J4ZlpXdmNVdTd5MFZkTFVDYytWWGdkMm9MaXhwZk9JT21GMTdUdEhUT296WXV1cEN4QWFOQjlEVUVmZURVYkU4YnpFWHhaZXJQMDBsOGhoM0xVaUhUSU1yNk45ajJrc1lvaWh2LzFkZXlMU1Z6S0ttMWpFVytXZlpWMkxmOGdza2pJY3djV3BPTSsrcEhDRlBMb3NnV3RvQ3lkN2pDUE9qemhHSEhMeURQWTFhY2hhSmhEeFJqNnJCd0pYVXVvTjBJRzhJSXY3T2lHQmp4YWR2QUlUdVQzcmV4NmMwU2JLQVNmbG5VY0JUM0pUVGhBanlXa0dVVnNCRUVGUjVDZXJ6WHBOSWFjckZJckpuQ0JCM211QnZraEIxVFAyN2hNL0x2eDN6bDZneEhxdTZjNzRraVU4SXhHaktKZExyclQzeGZkandBREFKYU14UDJidkQyQkFBQUFBRWxGVGtTdVFtQ0MpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0ICMxYjMxNDk7XG59XG4iLCIvKiBtYXN0ZXIgZGV0YWlscyBzY3JlZW4gZm9yIG1vYmlsZSAqL1xuLm14LW1hc3Rlci1kZXRhaWwtc2NyZWVuIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG59XG5cbi5teC1tYXN0ZXItZGV0YWlsLXNjcmVlbiAubXgtbWFzdGVyLWRldGFpbC1kZXRhaWxzIHtcbiAgICBwYWRkaW5nOiAxNXB4O1xufVxuXG4ubXgtbWFzdGVyLWRldGFpbC1zY3JlZW4taGVhZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNztcbn1cblxuLm14LW1hc3Rlci1kZXRhaWwtc2NyZWVuLWhlYWRlci1jYXB0aW9uIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxN3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5teC1tYXN0ZXItZGV0YWlsLXNjcmVlbi1oZWFkZXItY2xvc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDUwcHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjMDA3YWZmO1xufVxuXG5ib2R5W2Rpcj1cInJ0bFwiXSAubXgtbWFzdGVyLWRldGFpbC1zY3JlZW4taGVhZGVyLWNsb3NlIHtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiBhdXRvO1xufVxuXG4ubXgtbWFzdGVyLWRldGFpbC1zY3JlZW4taGVhZGVyLWNsb3NlOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFwyMDM5XCI7XG4gICAgZm9udC1zaXplOiA1MnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xufVxuXG4vKiBjbGFzc2VzIGZvciBjb250ZW50IHBhZ2UgKi9cbi5teC1tYXN0ZXItZGV0YWlsLWNvbnRlbnQtZml4IHtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5teC1tYXN0ZXItZGV0YWlsLWNvbnRlbnQtaGlkZGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwMCUpO1xufVxuXG5ib2R5W2Rpcj1cInJ0bFwiXSAubXgtbWFzdGVyLWRldGFpbC1jb250ZW50LWhpZGRlbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwMCUpO1xufSIsIi5yZXBvcnRpbmdSZXBvcnQge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIC1tb3otYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbiIsIi5yZXBvcnRpbmdSZXBvcnRQYXJhbWV0ZXIgdGgge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuIiwiLnJlcG9ydGluZ0RhdGVSYW5nZSB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbn1cbi5yZXBvcnRpbmdEYXRlUmFuZ2UgdGgge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xufVxuLnJlcG9ydGluZ0RhdGVSYW5nZSB0ZCB7XG4gICAgcGFkZGluZzogNXB4O1xufVxuIiwiLm14LXJlcG9ydG1hdHJpeCB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLm14LXJlcG9ydG1hdHJpeCB0aCwgLm14LXJlcG9ydG1hdHJpeCB0ZCB7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbn1cblxuLm14LXJlcG9ydG1hdHJpeCB0Ym9keSB0cjpmaXJzdC1jaGlsZCB0ZCB7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbn1cblxuLm14LXJlcG9ydG1hdHJpeCB0Ym9keSB0cjpudGgtY2hpbGQoMm4rMSkgdGQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG59XG5cbi5teC1yZXBvcnRtYXRyaXggdGJvZHkgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDE2cHg7XG4gICAgbWF4LWhlaWdodDogMTZweDtcbn1cbiIsIi8qIFdBUk5JTkc6IElFOSBsaW1pdHMgbmVzdGVkIGltcG9ydHMgdG8gdGhyZWUgbGV2ZWxzIGRlZXA6IGh0dHA6Ly9qb3JnZWFsYmFsYWRlam8uY29tLzIwMTEvMDUvMjgvaW50ZXJuZXQtZXhwbG9yZXItbGltaXRzLW5lc3RlZC1pbXBvcnQtY3NzLXN0YXRlbWVudHMgKi9cblxuLyogZGlqaXQgYmFzZSAqL1xuXG4vKiBtZW5kaXggYmFzZSAqL1xuXG4vKiB3aWRnZXRzICovXG5cbi8qIHJlcG9ydGluZyAqL1xuIl0sInNvdXJjZVJvb3QiOiIifQ==*/\n","//== Gray Shades\n//## Different gray shades to be used for our variables and components\n$gray-darker: #222222;\n$gray-dark: #333333;\n$gray: #555555;\n$gray-light: #888888;\n$gray-primary: #D7D7D7;\n$gray-lighter: #EEEEEE;\n\n//== Step 1: Brand Colors\n$brand-default: #DDDDDD;\n$brand-primary: #0595DB;\n$brand-inverse: #252C36;\n$brand-info: #48B0F7;\n$brand-success: #76CA02;\n$brand-warning: #F99B1D;\n$brand-danger: #ED1C24;\n\n// Used for other variables\n$default-border-color: $gray-primary;\n\n//== Step 3: Typography\n$font-family-import: \"https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700\";\n@if $font-family-import != false {\n // Only import, if the import is set\n @import url($font-family-import);\n}\n$font-family-base: \"Open Sans\", sans-serif;\n$font-base-size: 14px;\n$font-base-color: #555555;\n$link-color: $brand-primary;\n$font-size-h1: 31px;\n$font-size-h2: 26px;\n$font-size-h3: 24px;\n$font-size-h4: 18px;\n$font-color-detail: $gray-light;\n$font-color-headers: #17347B;\n\n//== Step 2: UI Customization\n\n// Topbar\n$topbar-bg: #FFFFFF;\n$navtopbar-border-color: $default-border-color;\n$topbar-border-color: $navtopbar-border-color;\n$topbar-minimalheight: 60px;\n$navtopbar-color: $font-base-color;\n$navbar-brand-name: $default-border-color;\n$brand-logo: false;\n$brand-logo-height: 30px;\n$brand-logo-width: 30px;\n\n// Sidebar\n$sidebar-bg: $brand-inverse;\n$navsidebar-color: #FFFFFF;\n$navsidebar-color-hover: $navsidebar-color;\n\n// Backgrounds\n$bg-color: #FFFFFF;\n$bg-color-secondary: #F5F8FD;\n\n// == Old variables used in theme customizer to the new lib variables\n$font-size-default: $font-base-size;\n$font-color-default: $font-base-color;\n$border-color-default: $default-border-color;\n$font-color-header:\t\t\t\t $font-color-headers;\n\n\n//== Settings\n//## Enable or disable your desired framework features\n// Use of !important\n$important-flex: true; // ./base/flex.scss\n$important-spacing: true; // ./base/spacing.scss\n$important-helpers: true; // ./helpers/helperclasses.scss\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n//\n// ██████╗ █████╗ ███████╗██╗ ██████╗\n// ██╔══██╗██╔══██╗██╔════╝██║██╔════╝\n// ██████╔╝███████║███████╗██║██║\n// ██╔══██╗██╔══██║╚════██║██║██║\n// ██████╔╝██║ ██║███████║██║╚██████╗\n// ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═════╝\n//\n\n\n//== Gray Shades\n//## Different gray shades to be used for our variables and components\n$gray-darker: #222 !default;\n$gray-dark: #333 !default;\n$gray: #555 !default;\n$gray-light: #888 !default;\n$gray-primary: #d7d7d7 !default;\n$gray-lighter: #eee !default;\n\n\n//== Step 1: Brand Colors\n$brand-default: #DDDDDD !default;\n$brand-primary: #0595DB !default;\n$brand-inverse: #252C36 !default;\n$brand-info: #48B0F7 !default;\n$brand-success: #76CA02 !default;\n$brand-warning: #f99b1d !default;\n$brand-danger: #ed1c24 !default;\n\n$brand-logo:\t\t\t\t\t\t\tfalse !default;\n$brand-logo-height:\t\t\t\t\t\t26px !default;\n$brand-logo-width:\t\t\t\t\t\t26px !default; // Only used for CSS brand logo\n\n\n\n\n\n//== Step 2: UI Customization\n\n// Default Font Size & Color\n$font-size-default: 14px !default;\n$font-color-default: #555 !default;\n\n// Global Border Color\n$border-color-default: $gray-primary !default;\n$border-radius-default: 4px !default;\n\n// Topbar\n$topbar-bg: #FFF !default;\n$topbar-minimalheight: 60px !default;\n$topbar-border-color: $border-color-default !default;\n\n// Topbar mobile\n$m-header-height: \t45px !default;\n$m-header-bg: $topbar-bg !default;\n$m-header-color: #555 !default;\n$m-header-title-size: 17px !default;\n\n\n// Sidebar\n$sidebar-bg: $brand-inverse !default;\n\n// Navbar Brand Name / For your company, product, or project name (used in layouts/base/)\n$navbar-brand-name: $font-color-default !default;\n\n// Background Colors\n$bg-color: #FFF !default;\n$bg-color-secondary: #F5F8FD !default; // Background color that is used for specific page templates background\n\n// Default Link Color\n$link-color: $brand-primary !default;\n$link-hover-color: darken($link-color, 15%) !default;\n\n\n\n\n\n//\n// █████╗ ██████╗ ██╗ ██╗ █████╗ ███╗ ██╗ ██████╗███████╗██████╗\n// ██╔══██╗██╔══██╗██║ ██║██╔══██╗████╗ ██║██╔════╝██╔════╝██╔══██╗\n// ███████║██║ ██║██║ ██║███████║██╔██╗ ██║██║ █████╗ ██║ ██║\n// ██╔══██║██║ ██║╚██╗ ██╔╝██╔══██║██║╚██╗██║██║ ██╔══╝ ██║ ██║\n// ██║ ██║██████╔╝ ╚████╔╝ ██║ ██║██║ ╚████║╚██████╗███████╗██████╔╝\n// ╚═╝ ╚═╝╚═════╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝╚══════╝╚═════╝\n//\n\n\n//== Typography\n//## Change your font family, weight, line-height, headings and more (used in components/typography)\n\n// Font Family Import (Used for google font plugin in theme creater https://ux.mendix.com/theme-creator.html)\n$font-family-import: \"https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700\" !default;\n@if $font-family-import != false {\n // Only import, if the import is set\n @import url($font-family-import);\n}\n\n// Font Family / False = fallback from Bootstrap (Helvetica Neue)\n$font-family-base: 'Open Sans', sans-serif !default;\n\n// Font Sizes\n$font-size-large: 16px !default;\n$font-size-small: 12px !default;\n\n// Font Weights\n$font-weight-light: 100 !default;\n$font-weight-normal: normal !default;\n$font-weight-semibold: 600 !default;\n$font-weight-bold: bold !default;\n\n// Font Size Headers\n$font-size-h1: 31px !default;\n$font-size-h2: 26px !default;\n$font-size-h3: 24px !default;\n$font-size-h4: 18px !default;\n$font-size-h5: $font-size-default !default;\n$font-size-h6: 12px !default;\n\n// Font Weight Headers\n$font-weight-header: $font-weight-normal !default;\n\n// Line Height\n$line-height-base: 1.428571429 !default;\n\n// Spacing\n$font-header-margin:\t\t\t\t\t15px 0 30px 0 !default;\n\n// Text Colors\n$font-color-header:\t\t\t\t #17347B !default;\n$font-color-detail: $gray-light !default;\n\n\n\n\n\n//== Navigation\n//## Used in components/navigation\n\n// Default Navigation styling\n$navigation-item-height: 60px !default;\n$navigation-item-padding: 5px 15px !default;\n\n$navigation-font-size: $font-size-default !default;\n$navigation-sub-font-size: $font-size-small !default;\n$navigation-glyph-size: 20px !default; // For glyphicons that you can select in the Mendix Modeler\n\n$navigation-bg: $brand-inverse !default;\n$navigation-bg-hover: lighten($navigation-bg, 4) !default;\n$navigation-bg-active: lighten($navigation-bg, 8) !default;\n$navigation-color: #FFF !default;\n$navigation-color-hover: #FFF !default;\n$navigation-color-active: #FFF !default;\n\n$navigation-sub-bg: darken($navigation-bg, 4) !default;\n$navigation-sub-bg-hover: $navigation-sub-bg !default;\n$navigation-sub-bg-active: $navigation-sub-bg !default;\n$navigation-sub-color: #AAA !default;\n$navigation-sub-color-hover: $brand-primary !default;\n$navigation-sub-color-active: $brand-primary !default;\n\n$navigation-border-color: $navigation-bg-hover !default;\n\n// Navigation Sidebar\n$navsidebar-font-size: $font-size-default !default;\n$navsidebar-sub-font-size: $font-size-small !default;\n$navsidebar-glyph-size: 20px !default; // For glyphicons that you can select in the Mendix Modeler\n\n$navsidebar-bg: $sidebar-bg !default;\n$navsidebar-bg-hover: lighten($navsidebar-bg, 4) !default;\n$navsidebar-bg-active: lighten($navsidebar-bg, 8) !default;\n$navsidebar-color: #FFF !default;\n$navsidebar-color-hover: #FFF !default;\n$navsidebar-color-active: #FFF !default;\n\n$navsidebar-sub-bg: darken($navsidebar-bg, 4) !default;\n$navsidebar-sub-bg-hover: $navsidebar-sub-bg !default;\n$navsidebar-sub-bg-active: $navsidebar-sub-bg !default;\n$navsidebar-sub-color: #AAA !default;\n$navsidebar-sub-color-hover: $brand-primary !default;\n$navsidebar-sub-color-active: $brand-primary !default;\n\n$navsidebar-border-color: $navsidebar-bg-hover !default;\n\n// Navigation topbar\n$navtopbar-font-size: $font-size-default !default;\n$navtopbar-sub-font-size: $font-size-small !default;\n$navtopbar-glyph-size: 1.2em !default; // For glyphicons that you can select in the Mendix Modeler\n\n$navtopbar-bg: $topbar-bg !default;\n$navtopbar-bg-hover: darken($navtopbar-bg, 4) !default;\n$navtopbar-bg-active: darken($navtopbar-bg, 8) !default;\n$navtopbar-color: $font-color-default !default;\n$navtopbar-color-hover: $navtopbar-color !default;\n$navtopbar-color-active: $navtopbar-color !default;\n\n$navtopbar-sub-bg: lighten($navtopbar-bg, 4) !default;\n$navtopbar-sub-bg-hover: $navtopbar-sub-bg !default;\n$navtopbar-sub-bg-active: $navtopbar-sub-bg !default;\n$navtopbar-sub-color: #AAA !default;\n$navtopbar-sub-color-hover: $brand-primary !default;\n$navtopbar-sub-color-active: $brand-primary !default;\n\n//## Used in layouts/base\n$navtopbar-border-color: $topbar-border-color !default;\n\n\n\n\n//== Form\n//## Used in components/inputs\n\n// Values that can be used default | lined\n$form-input-style: default !default;\n\n// Form Label\n$form-label-color: #666 !default;\n$form-label-size: $font-size-default !default;\n$form-label-weight: $font-weight-semibold !default;\n$form-label-gutter: 8px !default;\n\n// Form Input dimensions\n$form-input-height: auto !default;\n$form-input-padding-y: 8px !default;\n$form-input-padding-x: 10px !default;\n$form-input-font-size: $form-label-size !default;\n$form-input-line-height: $line-height-base !default;\n$form-input-border-radius: $border-radius-default !default;\n\n// Form Input styling\n$form-input-bg: #FFF !default;\n$form-input-bg-focus: #FFF !default;\n$form-input-bg-hover: $gray-primary !default;\n$form-input-bg-disabled: $gray-lighter !default;\n$form-input-color: $font-color-default !default;\n$form-input-focus-color: $form-input-color !default;\n$form-input-disabled-color: $form-input-color !default;\n$form-input-placeholder-color: $gray-light !default;\n$form-input-border-color: $border-color-default !default;\n$form-input-border-focus-color: $brand-primary !default;\n\n// Form Input Static styling\n$form-input-static-border-color:\t\t#F0F0EE !default;\n\n// Form Group\n$form-group-margin-bottom: 15px !default;\n$form-group-gutter: 15px !default;\n\n\n\n\n//== Buttons\n//## Define background-color, border-color and text. Used in components/buttons\n\n// Default button style\n$btn-font-size: 14px !default;\n$btn-bordered: false !default; // Default value false, set to true if you want this effect\n$btn-border-radius: $border-radius-default !default;\n\n// Button Background Color\n$btn-default-bg: #FFF !default;\n$btn-inverse-bg: $brand-inverse !default;\n$btn-primary-bg: $brand-primary !default;\n$btn-info-bg: $brand-info !default;\n$btn-success-bg: $brand-success !default;\n$btn-warning-bg: $brand-warning !default;\n$btn-danger-bg: $brand-danger !default;\n\n// Button Border Color\n$btn-default-border-color: $brand-default !default;\n$btn-inverse-border-color: $btn-inverse-bg !default;\n$btn-primary-border-color: $btn-primary-bg !default;\n$btn-info-border-color: $btn-info-bg !default;\n$btn-success-border-color: $btn-success-bg !default;\n$btn-warning-border-color: $btn-warning-bg !default;\n$btn-danger-border-color: $btn-danger-bg !default;\n\n// Button Text Color\n$btn-default-color: $brand-primary !default;\n$btn-inverse-color: #FFF !default;\n$btn-primary-color: #FFF !default;\n$btn-info-color: #FFF !default;\n$btn-success-color: #FFF !default;\n$btn-warning-color: #FFF !default;\n$btn-danger-color: #FFF !default;\n\n// Button Background Color\n$btn-default-bg-hover: $btn-default-border-color !default;\n$btn-inverse-bg-hover: mix($btn-inverse-bg, white, 80%) !default;\n$btn-primary-bg-hover: mix($btn-primary-bg, black, 80%) !default;\n$btn-info-bg-hover: mix($btn-info-bg, black, 80%) !default;\n$btn-success-bg-hover: mix($btn-success-bg, black, 80%) !default;\n$btn-warning-bg-hover: mix($btn-warning-bg, black, 80%) !default;\n$btn-danger-bg-hover: mix($btn-danger-bg, black, 80%) !default;\n$btn-link-bg-hover: $gray-lighter !default;\n\n\n\n\n//== Header blocks\n//## Define look and feel over multible building blocks that serve as header\n$header-bg-color: $bg-color-secondary !default;\n$header-text-color: #FFF !default;\n$header-text-color-detail: rgba(0,0,0, 0.2) !default;\n\n\n\n\n\n//\n// ███████╗██╗ ██╗██████╗ ███████╗██████╗ ████████╗\n// ██╔════╝╚██╗██╔╝██╔══██╗██╔════╝██╔══██╗╚══██╔══╝\n// █████╗ ╚███╔╝ ██████╔╝█████╗ ██████╔╝ ██║\n// ██╔══╝ ██╔██╗ ██╔═══╝ ██╔══╝ ██╔══██╗ ██║\n// ███████╗██╔╝ ██╗██║ ███████╗██║ ██║ ██║\n// ╚══════╝╚═╝ ╚═╝╚═╝ ╚══════╝╚═╝ ╚═╝ ╚═╝\n//\n\n//== Color variations\n//## These variations are used to support several other variables and components\n\n// Color variations\n$color-default-darker: mix($brand-default, black, 60%) !default;\n$color-default-dark: mix($brand-default, black, 70%) !default;\n$color-default-light: mix($brand-default, white, 60%) !default;\n$color-default-lighter: mix($brand-default, white, 20%) !default;\n\n$color-inverse-darker: mix($brand-inverse, black, 60%) !default;\n$color-inverse-dark: mix($brand-inverse, black, 70%) !default;\n$color-inverse-light: mix($brand-inverse, white, 60%) !default;\n$color-inverse-lighter: mix($brand-inverse, white, 20%) !default;\n\n$color-primary-darker: mix($brand-primary, black, 60%) !default;\n$color-primary-dark: mix($brand-primary, black, 70%) !default;\n$color-primary-light: mix($brand-primary, white, 60%) !default;\n$color-primary-lighter: mix($brand-primary, white, 20%) !default;\n\n$color-info-darker: mix($brand-info, black, 60%) !default;\n$color-info-dark: mix($brand-info, black, 70%) !default;\n$color-info-light: mix($brand-info, white, 60%) !default;\n$color-info-lighter: mix($brand-info, white, 20%) !default;\n\n$color-success-darker: mix($brand-success, black, 60%) !default;\n$color-success-dark: mix($brand-success, black, 70%) !default;\n$color-success-light: mix($brand-success, white, 60%) !default;\n$color-success-lighter: mix($brand-success, white, 20%) !default;\n\n$color-warning-darker: mix($brand-warning, black, 60%) !default;\n$color-warning-dark: mix($brand-warning, black, 70%) !default;\n$color-warning-light: mix($brand-warning, white, 60%) !default;\n$color-warning-lighter: mix($brand-warning, white, 20%) !default;\n\n$color-danger-darker: mix($brand-danger, black, 60%) !default;\n$color-danger-dark: mix($brand-danger, black, 70%) !default;\n$color-danger-light: mix($brand-danger, white, 60%) !default;\n$color-danger-lighter: mix($brand-danger, white, 20%) !default;\n\n$brand-gradient: linear-gradient(152deg, #0CC7F0 0%, #087ECC 51%, #077AC9 55%, #0659B9 78%) !default;\n\n\n//== Grids\n//## Used for Datagrid, Templategrid, Listview & Tables (see components folder)\n\n// Default Border Colors\n$grid-border-color: $border-color-default !default;\n\n// Spacing\n// Default\n$grid-padding-top: 15px !default;\n$grid-padding-right: 15px !default;\n$grid-padding-bottom: 15px !default;\n$grid-padding-left: 15px !default;\n\n// Listview\n$listview-padding-top: 15px !default;\n$listview-padding-right: 15px !default;\n$listview-padding-bottom: 15px !default;\n$listview-padding-left: 15px !default;\n\n// Background Colors\n$grid-bg: #FFF !default;\n$grid-bg-header: transparent !default; // Grid Headers\n$grid-bg-hover: mix($grid-border-color, #FFF, 20%) !default;\n$grid-bg-selected: mix($grid-border-color, #FFF, 30%) !default;\n$grid-bg-selected-hover: mix($grid-border-color, #FFF, 50%) !default;\n\n// Striped Background Color\n$grid-bg-striped: mix($grid-border-color, #FFF, 10%) !default;\n\n// Background Footer Color\n$grid-footer-bg: $gray-primary !default;\n\n// Text Color\n$grid-selected-color: $font-color-default !default;\n\n// Paging Colors\n$grid-paging-bg: transparent !default;\n$grid-paging-bg-hover: transparent !default;\n$grid-paging-border-color: transparent !default;\n$grid-paging-border-color-hover: transparent !default;\n$grid-paging-color: $gray-light !default;\n$grid-paging-color-hover: $brand-primary !default;\n\n\n\n\n//== Tabs\n//## Default variables for Tab Container Widget (used in components/tabcontainer)\n\n// Text Color\n$tabs-color: $font-color-detail !default;\n$tabs-color-active: $font-color-default !default;\n$tabs-lined-color-active: $brand-primary !default;\n\n// Border Color\n$tabs-border-color: $border-color-default !default;\n$tabs-lined-border-color: $brand-primary !default;\n\n// Background Color\n$tabs-bg: #FFF !default;\n$tabs-bg-hover: lighten($tabs-border-color,5) !default;\n$tabs-bg-active: $brand-primary !default;\n\n\n\n\n//== Modals\n//## Default Mendix Modal, Blocking Modal and Login Modal (used in components/modals)\n\n// Background Color\n$modal-header-bg: transparent !default;\n\n// Border Color\n$modal-header-border-color: $border-color-default !default;\n\n// Text Color\n$modal-header-color: $font-color-default !default;\n\n\n\n\n//== Dataview\n//## Default variables for Dataview Widget (used in components/dataview)\n\n// Controls\n$dataview-controls-bg: transparent !default;\n$dataview-controls-border-color: $border-color-default !default;\n\n// Empty Message\n$dataview-emptymessage-bg: $bg-color !default;\n$dataview-emptymessage-color: $font-color-default !default;\n\n\n\n\n//== Alerts\n//## Default Bootstrap alerts, not a widget in the Modeler (used in components/alerts)\n\n// Background Color\n$alert-info-bg: $color-info-lighter !default;\n$alert-success-bg: $color-success-lighter !default;\n$alert-warning-bg: $color-warning-lighter !default;\n$alert-danger-bg: $color-danger-lighter !default;\n\n// Text Color\n$alert-info-color: $color-info-darker !default;\n$alert-success-color: $color-success-darker !default;\n$alert-warning-color: $color-warning-darker !default;\n$alert-danger-color: $color-danger-darker !default;\n\n// Border Color\n$alert-info-border-color: $color-info-dark !default;\n$alert-success-border-color: $color-success-dark !default;\n$alert-warning-border-color: $color-warning-dark !default;\n$alert-danger-border-color: $color-danger-dark !default;\n\n\n\n\n//== Labels\n//## Default Bootstrap Labels, not a widget in the Modeler (used in components/labels)\n\n// Background Color\n$label-default-bg: $brand-default !default;\n$label-primary-bg: $brand-primary !default;\n$label-info-bg: $brand-info !default;\n$label-inverse-bg: $brand-inverse !default;\n$label-success-bg: $brand-success !default;\n$label-warning-bg: $brand-warning !default;\n$label-danger-bg: $brand-danger !default;\n\n// Border Color\n$label-default-border-color: $brand-default !default;\n$label-primary-border-color: $brand-primary !default;\n$label-info-border-color: $brand-info !default;\n$label-success-border-color: $brand-success !default;\n$label-warning-border-color: $brand-warning !default;\n$label-danger-border-color: $brand-danger !default;\n\n// Text Color\n$label-default-color: $font-color-default !default;\n$label-primary-color: #FFF !default;\n$label-info-color: #FFF !default;\n$label-inverse-color: #FFF !default;\n$label-success-color: #FFF !default;\n$label-warning-color: #FFF !default;\n$label-danger-color: #FFF !default;\n\n\n\n\n//== Groupbox\n//## Default variables for Groupbox Widget (used in components/groupbox)\n\n// Background Color\n$groupbox-default-bg: $brand-default !default;\n$groupbox-inverse-bg: $brand-inverse !default;\n$groupbox-primary-bg: $brand-primary !default;\n$groupbox-info-bg: $brand-info !default;\n$groupbox-success-bg: $brand-success !default;\n$groupbox-warning-bg: $brand-warning !default;\n$groupbox-danger-bg: $brand-danger !default;\n$groupbox-white-bg: #FFF !default;\n\n// Text Color\n$groupbox-default-color: $font-color-default !default;\n$groupbox-inverse-color: #FFF !default;\n$groupbox-primary-color: #FFF !default;\n$groupbox-info-color: #FFF !default;\n$groupbox-success-color: #FFF !default;\n$groupbox-warning-color: #FFF !default;\n$groupbox-danger-color: #FFF !default;\n$groupbox-white-color: $font-color-default !default;\n\n\n\n\n//== Callout (groupbox) Colors\n//## Extended variables for Groupbox Widget (used in components/groupbox)\n\n// Text and Border Color\n$callout-default-color: $font-color-default !default;\n$callout-info-color: $brand-info !default;\n$callout-success-color: $brand-success !default;\n$callout-warning-color: $brand-warning !default;\n$callout-danger-color: $brand-danger !default;\n\n// Background Color\n$callout-default-bg: $color-default-lighter!default;\n$callout-info-bg: $color-info-lighter !default;\n$callout-success-bg: $color-success-lighter !default;\n$callout-warning-bg: $color-warning-lighter !default;\n$callout-danger-bg: $color-danger-lighter !default;\n\n//== Timeline\n//## Extended variables for Timeline Widget\n// Colors\n$timeline-icon-color: $brand-primary;\n$timeline-border-color: $border-color-default;\n\n$timeline-color-header: $font-color-header;\n$timeline-color-detail: $font-color-detail;\n\n// Sizes\n$timeline-icon-size: 18px;\n\n//== Spacing\n//## Advanced layout options (used in base/mixins/default-spacing)\n\n// Small spacing\n$spacing-small: 5px !default;\n\n// Medium spacing\n$spacing-medium: 15px !default;\n$t-spacing-medium: 15px !default;\n$m-spacing-medium: 15px !default;\n\n// Large spacing\n$spacing-large: 30px !default;\n$t-spacing-large: 30px !default;\n$m-spacing-large: 15px !default;\n\n// Layout spacing\n$layout-spacing-top: 30px !default;\n$layout-spacing-right: 30px !default;\n$layout-spacing-bottom: 30px !default;\n$layout-spacing-left: 30px !default;\n\n$t-layout-spacing-top: 30px !default;\n$t-layout-spacing-right: 30px !default;\n$t-layout-spacing-bottom: 30px !default;\n$t-layout-spacing-left: 30px !default;\n\n$m-layout-spacing-top: 15px !default;\n$m-layout-spacing-right: 15px !default;\n$m-layout-spacing-bottom: 15px !default;\n$m-layout-spacing-left: 15px !default;\n\n// Combined layout spacing\n$layout-spacing: $layout-spacing-top $layout-spacing-right $layout-spacing-bottom $layout-spacing-left !default;\n$m-layout-spacing: $m-layout-spacing-top $m-layout-spacing-right $m-layout-spacing-bottom $m-layout-spacing-left !default;\n$t-layout-spacing: $t-layout-spacing-top $t-layout-spacing-right $t-layout-spacing-bottom $t-layout-spacing-left !default;\n\n// Gutter size\n$gutter-size: 15px !default;\n\n\n\n\n\n//== Tables\n//## Table spacing options (used in components/tables)\n\n$padding-table-cell-top: 8px !default;\n$padding-table-cell-bottom: 8px !default;\n$padding-table-cell-left: 8px !default;\n$padding-table-cell-right: 8px !default;\n\n\n\n\n//== Media queries breakpoints\n//## Define the breakpoints at which your layout will change, adapting to different screen sizes.\n\n$screen-xs: 480px !default;\n$screen-sm: 576px !default;\n$screen-md: 768px !default;\n$screen-lg: 992px !default;\n$screen-xl: 1200px !default;\n\n// So media queries don't overlap when required, provide a maximum (used for max-width)\n$screen-xs-max: ($screen-sm - 1) !default;\n$screen-sm-max: ($screen-md - 1) !default;\n$screen-md-max: ($screen-lg - 1) !default;\n$screen-lg-max: ($screen-xl - 1) !default;\n\n\n//== Settings\n//## Enable or disable your desired framework features\n// Use of !important\n$important-flex: true !default; // ./base/flex.scss\n$important-spacing: true !default; // ./base/spacing.scss\n$important-helpers: true !default; // ./helpers/helperclasses.scss\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin transition(\n $style: initial,\n $delay: 0s,\n $duration: 0.3s,\n $property: all,\n $timing-fucntion: cubic-bezier(0.4, 0, 0.2, 1)\n) {\n -webkit-transition: $property $duration $delay $timing-fucntion;\n -moz-transition: $property $duration $delay $timing-fucntion;\n -o-transition: $property $duration $delay $timing-fucntion;\n transition: $property $duration $delay $timing-fucntion;\n transform-style: $style;\n}\n\n@mixin ripple($color: #000, $transparency: 10%, $scale: 10) {\n position: relative;\n overflow: hidden;\n transform: translate3d(0, 0, 0);\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n pointer-events: none;\n background-image: radial-gradient(circle, $color $transparency, transparent $transparency);\n background-repeat: no-repeat;\n background-position: 50%;\n -webkit-transform: scale($scale, $scale);\n transform: scale($scale, $scale);\n opacity: 0;\n -webkit-transition: transform 0.5s, opacity 1s;\n -moz-transition: transform 0.5s, opacity 1s;\n -o-transition: transform 0.5s, opacity 1s;\n transition: transform 0.5s, opacity 1s;\n }\n\n &:active:after {\n -webkit-transform: scale(0, 0);\n transform: scale(0, 0);\n opacity: 0.1;\n transition: 0s;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin get-responsive-spacing-large($type: padding, $direction: all, $is_important: false) {\n $suffix: '';\n $dash: '-'; // Otherwise it will be interpreted as a minus symbol. Needed for the Gonzales PE version: 3.4.7 compiler (used by the Webmodeler)\n\n @if $is_important != false {\n $suffix: ' !important';\n }\n @if $direction==all {\n @media (max-width: $screen-sm-max) {\n #{$type}: #{$m-spacing-large}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}: #{$t-spacing-large}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}: #{$spacing-large}#{$suffix};\n }\n } @else {\n @media (max-width: $screen-sm-max) {\n #{$type}#{$dash}#{$direction}: #{$m-spacing-large}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}#{$dash}#{$direction}: #{$t-spacing-large}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}#{$dash}#{$direction}: #{$spacing-large}#{$suffix};\n }\n }\n}\n\n@mixin get-responsive-spacing-medium($type: padding, $direction: all, $is_important: false) {\n $suffix: '';\n $dash: '-'; // Otherwise it will be interpreted as a minus symbol. Needed for the Gonzales PE version: 3.4.7 compiler (used by the Webmodeler)\n\n @if $is_important != false {\n $suffix: ' !important';\n }\n @if $direction==all {\n @media (max-width: $screen-sm-max) {\n #{$type}: #{$m-spacing-medium}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}: #{$t-spacing-medium}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}: #{$spacing-medium}#{$suffix};\n }\n } @else {\n @media (max-width: $screen-sm-max) {\n #{$type}#{$dash}#{$direction}: #{$m-spacing-medium}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}#{$dash}#{$direction}: #{$t-spacing-medium}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}#{$dash}#{$direction}: #{$spacing-medium}#{$suffix};\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin layout-spacing($type: padding, $direction: all, $device: responsive, $is_important: false) {\n $suffix: '';\n @if $is_important != false {\n $suffix: ' !important';\n }\n @if $device==responsive {\n @if $direction==all {\n @media (max-width: $screen-sm-max) {\n #{$type}: #{$m-layout-spacing}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}: #{$t-layout-spacing}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}: #{$layout-spacing}#{$suffix};\n }\n } @else if $direction==top {\n @media (max-width: $screen-sm-max) {\n #{$type}-top: #{$m-layout-spacing-top}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}-top: #{$t-layout-spacing-top}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}-top: #{$layout-spacing-top}#{$suffix};\n }\n } @else if $direction==right {\n @media (max-width: $screen-sm-max) {\n #{$type}-right: #{$m-layout-spacing-right}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}-right: #{$t-layout-spacing-right}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}-right: #{$layout-spacing-right}#{$suffix};\n }\n } @else if $direction==bottom {\n @media (max-width: $screen-sm-max) {\n #{$type}-bottom: #{$m-layout-spacing-bottom}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}-bottom: #{$t-layout-spacing-bottom}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}-bottom: #{$layout-spacing-bottom}#{$suffix};\n }\n } @else if $direction==left {\n @media (max-width: $screen-sm-max) {\n #{$type}-left: #{$m-layout-spacing-left}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}-left: #{$t-layout-spacing-left}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}-left: #{$layout-spacing-left}#{$suffix};\n }\n }\n } @else if $device==tablet {\n @if $direction==all {\n #{$type}: #{$t-layout-spacing}#{$suffix};\n } @else if $direction==top {\n #{$type}-top: #{$t-layout-spacing-top}#{$suffix};\n } @else if $direction==right {\n #{$type}-right: #{$t-layout-spacing-right}#{$suffix};\n } @else if $direction==bottom {\n #{$type}-bottom: #{$t-layout-spacing-bottom}#{$suffix};\n } @else if $direction==left {\n #{$type}-left: #{$t-layout-spacing-left}#{$suffix};\n }\n } @else if $device==mobile {\n @if $direction==all {\n #{$type}: #{$m-layout-spacing}#{$suffix};\n } @else if $direction==top {\n #{$type}-top: #{$m-layout-spacing-top}#{$suffix};\n } @else if $direction==right {\n #{$type}-right: #{$m-layout-spacing-right}#{$suffix};\n } @else if $direction==bottom {\n #{$type}-bottom: #{$m-layout-spacing-bottom}#{$suffix};\n } @else if $direction==left {\n #{$type}-left: #{$m-layout-spacing-left}#{$suffix};\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin button-variant($color, $background, $border, $hover) {\n color: $color;\n border-color: $border;\n background-color: $background;\n\n &:hover,\n &:focus,\n &:active,\n &.active,\n .open > &.dropdown-toggle {\n color: $color;\n border-color: $hover;\n background-color: $hover;\n }\n &:active,\n &.active,\n .open > &.dropdown-toggle {\n background-image: none;\n }\n &.disabled,\n &[disabled],\n &[aria-disabled],\n fieldset[disabled] {\n &,\n &:hover,\n &:focus,\n &:active,\n &.active {\n border-color: $border;\n background-color: $background;\n }\n }\n // Button bordered\n &.btn-bordered {\n background-color: transparent;\n @if $color != $btn-default-color {\n color: $border;\n }\n\n &:hover,\n &:focus,\n &:active,\n &.active,\n .open > &.dropdown-toggle {\n color: $color;\n border-color: $border;\n background-color: $border;\n }\n }\n // Button as link\n &.btn-link {\n text-decoration: none;\n border-color: transparent;\n background-color: transparent;\n @if $color != $btn-default-color {\n color: $background;\n }\n\n &:hover {\n border-color: $btn-link-bg-hover;\n background-color: $btn-link-bg-hover;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin groupbox-variant($color, $background) {\n > .mx-groupbox-header {\n color: $color;\n border-color: $background;\n background: $background;\n }\n > .mx-groupbox-body {\n border-color: $background;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@keyframes slideInUp {\n from {\n visibility: visible;\n transform: translate3d(0, 100%, 0);\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n}\n\n.animated {\n animation-duration: 0.4s;\n animation-fill-mode: both;\n}\n\n.slideInUp {\n animation-name: slideInUp;\n}\n\n@keyframes slideInDown {\n from {\n visibility: visible;\n transform: translate3d(0, -100%, 0);\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n}\n\n.slideInDown {\n animation-name: slideInDown;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n}\n\n.fadeIn {\n animation-name: fadeIn;\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Flex\n\n Flex classes\n========================================================================== */\n$important-flex-value: if($important-flex, ' !important', '');\n\n// Flex layout\n.flexcontainer {\n display: flex;\n overflow: hidden;\n flex: 1;\n flex-direction: row;\n\n .flexitem {\n margin-right: $gutter-size;\n\n &:last-child {\n margin-right: 0;\n }\n }\n\n .flexitem-main {\n overflow: hidden;\n flex: 1;\n }\n}\n\n// These classes define the order of the children\n.flex-row {\n flex-direction: row #{$important-flex-value};\n}\n\n.flex-column {\n flex-direction: column #{$important-flex-value};\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse #{$important-flex-value};\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse #{$important-flex-value};\n}\n\n.flex-wrap {\n flex-wrap: wrap #{$important-flex-value};\n}\n\n.flex-nowrap {\n flex-wrap: nowrap #{$important-flex-value};\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse #{$important-flex-value};\n}\n\n// Align children in both directions\n.flex-center {\n align-items: center #{$important-flex-value};\n justify-content: center #{$important-flex-value};\n}\n\n// These classes define the alignment of the children\n.justify-content-start {\n justify-content: flex-start #{$important-flex-value};\n}\n\n.justify-content-end {\n justify-content: flex-end #{$important-flex-value};\n}\n\n.justify-content-center {\n justify-content: center #{$important-flex-value};\n}\n\n.justify-content-between {\n justify-content: space-between #{$important-flex-value};\n}\n\n.justify-content-around {\n justify-content: space-around #{$important-flex-value};\n}\n\n.justify-content-evenly {\n // Not Supported in IE11\n justify-content: space-evenly #{$important-flex-value};\n}\n\n.justify-content-stretch {\n justify-content: stretch #{$important-flex-value};\n}\n\n/// These classes define the alignment of the children in the cross-direction\n.align-children-start {\n align-items: flex-start #{$important-flex-value};\n}\n\n.align-children-end {\n align-items: flex-end #{$important-flex-value};\n}\n\n.align-children-center {\n align-items: center #{$important-flex-value};\n}\n\n.align-children-baseline {\n align-items: baseline #{$important-flex-value};\n}\n\n.align-children-stretch {\n align-items: stretch #{$important-flex-value};\n}\n\n/// These classes define the alignment of the rows of children in the cross-direction\n.align-content-start {\n align-content: flex-start #{$important-flex-value};\n}\n\n.align-content-end {\n align-content: flex-end #{$important-flex-value};\n}\n\n.align-content-center {\n align-content: center #{$important-flex-value};\n}\n\n.align-content-between {\n align-content: space-between #{$important-flex-value};\n}\n\n.align-content-around {\n align-content: space-around #{$important-flex-value};\n}\n\n.align-content-stretch {\n align-content: stretch #{$important-flex-value};\n}\n\n/// These classes allow the default alignment to be overridden for individual items\n.align-self-auto {\n align-self: auto #{$important-flex-value};\n}\n\n.align-self-start {\n align-self: flex-start #{$important-flex-value};\n}\n\n.align-self-end {\n align-self: flex-end #{$important-flex-value};\n}\n\n.align-self-center {\n align-self: center #{$important-flex-value};\n}\n\n.align-self-baseline {\n align-self: baseline #{$important-flex-value};\n}\n\n.align-self-stretch {\n align-self: stretch #{$important-flex-value};\n}\n\n/// These classes define the percentage of available free space within a flex container a flex item will take.\n@mixin flex-items($number) {\n @for $i from 1 through $number {\n .flexitem-#{$i} {\n flex: #{$i} #{$i} 1%;\n }\n }\n}\n\n@include flex-items($number: 12);\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Spacing\n\n Spacing classes\n========================================================================== */\n$important-spacing-value: if($important-spacing, ' !important', '');\n\n// Spacing none\n.spacing-inner-none {\n padding: 0 #{$important-spacing-value};\n}\n\n.spacing-inner-top-none {\n padding-top: 0 #{$important-spacing-value};\n}\n\n.spacing-inner-right-none {\n padding-right: 0 #{$important-spacing-value};\n}\n\n.spacing-inner-bottom-none {\n padding-bottom: 0 #{$important-spacing-value};\n}\n\n.spacing-inner-left-none {\n padding-left: 0 #{$important-spacing-value};\n}\n\n.spacing-outer-none {\n margin: 0 #{$important-spacing-value};\n}\n\n.spacing-outer-top-none {\n margin-top: 0 #{$important-spacing-value};\n}\n\n.spacing-outer-right-none {\n margin-right: 0 #{$important-spacing-value};\n}\n\n.spacing-outer-bottom-none {\n margin-bottom: 0 #{$important-spacing-value};\n}\n\n.spacing-outer-left-none {\n margin-left: 0 #{$important-spacing-value};\n}\n\n// Spacing small\n.spacing-inner {\n padding: $spacing-small #{$important-spacing-value};\n}\n\n.spacing-inner-top {\n padding-top: $spacing-small #{$important-spacing-value};\n}\n\n.spacing-inner-right {\n padding-right: $spacing-small #{$important-spacing-value};\n}\n\n.spacing-inner-bottom {\n padding-bottom: $spacing-small #{$important-spacing-value};\n}\n\n.spacing-inner-left {\n padding-left: $spacing-small #{$important-spacing-value};\n}\n\n.spacing-outer {\n margin: $spacing-small #{$important-spacing-value};\n}\n\n.spacing-outer-top {\n margin-top: $spacing-small #{$important-spacing-value};\n}\n\n.spacing-outer-right {\n margin-right: $spacing-small #{$important-spacing-value};\n}\n\n.spacing-outer-bottom {\n margin-bottom: $spacing-small #{$important-spacing-value};\n}\n\n.spacing-outer-left {\n margin-left: $spacing-small #{$important-spacing-value};\n}\n\n// Spacing Medium\n.spacing-inner-medium {\n @include get-responsive-spacing-medium($type: padding, $direction: all, $is_important: #{$important-spacing-value});\n}\n\n.spacing-inner-top-medium {\n @include get-responsive-spacing-medium($type: padding, $direction: top, $is_important: #{$important-spacing-value});\n}\n\n.spacing-inner-right-medium {\n @include get-responsive-spacing-medium($type: padding, $direction: right, $is_important: #{$important-spacing-value});\n}\n\n.spacing-inner-bottom-medium {\n @include get-responsive-spacing-medium($type: padding, $direction: bottom, $is_important: #{$important-spacing-value});\n}\n\n.spacing-inner-left-medium {\n @include get-responsive-spacing-medium($type: padding, $direction: left, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-medium {\n @include get-responsive-spacing-medium($type: margin, $direction: all, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-top-medium {\n @include get-responsive-spacing-medium($type: margin, $direction: top, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-right-medium {\n @include get-responsive-spacing-medium($type: margin, $direction: right, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-bottom-medium {\n @include get-responsive-spacing-medium($type: margin, $direction: bottom, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-left-medium {\n @include get-responsive-spacing-medium($type: margin, $direction: left, $is_important: #{$important-spacing-value});\n}\n\n// Spacing Large\n.spacing-inner-large {\n @include get-responsive-spacing-large($type: padding, $direction: all, $is_important: #{$important-spacing-value});\n}\n\n.spacing-inner-top-large {\n @include get-responsive-spacing-large($type: padding, $direction: top, $is_important: #{$important-spacing-value});\n}\n\n.spacing-inner-right-large {\n @include get-responsive-spacing-large($type: padding, $direction: right, $is_important: #{$important-spacing-value});\n}\n\n.spacing-inner-bottom-large {\n @include get-responsive-spacing-large($type: padding, $direction: bottom, $is_important: #{$important-spacing-value});\n}\n\n.spacing-inner-left-large {\n @include get-responsive-spacing-large($type: padding, $direction: left, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-large {\n @include get-responsive-spacing-large($type: margin, $direction: all, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-top-large {\n @include get-responsive-spacing-large($type: margin, $direction: top, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-right-large {\n @include get-responsive-spacing-large($type: margin, $direction: right, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-bottom-large {\n @include get-responsive-spacing-large($type: margin, $direction: bottom, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-left-large {\n @include get-responsive-spacing-large($type: margin, $direction: left, $is_important: #{$important-spacing-value});\n}\n\n// Spacing layouts\n.spacing-inner-layout {\n @include layout-spacing($type: padding, $direction: all, $device: responsive, $is_important: #{$important-spacing-value});\n}\n\n.spacing-inner-top-layout {\n @include layout-spacing($type: padding, $direction: top, $device: responsive, $is_important: #{$important-spacing-value});\n}\n\n.spacing-inner-right-layout {\n @include layout-spacing($type: padding, $direction: right, $device: responsive, $is_important: #{$important-spacing-value});\n}\n\n.spacing-inner-bottom-layout {\n @include layout-spacing($type: padding, $direction: bottom, $device: responsive, $is_important: #{$important-spacing-value});\n}\n\n.spacing-inner-left-layout {\n @include layout-spacing($type: padding, $direction: left, $device: responsive, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-layout {\n @include layout-spacing($type: margin, $direction: all, $device: responsive, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-top-layout {\n @include layout-spacing($type: margin, $direction: top, $device: responsive, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-right-layout {\n @include layout-spacing($type: margin, $direction: right, $device: responsive, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-bottom-layout {\n @include layout-spacing($type: margin, $direction: bottom, $device: responsive, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-left-layout {\n @include layout-spacing($type: margin, $direction: left, $device: responsive, $is_important: #{$important-spacing-value});\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n// Basic styling Scroll container\n// .mx-scrollcontainer {\n// .mx-scrollcontainer-wrapper {\n// padding: 0;\n// // Convert width to max-width when in scroll container to make sure you dont get scrollbars\n// .mx-layoutgrid-fixed {\n// width: 100%;\n// margin: auto;\n// @media (min-width: $screen-md) {\n// max-width: 750px;\n// }\n// @media (min-width: $screen-lg) {\n// max-width: 970px;\n// }\n// @media (min-width: $screen-xl) {\n// max-width: 1170px;\n// }\n// }\n// }\n// }\n\n.mx-scrollcontainer .mx-placeholder {\n width: 100%;\n height: 100%;\n .mx-layoutgrid,\n .mx-layoutgrid-fluid {\n @include layout-spacing($type: padding, $direction: all, $device: responsive);\n .mx-layoutgrid,\n .mx-layoutgrid-fluid {\n padding: 0;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Base\n\n Default settings\n========================================================================== */\nhtml {\n height: 100%;\n}\n\nbody {\n min-height: 100%;\n color: $font-color-default;\n background-color: $bg-color;\n font-family: $font-family-base;\n font-size: $font-size-default;\n font-weight: $font-weight-normal;\n line-height: $line-height-base;\n}\n\na {\n -moz-transition: 0.25s;\n -o-transition: 0.25s;\n -webkit-transition: 0.25s;\n transition: 0.25s;\n color: $link-color;\n -webkit-backface-visibility: hidden;\n}\n\na:hover {\n text-decoration: underline;\n color: $link-hover-color;\n}\n\n// Address `outline` inconsistency between Chrome and other browsers.\na:focus {\n outline: thin dotted;\n}\n\n// Improve readability when focused and also mouse hovered in all browsers\na:active,\na:hover {\n outline: 0;\n}\n\n// Removes large blue border in chrome on focus and active states\ninput:focus,\nbutton:focus,\n.mx-link:focus {\n outline: 0;\n}\n\n// Removes large blue border for tabindexes from widgets\ndiv[tabindex] {\n outline: 0;\n}\n\n// Disabled State\n.disabled,\n[disabled] {\n cursor: not-allowed;\n // opacity: 0.65;\n -webkit-box-shadow: none;\n box-shadow: none;\n filter: alpha(opacity=65);\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\nbody {\n height: 100%;\n}\n\n.loginpage {\n display: flex;\n height: 100%;\n}\n.loginpage-logo {\n position: absolute;\n top: 30px;\n right: 30px;\n width: 120px;\n}\n\n.loginpage-left {\n display: none;\n}\n\n.loginpage-right {\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: space-around;\n}\n.loginpage-formwrapper {\n width: 400px;\n margin: 0 auto;\n}\n// Form\n.loginpage-form {\n .alert {\n display: none;\n }\n\n .btn {\n border-radius: 40px;\n }\n\n // Form label + input\n .form-group {\n width: 100%;\n align-items: center;\n\n .control-label {\n flex: 4;\n margin-bottom: 0;\n font-size: $font-size-default;\n font-weight: 500;\n }\n\n .inputwrapper {\n flex: 8;\n position: relative;\n width: 100%;\n\n .glyphicon {\n &:before {\n -webkit-transition: color 0.4s;\n -moz-transition: color 0.4s;\n -o-transition: color 0.4s;\n transition: color 0.4s;\n }\n\n position: absolute;\n top: 50%;\n left: $form-input-padding-x;\n -webkit-transform: translateY(-50%);\n -moz-transform: translateY(-50%);\n -ms-transform: translateY(-50%);\n -o-transform: translateY(-50%);\n transform: translateY(-50%);\n\n &-eye-open:hover,\n &-eye-close:hover {\n cursor: pointer;\n color: $brand-primary;\n }\n }\n\n .form-control {\n padding: $form-input-padding-y $form-input-padding-x $form-input-padding-y 45px;\n }\n\n .form-control:focus ~ .glyphicon:before {\n color: $brand-primary;\n }\n }\n }\n}\n// Divider - only on login-with-sso.html\n.loginpage-alternativelabel {\n display: flex;\n align-items: center;\n flex-direction: row;\n flex-wrap: nowrap;\n justify-content: space-between;\n margin: 25px 0px;\n\n hr {\n flex: 1;\n margin: 20px 0 20px 10px;\n border: 0;\n border-color: #d8d8d8;\n border-top: 1px solid #eeeeee;\n }\n}\n\n.loginpage-signin {\n color: #555555;\n}\n\n// Show only on wide screens\n@media screen and (min-width: $screen-xl) {\n .loginpage-logo {\n width: 150px;\n }\n\n .loginpage-left {\n position: relative;\n display: block;\n flex: 1;\n width: 100%;\n height: 100%;\n }\n // Image and clipping mask\n .loginpage-image {\n height: 100%;\n animation: makePointer 1s ease-out both;\n background: left / cover no-repeat url('../../../resources/work-do-more.jpeg'); // Microsoft EDGE\n background: left / cover no-repeat\n linear-gradient(to right, rgba($brand-primary, 0.9) 0%, rgba($brand-primary, 0.6) 100%),\n left / cover no-repeat url('../../../resources/work-do-more.jpeg');\n background: left / cover no-repeat -moz-linear-gradient(left, rgba($brand-primary, 0.9) 0%, rgba(\n $brand-primary,\n 0.6\n )\n 100%),\n left / cover no-repeat url('../../../resources/work-do-more.jpeg');\n background: left / cover no-repeat -webkit-gradient(linear, left bottom, right bottom, color-stop(0%, rgba($brand-primary, 0.9)), color-stop(100%, rgba($brand-primary, 0.6))),\n left / cover no-repeat url('../../../resources/work-do-more.jpeg');\n background: left / cover no-repeat -webkit-linear-gradient(left, rgba($brand-primary, 0.9) 0%, rgba(\n $brand-primary,\n 0.6\n )\n 100%),\n left / cover no-repeat url('../../../resources/work-do-more.jpeg');\n background: left / cover no-repeat -o-linear-gradient(left, rgba($brand-primary, 0.9) 0%, rgba(\n $brand-primary,\n 0.6\n )\n 100%),\n left / cover no-repeat url('../../../resources/work-do-more.jpeg');\n background: left / cover no-repeat -ms-linear-gradient(left, rgba($brand-primary, 0.9) 0%, rgba(\n $brand-primary,\n 0.6\n )\n 100%),\n left / cover no-repeat url('../../../resources/work-do-more.jpeg');\n -webkit-clip-path: polygon(0% 0%, 100% 0, 100% 50%, 100% 100%, 0% 100%);\n clip-path: polygon(0% 0%, 100% 0, 100% 50%, 100% 100%, 0% 100%);\n }\n\n .loginpage-formwrapper {\n width: 400px;\n }\n}\n\n// Animate image clipping mask\n@keyframes makePointer {\n 100% {\n -webkit-clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%);\n clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%);\n }\n}\n@-webkit-keyframes makePointer {\n 100% {\n -webkit-clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%);\n clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%);\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Inputs\n\n The form-control class style all inputs\n========================================================================== */\n.form-control {\n display: flex;\n flex: 1;\n min-width: 50px;\n height: $form-input-height;\n padding: $form-input-padding-y $form-input-padding-x;\n transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n color: $form-input-color;\n border: 1px solid $form-input-border-color;\n border-radius: $form-input-border-radius;\n background-color: $form-input-bg;\n background-image: none;\n box-shadow: none;\n font-size: $form-input-font-size;\n line-height: $form-input-line-height;\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n @if $form-input-style==lined {\n @extend .form-control-lined;\n }\n}\n\n.form-control:not([readonly]):focus {\n border-color: $form-input-border-focus-color;\n outline: 0;\n background-color: $form-input-bg-focus;\n box-shadow: none;\n}\n\n.form-control[disabled],\n.form-control[readonly],\nfieldset[disabled] .form-control {\n opacity: 1;\n background-color: #EEEEEE;\n}\n\n.form-control[disabled],\nfieldset[disabled] .form-control {\n cursor: not-allowed;\n}\n\n// Lined\n.form-control-lined {\n border: 0;\n border-bottom: 1px solid $form-input-border-color;\n border-radius: 0;\n background-color: transparent;\n\n &:focus {\n background-color: transparent;\n }\n}\n\n// Read only form control class\n.form-control-static {\n overflow: hidden;\n flex: 1;\n min-height: auto;\n padding: $form-input-padding-y $form-input-padding-x;\n border-bottom: 1px solid $form-input-static-border-color;\n font-size: $form-input-font-size;\n line-height: $form-input-line-height;\n\n & + .control-label {\n margin-left: $form-label-gutter;\n }\n}\n\n// Dropdown input widget\nselect.form-control {\n $arrow: \"data:image/svg+xml;utf8,\";\n padding-right: 30px;\n background-image: url($arrow);\n background-repeat: no-repeat;\n background-position: calc(100% - #{$form-input-padding-x}) center;\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n}\n\n.form-control.mx-selectbox {\n align-items: center;\n flex-direction: row-reverse;\n justify-content: space-between;\n}\n\n// Not editable textarea, textarea will be rendered as a label\n.mx-textarea .control-label {\n height: auto;\n}\n\ntextarea.form-control {\n flex-basis: auto;\n}\n\n.mx-compound-control {\n display: flex;\n flex: 1;\n flex-wrap: wrap;\n max-width: 100%;\n\n .mx-validation-message {\n flex-basis: 100%;\n margin-top: 5px;\n }\n}\n\n// Form Group\n.form-group {\n display: flex;\n flex-direction: row;\n margin-bottom: $form-group-margin-bottom;\n\n & > div[class*='col-'] {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n }\n\n & > [class*='col-'] {\n padding-right: $form-group-gutter;\n padding-left: $form-group-gutter;\n }\n\n // Alignment content\n div[class*='textBox'] > .control-label,\n div[class*='textArea'] > .control-label,\n div[class*='datePicker'] > .control-label {\n @extend .form-control-static;\n }\n\n // Label\n .control-label {\n overflow: hidden;\n margin-bottom: 5px;\n text-overflow: ellipsis;\n color: $form-label-color;\n font-size: $form-label-size;\n font-weight: $form-label-weight;\n }\n\n .mx-validation-message {\n flex-basis: 100%;\n }\n\n &.no-columns:not(.label-after) {\n flex-direction: column;\n }\n}\n\n.form-group.label-after {\n .form-control-static {\n flex: unset;\n }\n\n .control-label {\n margin-bottom: 0;\n }\n}\n\n.mx-dateinput,\n.mx-referenceselector,\n.mx-referencesetselector {\n flex: 1;\n}\n\n// Targets only webkit iOS devices\n.dj_webkit.dj_ios .form-control {\n transform: translateZ(0);\n}\n\n@media only screen and (min-width: $screen-md) {\n .form-horizontal {\n .control-label {\n margin-bottom: 0;\n padding-top: $form-input-padding-y;\n padding-bottom: $form-input-padding-y;\n line-height: $form-input-line-height;\n }\n }\n}\n\n@media only screen and (max-width: $screen-sm-max) {\n .form-group {\n flex-direction: column;\n }\n}\n\n@media only screen and (max-device-width: 1024px) and (-webkit-min-device-pixel-ratio: 0) {\n // Fixes alignment bug on iPads / iPhones where datefield is not aligned vertically\n input[type='date'],\n input[type='time'],\n input[type='datetime-local'],\n input[type='month'] {\n line-height: 1;\n }\n // Fix shrinking of date inputs because inability of setting a placeholder\n input[type='time']:not(.has-value):before,\n input[type='date']:not(.has-value):before,\n input[type='month']:not(.has-value):before,\n input[type='datetime-local']:not(.has-value):before {\n margin-right: 0.5em;\n content: attr(placeholder) !important;\n color: #AAAAAA;\n }\n input[type='time'].has-value:before,\n input[type='date'].has-value:before,\n input[type='month'].has-value:before,\n input[type='datetime-local'].has-value:before {\n content: '' !important;\n }\n}\n\n@media (-ms-high-contrast: none), (-ms-high-contrast: active) {\n // Target IE10+\n .form-group {\n display: block;\n }\n}\n\n[dir='rtl'] {\n // Dropdown input widget\n select.form-control {\n padding-right: 30px;\n padding-left: 0;\n background-position: #{$form-input-padding-x} center;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Alerts\n\n Default Bootstrap Alert boxes. Provide contextual feedback messages for typical user actions with the handful of available and flexible alert messages\n========================================================================== */\n\n.alert {\n margin-top: 0; // want to align it with padding of a page\n padding: 15px;\n border: 0;\n border-radius: 4px;\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Alerts\n\n//== Design Properties\n//## Helper classes to change the look and feel of the component\n========================================================================== */\n.alert-bordered {\n border: 1px solid;\n}\n\n// Color variations\n.alert-success {\n color: $alert-success-color;\n border-color: $alert-success-border-color;\n background-color: $alert-success-bg;\n}\n\n.alert-info {\n color: $alert-info-color;\n border-color: $alert-info-border-color;\n background-color: $alert-info-bg;\n}\n\n.alert-warning {\n color: $alert-warning-color;\n border-color: $alert-warning-border-color;\n background-color: $alert-warning-bg;\n}\n\n.alert-danger {\n color: $alert-danger-color;\n border-color: $alert-danger-border-color;\n background-color: $alert-danger-bg;\n}\n\n//== State\n//## Styling when component is in certain state\n//-------------------------------------------------------------------------------------------------------------------//\n.has-error .alert {\n margin-top: 8px;\n margin-bottom: 0;\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Backgrounds\n\n Different background components, all managed by variables\n========================================================================== */\n\n.background-main {\n background-color: $bg-color !important;\n}\n\n.background-secondary {\n background-color: $bg-color-secondary !important;\n}\n\n.background-default {\n background-color: $brand-default !important;\n}\n\n.background-default-darker {\n background-color: $color-default-darker !important;\n}\n\n.background-default-dark {\n background-color: $color-default-dark !important;\n}\n\n.background-default-light {\n background-color: $color-default-light !important;\n}\n\n.background-default-lighter {\n background-color: $color-default-lighter !important;\n}\n\n.background-inverse {\n background-color: $brand-inverse !important;\n}\n\n.background-inverse-darker {\n background-color: $color-inverse-darker !important;\n}\n\n.background-inverse-dark {\n background-color: $color-inverse-dark !important;\n}\n\n.background-inverse-light {\n background-color: $color-inverse-light !important;\n}\n\n.background-inverse-lighter {\n background-color: $color-inverse-lighter !important;\n}\n\n.background-primary {\n background-color: $brand-primary !important;\n}\n\n.background-primary-darker {\n background-color: $color-primary-darker !important;\n}\n\n.background-primary-dark {\n background-color: $color-primary-dark !important;\n}\n\n.background-primary-light {\n background-color: $color-primary-light !important;\n}\n\n.background-primary-lighter {\n background-color: $color-primary-lighter !important;\n}\n\n.background-info {\n background-color: $brand-info !important;\n}\n\n.background-info-darker {\n background-color: $color-info-darker !important;\n}\n\n.background-info-dark {\n background-color: $color-info-dark !important;\n}\n\n.background-info-light {\n background-color: $color-info-light !important;\n}\n\n.background-info-lighter {\n background-color: $color-info-lighter !important;\n}\n\n.background-success {\n background-color: $brand-success !important;\n}\n\n.background-success-darker {\n background-color: $color-success-darker !important;\n}\n\n.background-success-dark {\n background-color: $color-success-dark !important;\n}\n\n.background-success-light {\n background-color: $color-success-light !important;\n}\n\n.background-success-lighter {\n background-color: $color-success-lighter !important;\n}\n\n.background-warning {\n background-color: $brand-warning !important;\n}\n\n.background-warning-darker {\n background-color: $color-warning-darker !important;\n}\n\n.background-warning-dark {\n background-color: $color-warning-dark !important;\n}\n\n.background-warning-light {\n background-color: $color-warning-light !important;\n}\n\n.background-warning-lighter {\n background-color: $color-warning-lighter !important;\n}\n\n.background-danger {\n background-color: $brand-danger !important;\n}\n\n.background-danger-darker {\n background-color: $color-danger-darker !important;\n}\n\n.background-danger-dark {\n background-color: $color-danger-dark !important;\n}\n\n.background-danger-light {\n background-color: $color-danger-light !important;\n}\n\n.background-danger-lighter {\n background-color: $color-danger-lighter !important;\n}\n\n.background-brand-gradient {\n background-image: $brand-gradient !important;\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Buttons\n\n Default Bootstrap and Mendix Buttons\n========================================================================== */\n\n.btn,\n.mx-button {\n display: inline-block;\n margin-bottom: 0;\n padding: 0.6em 1em;\n cursor: pointer;\n -moz-user-select: none;\n -ms-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n -moz-transition: all 0.2s ease-in-out;\n -o-transition: all 0.2s ease-in-out;\n -webkit-transition: all 0.2s ease-in-out;\n transition: all 0.2s ease-in-out;\n text-align: center;\n vertical-align: middle;\n white-space: nowrap;\n color: $btn-default-color;\n border: 1px solid $btn-default-border-color;\n border-radius: $btn-border-radius;\n background-color: $btn-default-bg;\n background-image: none;\n box-shadow: none;\n text-shadow: none;\n font-size: $btn-font-size;\n line-height: $line-height-base;\n\n &:hover,\n &:focus,\n &:active,\n &:active:focus {\n outline: none;\n box-shadow: none;\n }\n\n &[aria-disabled] {\n cursor: not-allowed;\n pointer-events: none;\n opacity: 0.65;\n filter: alpha(opacity=65);\n }\n\n @if $btn-bordered != false {\n @extend .btn-bordered;\n }\n}\n\n// Mendix button link\n.mx-link {\n padding: 0;\n color: $link-color;\n\n &[aria-disabled='true'] {\n cursor: not-allowed;\n pointer-events: none;\n opacity: 0.65;\n filter: alpha(opacity=65);\n }\n}\n\n// Images and icons in buttons\n.btn,\n.mx-button,\n.mx-link {\n img {\n //height: auto; // MXUI override who set the height on 16px default\n height: $font-size-default + 4px;\n margin-right: 5px;\n vertical-align: text-top;\n }\n}\n\n//== Phone specific\n//-------------------------------------------------------------------------------------------------------------------//\n.profile-phone {\n .btn,\n .mx-link {\n &:active {\n -webkit-transform: translateY(1px);\n transform: translateY(1px);\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Buttons\n\n//== Design Properties\n//## Helper classes to change the look and feel of the component\n========================================================================== */\n// Color variations\n.btn,\n.btn-default {\n @include button-variant($btn-default-color, $btn-default-bg, $btn-default-border-color, $btn-default-bg-hover);\n}\n\n.btn-primary {\n @include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border-color, $btn-primary-bg-hover);\n}\n\n.btn-inverse {\n @include button-variant($btn-inverse-color, $btn-inverse-bg, $btn-inverse-border-color, $btn-inverse-bg-hover);\n}\n\n.btn-success {\n @include button-variant($btn-success-color, $btn-success-bg, $btn-success-border-color, $btn-success-bg-hover);\n}\n\n.btn-info {\n @include button-variant($btn-info-color, $btn-info-bg, $btn-info-border-color, $btn-info-bg-hover);\n}\n\n.btn-warning {\n @include button-variant($btn-warning-color, $btn-warning-bg, $btn-warning-border-color, $btn-warning-bg-hover);\n}\n\n.btn-danger {\n @include button-variant($btn-danger-color, $btn-danger-bg, $btn-danger-border-color, $btn-danger-bg-hover);\n}\n\n// Button Sizes\n.btn-lg {\n font-size: $font-size-large;\n img {\n height: calc(#{$font-size-small} + 4px);\n }\n}\n\n.btn-sm {\n font-size: $font-size-small;\n img {\n height: calc(#{$font-size-small} + 4px);\n }\n}\n\n// Button Image\n.btn-image {\n padding: 0;\n vertical-align: middle;\n border-style: none;\n background-color: transparent;\n img {\n display: block; // or else the button doesn't get a width\n height: auto; // Image set height\n }\n &:hover,\n &:focus {\n background-color: transparent;\n }\n}\n\n// Icon buttons\n.btn-icon {\n & > img,\n & > .glyphicon {\n margin: 0;\n }\n}\n\n.btn-icon-right {\n & > img,\n & > .glyphicon {\n float: right;\n margin-left: 5px;\n }\n}\n\n.btn-icon-top {\n padding-right: 0;\n padding-left: 0;\n & > img,\n & > .glyphicon {\n display: block;\n margin: 0 0 5px 0;\n }\n}\n\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Checkbox\n\n Default Mendix Checkbox Widget\n========================================================================== */\n\n.mx-checkbox.label-after {\n flex-wrap: wrap;\n\n .control-label {\n padding: 0;\n }\n}\n\ninput[type='checkbox'] {\n position: relative !important; //Remove after mxui merge\n width: 16px;\n height: 16px;\n margin: 0 !important; // Remove after mxui merge\n cursor: pointer;\n -moz-user-select: none;\n -ms-user-select: none;\n -o-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n\n\n &::-ms-check {\n color: $form-input-border-color;\n border-color: $form-input-border-color;\n border-radius: $form-input-border-radius;\n background-color: $form-input-bg;\n }\n\n &:focus::-ms-check,\n &:checked::-ms-check {\n color: $form-input-border-focus-color;\n border-color: $form-input-border-focus-color;\n background-color: $form-input-bg-focus;\n }\n\n &:before,\n &:after {\n position: absolute;\n display: block;\n transition: all 0.3s ease;\n }\n\n &:before {\n // Checkbox\n width: 100%;\n height: 100%;\n content: '';\n border: 1px solid $form-input-border-color;\n border-radius: $form-input-border-radius;\n background-color: transparent;\n }\n\n &:after {\n // Checkmark\n width: 8px;\n height: 4px;\n margin: 5px 4px;\n transform: rotate(-45deg);\n pointer-events: none;\n border: 2px solid #FFFFFF;\n border-top: 0;\n border-right: 0;\n }\n\n &:not(:disabled):not(:checked):hover:after {\n content: '';\n border-color: $form-input-bg-hover; // color of checkmark on hover\n }\n\n &:checked:before {\n border-color: $form-input-border-focus-color;\n background-color: $form-input-border-focus-color;\n }\n\n &:checked:after {\n content: '';\n }\n\n &:disabled:before {\n background-color: $form-input-bg-disabled;\n }\n\n &:checked:disabled:before {\n border-color: transparent;\n background-color: rgba($form-input-border-focus-color, 0.4);\n }\n\n &:disabled:after,\n &:checked:disabled:after {\n border-color: $form-input-bg-disabled;\n }\n\n & + .control-label {\n margin-left: $form-label-gutter;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Grid\n\n Default Mendix Grid (used for Mendix Datagrid)\n========================================================================== */\n\n.mx-grid {\n padding: 0px;\n border: 0;\n border-radius: 0;\n .mx-grid-controlbar {\n margin: 10px 0;\n /* Paging */\n .mx-grid-pagingbar {\n /* Buttons */\n .mx-button {\n padding: 6px;\n color: $grid-paging-color;\n border-color: $grid-paging-border-color;\n background-color: $grid-paging-bg;\n &:hover {\n color: $grid-paging-color-hover;\n border-color: $grid-paging-border-color-hover;\n background-color: $grid-paging-bg-hover;\n }\n }\n /* Text Paging .. to .. to .. */\n .mx-grid-paging-status {\n padding: 0 8px 8px;\n }\n }\n }\n .mx-grid-searchbar {\n margin: 10px 0;\n .mx-grid-search-item {\n .mx-grid-search-label {\n vertical-align: middle;\n label {\n padding-top: 5px;\n }\n }\n .mx-grid-search-input {\n display: inline-flex;\n .form-control {\n height: 28px;\n font-size: 11px;\n }\n select.form-control {\n padding: 3px;\n vertical-align: middle;\n }\n .mx-button {\n height: 28px;\n padding-top: 2px;\n padding-bottom: 2px;\n }\n }\n }\n }\n}\n\n// Remove default border from grid inside a Mendix Dataview\n.mx-dataview .mx-grid {\n border: 0;\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Datagrid Default\n\n Default Mendix Datagrid Widget. The datagrid shows a list of objects in a grid\n========================================================================== */\n\n.mx-datagrid {\n table {\n border-width: 0;\n background-color: transparent;\n /* Table header */\n th {\n border-style: solid;\n border-color: $grid-border-color;\n border-top-width: 0;\n border-right: 0;\n border-bottom-width: 1px;\n border-left: 0;\n background-color: $grid-bg-header;\n padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left;\n vertical-align: middle;\n .mx-datagrid-head-caption {\n white-space: normal;\n }\n }\n /* Table Body */\n tbody tr {\n td {\n @include transition();\n padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left;\n vertical-align: middle;\n border-width: 0;\n border-color: $grid-border-color;\n border-bottom-width: 1px;\n border-bottom-style: solid;\n background-color: $grid-bg;\n &:focus {\n outline: none;\n }\n /* Text without spaces */\n .mx-datagrid-data-wrapper {\n text-overflow: ellipsis;\n }\n }\n &.selected td,\n &.selected:hover td {\n color: $grid-selected-color;\n background-color: $grid-bg-selected !important;\n }\n }\n /* Table Footer */\n tfoot {\n > tr > th {\n padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left;\n border-width: 0;\n background-color: $grid-footer-bg;\n }\n > tr > td {\n padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left;\n border-width: 0;\n background-color: $grid-bg;\n font-weight: $font-weight-bold;\n }\n }\n & *:focus {\n outline: 0;\n }\n }\n}","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Datagrid Default\n\n//== Design Properties\n//## Helper classes to change the look and feel of the component\n========================================================================== */\n// Striped style\n.datagrid-striped.mx-datagrid {\n table {\n th {\n border-width: 0;\n }\n\n tbody tr {\n td {\n border-top-width: 0;\n }\n\n &:nth-child(odd) td {\n background-color: $grid-bg-striped;\n }\n }\n }\n}\n\n// Bordered style\n.datagrid-bordered.mx-datagrid {\n table {\n border: 1px solid;\n\n th {\n border: 1px solid $grid-border-color;\n }\n\n tbody tr {\n td {\n border: 1px solid $grid-border-color;\n }\n }\n }\n\n tfoot {\n > tr > th {\n border-width: 0;\n background-color: $grid-footer-bg;\n }\n\n > tr > td {\n border-width: 1px;\n }\n }\n}\n\n// Transparent style so you can see the background\n.datagrid-transparent.mx-datagrid {\n table {\n background-color: transparent;\n\n tbody tr {\n &:nth-of-type(odd) {\n background-color: transparent;\n }\n\n td {\n background-color: transparent;\n }\n }\n }\n}\n\n// Hover style activated\n.datagrid-hover.mx-datagrid {\n table {\n tbody tr {\n &:hover td {\n background-color: $grid-bg-hover !important;\n }\n\n &.selected:hover td {\n background-color: $grid-bg-selected-hover !important;\n }\n }\n }\n}\n\n// Datagrid Row Sizes\n.datagrid-lg.mx-datagrid {\n table {\n th {\n padding: ($grid-padding-top * 2) ($grid-padding-right * 2) ($grid-padding-bottom * 2) ($grid-padding-left * 2);\n }\n\n tbody tr {\n td {\n padding: ($grid-padding-top * 2) ($grid-padding-right * 2) ($grid-padding-bottom * 2) ($grid-padding-left * 2);\n }\n }\n }\n}\n\n.datagrid-sm.mx-datagrid {\n table {\n th {\n padding: ($grid-padding-top / 2) ($grid-padding-right / 2) ($grid-padding-bottom / 2) ($grid-padding-left / 2);\n }\n\n tbody tr {\n td {\n padding: ($grid-padding-top / 2) ($grid-padding-right / 2) ($grid-padding-bottom / 2) ($grid-padding-left/ 2);\n }\n }\n }\n}\n\n// Datagrid Full Search\n// Default Mendix Datagrid Widget with adjusted search field. Only 1 search field is allowed\n.datagrid-fullsearch.mx-grid {\n .mx-grid-search-button {\n @extend .btn-primary;\n }\n\n .mx-grid-reset-button {\n display: none;\n }\n\n .mx-grid-search-item {\n display: block;\n }\n\n .mx-grid-search-label {\n display: none;\n }\n\n .mx-grid-searchbar {\n .mx-grid-search-controls {\n position: absolute;\n right: 0;\n }\n\n .mx-grid-search-input {\n width: 80%;\n padding-left: 0;\n\n .btn,\n .form-control {\n height: 35px;\n font-size: 12px;\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Dataview\n\n Default Mendix Dataview Widget. The data view is used for showing the contents of exactly one object\n========================================================================== */\n\n.mx-dataview {\n /* Control bar */\n .mx-dataview-controls {\n // Needed to clear the bootstrap columns (get float: left)\n clear: both;\n margin-top: 10px;\n padding: 8px 0;\n border-top: 1px solid $dataview-controls-border-color;\n border-radius: 0;\n background-color: $dataview-controls-bg;\n /* Buttons */\n .mx-button {\n margin-right: 0.3em;\n margin-bottom: 0;\n &:last-child {\n margin-right: 0;\n }\n }\n }\n /* Dataview-content gives problems for nexted layout grid containers */\n > .mx-dataview-content > .mx-container-nested {\n > .row {\n margin-right: 0;\n margin-left: 0;\n }\n }\n /* Dataview empty message */\n .mx-dataview-message {\n color: $dataview-emptymessage-color;\n background: $dataview-emptymessage-bg;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Date Picker\n \n Default Mendix Date Picker Widget.\n========================================================================== */\n\n.mx-calendar {\n /* (must be higher than popup z-index) */\n z-index: 10010 !important;\n padding: 10px;\n font-size: 12px;\n background: $bg-color;\n border-radius: $border-radius-default;\n border: 1px solid $border-color-default;\n box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.06);\n .mx-calendar-month-header {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n margin: 0 3px 10px 3px;\n }\n .mx-calendar-month-next,\n .mx-calendar-month-previous,\n .mx-calendar-month-dropdown {\n border: 0;\n cursor: pointer;\n background: transparent;\n }\n .mx-calendar-month-next,\n .mx-calendar-month-previous {\n &:hover {\n color: $brand-primary;\n }\n }\n .mx-calendar-month-dropdown {\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n .mx-calendar-month-current:first-child {\n margin-right: 10px;\n }\n }\n th {\n color: $brand-primary;\n }\n th,\n td {\n width: 35px;\n height: 35px;\n text-align: center;\n }\n td {\n color: $font-color-default;\n\n &:hover {\n cursor: pointer;\n border-radius: 50%;\n color: $brand-primary;\n background-color: $brand-default;\n }\n }\n .mx-calendar-day-month-next,\n .mx-calendar-day-month-previous {\n color: lighten($font-color-default, 45%);\n }\n .mx-calendar-day-selected,\n .mx-calendar-day-selected:hover {\n color: #fff;\n border-radius: 50%;\n background: $brand-primary;\n }\n\n //\n\n .mx-calendar-year-switcher {\n text-align: center;\n margin-top: 10px;\n color: lighten($brand-primary, 30%);\n span.mx-calendar-year-selected {\n color: $brand-primary;\n margin-left: 10px;\n margin-right: 10px;\n }\n span:hover {\n cursor: pointer;\n text-decoration: underline;\n background-color: transparent;\n }\n }\n}\n\n.mx-calendar-month-dropdown-options {\n /* (must be higher than popup z-index) */\n z-index: 10020 !important;\n position: absolute;\n top: 25px;\n padding: 2px 10px;\n border-radius: $border-radius-default;\n background-color: $bg-color;\n div {\n cursor: pointer;\n font-size: 12px;\n padding: 2px 0;\n &:hover,\n &:focus {\n color: $brand-primary;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Header\n\n Default Mendix Mobile Header\n========================================================================== */\n\n.mx-header {\n z-index: 100;\n display: flex;\n width: 100%;\n height: $m-header-height;\n padding: 0;\n text-align: initial;\n color: $m-header-color;\n border-bottom: 1px solid $border-color-default;\n background-color: $m-header-bg;\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.14);\n\n // Reset mxui\n div.mx-header-left,\n div.mx-header-right {\n position: relative;\n top: initial;\n right: initial;\n left: initial;\n display: flex;\n align-items: center;\n width: 25%;\n height: 100%;\n .mx-placeholder {\n display: flex;\n align-items: center;\n height: 100%;\n }\n }\n\n div.mx-header-left .mx-placeholder {\n order: 1;\n .mx-placeholder {\n justify-content: flex-start;\n }\n }\n div.mx-header-center {\n overflow: hidden;\n flex: 1;\n order: 2;\n text-align: center;\n\n .mx-title {\n overflow: hidden;\n width: 100%;\n margin: 0;\n text-overflow: ellipsis;\n color: $m-header-color;\n font-size: $m-header-title-size;\n line-height: $m-header-height;\n }\n }\n div.mx-header-right {\n order: 3;\n .mx-placeholder {\n justify-content: flex-end;\n }\n }\n\n // Content magic\n .mx-link {\n display: flex;\n align-items: center;\n height: 100%;\n -webkit-transition: all 0.2s;\n -moz-transition: all 0.2s;\n transition: all 0.2s;\n text-decoration: none;\n .glyphicon {\n top: 0;\n font-size: 23px;\n }\n &:active {\n -webkit-transform: translateY(1px);\n transform: translateY(1px);\n color: $link-hover-color;\n }\n }\n\n .mx-link,\n .btn,\n img {\n padding: 0 8px;\n }\n\n .mx-sidebartoggle {\n font-size: 24px;\n line-height: $m-header-height;\n img {\n height: 20px;\n }\n }\n}\n\n// RTL support\nbody[dir='rtl'] {\n .mx-header-left {\n order: 3;\n }\n .mx-header-right {\n order: 1;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Glyphicons\n\n Default Mendix Glyphicons\n========================================================================== */\n\n.mx-glyphicon {\n &:before {\n display: inline-block;\n margin-top: -0.2em;\n margin-right: 0.4555555em;\n vertical-align: middle;\n font-family: \"Glyphicons Halflings\";\n font-weight: $font-weight-normal;\n font-style: normal;\n line-height: inherit;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Groupbox\n\n Default Mendix Groupboxes\n========================================================================== */\n\n.mx-groupbox {\n margin: 0;\n > .mx-groupbox-header {\n margin: 0;\n color: $groupbox-default-color;\n border-width: 1px 1px 0 1px;\n border-style: solid;\n border-color: $groupbox-default-bg;\n background: $groupbox-default-bg;\n font-size: $font-size-h5;\n .mx-groupbox-collapse-icon {\n margin-top: 0.1em;\n }\n }\n > .mx-groupbox-body {\n padding: 10px 15px;\n border-width: 1px;\n border-style: solid;\n border-color: $groupbox-default-bg;\n background-color: #FFFFFF;\n }\n .mx-groupbox-header + .mx-groupbox-body {\n border-top: none;\n }\n &.collapsed > .mx-groupbox-header {\n }\n}","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Groupbox\n\n//== Design Properties\n//## Helper classes to change the look and feel of the component\n========================================================================== */\n// Color variations\n.groupbox-default {\n @include groupbox-variant($groupbox-default-color, $groupbox-default-bg);\n}\n\n.groupbox-primary {\n @include groupbox-variant($groupbox-primary-color, $groupbox-primary-bg);\n}\n\n.groupbox-inverse {\n @include groupbox-variant($groupbox-inverse-color, $groupbox-inverse-bg);\n}\n\n// Success appears as green\n.groupbox-success {\n @include groupbox-variant($groupbox-success-color, $groupbox-success-bg);\n}\n\n// Info appears as blue-green\n.groupbox-info {\n @include groupbox-variant($groupbox-info-color, $groupbox-info-bg);\n}\n\n// Warning appears as orange\n.groupbox-warning {\n @include groupbox-variant($groupbox-warning-color, $groupbox-warning-bg);\n}\n\n// Danger and error appear as red\n.groupbox-danger {\n @include groupbox-variant($groupbox-danger-color, $groupbox-danger-bg);\n}\n\n// white appears as full white\n.groupbox-white {\n @include groupbox-variant($groupbox-white-color, $groupbox-white-bg);\n}\n\n.groupbox-transparent {\n border-bottom: 1px solid $border-color-default;\n > .mx-groupbox-header {\n padding: 15px 0;\n color: $gray-darker;\n border-style: none;\n background: transparent;\n font-size: 16px;\n font-weight: $font-weight-semibold;\n }\n .mx-groupbox-body {\n padding: 15px 0;\n border-style: none;\n background-color: transparent;\n }\n .mx-groupbox-collapse-icon {\n color: $brand-primary;\n }\n}\n\n// Header options\n.groupbox-h1 > .mx-groupbox-header {\n font-size: $font-size-h1;\n}\n\n.groupbox-h2 > .mx-groupbox-header {\n font-size: $font-size-h2;\n}\n\n.groupbox-h3 > .mx-groupbox-header {\n font-size: $font-size-h3;\n}\n\n.groupbox-h4 > .mx-groupbox-header {\n font-size: $font-size-h4;\n}\n\n.groupbox-h5 > .mx-groupbox-header {\n font-size: $font-size-h5;\n}\n\n.groupbox-h6 > .mx-groupbox-header {\n font-size: $font-size-h6;\n}\n\n// Callout Look and Feel\n.groupbox-callout {\n > .mx-groupbox-header,\n > .mx-groupbox-body {\n border: 0;\n background-color: $callout-info-bg;\n }\n .mx-groupbox-header + .mx-groupbox-body {\n padding-top: 0;\n }\n}\n\n.groupbox-info.groupbox-callout {\n > .mx-groupbox-header,\n > .mx-groupbox-body {\n background-color: $callout-info-bg;\n }\n > .mx-groupbox-header {\n color: $callout-info-color;\n }\n}\n\n.groupbox-success.groupbox-callout {\n > .mx-groupbox-header,\n > .mx-groupbox-body {\n background-color: $callout-success-bg;\n }\n > .mx-groupbox-header {\n color: $callout-success-color;\n }\n}\n\n.groupbox-warning.groupbox-callout {\n > .mx-groupbox-header,\n > .mx-groupbox-body {\n background-color: $callout-warning-bg;\n }\n > .mx-groupbox-header {\n color: $callout-warning-color;\n }\n}\n\n.groupbox-danger.groupbox-callout {\n > .mx-groupbox-header,\n > .mx-groupbox-body {\n background-color: $callout-danger-bg;\n }\n > .mx-groupbox-header {\n color: $callout-danger-color;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Images\n\n Default Mendix Image Widgets\n========================================================================== */\n\nimg.img-rounded,\n.img-rounded img {\n border-radius: 6px;\n}\n\nimg.img-thumbnail,\n.img-thumbnail img {\n display: inline-block;\n max-width: 100%;\n height: auto;\n padding: 4px;\n -webkit-transition: all 0.2s ease-in-out;\n -moz-transition: all 0.2s ease-in-out;\n -o-transition: all 0.2s ease-in-out;\n transition: all 0.2s ease-in-out;\n border: 1px solid $brand-default;\n border-radius: 4px;\n background-color: #FFFFFF;\n line-height: $line-height-base;\n}\n\nimg.img-circle,\n.img-circle img {\n border-radius: 50%;\n}\n\nimg.img-auto,\n.img-auto img {\n width: auto !important;\n max-width: 100% !important;\n height: auto !important;\n max-height: 100% !important;\n}\n\nimg.img-center,\n.img-center img {\n margin-right: auto !important;\n margin-left: auto !important;\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Labels\n\n Default labels combined with Bootstrap labels\n========================================================================== */\n\n.label {\n display: inline-block;\n padding: 0.2em 0.6em 0.3em;\n text-align: center;\n vertical-align: baseline;\n white-space: nowrap;\n color: #ffffff;\n border-radius: 0.25em;\n font-size: 100%;\n line-height: 1;\n margin: 0;\n\n .form-control-static {\n all: unset;\n font-weight: $font-weight-normal;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Labels\n\n//== Design Properties\n//## Helper classes to change the look and feel of the component\n========================================================================== */\n// Color variations\n.label-default {\n color: $label-default-color;\n background-color: $label-default-bg;\n}\n\n.label-primary {\n color: $label-primary-color;\n background-color: $label-primary-bg;\n}\n\n.label-success {\n color: $label-success-color;\n background-color: $label-success-bg;\n}\n\n.label-inverse {\n color: $label-inverse-color;\n background-color: $label-inverse-bg;\n}\n\n.label-info {\n color: $label-info-color;\n background-color: $label-info-bg;\n}\n\n.label-warning {\n color: $label-warning-color;\n background-color: $label-warning-bg;\n}\n\n.label-danger {\n color: $label-danger-color;\n background-color: $label-danger-bg;\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Listview\n\n Default Mendix Listview Widget. The list view shows a list of objects arranged vertically. Each object is shown using a template\n========================================================================== */\n.mx-listview {\n // Remove widget padding\n padding: 0;\n /* Clear search button (overrides load more button stying) */\n // Search bar\n .mx-listview-searchbar {\n margin-bottom: $gutter-size;\n\n .btn {\n width: auto;\n }\n }\n\n /* Load more button */\n & > .btn {\n width: 100%;\n margin: 10px auto;\n }\n\n & > ul {\n margin: 0;\n\n .mx-listview-empty {\n border-style: none;\n background-color: transparent;\n }\n\n & > li {\n @include transition();\n padding: $listview-padding-top $listview-padding-right $listview-padding-bottom $listview-padding-left;\n border-width: 1px 0 0 0;\n border-style: solid;\n border-color: $grid-border-color;\n background-color: $grid-bg;\n\n &:first-child {\n border-radius: 0; // Reset mxui listview style\n }\n\n &:last-child {\n border-bottom: 1px solid $grid-border-color;\n border-radius: 0; // Reset mxui listview style\n }\n\n &:focus,\n &:active {\n outline: 0;\n background-color: $grid-bg-hover;\n }\n\n &.selected {\n background-color: $grid-bg-selected;\n }\n }\n }\n\n .mx-layoutgrid {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n}\n\n//== Phone specific\n//-------------------------------------------------------------------------------------------------------------------//\n.profile-phone .mx-listview {\n .mx-listview-searchbar {\n margin-bottom: 3px;\n background: #FFFFFF;\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.14);\n\n input {\n padding: 14px 15px;\n color: #555555;\n border-style: none;\n border-radius: 0;\n box-shadow: none;\n }\n\n .btn {\n padding: 14px 15px;\n color: inherit;\n border-style: none;\n }\n }\n\n & > ul > li {\n &:first-child {\n border-top: none;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Listview\n\n//== Design Properties\n//## Helper classes to change the look and feel of the component\n========================================================================== */\n// Bordered\n.listview-bordered.mx-listview {\n & > ul > li {\n border: 1px solid $grid-border-color;\n border-top: 0;\n\n &:first-child {\n border-top: 1px solid $grid-border-color;\n border-radius: 0;\n }\n\n &:last-child {\n border-radius: 0;\n }\n }\n}\n\n// Striped\n.listview-striped.mx-listview {\n & > ul > li:nth-child(2n + 1) {\n background-color: $grid-bg-striped;\n }\n}\n\n// Items as seperated blocks\n.listview-seperated.mx-listview {\n & > ul > li {\n margin-bottom: $gutter-size;\n border-width: 1px;\n border-style: solid;\n border-radius: $border-radius-default;\n }\n}\n\n// Remove all styling\n.listview-stylingless.mx-listview {\n & > ul > li {\n padding: 0;\n cursor: default;\n border: 0;\n background-color: transparent;\n\n &:hover,\n &:focus,\n &:active {\n background-color: transparent;\n }\n\n &.selected {\n background-color: transparent !important;\n\n &:hover,\n &:focus,\n &:active {\n background-color: transparent !important;\n }\n }\n }\n}\n\n// Hover style activated\n.listview-hover.mx-listview {\n & > ul > li {\n &:hover,\n &:focus,\n &:active {\n background-color: $grid-bg-hover !important;\n }\n\n &.selected {\n &:hover,\n &:focus,\n &:active {\n background-color: $grid-bg-selected-hover !important;\n }\n }\n }\n}\n\n// Templategrid Row Sizes\n.listview-lg.mx-listview {\n & > ul > li {\n padding: ($grid-padding-top * 2) ($grid-padding-right * 2) ($grid-padding-bottom * 2) ($grid-padding-left * 2);\n }\n}\n\n.listview-sm.mx-listview {\n & > ul > li {\n padding: ($grid-padding-top / 2) ($grid-padding-right / 2) ($grid-padding-bottom / 2) ($grid-padding-left / 2);\n }\n}\n\n// Bootstrap columns\n.mx-listview[class*='lv-col'] {\n overflow: hidden; // For if it is not in a layout, to prevent scrollbars\n & > ul {\n display: block; // normal a table\n margin-right: -1 * $gutter-size;\n margin-left: -1 * $gutter-size;\n\n &::before,\n &::after {\n // clearfix\n display: table;\n clear: both;\n content: ' ';\n }\n\n & > li {\n // bootstrap col\n position: relative;\n display: block; // normal a table\n float: left;\n min-height: 1px;\n padding-right: $gutter-size;\n padding-left: $gutter-size;\n border: 0;\n @media (max-width: $screen-md-max) {\n width: 100% !important;\n }\n\n & > .mx-dataview {\n overflow: hidden;\n }\n }\n }\n\n &.lv-col-xs-12 > ul > li {\n width: 100% !important;\n }\n\n &.lv-col-xs-11 > ul > li {\n width: 91.66666667% !important;\n }\n\n &.lv-col-xs-10 > ul > li {\n width: 83.33333333% !important;\n }\n\n &.lv-col-xs-9 > ul > li {\n width: 75% !important;\n }\n\n &.lv-col-xs-8 > ul > li {\n width: 66.66666667% !important;\n }\n\n &.lv-col-xs-7 > ul > li {\n width: 58.33333333% !important;\n }\n\n &.lv-col-xs-6 > ul > li {\n width: 50% !important;\n }\n\n &.lv-col-xs-5 > ul > li {\n width: 41.66666667% !important;\n }\n\n &.lv-col-xs-4 > ul > li {\n width: 33.33333333% !important;\n }\n\n &.lv-col-xs-3 > ul > li {\n width: 25% !important;\n }\n\n &.lv-col-xs-2 > ul > li {\n width: 16.66666667% !important;\n }\n\n &.lv-col-xs-1 > ul > li {\n width: 8.33333333% !important;\n }\n\n @media (min-width: $screen-md) {\n &.lv-col-sm-12 > ul > li {\n width: 100% !important;\n }\n &.lv-col-sm-11 > ul > li {\n width: 91.66666667% !important;\n }\n &.lv-col-sm-10 > ul > li {\n width: 83.33333333% !important;\n }\n &.lv-col-sm-9 > ul > li {\n width: 75% !important;\n }\n &.lv-col-sm-8 > ul > li {\n width: 66.66666667% !important;\n }\n &.lv-col-sm-7 > ul > li {\n width: 58.33333333% !important;\n }\n &.lv-col-sm-6 > ul > li {\n width: 50% !important;\n }\n &.lv-col-sm-5 > ul > li {\n width: 41.66666667% !important;\n }\n &.lv-col-sm-4 > ul > li {\n width: 33.33333333% !important;\n }\n &.lv-col-sm-3 > ul > li {\n width: 25% !important;\n }\n &.lv-col-sm-2 > ul > li {\n width: 16.66666667% !important;\n }\n &.lv-col-sm-1 > ul > li {\n width: 8.33333333% !important;\n }\n }\n @media (min-width: $screen-lg) {\n &.lv-col-md-12 > ul > li {\n width: 100% !important;\n }\n &.lv-col-md-11 > ul > li {\n width: 91.66666667% !important;\n }\n &.lv-col-md-10 > ul > li {\n width: 83.33333333% !important;\n }\n &.lv-col-md-9 > ul > li {\n width: 75% !important;\n }\n &.lv-col-md-8 > ul > li {\n width: 66.66666667% !important;\n }\n &.lv-col-md-7 > ul > li {\n width: 58.33333333% !important;\n }\n &.lv-col-md-6 > ul > li {\n width: 50% !important;\n }\n &.lv-col-md-5 > ul > li {\n width: 41.66666667% !important;\n }\n &.lv-col-md-4 > ul > li {\n width: 33.33333333% !important;\n }\n &.lv-col-md-3 > ul > li {\n width: 25% !important;\n }\n &.lv-col-md-2 > ul > li {\n width: 16.66666667% !important;\n }\n &.lv-col-md-1 > ul > li {\n width: 16.66666667% !important;\n }\n }\n @media (min-width: $screen-xl) {\n &.lv-col-lg-12 > ul > li {\n width: 100% !important;\n }\n &.lv-col-lg-11 > ul > li {\n width: 91.66666667% !important;\n }\n &.lv-col-lg-10 > ul > li {\n width: 83.33333333% !important;\n }\n &.lv-col-lg-9 > ul > li {\n width: 75% !important;\n }\n &.lv-col-lg-8 > ul > li {\n width: 66.66666667% !important;\n }\n &.lv-col-lg-7 > ul > li {\n width: 58.33333333% !important;\n }\n &.lv-col-lg-6 > ul > li {\n width: 50% !important;\n }\n &.lv-col-lg-5 > ul > li {\n width: 41.66666667% !important;\n }\n &.lv-col-lg-4 > ul > li {\n width: 33.33333333% !important;\n }\n &.lv-col-lg-3 > ul > li {\n width: 25% !important;\n }\n &.lv-col-lg-2 > ul > li {\n width: 16.66666667% !important;\n }\n &.lv-col-lg-1 > ul > li {\n width: 8.33333333% !important;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Modals\n\n Default Mendix Modals. Modals are streamlined, but flexible, dialog prompts with the minimum required functionality and smart defaults\n========================================================================== */\n.modal-dialog {\n .modal-content {\n border: 1px solid $modal-header-border-color;\n border-radius: 4px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);\n\n .modal-header {\n padding: 15px 20px;\n border-bottom-color: $modal-header-border-color;\n border-radius: 0; // Because of the class .mx-window-active in mxui.css\n background-color: $modal-header-bg;\n\n h4 {\n margin: 0;\n color: $modal-header-color;\n font-size: 16px;\n font-weight: $font-weight-bold;\n }\n\n .close {\n margin-top: -3px;\n opacity: 1;\n /* For IE8 and earlier */\n color: $modal-header-color;\n text-shadow: none;\n filter: alpha(opacity=100);\n }\n }\n\n .modal-body {\n padding: 20px;\n }\n\n .modal-footer {\n display: flex;\n justify-content: flex-end;\n margin-top: 0;\n padding: 20px;\n border-style: none;\n }\n }\n}\n\n// Default Mendix Window Modal\n.mx-window {\n // If popup direct child is a dataview it gets the class mx-window-view\n &.mx-window-view .mx-window-body {\n overflow: hidden; // hide second scrollbar in edit page\n padding: 0;\n // Dataview in popup\n > .mx-dataview > .mx-dataview-content,\n > .mx-placeholder > .mx-dataview > .mx-dataview-content {\n padding: 20px;\n }\n\n > .mx-dataview > .mx-dataview-controls,\n > .mx-placeholder > .mx-dataview > .mx-dataview-controls {\n display: flex;\n justify-content: flex-end;\n margin: 0;\n padding: 20px;\n text-align: left;\n border-top: 1px solid $modal-header-border-color;\n }\n }\n\n .mx-dataview-controls {\n padding-bottom: 0;\n }\n\n .mx-layoutgrid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n// Login modal\n.mx-login {\n .modal-body {\n padding: 0 15px;\n }\n\n .modal-content {\n input {\n height: 56px;\n padding: 12px 12px;\n border: 1px solid #EEEEEE;\n background: #EEEEEE;\n box-shadow: none;\n font-size: 16px;\n\n &:focus {\n border-color: #66AFE9;\n }\n }\n }\n\n .modal-header,\n .modal-footer {\n border: 0;\n }\n\n button {\n font-size: 16px;\n }\n\n h4 {\n color: #AAAAAA;\n font-size: 20px;\n font-weight: $font-weight-bold;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Navigation\n\n Default Mendix Navigation Bar\n========================================================================== */\n.mx-navbar {\n margin: 0;\n border-style: none;\n border-radius: 0;\n background-color: $navigation-bg;\n\n ul.nav {\n margin: 0; // weird -margin if screen gets small (bootstrap)\n\n /* Navigation item */\n & > li.mx-navbar-item > a {\n display: flex;\n align-items: center;\n min-height: $topbar-minimalheight;\n padding: $navigation-item-padding;\n vertical-align: middle;\n color: $navigation-color;\n border-radius: 0;\n font-size: $navigation-font-size;\n font-weight: $font-weight-normal;\n\n /* Dropdown arrow */\n .caret {\n border-top-color: $navigation-color;\n border-bottom-color: $navigation-color;\n }\n\n &:hover,\n &:focus,\n &.active {\n text-decoration: none;\n color: $navigation-color-hover;\n background-color: $navigation-bg-hover;\n\n .caret {\n border-top-color: $navigation-color-active;\n border-bottom-color: $navigation-color-active;\n }\n }\n\n &.active {\n color: $navigation-color-active;\n background-color: $navigation-bg-active;\n }\n\n /* Dropdown */\n .mx-navbar-submenu::before {\n position: absolute;\n top: -9px;\n left: 15px;\n width: 0;\n height: 0;\n content: '';\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n border-width: 0 9px 9px 9px;\n border-style: solid;\n border-color: transparent transparent $navigation-border-color transparent;\n }\n\n // Image\n img {\n width: 20px; // Default size (so it looks good)\n height: auto;\n margin-right: 0.5em;\n }\n\n .glyphicon {\n top: 0;\n margin-right: 0.5em;\n vertical-align: middle;\n font-size: $navigation-glyph-size;\n }\n }\n\n & > .mx-navbar-item.active a {\n color: $navigation-color-active;\n }\n\n /* When hovering or the dropdown is open */\n & > .mx-navbar-item > a:hover,\n & > .mx-navbar-item > a:focus,\n & > .mx-navbar-item.open > a,\n & > .mx-navbar-item.open > a:hover,\n & > .mx-navbar-item.open > a:focus {\n text-decoration: none;\n color: $navigation-color-hover;\n background-color: $navigation-bg-hover;\n\n .caret {\n border-top-color: $navigation-color-hover;\n border-bottom-color: $navigation-color-hover;\n }\n }\n\n & > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem.active a {\n color: $navigation-sub-color-active;\n background-color: $navigation-sub-bg-active;\n\n .caret {\n border-top-color: $navigation-sub-color-active;\n border-bottom-color: $navigation-sub-color-active;\n }\n }\n }\n @media (max-width: $screen-md) {\n ul.nav > li.mx-navbar-item > a {\n padding: 10px 20px;\n }\n .mx-navbar-item.open .dropdown-menu {\n padding: 0;\n border-radius: 0;\n background-color: $navigation-sub-bg;\n\n & > li.mx-navbar-subitem > a {\n padding: 10px 20px;\n color: $navigation-sub-color;\n border-radius: 0;\n font-size: $navigation-sub-font-size;\n font-weight: $font-weight-normal;\n\n &:hover,\n &:focus {\n color: $navigation-sub-color-hover;\n background-color: $navigation-sub-bg-hover;\n }\n\n &.active {\n color: $navigation-sub-color-active;\n background-color: $navigation-sub-bg-active;\n }\n }\n }\n }\n\n /* remove focus */\n &:focus {\n outline: 0;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Navigation\n\n//== Regions\n//## Behavior in the different regions\n========================================================================== */\n// When used in topbar\n.region-topbar {\n .mx-navbar {\n background-color: $navtopbar-bg;\n ul.nav {\n /* Navigation item */\n & > li.mx-navbar-item > a {\n color: $navtopbar-color;\n font-size: $navtopbar-font-size;\n\n /* Dropdown arrow */\n .caret {\n border-top-color: $navtopbar-color;\n border-bottom-color: $navtopbar-color;\n }\n &:hover,\n &:focus,\n &.active {\n color: $navtopbar-color-hover;\n background-color: $navtopbar-bg-hover;\n .caret {\n border-top-color: $navtopbar-color-active;\n border-bottom-color: $navtopbar-color-active;\n }\n }\n &.active {\n color: $navtopbar-color-active;\n background-color: $navtopbar-bg-active;\n }\n\n /* Dropdown */\n .mx-navbar-submenu::before {\n border-color: transparent transparent $navtopbar-border-color transparent;\n }\n\n // Image\n .glyphicon {\n font-size: $navtopbar-glyph-size;\n }\n }\n\n /* When hovering or the dropdown is open */\n & > .mx-navbar-item > a:hover,\n & > .mx-navbar-item > a:focus,\n & > .mx-navbar-item.active a,\n & > .mx-navbar-item.open > a,\n & > .mx-navbar-item.open > a:hover,\n & > .mx-navbar-item.open > a:focus {\n color: $navtopbar-color-hover;\n background-color: $navtopbar-bg-hover;\n .caret {\n border-top-color: $navtopbar-color-hover;\n border-bottom-color: $navtopbar-color-hover;\n }\n }\n & > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem.active a {\n color: $navtopbar-sub-color-active;\n background-color: $navtopbar-sub-bg-active;\n .caret {\n border-top-color: $navtopbar-sub-color-active;\n border-bottom-color: $navtopbar-sub-color-active;\n }\n }\n }\n @media (max-width: $screen-md) {\n ul.nav > li.mx-navbar-item > a {\n }\n .mx-navbar-item.open .dropdown-menu {\n background-color: $navtopbar-sub-bg;\n & > li.mx-navbar-subitem > a {\n color: $navtopbar-sub-color;\n font-size: $navtopbar-sub-font-size;\n &:hover,\n &:focus {\n color: $navtopbar-sub-color-hover;\n background-color: $navtopbar-sub-bg-hover;\n }\n &.active {\n color: $navtopbar-sub-color-active;\n background-color: $navtopbar-sub-bg-active;\n }\n }\n }\n }\n }\n}\n\n// When used in sidebar\n.region-sidebar {\n .mx-navbar {\n background-color: $navsidebar-bg;\n ul.nav {\n /* Navigation item */\n & > li.mx-navbar-item > a {\n color: $navsidebar-color;\n font-size: $navsidebar-font-size;\n\n /* Dropdown arrow */\n .caret {\n border-top-color: $navsidebar-color;\n border-bottom-color: $navsidebar-color;\n }\n &:hover,\n &:focus,\n &.active {\n color: $navsidebar-color-hover;\n background-color: $navsidebar-bg-hover;\n .caret {\n border-top-color: $navsidebar-color-active;\n border-bottom-color: $navsidebar-color-active;\n }\n }\n &.active {\n color: $navsidebar-color-active;\n background-color: $navsidebar-bg-active;\n }\n\n /* Dropdown */\n .mx-navbar-submenu::before {\n border-color: transparent transparent $navsidebar-border-color transparent;\n }\n\n // Image\n .glyphicon {\n font-size: $navsidebar-glyph-size;\n }\n }\n\n /* When hovering or the dropdown is open */\n & > .mx-navbar-item > a:hover,\n & > .mx-navbar-item > a:focus,\n & > .mx-navbar-item.active a,\n & > .mx-navbar-item.open > a,\n & > .mx-navbar-item.open > a:hover,\n & > .mx-navbar-item.open > a:focus {\n color: $navsidebar-color-hover;\n background-color: $navsidebar-bg-hover;\n .caret {\n border-top-color: $navsidebar-color-hover;\n border-bottom-color: $navsidebar-color-hover;\n }\n }\n & > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem.active a {\n color: $navsidebar-sub-color-active;\n background-color: $navsidebar-sub-bg-active;\n .caret {\n border-top-color: $navsidebar-sub-color-active;\n border-bottom-color: $navsidebar-sub-color-active;\n }\n }\n }\n @media (max-width: $screen-md) {\n ul.nav > li.mx-navbar-item > a {\n }\n .mx-navbar-item.open .dropdown-menu {\n background-color: $navtopbar-sub-bg;\n & > li.mx-navbar-subitem > a {\n color: $navsidebar-sub-color;\n font-size: $navsidebar-sub-font-size;\n &:hover,\n &:focus {\n color: $navsidebar-sub-color-hover;\n background-color: $navsidebar-sub-bg-hover;\n }\n &.active {\n color: $navsidebar-sub-color-active;\n background-color: $navsidebar-sub-bg-active;\n }\n }\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Navigation List\n \n Default Mendix Navigation List Widget. A navigation list can be used to attach an action to an entire row. Such a row is called a navigation list item\n========================================================================== */\n.mx-navigationlist {\n margin: 0;\n padding: 0;\n list-style: none;\n \n li.mx-navigationlist-item {\n @include transition();\n padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left;\n border-width: 1px;\n border-style: none none solid none;\n border-color: $grid-border-color;\n border-radius: 0;\n background-color: $grid-bg;\n\n &:hover,\n &:focus {\n color: inherit;\n background-color: $grid-bg-hover;\n }\n\n &.active {\n color: inherit;\n background-color: $grid-bg-selected;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Navigation\n\n Default Mendix Navigation Tree\n========================================================================== */\n.mx-navigationtree {\n background-color: $navigation-bg;\n\n /* Every navigation item */\n .navbar-inner > ul {\n margin: 0;\n padding-left: 0;\n & > li {\n padding: 0;\n border-style: none;\n & > a {\n display: flex;\n align-items: center;\n height: $navigation-item-height;\n padding: $navigation-item-padding;\n color: $navigation-color;\n border-bottom: 1px solid $navigation-border-color;\n border-radius: 0;\n background-color: $navigation-bg;\n text-shadow: none;\n font-size: $navigation-font-size;\n font-weight: $font-weight-normal;\n .caret {\n border-top-color: $navigation-color;\n border-bottom-color: $navigation-color;\n }\n img {\n width: 20px; // Default size\n height: auto;\n margin-right: 0.5em;\n }\n .glyphicon {\n top: 0;\n margin-right: 0.5em;\n vertical-align: middle;\n font-size: $navigation-glyph-size;\n }\n }\n a:hover,\n a:focus,\n a.active {\n text-decoration: none;\n color: $navigation-color-hover;\n background-color: $navigation-bg-hover;\n .caret {\n border-top-color: $navigation-color-active;\n border-bottom-color: $navigation-color-active;\n }\n }\n a.active {\n color: $navigation-color-active;\n border-left-color: $navigation-color-active;\n background-color: $navigation-bg-active;\n }\n }\n }\n\n /* Sub navigation item specific */\n li.mx-navigationtree-has-items {\n & > ul {\n margin: 0;\n padding-left: 0;\n background-color: $navigation-sub-bg;\n li {\n margin: 0;\n padding: 0;\n border: 0;\n a {\n padding: 12px 20px 12px 25px;\n text-decoration: none;\n color: $navigation-sub-color;\n border: 0;\n background-color: $navigation-sub-bg;\n text-shadow: none;\n font-size: $navigation-sub-font-size;\n font-weight: $font-weight-normal;\n\n &:hover,\n &:focus,\n &.active {\n color: $navigation-sub-color-hover;\n outline: 0;\n background-color: $navigation-sub-bg-hover;\n }\n &.active {\n color: $navigation-sub-color-active;\n border: 0;\n background-color: $navigation-sub-bg-active;\n }\n }\n }\n }\n }\n\n /* remove focus */\n &:focus {\n outline: 0;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Navigation\n\n//== Regions\n//## Behavior in the different regions\n========================================================================== */\n// When used in topbar\n.region-topbar {\n .mx-navigationtree {\n background-color: $navtopbar-bg;\n .navbar-inner > ul {\n & > li {\n & > a {\n color: $navtopbar-color;\n border-color: $navtopbar-border-color;\n background-color: $navtopbar-bg;\n font-size: $navtopbar-font-size;\n .caret {\n border-top-color: $navtopbar-color;\n border-bottom-color: $navtopbar-color;\n }\n\n .glyphicon {\n font-size: $navtopbar-glyph-size;\n }\n }\n a:hover,\n a:focus,\n a.active {\n color: $navtopbar-color-hover;\n background-color: $navtopbar-bg-hover;\n .caret {\n border-top-color: $navtopbar-color-active;\n border-bottom-color: $navtopbar-color-active;\n }\n }\n a.active {\n color: $navtopbar-color-active;\n border-left-color: $navtopbar-color-active;\n background-color: $navtopbar-bg-active;\n }\n }\n }\n\n /* Sub navigation item specific */\n li.mx-navigationtree-has-items {\n & > ul {\n background-color: $navtopbar-sub-bg;\n li {\n a {\n color: $navtopbar-sub-color;\n background-color: $navtopbar-sub-bg;\n font-size: $navtopbar-sub-font-size;\n &:hover,\n &:focus,\n &.active {\n color: $navtopbar-sub-color-hover;\n background-color: $navtopbar-sub-bg-hover;\n }\n &.active {\n color: $navtopbar-sub-color-active;\n background-color: $navtopbar-sub-bg-active;\n }\n }\n }\n }\n }\n }\n}\n\n// When used in sidebar\n.region-sidebar {\n .mx-navigationtree {\n background-color: $navsidebar-bg;\n .navbar-inner > ul {\n & > li {\n & > a {\n color: $navsidebar-color;\n border-color: $navsidebar-border-color;\n background-color: $navsidebar-bg;\n font-size: $navsidebar-font-size;\n .caret {\n border-top-color: $navsidebar-color;\n border-bottom-color: $navsidebar-color;\n }\n\n .glyphicon {\n font-size: $navsidebar-glyph-size;\n }\n }\n a:hover,\n a:focus,\n a.active {\n color: $navsidebar-color-hover;\n background-color: $navsidebar-bg-hover;\n .caret {\n border-top-color: $navsidebar-color-active;\n border-bottom-color: $navsidebar-color-active;\n }\n }\n a.active {\n color: $navsidebar-color-active;\n border-left-color: $navsidebar-color-active;\n background-color: $navsidebar-bg-active;\n }\n }\n }\n\n /* Sub navigation item specific */\n li.mx-navigationtree-has-items {\n & > ul {\n background-color: $navsidebar-sub-bg;\n li {\n a {\n color: $navsidebar-sub-color;\n background-color: $navsidebar-sub-bg;\n font-size: $navsidebar-sub-font-size;\n &:hover,\n &:focus,\n &.active {\n color: $navsidebar-sub-color-hover;\n background-color: $navsidebar-sub-bg-hover;\n }\n &.active {\n color: $navsidebar-sub-color-active;\n background-color: $navsidebar-sub-bg-active;\n }\n }\n }\n }\n }\n }\n}\n\n\n//== Design Properties\n//## Helper classes to change the look and feel of the component\n//-------------------------------------------------------------------------------------------------------------------//\n// Content Centerd text and icons\n.nav-content-center-text-icons.mx-navigationtree {\n .navbar-inner ul {\n a {\n flex-direction: column;\n justify-content: center;\n .glyphicon {\n margin: 0 0 5px 0;\n }\n }\n }\n}\n\n// Content Centerd icons only\n.nav-content-center.mx-navigationtree {\n .navbar-inner ul {\n a {\n justify-content: center;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Popup Menu\n\n Default Mendix Popup Menus\n========================================================================== */\n.popupmenu {\n position: relative;\n display: inline-flex;\n}\n\n.popupmenu-trigger {\n cursor: pointer;\n}\n\n.popupmenu-menu {\n position: absolute;\n z-index: 999;\n display: none;\n flex-direction: column;\n width: max-content;\n border-radius: 8px;\n background-color: $bg-color;\n box-shadow: 0 2px 20px 1px rgba(5, 15, 129, 0.05), 0 2px 16px 0 rgba(33, 43, 54, 0.08);\n\n &.popupmenu-position-left {\n top: 0;\n left: 0;\n transform: translateX(-100%);\n }\n\n &.popupmenu-position-right {\n top: 0;\n right: 0;\n transform: translateX(100%);\n }\n\n &.popupmenu-position-top {\n top: 0;\n transform: translateY(-100%);\n }\n\n &.popupmenu-position-bottom {\n bottom: 0;\n transform: translateY(100%);\n }\n\n .popupmenu-basic-item:first-child,\n .popupmenu-custom-item:first-child {\n border-top-left-radius: 8px;\n border-top-right-radius: 8px;\n }\n\n .popupmenu-basic-item:last-child,\n .popupmenu-custom-item:last-child {\n border-bottom-right-radius: 8px;\n border-bottom-left-radius: 8px;\n }\n}\n\n.popupmenu-basic-divider {\n width: 100%;\n height: 1px;\n background-color: $brand-default;\n}\n\n.popupmenu-basic-item {\n padding: 12px 16px;\n color: $font-color-default;\n font-size: 14px;\n\n &:hover,\n &:focus,\n &:active {\n cursor: pointer;\n border-color: $bg-color-secondary;\n background-color: $bg-color-secondary;\n }\n\n &-inverse {\n color: $brand-inverse;\n }\n\n &-primary {\n color: $brand-primary;\n }\n\n &-info {\n color: $brand-info;\n }\n\n &-success {\n color: $brand-success;\n }\n\n &-warning {\n color: $brand-warning;\n }\n\n &-danger {\n color: $brand-danger;\n }\n}\n\n.popupmenu-custom-item {\n &:hover,\n &:focus,\n &:active {\n cursor: pointer;\n border-color: $bg-color-secondary;\n background-color: $bg-color-secondary;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Navigation\n\n Default Mendix Simple Menu Bar\n========================================================================== */\n.mx-menubar {\n padding: 0;\n background-color: $navigation-bg;\n\n ul.mx-menubar-list {\n display: flex;\n width: 100%;\n min-height: 50px;\n\n li.mx-menubar-item {\n margin: 0;\n\n > a {\n display: flex;\n overflow: hidden;\n align-items: center;\n justify-content: center;\n height: 100%;\n padding: $navigation-item-padding;\n white-space: nowrap;\n color: $navigation-color;\n border-radius: 0;\n font-size: $navigation-font-size;\n font-weight: $font-weight-normal;\n\n img {\n margin-right: 0.5em;\n }\n\n .glyphicon {\n top: -1px;\n margin-right: 0.5em;\n vertical-align: middle;\n font-size: $navigation-glyph-size;\n }\n }\n\n a:hover,\n a:focus,\n &:hover a,\n &:focus a,\n &.active a {\n text-decoration: none;\n color: $navigation-color-hover;\n background-color: $navigation-bg-hover;\n }\n\n &.active a {\n color: $navigation-color-active;\n background-color: $navigation-bg-active;\n }\n }\n }\n\n /* remove focus */\n &:focus {\n outline: 0;\n }\n}\n\n// Vertical variation specifics\n.mx-menubar-vertical {\n background-color: $navigation-bg;\n\n ul.mx-menubar-list {\n display: flex;\n\n li.mx-menubar-item {\n display: block;\n\n a {\n border-bottom: 1px solid $navigation-border-color;\n }\n }\n }\n}\n\n// Horizontal variation specifics\n.mx-menubar-horizontal {\n box-shadow: 2px 0 4px 0 rgba(0, 0, 0, 0.14);\n\n ul.mx-menubar-list {\n li.mx-menubar-item {\n width: auto;\n\n a {\n width: 100%;\n }\n }\n }\n\n /* Two menu items */\n &.menubar-col-6 ul.mx-menubar-list li.mx-menubar-item {\n width: 50%;\n }\n\n /* Three menu items */\n &.menubar-col-4 ul.mx-menubar-list li.mx-menubar-item {\n width: 33.33333333%;\n }\n\n /* Four menu items */\n &.menubar-col-3 ul.mx-menubar-list li.mx-menubar-item {\n width: 25%;\n }\n\n /* Five menu items */\n &.menubar-col-2 ul.mx-menubar-list li.mx-menubar-item {\n width: 20%;\n }\n}\n\n//== Regions\n//## Behavior in the different regions\n//-------------------------------------------------------------------------------------------------------------------//\n// When used in topbar\n.region-topbar {\n .mx-menubar {\n background-color: $navtopbar-bg;\n\n ul.mx-menubar-list {\n li.mx-menubar-item {\n a {\n color: $navtopbar-color;\n font-size: $navtopbar-font-size;\n\n .glyphicon {\n font-size: $navtopbar-glyph-size;\n }\n }\n\n a:hover,\n a:focus,\n &:hover a,\n &:focus a,\n &.active a {\n color: $navtopbar-color-hover;\n background-color: $navtopbar-bg-hover;\n }\n\n &.active a {\n color: $navtopbar-color-active;\n background-color: $navtopbar-bg-active;\n }\n }\n }\n }\n\n // Vertical variation specifics\n .mx-menubar-vertical {\n background-color: $navtopbar-bg;\n\n ul.mx-menubar-list {\n li.mx-menubar-item {\n a {\n height: $navigation-item-height;\n border-color: $navtopbar-border-color;\n }\n }\n }\n }\n}\n\n// When used in sidebar\n.region-sidebar {\n .mx-menubar {\n background-color: $navsidebar-bg;\n\n ul.mx-menubar-list {\n li.mx-menubar-item {\n a {\n color: $navsidebar-color;\n font-size: $navsidebar-font-size;\n\n .glyphicon {\n font-size: $navsidebar-glyph-size;\n }\n }\n\n a:hover,\n a:focus,\n &:hover a,\n &:focus a,\n &.active a {\n color: $navsidebar-color-hover;\n background-color: $navsidebar-bg-hover;\n }\n\n &.active a {\n color: $navsidebar-color-active;\n background-color: $navsidebar-bg-active;\n }\n }\n }\n }\n\n // Vertical variation specifics\n .mx-menubar-vertical {\n background-color: $navsidebar-bg;\n\n ul.mx-menubar-list {\n li.mx-menubar-item {\n a {\n border-color: $navsidebar-border-color;\n }\n }\n }\n }\n}\n\n@supports (padding-bottom: env(safe-area-inset-bottom)) {\n .mx-menubar {\n padding-bottom: env(safe-area-inset-bottom);\n }\n}","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Navigation\n\n//== Design Properties\n//## Helper classes to change the look and feel of the component\n========================================================================== */\n// Center text and icons\n.bottom-nav-text-icons.mx-menubar {\n ul.mx-menubar-list {\n li.mx-menubar-item {\n a {\n flex-direction: column;\n padding: 8px 8px 6px 8px;\n line-height: normal;\n font-size: 11px;\n .glyphicon {\n display: block;\n margin: 0 0 5px 0;\n font-size: 18px;\n }\n img {\n display: block;\n height: 18px;\n margin: 0 0 5px 0;\n }\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Radio Buttons\n\n Default Mendix Radio Button Widget\n========================================================================== */\n.mx-radiobuttons.inline .mx-radiogroup {\n display: flex;\n flex-direction: row;\n\n .radio {\n margin: 0 20px 0 0;\n }\n}\n\n.mx-radiobuttons .radio:last-child {\n margin-bottom: 0;\n}\n\n.radio {\n display: flex !important; // Remove after mxui merge\n align-items: center;\n margin-top: 0;\n}\n\ninput[type='radio'] {\n position: relative !important; // Remove after mxui merge\n width: 16px;\n height: 16px;\n margin: 0;\n cursor: pointer;\n -moz-user-select: none;\n -ms-user-select: none;\n -o-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n\n &::-ms-check {\n color: $form-input-border-color;\n border-color: $form-input-border-color;\n background-color: $form-input-bg;\n }\n\n &:focus::-ms-check,\n &:checked::-ms-check {\n color: $form-input-border-focus-color;\n border-color: $form-input-border-focus-color;\n background-color: $form-input-bg-focus;\n }\n\n &:before,\n &:after {\n position: absolute;\n display: block;\n transition: all 0.3s ease-in-out;\n border-radius: 50%;\n }\n\n &:before {\n width: 100%;\n height: 100%;\n content: '';\n border: 1px solid $form-input-border-color;\n background-color: transparent;\n }\n\n &:after {\n top: 50%;\n left: 50%;\n width: 50%;\n height: 50%;\n transform: translate(-50%, -50%);\n pointer-events: none;\n background-color: $form-input-border-focus-color;\n }\n\n &:not(:checked):after {\n transform: translate(-50%, -50%) scale(0);\n opacity: 0;\n }\n\n &:not(:disabled):not(:checked):hover:after {\n background-color: $form-input-bg-hover;\n }\n\n &:checked:after,\n &:not(:disabled):not(:checked):hover:after {\n content: '';\n transform: translate(-50%, -50%) scale(1);\n opacity: 1;\n }\n\n &:checked:before {\n border-color: $form-input-border-focus-color;\n background-color: $form-input-bg;\n }\n\n &:disabled:before {\n background-color: $form-input-bg-disabled;\n }\n\n &:checked:disabled:before {\n border-color: rgba($form-input-border-focus-color, 0.4);\n }\n\n &:checked:disabled:after {\n background-color: rgba($form-input-border-focus-color, 0.4);\n }\n\n & + label {\n margin-left: $form-label-gutter;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Tab Container\n\n Default Mendix Tab Container Widget. Tab containers are used to show information categorized into multiple tab pages.\n This can be very useful if the amount of information that has to be displayed is larger than the amount of space on the screen\n========================================================================== */\n\n.mx-tabcontainer {\n .mx-tabcontainer-tabs {\n margin-bottom: 20px;\n border-color: $tabs-border-color;\n & > li > a {\n margin-right: 0;\n -webkit-transition: all 0.2s ease-in-out;\n -moz-transition: all 0.2s ease-in-out;\n -o-transition: all 0.2s ease-in-out;\n transition: all 0.2s ease-in-out;\n color: $tabs-color;\n font-weight: $font-weight-normal;\n &:hover,\n &:focus {\n background-color: $tabs-bg-hover;\n }\n }\n & > li.active > a,\n & > li.active > a:hover,\n & > li.active > a:focus {\n color: $tabs-color-active;\n border: 1px solid $tabs-border-color;\n border-bottom-color: transparent;\n background-color: $tabs-bg;\n }\n }\n}\n\n// Tab Styling Specific for mobile\n.tab-mobile.mx-tabcontainer {\n & > .mx-tabcontainer-tabs {\n margin: 0;\n text-align: center;\n border-style: none;\n background-color: $brand-primary;\n li {\n display: table-cell;\n float: none;\n width: 1%;\n margin: 0;\n text-align: center;\n border-style: none;\n border-radius: 0;\n a {\n padding: 15px;\n text-transform: uppercase;\n color: #FFFFFF;\n border-width: 0 1px 0 0;\n border-style: solid;\n border-color: rgba(255, 255, 255, 0.3);\n border-radius: 0;\n font-size: 12px;\n font-weight: $font-weight-normal;\n &:hover,\n &:focus {\n background-color: inherit;\n }\n }\n &:last-child a {\n border-right: none;\n }\n &.active > a,\n &.active > a:hover,\n &.active > a:focus {\n color: #FFFFFF;\n border-style: none;\n border-radius: 0;\n background-color: mix($brand-primary, #000000, 80%);\n }\n }\n }\n}\n\n.mx-tabcontainer-badge {\n margin-left: 8px;\n border-radius: $font-size-small;\n background-color: $label-primary-bg;\n color: $label-primary-color;\n font-size: $font-size-small;\n font-weight: $font-weight-bold;\n line-height: 1;\n padding: 3px 7px;\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Tab Container\n\n//== Design Properties\n//## Helper classes to change the look and feel of the component\n========================================================================== */\n// Style as pills\n.tab-pills.mx-tabcontainer {\n & > .mx-tabcontainer-tabs {\n border: 0;\n & > li > a {\n margin-right: 2px;\n color: $tabs-color;\n border: 1px solid $tabs-border-color;\n border-radius: 4px;\n &:hover,\n &:focus {\n background-color: $tabs-bg-hover;\n }\n }\n & > li.active > a,\n & > li.active > a:hover,\n & > li.active > a:focus {\n color: #FFFFFF;\n border-color: $tabs-bg-active;\n background-color: $tabs-bg-active;\n }\n }\n}\n\n// Style with lines\n.tab-lined.mx-tabcontainer {\n & > .mx-tabcontainer-tabs {\n border-width: 3px;\n li {\n margin-right: 30px;\n margin-bottom: -3px;\n & > a {\n padding: 10px 0;\n color: $tabs-color;\n border: 0;\n border-style: solid;\n border-color: transparent;\n border-bottom-width: 3px;\n border-radius: 0;\n &:hover,\n &:focus {\n color: $tabs-color;\n border: 0;\n border-color: transparent;\n background: transparent;\n }\n }\n &.active > a,\n &.active > a:hover,\n &.active > a:focus {\n color: $tabs-lined-color-active;\n border: 0;\n border-bottom: 3px solid $tabs-lined-border-color;\n background-color: transparent;\n }\n }\n }\n}\n\n// Justified style\n// Lets your tabs take 100% of the width\n.tab-justified.mx-tabcontainer {\n & > .mx-tabcontainer-tabs {\n width: 100%;\n border-bottom: 0;\n & > li {\n display: table-cell;\n float: none;\n width: 1%;\n margin: 0;\n @media (max-width: $screen-sm-max) {\n display: block;\n width: 100%;\n }\n & > a {\n text-align: center;\n border-bottom: 1px solid $tabs-border-color;\n }\n }\n & > li.active > a {\n border-bottom-color: transparent;\n border-radius: 4px;\n @media (max-width: $screen-sm-max) {\n border-bottom-color: $tabs-border-color;\n }\n }\n }\n}\n\n// Bordered\n.tab-bordered.mx-tabcontainer {\n & > .mx-tabcontainer-tabs {\n margin: 0;\n }\n & > .mx-tabcontainer-content {\n padding: 10px;\n border-width: 0 1px 1px 1px;\n border-style: solid;\n border-color: $tabs-border-color;\n background-color: #FFFFFF;\n }\n}\n\n// Wizard\n.tab-wizard.mx-tabcontainer {\n & > .mx-tabcontainer-tabs {\n position: relative;\n display: flex;\n justify-content: space-between;\n border-style: none;\n\n &::before {\n position: absolute;\n top: 16px;\n display: block;\n width: 100%;\n height: 1px;\n content: \"\";\n background-color: $tabs-border-color;\n }\n & > li {\n position: relative;\n float: none;\n width: 100%;\n text-align: center;\n & > a {\n width: 33px;\n height: 33px;\n margin: auto;\n padding: 0;\n text-align: center;\n color: $brand-default;\n border: 1px solid $tabs-border-color;\n border-radius: 100%;\n background-color: #FFFFFF;\n font-size: 18px;\n font-weight: bold;\n line-height: 33px;\n }\n &.active {\n & > a,\n & > a:hover,\n & > a:focus {\n color: #FFFFFF;\n border-color: $tabs-bg-active;\n background-color: $tabs-bg-active;\n }\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Tables\n\n Default Mendix Table Widget. Tables can be used to lend structure to a page. They contain a number of rows (tr) and columns, the intersection of which is called a cell (td). Each cell can contain widgets\n========================================================================== */\n\nth {\n font-weight: $font-weight-bold;\n}\n\nhtml body .mx-page table.mx-table {\n th,\n td {\n &.nopadding {\n padding: 0;\n }\n }\n}\n\ntable.mx-table {\n > tbody {\n /* Table row */\n > tr {\n /* Table header */\n > th {\n padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom $padding-table-cell-left;s\n * {\n color: $form-label-color;\n font-weight: $font-weight-bold;\n font-weight: $form-label-weight;\n }\n > label {\n padding-top: 7px;\n padding-bottom: 6px; // Aligns label in the middle if there is no input field next to it.\n }\n }\n /* Table cells */\n > td {\n padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom $padding-table-cell-left;\n > div > label,\n .mx-referenceselector-input-wrapper label {\n padding-top: 7px;\n padding-bottom: 6px; // Aligns label in the middle if there is no input field next to it.\n }\n }\n }\n }\n}\n\n// Default Mendix Table Widget inside TemplateGrid\n.mx-templategrid table.mx-table {\n > tbody {\n > tr {\n > th,\n > td {\n padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom $padding-table-cell-left;\n }\n }\n }\n}\n\n// Default Mendix Table Widget inside Listview\n.mx-list table.mx-table {\n > tbody {\n > tr {\n > th,\n > td {\n padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom $padding-table-cell-left;\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Tables\n\n//== Design Properties\n//## Helper classes to change the look and feel of the component\n========================================================================== */\n// Lined\ntable.table-lined.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > td {\n border-width: 1px 0;\n border-style: solid;\n border-color: $grid-border-color;\n }\n }\n }\n}\n\n// Bordered\ntable.table-bordered.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > th,\n > td {\n border-width: 1px;\n border-style: solid;\n border-color: $grid-border-color;\n }\n }\n }\n}\n\n// Makes table compact\ntable.table-compact.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > th,\n > td {\n padding-top: 2px;\n padding-bottom: 2px;\n }\n }\n }\n}\n\n// Remove padding on sides\ntable.table-sideless.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > td,\n > th {\n padding-right: 0;\n }\n > th:first-child,\n > td:first-child {\n padding-left: 0;\n }\n }\n }\n}\n\n// Remove all padding\ntable.table-spaceless.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > th,\n > td {\n padding: 0;\n }\n }\n }\n}\n\n// Tables Vertical\n// Will remove unwanted paddings\ntable.table-vertical.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n > th {\n padding-bottom: 0;\n > label {\n padding: 0;\n }\n > div > label {\n padding: 0;\n }\n }\n }\n }\n}\n\n// Align content in middle\ntable.table-align-vertical-middle.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > th,\n > td {\n vertical-align: middle;\n }\n }\n }\n}\n\n// Compact labels\ntable.table-label-compact.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > th,\n > td {\n > label {\n margin: 0;\n padding: 0;\n }\n > div > label,\n .mx-referenceselector-input-wrapper label {\n margin: 0;\n padding: 0;\n }\n }\n }\n }\n}\n\n$height-row-s: 55px;\n$height-row-m: 70px;\n$height-row-l: 120px;\n// Small rows\ntable.table-row-s.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > th,\n > td {\n height: $height-row-s;\n }\n }\n }\n}\n\n// Medium rows\ntable.table-row-m.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > th,\n > td {\n height: $height-row-m;\n }\n }\n }\n}\n\n// Large rows\ntable.table-row-l.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > th,\n > td {\n height: $height-row-l;\n }\n }\n }\n}\n\n// Makes the columns fixed\ntable.table-fixed {\n table-layout: fixed;\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Templategrid\n\n Default Mendix Templategrid Widget. The template grid shows a list of objects in a tile view. For example, a template grid can show a list of products. The template grid has a lot in common with the data grid. The main difference is that the objects are shown in templates (a sort of small data view) instead of rows\n========================================================================== */\n\n.mx-templategrid {\n .mx-templategrid-content-wrapper {\n table-layout: fixed;\n }\n .mx-templategrid-item {\n padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left;\n cursor: default;\n background-color: $grid-bg;\n &:hover {\n background-color: transparent;\n }\n &.selected {\n background-color: $grid-bg-selected !important;\n }\n }\n .mx-layoutgrid {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n}","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Templategrid\n\n//== Design Properties\n//## Helper classes to change the look and feel of the component\n========================================================================== */\n// Make sure your content looks selectable\n.templategrid-selectable.mx-templategrid {\n .mx-templategrid-item {\n cursor: pointer;\n }\n}\n\n// Lined\n.templategrid-lined.mx-templategrid {\n .mx-grid-content {\n border-top-width: 2px;\n border-top-style: solid;\n border-top-color: $grid-border-color;\n }\n\n .mx-templategrid-item {\n border-top: 1px solid $grid-border-color;\n border-right: none;\n border-bottom: 1px solid $grid-border-color;\n border-left: none;\n }\n}\n\n// Striped\n.templategrid-striped.mx-templategrid {\n .mx-templategrid-row:nth-child(odd) .mx-templategrid-item {\n background-color: #F9F9F9;\n }\n}\n\n// Stylingless\n.templategrid-stylingless.mx-templategrid {\n .mx-templategrid-item {\n padding: 0;\n cursor: default;\n border: 0;\n background-color: transparent;\n\n &:hover {\n background-color: transparent;\n }\n\n &.selected {\n background-color: transparent !important;\n\n &:hover {\n background-color: transparent !important;\n }\n }\n }\n}\n\n// Transparent items\n.templategrid-transparent.mx-templategrid {\n .mx-templategrid-item {\n border: 0;\n background-color: transparent;\n }\n}\n\n// Hover\n.templategrid-hover.mx-templategrid {\n .mx-templategrid-item {\n &:hover {\n background-color: $grid-bg-hover !important;\n }\n\n &.selected {\n background-color: $grid-bg-selected !important;\n\n &:hover {\n background-color: $grid-bg-selected-hover !important;\n }\n }\n }\n}\n\n// Templategrid Row Sizes\n.templategrid-lg.mx-templategrid {\n .mx-templategrid-item {\n padding: ($grid-padding-top * 2) ($grid-padding-right * 2) ($grid-padding-bottom * 2) ($grid-padding-left * 2);\n }\n}\n\n.templategrid-sm.mx-templategrid {\n .mx-templategrid-item {\n padding: ($grid-padding-top / 2) ($grid-padding-right / 2) ($grid-padding-bottom / 2) ($grid-padding-left / 2);\n }\n}\n\n// Templategrid Layoutgrid styles\n.mx-templategrid[class*=\"tg-col\"] {\n overflow: hidden; // For if it is not in a layout, to prevent scrollbars\n .mx-templategrid-content-wrapper {\n display: block;\n }\n\n .mx-templategrid-row {\n display: block;\n margin-right: -1 * $gutter-size;\n margin-left: -1 * $gutter-size;\n\n &::before,\n &::after {\n // clearfix\n display: table;\n clear: both;\n content: \" \";\n }\n }\n\n .mx-templategrid-item {\n // bootstrap col\n position: relative;\n display: block;\n float: left;\n min-height: 1px;\n padding-right: $gutter-size;\n padding-left: $gutter-size;\n border: 0;\n @media (max-width: 992px) {\n width: 100% !important;\n }\n\n .mx-dataview {\n overflow: hidden;\n }\n }\n\n &.tg-col-xs-12 .mx-templategrid-item {\n width: 100% !important;\n }\n\n &.tg-col-xs-11 .mx-templategrid-item {\n width: 91.66666667% !important;\n }\n\n &.tg-col-xs-10 .mx-templategrid-item {\n width: 83.33333333% !important;\n }\n\n &.tg-col-xs-9 .mx-templategrid-item {\n width: 75% !important;\n }\n\n &.tg-col-xs-8 .mx-templategrid-item {\n width: 66.66666667% !important;\n }\n\n &.tg-col-xs-7 .mx-templategrid-item {\n width: 58.33333333% !important;\n }\n\n &.tg-col-xs-6 .mx-templategrid-item {\n width: 50% !important;\n }\n\n &.tg-col-xs-5 .mx-templategrid-item {\n width: 41.66666667% !important;\n }\n\n &.tg-col-xs-4 .mx-templategrid-item {\n width: 33.33333333% !important;\n }\n\n &.tg-col-xs-3 .mx-templategrid-item {\n width: 25% !important;\n }\n\n &.tg-col-xs-2 .mx-templategrid-item {\n width: 16.66666667% !important;\n }\n\n &.tg-col-xs-1 .mx-templategrid-item {\n width: 8.33333333% !important;\n }\n\n @media (min-width: 768px) {\n &.tg-col-sm-12 .mx-templategrid-item {\n width: 100% !important;\n }\n &.tg-col-sm-11 .mx-templategrid-item {\n width: 91.66666667% !important;\n }\n &.tg-col-sm-10 .mx-templategrid-item {\n width: 83.33333333% !important;\n }\n &.tg-col-sm-9 .mx-templategrid-item {\n width: 75% !important;\n }\n &.tg-col-sm-8 .mx-templategrid-item {\n width: 66.66666667% !important;\n }\n &.tg-col-sm-7 .mx-templategrid-item {\n width: 58.33333333% !important;\n }\n &.tg-col-sm-6 .mx-templategrid-item {\n width: 50% !important;\n }\n &.tg-col-sm-5 .mx-templategrid-item {\n width: 41.66666667% !important;\n }\n &.tg-col-sm-4 .mx-templategrid-item {\n width: 33.33333333% !important;\n }\n &.tg-col-sm-3 .mx-templategrid-item {\n width: 25% !important;\n }\n &.tg-col-sm-2 .mx-templategrid-item {\n width: 16.66666667% !important;\n }\n &.tg-col-sm-1 .mx-templategrid-item {\n width: 8.33333333% !important;\n }\n }\n @media (min-width: 992px) {\n &.tg-col-md-12 .mx-templategrid-item {\n width: 100% !important;\n }\n &.tg-col-md-11 .mx-templategrid-item {\n width: 91.66666667% !important;\n }\n &.tg-col-md-10 .mx-templategrid-item {\n width: 83.33333333% !important;\n }\n &.tg-col-md-9 .mx-templategrid-item {\n width: 75% !important;\n }\n &.tg-col-md-8 .mx-templategrid-item {\n width: 66.66666667% !important;\n }\n &.tg-col-md-7 .mx-templategrid-item {\n width: 58.33333333% !important;\n }\n &.tg-col-md-6 .mx-templategrid-item {\n width: 50% !important;\n }\n &.tg-col-md-5 .mx-templategrid-item {\n width: 41.66666667% !important;\n }\n &.tg-col-md-4 .mx-templategrid-item {\n width: 33.33333333% !important;\n }\n &.tg-col-md-3 .mx-templategrid-item {\n width: 25% !important;\n }\n &.tg-col-md-2 .mx-templategrid-item {\n width: 16.66666667% !important;\n }\n &.tg-col-md-1 .mx-templategrid-item {\n width: 8.33333333% !important;\n }\n }\n @media (min-width: 1200px) {\n &.tg-col-lg-12 .mx-templategrid-item {\n width: 100% !important;\n }\n &.tg-col-lg-11 .mx-templategrid-item {\n width: 91.66666667% !important;\n }\n &.tg-col-lg-10 .mx-templategrid-item {\n width: 83.33333333% !important;\n }\n &.tg-col-lg-9 .mx-templategrid-item {\n width: 75% !important;\n }\n &.tg-col-lg-8 .mx-templategrid-item {\n width: 66.66666667% !important;\n }\n &.tg-col-lg-7 .mx-templategrid-item {\n width: 58.33333333% !important;\n }\n &.tg-col-lg-6 .mx-templategrid-item {\n width: 50% !important;\n }\n &.tg-col-lg-5 .mx-templategrid-item {\n width: 41.66666667% !important;\n }\n &.tg-col-lg-4 .mx-templategrid-item {\n width: 33.33333333% !important;\n }\n &.tg-col-lg-3 .mx-templategrid-item {\n width: 25% !important;\n }\n &.tg-col-lg-2 .mx-templategrid-item {\n width: 16.66666667% !important;\n }\n &.tg-col-lg-1 .mx-templategrid-item {\n width: 8.33333333% !important;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Typography\n========================================================================== */\n\np {\n line-height: $line-height-base * 1.25;\n}\n\nlabel {\n padding-top: 0;\n}\n\n.mx-title {\n margin: $font-header-margin;\n color: $font-color-header;\n font-size: $font-size-h1;\n font-weight: $font-weight-header;\n}\n\nh1,\n.h1,\n.h1 > * {\n font-size: $font-size-h1;\n}\n\nh2,\n.h2,\n.h2 > * {\n font-size: $font-size-h2;\n}\n\nh3,\n.h3,\n.h3 > * {\n font-size: $font-size-h3;\n}\n\nh4,\n.h4,\n.h4 > * {\n font-size: $font-size-h4;\n}\n\nh5,\n.h5,\n.h5 > * {\n font-size: $font-size-h5;\n}\n\nh6,\n.h6,\n.h6 > * {\n font-size: $font-size-h6;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6 {\n margin: $font-header-margin;\n color: $font-color-header;\n font-weight: $font-weight-header;\n line-height: 1.3;\n}","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Typography\n\n//== Design Properties\n//## Helper classes to change the look and feel of the component\n========================================================================== */\n// Text size\n.text-small {\n font-size: $font-size-small !important;\n}\n\n.text-large {\n font-size: $font-size-large !important;\n}\n\n// Text Weights\n.text-light,\n.text-light > *,\n.text-light label {\n font-weight: $font-weight-light !important;\n}\n\n.text-normal,\n.text-normal > *,\n.text-normal label {\n font-weight: $font-weight-normal !important;\n}\n\n.text-semibold,\n.text-semibold > *,\n.text-semibold label {\n font-weight: $font-weight-semibold !important;\n}\n\n.text-bold,\n.text-bold > *,\n.text-bold label {\n font-weight: $font-weight-bold !important;\n}\n\n// Color variations\n.text-default,\n.text-default:hover {\n color: $font-color-default !important;\n}\n\n.text-primary,\n.text-primary:hover {\n color: $brand-primary !important;\n}\n\n.text-info,\n.text-info:hover {\n color: $brand-info !important;\n}\n\n.text-success,\n.text-success:hover {\n color: $brand-success !important;\n}\n\n.text-warning,\n.text-warning:hover {\n color: $brand-warning !important;\n}\n\n.text-danger,\n.text-danger:hover {\n color: $brand-danger !important;\n}\n\n.text-header {\n color: $font-color-header !important;\n}\n\n.text-detail {\n color: $font-color-detail !important;\n}\n\n.text-white {\n color: #ffffff;\n}\n\n// Alignment options\n.text-left {\n text-align: left !important;\n}\n.text-center {\n text-align: center !important;\n}\n.text-right {\n text-align: right !important;\n}\n.text-justify {\n text-align: justify !important;\n}\n\n// Transform options\n.text-lowercase {\n text-transform: lowercase !important;\n}\n.text-uppercase {\n text-transform: uppercase !important;\n}\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n// Wrap options\n.text-break {\n word-break: break-all !important;\n word-break: break-word !important;\n -ms-word-break: break-all !important;\n -webkit-hyphens: auto !important;\n -moz-hyphens: auto !important;\n hyphens: auto !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-nowrap {\n overflow: hidden !important;\n max-width: 100% !important;\n white-space: nowrap !important;\n text-overflow: ellipsis !important;\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Layout Grid\n\n Default Bootstrap containers\n========================================================================== */\n.mx-layoutgrid {\n width: 100%;\n margin-right: auto;\n margin-left: auto;\n padding-right: $gutter-size;\n padding-left: $gutter-size;\n}\n\n// Row\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter-size;\n margin-left: -$gutter-size;\n\n &::before,\n &::after {\n content: normal;\n }\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n// Columns\n.col-1,\n.col-2,\n.col-3,\n.col-4,\n.col-5,\n.col-6,\n.col-7,\n.col-8,\n.col-9,\n.col-10,\n.col-11,\n.col-12,\n.col,\n.col-auto,\n.col-sm-1,\n.col-sm-2,\n.col-sm-3,\n.col-sm-4,\n.col-sm-5,\n.col-sm-6,\n.col-sm-7,\n.col-sm-8,\n.col-sm-9,\n.col-sm-10,\n.col-sm-11,\n.col-sm-12,\n.col-sm,\n.col-sm-auto,\n.col-md-1,\n.col-md-2,\n.col-md-3,\n.col-md-4,\n.col-md-5,\n.col-md-6,\n.col-md-7,\n.col-md-8,\n.col-md-9,\n.col-md-10,\n.col-md-11,\n.col-md-12,\n.col-md,\n.col-md-auto,\n.col-lg-1,\n.col-lg-2,\n.col-lg-3,\n.col-lg-4,\n.col-lg-5,\n.col-lg-6,\n.col-lg-7,\n.col-lg-8,\n.col-lg-9,\n.col-lg-10,\n.col-lg-11,\n.col-lg-12,\n.col-lg,\n.col-lg-auto,\n.col-xl-1,\n.col-xl-2,\n.col-xl-3,\n.col-xl-4,\n.col-xl-5,\n.col-xl-6,\n.col-xl-7,\n.col-xl-8,\n.col-xl-9,\n.col-xl-10,\n.col-xl-11,\n.col-xl-12,\n.col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: $gutter-size;\n padding-left: $gutter-size;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n order: -1;\n}\n\n.order-last {\n order: 13;\n}\n\n.order-0 {\n order: 0;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n.offset-1,\n.col-offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2,\n.col-offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3,\n.col-offset-3 {\n margin-left: 25%;\n}\n\n.offset-4,\n.col-offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5,\n.col-offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6,\n.col-offset-6 {\n margin-left: 50%;\n}\n\n.offset-7,\n.col-offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8,\n.col-offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9,\n.col-offset-9 {\n margin-left: 75%;\n}\n\n.offset-10,\n.col-offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11,\n.col-offset-11 {\n margin-left: 91.666667%;\n}\n\n// Responsiveness\n@media (min-width: $screen-sm) {\n .mx-layoutgrid-fixed {\n max-width: 540px;\n }\n}\n\n@media (min-width: $screen-md) {\n .mx-layoutgrid-fixed {\n max-width: 720px;\n }\n}\n\n@media (min-width: $screen-lg) {\n .mx-layoutgrid-fixed {\n max-width: 960px;\n }\n}\n\n@media (min-width: $screen-xl) {\n .mx-layoutgrid-fixed {\n max-width: 1140px;\n }\n}\n\n@media (min-width: $screen-sm) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0,\n .col-sm-offset-0 {\n margin-left: 0;\n }\n .offset-sm-1,\n .col-sm-offset-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2,\n .col-sm-offset-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3,\n .col-sm-offset-3 {\n margin-left: 25%;\n }\n .offset-sm-4,\n .col-sm-offset-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5,\n .col-sm-offset-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6,\n .col-sm-offset-6 {\n margin-left: 50%;\n }\n .offset-sm-7,\n .col-sm-offset-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8,\n .col-sm-offset-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9,\n .col-sm-offset-9 {\n margin-left: 75%;\n }\n .offset-sm-10,\n .col-sm-offset-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11,\n .col-sm-offset-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: $screen-md) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0,\n .col-md-offset-0 {\n margin-left: 0;\n }\n .offset-md-1,\n .col-md-offset-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2,\n .col-md-offset-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3,\n .col-md-offset-3 {\n margin-left: 25%;\n }\n .offset-md-4,\n .col-md-offset-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5,\n .col-md-offset-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6,\n .col-md-offset-6 {\n margin-left: 50%;\n }\n .offset-md-7,\n .col-md-offset-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8,\n .col-md-offset-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9,\n .col-md-offset-9 {\n margin-left: 75%;\n }\n .offset-md-10,\n .col-md-offset-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11,\n .col-md-offset-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: $screen-lg) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0,\n .col-lg-offset-0 {\n margin-left: 0;\n }\n .offset-lg-1,\n .col-lg-offset-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2,\n .col-lg-offset-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3,\n .col-lg-offset-3 {\n margin-left: 25%;\n }\n .offset-lg-4,\n .col-lg-offset-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5,\n .col-lg-offset-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6,\n .col-lg-offset-6 {\n margin-left: 50%;\n }\n .offset-lg-7,\n .col-lg-offset-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8,\n .col-lg-offset-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9,\n .col-lg-offset-9 {\n margin-left: 75%;\n }\n .offset-lg-10,\n .col-lg-offset-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11,\n .col-lg-offset-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: $screen-xl) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0,\n .col-xl-offset-0 {\n margin-left: 0;\n }\n .offset-xl-1,\n .col-xl-offset-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2,\n .col-xl-offset-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3,\n .col-xl-offset-3 {\n margin-left: 25%;\n }\n .offset-xl-4,\n .col-xl-offset-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5,\n .col-xl-offset-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6,\n .col-xl-offset-6 {\n margin-left: 50%;\n }\n .offset-xl-7,\n .col-xl-offset-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8,\n .col-xl-offset-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9,\n .col-xl-offset-9 {\n margin-left: 75%;\n }\n .offset-xl-10,\n .col-xl-offset-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11,\n .col-xl-offset-11 {\n margin-left: 91.666667%;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Progress\n\n Default Mendix Progress Widget.\n========================================================================== */\n\n.mx-progress {\n color: $font-color-default;\n background: $bg-color-secondary;\n\n .mx-progress-message {\n color: $font-color-default;\n }\n\n .mx-progress-indicator {\n position: relative;\n overflow: hidden;\n width: 100%;\n max-width: 100%;\n height: 2px;\n margin: auto;\n padding: 0;\n border-radius: 0;\n background: $gray-lighter;\n\n &:before,\n &:after {\n position: absolute;\n top: 0;\n left: 0;\n display: block;\n width: 50%;\n height: 2px;\n content: \"\";\n transform: translate3d(-100%, 0, 0);\n background: $brand-primary;\n }\n\n &::before {\n animation: loader 2s infinite;\n }\n\n &::after {\n animation: loader 2s -2s infinite;\n }\n }\n}\n\n\n@keyframes loader {\n 0% {\n transform: translate3d(-100%, 0, 0);\n }\n 100% {\n transform: translate3d(200%, 0, 0);\n }\n}\n",".widget-timeline-date-header {\n display: inline-block;\n width: 110px;\n overflow-wrap: break-word;\n padding: 8px;\n text-align: center;\n border: 1px solid $timeline-border-color;\n border-radius: 30px;\n}\n\n.widget-timeline-events-wrapper {\n display: flex;\n flex: 1;\n margin-left: 55px;\n padding-top: 35px;\n\n ul {\n padding: 0;\n list-style: none;\n margin-bottom: 0;\n }\n}\n\n.widget-timeline-title {\n color: $timeline-color-header;\n font-weight: 600;\n margin: 0 0 10px 0;\n}\n\n.widget-timeline-description {\n color: $timeline-color-detail;\n}\n\n.widget-timeline-event {\n position: relative;\n margin-left: $timeline-icon-size / 2;\n padding-left: $spacing-large;\n padding-bottom: 20px;\n\n &:not(:last-of-type) {\n border-left: 1px solid $timeline-border-color;\n }\n\n &.clickable {\n cursor: pointer;\n transition: background 0.8s;\n\n &:hover {\n .widget-timeline-title {\n color: #dadcde;\n }\n }\n }\n}\n\n.widget-timeline-icon-wrapper {\n position: absolute;\n top: 0;\n left: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n width: $timeline-icon-size;\n height: $timeline-icon-size;\n transform: translateX(-50%);\n\n .glyphicon {\n font-size: $timeline-icon-size;\n }\n\n img {\n max-width: $timeline-icon-size;\n max-height: $timeline-icon-size;\n }\n}\n\n.widget-timeline-content-wrapper {\n .widget-timeline-date-time-wrapper {\n margin-right: 15px;\n }\n\n .widget-timeline-info-wrapper {\n flex-direction: column;\n }\n}\n\n.widget-timeline-icon-circle {\n width: 18px;\n height: 18px;\n border-radius: 50%;\n background-color: $timeline-icon-color;\n}\n\n.widget-timeline-no-divider {\n padding-bottom: 0;\n padding-top: 0;\n margin-left: 0;\n}\n\n.widget-timeline-flex-container {\n display: flex;\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Helpers\n\n Default Mendix Helpers\n========================================================================== */\n$important-helpers-value: if($important-helpers, ' !important', '');\n\n// Display properties\n.d-none {\n display: none #{$important-helpers-value};\n}\n\n.d-flex {\n display: flex #{$important-helpers-value};\n}\n\n.d-inline-flex {\n display: inline-flex #{$important-helpers-value};\n}\n\n.d-inline {\n display: inline #{$important-helpers-value};\n}\n\n.d-inline-block {\n display: inline-block #{$important-helpers-value};\n}\n\n.show,\n.d-block {\n display: block #{$important-helpers-value};\n}\n\n.table,\n.d-table {\n display: table #{$important-helpers-value};\n}\n\n.table-row,\n.d-table-row {\n display: table-row #{$important-helpers-value};\n}\n\n.table-cell,\n.d-table-cell {\n display: table-cell #{$important-helpers-value};\n}\n\n.hide,\n.hidden {\n display: none #{$important-helpers-value};\n visibility: hidden #{$important-helpers-value};\n}\n\n.invisible {\n visibility: hidden #{$important-helpers-value};\n}\n\n.display-ie8-only:not([attr*=\"\"]) {\n display: none #{$important-helpers-value};\n padding: 0 #{$important-helpers-value};\n}\n\n.list-nostyle {\n ul {\n margin: 0 #{$important-helpers-value};\n padding: 0 #{$important-helpers-value};\n\n li {\n list-style-type: none #{$important-helpers-value};\n }\n }\n}\n\n.nowrap,\n.nowrap * {\n overflow: hidden #{$important-helpers-value};\n // Star for inside an element, IE8 span > a\n white-space: nowrap #{$important-helpers-value};\n text-overflow: ellipsis #{$important-helpers-value};\n}\n\n// Render DIV as Table Cells\n.table {\n display: table #{$important-helpers-value};\n}\n\n.table-row {\n display: table-row #{$important-helpers-value};\n}\n\n.table-cell {\n display: table-cell #{$important-helpers-value};\n}\n\n// Quick floats\n.pull-left {\n float: left #{$important-helpers-value};\n}\n\n.pull-right {\n float: right #{$important-helpers-value};\n}\n\n// Align options\n.align-top {\n vertical-align: top #{$important-helpers-value};\n}\n\n.align-middle {\n vertical-align: middle #{$important-helpers-value};\n}\n\n.align-bottom {\n vertical-align: bottom #{$important-helpers-value};\n}\n\n// Flex alignments\n.row-left {\n display: flex #{$important-helpers-value};\n align-items: center #{$important-helpers-value};\n flex-flow: row #{$important-helpers-value};\n justify-content: flex-start #{$important-helpers-value};\n}\n\n.row-center {\n display: flex #{$important-helpers-value};\n align-items: center #{$important-helpers-value};\n flex-flow: row #{$important-helpers-value};\n justify-content: center #{$important-helpers-value};\n}\n\n.row-right {\n display: flex #{$important-helpers-value};\n align-items: center #{$important-helpers-value};\n flex-flow: row #{$important-helpers-value};\n justify-content: flex-end #{$important-helpers-value};\n}\n\n.col-left {\n display: flex #{$important-helpers-value};\n align-items: flex-start #{$important-helpers-value};\n flex-direction: column #{$important-helpers-value};\n justify-content: center #{$important-helpers-value};\n}\n\n.col-center {\n display: flex #{$important-helpers-value};\n align-items: center #{$important-helpers-value};\n flex-direction: column #{$important-helpers-value};\n justify-content: center #{$important-helpers-value};\n}\n\n.col-right {\n display: flex #{$important-helpers-value};\n align-items: flex-end #{$important-helpers-value};\n flex-direction: column #{$important-helpers-value};\n justify-content: center #{$important-helpers-value};\n}\n\n// Media\n@media (max-width: $screen-sm-max) {\n .hide-phone {\n display: none #{$important-helpers-value};\n }\n}\n\n@media (min-width: $screen-md) and (max-width: $screen-md-max) {\n .hide-tablet {\n display: none #{$important-helpers-value};\n }\n}\n\n@media (min-width: $screen-lg) {\n .hide-desktop {\n display: none #{$important-helpers-value};\n }\n}\n\n\n@media (max-width: $screen-xs-max) {\n .hide-xs,\n .hidden-xs,\n .d-xs-none {\n display: none #{$important-helpers-value};\n }\n .d-xs-flex {\n display: flex #{$important-helpers-value};\n }\n .d-xs-inline-flex {\n display: inline-flex #{$important-helpers-value};\n }\n .d-xs-inline {\n display: inline #{$important-helpers-value};\n }\n .d-xs-inline-block {\n display: inline-block #{$important-helpers-value};\n }\n .d-xs-block {\n display: block #{$important-helpers-value};\n }\n .d-xs-table {\n display: table #{$important-helpers-value};\n }\n .d-xs-table-row {\n display: table-row #{$important-helpers-value};\n }\n .d-xs-table-cell {\n display: table-cell #{$important-helpers-value};\n }\n}\n\n@media (min-width: $screen-sm) and (max-width: $screen-sm-max) {\n .hide-sm,\n .hidden-sm,\n .d-sm-none {\n display: none #{$important-helpers-value};\n }\n .d-sm-flex {\n display: flex #{$important-helpers-value};\n }\n .d-sm-inline-flex {\n display: inline-flex #{$important-helpers-value};\n }\n .d-sm-inline {\n display: inline #{$important-helpers-value};\n }\n .d-sm-inline-block {\n display: inline-block #{$important-helpers-value};\n }\n .d-sm-block {\n display: block #{$important-helpers-value};\n }\n .d-sm-table {\n display: table #{$important-helpers-value};\n }\n .d-sm-table-row {\n display: table-row #{$important-helpers-value};\n }\n .d-sm-table-cell {\n display: table-cell #{$important-helpers-value};\n }\n}\n\n@media (min-width: $screen-md) and (max-width: $screen-md-max) {\n .hide-md,\n .hidden-md,\n .d-md-none {\n display: none #{$important-helpers-value};\n }\n .d-md-flex {\n display: flex #{$important-helpers-value};\n }\n .d-md-inline-flex {\n display: inline-flex #{$important-helpers-value};\n }\n .d-md-inline {\n display: inline #{$important-helpers-value};\n }\n .d-md-inline-block {\n display: inline-block #{$important-helpers-value};\n }\n .d-md-block {\n display: block #{$important-helpers-value};\n }\n .d-md-table {\n display: table #{$important-helpers-value};\n }\n .d-md-table-row {\n display: table-row #{$important-helpers-value};\n }\n .d-md-table-cell {\n display: table-cell #{$important-helpers-value};\n }\n}\n\n@media (min-width: $screen-lg) and (max-width: $screen-xl) {\n .hide-lg,\n .hidden-lg,\n .d-lg-none {\n display: none #{$important-helpers-value};\n }\n .d-lg-flex {\n display: flex #{$important-helpers-value};\n }\n .d-lg-inline-flex {\n display: inline-flex #{$important-helpers-value};\n }\n .d-lg-inline {\n display: inline #{$important-helpers-value};\n }\n .d-lg-inline-block {\n display: inline-block #{$important-helpers-value};\n }\n .d-lg-block {\n display: block #{$important-helpers-value};\n }\n .d-lg-table {\n display: table #{$important-helpers-value};\n }\n .d-lg-table-row {\n display: table-row #{$important-helpers-value};\n }\n .d-lg-table-cell {\n display: table-cell #{$important-helpers-value};\n }\n}\n\n@media (min-width: $screen-xl) {\n .hide-xl,\n .hidden-xl,\n .d-xl-none {\n display: none #{$important-helpers-value};\n }\n .d-xl-flex {\n display: flex #{$important-helpers-value};\n }\n .d-xl-inline-flex {\n display: inline-flex #{$important-helpers-value};\n }\n .d-xl-inline {\n display: inline #{$important-helpers-value};\n }\n .d-xl-inline-block {\n display: inline-block #{$important-helpers-value};\n }\n .d-xl-block {\n display: block #{$important-helpers-value};\n }\n .d-xl-table {\n display: table #{$important-helpers-value};\n }\n .d-xl-table-row {\n display: table-row #{$important-helpers-value};\n }\n .d-xl-table-cell {\n display: table-cell #{$important-helpers-value};\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/*\n* Mendix Documentation\n* Special styles for presenting components\n*/\n\n/*\n* Dijit Widgets\n*\n* Default Dojo Dijit Widgets\n*/\n\n/*\n * Dijit Tooltip Widget\n *\n * Default tooltip used for Mendix widgets\n */\n\n.mx-tooltip {\n .dijitTooltipContainer {\n border-width: 1px;\n border-color: $gray-light;\n border-radius: 4px;\n background: #ffffff;\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n .mx-tooltip-content {\n padding: 10px;\n }\n .form-group {\n margin-bottom: 5px;\n }\n }\n .dijitTooltipConnector {\n width: 0;\n height: 0;\n margin-left: -10px;\n border-width: 10px 10px 10px 0;\n border-style: solid;\n border-color: transparent;\n border-right-color: $gray-light;\n }\n}\n\n/*\n * Dijit Border Container\n *\n * Used in Mendix as split pane containers\n */\n\n.dijitBorderContainer {\n padding: 5px;\n background-color: #fcfcfc;\n .dijitSplitterV,\n .dijitGutterV {\n width: 5px;\n border: 0;\n background: #fcfcfc;\n }\n .dijitSplitterH,\n .dijitGutterH {\n height: 5px;\n border: 0;\n background: #fcfcfc;\n }\n .dijitSplitterH {\n .dijitSplitterThumb {\n top: 2px;\n width: 19px;\n height: 1px;\n background: #b0b0b0;\n }\n }\n .dijitSplitterV {\n .dijitSplitterThumb {\n left: 2px;\n width: 1px;\n height: 19px;\n background: #b0b0b0;\n }\n }\n .dijitSplitContainer-child,\n .dijitBorderContainer-child {\n border: 1px solid #cccccc;\n }\n .dijitBorderContainer-dijitTabContainerTop,\n .dijitBorderContainer-dijitTabContainerBottom,\n .dijitBorderContainer-dijitTabContainerLeft,\n .dijitBorderContainer-dijitTabContainerRight {\n border: none;\n }\n .dijitBorderContainer-dijitBorderContainer {\n padding: 0;\n border: none;\n }\n .dijitSplitterActive {\n /* For IE8 and earlier */\n margin: 0;\n opacity: 0.6;\n background-color: #aaaaaa;\n background-image: none;\n font-size: 1px;\n filter: alpha(opacity=60);\n }\n .dijitSplitContainer-dijitContentPane,\n .dijitBorderContainer-dijitContentPane {\n padding: 5px;\n background-color: #ffffff;\n }\n}\n\n/*\n * Dijit Menu Popup\n *\n * Used in datepickers and calendar widgets\n */\n\n.dijitMenuPopup {\n margin-top: 10px;\n .dijitMenu {\n display: block;\n width: 200px !important;\n margin-top: 0; // No top margin because there is no parent with margin bottom\n padding: 12px 10px;\n border-radius: 3px;\n background: $brand-inverse;\n &:after {\n position: absolute;\n bottom: 100%;\n left: 20px;\n width: 0;\n height: 0;\n margin-left: -10px;\n content: ' ';\n pointer-events: none;\n border: medium solid transparent;\n border-width: 10px;\n border-bottom-color: $brand-inverse;\n }\n // Menu item\n .dijitMenuItem {\n background: transparent;\n .dijitMenuItemLabel {\n display: block;\n overflow: hidden;\n width: 180px !important;\n padding: 10px;\n text-overflow: ellipsis;\n color: #ffffff;\n border-radius: 3px;\n }\n // Hover\n &.dijitMenuItemHover {\n background: none;\n .dijitMenuItemLabel {\n background: $brand-primary;\n }\n }\n }\n // New label\n .tg_newlabelmenuitem {\n .dijitMenuItemLabel {\n font-weight: $font-weight-bold;\n }\n }\n // Seperator\n .dijitMenuSeparator {\n td {\n padding: 0;\n border-bottom-width: 3px;\n }\n .dijitMenuSeparatorIconCell {\n > div {\n margin: 0; //override dijit styling\n }\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* Based on https://github.com/mendixlabs/star-rating/blob/v1.1.1/src/ui/StarRating.scss */\ndiv.widget-progress-bar .progress-bar-default {\n background-color: $brand-default;\n}\n\ndiv.widget-progress-bar .progress-bar-primary {\n background-color: $brand-primary;\n}\n\ndiv.widget-progress-bar .progress-bar-success {\n background-color: $brand-success;\n}\n\ndiv.widget-progress-bar .progress-bar-info {\n background-color: $brand-info;\n}\n\ndiv.widget-progress-bar .progress-bar-warning {\n background-color: $brand-warning;\n}\n\ndiv.widget-progress-bar .progress-bar-danger {\n background-color: $brand-danger;\n}\n\ndiv.widget-progress-bar .progress-bar-inverse {\n background-color: $brand-inverse;\n}\n\ndiv.widget-progress-bar-alert.widget-progress-bar-text-contrast .progress-bar {\n color: $color-danger-darker;\n}\n\ndiv.widget-progress-bar-text-contrast .progress-bar {\n color: $font-color-default;\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* Based on https://github.com/mendixlabs/progress-circle/tree/master/src/ui/_progress-circle-theme.scss */\npath.widget-progress-circle-path {\n stroke: $brand-primary;\n}\n\n.widget-progress-circle-primary {\n path.widget-progress-circle-path {\n stroke: $brand-primary;\n }\n .progressbar-text {\n color: $brand-primary !important;\n }\n}\n\n.widget-progress-circle-info {\n path.widget-progress-circle-path {\n stroke: $brand-info;\n }\n .progressbar-text {\n color: $brand-info !important;\n }\n}\n\n.widget-progress-circle-success {\n path.widget-progress-circle-path {\n stroke: $brand-success;\n }\n .progressbar-text {\n color: $brand-success !important;\n }\n}\n\n.widget-progress-circle-warning {\n path.widget-progress-circle-path {\n stroke: $brand-warning;\n }\n .progressbar-text {\n color: $brand-warning !important;\n }\n}\n\n.widget-progress-circle-danger {\n path.widget-progress-circle-path {\n stroke: $brand-danger;\n }\n .progressbar-text {\n color: $brand-danger !important;\n }\n}\n\n.widget-progress-circle-inverse {\n path.widget-progress-circle-path {\n stroke: $brand-inverse;\n }\n .progressbar-text {\n color: $brand-inverse !important;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n// Based on https://github.com/mendixlabs/range-slider/tree/master/src/ui/_range-slider-theme.scss\n\ndiv.widget-range-slider {\n .rc-slider-handle,\n .rc-slider-dot-active {\n border-color: $brand-default;\n\n &:active {\n border-color: $brand-default;\n box-shadow: none;\n }\n\n &:hover {\n border-color: $brand-default;\n }\n }\n\n &.has-error {\n .rc-slider-track,\n .rc-slider-rail {\n background-color: $brand-danger;\n }\n }\n}\n\ndiv.widget-range-slider-primary .rc-slider-track {\n background-color: $brand-primary;\n}\n\ndiv.widget-range-slider-info .rc-slider-track {\n background-color: $brand-info;\n}\n\ndiv.widget-range-slider-success .rc-slider-track {\n background-color: $brand-success;\n}\n\ndiv.widget-range-slider-warning .rc-slider-track {\n background-color: $brand-warning;\n}\n\ndiv.widget-range-slider-danger .rc-slider-track {\n background-color: $brand-danger;\n}\n\ndiv.widget-range-slider-inverse .rc-slider-track {\n background-color: $brand-inverse;\n}\n\n.rc-slider-tooltip {\n z-index: 999;\n}","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n// Based on https://github.com/mendixlabs/slider/tree/master/src/ui/_slider-theme.scss\n\ndiv.widget-slider {\n .rc-slider-handle,\n .rc-slider-dot-active {\n border-color: $brand-default;\n &:active {\n border-color: $brand-default;\n }\n &:hover {\n border-color: $brand-default;\n }\n }\n\n &.has-error {\n .rc-slider-track,\n .rc-slider-rail {\n background-color: $brand-danger;\n }\n }\n}\n\ndiv.widget-slider-primary .rc-slider-track {\n background-color: $brand-primary;\n}\n\ndiv.widget-slider-info .rc-slider-track {\n background-color: $brand-info;\n}\n\ndiv.widget-slider-success .rc-slider-track {\n background-color: $brand-success;\n}\n\ndiv.widget-slider-warning .rc-slider-track {\n background-color: $brand-warning;\n}\n\ndiv.widget-slider-danger .rc-slider-track {\n background-color: $brand-danger;\n}\n\ndiv.widget-slider-inverse .rc-slider-track {\n background-color: $brand-inverse;\n}\n","//\r\n// DISCLAIMER:\r\n// Do not change this file because it is core styling.\r\n// Customizing core files will make updating Atlas much more difficult in the future.\r\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\r\n//\r\n\r\n/* Based on https://github.com/mendixlabs/star-rating/blob/v1.1.1/src/ui/StarRating.scss */\r\nspan.widget-star-rating-full-default {\r\n color: $brand-default;\r\n}\r\n\r\nspan.widget-star-rating-full-primary {\r\n color: $brand-primary;\r\n}\r\n\r\nspan.widget-star-rating-full-success {\r\n color: $brand-success;\r\n}\r\n\r\nspan.widget-star-rating-full-info {\r\n color: $brand-info;\r\n}\r\n\r\nspan.widget-star-rating-full-warning {\r\n color: $brand-warning;\r\n}\r\n\r\nspan.widget-star-rating-full-danger {\r\n color: $brand-danger;\r\n}\r\n\r\nspan.widget-star-rating-full-inverse {\r\n color: $brand-inverse;\r\n}\r\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n$default-android-color: #6FBEB5;\n$default-ios-color: rgb(100, 189, 99);\n\n@mixin bootstrap-style-ios($brand-style) {\n border-color: $brand-style;\n background-color: $brand-style;\n box-shadow: $brand-style 0 0 0 16px inset;\n}\n\n@mixin bootstrap-style-android($brand-style) {\n background-color: lighten($brand-style, 10%);\n}\n\n@mixin ios {\n .widget-switch-btn-wrapper {\n &.checked {\n &.widget-switch-btn-wrapper-default {\n @include bootstrap-style-ios($default-ios-color);\n }\n\n &.widget-switch-btn-wrapper-success {\n @include bootstrap-style-ios($brand-success);\n }\n\n &.widget-switch-btn-wrapper-info {\n @include bootstrap-style-ios($brand-info);\n }\n\n &.widget-switch-btn-wrapper-primary {\n @include bootstrap-style-ios($brand-primary);\n }\n\n &.widget-switch-btn-wrapper-warning {\n @include bootstrap-style-ios($brand-warning);\n }\n\n &.widget-switch-btn-wrapper-danger {\n @include bootstrap-style-ios($brand-danger);\n }\n\n &.widget-switch-btn-wrapper-inverse {\n @include bootstrap-style-ios($brand-inverse);\n }\n }\n }\n}\n\n@mixin android {\n .widget-switch-btn-wrapper {\n &.checked {\n &.widget-switch-btn-wrapper-default {\n @include bootstrap-style-android($default-android-color);\n\n .widget-switch-btn {\n background: $default-android-color;\n }\n }\n\n &.widget-switch-btn-wrapper-success {\n @include bootstrap-style-android($brand-success);\n\n .widget-switch-btn {\n background: $brand-success;\n }\n }\n\n &.widget-switch-btn-wrapper-info {\n @include bootstrap-style-android($brand-info);\n\n .widget-switch-btn {\n background: $brand-info;\n }\n }\n\n &.widget-switch-btn-wrapper-primary {\n @include bootstrap-style-android($brand-primary);\n\n .widget-switch-btn {\n background: $brand-primary;\n }\n }\n\n &.widget-switch-btn-wrapper-warning {\n @include bootstrap-style-android($brand-warning);\n\n .widget-switch-btn {\n background: $brand-warning;\n }\n }\n\n &.widget-switch-btn-wrapper-danger {\n @include bootstrap-style-android($brand-danger);\n\n .widget-switch-btn {\n background: $brand-danger;\n }\n }\n\n &.widget-switch-btn-wrapper-inverse {\n @include bootstrap-style-android($brand-inverse);\n\n .widget-switch-btn {\n background: $brand-inverse;\n }\n }\n }\n }\n}\n\n.widget-switch-btn-wrapper {\n &:focus {\n outline: 1px solid $brand-primary;\n }\n}\n\ndiv {\n &.widget-switch {\n &.iOS {\n @include ios;\n }\n\n &.android {\n @include android;\n }\n\n &.auto {\n @include ios;\n }\n }\n}\n\nhtml {\n div {\n &.dj_android {\n .widget-switch {\n &.auto {\n @include android;\n }\n }\n }\n\n &.dj_ios {\n .widget-switch {\n &.auto {\n @include ios;\n }\n }\n }\n }\n}\n","/* ==========================================================================\n Breadcrumbs\n\n========================================================================== */\n.breadcrumb {\n //reset\n margin: 0;\n padding: 0;\n border-radius: 0;\n background-color: transparent;\n font-size: $font-size-default;\n}\n\n//== Elements\n//-------------------------------------------------------------------------------------------------------------------//\n.breadcrumb-item {\n display: inline-block;\n margin: 0;\n &:last-child {\n color: $font-color-default;\n a {\n text-decoration: none;\n }\n }\n}\n.breadcrumb-item + .breadcrumb-item {\n &::before {\n display: inline-block;\n padding-right: 10px;\n padding-left: 10px;\n content: \"/\";\n color: $gray-light;\n }\n}\n\n//== Variations \n//-------------------------------------------------------------------------------------------------------------------//\n.breadcrumb-large {\n font-size: $font-size-h3;\n}\n.breadcrumb-underline {\n padding-bottom: $gutter-size;\n border-bottom: 1px solid $border-color-default;\n}\n","/* ==========================================================================\n Cards\n\n========================================================================== */\n.card {\n padding: 30px;\n border: 1px solid $border-color-default;\n border-radius: $border-radius-default;\n background-color: #FFFFFF;\n}\n\n//== Elements\n//-------------------------------------------------------------------------------------------------------------------//\n.card-title {\n margin-top: 0;\n}\n\n//== Variations\n//-------------------------------------------------------------------------------------------------------------------//\n.cardaction {\n .card-image {\n .glyphicon {\n font-size: 58px;\n }\n }\n}\n\n.cardmetrics {\n .card-title {\n margin-bottom: 0;\n }\n\n .figurecontent {\n }\n\n .card-image {\n width: 100px;\n height: auto;\n // If btn\n &.btn {\n width: 100px;\n height: 100px;\n padding: 0;\n cursor: default;\n pointer-events: none;\n font-size: 40px;\n }\n }\n\n .card-counter {\n margin: 0;\n font-size: 64px;\n }\n\n .card-morebutton {\n }\n}\n\n.cardinfo {\n .card-text {\n margin-bottom: $spacing-large;\n }\n}\n\n// Used in card info\n.textwithicon {\n overflow: hidden;\n max-width: 100%;\n margin-bottom: 15px;\n text-overflow: ellipsis;\n\n .textwithicon-icon,\n .textwithicon-text {\n display: inline-block;\n vertical-align: middle;\n }\n\n .textwithicon-icon {\n margin-right: 15px;\n padding: 0;\n color: $brand-primary; // class .text-primary\n border: 0;\n background: transparent;\n font-size: 23px;\n }\n\n .textwithicon-text {\n }\n}\n\n// Used in card info\n.socialprofiles {\n .socialprofiles-title {\n display: block;\n margin-bottom: 10px;\n font-weight: bold; // class text-bold\n }\n\n .socialprofiles-button {\n width: 24px;\n height: 24px;\n margin-right: 15px;\n padding: 0;\n border-radius: 24px;\n\n .glyphicon {\n margin: 0;\n }\n }\n}\n\n\n.cardtabs {\n padding: 0;\n}\n\n.cardtabs-tabs {\n margin: 0;\n\n ul.mx-tabcontainer-tabs {\n display: flex;\n margin: 0;\n background-color: mix($tabs-border-color, #FFFFFF, 20%);\n\n li {\n flex: 1 1 auto;\n text-align: center;\n\n a,\n a:hover,\n a:focus {\n border-top-width: 0;\n border-right-width: 1px;\n border-left-width: 0;\n }\n\n &:first-child a {\n border-radius: $border-radius-default 0 0 0;\n }\n\n &:last-child a {\n border-radius: 0 $border-radius-default 0 0;\n }\n }\n }\n\n .mx-tabcontainer-pane {\n @include get-responsive-spacing-large($type: padding, $direction: all);\n }\n}\n\n.carduser {\n .card-controls {\n }\n\n .card-title {\n }\n\n .card-detail {\n }\n}\n\n.cardgraph {\n .card-title {\n }\n}\n\n.cardchart {\n .card-title {\n }\n}\n\n.cardproduct {\n padding: 0;\n\n}\n\n.cardproduct-header {\n position: relative;\n overflow: hidden;\n height: 200px;\n\n .card-image {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: auto;\n }\n\n}\n\n.cardproduct-overlay {\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n padding: 20px 30px;\n background: rgba(0, 0, 0, 0.60);\n\n}\n\n.cardproduct-overlay-category,\n.cardproduct-overlay-title {\n margin: 0;\n color: #FFFFFF;\n}\n\n.cardproduct-footer .col {\n padding: 20px 30px;\n\n .widget-star-rating-font {\n font-size: 20px;\n }\n}\n\n.cardproduct-name {\n margin: 0;\n}\n\n.cardproduct-btn {\n display: flex;\n align-items: center;\n height: 100%;\n padding: 30px;\n border-left: 1px solid $border-color-default;\n}\n\n.cardproduct2 {\n @extend .cardproduct;\n\n .cardproduct-header {\n &::after {\n position: absolute;\n bottom: 0;\n left: 0;\n display: block;\n width: 100%;\n padding: 20px 30px;\n content: \"\";\n background: rgba(0, 0, 0, 0.60);\n background: -moz-linear-gradient(top, rgba(255, 255, 255, 0) 0%, rgba(250, 250, 250, 0) 2%, rgba(0, 0, 0, 0.99) 99%, rgba(0, 0, 0, 1) 100%);\n background: -webkit-linear-gradient(top, rgba(255, 255, 255, 0) 0%, rgba(250, 250, 250, 0) 2%, rgba(0, 0, 0, 0.99) 99%, rgba(0, 0, 0, 1) 100%);\n background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(250, 250, 250, 0) 2%, rgba(0, 0, 0, 0.99) 99%, rgba(0, 0, 0, 1) 100%);\n }\n }\n}\n\n\n.cardproduct3 {\n @extend .cardproduct;\n\n .cardproduct-header {\n height: 320px;\n\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n\n }\n\n .cardproduct-overlay {\n min-height: 100px;\n padding: 30px;\n background: -moz-linear-gradient(top, rgba(255, 255, 255, 0) 0%, rgba(250, 250, 250, 0) 8%, rgba(0, 0, 0, 0.99) 121%, rgba(0, 0, 0, 1) 100%);\n background: -webkit-linear-gradient(top, rgba(255, 255, 255, 0) 0%, rgba(250, 250, 250, 0) 8%, rgba(0, 0, 0, 0.99) 121%, rgba(0, 0, 0, 1) 100%);\n background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(250, 250, 250, 0) 8%, rgba(0, 0, 0, 0.99) 121%, rgba(0, 0, 0, 1) 100%);\n font-size: $font-size-default;\n }\n}\n\n.cardshopping {\n}\n\n.carduserlist {\n}\n\n.cardstatus {\n padding: 20px;\n\n .card-linkicon {\n font-size: 30px;\n }\n\n .cardstatus-status {\n margin-bottom: 5px;\n }\n}\n\n.cardpayment {\n}\n\n.cardprogress {\n}\n\n.cardprogress-state {\n width: 80px;\n height: 80px;\n padding: 0;\n cursor: default;\n pointer-events: none;\n border-radius: 100%;\n font-size: 28px;\n}\n\n.cardhighlight {\n border-top: 4px solid $brand-primary;\n}\n\n.cardchat {\n overflow: hidden;\n padding: 0;\n\n .chat {\n height: 400px;\n }\n}\n\n@media screen and (max-width: $screen-md-max) {\n .widget-charts:not([height]),\n .widget-charts-line:not([height]) {\n padding-bottom: 80% !important;\n }\n}\n\n\n@media screen and (max-width: $screen-lg-max) {\n .cardprogress {\n .cardprogress-state {\n width: 60px;\n height: 60px;\n font-size: 24px;\n }\n }\n}\n","/* ==========================================================================\n Chats\n\n========================================================================== */\n.chat {\n display: flex;\n flex-direction: column;\n height: 100%;\n background-color: $bg-color-secondary;\n}\n\n//== Elements\n//-------------------------------------------------------------------------------------------------------------------//\n.chat-content {\n display: flex;\n overflow: auto;\n flex: 1;\n flex-direction: column;\n justify-content: flex-end;\n\n .chat-list {\n position: relative;\n overflow: auto;\n\n ul {\n display: flex;\n flex-direction: column-reverse;\n margin-bottom: $m-spacing-large;\n }\n\n li {\n padding: 15px 30px;\n animation: fadeIn 0.2s;\n background-color: transparent;\n animation-fill-mode: both;\n\n &,\n &:last-child {\n border: 0;\n }\n }\n\n .mx-listview-loadMore {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n display: block;\n width: 50%;\n margin: 15px auto;\n color: #FFFFFF;\n background-color: $brand-primary;\n box-shadow: 0 2px 20px 0 rgba(0, 0, 0, 0.05);\n }\n }\n}\n\n\n.chat-message {\n display: flex;\n}\n\n.chat-avatar {\n margin: 0 20px 0 0;\n border-radius: 50%;\n}\n\n.chat-message-content {\n display: inline-flex;\n flex-direction: column;\n}\n\n.chat-message-balloon {\n position: relative;\n display: flex;\n flex-direction: column;\n padding: 10px 15px;\n border-radius: 5px;\n background-color: $bg-color;\n\n &::after {\n position: absolute;\n top: 10px;\n right: 100%;\n width: 0;\n height: 0;\n content: '';\n border: 10px solid transparent;\n border-top: 0;\n border-right-color: $bg-color;\n border-left: 0;\n }\n}\n\n.chat-message-time {\n padding-top: 2px;\n\n .form-control-static {\n border: 0;\n }\n}\n\n.chat-footer {\n z-index: 1;\n padding: $m-spacing-large;\n background-color: $bg-color;\n box-shadow: 0 2px 20px 0 rgba(0, 0, 0, 0.05);\n}\n\n.chat-input {\n display: flex;\n\n .chat-textbox {\n flex: 1;\n margin-right: $spacing-large;\n margin-bottom: 0;\n\n .form-control {\n border: 0;\n }\n }\n}\n\n//== Variations\n//-------------------------------------------------------------------------------------------------------------------//\n.chat-message-self {\n justify-content: flex-end;\n\n .chat-avatar {\n margin: 0 0 0 20px;\n }\n\n .chat-message-balloon {\n background-color: $color-primary-lighter;\n\n &::after {\n left: 100%;\n border: 10px solid transparent;\n border-top: 0;\n border-right: 0;\n border-left-color: $color-primary-lighter;\n }\n }\n\n .chat-message-time {\n text-align: right;\n }\n}\n","/* ==========================================================================\n Control Group\n \n A group of buttons next to eachother\n========================================================================== */\n.controlgroup {\n .btn,\n .btn-group {\n margin-right: $spacing-small;\n margin-bottom: $spacing-small;\n\n &:last-child {\n margin-right: 0;\n }\n .btn {\n margin-right: 0;\n margin-bottom: 0;\n }\n }\n .btn-group {\n .btn + .btn {\n margin-left: -1px;\n }\n }\n}\n","/* ==========================================================================\n Full page blocks\n\n Blocks that take up the full width and height\n========================================================================== */\n\n.fullpageblock {\n position: relative;\n height: 100%;\n min-height: 100%;\n\n // Helper to make it fullheight\n .fullheight {\n height: 100% !important;\n\n & > .mx-dataview-content {\n height: inherit !important;\n }\n }\n\n .fullpage-overlay {\n position: absolute;\n z-index: 10;\n bottom: 0;\n left: 0;\n width: 100%;\n }\n}\n","/* ==========================================================================\n Pageheader\n========================================================================== */\n\n//== Default\n//-------------------------------------------------------------------------------------------------------------------//\n.pageheader {\n border-bottom: 1px solid $border-color-default;\n background: $header-bg-color;\n}\n\n// Check if it is part of a inner layoutgrid\n.mx-scrollcontainer .mx-placeholder .mx-layoutgrid .pageheader {\n @include get-responsive-spacing-large($type: margin, $direction: bottom);\n @include get-responsive-spacing-large($type: padding, $direction: bottom);\n background: transparent;\n}\n\n//== Elements\n//-------------------------------------------------------------------------------------------------------------------//\n.pageheader-type {\n margin: 0;\n}\n\n.pageheader-title {\n margin: 0;\n}\n\n.pageheader-subtitle {\n margin: 0;\n}\n\n//== Variations\n//-------------------------------------------------------------------------------------------------------------------//\n.pageheaderwithcontrols {\n .controlgroup {\n }\n}\n\n.pageheaderwithimage {\n .pageheader-image {\n }\n .figurecontent {\n }\n}\n\n.pageheaderwithimageandcontrols {\n}\n\n.pageheaderwithsearch {\n .pageheader-title {\n margin-bottom: 1em;\n }\n}\n\n.pageheaderwithbreadcrumb {\n .breadcrumb {\n }\n}\n","/* ==========================================================================\n Pageheader\n\n========================================================================== */\n.heroheader {\n border-bottom: 1px solid $border-color-default;\n background: $header-bg-color;\n}\n\n//== Elements\n//-------------------------------------------------------------------------------------------------------------------//\n.heroheader-title {\n margin: 0 0 10px 0;\n}\n\n.heroheader-subtitle {\n margin: 0;\n padding: 0 15px;\n\n &::before {\n display: block;\n max-width: 330px;\n height: 1px;\n margin: auto auto 10px auto;\n content: \"\";\n background-color: lighten($border-color-default, 4);\n }\n}\n\n//== Variations\n//-------------------------------------------------------------------------------------------------------------------//\n.heroheader1 {\n background-image: $brand-gradient;\n\n .heroheader-title {\n margin-bottom: 10px;\n color: #FFFFFF;\n }\n\n .heroheader-subtitle {\n padding: 0;\n color: #FFFFFF;\n\n &::before {\n display: none;\n }\n }\n}\n\n.heroheadermap {\n padding: 0 !important;\n}\n\n.heroheadermap-controls {\n padding: $spacing-large;\n background: $header-bg-color;\n}\n\n.heroheaderproduct {\n position: relative;\n overflow: hidden;\n height: 300px;\n background-color: #000000;\n\n .heroheaderproduct-backgroundimage {\n position: absolute;\n z-index: 0;\n top: 0;\n width: 100%;\n opacity: 0.7;\n filter: blur(5px);\n }\n\n .heroheaderproduct-overlay {\n position: absolute;\n z-index: 1;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n}\n\n.heroheaderexpense {\n .heroheaderexpense-title {\n font-size: 72px;\n }\n\n .heroheaderexpense-type {\n align-items: center;\n\n &::before {\n flex-grow: 1;\n height: 1px;\n margin-right: 10px;\n content: \"\";\n background-color: #D2D2D2;\n }\n }\n}\n","/* ==========================================================================\n Form Block\n\n Used in default forms\n========================================================================== */\n.formblock {\n}\n\n//== Elements\n//-------------------------------------------------------------------------------------------------------------------//\n.formblock-title {\n margin-bottom: $gutter-size;\n padding-bottom: $gutter-size;\n border-bottom: 1px solid $border-color-default;\n}\n","/* ==========================================================================\n Master Detail\n\n A list with a listening dataview\n========================================================================== */\n.masterdetail {\n .masterdetail-master {\n .controlgroup {\n margin-bottom: $gutter-size;\n }\n\n @media (max-width: $screen-lg) {\n @include layout-spacing($type: margin, $direction: bottom, $device: responsive);\n }\n\n @media (min-width: $screen-lg) {\n border-right: 1px solid $border-color-default;\n\n .mx-listview-searchbar {\n margin: $gutter-size;\n }\n .controlgroup {\n padding: $gutter-size;\n border-bottom: 1px solid $border-color-default;\n }\n }\n }\n\n .masterdetail-detail {\n @media (min-width: $screen-lg) {\n @include layout-spacing($type: padding, $direction: all, $device: responsive);\n }\n }\n}\n\n//== Variations\n//-------------------------------------------------------------------------------------------------------------------//\n.masterdetailvertical {\n .masterdetail-master {\n @include layout-spacing($type: margin, $direction: bottom, $device: responsive);\n }\n\n .masterdetail-detail {\n @include layout-spacing($type: padding, $direction: top, $device: responsive);\n }\n}\n","/* ==========================================================================\n User profile blocks\n -\n========================================================================== */\n.userprofile {\n .userprofile-img {\n }\n .userprofile-title {\n }\n .userprofile-subtitle {\n }\n}","$wizard-step-number-size: 60px;\n$wizard-step-height: 50px;\n\n.wizard {\n display: flex;\n justify-content: space-between;\n .wizard-step {\n position: relative;\n width: 100%;\n text-align: center;\n &::before {\n position: absolute;\n z-index: -1;\n top: $wizard-step-number-size / 2;\n display: block;\n width: 100%;\n height: 2px;\n content: \"\";\n background-color: $border-color-default;\n }\n .wizard-step-number {\n width: $wizard-step-number-size;\n height: $wizard-step-number-size;\n border-color: $border-color-default;\n border-radius: 50%;\n background-color: #FFFFFF;\n font-size: 20px;\n }\n .wizard-step-text {\n display: block;\n margin-top: 15px;\n }\n }\n\n\n // States\n .wizard-step-active {\n .wizard-step-number {\n color: #FFFFFF;\n border-color: $brand-primary;\n background-color: $brand-primary;\n }\n .wizard-step-text {\n color: $brand-primary;\n }\n }\n .wizard-step-visited {\n .wizard-step-number {\n color: #FFFFFF;\n border-color: $brand-success;\n background-color: $brand-success;\n }\n .wizard-step-text {\n }\n }\n}\n\n.wizardprogress {\n display: flex;\n justify-content: space-between;\n\n .wizard-step-text {\n width: 100%;\n }\n\n .wizard-step {\n position: relative;\n width: 100%;\n height: $wizard-step-height;\n margin-left: 0 - ($wizard-step-height / 2);\n padding-left: ($wizard-step-height / 2);\n border: 1px solid $border-color-default;\n background: #FFFFFF;\n\n a {\n display: block;\n overflow: hidden;\n width: 100%;\n height: 100%;\n padding: 14px;\n white-space: nowrap;\n text-decoration: none;\n text-overflow: ellipsis;\n color: $font-color-default;\n }\n &::before,\n &::after {\n position: absolute;\n z-index: 1;\n left: 100%;\n margin-left: 0 - ($wizard-step-height / 2);\n content: \" \";\n border-style: solid;\n border-color: transparent;\n }\n &::after {\n top: 1px;\n border-width: (($wizard-step-height / 2) - 1);\n border-left-color: #FFFFFF;\n }\n &::before {\n top: 0;\n border-width: $wizard-step-height / 2;\n border-left-color: $border-color-default;\n }\n\n &:first-child {\n margin-left: 0;\n padding-left: 0;\n border-radius: 5px 0 0 5px;\n }\n\n &:last-child {\n border-radius: 0 5px 5px 0;\n &::before,\n &::after {\n display: none;\n }\n }\n }\n // States\n .wizard-step-active {\n background: $brand-primary;\n a {\n text-decoration: none;\n color: #FFFFFF;\n }\n &::after {\n border-left-color: $brand-primary;\n }\n }\n .wizard-step-visited {\n a {\n color: $link-color;\n }\n }\n}\n","// Timeline\n.timeline {\n .timeline-header {\n display: inline-block;\n width: 110px;\n padding: 8px;\n text-align: center;\n border: 1px solid $border-color-default;\n border-radius: 30px;\n }\n}\n.timeline-itemwrapper.mx-listview {\n margin-bottom: 0;\n margin-left: 55px;\n padding: $spacing-large 0;\n border-left: 1px solid $border-color-default;\n & > ul > li {\n position: relative;\n padding-left: ($gutter-size * 2);\n\n &::before {\n position: absolute;\n top: 5px;\n left: -5px;\n display: block;\n width: 10px;\n height: 10px;\n content: '';\n border-radius: 50%;\n background-color: $brand-primary;\n }\n }\n li + li {\n margin-top: $spacing-large;\n }\n}\n\n//== Variations\n//-------------------------------------------------------------------------------------------------------------------//\n.timeline2 {\n .timeline-itemwrapper.mx-listview {\n & > ul > li {\n padding-left: $gutter-size;\n }\n }\n}\n","/* ==========================================================================\n Atlas layout\n \n The core stucture of all atlas layouts\n========================================================================== */\n.layout-atlas {\n // Toggle button\n .toggle-btn > .glyphicon {\n margin: 0;\n }\n\n // Sidebar\n .region-sidebar {\n background-color: $navsidebar-bg;\n\n .mx-navigationtree .navbar-inner > ul > li > a {\n padding: 0 15px;\n\n .glyphicon {\n margin-right: 10px;\n }\n }\n .toggle-btn {\n border-color: transparent;\n border-radius: 0;\n background: transparent;\n }\n }\n\n // Topbar\n .region-topbar {\n position: relative;\n z-index: 1; // Show dropshadow\n min-height: $topbar-minimalheight;\n border-bottom: 1px solid $navtopbar-border-color;\n background-color: $navtopbar-bg;\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.14);\n\n &::before {\n z-index: 1;\n display: block;\n width: 100%;\n height: 4px;\n content: \"\";\n background-color: $brand-primary;\n }\n // Topbar Content\n .topbar-content {\n display: flex;\n align-items: center;\n min-height: $topbar-minimalheight;\n }\n\n // Toggle btn\n .toggle-btn {\n margin-right: 15px;\n padding: 5px;\n }\n\n // For your company, product, or project name\n .navbar-brand {\n display: inline-block;\n // reset bootstrap\n float: none;\n height: auto;\n padding: 0;\n line-height: inherit;\n\n img {\n display: inline-block;\n @if $brand-logo !=false {\n width: 0;\n height: 0;\n padding: ($brand-logo-height / 2) ($brand-logo-width / 2);\n background-image: url($brand-logo);\n background-repeat: no-repeat;\n background-position: left center;\n background-size: $brand-logo-width;\n } @else {\n width: auto;\n height: $brand-logo-height;\n }\n }\n\n a {\n margin-left: 5px;\n color: $navbar-brand-name;\n font-size: 20px;\n\n &:hover,\n &:focus {\n text-decoration: none;\n }\n }\n }\n\n .mx-navbar {\n display: inline-block;\n margin-left: $gutter-size;\n vertical-align: middle;\n background: transparent;\n\n & > .mx-navbar-item {\n & > a {\n margin-top: 5px;\n padding: 0 20px;\n }\n }\n }\n }\n}\n","/* ==========================================================================\n Atlas layout\n \n Extra styling for phone layouts\n========================================================================== */\n.layout-atlas-phone {\n .region-topbar {\n min-height: $m-header-height;\n border-style: none;\n background-color: $m-header-bg;\n\n &::before {\n display: none;\n }\n }\n}\n","/* ==========================================================================\n Atlas layout\n\n Extra styling for responsive layouts\n========================================================================== */\n.layout-atlas-responsive-default {\n $sidebar-width: 60px;\n\n @media (min-width: $screen-md) {\n .mx-scrollcontainer:not(.mx-scrollcontainer-open) > .region-sidebar {\n width: $sidebar-width !important;\n\n .mx-scrollcontainer-wrapper > .mx-navigationtree ul li {\n &.mx-navigationtree-has-items:hover {\n a {\n background-color: $navsidebar-sub-bg;\n }\n\n ul {\n position: absolute;\n z-index: 100;\n top: 0;\n bottom: 0;\n left: $sidebar-width;\n display: block;\n overflow-y: auto;\n min-width: 200px;\n padding-top: 10px;\n }\n }\n\n &.mx-navigationtree-collapsed,\n &.mx-navigationtree-has-items {\n ul {\n display: none;\n }\n }\n }\n }\n }\n\n\n .mx-scrollcontainer-slide {\n\n &.mx-scrollcontainer-open > .region-sidebar {\n width: $sidebar-width !important;\n }\n }\n\n // Push aside for mobile\n @media (max-width: $screen-sm-max) {\n .mx-scrollcontainer-open:not(.mx-scrollcontainer-slide) {\n width: 1100px;\n }\n\n .mx-scrollcontainer-slide .toggle-btn {\n display: inline-block !important;\n }\n }\n\n // Sidebar\n .region-sidebar {\n .toggle-btn {\n width: $sidebar-width;\n height: 60px;\n border-color: transparent;\n border-radius: 0;\n background: transparent;\n }\n\n .mx-scrollcontainer-wrapper > .mx-navigationtree {\n .navbar-inner > ul > li {\n & > a {\n height: $sidebar-width;\n // Glyph icon\n .glyphicon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n margin-left: -5px;\n padding: 10px;\n border-radius: 3px;\n }\n\n &.active {\n .glyphicon {\n background: $brand-primary;\n }\n }\n }\n }\n }\n }\n\n // Topbar\n .region-topbar {\n }\n}\n\n// Topbar variant\n.layout-atlas-responsive-topbar {\n .mx-scrollcontainer-slide,\n .mx-scrollcontainer-push {\n &:not(.mx-scrollcontainer-open) > .region-sidebar {\n visibility: hidden;\n }\n }\n}\n\n// All responsive layouts\n.layout-atlas-responsive-default,\n.layout-atlas-responsive-topbar {\n // Topbar\n .region-topbar {\n .toggle-btn {\n display: none;\n\n @media (max-width: $screen-sm-max) {\n display: inline-block;\n }\n }\n }\n\n .mx-scrollcontainer-slide {\n &:not(.mx-scrollcontainer-open) > .region-sidebar {\n overflow: hidden;\n }\n\n &.mx-scrollcontainer-open > .region-sidebar {\n\n & > .mx-scrollcontainer-wrapper {\n position: relative;\n }\n }\n\n .region-sidebar > .mx-scrollcontainer-wrapper {\n z-index: 2;\n background-color: inherit;\n }\n }\n}\n\n// Fix Safari issue of sidebar disappearing\n.profile-tablet {\n .mx-scrollcontainer:not(.mx-scrollcontainer-open) > .region-sidebar {\n overflow-y: hidden;\n\n .mx-scrollcontainer-wrapper {\n overflow: visible;\n }\n }\n}\n","/* ==========================================================================\n Atlas layout\n \n Extra styling for tablet layouts\n========================================================================== */\n.layout-atlas-tablet {\n // tablet\n}\n","@import \"custom-variables\";\n"],"names":[],"mappings":"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K,CNoBuC,IAAO,CMnBnD,YAAY,CNAgC,IAAO,CMCnD,UAAU,CNDkC,IAAO,CMEtD,AsBEL,AtBDI,iBsBCa,CtBDX,iBAAiB,AAAC,CAChB,YAAY,CNJgC,IAAO,CMKtD,AsBGL,AtBVI,iBsBUa,CtBVX,mBAAmB,AAAC,CAClB,KAAK,CL4gB2B,IAAI,CK3gBpC,YAAY,CNCgC,OAAO,CMAnD,UAAU,CNAkC,OAAO,CMCtD,AsBML,AtBLI,iBsBKa,CtBLX,iBAAiB,AAAC,CAChB,YAAY,CNHgC,OAAO,CMItD,AsBOL,AtBdI,iBsBca,CtBdX,mBAAmB,AAAC,CAClB,KAAK,CL2gB2B,IAAI,CK1gBpC,YAAY,CNEgC,OAAO,CMDnD,UAAU,CNCkC,OAAO,CMAtD,AsBUL,AtBTI,iBsBSa,CtBTX,iBAAiB,AAAC,CAChB,YAAY,CNFgC,OAAO,CMGtD,AsBYL,AtBnBI,iBsBmBa,CtBnBX,mBAAmB,AAAC,CAClB,KAAK,CL8gB2B,IAAI,CK7gBpC,YAAY,CNIgC,OAAO,CMHnD,UAAU,CNGkC,OAAO,CMFtD,AsBeL,AtBdI,iBsBca,CtBdX,iBAAiB,AAAC,CAChB,YAAY,CNAgC,OAAO,CMCtD,AsBiBL,AtBxBI,csBwBU,CtBxBR,mBAAmB,AAAC,CAClB,KAAK,CL6gB2B,IAAI,CK5gBpC,YAAY,CNGgC,OAAO,CMFnD,UAAU,CNEkC,OAAO,CMDtD,AsBoBL,AtBnBI,csBmBU,CtBnBR,iBAAiB,AAAC,CAChB,YAAY,CNDgC,OAAO,CMEtD,AsBsBL,AtB7BI,iBsB6Ba,CtB7BX,mBAAmB,AAAC,CAClB,KAAK,CL+gB2B,IAAI,CK9gBpC,YAAY,CNKgC,OAAO,CMJnD,UAAU,CNIkC,OAAO,CMHtD,AsByBL,AtBxBI,iBsBwBa,CtBxBX,iBAAiB,AAAC,CAChB,YAAY,CNCgC,OAAO,CMAtD,AsB2BL,AtBlCI,gBsBkCY,CtBlCV,mBAAmB,AAAC,CAClB,KAAK,CLghB2B,IAAI,CK/gBpC,YAAY,CNMgC,OAAO,CMLnD,UAAU,CNKkC,OAAO,CMJtD,AsB8BL,AtB7BI,gBsB6BY,CtB7BV,iBAAiB,AAAC,CAChB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"} \ No newline at end of file diff --git a/theme/styles/web/sass/app/_custom-variables.scss b/theme/styles/web/sass/app/_custom-variables.scss deleted file mode 100644 index a47c7e0..0000000 --- a/theme/styles/web/sass/app/_custom-variables.scss +++ /dev/null @@ -1,73 +0,0 @@ -//== Gray Shades -//## Different gray shades to be used for our variables and components -$gray-darker: #222222; -$gray-dark: #333333; -$gray: #555555; -$gray-light: #888888; -$gray-primary: #D7D7D7; -$gray-lighter: #EEEEEE; - -//== Step 1: Brand Colors -$brand-default: #DDDDDD; -$brand-primary: #0595DB; -$brand-inverse: #252C36; -$brand-info: #48B0F7; -$brand-success: #76CA02; -$brand-warning: #F99B1D; -$brand-danger: #ED1C24; - -// Used for other variables -$default-border-color: $gray-primary; - -//== Step 3: Typography -$font-family-import: "https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700"; -@if $font-family-import != false { - // Only import, if the import is set - @import url($font-family-import); -} -$font-family-base: "Open Sans", sans-serif; -$font-base-size: 14px; -$font-base-color: #555555; -$link-color: $brand-primary; -$font-size-h1: 31px; -$font-size-h2: 26px; -$font-size-h3: 24px; -$font-size-h4: 18px; -$font-color-detail: $gray-light; -$font-color-headers: #17347B; - -//== Step 2: UI Customization - -// Topbar -$topbar-bg: #FFFFFF; -$navtopbar-border-color: $default-border-color; -$topbar-border-color: $navtopbar-border-color; -$topbar-minimalheight: 60px; -$navtopbar-color: $font-base-color; -$navbar-brand-name: $default-border-color; -$brand-logo: false; -$brand-logo-height: 30px; -$brand-logo-width: 30px; - -// Sidebar -$sidebar-bg: $brand-inverse; -$navsidebar-color: #FFFFFF; -$navsidebar-color-hover: $navsidebar-color; - -// Backgrounds -$bg-color: #FFFFFF; -$bg-color-secondary: #F5F8FD; - -// == Old variables used in theme customizer to the new lib variables -$font-size-default: $font-base-size; -$font-color-default: $font-base-color; -$border-color-default: $default-border-color; -$font-color-header: $font-color-headers; - - -//== Settings -//## Enable or disable your desired framework features -// Use of !important -$important-flex: true; // ./base/flex.scss -$important-spacing: true; // ./base/spacing.scss -$important-helpers: true; // ./helpers/helperclasses.scss diff --git a/theme/styles/web/sass/core/_legacy/_mxui.scss b/theme/styles/web/sass/core/_legacy/_mxui.scss deleted file mode 100644 index a7ad1dd..0000000 --- a/theme/styles/web/sass/core/_legacy/_mxui.scss +++ /dev/null @@ -1,3562 +0,0 @@ -/* @preserve - Copyright (c) 2005-2016, Mendix bv. All rights reserved. - See mxclientsystem/licenses.txt for third party licenses that apply. -*/ - - -/* - Essential styles that themes can inherit. - In other words, works but doesn't look great. -*/ - - - -/**** - GENERIC PIECES - ****/ - - .dijitReset { - /* Use this style to null out padding, margin, border in your template elements - so that page specific styles don't break them. - - Use in all TABLE, TR and TD tags. - */ - margin:0; - border:0; - padding:0; - font: inherit; - line-height:normal; - color: inherit; -} -.dj_a11y .dijitReset { - -moz-appearance: none; /* remove predefined high-contrast styling in Firefox */ -} - -.dijitInline { - /* To inline block elements. - Similar to InlineBox below, but this has fewer side-effects in Moz. - Also, apparently works on a DIV as well as a FIELDSET. - */ - display:inline-block; /* webkit and FF3 */ - border:0; - padding:0; - vertical-align:middle; -} - -table.dijitInline { - /* To inline tables with a given width set */ - display:inline-table; - box-sizing: content-box; -moz-box-sizing: content-box; -} - -.dijitHidden { - /* To hide unselected panes in StackContainer etc. */ - position: absolute; /* remove from normal document flow to simulate display: none */ - visibility: hidden; /* hide element from view, but don't break scrolling, see #18612 */ -} -.dijitHidden * { - visibility: hidden !important; /* hide visibility:visible descendants of class=dijitHidden nodes, see #18799 */ -} - -.dijitVisible { - /* To show selected pane in StackContainer etc. */ - display: block !important; /* override user's display:none setting via style setting or indirectly via class */ - position: relative; /* to support setting width/height, see #2033 */ - visibility: visible; -} - -.dj_ie6 .dijitComboBox .dijitInputContainer, -.dijitInputContainer { - /* for positioning of placeHolder */ - overflow: hidden; - float: none !important; /* needed to squeeze the INPUT in */ - position: relative; -} -.dj_ie7 .dijitInputContainer { - float: left !important; /* needed by IE to squeeze the INPUT in */ - clear: left; - display: inline-block !important; /* to fix wrong text alignment in textdir=rtl text box */ -} - -.dj_ie .dijitSelect input, -.dj_ie input.dijitTextBox, -.dj_ie .dijitTextBox input { - font-size: 100%; -} -.dijitSelect .dijitButtonText { - float: left; - vertical-align: top; -} -TABLE.dijitSelect { - padding: 0 !important; /* messes up border alignment */ - border-collapse: separate; /* so jsfiddle works with Normalized CSS checked */ -} -.dijitTextBox .dijitSpinnerButtonContainer, -.dijitTextBox .dijitArrowButtonContainer, -.dijitValidationTextBox .dijitValidationContainer { - float: right; - text-align: center; -} -.dijitSelect input.dijitInputField, -.dijitTextBox input.dijitInputField { - /* override unreasonable user styling of buttons and icons */ - padding-left: 0 !important; - padding-right: 0 !important; -} -.dijitValidationTextBox .dijitValidationContainer { - display: none; -} - -.dijitTeeny { - font-size:1px; - line-height:1px; -} - -.dijitOffScreen { /* these class attributes should supersede any inline positioning style */ - position: absolute !important; - left: -10000px !important; - top: -10000px !important; -} - -/* - * Popup items have a wrapper div (dijitPopup) - * with the real popup inside, and maybe an iframe too - */ -.dijitPopup { - position: absolute; - background-color: transparent; - margin: 0; - border: 0; - padding: 0; - -webkit-overflow-scrolling: touch; -} - -.dijitPositionOnly { - /* Null out all position-related properties */ - padding: 0 !important; - border: 0 !important; - background-color: transparent !important; - background-image: none !important; - height: auto !important; - width: auto !important; -} - -.dijitNonPositionOnly { - /* Null position-related properties */ - float: none !important; - position: static !important; - margin: 0 0 0 0 !important; - vertical-align: middle !important; -} - -.dijitBackgroundIframe { - /* iframe used to prevent problems with PDF or other applets overlaying menus etc */ - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - z-index: -1; - border: 0; - padding: 0; - margin: 0; -} - -.dijitDisplayNone { - /* hide something. Use this as a class rather than element.style so another class can override */ - display:none !important; -} - -.dijitContainer { - /* for all layout containers */ - overflow: hidden; /* need on IE so something can be reduced in size, and so scrollbars aren't temporarily displayed when resizing */ -} - -/**** - A11Y - ****/ -.dj_a11y .dijitIcon, -.dj_a11y div.dijitArrowButtonInner, /* is this only for Spinner? if so, it should be deleted */ -.dj_a11y span.dijitArrowButtonInner, -.dj_a11y img.dijitArrowButtonInner, -.dj_a11y .dijitCalendarIncrementControl, -.dj_a11y .dijitTreeExpando { - /* hide icon nodes in high contrast mode; when necessary they will be replaced by character equivalents - * exception for input.dijitArrowButtonInner, because the icon and character are controlled by the same node */ - display: none; -} -.dijitSpinner div.dijitArrowButtonInner { - display: block; /* override previous rule */ -} - -.dj_a11y .dijitA11ySideArrow { - display: inline !important; /* display text instead */ - cursor: pointer; -} - -/* - * Since we can't use shading in a11y mode, and since the underline indicates today's date, - * use a border to show the selected date. - * Avoid screen jitter when switching selected date by compensating for the selected node's - * border w/padding on other nodes. - */ -.dj_a11y .dijitCalendarDateLabel { - padding: 1px; - border: 0px !important; -} -.dj_a11y .dijitCalendarSelectedDate .dijitCalendarDateLabel { - border-style: solid !important; - border-width: 1px !important; - padding: 0; -} -.dj_a11y .dijitCalendarDateTemplate { - padding-bottom: 0.1em !important; /* otherwise bottom border doesn't appear on IE */ - border: 0px !important; -} -.dj_a11y .dijitButtonNode { - border: black outset medium !important; - - /* In claro, hovering a toolbar button reduces padding and adds a border. - * Not needed in a11y mode since Toolbar buttons always have a border. - */ - padding: 0 !important; -} -.dj_a11y .dijitArrowButton { - padding: 0 !important; -} - -.dj_a11y .dijitButtonContents { - margin: 0.15em; /* Margin needed to make focus outline visible */ -} - -.dj_a11y .dijitTextBoxReadOnly .dijitInputField, -.dj_a11y .dijitTextBoxReadOnly .dijitButtonNode { - border-style: outset!important; - border-width: medium!important; - border-color: #999 !important; - color:#999 !important; -} - -/* button inner contents - labels, icons etc. */ -.dijitButtonNode * { - vertical-align: middle; -} -.dijitSelect .dijitArrowButtonInner, -.dijitButtonNode .dijitArrowButtonInner { - /* the arrow icon node */ - background: no-repeat center; - width: 12px; - height: 12px; - direction: ltr; /* needed by IE/RTL */ -} - -/**** - 3-element borders: ( dijitLeft + dijitStretch + dijitRight ) - These were added for rounded corners on dijit.form.*Button but never actually used. - ****/ - -.dijitLeft { - /* Left part of a 3-element border */ - background-position:left top; - background-repeat:no-repeat; -} - -.dijitStretch { - /* Middle (stretchy) part of a 3-element border */ - white-space:nowrap; /* MOW: move somewhere else */ - background-repeat:repeat-x; -} - -.dijitRight { - /* Right part of a 3-element border */ - background-position:right top; - background-repeat:no-repeat; -} - -/* Buttons */ -.dj_gecko .dj_a11y .dijitButtonDisabled .dijitButtonNode { - opacity: 0.5; -} - -.dijitToggleButton, -.dijitButton, -.dijitDropDownButton, -.dijitComboButton { - /* outside of button */ - margin: 0.2em; - vertical-align: middle; -} - -.dijitButtonContents { - display: block; /* to make focus border rectangular */ -} -td.dijitButtonContents { - display: table-cell; /* but don't affect Select, ComboButton */ -} - -.dijitButtonNode img { - /* make text and images line up cleanly */ - vertical-align:middle; - /*margin-bottom:.2em;*/ -} - -.dijitToolbar .dijitComboButton { - /* because Toolbar only draws a border around the hovered thing */ - border-collapse: separate; -} - -.dijitToolbar .dijitToggleButton, -.dijitToolbar .dijitButton, -.dijitToolbar .dijitDropDownButton, -.dijitToolbar .dijitComboButton { - margin: 0; -} - -.dijitToolbar .dijitButtonContents { - /* just because it used to be this way */ - padding: 1px 2px; -} - - -.dj_webkit .dijitToolbar .dijitDropDownButton { - padding-left: 0.3em; -} -.dj_gecko .dijitToolbar .dijitButtonNode::-moz-focus-inner { - padding:0; -} - -.dijitSelect { - border:1px solid gray; -} -.dijitButtonNode { - /* Node that is acting as a button -- may or may not be a BUTTON element */ - border:1px solid gray; - margin:0; - line-height:normal; - vertical-align: middle; - text-align:center; - white-space: nowrap; -} -.dj_webkit .dijitSpinner .dijitSpinnerButtonContainer { - /* apparent WebKit bug where messing with the font coupled with line-height:normal X 2 (dijitReset & dijitButtonNode) - can be different than just a single line-height:normal, visible in InlineEditBox/Spinner */ - line-height:inherit; -} -.dijitTextBox .dijitButtonNode { - border-width: 0; -} - -.dijitSelect, -.dijitSelect *, -.dijitButtonNode, -.dijitButtonNode * { - cursor: pointer; - -webkit-tap-highlight-color: transparent; -} - -.dj_ie .dijitButtonNode { - /* ensure hasLayout */ - zoom: 1; -} - -.dj_ie .dijitButtonNode button { - /* - disgusting hack to get rid of spurious padding around button elements - on IE. MSIE is truly the web's boat anchor. - */ - overflow: visible; -} - -div.dijitArrowButton { - float: right; -} - -/****** - TextBox related. - Everything that has an -*******/ - -.dijitTextBox { - border: solid black 1px; - width: 15em; /* need to set default size on outer node since inner nodes say and
    . user can override */ - vertical-align: middle; -} - -.dijitTextBoxReadOnly, -.dijitTextBoxDisabled { - color: gray; -} -.dj_safari .dijitTextBoxDisabled input { - color: #B0B0B0; /* because Safari lightens disabled input/textarea no matter what color you specify */ -} -.dj_safari textarea.dijitTextAreaDisabled { - color: #333; /* because Safari lightens disabled input/textarea no matter what color you specify */ -} -.dj_gecko .dijitTextBoxReadOnly input.dijitInputField, /* disable arrow and validation presentation inputs but allow real input for text selection */ -.dj_gecko .dijitTextBoxDisabled input { - -moz-user-input: none; /* prevent focus of disabled textbox buttons */ -} - -.dijitPlaceHolder { - /* hint text that appears in a textbox until user starts typing */ - color: #AAAAAA; - font-style: italic; - position: absolute; - top: 0; - left: 0; - white-space: nowrap; - pointer-events: none; /* so cut/paste context menu shows up when right clicking */ -} - -.dijitTimeTextBox { - width: 8em; -} - -/* rules for webkit to deal with fuzzy blue focus border */ -.dijitTextBox input:focus { - outline: none; /* blue fuzzy line looks wrong on combobox or something w/validation icon showing */ -} -.dijitTextBoxFocused { - outline: 5px -webkit-focus-ring-color; -} - -.dijitSelect input, -.dijitTextBox input { - float: left; /* needed by IE to remove secret margin */ -} -.dj_ie6 input.dijitTextBox, -.dj_ie6 .dijitTextBox input { - float: none; -} -.dijitInputInner { - /* for when an is embedded inside an inline-block
    with a size and border */ - border:0 !important; - background-color:transparent !important; - width:100% !important; - /* IE dislikes horizontal tweaking combined with width:100% so punish everyone for consistency */ - padding-left: 0 !important; - padding-right: 0 !important; - margin-left: 0 !important; - margin-right: 0 !important; -} -.dj_a11y .dijitTextBox input { - margin: 0 !important; -} -.dijitValidationTextBoxError input.dijitValidationInner, -.dijitSelect input, -.dijitTextBox input.dijitArrowButtonInner { - /* used to display arrow icon/validation icon, or in arrow character in high contrast mode. - * The css below is a trick to hide the character in non-high-contrast mode - */ - text-indent: -2em !important; - direction: ltr !important; - text-align: left !important; - height: auto !important; -} -.dj_ie .dijitSelect input, -.dj_ie .dijitTextBox input, -.dj_ie input.dijitTextBox { - overflow-y: visible; /* inputs need help expanding when padding is added or line-height is adjusted */ - line-height: normal; /* strict mode */ -} -.dijitSelect .dijitSelectLabel span { - line-height: 100%; -} -.dj_ie .dijitSelect .dijitSelectLabel { - line-height: normal; -} -.dj_ie6 .dijitSelect .dijitSelectLabel, -.dj_ie7 .dijitSelect .dijitSelectLabel, -.dj_ie8 .dijitSelect .dijitSelectLabel, -.dj_iequirks .dijitSelect .dijitSelectLabel, -.dijitSelect td, -.dj_ie6 .dijitSelect input, -.dj_iequirks .dijitSelect input, -.dj_ie6 .dijitSelect .dijitValidationContainer, -.dj_ie6 .dijitTextBox input, -.dj_ie6 input.dijitTextBox, -.dj_iequirks .dijitTextBox input.dijitValidationInner, -.dj_iequirks .dijitTextBox input.dijitArrowButtonInner, -.dj_iequirks .dijitTextBox input.dijitSpinnerButtonInner, -.dj_iequirks .dijitTextBox input.dijitInputInner, -.dj_iequirks input.dijitTextBox { - line-height: 100%; /* IE7 problem where the icon is vertically way too low w/o this */ -} -.dj_a11y input.dijitValidationInner, -.dj_a11y input.dijitArrowButtonInner { - /* (in high contrast mode) revert rules from above so character displays */ - text-indent: 0 !important; - width: 1em !important; - color: black !important; -} -.dijitValidationTextBoxError .dijitValidationContainer { - display: inline; - cursor: default; -} - -/* ComboBox & Spinner */ - -.dijitSpinner .dijitSpinnerButtonContainer, -.dijitComboBox .dijitArrowButtonContainer { - /* dividing line between input area and up/down button(s) for ComboBox and Spinner */ - border-width: 0 0 0 1px !important; /* !important needed due to wayward ".theme .dijitButtonNode" rules */ -} -.dj_a11y .dijitSelect .dijitArrowButtonContainer, -.dijitToolbar .dijitComboBox .dijitArrowButtonContainer { - /* overrides above rule plus mirror-image rule in dijit_rtl.css to have no divider when ComboBox in Toolbar */ - border-width: 0 !important; -} - -.dijitComboBoxMenu { - /* Drop down menu is implemented as
    • ... but we don't want circles before each item */ - list-style-type: none; -} -.dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode { - /* dividing line between input area and up/down button(s) for ComboBox and Spinner */ - border-width: 0; -} -.dj_ie .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode { - clear: both; /* IE workaround */ -} - -.dj_ie .dijitToolbar .dijitComboBox { - /* make combobox buttons align properly with other buttons in a toolbar */ - vertical-align: middle; -} - -/* Spinner */ - -.dijitTextBox .dijitSpinnerButtonContainer { - width: 1em; - position: relative !important; - overflow: hidden; -} -.dijitSpinner .dijitSpinnerButtonInner { - width:1em; - visibility:hidden !important; /* just a sizing element */ - overflow-x:hidden; -} -.dijitComboBox .dijitButtonNode, -.dijitSpinnerButtonContainer .dijitButtonNode { - border-width: 0; -} -.dj_a11y .dijitSpinnerButtonContainer .dijitButtonNode { - border-width: 0px !important; - border-style: solid !important; -} -.dj_a11y .dijitTextBox .dijitSpinnerButtonContainer, -.dj_a11y .dijitSpinner .dijitArrowButtonInner, -.dj_a11y .dijitSpinnerButtonContainer input { - width: 1em !important; -} -.dj_a11y .dijitSpinner .dijitArrowButtonInner { - margin: 0 auto !important; /* should auto-center */ -} -.dj_ie .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { - padding-left: 0.3em !important; - padding-right: 0.3em !important; - margin-left: 0.3em !important; - margin-right: 0.3em !important; - width: 1.4em !important; -} -.dj_ie7 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { - padding-left: 0 !important; /* manually center INPUT: character is .5em and total width = 1em */ - padding-right: 0 !important; - width: 1em !important; -} -.dj_ie6 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { - margin-left: 0.1em !important; - margin-right: 0.1em !important; - width: 1em !important; -} -.dj_iequirks .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { - margin-left: 0 !important; - margin-right: 0 !important; - width: 2em !important; -} -.dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton { - /* note: .dijitInputLayoutContainer makes this rule override .dijitArrowButton settings - * for dijit.form.Button - */ - padding: 0; - position: absolute !important; - right: 0; - float: none; - height: 50%; - width: 100%; - bottom: auto; - left: 0; - right: auto; -} -.dj_iequirks .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton { - width: auto; -} -.dj_a11y .dijitSpinnerButtonContainer .dijitArrowButton { - overflow: visible !important; -} -.dijitSpinner .dijitSpinnerButtonContainer .dijitDownArrowButton { - top: 50%; - border-top-width: 1px !important; -} -.dijitSpinner .dijitSpinnerButtonContainer .dijitUpArrowButton { - top: 0; -} -.dijitSpinner .dijitArrowButtonInner { - margin: auto; - overflow-x: hidden; - height: 100% !important; -} -.dj_iequirks .dijitSpinner .dijitArrowButtonInner { - height: auto !important; -} -.dijitSpinner .dijitArrowButtonInner .dijitInputField { - -moz-transform: scale(0.5); - -moz-transform-origin: center top; - -webkit-transform: scale(0.5); - -webkit-transform-origin: center top; - -o-transform: scale(0.5); - -o-transform-origin: center top; - transform: scale(0.5); - transform-origin: left top; - padding-top: 0; - padding-bottom: 0; - padding-left: 0 !important; - padding-right: 0 !important; - width: 100%; - visibility: hidden; -} -.dj_ie .dijitSpinner .dijitArrowButtonInner .dijitInputField { - zoom: 50%; /* emulate transform: scale(0.5) */ -} -.dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButtonInner { - overflow: hidden; -} - -.dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton { - width: 100%; -} -.dj_iequirks .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton { - width: 1em; /* matches .dj_a11y .dijitTextBox .dijitSpinnerButtonContainer rule - 100% is the whole screen width in quirks */ -} -.dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { - vertical-align:top; - visibility: visible; -} -.dj_a11y .dijitSpinnerButtonContainer { - width: 1em; -} - -/**** - dijit.form.CheckBox - & - dijit.form.RadioButton - ****/ - -.dijitCheckBox, -.dijitRadio, -.dijitCheckBoxInput { - padding: 0; - border: 0; - width: 16px; - height: 16px; - background-position:center center; - background-repeat:no-repeat; - overflow: hidden; -} - -.dijitCheckBox input, -.dijitRadio input { - margin: 0; - padding: 0; - display: block; -} - -.dijitCheckBoxInput { - /* place the actual input on top, but invisible */ - opacity: 0; -} - -.dj_ie .dijitCheckBoxInput { - filter: alpha(opacity=0); -} - -.dj_a11y .dijitCheckBox, -.dj_a11y .dijitRadio { - /* in a11y mode we display the native checkbox (not the icon), so don't restrict the size */ - width: auto !important; - height: auto !important; -} -.dj_a11y .dijitCheckBoxInput { - opacity: 1; - filter: none; - width: auto; - height: auto; -} - -.dj_a11y .dijitFocusedLabel { - /* for checkboxes or radio buttons in high contrast mode, use border rather than outline to indicate focus (outline does not work in FF)*/ - border: 1px dotted; - outline: 0px !important; -} - -/**** - dijit.ProgressBar - ****/ - -.dijitProgressBar { - z-index: 0; /* so z-index settings below have no effect outside of the ProgressBar */ -} -.dijitProgressBarEmpty { - /* outer container and background of the bar that's not finished yet*/ - position:relative;overflow:hidden; - border:1px solid black; /* a11y: border necessary for high-contrast mode */ - z-index:0; /* establish a stacking context for this progress bar */ -} - -.dijitProgressBarFull { - /* outer container for background of bar that is finished */ - position:absolute; - overflow:hidden; - z-index:-1; - top:0; - width:100%; -} -.dj_ie6 .dijitProgressBarFull { - height:1.6em; -} - -.dijitProgressBarTile { - /* inner container for finished portion */ - position:absolute; - overflow:hidden; - top:0; - left:0; - bottom:0; - right:0; - margin:0; - padding:0; - width: 100%; /* needed for IE/quirks */ - height:auto; - background-color:#aaa; - background-attachment: fixed; -} - -.dj_a11y .dijitProgressBarTile { - /* a11y: The border provides visibility in high-contrast mode */ - border-width:2px; - border-style:solid; - background-color:transparent !important; -} - -.dj_ie6 .dijitProgressBarTile { - /* width:auto works in IE6 with position:static but not position:absolute */ - position:static; - /* height:auto or 100% does not work in IE6 */ - height:1.6em; -} - -.dijitProgressBarIndeterminate .dijitProgressBarTile { - /* animated gif for 'indeterminate' mode */ -} - -.dijitProgressBarIndeterminateHighContrastImage { - display:none; -} - -.dj_a11y .dijitProgressBarIndeterminate .dijitProgressBarIndeterminateHighContrastImage { - display:block; - position:absolute; - top:0; - bottom:0; - margin:0; - padding:0; - width:100%; - height:auto; -} - -.dijitProgressBarLabel { - display:block; - position:static; - width:100%; - text-align:center; - background-color:transparent !important; -} - -/**** - dijit.Tooltip - ****/ - -.dijitTooltip { - position: absolute; - z-index: 2000; - display: block; - /* make visible but off screen */ - left: 0; - top: -10000px; - overflow: visible; -} - -.dijitTooltipContainer { - border: solid black 2px; - background: #b8b5b5; - color: black; - font-size: small; -} - -.dijitTooltipFocusNode { - padding: 2px 2px 2px 2px; -} - -.dijitTooltipConnector { - position: absolute; -} -.dj_a11y .dijitTooltipConnector { - display: none; /* won't show b/c it's background-image; hide to avoid border gap */ -} - -.dijitTooltipData { - display:none; -} - -/* Layout widgets. This is essential CSS to make layout work (it isn't "styling" CSS) - make sure that the position:absolute in dijitAlign* overrides other classes */ - -.dijitLayoutContainer { - position: relative; - display: block; - overflow: hidden; -} - -.dijitAlignTop, -.dijitAlignBottom, -.dijitAlignLeft, -.dijitAlignRight { - position: absolute; - overflow: hidden; -} - -body .dijitAlignClient { position: absolute; } - -/* - * BorderContainer - * - * .dijitBorderContainer is a stylized layout where panes have border and margin. - * .dijitBorderContainerNoGutter is a raw layout. - */ -.dijitBorderContainer, .dijitBorderContainerNoGutter { - position:relative; - overflow: hidden; - z-index: 0; /* so z-index settings below have no effect outside of the BorderContainer */ -} - -.dijitBorderContainerPane, -.dijitBorderContainerNoGutterPane { - position: absolute !important; /* !important to override position:relative in dijitTabContainer etc. */ - z-index: 2; /* above the splitters so that off-by-one browser errors don't cover up border of pane */ -} - -.dijitBorderContainer > .dijitTextArea { - /* On Safari, for SimpleTextArea inside a BorderContainer, - don't want to display the grip to resize */ - resize: none; -} - -.dijitGutter { - /* gutter is just a place holder for empty space between panes in BorderContainer */ - position: absolute; - font-size: 1px; /* needed by IE6 even though div is empty, otherwise goes to 15px */ -} - -/* SplitContainer - - 'V' == container that splits vertically (up/down) - 'H' = horizontal (left/right) -*/ - -.dijitSplitter { - position: absolute; - overflow: hidden; - z-index: 10; /* above the panes so that splitter focus is visible on FF, see #7583*/ - background-color: #fff; - border-color: gray; - border-style: solid; - border-width: 0; -} -.dj_ie .dijitSplitter { - z-index: 1; /* behind the panes so that pane borders aren't obscured see test_Gui.html/[14392] */ -} - -.dijitSplitterActive { - z-index: 11 !important; -} - -.dijitSplitterCover { - position:absolute; - z-index:-1; - top:0; - left:0; - width:100%; - height:100%; -} - -.dijitSplitterCoverActive { - z-index:3 !important; -} - -/* #6945: stop mouse events */ -.dj_ie .dijitSplitterCover { - background: white; - opacity: 0; -} -.dj_ie6 .dijitSplitterCover, -.dj_ie7 .dijitSplitterCover, -.dj_ie8 .dijitSplitterCover { - filter: alpha(opacity=0); -} - -.dijitSplitterH { - height: 7px; - border-top:1px; - border-bottom:1px; - cursor: row-resize; - -webkit-tap-highlight-color: transparent; -} -.dijitSplitterV { - width: 7px; - border-left:1px; - border-right:1px; - cursor: col-resize; - -webkit-tap-highlight-color: transparent; -} -.dijitSplitContainer { - position: relative; - overflow: hidden; - display: block; -} - -.dijitSplitPane { - position: absolute; -} - -.dijitSplitContainerSizerH, -.dijitSplitContainerSizerV { - position:absolute; - font-size: 1px; - background-color: ThreeDFace; - border: 1px solid; - border-color: ThreeDHighlight ThreeDShadow ThreeDShadow ThreeDHighlight; - margin: 0; -} - -.dijitSplitContainerSizerH .thumb, .dijitSplitterV .dijitSplitterThumb { - overflow:hidden; - position:absolute; - top:49%; -} - -.dijitSplitContainerSizerV .thumb, .dijitSplitterH .dijitSplitterThumb { - position:absolute; - left:49%; -} - -.dijitSplitterShadow, -.dijitSplitContainerVirtualSizerH, -.dijitSplitContainerVirtualSizerV { - font-size: 1px; - background-color: ThreeDShadow; - -moz-opacity: 0.5; - opacity: 0.5; - filter: Alpha(Opacity=50); - margin: 0; -} - -.dijitSplitContainerSizerH, .dijitSplitContainerVirtualSizerH { - cursor: col-resize; -} - -.dijitSplitContainerSizerV, .dijitSplitContainerVirtualSizerV { - cursor: row-resize; -} - -.dj_a11y .dijitSplitterH { - border-top:1px solid #d3d3d3 !important; - border-bottom:1px solid #d3d3d3 !important; -} -.dj_a11y .dijitSplitterV { - border-left:1px solid #d3d3d3 !important; - border-right:1px solid #d3d3d3 !important; -} - -/* ContentPane */ - -.dijitContentPane { - display: block; - overflow: auto; /* if we don't have this (or overflow:hidden), then Widget.resizeTo() doesn't make sense for ContentPane */ - -webkit-overflow-scrolling: touch; -} - -.dijitContentPaneSingleChild { - /* - * if the ContentPane holds a single layout widget child which is being sized to match the content pane, - * then the ContentPane should never get a scrollbar (but it does due to browser bugs, see #9449 - */ - overflow: hidden; -} - -.dijitContentPaneLoading .dijitIconLoading, -.dijitContentPaneError .dijitIconError { - margin-right: 9px; -} - -/* TitlePane and Fieldset */ - -.dijitTitlePane { - display: block; - overflow: hidden; -} -.dijitFieldset { - border: 1px solid gray; -} -.dijitTitlePaneTitle, .dijitFieldsetTitle { - cursor: pointer; - -webkit-tap-highlight-color: transparent; -} -.dijitTitlePaneTitleFixedOpen, .dijitTitlePaneTitleFixedClosed, -.dijitFieldsetTitleFixedOpen, .dijitFieldsetTitleFixedClosed { - /* TitlePane or Fieldset that cannot be toggled */ - cursor: default; -} -.dijitTitlePaneTitle * { - vertical-align: middle; -} -.dijitTitlePane .dijitArrowNodeInner, .dijitFieldset .dijitArrowNodeInner { - /* normally, hide arrow text in favor of icon */ - display: none; -} -.dj_a11y .dijitTitlePane .dijitArrowNodeInner, .dj_a11y .dijitFieldset .dijitArrowNodeInner { - /* ... except in a11y mode, then show text arrow */ - display: inline; - font-family: monospace; /* because - and + are different widths */ -} -.dj_a11y .dijitTitlePane .dijitArrowNode, .dj_a11y .dijitFieldset .dijitArrowNode { - /* ... and hide icon (TODO: just point dijitIcon class on the icon, and it hides automatically) */ - display: none; -} -.dijitTitlePaneTitleFixedOpen .dijitArrowNode, .dijitTitlePaneTitleFixedOpen .dijitArrowNodeInner, -.dijitTitlePaneTitleFixedClosed .dijitArrowNode, .dijitTitlePaneTitleFixedClosed .dijitArrowNodeInner, -.dijitFieldsetTitleFixedOpen .dijitArrowNode, .dijitFieldsetTitleFixedOpen .dijitArrowNodeInner, -.dijitFieldsetTitleFixedClosed .dijitArrowNode, .dijitFieldsetTitleFixedClosed .dijitArrowNodeInner { - /* don't show the open close icon or text arrow; it makes the user think the pane is closable */ - display: none !important; /* !important to override above a11y rules to show text arrow */ -} - -.dj_ie6 .dijitTitlePaneContentOuter, -.dj_ie6 .dijitTitlePane .dijitTitlePaneTitle { - /* force hasLayout to ensure borders etc, show up */ - zoom: 1; -} - -/* Color Palette - * Sizes designed so that table cell positions match icons in underlying image, - * which appear at 20x20 intervals. - */ - -.dijitColorPalette { - border: 1px solid #999; - background: #fff; - position: relative; -} - -.dijitColorPalette .dijitPaletteTable { - /* Table that holds the palette cells, and overlays image file with color swatches. - * padding/margin to align table with image. - */ - padding: 2px 3px 3px 3px; - position: relative; - overflow: hidden; - outline: 0; - border-collapse: separate; -} -.dj_ie6 .dijitColorPalette .dijitPaletteTable, -.dj_ie7 .dijitColorPalette .dijitPaletteTable, -.dj_iequirks .dijitColorPalette .dijitPaletteTable { - /* using padding above so that focus border isn't cutoff on moz/webkit, - * but using margin on IE because padding doesn't seem to work - */ - padding: 0; - margin: 2px 3px 3px 3px; -} - -.dijitColorPalette .dijitPaletteCell { - /*
    in the */ - font-size: 1px; - vertical-align: middle; - text-align: center; - background: none; -} -.dijitColorPalette .dijitPaletteImg { - /* Called dijitPaletteImg for back-compat, this actually wraps the color swatch with a border and padding */ - padding: 1px; /* white area between gray border and color swatch */ - border: 1px solid #999; - margin: 2px 1px; - cursor: default; - font-size: 1px; /* prevent from getting bigger just to hold a character */ -} -.dj_gecko .dijitColorPalette .dijitPaletteImg { - padding-bottom: 0; /* workaround rendering glitch on FF, it adds an extra pixel at the bottom */ -} -.dijitColorPalette .dijitColorPaletteSwatch { - /* the actual part where the color is */ - width: 14px; - height: 12px; -} -.dijitPaletteTable td { - padding: 0; -} -.dijitColorPalette .dijitPaletteCell:hover .dijitPaletteImg { - /* hovered color swatch */ - border: 1px solid #000; -} - -.dijitColorPalette .dijitPaletteCell:active .dijitPaletteImg, -.dijitColorPalette .dijitPaletteTable .dijitPaletteCellSelected .dijitPaletteImg { - border: 2px solid #000; - margin: 1px 0; /* reduce margin to compensate for increased border */ -} - - -.dj_a11y .dijitColorPalette .dijitPaletteTable, -.dj_a11y .dijitColorPalette .dijitPaletteTable * { - /* table cells are to catch events, but the swatches are in the PaletteImg behind the table */ - background-color: transparent !important; -} - -/* AccordionContainer */ - -.dijitAccordionContainer { - border:1px solid #b7b7b7; - border-top:0 !important; -} -.dijitAccordionTitle { - cursor: pointer; - -webkit-tap-highlight-color: transparent; -} -.dijitAccordionTitleSelected { - cursor: default; -} - -/* images off, high-contrast mode styles */ -.dijitAccordionTitle .arrowTextUp, -.dijitAccordionTitle .arrowTextDown { - display: none; - font-size: 0.65em; - font-weight: normal !important; -} - -.dj_a11y .dijitAccordionTitle .arrowTextUp, -.dj_a11y .dijitAccordionTitleSelected .arrowTextDown { - display: inline; -} - -.dj_a11y .dijitAccordionTitleSelected .arrowTextUp { - display: none; -} - -.dijitAccordionChildWrapper { - /* this is the node whose height is adjusted */ - overflow: hidden; -} - -/* Calendar */ - -.dijitCalendarContainer table { - width: auto; /* in case user has specified a width for the TABLE nodes, see #10553 */ - clear: both; /* clear margin created for left/right month arrows; needed on IE10 for CalendarLite */ -} -.dijitCalendarContainer th, .dijitCalendarContainer td { - padding: 0; - vertical-align: middle; -} - -.dijitCalendarMonthContainer { - text-align: center; -} -.dijitCalendarDecrementArrow { - float: left; -} -.dijitCalendarIncrementArrow { - float: right; -} - -.dijitCalendarYearLabel { - white-space: nowrap; /* make sure previous, current, and next year appear on same row */ -} - -.dijitCalendarNextYear { - margin:0 0 0 0.55em; -} - -.dijitCalendarPreviousYear { - margin:0 0.55em 0 0; -} - -.dijitCalendarIncrementControl { - vertical-align: middle; -} - -.dijitCalendarIncrementControl, -.dijitCalendarDateTemplate, -.dijitCalendarMonthLabel, -.dijitCalendarPreviousYear, -.dijitCalendarNextYear { - cursor: pointer; - -webkit-tap-highlight-color: transparent; -} - -.dijitCalendarDisabledDate { - color: gray; - text-decoration: line-through; - cursor: default; -} - -.dijitSpacer { - /* don't display it, but make it affect the width */ - position: relative; - height: 1px; - overflow: hidden; - visibility: hidden; -} - -/* Styling for month drop down list */ - -.dijitCalendarMonthMenu .dijitCalendarMonthLabel { - text-align:center; -} - -/* Menu */ - -.dijitMenu { - border:1px solid black; - background-color:white; -} -.dijitMenuTable { - border-collapse:collapse; - border-width:0; - background-color:white; -} - -/* workaround for webkit bug #8427, remove this when it is fixed upstream */ -.dj_webkit .dijitMenuTable td[colspan="2"]{ - border-right:hidden; -} - -.dijitMenuItem { - text-align: left; - white-space: nowrap; - padding:.1em .2em; - cursor:pointer; - -webkit-tap-highlight-color: transparent; -} - -/* -No need to show a focus border since it's obvious from the shading, and there's a .dj_a11y .dijitMenuItemSelected -rule below that handles the high contrast case when there's no shading. -Hiding the focus border also works around webkit bug https://code.google.com/p/chromium/issues/detail?id=125779. -*/ -.dijitMenuItem:focus { - outline: none -} - -.dijitMenuPassive .dijitMenuItemHover, -.dijitMenuItemSelected { - /* - * dijitMenuItemHover refers to actual mouse over - * dijitMenuItemSelected is used after a menu has been "activated" by - * clicking it, tabbing into it, or being opened from a parent menu, - * and denotes that the menu item has focus or that focus is on a child - * menu - */ - background-color:black; - color:white; -} - -.dijitMenuItemIcon, .dijitMenuExpand { - background-repeat: no-repeat; -} - -.dijitMenuItemDisabled * { - /* for a disabled menu item, just set it to mostly transparent */ - opacity:0.5; - cursor:default; -} -.dj_ie .dj_a11y .dijitMenuItemDisabled, -.dj_ie .dj_a11y .dijitMenuItemDisabled *, -.dj_ie .dijitMenuItemDisabled * { - color: gray; - filter: alpha(opacity=35); -} - -.dijitMenuItemLabel { - vertical-align: middle; -} - -.dj_a11y .dijitMenuItemSelected { - border: 1px dotted black !important; /* for 2.0 use outline instead, to prevent jitter */ -} - -.dj_a11y .dijitMenuItemSelected .dijitMenuItemLabel { - border-width: 1px; - border-style: solid; -} -.dj_ie8 .dj_a11y .dijitMenuItemLabel { - position:static; -} - -.dijitMenuExpandA11y { - display: none; -} -.dj_a11y .dijitMenuExpandA11y { - display: inline; -} - -.dijitMenuSeparator td { - border: 0; - padding: 0; -} - -/* separator can be two pixels -- set border of either one to 0 to have only one */ -.dijitMenuSeparatorTop { - height: 50%; - margin: 0; - margin-top:3px; - font-size: 1px; -} - -.dijitMenuSeparatorBottom { - height: 50%; - margin: 0; - margin-bottom:3px; - font-size: 1px; -} - -/* CheckedMenuItem and RadioMenuItem */ -.dijitMenuItemIconChar { - display: none; /* don't display except in high contrast mode */ - visibility: hidden; /* for high contrast mode when menuitem is unchecked: leave space for when it is checked */ -} -.dj_a11y .dijitMenuItemIconChar { - display: inline; /* display character in high contrast mode, since icon doesn't show */ -} -.dijitCheckedMenuItemChecked .dijitMenuItemIconChar, -.dijitRadioMenuItemChecked .dijitMenuItemIconChar { - visibility: visible; /* menuitem is checked */ -} -.dj_ie .dj_a11y .dijitMenuBar .dijitMenuItem { - /* so bottom border of MenuBar appears on IE7 in high-contrast mode */ - margin: 0; -} - -/* StackContainer */ - -.dijitStackController .dijitToggleButtonChecked * { - cursor: default; /* because pressing it has no effect */ -} - -/*** -TabContainer - -Main class hierarchy: - -.dijitTabContainer - the whole TabContainer - .dijitTabController / .dijitTabListContainer-top - wrapper for tab buttons, scroll buttons - .dijitTabListWrapper / .dijitTabContainerTopStrip - outer wrapper for tab buttons (normal width) - .nowrapTabStrip / .dijitTabContainerTop-tabs - inner wrapper for tab buttons (50K width) - .dijitTabPaneWrapper - wrapper for content panes, has all borders except the one between content and tabs -***/ - -.dijitTabContainer { - z-index: 0; /* so z-index settings below have no effect outside of the TabContainer */ - overflow: visible; /* prevent off-by-one-pixel errors from hiding bottom border (opposite tab labels) */ -} -.dj_ie6 .dijitTabContainer { - /* workaround IE6 problem when tall content overflows TabContainer, see editor/test_FullScreen.html */ - overflow: hidden; - -} -.dijitTabContainerNoLayout { - width: 100%; /* otherwise ScrollingTabController goes to 50K pixels wide */ -} - -.dijitTabContainerBottom-tabs, -.dijitTabContainerTop-tabs, -.dijitTabContainerLeft-tabs, -.dijitTabContainerRight-tabs { - z-index: 1; - overflow: visible !important; /* so tabs can cover up border adjacent to container */ -} - -.dijitTabController { - z-index: 1; -} -.dijitTabContainerBottom-container, -.dijitTabContainerTop-container, -.dijitTabContainerLeft-container, -.dijitTabContainerRight-container { - z-index:0; - overflow: hidden; - border: 1px solid black; -} -.nowrapTabStrip { - width: 50000px; - display: block; - position: relative; - text-align: left; /* just in case ancestor has non-standard setting */ - z-index: 1; -} -.dijitTabListWrapper { - overflow: hidden; - z-index: 1; -} - -.dj_a11y .tabStripButton img { - /* hide the icons (or rather the empty space where they normally appear) because text will appear instead */ - display: none; -} - -.dijitTabContainerTop-tabs { - border-bottom: 1px solid black; -} -.dijitTabContainerTop-container { - border-top: 0; -} - -.dijitTabContainerLeft-tabs { - border-right: 1px solid black; - float: left; /* needed for IE7 RTL mode */ -} -.dijitTabContainerLeft-container { - border-left: 0; -} - -.dijitTabContainerBottom-tabs { - border-top: 1px solid black; -} -.dijitTabContainerBottom-container { - border-bottom: 0; -} - -.dijitTabContainerRight-tabs { - border-left: 1px solid black; - float: left; /* needed for IE7 RTL mode */ -} -.dijitTabContainerRight-container { - border-right: 0; -} - -div.dijitTabDisabled, .dj_ie div.dijitTabDisabled { - cursor: auto; -} - -.dijitTab { - position:relative; - cursor:pointer; - -webkit-tap-highlight-color: transparent; - white-space:nowrap; - z-index:3; -} -.dijitTab * { - /* make tab icons and close icon line up w/text */ - vertical-align: middle; -} -.dijitTabChecked { - cursor: default; /* because clicking will have no effect */ -} - -.dijitTabContainerTop-tabs .dijitTab { - top: 1px; /* to overlap border on .dijitTabContainerTop-tabs */ -} -.dijitTabContainerBottom-tabs .dijitTab { - top: -1px; /* to overlap border on .dijitTabContainerBottom-tabs */ -} -.dijitTabContainerLeft-tabs .dijitTab { - left: 1px; /* to overlap border on .dijitTabContainerLeft-tabs */ -} -.dijitTabContainerRight-tabs .dijitTab { - left: -1px; /* to overlap border on .dijitTabContainerRight-tabs */ -} - - -.dijitTabContainerTop-tabs .dijitTab, -.dijitTabContainerBottom-tabs .dijitTab { - /* Inline-block */ - display:inline-block; /* webkit and FF3 */ -} - -.tabStripButton { - z-index: 12; -} - -.dijitTabButtonDisabled .tabStripButton { - display: none; -} - - -.dijitTabCloseButton { - margin-left: 1em; -} - -.dijitTabCloseText { - display:none; -} - -.dijitTab .tabLabel { - /* make sure tabs w/close button and w/out close button are same height, even w/small (<15px) font. - * assumes <=15px height for close button icon. - */ - min-height: 15px; - display: inline-block; -} -.dijitNoIcon { - /* applied to / node when there is no icon specified */ - display: none; -} -.dj_ie6 .dijitTab .dijitNoIcon { - /* because min-height (on .tabLabel, above) doesn't work on IE6 */ - display: inline; - height: 15px; - width: 1px; -} - -/* images off, high-contrast mode styles */ - -.dj_a11y .dijitTabCloseButton { - background-image: none !important; - width: auto !important; - height: auto !important; -} - -.dj_a11y .dijitTabCloseText { - display: inline; -} - -.dijitTabPane, -.dijitStackContainer-child, -.dijitAccordionContainer-child { - /* children of TabContainer, StackContainer, and AccordionContainer shouldn't have borders - * b/c a border is already there from the TabContainer/StackContainer/AccordionContainer itself. - */ - border: none !important; -} - -/* InlineEditBox */ -.dijitInlineEditBoxDisplayMode { - border: 1px solid transparent; /* so keyline (border) on hover can appear without screen jump */ - cursor: text; -} - -.dj_a11y .dijitInlineEditBoxDisplayMode, -.dj_ie6 .dijitInlineEditBoxDisplayMode { - /* except that IE6 doesn't support transparent borders, nor does high contrast mode */ - border: none; -} - -.dijitInlineEditBoxDisplayModeHover, -.dj_a11y .dijitInlineEditBoxDisplayModeHover, -.dj_ie6 .dijitInlineEditBoxDisplayModeHover { - /* An InlineEditBox in view mode (click this to edit the text) */ - background-color: #e2ebf2; - border: solid 1px black; -} - -.dijitInlineEditBoxDisplayModeDisabled { - cursor: default; -} - -/* Tree */ -.dijitTree { - overflow: auto; /* for scrollbars when Tree has a height setting, and to prevent wrapping around float elements, see #11491 */ - -webkit-tap-highlight-color: transparent; -} - -.dijitTreeContainer { - float: left; /* for correct highlighting during horizontal scroll, see #16132 */ -} - -.dijitTreeIndent { - /* amount to indent each tree node (relative to parent node) */ - width: 19px; -} - -.dijitTreeRow, .dijitTreeContent { - white-space: nowrap; -} - -.dj_ie .dijitTreeLabel:focus { - /* workaround IE9 behavior where down arrowing through TreeNodes doesn't show focus outline */ - outline: 1px dotted black; -} - -.dijitTreeRow img { - /* make the expando and folder icons line up with the label */ - vertical-align: middle; -} - -.dijitTreeContent { - cursor: default; -} - -.dijitExpandoText { - display: none; -} - -.dj_a11y .dijitExpandoText { - display: inline; - padding-left: 10px; - padding-right: 10px; - font-family: monospace; - border-style: solid; - border-width: thin; - cursor: pointer; -} - -.dijitTreeLabel { - margin: 0 4px; -} - -/* Dialog */ - -.dijitDialog { - position: absolute; - z-index: 999; - overflow: hidden; /* override overflow: auto; from ContentPane to make dragging smoother */ -} - -.dijitDialogTitleBar { - cursor: move; -} -.dijitDialogFixed .dijitDialogTitleBar { - cursor:default; -} -.dijitDialogCloseIcon { - cursor: pointer; - -webkit-tap-highlight-color: transparent; -} -.dijitDialogPaneContent { - -webkit-overflow-scrolling: touch; -} -.dijitDialogUnderlayWrapper { - position: absolute; - left: 0; - top: 0; - z-index: 998; - display: none; - background: transparent !important; -} - -.dijitDialogUnderlay { - background: #eee; - opacity: 0.5; -} - -.dj_ie .dijitDialogUnderlay { - filter: alpha(opacity=50); -} - -/* images off, high-contrast mode styles */ -.dj_a11y .dijitSpinnerButtonContainer, -.dj_a11y .dijitDialog { - opacity: 1 !important; - background-color: white !important; -} - -.dijitDialog .closeText { - display:none; - /* for the onhover border in high contrast on IE: */ - position:absolute; -} - -.dj_a11y .dijitDialog .closeText { - display:inline; -} - -/* Slider */ - -.dijitSliderMoveable { - z-index:99; - position:absolute !important; - display:block; - vertical-align:middle; -} - -.dijitSliderMoveableH { - right:0; -} -.dijitSliderMoveableV { - right:50%; -} - -.dj_a11y div.dijitSliderImageHandle, -.dijitSliderImageHandle { - margin:0; - padding:0; - position:relative !important; - border:8px solid gray; - width:0; - height:0; - cursor: pointer; - -webkit-tap-highlight-color: transparent; -} -.dj_iequirks .dj_a11y .dijitSliderImageHandle { - font-size: 0; -} -.dj_ie7 .dijitSliderImageHandle { - overflow: hidden; /* IE7 workaround to make slider handle VISIBLE in non-a11y mode */ -} -.dj_ie7 .dj_a11y .dijitSliderImageHandle { - overflow: visible; /* IE7 workaround to make slider handle VISIBLE in a11y mode */ -} -.dj_a11y .dijitSliderFocused .dijitSliderImageHandle { - border:4px solid #000; - height:8px; - width:8px; -} - -.dijitSliderImageHandleV { - top:-8px; - right: -50%; -} - -.dijitSliderImageHandleH { - left:50%; - top:-5px; - vertical-align:top; -} - -.dijitSliderBar { - border-style:solid; - border-color:black; - cursor: pointer; - -webkit-tap-highlight-color: transparent; -} - -.dijitSliderBarContainerV { - position:relative; - height:100%; - z-index:1; -} - -.dijitSliderBarContainerH { - position:relative; - z-index:1; -} - -.dijitSliderBarH { - height:4px; - border-width:1px 0; -} - -.dijitSliderBarV { - width:4px; - border-width:0 1px; -} - -.dijitSliderProgressBar { - background-color:red; - z-index:1; -} - -.dijitSliderProgressBarV { - position:static !important; - height:0; - vertical-align:top; - text-align:left; -} - -.dijitSliderProgressBarH { - position:absolute !important; - width:0; - vertical-align:middle; - overflow:visible; -} - -.dijitSliderRemainingBar { - overflow:hidden; - background-color:transparent; - z-index:1; -} - -.dijitSliderRemainingBarV { - height:100%; - text-align:left; -} - -.dijitSliderRemainingBarH { - width:100% !important; -} - -/* the slider bumper is the space consumed by the slider handle when it hangs over an edge */ -.dijitSliderBumper { - overflow:hidden; - z-index:1; -} - -.dijitSliderBumperV { - width:4px; - height:8px; - border-width:0 1px; -} - -.dijitSliderBumperH { - width:8px; - height:4px; - border-width:1px 0; -} - -.dijitSliderBottomBumper, -.dijitSliderLeftBumper { - background-color:red; -} - -.dijitSliderTopBumper, -.dijitSliderRightBumper { - background-color:transparent; -} - -.dijitSliderDecoration { - text-align:center; -} - -.dijitSliderDecorationC, -.dijitSliderDecorationV { - position: relative; /* needed for IE+quirks+RTL+vertical (rendering bug) but add everywhere for custom styling consistency but this messes up IE horizontal sliders */ -} - -.dijitSliderDecorationH { - width: 100%; -} - -.dijitSliderDecorationV { - height: 100%; - white-space: nowrap; -} - -.dijitSliderButton { - font-family:monospace; - margin:0; - padding:0; - display:block; -} - -.dj_a11y .dijitSliderButtonInner { - visibility:visible !important; -} - -.dijitSliderButtonContainer { - text-align:center; - height:0; /* ??? */ -} -.dijitSliderButtonContainer * { - cursor: pointer; - -webkit-tap-highlight-color: transparent; -} - -.dijitSlider .dijitButtonNode { - padding:0; - display:block; -} - -.dijitRuleContainer { - position:relative; - overflow:visible; -} - -.dijitRuleContainerV { - height:100%; - line-height:0; - float:left; - text-align:left; -} - -.dj_opera .dijitRuleContainerV { - line-height:2%; -} - -.dj_ie .dijitRuleContainerV { - line-height:normal; -} - -.dj_gecko .dijitRuleContainerV { - margin:0 0 1px 0; /* mozilla bug workaround for float:left,height:100% block elements */ -} - -.dijitRuleMark { - position:absolute; - border:1px solid black; - line-height:0; - height:100%; -} - -.dijitRuleMarkH { - width:0; - border-top-width:0 !important; - border-bottom-width:0 !important; - border-left-width:0 !important; -} - -.dijitRuleLabelContainer { - position:absolute; -} - -.dijitRuleLabelContainerH { - text-align:center; - display:inline-block; -} - -.dijitRuleLabelH { - position:relative; - left:-50%; -} - -.dijitRuleLabelV { - /* so that long labels don't overflow to multiple rows, or overwrite slider itself */ - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; -} - -.dijitRuleMarkV { - height:0; - border-right-width:0 !important; - border-bottom-width:0 !important; - border-left-width:0 !important; - width:100%; - left:0; -} - -.dj_ie .dijitRuleLabelContainerV { - margin-top:-.55em; -} - -.dj_a11y .dijitSliderReadOnly, -.dj_a11y .dijitSliderDisabled { - opacity:0.6; -} -.dj_ie .dj_a11y .dijitSliderReadOnly .dijitSliderBar, -.dj_ie .dj_a11y .dijitSliderDisabled .dijitSliderBar { - filter: alpha(opacity=40); -} - -/* + and - Slider buttons: override theme settings to display icons */ -.dj_a11y .dijitSlider .dijitSliderButtonContainer div { - font-family: monospace; /* otherwise hyphen is larger and more vertically centered */ - font-size: 1em; - line-height: 1em; - height: auto; - width: auto; - margin: 0 4px; -} - -/* Icon-only buttons (often in toolbars) still display the text in high-contrast mode */ -.dj_a11y .dijitButtonContents .dijitButtonText, -.dj_a11y .dijitTab .tabLabel { - display: inline !important; -} -.dj_a11y .dijitSelect .dijitButtonText { - display: inline-block !important; -} - -/* TextArea, SimpleTextArea */ -.dijitTextArea { - width:100%; - overflow-y: auto; /* w/out this IE's SimpleTextArea goes to overflow: scroll */ -} -.dijitTextArea[cols] { - width:auto; /* SimpleTextArea cols */ -} -.dj_ie .dijitTextAreaCols { - width:auto; -} - -.dijitExpandingTextArea { - /* for auto exanding textarea (called Textarea currently, rename for 2.0) don't want to display the grip to resize */ - resize: none; -} - - -/* Toolbar - * Note that other toolbar rules (for objects in toolbars) are scattered throughout this file. - */ - -.dijitToolbarSeparator { - height: 18px; - width: 5px; - padding: 0 1px; - margin: 0; -} - -/* Editor */ -.dijitIEFixedToolbar { - position:absolute; - /* top:0; */ - top: expression(eval((document.documentElement||document.body).scrollTop)); -} - -.dijitEditor { - display: block; /* prevents glitch on FF with InlineEditBox, see #8404 */ -} - -.dijitEditorDisabled, -.dijitEditorReadOnly { - color: gray; -} - -/* TimePicker */ - -.dijitTimePicker { - background-color: white; -} -.dijitTimePickerItem { - cursor:pointer; - -webkit-tap-highlight-color: transparent; -} -.dijitTimePickerItemHover { - background-color:gray; - color:white; -} -.dijitTimePickerItemSelected { - font-weight:bold; - color:#333; - background-color:#b7cdee; -} -.dijitTimePickerItemDisabled { - color:gray; - text-decoration:line-through; -} - -.dijitTimePickerItemInner { - text-align:center; - border:0; - padding:2px 8px 2px 8px; -} - -.dijitTimePickerTick, -.dijitTimePickerMarker { - border-bottom:1px solid gray; -} - -.dijitTimePicker .dijitDownArrowButton { - border-top: none !important; -} - -.dijitTimePickerTick { - color:#CCC; -} - -.dijitTimePickerMarker { - color:black; - background-color:#CCC; -} - -.dj_a11y .dijitTimePickerItemSelected .dijitTimePickerItemInner { - border: solid 4px black; -} -.dj_a11y .dijitTimePickerItemHover .dijitTimePickerItemInner { - border: dashed 4px black; -} - - -.dijitToggleButtonIconChar { - /* character (instead of icon) to show that ToggleButton is checked */ - display:none !important; -} -.dj_a11y .dijitToggleButton .dijitToggleButtonIconChar { - display:inline !important; - visibility:hidden; -} -.dj_ie6 .dijitToggleButtonIconChar, .dj_ie6 .tabStripButton .dijitButtonText { - font-family: "Arial Unicode MS"; /* otherwise the a11y character (checkmark, arrow, etc.) appears as a box */ -} -.dj_a11y .dijitToggleButtonChecked .dijitToggleButtonIconChar { - display: inline !important; /* In high contrast mode, display the check symbol */ - visibility:visible !important; -} - -.dijitArrowButtonChar { - display:none !important; -} -.dj_a11y .dijitArrowButtonChar { - display:inline !important; -} - -.dj_a11y .dijitDropDownButton .dijitArrowButtonInner, -.dj_a11y .dijitComboButton .dijitArrowButtonInner { - display:none !important; -} - -/* Select */ -.dj_a11y .dijitSelect { - border-collapse: separate !important; - border-width: 1px; - border-style: solid; -} -.dj_ie .dijitSelect { - vertical-align: middle; /* Set this back for what we hack in dijit inline */ -} -.dj_ie6 .dijitSelect .dijitValidationContainer, -.dj_ie8 .dijitSelect .dijitButtonText { - vertical-align: top; -} -.dj_ie6 .dijitTextBox .dijitInputContainer, -.dj_iequirks .dijitTextBox .dijitInputContainer, -.dj_ie6 .dijitTextBox .dijitArrowButtonInner, -.dj_ie6 .dijitSpinner .dijitSpinnerButtonInner, -.dijitSelect .dijitSelectLabel { - vertical-align: baseline; -} - -.dijitNumberTextBox { - text-align: left; - direction: ltr; -} - -.dijitNumberTextBox .dijitInputInner { - text-align: inherit; /* input */ -} - -.dijitNumberTextBox input.dijitInputInner, -.dijitCurrencyTextBox input.dijitInputInner, -.dijitSpinner input.dijitInputInner { - text-align: right; -} - -.dj_ie8 .dijitNumberTextBox input.dijitInputInner, .dj_ie9 .dijitNumberTextBox input.dijitInputInner, -.dj_ie8 .dijitCurrencyTextBox input.dijitInputInner, .dj_ie9 .dijitCurrencyTextBox input.dijitInputInner, -.dj_ie8 .dijitSpinner input.dijitInputInner, .dj_ie9 .dijitSpinner input.dijitInputInner { - /* workaround bug where caret invisible in empty textboxes */ - padding-right: 1px !important; -} - -.dijitToolbar .dijitSelect { - margin: 0; -} -.dj_webkit .dijitToolbar .dijitSelect { - padding-left: 0.3em; -} -.dijitSelect .dijitButtonContents { - padding: 0; - white-space: nowrap; - text-align: left; - border-style: none solid none none; - border-width: 1px; -} -.dijitSelectFixedWidth .dijitButtonContents { - width: 100%; -} - -.dijitSelectMenu .dijitMenuItemIcon { - /* avoid blank area in left side of menu (since we have no icons) */ - display:none; -} -.dj_ie6 .dijitSelectMenu .dijitMenuItemLabel, -.dj_ie7 .dijitSelectMenu .dijitMenuItemLabel { - /* Set back to static due to bug in ie6/ie7 - See Bug #9651 */ - position: static; -} - -/* Fix the baseline of our label (for multi-size font elements) */ -.dijitSelectLabel * -{ - vertical-align: baseline; -} - -/* Styling for the currently-selected option (rich text can mess this up) */ -.dijitSelectSelectedOption * { - font-weight: bold; -} - -/* Fix the styling of the dropdown menu to be more combobox-like */ -.dijitSelectMenu { - border-width: 1px; -} - -/* Used in cases, such as FullScreen plugin, when we need to force stuff to static positioning. */ -.dijitForceStatic { - position: static !important; -} - -/**** Disabled cursor *****/ -.dijitReadOnly *, -.dijitDisabled *, -.dijitReadOnly, -.dijitDisabled { - /* a region the user would be able to click on, but it's disabled */ - cursor: default; -} - -/* Drag and Drop */ -.dojoDndItem { - padding: 2px; /* will be replaced by border during drag over (dojoDndItemBefore, dojoDndItemAfter) */ - - /* Prevent magnifying-glass text selection icon to appear on mobile webkit as it causes a touchout event */ - -webkit-touch-callout: none; - -webkit-user-select: none; /* Disable selection/Copy of UIWebView */ -} -.dojoDndHorizontal .dojoDndItem { - /* make contents of horizontal container be side by side, rather than vertical */ - display: inline-block; -} - -.dojoDndItemBefore, -.dojoDndItemAfter { - border: 0px solid #369; -} -.dojoDndItemBefore { - border-width: 2px 0 0 0; - padding: 0 2px 2px 2px; -} -.dojoDndItemAfter { - border-width: 0 0 2px 0; - padding: 2px 2px 0 2px; -} -.dojoDndHorizontal .dojoDndItemBefore { - border-width: 0 0 0 2px; - padding: 2px 2px 2px 0; -} -.dojoDndHorizontal .dojoDndItemAfter { - border-width: 0 2px 0 0; - padding: 2px 0 2px 2px; -} - -.dojoDndItemOver { - cursor:pointer; -} -.dj_gecko .dijitArrowButtonInner INPUT, -.dj_gecko INPUT.dijitArrowButtonInner { - -moz-user-focus:ignore; -} -.dijitFocused .dijitMenuItemShortcutKey { - text-decoration: underline; -} - -/* Dijit custom styling */ -.dijitBorderContainer { - height: 350px; -} -.dijitTooltipContainer { - background: #fff; - border: 1px solid #ccc; - border-radius: 6px; -} -.dijitContentPane { - box-sizing: content-box; - overflow: auto !important; /* Widgets like the data grid pass their scroll - offset to the parent if there is not enough room to display a scroll bar - in the widget itself, so do not hide the overflow. */ -} - -/* Global Bootstrap changes */ - -/* Client defaults and helpers */ -.mx-dataview-content, .mx-scrollcontainer-wrapper:not(.mx-scrollcontainer-nested), .mx-tabcontainer-content, .mx-grid-content { - -webkit-overflow-scrolling: touch; -} -html, body, #content { - height: 100%; -} -#content > .mx-page { - width: 100%; - min-height: 100%; -} - -.mx-left-aligned { - text-align: left; -} -.mx-right-aligned { - text-align: right; -} -.mx-center-aligned { - text-align: center; -} - -.mx-table { - width: 100%; -} -.mx-table th, -.mx-table td { - padding: 8px; - vertical-align: top; -} -.mx-table th.nopadding, -.mx-table td.nopadding { - padding: 0; -} - -.mx-offscreen { - /* When position relative is not set IE doesn't properly render when this class is removed - * with the effect that elements are not displayed or are not clickable. - */ - position: relative; - height: 0; - overflow: hidden; -} - -.mx-ie-event-shield { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - z-index: -1; -} - -.mx-swipe-navigation-progress { - position: absolute; - height: 54px; - width: 54px; - top: calc(50% - 27px); - left: calc(50% - 27px); - background: url(data:image/gif;base64,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); -} - - -/* Bacause we use checkboxes without labels, align them with other widgets. */ -input[type="checkbox"] { - margin: 9px 0; -} - -.mx-checkbox input[type="checkbox"] { - margin-left: 0; - margin-right: 8px; - position: static; -} - -.form-vertical .form-group.mx-checkbox input[type="checkbox"] { - display: block; -} - -.form-vertical .form-group.mx-checkbox.label-after input[type="checkbox"] { - display: inline-block; -} - -.form-horizontal .form-group.no-columns { - padding-left: 15px; - padding-right: 15px; -} - -.mx-radiobuttons.inline .radio { - display: inline-block; - margin-right: 20px; -} - -.mx-radiobuttons .radio input[type="radio"] { - /* Reset bootstrap rules */ - position: static; - margin-right: 8px; - margin-left: 0; -} - -.mx-radiobuttons .radio label { - /* Reset bootstrap rules */ - padding-left: 0; -} - -.alert { - margin-top: 8px; - margin-bottom: 10px; - white-space: pre-line; -} - -.mx-compound-control { - display: flex; -} - -.mx-compound-control button { - margin-left: 5px; -} - -[dir="rtl"] .mx-compound-control button { - margin-left: 0; - margin-right: 5px; -} - -.mx-tooltip { - margin: 10px; -} -.mx-tooltip-content { - width: 400px; - overflow-y: auto; -} -.mx-tooltip-prepare { - height: 24px; - padding: 8px; - background: transparent url(data:image/gif;base64,R0lGODlhGAAYAMQdAKXZ8nfF64TL7QuX3Fe45zaq4hOb3fL6/fr9/rri9dXt+ZrU8Cym4Umy5cHl9uPz+2K86Oj1/Nzw+rDd9M3q+JDQ72rA6iOi3+34/ECu48jo9x2f3gWV2////wAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQwIDc5LjE2MDQ1MSwgMjAxNy8wNS8wNi0wMTowODoyMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RUJFNkU4NEZCNEVDMTFFODk3MDBBNUU1RUM4Qjg3QTUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RUJFNkU4NTBCNEVDMTFFODk3MDBBNUU1RUM4Qjg3QTUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpFQkU2RTg0REI0RUMxMUU4OTcwMEE1RTVFQzhCODdBNSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpFQkU2RTg0RUI0RUMxMUU4OTcwMEE1RTVFQzhCODdBNSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6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) no-repeat scroll center center; -} -.mx-tooltip-content .table th, -.mx-tooltip-content .table td { - padding: 2px 8px; -} - -.mx-tabcontainer-pane { - height: 100%; -} -.mx-tabcontainer-content.loading { - min-height: 48px; - background: url(data:image/gif;base64,R0lGODlhNgA2APMAAP///wAAAHh4eBwcHA4ODtjY2FRUVNzc3MTExEhISIqKigAAAAAAAAAAAAAAAAAAACH5BAkKAAAAIf4aQ3JlYXRlZCB3aXRoIGFqYXhsb2FkLmluZm8AIf8LTkVUU0NBUEUyLjADAQAAACwAAAAANgA2AAAEyxDISau9OOvNu/9gKI5kySEJQSSI6UqKKhPKWyLz3NpimqsJnug3E4aIMiPI9wsqPTjiTlkwqAwFTCxXexYGs0H2ggJOLYLBQDCy5gwmwYx9JJrAssHQXsKr9CFuM3AlcjJ0IAd+BAMHLmlrJAduBo5Pl5iZmpucnZ6fcWqImJCjaHOZhiqmFIuAl64ZsZizF6oErEK3uROlm76gwcLDxMXGx8XAj6Iku4+oIrUk0h/U0WEjznHQIsqhkcjB3sncxdbC5+Llyczh7k8RACH5BAkKAAAALAAAAAA2ADYAAATMEMhJq7046827/2AojmRpnmVhEIRRoGcxsOzwwuRKswZO7jvfCEgTinS7nhF0mNEGhwsiwUoglpSDzhC1KIiKkWAwEJgQRNYVJNiZSdR0IuSsldJFUJ0wuOMJIW00byNxRHOBZIQjaGlrWBxfQGGQHlNVj5Wam5ydnp9LY2WboosWgiymQqgEqhN7fZCwGbOyO7EXrK44uhqlpIqgwsPExcbHyMe/KMsivSbPdLcntdJP1NPObifRiaPMwcnCzcrbyNXG6MXdxuTi7z4RACH5BAkKAAAALAAAAAA2ADYAAATOEMhJq7046827/2AojmRpnmiqAsIwCKspEDQBx+NQEwOe7z1faFa7CUGt11FYMNAMBVLSSCroaoPocEcVOXcEg+hKC5LAtTHQhKaJiLRu6LsTv13y0IHMOyw9B18Gfn+FhoeIiYoZCAk0CQiLFgpoChlTRwhtBJEWcDZCjm0JF3xmMZtuFqZCqQQXn3koomiksHiZm52SAJRglrwTjY+7wcbHyMnKE5gozW9cJ7E/WCesatUm11tF0tEjzzK4y4nhxtPI28bqwejI5uTxJhEAIfkECQoAAAAsAAAAADYANgAABMsQyEmrvTjrzbv/YCiOZGmeaKoCwjAIqykQNAHH41ATA57vPV9oVrsJQa3XcYlKGmWuJ3InFRFp1Y6uFixtaV3Ql3cahz9X2ymd7ThTb6Z8Tq/b7/i8vGCgGQoacUIFZoAXbEd9OwQGGGZHizWOQJCRBBiIQoo7jZhRSwdmB3oUB4oGo6Sqq6ytMQgJNAkIrAqRCiOCIwiWBLRTRSWxlgkhjyS9NMaUyMlDVMK9xUOfJbyWv3q2i7hLuhWwstlCmavH5syr5erVru44EQAh+QQJCgAAACwAAAAANgA2AAAEzBDISau9OOvNu/9gKI5kaZ5oqgLCMAirKRA0AcfjUBMDnu89X2hWuwlBrddxiUoaZa4ncicVEWnVjq4WLG1pXdCXdxqHP1fbKZ3tOFNvpnxOr9vv+LweE1/2L2x+VBlmS4UYh0KJFoFHjXxRcn97lJWWl5iZcgUGNAYFJJMiBWagQ4MlnTsEBiKLIqs1rkAmsTRWqCSqO61WkRkICTQJCBcHZgdHCrEKxqoGyUIItgTFesK2CXvUt3rcBHvYsdp607bWesurzZXBw+giEQAh+QQJCgAAACwAAAAANgA2AAAEzBDISau9OOvNu/9gKI5kaZ5oqgLCMAirKRA0AcfjUBMDnu89X2hWuwlBrddxiUoaZa4ncicVEWnVjq4WLG1pXdCXdxqHP1fbKZ3tOFNvpnxOr9vv+LweE1/2L2x+VBlmS4UYh0KJFoFHjXxRcn97lJWWl5gSCAk0CQiWCjs0CpQIojWfJZMdnKcECaqDIK41XkAhtDS2XCGtp7Akjx6mrqnBkSKhoqQXBQY0BgVLm53GFQVm0pTPogaVtN+uldw73pQHZgeWB9wG6pkoEQAh+QQJCgAAACwAAAAANgA2AAAEzBDISau9OOvNu/9gKI5kaZ5oqgLCMAirKRA0AcfjUBMDnu89X2hWuwlBrddxiUoaZa4ncicVEWnVjq4WLG1pXdCXdxqHP1fbKZ3tOFNvpnxOr9vvKUSClkDgLQo7NAp/EwiCNX5CcRZ7iAQJi1QXjzVCZpSVBJdAF46IkT5sF4ePiqJRGYGChIWGjn2usrO0tXYFBjQGBbQFZrxQSiK5ggYykyGVJpjJj8udIcQ7xiWjIQdmB2upIwfEBtq2Hoyz1rPM59DlyLTk4u8pEQAh+QQJCgAAACwAAAAANgA2AAAEzBDISau9OOvNu/9gKI5kaZ5oqgLCMAirKRA0AcfjUBMDnu89X2hWuwkRCVoCoWm9hBLFjqaAdhDTGrPkNH6SWUKCu/N2wrWSrhb8oGlqYAicHZOINDMHG97eXXodUlNVVldgS4aKi4yNjo8FBjQGBY8XBWs0A5VQXRmSUwadZRhoUJk8pWGnchegO6JCeDYYB6gDB1aeGQegBrmWwcLDxMXGx1yAKbsis4Egzj9sJ7fSmtStQ6Qy283KKMzIjeHE0cbV59nl3cXk4u8oEQA7) no-repeat center center; - background-size: 32px 32px; -} -.mx-tabcontainer-tabs { - margin-bottom: 8px; -} -.mx-tabcontainer-tabs li { - position: relative; -} -.mx-tabcontainer-indicator { - position: absolute; - background: #f2dede; - border-radius: 8px; - color: #b94a48; - top: 0px; - right: -5px; - width: 16px; - height: 16px; - line-height: 16px; - text-align: center; - vertical-align: middle; - font-size: 10px; - font-weight: 600; - z-index: 1; /* indicator should not hide behind other tab */ -} - -/* base structure */ -.mx-grid { - padding: 8px; - overflow: hidden; /* to prevent any margin from escaping grid and foobaring our size calculations */ -} -.mx-grid-controlbar, .mx-grid-searchbar { - display: flex; - justify-content: space-between; - flex-wrap: wrap; -} -.mx-grid-controlbar .mx-button, -.mx-grid-search-controls .mx-button { - margin-bottom: 8px; -} - -.mx-grid-search-controls .mx-button + .mx-button, -.mx-grid-controlbar .mx-button + .mx-button { - margin-left: 0.3em; -} - -[dir="rtl"] .mx-grid-search-controls .mx-button + .mx-button, -[dir="rtl"] .mx-grid-controlbar .mx-button + .mx-button { - margin-left: 0; - margin-right: 0.3em; -} - -.mx-grid-pagingbar, -.mx-grid-search-controls { - display: flex; - white-space: nowrap; - align-items: baseline; - margin-left: auto; -} - -.mx-grid-toolbar, .mx-grid-search-inputs { - margin-right: 5px; - flex: 1; -} - -[dir="rtl"] .mx-grid-toolbar, -[dir="rtl"] .mx-grid-search-inputs { - margin-left: 5px; - margin-right: 0px; -} -[dir="rtl"] .mx-grid-pagingbar, -[dir="rtl"] .mx-grid-search-controls { - margin-left: 0px; - margin-right: auto; -} - -.mx-grid-paging-status { - padding: 0 8px 5px; -} - -/* search fields */ -.mx-grid-search-item { - display: inline-block; - vertical-align: top; - margin-bottom: 8px; -} -.mx-grid-search-label { - width: 110px; - padding: 0 5px; - text-align: right; - display: inline-block; - vertical-align: top; - overflow: hidden; -} -[dir="rtl"] .mx-grid-search-label { - text-align: left; -} -.mx-grid-search-input { - width: 150px; - padding: 0 5px; - display: inline-block; - vertical-align: top; -} -.mx-grid-search-message { - flex-basis: 100%; -} - -/* widget combinations */ -.mx-dataview .mx-grid { - border: 1px solid #ddd; - border-radius: 3px; -} - -.mx-calendar { - z-index: 1000; -} - -.mx-calendar-month-dropdown-options { - position: absolute; -} - -.mx-calendar, .mx-calendar-month-dropdown { - user-select: none; -} - -.mx-calendar-month-current { - display: inline-block; -} - -.mx-calendar-month-spacer { - position: relative; - height: 0px; - overflow: hidden; - visibility: hidden; -} - -.mx-calendar, .mx-calendar-month-dropdown-options { - border: 1px solid lightgrey; - background-color: white; -} - -.mx-datagrid tr { - cursor: pointer; -} - -.mx-datagrid tr.mx-datagrid-row-empty { - cursor: default; -} - -.mx-datagrid table { - width: 100%; - max-width: 100%; - table-layout: fixed; - margin-bottom: 0; -} - -.mx-datagrid th, .mx-datagrid td { - padding: 8px; - line-height: 1.42857143; - vertical-align: bottom; - border: 1px solid #ddd; -} - -/* head */ -.mx-datagrid th { - position: relative; /* Required for the positioning of the column resizers */ - border-bottom-width: 2px; -} -.mx-datagrid-head-caption { - overflow: hidden; - white-space: nowrap; -} -.mx-datagrid-sort-icon { - float: right; - padding-left: 5px; -} -[dir="rtl"] .mx-datagrid-sort-icon { - float: left; - padding: 0 5px 0 0; -} -.mx-datagrid-column-resizer { - position: absolute; - top: 0; - left: -6px; - width: 10px; - height: 100%; - cursor: col-resize; -} -[dir="rtl"] .mx-datagrid-column-resizer { - left: auto; - right: -6px; -} - -/* body */ -.mx-datagrid tbody tr:first-child td { - border-top: none; -} -//.mx-datagrid tbody tr:nth-child(2n+1) td { -// background-color: #f9f9f9; -//} -.mx-datagrid tbody .selected td { - background-color: #eee; -} -.mx-datagrid-data-wrapper { - overflow: hidden; - white-space: nowrap; -} -.mx-datagrid tbody img { - max-width: 16px; - max-height: 16px; -} -.mx-datagrid input, -.mx-datagrid select, -.mx-datagrid textarea { - cursor: auto; -} - -/* foot */ -.mx-datagrid tfoot th, -.mx-datagrid tfoot td { - padding: 3px 8px; -} -.mx-datagrid tfoot th { - border-top: 1px solid #ddd; -} -.mx-datagrid.mx-content-loading .mx-content-loader { - display: inline-block; - width: 90%; - animation: placeholderGradient 1s linear infinite; - border-radius: 4px; - background: #F5F5F5; - background: repeating-linear-gradient(to right, #F5F5F5 0%, #F5F5F5 5%, #F9F9F9 50%, #F5F5F5 95%, #F5F5F5 100%); - background-size: 200px 100px; - animation-fill-mode: both; -} -@keyframes placeholderGradient { - 0% { background-position: 100px 0; } - 100% { background-position: -100px 0; } -} - -.mx-datagrid-table-resizing th, -.mx-datagrid-table-resizing td { - cursor: col-resize !important; -} - -.mx-templategrid-content-wrapper { - display: table; - width: 100%; - border-collapse: collapse; - box-sizing: border-box; -} -.mx-templategrid-row { - display: table-row; -} -.mx-templategrid-item { - padding: 5px; - display: table-cell; - border: 1px solid #ddd; - cursor: pointer; - box-sizing: border-box; -} -.mx-templategrid-empty { - display: table-cell; -} -.mx-templategrid-item.selected { - background-color: #f5f5f5; -} -.mx-templategrid-item .mx-table th, -.mx-templategrid-item .mx-table td { - padding: 2px 8px; -} - -.mx-scrollcontainer-horizontal { - width: 100%; - display: table; - table-layout: fixed; -} -.mx-scrollcontainer-horizontal > div { - display: table-cell; - vertical-align: top; -} -//.mx-scrollcontainer-wrapper { -// padding: 10px; -//} -.mx-scrollcontainer-nested { - padding: 0; -} -.mx-scrollcontainer-fixed > .mx-scrollcontainer-middle > .mx-scrollcontainer-wrapper, -.mx-scrollcontainer-fixed > .mx-scrollcontainer-left > .mx-scrollcontainer-wrapper, -.mx-scrollcontainer-fixed > .mx-scrollcontainer-center > .mx-scrollcontainer-wrapper, -.mx-scrollcontainer-fixed > .mx-scrollcontainer-right > .mx-scrollcontainer-wrapper { - overflow: auto; -} - -.mx-scrollcontainer-move-in { - transition: left 250ms ease-out; -} -.mx-scrollcontainer-move-out { - transition: left 250ms ease-in; -} -.mx-scrollcontainer-shrink .mx-scrollcontainer-toggleable { - transition-property: width; -} - -.mx-scrollcontainer-toggleable { - background-color: #fff; -} -//.mx-scrollcontainer-slide > .mx-scrollcontainer-toggleable > .mx-scrollcontainer-wrapper { -// position: relative; -// z-index: 1; -// background-color: inherit; -//} -.mx-scrollcontainer-push { - position: relative; -} -.mx-scrollcontainer-shrink > .mx-scrollcontainer-toggleable { - overflow: hidden; -} -.mx-scrollcontainer-push.mx-scrollcontainer-open > div, -.mx-scrollcontainer-slide.mx-scrollcontainer-open > div { - pointer-events: none; -} -.mx-scrollcontainer-push.mx-scrollcontainer-open > .mx-scrollcontainer-toggleable, -.mx-scrollcontainer-slide.mx-scrollcontainer-open > .mx-scrollcontainer-toggleable { - pointer-events: auto; -} - -.mx-navbar-item img, -.mx-navbar-subitem img { - height: 16px; -} - - -.mx-navigationtree .navbar-inner { - padding-left: 0; - padding-right: 0; -} -.mx-navigationtree ul { - list-style: none; -} -.mx-navigationtree ul li { - border-bottom: 1px solid #dfe6ea; -} -.mx-navigationtree li:last-child { - border-style: none; -} -.mx-navigationtree a { - display: block; - padding: 5px 10px; - color: #777; - text-shadow: 0 1px 0 #fff; - text-decoration: none; -} -.mx-navigationtree a.active { - color: #FFF; - text-shadow: none; - background: #3498DB; - border-radius: 3px; -} -.mx-navigationtree .mx-navigationtree-collapsed ul { - display: none; -} -.mx-navigationtree ul { - margin: 0; - padding: 0; -} -.mx-navigationtree ul li { - padding: 5px 0; -} -.mx-navigationtree ul li ul { - padding: 0; - margin-left: 10px; -} -.mx-navigationtree ul li ul li { - margin-left: 8px; - padding: 5px 0; -} -[dir="rtl"] .mx-navigationtree ul li ul li { - margin-left: auto; - margin-right: 8px; -} -.mx-navigationtree ul li ul li ul li { - font-size: 10px; - padding-top: 3px; - padding-bottom: 3px; -} -.mx-navigationtree ul li ul li ul li img { - vertical-align: top; -} - -.mx-link img, -.mx-button img { - height: 16px; -} -.mx-link { - padding: 6px 12px; - display: inline-block; -} - -.mx-groupbox { - margin-bottom: 10px; -} -.mx-groupbox-header { - margin: 0; - padding: 10px 15px; - color: #eee; - background: #333; - font-size: inherit; - line-height: inherit; - border-radius: 4px 4px 0 0; -} -.mx-groupbox-collapsible > .mx-groupbox-header { - cursor: pointer; -} -.mx-groupbox.collapsed > .mx-groupbox-header { - border-radius: 4px; -} -.mx-groupbox-body { - padding: 8px; - border: 1px solid #ddd; - border-radius: 4px; -} -.mx-groupbox.collapsed > .mx-groupbox-body { - display: none; -} -.mx-groupbox-header + .mx-groupbox-body { - border-top: none; - border-radius: 0 0 4px 4px; -} -.mx-groupbox-collapse-icon { - float: right; -} -[dir="rtl"] .mx-groupbox-collapse-icon { - float: left; -} - -.mx-dataview { - position: relative; -} -.mx-dataview-controls { - padding: 19px 20px 12px; - background-color: #f5f5f5; - border-top: 1px solid #eee; -} - -.mx-dataview-controls .mx-button { - margin-bottom: 8px; -} - -.mx-dataview-controls .mx-button + .mx-button { - margin-left: 0.3em; -} - -.mx-dataview-message { - background: #fff; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; -} -.mx-dataview-message > div { - display: table; - width: 100%; - height: 100%; -} -.mx-dataview-message > div > p { - display: table-cell; - text-align: center; - vertical-align: middle; -} - -/* Top-level data view in window is a special case, handle it as such. */ -.mx-window-view .mx-window-body { - padding: 0; -} -.mx-window-view .mx-window-body > .mx-dataview > .mx-dataview-content, -.mx-window-view .mx-window-body > .mx-placeholder > .mx-dataview > .mx-dataview-content { - padding: 15px; -} -.mx-window-view .mx-window-body > .mx-dataview > .mx-dataview-controls, -.mx-window-view .mx-window-body > .mx-placeholder > .mx-dataview > .mx-dataview-controls { - border-radius: 0px 0px 6px 6px; -} - -.mx-dialog { - position: fixed; - left: auto; - right: auto; - padding: 0; - width: 500px; - /* If the margin is set to auto, IE9 reports the calculated value of the - * margin as the actual value. Other browsers will just report 0. Eliminate - * this difference by setting margin to 0 for every browser. */ - margin: 0; -} -.mx-dialog-header { - cursor: move; -} -.mx-dialog-body { - overflow: auto; -} - -.mx-window { - position: fixed; - left: auto; - right: auto; - padding: 0; - width: 600px; - /* If the margin is set to auto, IE9 reports the calculated value of the - * margin as the actual value. Other browsers will just report 0. Eliminate - * this difference by setting margin to 0 for every browser. */ - margin: 0; -} -.mx-window-content { - height: 100%; - overflow: hidden; -} -.mx-window-active .mx-window-header { - background-color: #f5f5f5; - border-radius: 6px 6px 0 0; -} -.mx-window-header { - cursor: move; -} -.mx-window-body { - overflow: auto; -} - -.mx-dropdown-list * { - cursor: pointer; -} -.mx-dropdown-list img { - width: 35px; - vertical-align: middle; - margin-right: 10px; -} -[dir="rtl"] .mx-dropdown-list img { - margin-left: 10px; - margin-right: auto; -} - -.mx-dropdown-list { - padding: 0; - list-style: none; -} -.mx-dropdown-list > li { - padding: 5px 10px 10px; - border: 1px #ddd; - border-style: solid solid none; - background-color: #fff; -} -.mx-dropdown-list > li:first-child { - border-top-left-radius: 4px; - border-top-right-radius: 4px; -} -.mx-dropdown-list > li:last-child { - border-bottom-style: solid; - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; -} -.mx-dropdown-list-striped > li:nth-child(2n+1) { - background: #f9f9f9; -} -.mx-dropdown-list > li:hover { - background: #f5f5f5; -} - -.mx-header { - position: relative; - padding: 9px; - background: #333; - text-align: center; -} -.mx-header-center { - display: inline-block; - color: #eee; - line-height: 30px; /* height of buttons */ -} -body[dir="ltr"] .mx-header-left, -body[dir="rtl"] .mx-header-right { - position: absolute; - top: 9px; - left: 9px; -} -body[dir="ltr"] .mx-header-right, -body[dir="rtl"] .mx-header-left { - position: absolute; - top: 9px; - right: 9px; -} - -.mx-title { - margin-bottom: 0px; - margin-top: 0px; -} - -.mx-listview { - padding: 8px; -} -.mx-listview > ul { - padding: 0px; - list-style: none; -} -// .mx-listview > ul > li { -// padding: 5px 10px 10px; -// border: 1px #ddd; -// border-style: solid solid none; -// background-color: #fff; -// outline: none; -// } -// .mx-listview > ul > li:first-child { -// border-top-left-radius: 4px; -// border-top-right-radius: 4px; -// } -// .mx-listview > ul > li:last-child { -// border-bottom-style: solid; -// border-bottom-left-radius: 4px; -// border-bottom-right-radius: 4px; -// } -//.mx-listview li:nth-child(2n+1) { -// background: #f9f9f9; -//} -//.mx-listview li:nth-child(2n+1):hover { -// background: #f5f5f5; -//} -.mx-listview > ul > li.selected { -// background: #eee; -} -.mx-listview-clickable > ul > li { - cursor: pointer; -} -.mx-listview-empty { - color: #999; - text-align: center; -} -.mx-listview .mx-listview-loading { - padding: 10px; - line-height: 0; - text-align: center; -} -.mx-listview-searchbar { - display: flex; - margin-bottom: 10px; -} -.mx-listview-searchbar > input { - width: 100%; -} -.mx-listview-searchbar > button { - margin-left: 5px; -} -[dir="rtl"] .mx-listview-searchbar > button { - margin-left: 0; - margin-right: 5px; -} -.mx-listview-selection { - display: table-cell; - vertical-align: middle; - padding: 0 15px 0 5px; -} -[dir="rtl"] .mx-listview-selection { - padding: 0 5px 0 15px; -} -.mx-listview-selectable .mx-listview-content { - display: table-cell; - vertical-align: middle; - width: 100%; -} -.mx-listview .selected { - background: #def; -} -.mx-listview .mx-table th, -.mx-listview .mx-table td { - padding: 2px; -} - -.mx-login .form-control { - margin-top: 10px; -} - -.mx-menubar { - padding: 8px; -} -.mx-menubar-icon { - height: 16px; -} -.mx-menubar-more-icon { - display: inline-block; - width: 16px; - height: 16px; - background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAYAAAAe2bNZAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAKNJREFUeNpi/P//P8NgAUwMgwiMOmbUMaOOGXXMqGNGHTPYHMOCTfDs2bMeQKoOiI1BXCBuMjY23kFrdYzoTQigRm8gtQWLG0OBBqyhlTpc0dSOIxTraKwOq2PUcWhWp7E6rI65iUPzTRqrw+qYGhyam2isDtMxwES1CUgFAfFxqBCIDkJPbNRWhzU3jRZ6o44ZdcyoY0YdM+qYUccMUscABBgAUXpEjE/Bs/IAAAAASUVORK5CYII=) no-repeat center center; - background-size: 16px 16px; - vertical-align: middle; -} - -.mx-navigationlist { - padding: 8px; -} -.mx-navigationlist li:hover, -.mx-navigationlist li:focus, -.mx-navigationlist li.active { - color: #FFF; - background-color: #3498DB; -} -.mx-navigationlist * { - cursor: pointer; -} -.mx-navigationlist .table th, -.mx-navigationlist .table td { - padding: 2px; -} - -.mx-progress { - position: fixed; - top: 30%; - left: 0; - right: 0; - margin: auto; - width: 250px; - max-width: 90%; - background: #333; - opacity: 0.8; - z-index: 5000; - border-radius: 4px; - padding: 20px 15px; - transition: opacity 0.4s ease-in-out; -} -.mx-progress-hidden { - opacity: 0; -} -.mx-progress-message { - color: #fff; - text-align: center; - margin-bottom: 15px; -} -.mx-progress-empty .mx-progress-message { - display: none; -} -.mx-progress-indicator { - width: 70px; - height: 10px; - margin: auto; - background: url(data:image/gif;base64,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); -} - -.mx-reload-notification { - position: fixed; - z-index: 1001; - top: 0; - width: 100%; - padding: 1rem; - - border: 1px solid hsl(200, 96%, 41%); - background-color: hsl(200, 96%, 44%); - - box-shadow: 0 5px 20px rgba(1, 37, 55, 0.16); - color: white; - - text-align: center; - font-size: 14px; -} - -.mx-resizer-n, -.mx-resizer-s { - position: absolute; - left: 0; - width: 100%; - height: 10px; -} -.mx-resizer-n { - top: -5px; - cursor: n-resize; -} -.mx-resizer-s { - bottom: -5px; - cursor: s-resize; -} - -.mx-resizer-e, -.mx-resizer-w { - position: absolute; - top: 0; - width: 10px; - height: 100%; -} -.mx-resizer-e { - right: -5px; - cursor: e-resize; -} -.mx-resizer-w { - left: -5px; - cursor: w-resize; -} - -.mx-resizer-nw, -.mx-resizer-ne, -.mx-resizer-sw, -.mx-resizer-se { - position: absolute; - width: 20px; - height: 20px; -} - -.mx-resizer-nw, -.mx-resizer-ne { - top: -5px; -} -.mx-resizer-sw, -.mx-resizer-se { - bottom: -5px; -} -.mx-resizer-nw, -.mx-resizer-sw { - left: -5px; -} -.mx-resizer-ne, -.mx-resizer-se { - right: -5px; -} - -.mx-resizer-nw { - cursor: nw-resize; -} -.mx-resizer-ne { - cursor: ne-resize; -} -.mx-resizer-sw { - cursor: sw-resize; -} -.mx-resizer-se { - cursor: se-resize; -} - -.mx-text { - white-space: pre-line; -} - -.mx-textarea textarea { - resize: none; - overflow-y: hidden; -} -.mx-textarea .mx-textarea-noresize { - height: auto; - resize: vertical; - overflow-y: auto; -} -.mx-textarea .mx-textarea-counter { - font-size: smaller; -} -.mx-textarea .form-control-static { - white-space: pre-line; -} - -.mx-underlay { - position: fixed; - top: 0; - width: 100%; - height: 100%; - z-index: 1000; - opacity: 0.5; - background-color: #333; -} - -.mx-imagezoom { - position: absolute; - display: table; - width: 100%; - height: 100%; - background-color: #999; -} -.mx-imagezoom-wrapper { - display: table-cell; - text-align: center; - vertical-align: middle; -} -.mx-imagezoom-image { - max-width: none; -} - -.mx-dropdown li { - padding: 3px 20px; - cursor: pointer; -} -.mx-dropdown label { - padding: 0; - color: #333; - white-space: nowrap; - cursor: pointer; -} -.mx-dropdown input { - margin: 0; - vertical-align: middle; - cursor: pointer; -} -.mx-dropdown .selected { - background: #f8f8f8; -} -//.mx-selectbox { -// text-align: left; -//} -//.mx-selectbox-caret-wrapper { -// float: right; -// height: 100%; -//} - -.mx-demouserswitcher { - position: fixed; - top: 0; - right: 0; - width: 360px; - height: 100%; - z-index: 20000; - box-shadow: -1px 0 5px rgba(28,59,86,.2); -} -.mx-demouserswitcher-content { - padding: 80px 40px 20px; - height: 100%; - color: #387ea2; - font-size: 14px; - overflow: auto; - background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOgAAABgCAYAAAAXSj7NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0MzkwOTREMDQ2NEYxMUU0QTQ4MUI5NTNGMUQ3QzE5NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0MzkwOTREMTQ2NEYxMUU0QTQ4MUI5NTNGMUQ3QzE5NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc0REMyMUZGNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc0REMyMjAwNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+g1tRlwAAEFFJREFUeNrsnYl3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) top right no-repeat #1b3149; - /* background-attachement local is not supported on IE8 - * when this is part of background the complete background is ignored */ - background-attachment: local; -} -.mx-demouserswitcher ul { - padding: 0; - margin-top: 25px; - list-style-type: none; - border-top: 1px solid #496076; -} -.mx-demouserswitcher a { - display: block; - padding: 10px 0; - color: #387ea2; - border-bottom: 1px solid #496076; -} -.mx-demouserswitcher h2 { - margin: 20px 0 5px; - color: #5bc4fe; - font-size: 28px; -} -.mx-demouserswitcher h3 { - margin: 0 0 2px; - color: #5bc4fe; - font-size: 18px; - font-weight: normal; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} -.mx-demouserswitcher .active h3 { - color: #11efdb; -} -.mx-demouserswitcher p { - margin-bottom: 0; -} -.mx-demouserswitcher-toggle { - position: absolute; - top: 25%; - left: -35px; - width: 35px; - height: 38px; - margin-top: -40px; - cursor: pointer; - border-top-left-radius: 3px; - border-bottom-left-radius: 3px; - box-shadow: -1px 0 5px rgba(28,59,86,.2); - background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3NERDMjFGRDQ2NEMxMUU0QTQ4MUI5NTNGMUQ3QzE5NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3NERDMjFGRTQ2NEMxMUU0QTQ4MUI5NTNGMUQ3QzE5NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc0REMyMUZCNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc0REMyMUZDNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+1ZovNAAAAWdJREFUeNqM1M0rRFEYx/E7Y5qIQpOUbIiymQWysBgvJVJK2VgryZQtKSULZelPsB0LZaNZjJUNK1FskJqUvCS3NAsZc3zP9NziOOfeeepTc8/c8+vc8xZTSnmOakEGKdzgDBXXy54OMsSwjpL6W9cYsrxfZWvcUu7y0VdLUCc+VXgd2oLixpfOIOmF17TtHTOozYuupCxAaNB9DUEfeDUbE8bzEXxZerP00l8hh3LUiHTIMr6N9j2ksYoihv/1deyLSVzKKm1jEW+WfZV2Lf8gskjIcwcWpOM++pHCFPLosgWtoCyd7jCPOjzhGHHLyDPY1achaJhDxRj6rBwJXUuoN0IG8IIv7OiGBjxadvAITuT3rex6c0SbKASflnUcBT3JTThAjyWkGUVsBEEFR5CerzXpNIacrFIrJnCBB3muBvkhB1TP27hM/Lvx3zl6gxHqu6c74kiU8IxGjKJdLrrT3xfdjwADAJaMxP2bvD2BAAAAAElFTkSuQmCC) center center no-repeat #1b3149; -} - -/* master details screen for mobile */ -.mx-master-detail-screen { - top: 0; - left: 0; - overflow: auto; - width: 100%; - height: 100%; - position: absolute; - background-color: white; - will-change: transform; -} - -.mx-master-detail-screen .mx-master-detail-details { - padding: 15px; -} - -.mx-master-detail-screen-header { - position: relative; - overflow: auto; - border-bottom: 1px solid #ccc; - background-color: #f7f7f7; -} - -.mx-master-detail-screen-header-caption { - text-align: center; - font-size: 17px; - line-height: 24px; - font-weight: 600; -} - -.mx-master-detail-screen-header-close { - position: absolute; - left: 0; - top: 0; - height: 100%; - width: 50px; - border: none; - background: transparent; - color: #007aff; -} - -body[dir="rtl"] .mx-master-detail-screen-header-close { - right: 0; - left: auto; -} - -.mx-master-detail-screen-header-close::before { - content: "\2039"; - font-size: 52px; - line-height: 24px; -} - -/* classes for content page */ -.mx-master-detail-content-fix { - height: 100vh; - overflow: hidden; -} - -.mx-master-detail-content-hidden { - transform: translateX(-200%); -} - -body[dir="rtl"] .mx-master-detail-content-hidden { - transform: translateX(200%); -} -.reportingReport { - padding: 5px; - border: 1px solid #ddd; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} - -.reportingReportParameter th { - text-align: right; -} - -.reportingDateRange table { - width: 100%; - table-layout: fixed; -} -.reportingDateRange th { - padding: 5px; - text-align: right; - background-color: #eee; -} -.reportingDateRange td { - padding: 5px; -} - -.mx-reportmatrix table { - width: 100%; - max-width: 100%; - table-layout: fixed; - margin-bottom: 0; -} - -.mx-reportmatrix th, .mx-reportmatrix td { - padding: 8px; - line-height: 1.42857143; - vertical-align: bottom; - border: 1px solid #ddd; -} - -.mx-reportmatrix tbody tr:first-child td { - border-top: none; -} - -.mx-reportmatrix tbody tr:nth-child(2n+1) td { - background-color: #f9f9f9; -} - -.mx-reportmatrix tbody img { - max-width: 16px; - max-height: 16px; -} - -@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) { - .dijitInline { - zoom: 1; /* set hasLayout:true to mimic inline-block */ - display:inline; /* don't use .dj_ie since that increases the priority */ - vertical-align: auto; /* makes TextBox,Button line up w/native counterparts on IE6 */ - } - - .dj_ie6 .dijitComboBox .dijitInputContainer, - .dijitInputContainer { - zoom: 1; - } - - .dijitRight { - /* Right part of a 3-element border */ - display:inline; /* IE7 sizes to outer size w/o this */ - } - - .dijitButtonNode { - vertical-align: auto; - } - - .dijitTextBox { - overflow: hidden; /* #6027, #6067 */ - } - - .dijitPlaceHolder { - filter: ""; /* make this show up in IE6 after the rendering of the widget */ - } - - .dijitValidationTextBoxError input.dijitValidationInner, - .dijitSelect input, - .dijitTextBox input.dijitArrowButtonInner { - text-indent: 0 !important; - letter-spacing: -5em !important; - text-align: right !important; - } - - .dj_a11y input.dijitValidationInner, - .dj_a11y input.dijitArrowButtonInner { - text-align: left !important; - } - - .dijitSpinner .dijitSpinnerButtonContainer .dijitUpArrowButton { - bottom: 50%; /* otherwise (on some machines) top arrow icon too close to splitter border (IE6/7) */ - } - - .dijitTabContainerTop-tabs .dijitTab, - .dijitTabContainerBottom-tabs .dijitTab { - zoom: 1; /* set hasLayout:true to mimic inline-block */ - display:inline; /* don't use .dj_ie since that increases the priority */ - } - - .dojoDndHorizontal .dojoDndItem { - /* make contents of horizontal container be side by side, rather than vertical */ - display: inline; - } -} - - - -/* WARNING: IE9 limits nested imports to three levels deep: http://jorgealbaladejo.com/2011/05/28/internet-explorer-limits-nested-import-css-statements */ - -/* dijit base */ - -/* mendix base */ - -/* widgets */ - -/* reporting */ - - -/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9kb2pvL2Rpaml0L3RoZW1lcy9kaWppdC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS9iYXNlLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL2Zvcm1zLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9Ub29sdGlwLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9UYWJDb250YWluZXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L19HcmlkLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9DYWxlbmRhci5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvRGF0YUdyaWQuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RlbXBsYXRlR3JpZC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvU2Nyb2xsQ29udGFpbmVyLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9OYXZiYXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L05hdmlnYXRpb25UcmVlLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9CdXR0b24uY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L0dyb3VwQm94LmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9EYXRhVmlldy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvRGlhbG9nLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9XaW5kb3cuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L0Ryb3BEb3duLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9IZWFkZXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RpdGxlLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9MaXN0Vmlldy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvTG9naW5EaWFsb2cuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L01lbnVCYXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L05hdmlnYXRpb25MaXN0LmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9Qcm9ncmVzcy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvUmVsb2FkTm90aWZpY2F0aW9uLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9SZXNpemFibGUuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RleHQuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RleHRBcmVhLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9VbmRlcmxheS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvSW1hZ2Vab29tLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9TZWxlY3RCb3guY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L0RlbW9Vc2VyU3dpdGNoZXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L01hc3RlckRldGFpbC5jc3MiLCJ3ZWJwYWNrOi8vLy4vcmVwb3J0aW5nL3VpL3dpZGdldC9SZXBvcnQuY3NzIiwid2VicGFjazovLy8uL3JlcG9ydGluZy91aS93aWRnZXQvUmVwb3J0UGFyYW1ldGVyLmNzcyIsIndlYnBhY2s6Ly8vLi9yZXBvcnRpbmcvdWkvd2lkZ2V0L0RhdGVSYW5nZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vcmVwb3J0aW5nL3VpL3dpZGdldC9SZXBvcnRNYXRyaXguY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvbXh1aS5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7Ozs7QUFJQTtBQUNBO0FBQ0E7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QUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QjtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkIsd0JBQXdCO0FBQ3hCLFdBQVc7QUFDWDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLHlDQUF5QztBQUN4RDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLHdCQUF3QixvQkFBb0I7O0FBRTVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZjs7QUFFQTtBQUNBO0FBQ0EsK0JBQStCO0FBQy9CLFlBQVk7QUFDWjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQ7QUFDakQsMEJBQTBCO0FBQzFCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0EsYUFBYTtBQUNiLGFBQWEsd0RBQXdEO0FBQ3JFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0Esd0JBQXdCO0FBQ3hCOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtB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QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxrQkFBa0I7QUFDbEI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7QUFFQTtBQUNBLGdCQUFnQjtBQUNoQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQztBQUNqQztBQUNBO0FBQ0EsNEJBQTRCO0FBQzVCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHFCQUFxQjtBQUNyQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxpQkFBaUI7O0FBRWpCO0FBQ0E7QUFDQSwyQkFBMkI7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdnNFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQzs7O0FDOUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUN6REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0M7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmOztBQzdCQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JGQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQzFCQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLDhCQUE4QjtBQUN0QyxVQUFVLCtCQUErQjtBQUN6Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUN0R0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyREE7QUFDQTtBQUNBO0FBQ0E7OztBQ0hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RCQTtBQUNBO0FBQ0E7QUFDQTs7QUNIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN0VBO0FBQ0E7QUFDQTs7QUNGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQztBQUNBO0FBQ0E7O0FDYkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDZkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DO0FBQ25DOztBQy9CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JFQTtBQUNBO0FBQ0E7O0FDRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDZEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUM7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQzs7QUMvREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxDO0FDaEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ05BO0FBQ0E7QUFDQTs7QUNGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDWEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDekJBOztBQUVBOztBQUVBOztBQUVBOztBQUVBIiwiZmlsZSI6Im14dWkvdWkvbXh1aS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuXHRFc3NlbnRpYWwgc3R5bGVzIHRoYXQgdGhlbWVzIGNhbiBpbmhlcml0LlxuXHRJbiBvdGhlciB3b3Jkcywgd29ya3MgYnV0IGRvZXNuJ3QgbG9vayBncmVhdC5cbiovXG5cblxuXG4vKioqKlxuXHRcdEdFTkVSSUMgUElFQ0VTXG4gKioqKi9cblxuLmRpaml0UmVzZXQge1xuXHQvKiBVc2UgdGhpcyBzdHlsZSB0byBudWxsIG91dCBwYWRkaW5nLCBtYXJnaW4sIGJvcmRlciBpbiB5b3VyIHRlbXBsYXRlIGVsZW1lbnRzXG5cdFx0c28gdGhhdCBwYWdlIHNwZWNpZmljIHN0eWxlcyBkb24ndCBicmVhayB0aGVtLlxuXHRcdC0gVXNlIGluIGFsbCBUQUJMRSwgVFIgYW5kIFREIHRhZ3MuXG5cdCovXG5cdG1hcmdpbjowO1xuXHRib3JkZXI6MDtcblx0cGFkZGluZzowO1xuXHRmb250OiBpbmhlcml0O1xuXHRsaW5lLWhlaWdodDpub3JtYWw7XG5cdGNvbG9yOiBpbmhlcml0O1xufVxuLmRqX2ExMXkgLmRpaml0UmVzZXQge1xuXHQtbW96LWFwcGVhcmFuY2U6IG5vbmU7IC8qIHJlbW92ZSBwcmVkZWZpbmVkIGhpZ2gtY29udHJhc3Qgc3R5bGluZyBpbiBGaXJlZm94ICovXG59XG5cbi5kaWppdElubGluZSB7XG5cdC8qICBUbyBpbmxpbmUgYmxvY2sgZWxlbWVudHMuXG5cdFx0U2ltaWxhciB0byBJbmxpbmVCb3ggYmVsb3csIGJ1dCB0aGlzIGhhcyBmZXdlciBzaWRlLWVmZmVjdHMgaW4gTW96LlxuXHRcdEFsc28sIGFwcGFyZW50bHkgd29ya3Mgb24gYSBESVYgYXMgd2VsbCBhcyBhIEZJRUxEU0VULlxuXHQqL1xuXHRkaXNwbGF5OmlubGluZS1ibG9jaztcdFx0XHQvKiB3ZWJraXQgYW5kIEZGMyAqL1xuXHQjem9vbTogMTsgLyogc2V0IGhhc0xheW91dDp0cnVlIHRvIG1pbWljIGlubGluZS1ibG9jayAqL1xuXHQjZGlzcGxheTppbmxpbmU7IC8qIGRvbid0IHVzZSAuZGpfaWUgc2luY2UgdGhhdCBpbmNyZWFzZXMgdGhlIHByaW9yaXR5ICovXG5cdGJvcmRlcjowO1xuXHRwYWRkaW5nOjA7XG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0I3ZlcnRpY2FsLWFsaWduOiBhdXRvO1x0LyogbWFrZXMgVGV4dEJveCxCdXR0b24gbGluZSB1cCB3L25hdGl2ZSBjb3VudGVycGFydHMgb24gSUU2ICovXG59XG5cbnRhYmxlLmRpaml0SW5saW5lIHtcblx0LyogVG8gaW5saW5lIHRhYmxlcyB3aXRoIGEgZ2l2ZW4gd2lkdGggc2V0ICovXG5cdGRpc3BsYXk6aW5saW5lLXRhYmxlO1xuXHRib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cblxuLmRpaml0SGlkZGVuIHtcblx0LyogVG8gaGlkZSB1bnNlbGVjdGVkIHBhbmVzIGluIFN0YWNrQ29udGFpbmVyIGV0Yy4gKi9cblx0cG9zaXRpb246IGFic29sdXRlOyAvKiByZW1vdmUgZnJvbSBub3JtYWwgZG9jdW1lbnQgZmxvdyB0byBzaW11bGF0ZSBkaXNwbGF5OiBub25lICovXG5cdHZpc2liaWxpdHk6IGhpZGRlbjsgLyogaGlkZSBlbGVtZW50IGZyb20gdmlldywgYnV0IGRvbid0IGJyZWFrIHNjcm9sbGluZywgc2VlICMxODYxMiAqL1xufVxuLmRpaml0SGlkZGVuICoge1xuXHR2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDsgLyogaGlkZSB2aXNpYmlsaXR5OnZpc2libGUgZGVzY2VuZGFudHMgb2YgY2xhc3M9ZGlqaXRIaWRkZW4gbm9kZXMsIHNlZSAjMTg3OTkgKi9cbn1cblxuLmRpaml0VmlzaWJsZSB7XG5cdC8qIFRvIHNob3cgc2VsZWN0ZWQgcGFuZSBpbiBTdGFja0NvbnRhaW5lciBldGMuICovXG5cdGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHQvKiBvdmVycmlkZSB1c2VyJ3MgZGlzcGxheTpub25lIHNldHRpbmcgdmlhIHN0eWxlIHNldHRpbmcgb3IgaW5kaXJlY3RseSB2aWEgY2xhc3MgKi9cblx0cG9zaXRpb246IHJlbGF0aXZlO1x0XHRcdC8qIHRvIHN1cHBvcnQgc2V0dGluZyB3aWR0aC9oZWlnaHQsIHNlZSAjMjAzMyAqL1xuXHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuXG4uZGpfaWU2IC5kaWppdENvbWJvQm94IC5kaWppdElucHV0Q29udGFpbmVyLFxuLmRpaml0SW5wdXRDb250YWluZXIge1xuXHQvKiBmb3IgcG9zaXRpb25pbmcgb2YgcGxhY2VIb2xkZXIgKi9cblx0I3pvb206IDE7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGZsb2F0OiBub25lICFpbXBvcnRhbnQ7IC8qIG5lZWRlZCB0byBzcXVlZXplIHRoZSBJTlBVVCBpbiAqL1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uZGpfaWU3IC5kaWppdElucHV0Q29udGFpbmVyIHtcblx0ZmxvYXQ6IGxlZnQgIWltcG9ydGFudDsgLyogbmVlZGVkIGJ5IElFIHRvIHNxdWVlemUgdGhlIElOUFVUIGluICovXG5cdGNsZWFyOiBsZWZ0O1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgLyogdG8gZml4IHdyb25nIHRleHQgYWxpZ25tZW50IGluIHRleHRkaXI9cnRsIHRleHQgYm94ICovXG59XG5cbi5kal9pZSAuZGlqaXRTZWxlY3QgaW5wdXQsXG4uZGpfaWUgaW5wdXQuZGlqaXRUZXh0Qm94LFxuLmRqX2llIC5kaWppdFRleHRCb3ggaW5wdXQge1xuXHRmb250LXNpemU6IDEwMCU7XG59XG4uZGlqaXRTZWxlY3QgLmRpaml0QnV0dG9uVGV4dCB7XG5cdGZsb2F0OiBsZWZ0O1xuXHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuVEFCTEUuZGlqaXRTZWxlY3Qge1xuXHRwYWRkaW5nOiAwICFpbXBvcnRhbnQ7IC8qIG1lc3NlcyB1cCBib3JkZXIgYWxpZ25tZW50ICovXG5cdGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7IC8qIHNvIGpzZmlkZGxlIHdvcmtzIHdpdGggTm9ybWFsaXplZCBDU1MgY2hlY2tlZCAqL1xufVxuLmRpaml0VGV4dEJveCAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyLFxuLmRpaml0VGV4dEJveCAuZGlqaXRBcnJvd0J1dHRvbkNvbnRhaW5lcixcbi5kaWppdFZhbGlkYXRpb25UZXh0Qm94IC5kaWppdFZhbGlkYXRpb25Db250YWluZXIge1xuXHRmbG9hdDogcmlnaHQ7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5kaWppdFNlbGVjdCBpbnB1dC5kaWppdElucHV0RmllbGQsXG4uZGlqaXRUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRGaWVsZCB7XG5cdC8qIG92ZXJyaWRlIHVucmVhc29uYWJsZSB1c2VyIHN0eWxpbmcgb2YgYnV0dG9ucyBhbmQgaWNvbnMgKi9cblx0cGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbn1cbi5kaWppdFZhbGlkYXRpb25UZXh0Qm94IC5kaWppdFZhbGlkYXRpb25Db250YWluZXIge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uZGlqaXRUZWVueSB7XG5cdGZvbnQtc2l6ZToxcHg7XG5cdGxpbmUtaGVpZ2h0OjFweDtcbn1cblxuLmRpaml0T2ZmU2NyZWVuIHsgLyogdGhlc2UgY2xhc3MgYXR0cmlidXRlcyBzaG91bGQgc3VwZXJzZWRlIGFueSBpbmxpbmUgcG9zaXRpb25pbmcgc3R5bGUgKi9cblx0cG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG5cdGxlZnQ6IC0xMDAwMHB4ICFpbXBvcnRhbnQ7XG5cdHRvcDogLTEwMDAwcHggIWltcG9ydGFudDtcbn1cblxuLypcbiAqIFBvcHVwIGl0ZW1zIGhhdmUgYSB3cmFwcGVyIGRpdiAoZGlqaXRQb3B1cClcbiAqIHdpdGggdGhlIHJlYWwgcG9wdXAgaW5zaWRlLCBhbmQgbWF5YmUgYW4gaWZyYW1lIHRvb1xuICovXG4uZGlqaXRQb3B1cCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdG1hcmdpbjogMDtcblx0Ym9yZGVyOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHQtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG5cbi5kaWppdFBvc2l0aW9uT25seSB7XG5cdC8qIE51bGwgb3V0IGFsbCBwb3NpdGlvbi1yZWxhdGVkIHByb3BlcnRpZXMgKi9cblx0cGFkZGluZzogMCAhaW1wb3J0YW50O1xuXHRib3JkZXI6IDAgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcblx0d2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLmRpaml0Tm9uUG9zaXRpb25Pbmx5IHtcblx0LyogTnVsbCBwb3NpdGlvbi1yZWxhdGVkIHByb3BlcnRpZXMgKi9cblx0ZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcblx0cG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuXHRtYXJnaW46IDAgMCAwIDAgIWltcG9ydGFudDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50O1xufVxuXG4uZGlqaXRCYWNrZ3JvdW5kSWZyYW1lIHtcblx0LyogaWZyYW1lIHVzZWQgdG8gcHJldmVudCBwcm9ibGVtcyB3aXRoIFBERiBvciBvdGhlciBhcHBsZXRzIG92ZXJsYXlpbmcgbWVudXMgZXRjICovXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogMDtcblx0dG9wOiAwO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHR6LWluZGV4OiAtMTtcblx0Ym9yZGVyOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHRtYXJnaW46IDA7XG59XG5cbi5kaWppdERpc3BsYXlOb25lIHtcblx0LyogaGlkZSBzb21ldGhpbmcuICBVc2UgdGhpcyBhcyBhIGNsYXNzIHJhdGhlciB0aGFuIGVsZW1lbnQuc3R5bGUgc28gYW5vdGhlciBjbGFzcyBjYW4gb3ZlcnJpZGUgKi9cblx0ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdENvbnRhaW5lciB7XG5cdC8qIGZvciBhbGwgbGF5b3V0IGNvbnRhaW5lcnMgKi9cblx0b3ZlcmZsb3c6IGhpZGRlbjtcdC8qIG5lZWQgb24gSUUgc28gc29tZXRoaW5nIGNhbiBiZSByZWR1Y2VkIGluIHNpemUsIGFuZCBzbyBzY3JvbGxiYXJzIGFyZW4ndCB0ZW1wb3JhcmlseSBkaXNwbGF5ZWQgd2hlbiByZXNpemluZyAqL1xufVxuXG4vKioqKlxuXHRcdEExMVlcbiAqKioqL1xuLmRqX2ExMXkgLmRpaml0SWNvbixcbi5kal9hMTF5IGRpdi5kaWppdEFycm93QnV0dG9uSW5uZXIsIC8qIGlzIHRoaXMgb25seSBmb3IgU3Bpbm5lcj8gIGlmIHNvLCBpdCBzaG91bGQgYmUgZGVsZXRlZCAqL1xuLmRqX2ExMXkgc3Bhbi5kaWppdEFycm93QnV0dG9uSW5uZXIsXG4uZGpfYTExeSBpbWcuZGlqaXRBcnJvd0J1dHRvbklubmVyLFxuLmRqX2ExMXkgLmRpaml0Q2FsZW5kYXJJbmNyZW1lbnRDb250cm9sLFxuLmRqX2ExMXkgLmRpaml0VHJlZUV4cGFuZG8ge1xuXHQvKiBoaWRlIGljb24gbm9kZXMgaW4gaGlnaCBjb250cmFzdCBtb2RlOyB3aGVuIG5lY2Vzc2FyeSB0aGV5IHdpbGwgYmUgcmVwbGFjZWQgYnkgY2hhcmFjdGVyIGVxdWl2YWxlbnRzXG5cdCAqIGV4Y2VwdGlvbiBmb3IgaW5wdXQuZGlqaXRBcnJvd0J1dHRvbklubmVyLCBiZWNhdXNlIHRoZSBpY29uIGFuZCBjaGFyYWN0ZXIgYXJlIGNvbnRyb2xsZWQgYnkgdGhlIHNhbWUgbm9kZSAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuLmRpaml0U3Bpbm5lciBkaXYuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0ZGlzcGxheTogYmxvY2s7IC8qIG92ZXJyaWRlIHByZXZpb3VzIHJ1bGUgKi9cbn1cblxuLmRqX2ExMXkgLmRpaml0QTExeVNpZGVBcnJvdyB7XG5cdGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyAvKiBkaXNwbGF5IHRleHQgaW5zdGVhZCAqL1xuXHRjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8qXG4gKiBTaW5jZSB3ZSBjYW4ndCB1c2Ugc2hhZGluZyBpbiBhMTF5IG1vZGUsIGFuZCBzaW5jZSB0aGUgdW5kZXJsaW5lIGluZGljYXRlcyB0b2RheSdzIGRhdGUsXG4gKiB1c2UgYSBib3JkZXIgdG8gc2hvdyB0aGUgc2VsZWN0ZWQgZGF0ZS5cbiAqIEF2b2lkIHNjcmVlbiBqaXR0ZXIgd2hlbiBzd2l0Y2hpbmcgc2VsZWN0ZWQgZGF0ZSBieSBjb21wZW5zYXRpbmcgZm9yIHRoZSBzZWxlY3RlZCBub2RlJ3NcbiAqIGJvcmRlciB3L3BhZGRpbmcgb24gb3RoZXIgbm9kZXMuXG4gKi9cbi5kal9hMTF5IC5kaWppdENhbGVuZGFyRGF0ZUxhYmVsIHtcblx0cGFkZGluZzogMXB4O1xuXHRib3JkZXI6IDBweCAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0Q2FsZW5kYXJTZWxlY3RlZERhdGUgLmRpaml0Q2FsZW5kYXJEYXRlTGFiZWwge1xuXHRib3JkZXItc3R5bGU6IHNvbGlkICFpbXBvcnRhbnQ7XG5cdGJvcmRlci13aWR0aDogMXB4ICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmc6IDA7XG59XG4uZGpfYTExeSAuZGlqaXRDYWxlbmRhckRhdGVUZW1wbGF0ZSB7XG5cdHBhZGRpbmctYm90dG9tOiAwLjFlbSAhaW1wb3J0YW50O1x0Lyogb3RoZXJ3aXNlIGJvdHRvbSBib3JkZXIgZG9lc24ndCBhcHBlYXIgb24gSUUgKi9cblx0Ym9yZGVyOiAwcHggIWltcG9ydGFudDtcbn1cbi5kal9hMTF5IC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXI6IGJsYWNrIG91dHNldCBtZWRpdW0gIWltcG9ydGFudDtcblxuXHQvKiBJbiBjbGFybywgaG92ZXJpbmcgYSB0b29sYmFyIGJ1dHRvbiByZWR1Y2VzIHBhZGRpbmcgYW5kIGFkZHMgYSBib3JkZXIuXG5cdCAqIE5vdCBuZWVkZWQgaW4gYTExeSBtb2RlIHNpbmNlIFRvb2xiYXIgYnV0dG9ucyBhbHdheXMgaGF2ZSBhIGJvcmRlci5cblx0ICovXG5cdHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbn1cbi5kal9hMTF5IC5kaWppdEFycm93QnV0dG9uIHtcblx0cGFkZGluZzogMCAhaW1wb3J0YW50O1xufVxuXG4uZGpfYTExeSAuZGlqaXRCdXR0b25Db250ZW50cyB7XG5cdG1hcmdpbjogMC4xNWVtOyAvKiBNYXJnaW4gbmVlZGVkIHRvIG1ha2UgZm9jdXMgb3V0bGluZSB2aXNpYmxlICovXG59XG5cbi5kal9hMTF5IC5kaWppdFRleHRCb3hSZWFkT25seSAuZGlqaXRJbnB1dEZpZWxkLFxuLmRqX2ExMXkgLmRpaml0VGV4dEJveFJlYWRPbmx5IC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXItc3R5bGU6IG91dHNldCFpbXBvcnRhbnQ7XG5cdGJvcmRlci13aWR0aDogbWVkaXVtIWltcG9ydGFudDtcblx0Ym9yZGVyLWNvbG9yOiAjOTk5ICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiM5OTkgIWltcG9ydGFudDtcbn1cblxuLyogYnV0dG9uIGlubmVyIGNvbnRlbnRzIC0gbGFiZWxzLCBpY29ucyBldGMuICovXG4uZGlqaXRCdXR0b25Ob2RlICoge1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmRpaml0U2VsZWN0IC5kaWppdEFycm93QnV0dG9uSW5uZXIsXG4uZGlqaXRCdXR0b25Ob2RlIC5kaWppdEFycm93QnV0dG9uSW5uZXIge1xuXHQvKiB0aGUgYXJyb3cgaWNvbiBub2RlICovXG5cdGJhY2tncm91bmQ6IG5vLXJlcGVhdCBjZW50ZXI7XG5cdHdpZHRoOiAxMnB4O1xuXHRoZWlnaHQ6IDEycHg7XG5cdGRpcmVjdGlvbjogbHRyOyAvKiBuZWVkZWQgYnkgSUUvUlRMICovXG59XG5cbi8qKioqXG5cdDMtZWxlbWVudCBib3JkZXJzOiAgKCBkaWppdExlZnQgKyBkaWppdFN0cmV0Y2ggKyBkaWppdFJpZ2h0IClcblx0VGhlc2Ugd2VyZSBhZGRlZCBmb3Igcm91bmRlZCBjb3JuZXJzIG9uIGRpaml0LmZvcm0uKkJ1dHRvbiBidXQgbmV2ZXIgYWN0dWFsbHkgdXNlZC5cbiAqKioqL1xuXG4uZGlqaXRMZWZ0IHtcblx0LyogTGVmdCBwYXJ0IG9mIGEgMy1lbGVtZW50IGJvcmRlciAqL1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgdG9wO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XG59XG5cbi5kaWppdFN0cmV0Y2gge1xuXHQvKiBNaWRkbGUgKHN0cmV0Y2h5KSBwYXJ0IG9mIGEgMy1lbGVtZW50IGJvcmRlciAqL1xuXHR3aGl0ZS1zcGFjZTpub3dyYXA7XHRcdFx0LyogTU9XOiBtb3ZlIHNvbWV3aGVyZSBlbHNlICovXG5cdGJhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14O1xufVxuXG4uZGlqaXRSaWdodCB7XG5cdC8qIFJpZ2h0IHBhcnQgb2YgYSAzLWVsZW1lbnQgYm9yZGVyICovXG5cdCNkaXNwbGF5OmlubGluZTtcdFx0XHRcdC8qIElFNyBzaXplcyB0byBvdXRlciBzaXplIHcvbyB0aGlzICovXG5cdGJhY2tncm91bmQtcG9zaXRpb246cmlnaHQgdG9wO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XG59XG5cbi8qIEJ1dHRvbnMgKi9cbi5kal9nZWNrbyAuZGpfYTExeSAuZGlqaXRCdXR0b25EaXNhYmxlZCAuZGlqaXRCdXR0b25Ob2RlIHtcblx0b3BhY2l0eTogMC41O1xufVxuXG4uZGlqaXRUb2dnbGVCdXR0b24sXG4uZGlqaXRCdXR0b24sXG4uZGlqaXREcm9wRG93bkJ1dHRvbixcbi5kaWppdENvbWJvQnV0dG9uIHtcblx0Lyogb3V0c2lkZSBvZiBidXR0b24gKi9cblx0bWFyZ2luOiAwLjJlbTtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHRkaXNwbGF5OiBibG9jaztcdFx0LyogdG8gbWFrZSBmb2N1cyBib3JkZXIgcmVjdGFuZ3VsYXIgKi9cbn1cbnRkLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHRkaXNwbGF5OiB0YWJsZS1jZWxsO1x0LyogYnV0IGRvbid0IGFmZmVjdCBTZWxlY3QsIENvbWJvQnV0dG9uICovXG59XG5cbi5kaWppdEJ1dHRvbk5vZGUgaW1nIHtcblx0LyogbWFrZSB0ZXh0IGFuZCBpbWFnZXMgbGluZSB1cCBjbGVhbmx5ICovXG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0LyptYXJnaW4tYm90dG9tOi4yZW07Ki9cbn1cblxuLmRpaml0VG9vbGJhciAuZGlqaXRDb21ib0J1dHRvbiB7XG5cdC8qIGJlY2F1c2UgVG9vbGJhciBvbmx5IGRyYXdzIGEgYm9yZGVyIGFyb3VuZCB0aGUgaG92ZXJlZCB0aGluZyAqL1xuXHRib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xufVxuXG4uZGlqaXRUb29sYmFyIC5kaWppdFRvZ2dsZUJ1dHRvbixcbi5kaWppdFRvb2xiYXIgLmRpaml0QnV0dG9uLFxuLmRpaml0VG9vbGJhciAuZGlqaXREcm9wRG93bkJ1dHRvbixcbi5kaWppdFRvb2xiYXIgLmRpaml0Q29tYm9CdXR0b24ge1xuXHRtYXJnaW46IDA7XG59XG5cbi5kaWppdFRvb2xiYXIgLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHQvKiBqdXN0IGJlY2F1c2UgaXQgdXNlZCB0byBiZSB0aGlzIHdheSAqL1xuXHRwYWRkaW5nOiAxcHggMnB4O1xufVxuXG5cbi5kal93ZWJraXQgLmRpaml0VG9vbGJhciAuZGlqaXREcm9wRG93bkJ1dHRvbiB7XG5cdHBhZGRpbmctbGVmdDogMC4zZW07XG59XG4uZGpfZ2Vja28gLmRpaml0VG9vbGJhciAuZGlqaXRCdXR0b25Ob2RlOjotbW96LWZvY3VzLWlubmVyIHtcblx0cGFkZGluZzowO1xufVxuXG4uZGlqaXRTZWxlY3Qge1xuXHRib3JkZXI6MXB4IHNvbGlkIGdyYXk7XG59XG4uZGlqaXRCdXR0b25Ob2RlIHtcblx0LyogTm9kZSB0aGF0IGlzIGFjdGluZyBhcyBhIGJ1dHRvbiAtLSBtYXkgb3IgbWF5IG5vdCBiZSBhIEJVVFRPTiBlbGVtZW50ICovXG5cdGJvcmRlcjoxcHggc29saWQgZ3JheTtcblx0bWFyZ2luOjA7XG5cdGxpbmUtaGVpZ2h0Om5vcm1hbDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0I3ZlcnRpY2FsLWFsaWduOiBhdXRvO1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5kal93ZWJraXQgLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIHtcblx0LyogYXBwYXJlbnQgV2ViS2l0IGJ1ZyB3aGVyZSBtZXNzaW5nIHdpdGggdGhlIGZvbnQgY291cGxlZCB3aXRoIGxpbmUtaGVpZ2h0Om5vcm1hbCBYIDIgKGRpaml0UmVzZXQgJiBkaWppdEJ1dHRvbk5vZGUpXG5cdGNhbiBiZSBkaWZmZXJlbnQgdGhhbiBqdXN0IGEgc2luZ2xlIGxpbmUtaGVpZ2h0Om5vcm1hbCwgdmlzaWJsZSBpbiBJbmxpbmVFZGl0Qm94L1NwaW5uZXIgKi9cblx0bGluZS1oZWlnaHQ6aW5oZXJpdDtcbn1cbi5kaWppdFRleHRCb3ggLmRpaml0QnV0dG9uTm9kZSB7XG5cdGJvcmRlci13aWR0aDogMDtcbn1cblxuLmRpaml0U2VsZWN0LFxuLmRpaml0U2VsZWN0ICosXG4uZGlqaXRCdXR0b25Ob2RlLFxuLmRpaml0QnV0dG9uTm9kZSAqIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uZGpfaWUgLmRpaml0QnV0dG9uTm9kZSB7XG5cdC8qIGVuc3VyZSBoYXNMYXlvdXQgKi9cblx0em9vbTogMTtcbn1cblxuLmRqX2llIC5kaWppdEJ1dHRvbk5vZGUgYnV0dG9uIHtcblx0Lypcblx0XHRkaXNndXN0aW5nIGhhY2sgdG8gZ2V0IHJpZCBvZiBzcHVyaW91cyBwYWRkaW5nIGFyb3VuZCBidXR0b24gZWxlbWVudHNcblx0XHRvbiBJRS4gTVNJRSBpcyB0cnVseSB0aGUgd2ViJ3MgYm9hdCBhbmNob3IuXG5cdCovXG5cdG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG5kaXYuZGlqaXRBcnJvd0J1dHRvbiB7XG5cdGZsb2F0OiByaWdodDtcbn1cblxuLyoqKioqKlxuXHRUZXh0Qm94IHJlbGF0ZWQuXG5cdEV2ZXJ5dGhpbmcgdGhhdCBoYXMgYW4gPGlucHV0PlxuKioqKioqKi9cblxuLmRpaml0VGV4dEJveCB7XG5cdGJvcmRlcjogc29saWQgYmxhY2sgMXB4O1xuXHQjb3ZlcmZsb3c6IGhpZGRlbjsgLyogIzYwMjcsICM2MDY3ICovXG5cdHdpZHRoOiAxNWVtO1x0LyogbmVlZCB0byBzZXQgZGVmYXVsdCBzaXplIG9uIG91dGVyIG5vZGUgc2luY2UgaW5uZXIgbm9kZXMgc2F5IDxpbnB1dCBzdHlsZT1cIndpZHRoOjEwMCVcIj4gYW5kIDx0ZCB3aWR0aD0xMDAlPi4gIHVzZXIgY2FuIG92ZXJyaWRlICovXG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5kaWppdFRleHRCb3hSZWFkT25seSxcbi5kaWppdFRleHRCb3hEaXNhYmxlZCB7XG5cdGNvbG9yOiBncmF5O1xufVxuLmRqX3NhZmFyaSAuZGlqaXRUZXh0Qm94RGlzYWJsZWQgaW5wdXQge1xuXHRjb2xvcjogI0IwQjBCMDsgLyogYmVjYXVzZSBTYWZhcmkgbGlnaHRlbnMgZGlzYWJsZWQgaW5wdXQvdGV4dGFyZWEgbm8gbWF0dGVyIHdoYXQgY29sb3IgeW91IHNwZWNpZnkgKi9cbn1cbi5kal9zYWZhcmkgdGV4dGFyZWEuZGlqaXRUZXh0QXJlYURpc2FibGVkIHtcblx0Y29sb3I6ICMzMzM7IC8qIGJlY2F1c2UgU2FmYXJpIGxpZ2h0ZW5zIGRpc2FibGVkIGlucHV0L3RleHRhcmVhIG5vIG1hdHRlciB3aGF0IGNvbG9yIHlvdSBzcGVjaWZ5ICovXG59XG4uZGpfZ2Vja28gLmRpaml0VGV4dEJveFJlYWRPbmx5IGlucHV0LmRpaml0SW5wdXRGaWVsZCwgLyogZGlzYWJsZSBhcnJvdyBhbmQgdmFsaWRhdGlvbiBwcmVzZW50YXRpb24gaW5wdXRzIGJ1dCBhbGxvdyByZWFsIGlucHV0IGZvciB0ZXh0IHNlbGVjdGlvbiAqL1xuLmRqX2dlY2tvIC5kaWppdFRleHRCb3hEaXNhYmxlZCBpbnB1dCB7XG5cdC1tb3otdXNlci1pbnB1dDogbm9uZTsgLyogcHJldmVudCBmb2N1cyBvZiBkaXNhYmxlZCB0ZXh0Ym94IGJ1dHRvbnMgKi9cbn1cblxuLmRpaml0UGxhY2VIb2xkZXIge1xuXHQvKiBoaW50IHRleHQgdGhhdCBhcHBlYXJzIGluIGEgdGV4dGJveCB1bnRpbCB1c2VyIHN0YXJ0cyB0eXBpbmcgKi9cblx0Y29sb3I6ICNBQUFBQUE7XG5cdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdCNmaWx0ZXI6IFwiXCI7IC8qIG1ha2UgdGhpcyBzaG93IHVwIGluIElFNiBhZnRlciB0aGUgcmVuZGVyaW5nIG9mIHRoZSB3aWRnZXQgKi9cblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7ICAgLyogc28gY3V0L3Bhc3RlIGNvbnRleHQgbWVudSBzaG93cyB1cCB3aGVuIHJpZ2h0IGNsaWNraW5nICovXG59XG5cbi5kaWppdFRpbWVUZXh0Qm94IHtcblx0d2lkdGg6IDhlbTtcbn1cblxuLyogcnVsZXMgZm9yIHdlYmtpdCB0byBkZWFsIHdpdGggZnV6enkgYmx1ZSBmb2N1cyBib3JkZXIgKi9cbi5kaWppdFRleHRCb3ggaW5wdXQ6Zm9jdXMge1xuXHRvdXRsaW5lOiBub25lO1x0LyogYmx1ZSBmdXp6eSBsaW5lIGxvb2tzIHdyb25nIG9uIGNvbWJvYm94IG9yIHNvbWV0aGluZyB3L3ZhbGlkYXRpb24gaWNvbiBzaG93aW5nICovXG59XG4uZGlqaXRUZXh0Qm94Rm9jdXNlZCB7XG5cdG91dGxpbmU6IDVweCAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XG59XG5cbi5kaWppdFNlbGVjdCBpbnB1dCxcbi5kaWppdFRleHRCb3ggaW5wdXQge1xuXHRmbG9hdDogbGVmdDsgLyogbmVlZGVkIGJ5IElFIHRvIHJlbW92ZSBzZWNyZXQgbWFyZ2luICovXG59XG4uZGpfaWU2IGlucHV0LmRpaml0VGV4dEJveCxcbi5kal9pZTYgLmRpaml0VGV4dEJveCBpbnB1dCB7XG5cdGZsb2F0OiBub25lO1xufVxuLmRpaml0SW5wdXRJbm5lciB7XG5cdC8qIGZvciB3aGVuIGFuIDxpbnB1dD4gaXMgZW1iZWRkZWQgaW5zaWRlIGFuIGlubGluZS1ibG9jayA8ZGl2PiB3aXRoIGEgc2l6ZSBhbmQgYm9yZGVyICovXG5cdGJvcmRlcjowICFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblx0d2lkdGg6MTAwJSAhaW1wb3J0YW50O1xuXHQvKiBJRSBkaXNsaWtlcyBob3Jpem9udGFsIHR3ZWFraW5nIGNvbWJpbmVkIHdpdGggd2lkdGg6MTAwJSBzbyBwdW5pc2ggZXZlcnlvbmUgZm9yIGNvbnNpc3RlbmN5ICovXG5cdHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0VGV4dEJveCBpbnB1dCB7XG5cdG1hcmdpbjogMCAhaW1wb3J0YW50O1xufVxuLmRpaml0VmFsaWRhdGlvblRleHRCb3hFcnJvciBpbnB1dC5kaWppdFZhbGlkYXRpb25Jbm5lcixcbi5kaWppdFNlbGVjdCBpbnB1dCxcbi5kaWppdFRleHRCb3ggaW5wdXQuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0LyogPGlucHV0PiB1c2VkIHRvIGRpc3BsYXkgYXJyb3cgaWNvbi92YWxpZGF0aW9uIGljb24sIG9yIGluIGFycm93IGNoYXJhY3RlciBpbiBoaWdoIGNvbnRyYXN0IG1vZGUuXG5cdCAqIFRoZSBjc3MgYmVsb3cgaXMgYSB0cmljayB0byBoaWRlIHRoZSBjaGFyYWN0ZXIgaW4gbm9uLWhpZ2gtY29udHJhc3QgbW9kZVxuXHQgKi9cblx0dGV4dC1pbmRlbnQ6IC0yZW0gIWltcG9ydGFudDtcblx0ZGlyZWN0aW9uOiBsdHIgIWltcG9ydGFudDtcblx0dGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcblx0I3RleHQtaW5kZW50OiAwICFpbXBvcnRhbnQ7XG5cdCNsZXR0ZXItc3BhY2luZzogLTVlbSAhaW1wb3J0YW50O1xuXHQjdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDtcbn1cbi5kal9pZSAuZGlqaXRTZWxlY3QgaW5wdXQsXG4uZGpfaWUgLmRpaml0VGV4dEJveCBpbnB1dCxcbi5kal9pZSBpbnB1dC5kaWppdFRleHRCb3gge1xuXHRvdmVyZmxvdy15OiB2aXNpYmxlOyAvKiBpbnB1dHMgbmVlZCBoZWxwIGV4cGFuZGluZyB3aGVuIHBhZGRpbmcgaXMgYWRkZWQgb3IgbGluZS1oZWlnaHQgaXMgYWRqdXN0ZWQgKi9cblx0bGluZS1oZWlnaHQ6IG5vcm1hbDsgLyogc3RyaWN0IG1vZGUgKi9cbn1cbi5kaWppdFNlbGVjdCAuZGlqaXRTZWxlY3RMYWJlbCBzcGFuIHtcblx0bGluZS1oZWlnaHQ6IDEwMCU7XG59XG4uZGpfaWUgLmRpaml0U2VsZWN0IC5kaWppdFNlbGVjdExhYmVsIHtcblx0bGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cbi5kal9pZTYgLmRpaml0U2VsZWN0IC5kaWppdFNlbGVjdExhYmVsLFxuLmRqX2llNyAuZGlqaXRTZWxlY3QgLmRpaml0U2VsZWN0TGFiZWwsXG4uZGpfaWU4IC5kaWppdFNlbGVjdCAuZGlqaXRTZWxlY3RMYWJlbCxcbi5kal9pZXF1aXJrcyAuZGlqaXRTZWxlY3QgLmRpaml0U2VsZWN0TGFiZWwsXG4uZGlqaXRTZWxlY3QgdGQsXG4uZGpfaWU2IC5kaWppdFNlbGVjdCBpbnB1dCxcbi5kal9pZXF1aXJrcyAuZGlqaXRTZWxlY3QgaW5wdXQsXG4uZGpfaWU2IC5kaWppdFNlbGVjdCAuZGlqaXRWYWxpZGF0aW9uQ29udGFpbmVyLFxuLmRqX2llNiAuZGlqaXRUZXh0Qm94IGlucHV0LFxuLmRqX2llNiBpbnB1dC5kaWppdFRleHRCb3gsXG4uZGpfaWVxdWlya3MgLmRpaml0VGV4dEJveCBpbnB1dC5kaWppdFZhbGlkYXRpb25Jbm5lcixcbi5kal9pZXF1aXJrcyAuZGlqaXRUZXh0Qm94IGlucHV0LmRpaml0QXJyb3dCdXR0b25Jbm5lcixcbi5kal9pZXF1aXJrcyAuZGlqaXRUZXh0Qm94IGlucHV0LmRpaml0U3Bpbm5lckJ1dHRvbklubmVyLFxuLmRqX2llcXVpcmtzIC5kaWppdFRleHRCb3ggaW5wdXQuZGlqaXRJbnB1dElubmVyLFxuLmRqX2llcXVpcmtzIGlucHV0LmRpaml0VGV4dEJveCB7XG5cdGxpbmUtaGVpZ2h0OiAxMDAlOyAvKiBJRTcgcHJvYmxlbSB3aGVyZSB0aGUgaWNvbiBpcyB2ZXJ0aWNhbGx5IHdheSB0b28gbG93IHcvbyB0aGlzICovXG59XG4uZGpfYTExeSBpbnB1dC5kaWppdFZhbGlkYXRpb25Jbm5lcixcbi5kal9hMTF5IGlucHV0LmRpaml0QXJyb3dCdXR0b25Jbm5lciB7XG5cdC8qIChpbiBoaWdoIGNvbnRyYXN0IG1vZGUpIHJldmVydCBydWxlcyBmcm9tIGFib3ZlIHNvIGNoYXJhY3RlciBkaXNwbGF5cyAqL1xuXHR0ZXh0LWluZGVudDogMCAhaW1wb3J0YW50O1xuXHR3aWR0aDogMWVtICFpbXBvcnRhbnQ7XG5cdCN0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiBibGFjayAhaW1wb3J0YW50O1xufVxuLmRpaml0VmFsaWRhdGlvblRleHRCb3hFcnJvciAuZGlqaXRWYWxpZGF0aW9uQ29udGFpbmVyIHtcblx0ZGlzcGxheTogaW5saW5lO1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qIENvbWJvQm94ICYgU3Bpbm5lciAqL1xuXG4uZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIsXG4uZGlqaXRDb21ib0JveCAuZGlqaXRBcnJvd0J1dHRvbkNvbnRhaW5lciB7XG5cdC8qIGRpdmlkaW5nIGxpbmUgYmV0d2VlbiBpbnB1dCBhcmVhIGFuZCB1cC9kb3duIGJ1dHRvbihzKSBmb3IgQ29tYm9Cb3ggYW5kIFNwaW5uZXIgKi9cblx0Ym9yZGVyLXdpZHRoOiAwIDAgMCAxcHggIWltcG9ydGFudDsgLyogIWltcG9ydGFudCBuZWVkZWQgZHVlIHRvIHdheXdhcmQgXCIudGhlbWUgLmRpaml0QnV0dG9uTm9kZVwiIHJ1bGVzICovXG59XG4uZGpfYTExeSAuZGlqaXRTZWxlY3QgLmRpaml0QXJyb3dCdXR0b25Db250YWluZXIsXG4uZGlqaXRUb29sYmFyIC5kaWppdENvbWJvQm94IC5kaWppdEFycm93QnV0dG9uQ29udGFpbmVyIHtcblx0Lyogb3ZlcnJpZGVzIGFib3ZlIHJ1bGUgcGx1cyBtaXJyb3ItaW1hZ2UgcnVsZSBpbiBkaWppdF9ydGwuY3NzIHRvIGhhdmUgbm8gZGl2aWRlciB3aGVuIENvbWJvQm94IGluIFRvb2xiYXIgKi9cblx0Ym9yZGVyLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdENvbWJvQm94TWVudSB7XG5cdC8qIERyb3AgZG93biBtZW51IGlzIGltcGxlbWVudGVkIGFzIDx1bD4gPGxpLz4gPGxpLz4gLi4uIGJ1dCB3ZSBkb24ndCB3YW50IGNpcmNsZXMgYmVmb3JlIGVhY2ggaXRlbSAqL1xuXHRsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0QnV0dG9uTm9kZSB7XG5cdC8qIGRpdmlkaW5nIGxpbmUgYmV0d2VlbiBpbnB1dCBhcmVhIGFuZCB1cC9kb3duIGJ1dHRvbihzKSBmb3IgQ29tYm9Cb3ggYW5kIFNwaW5uZXIgKi9cblx0Ym9yZGVyLXdpZHRoOiAwO1xufVxuLmRqX2llIC5kal9hMTF5IC5kaWppdFNwaW5uZXIgLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciAuZGlqaXRCdXR0b25Ob2RlIHtcblx0Y2xlYXI6IGJvdGg7IC8qIElFIHdvcmthcm91bmQgKi9cbn1cblxuLmRqX2llIC5kaWppdFRvb2xiYXIgLmRpaml0Q29tYm9Cb3gge1xuXHQvKiBtYWtlIGNvbWJvYm94IGJ1dHRvbnMgYWxpZ24gcHJvcGVybHkgd2l0aCBvdGhlciBidXR0b25zIGluIGEgdG9vbGJhciAqL1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4vKiBTcGlubmVyICovXG5cbi5kaWppdFRleHRCb3ggLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciB7XG5cdHdpZHRoOiAxZW07XG5cdHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uSW5uZXIge1xuXHR3aWR0aDoxZW07XG5cdHZpc2liaWxpdHk6aGlkZGVuICFpbXBvcnRhbnQ7IC8qIGp1c3QgYSBzaXppbmcgZWxlbWVudCAqL1xuXHRvdmVyZmxvdy14OmhpZGRlbjtcbn1cbi5kaWppdENvbWJvQm94IC5kaWppdEJ1dHRvbk5vZGUsXG4uZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXItd2lkdGg6IDA7XG59XG4uZGpfYTExeSAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXItd2lkdGg6IDBweCAhaW1wb3J0YW50O1xuXHRib3JkZXItc3R5bGU6IHNvbGlkICFpbXBvcnRhbnQ7XG59XG4uZGpfYTExeSAuZGlqaXRUZXh0Qm94IC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIsXG4uZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIsXG4uZGpfYTExeSAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIGlucHV0IHtcblx0d2lkdGg6IDFlbSAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0bWFyZ2luOiAwIGF1dG8gIWltcG9ydGFudDsgLyogc2hvdWxkIGF1dG8tY2VudGVyICovXG59XG4uZGpfaWUgLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHRwYWRkaW5nLWxlZnQ6IDAuM2VtICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctcmlnaHQ6IDAuM2VtICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1sZWZ0OiAwLjNlbSAhaW1wb3J0YW50O1xuXHRtYXJnaW4tcmlnaHQ6IDAuM2VtICFpbXBvcnRhbnQ7XG5cdHdpZHRoOiAxLjRlbSAhaW1wb3J0YW50O1xufVxuLmRqX2llNyAuZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIgLmRpaml0SW5wdXRGaWVsZCB7XG5cdHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50OyAvKiBtYW51YWxseSBjZW50ZXIgSU5QVVQ6IGNoYXJhY3RlciBpcyAuNWVtIGFuZCB0b3RhbCB3aWR0aCA9IDFlbSAqL1xuXHRwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG5cdHdpZHRoOiAxZW0gIWltcG9ydGFudDtcbn1cbi5kal9pZTYgLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHRtYXJnaW4tbGVmdDogMC4xZW0gIWltcG9ydGFudDtcblx0bWFyZ2luLXJpZ2h0OiAwLjFlbSAhaW1wb3J0YW50O1xuXHR3aWR0aDogMWVtICFpbXBvcnRhbnQ7XG59XG4uZGpfaWVxdWlya3MgLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHRtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuXHRtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcblx0d2lkdGg6IDJlbSAhaW1wb3J0YW50O1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEFycm93QnV0dG9uIHtcblx0Lyogbm90ZTogLmRpaml0SW5wdXRMYXlvdXRDb250YWluZXIgbWFrZXMgdGhpcyBydWxlIG92ZXJyaWRlIC5kaWppdEFycm93QnV0dG9uIHNldHRpbmdzXG5cdCAqIGZvciBkaWppdC5mb3JtLkJ1dHRvblxuXHQgKi9cblx0cGFkZGluZzogMDtcblx0cG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG5cdHJpZ2h0OiAwO1xuXHRmbG9hdDogbm9uZTtcblx0aGVpZ2h0OiA1MCU7XG5cdHdpZHRoOiAxMDAlO1xuXHRib3R0b206IGF1dG87XG5cdGxlZnQ6IDA7XG5cdHJpZ2h0OiBhdXRvO1xufVxuLmRqX2llcXVpcmtzIC5kaWppdFNwaW5uZXIgLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciAuZGlqaXRBcnJvd0J1dHRvbiB7XG5cdHdpZHRoOiBhdXRvO1xufVxuLmRqX2ExMXkgLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciAuZGlqaXRBcnJvd0J1dHRvbiB7XG5cdG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0RG93bkFycm93QnV0dG9uIHtcblx0dG9wOiA1MCU7XG5cdGJvcmRlci10b3Atd2lkdGg6IDFweCAhaW1wb3J0YW50O1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdFVwQXJyb3dCdXR0b24ge1xuXHQjYm90dG9tOiA1MCU7XHQvKiBvdGhlcndpc2UgKG9uIHNvbWUgbWFjaGluZXMpIHRvcCBhcnJvdyBpY29uIHRvbyBjbG9zZSB0byBzcGxpdHRlciBib3JkZXIgKElFNi83KSAqL1xuXHR0b3A6IDA7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIge1xuXHRtYXJnaW46IGF1dG87XG5cdG92ZXJmbG93LXg6IGhpZGRlbjtcblx0aGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG59XG4uZGpfaWVxdWlya3MgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0aGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIgLmRpaml0SW5wdXRGaWVsZCB7XG5cdC1tb3otdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuXHQtbW96LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciB0b3A7XG5cdC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuXHQtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciB0b3A7XG5cdC1vLXRyYW5zZm9ybTogc2NhbGUoMC41KTtcblx0LW8tdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIHRvcDtcblx0dHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuXHR0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDtcblx0cGFkZGluZy10b3A6IDA7XG5cdHBhZGRpbmctYm90dG9tOiAwO1xuXHRwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcblx0cGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuXHR3aWR0aDogMTAwJTtcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLmRqX2llIC5kaWppdFNwaW5uZXIgLmRpaml0QXJyb3dCdXR0b25Jbm5lciAuZGlqaXRJbnB1dEZpZWxkIHtcblx0em9vbTogNTAlOyAvKiBlbXVsYXRlIHRyYW5zZm9ybTogc2NhbGUoMC41KSAqL1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIge1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0QXJyb3dCdXR0b24ge1xuXHR3aWR0aDogMTAwJTtcbn1cbi5kal9pZXF1aXJrcyAuZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0QXJyb3dCdXR0b24ge1xuXHR3aWR0aDogMWVtOyAvKiBtYXRjaGVzIC5kal9hMTF5IC5kaWppdFRleHRCb3ggLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciBydWxlIC0gMTAwJSBpcyB0aGUgd2hvbGUgc2NyZWVuIHdpZHRoIGluIHF1aXJrcyAqL1xufVxuLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHR2ZXJ0aWNhbC1hbGlnbjp0b3A7XG5cdHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4uZGpfYTExeSAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIHtcblx0d2lkdGg6IDFlbTtcbn1cblxuLyoqKipcblx0XHRkaWppdC5mb3JtLkNoZWNrQm94XG4gXHQgJlxuICBcdFx0ZGlqaXQuZm9ybS5SYWRpb0J1dHRvblxuICoqKiovXG5cbi5kaWppdENoZWNrQm94LFxuLmRpaml0UmFkaW8sXG4uZGlqaXRDaGVja0JveElucHV0IHtcblx0cGFkZGluZzogMDtcblx0Ym9yZGVyOiAwO1xuXHR3aWR0aDogMTZweDtcblx0aGVpZ2h0OiAxNnB4O1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciBjZW50ZXI7XG5cdGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmRpaml0Q2hlY2tCb3ggaW5wdXQsXG4uZGlqaXRSYWRpbyBpbnB1dCB7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbi5kaWppdENoZWNrQm94SW5wdXQge1xuXHQvKiBwbGFjZSB0aGUgYWN0dWFsIGlucHV0IG9uIHRvcCwgYnV0IGludmlzaWJsZSAqL1xuXHRvcGFjaXR5OiAwO1xufVxuXG4uZGpfaWUgLmRpaml0Q2hlY2tCb3hJbnB1dCB7XG5cdGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTtcbn1cblxuLmRqX2ExMXkgLmRpaml0Q2hlY2tCb3gsXG4uZGpfYTExeSAuZGlqaXRSYWRpbyB7XG5cdC8qIGluIGExMXkgbW9kZSB3ZSBkaXNwbGF5IHRoZSBuYXRpdmUgY2hlY2tib3ggKG5vdCB0aGUgaWNvbiksIHNvIGRvbid0IHJlc3RyaWN0IHRoZSBzaXplICovXG5cdHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG5cdGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0Q2hlY2tCb3hJbnB1dCB7XG5cdG9wYWNpdHk6IDE7XG5cdGZpbHRlcjogbm9uZTtcblx0d2lkdGg6IGF1dG87XG5cdGhlaWdodDogYXV0bztcbn1cblxuLmRqX2ExMXkgLmRpaml0Rm9jdXNlZExhYmVsIHtcblx0LyogZm9yIGNoZWNrYm94ZXMgb3IgcmFkaW8gYnV0dG9ucyBpbiBoaWdoIGNvbnRyYXN0IG1vZGUsIHVzZSBib3JkZXIgcmF0aGVyIHRoYW4gb3V0bGluZSB0byBpbmRpY2F0ZSBmb2N1cyAob3V0bGluZSBkb2VzIG5vdCB3b3JrIGluIEZGKSovXG5cdGJvcmRlcjogMXB4IGRvdHRlZDtcblx0b3V0bGluZTogMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi8qKioqXG5cdFx0ZGlqaXQuUHJvZ3Jlc3NCYXJcbiAqKioqL1xuXG4uZGlqaXRQcm9ncmVzc0JhciB7XG4gICAgei1pbmRleDogMDsgLyogc28gei1pbmRleCBzZXR0aW5ncyBiZWxvdyBoYXZlIG5vIGVmZmVjdCBvdXRzaWRlIG9mIHRoZSBQcm9ncmVzc0JhciAqL1xufVxuLmRpaml0UHJvZ3Jlc3NCYXJFbXB0eSB7XG5cdC8qIG91dGVyIGNvbnRhaW5lciBhbmQgYmFja2dyb3VuZCBvZiB0aGUgYmFyIHRoYXQncyBub3QgZmluaXNoZWQgeWV0Ki9cblx0cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuO1xuXHRib3JkZXI6MXB4IHNvbGlkIGJsYWNrOyBcdC8qIGExMXk6IGJvcmRlciBuZWNlc3NhcnkgZm9yIGhpZ2gtY29udHJhc3QgbW9kZSAqL1xuXHR6LWluZGV4OjA7XHRcdFx0LyogZXN0YWJsaXNoIGEgc3RhY2tpbmcgY29udGV4dCBmb3IgdGhpcyBwcm9ncmVzcyBiYXIgKi9cbn1cblxuLmRpaml0UHJvZ3Jlc3NCYXJGdWxsIHtcblx0Lyogb3V0ZXIgY29udGFpbmVyIGZvciBiYWNrZ3JvdW5kIG9mIGJhciB0aGF0IGlzIGZpbmlzaGVkICovXG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHRvdmVyZmxvdzpoaWRkZW47XG5cdHotaW5kZXg6LTE7XG5cdHRvcDowO1xuXHR3aWR0aDoxMDAlO1xufVxuLmRqX2llNiAuZGlqaXRQcm9ncmVzc0JhckZ1bGwge1xuXHRoZWlnaHQ6MS42ZW07XG59XG5cbi5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIGlubmVyIGNvbnRhaW5lciBmb3IgZmluaXNoZWQgcG9ydGlvbiAqL1xuXHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0b3ZlcmZsb3c6aGlkZGVuO1xuXHR0b3A6MDtcblx0bGVmdDowO1xuXHRib3R0b206MDtcblx0cmlnaHQ6MDtcblx0bWFyZ2luOjA7XG5cdHBhZGRpbmc6MDtcblx0d2lkdGg6IDEwMCU7ICAgIC8qIG5lZWRlZCBmb3IgSUUvcXVpcmtzICovXG5cdGhlaWdodDphdXRvO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiNhYWE7XG5cdGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG59XG5cbi5kal9hMTF5IC5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIGExMXk6ICBUaGUgYm9yZGVyIHByb3ZpZGVzIHZpc2liaWxpdHkgaW4gaGlnaC1jb250cmFzdCBtb2RlICovXG5cdGJvcmRlci13aWR0aDoycHg7XG5cdGJvcmRlci1zdHlsZTpzb2xpZDtcblx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4uZGpfaWU2IC5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIHdpZHRoOmF1dG8gd29ya3MgaW4gSUU2IHdpdGggcG9zaXRpb246c3RhdGljIGJ1dCBub3QgcG9zaXRpb246YWJzb2x1dGUgKi9cblx0cG9zaXRpb246c3RhdGljO1xuXHQvKiBoZWlnaHQ6YXV0byBvciAxMDAlIGRvZXMgbm90IHdvcmsgaW4gSUU2ICovXG5cdGhlaWdodDoxLjZlbTtcbn1cblxuLmRpaml0UHJvZ3Jlc3NCYXJJbmRldGVybWluYXRlIC5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIGFuaW1hdGVkIGdpZiBmb3IgJ2luZGV0ZXJtaW5hdGUnIG1vZGUgKi9cbn1cblxuLmRpaml0UHJvZ3Jlc3NCYXJJbmRldGVybWluYXRlSGlnaENvbnRyYXN0SW1hZ2Uge1xuXHRkaXNwbGF5Om5vbmU7XG59XG5cbi5kal9hMTF5IC5kaWppdFByb2dyZXNzQmFySW5kZXRlcm1pbmF0ZSAuZGlqaXRQcm9ncmVzc0JhckluZGV0ZXJtaW5hdGVIaWdoQ29udHJhc3RJbWFnZSB7XG5cdGRpc3BsYXk6YmxvY2s7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHR0b3A6MDtcblx0Ym90dG9tOjA7XG5cdG1hcmdpbjowO1xuXHRwYWRkaW5nOjA7XG5cdHdpZHRoOjEwMCU7XG5cdGhlaWdodDphdXRvO1xufVxuXG4uZGlqaXRQcm9ncmVzc0JhckxhYmVsIHtcblx0ZGlzcGxheTpibG9jaztcblx0cG9zaXRpb246c3RhdGljO1xuXHR3aWR0aDoxMDAlO1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4vKioqKlxuXHRcdGRpaml0LlRvb2x0aXBcbiAqKioqL1xuXG4uZGlqaXRUb29sdGlwIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiAyMDAwO1xuXHRkaXNwbGF5OiBibG9jaztcblx0LyogbWFrZSB2aXNpYmxlIGJ1dCBvZmYgc2NyZWVuICovXG5cdGxlZnQ6IDA7XG5cdHRvcDogLTEwMDAwcHg7XG5cdG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4uZGlqaXRUb29sdGlwQ29udGFpbmVyIHtcblx0Ym9yZGVyOiBzb2xpZCBibGFjayAycHg7XG5cdGJhY2tncm91bmQ6ICNiOGI1YjU7XG5cdGNvbG9yOiBibGFjaztcblx0Zm9udC1zaXplOiBzbWFsbDtcbn1cblxuLmRpaml0VG9vbHRpcEZvY3VzTm9kZSB7XG5cdHBhZGRpbmc6IDJweCAycHggMnB4IDJweDtcbn1cblxuLmRpaml0VG9vbHRpcENvbm5lY3RvciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5kal9hMTF5IC5kaWppdFRvb2x0aXBDb25uZWN0b3Ige1xuXHRkaXNwbGF5OiBub25lO1x0Lyogd29uJ3Qgc2hvdyBiL2MgaXQncyBiYWNrZ3JvdW5kLWltYWdlOyBoaWRlIHRvIGF2b2lkIGJvcmRlciBnYXAgKi9cbn1cblxuLmRpaml0VG9vbHRpcERhdGEge1xuXHRkaXNwbGF5Om5vbmU7XG59XG5cbi8qIExheW91dCB3aWRnZXRzLiBUaGlzIGlzIGVzc2VudGlhbCBDU1MgdG8gbWFrZSBsYXlvdXQgd29yayAoaXQgaXNuJ3QgXCJzdHlsaW5nXCIgQ1NTKVxuICAgbWFrZSBzdXJlIHRoYXQgdGhlIHBvc2l0aW9uOmFic29sdXRlIGluIGRpaml0QWxpZ24qIG92ZXJyaWRlcyBvdGhlciBjbGFzc2VzICovXG5cbi5kaWppdExheW91dENvbnRhaW5lciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5kaWppdEFsaWduVG9wLFxuLmRpaml0QWxpZ25Cb3R0b20sXG4uZGlqaXRBbGlnbkxlZnQsXG4uZGlqaXRBbGlnblJpZ2h0IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5ib2R5IC5kaWppdEFsaWduQ2xpZW50IHsgcG9zaXRpb246IGFic29sdXRlOyB9XG5cbi8qXG4gKiBCb3JkZXJDb250YWluZXJcbiAqXG4gKiAuZGlqaXRCb3JkZXJDb250YWluZXIgaXMgYSBzdHlsaXplZCBsYXlvdXQgd2hlcmUgcGFuZXMgaGF2ZSBib3JkZXIgYW5kIG1hcmdpbi5cbiAqIC5kaWppdEJvcmRlckNvbnRhaW5lck5vR3V0dGVyIGlzIGEgcmF3IGxheW91dC5cbiAqL1xuLmRpaml0Qm9yZGVyQ29udGFpbmVyLCAuZGlqaXRCb3JkZXJDb250YWluZXJOb0d1dHRlciB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuICAgIHotaW5kZXg6IDA7IC8qIHNvIHotaW5kZXggc2V0dGluZ3MgYmVsb3cgaGF2ZSBubyBlZmZlY3Qgb3V0c2lkZSBvZiB0aGUgQm9yZGVyQ29udGFpbmVyICovXG59XG5cbi5kaWppdEJvcmRlckNvbnRhaW5lclBhbmUsXG4uZGlqaXRCb3JkZXJDb250YWluZXJOb0d1dHRlclBhbmUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcdC8qICFpbXBvcnRhbnQgdG8gb3ZlcnJpZGUgcG9zaXRpb246cmVsYXRpdmUgaW4gZGlqaXRUYWJDb250YWluZXIgZXRjLiAqL1xuXHR6LWluZGV4OiAyO1x0XHQvKiBhYm92ZSB0aGUgc3BsaXR0ZXJzIHNvIHRoYXQgb2ZmLWJ5LW9uZSBicm93c2VyIGVycm9ycyBkb24ndCBjb3ZlciB1cCBib3JkZXIgb2YgcGFuZSAqL1xufVxuXG4uZGlqaXRCb3JkZXJDb250YWluZXIgPiAuZGlqaXRUZXh0QXJlYSB7XG5cdC8qIE9uIFNhZmFyaSwgZm9yIFNpbXBsZVRleHRBcmVhIGluc2lkZSBhIEJvcmRlckNvbnRhaW5lcixcblx0XHRkb24ndCB3YW50IHRvIGRpc3BsYXkgdGhlIGdyaXAgdG8gcmVzaXplICovXG5cdHJlc2l6ZTogbm9uZTtcbn1cblxuLmRpaml0R3V0dGVyIHtcblx0LyogZ3V0dGVyIGlzIGp1c3QgYSBwbGFjZSBob2xkZXIgZm9yIGVtcHR5IHNwYWNlIGJldHdlZW4gcGFuZXMgaW4gQm9yZGVyQ29udGFpbmVyICovXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0Zm9udC1zaXplOiAxcHg7XHRcdC8qIG5lZWRlZCBieSBJRTYgZXZlbiB0aG91Z2ggZGl2IGlzIGVtcHR5LCBvdGhlcndpc2UgZ29lcyB0byAxNXB4ICovXG59XG5cbi8qIFNwbGl0Q29udGFpbmVyXG5cblx0J1YnID09IGNvbnRhaW5lciB0aGF0IHNwbGl0cyB2ZXJ0aWNhbGx5ICh1cC9kb3duKVxuXHQnSCcgPSBob3Jpem9udGFsIChsZWZ0L3JpZ2h0KVxuKi9cblxuLmRpaml0U3BsaXR0ZXIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHotaW5kZXg6IDEwO1x0XHQvKiBhYm92ZSB0aGUgcGFuZXMgc28gdGhhdCBzcGxpdHRlciBmb2N1cyBpcyB2aXNpYmxlIG9uIEZGLCBzZWUgIzc1ODMqL1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRib3JkZXItY29sb3I6IGdyYXk7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci13aWR0aDogMDtcbn1cbi5kal9pZSAuZGlqaXRTcGxpdHRlciB7XG5cdHotaW5kZXg6IDE7XHQvKiBiZWhpbmQgdGhlIHBhbmVzIHNvIHRoYXQgcGFuZSBib3JkZXJzIGFyZW4ndCBvYnNjdXJlZCBzZWUgdGVzdF9HdWkuaHRtbC9bMTQzOTJdICovXG59XG5cbi5kaWppdFNwbGl0dGVyQWN0aXZlIHtcblx0ei1pbmRleDogMTEgIWltcG9ydGFudDtcbn1cblxuLmRpaml0U3BsaXR0ZXJDb3ZlciB7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHR6LWluZGV4Oi0xO1xuXHR0b3A6MDtcblx0bGVmdDowO1xuXHR3aWR0aDoxMDAlO1xuXHRoZWlnaHQ6MTAwJTtcbn1cblxuLmRpaml0U3BsaXR0ZXJDb3ZlckFjdGl2ZSB7XG5cdHotaW5kZXg6MyAhaW1wb3J0YW50O1xufVxuXG4vKiAjNjk0NTogc3RvcCBtb3VzZSBldmVudHMgKi9cbi5kal9pZSAuZGlqaXRTcGxpdHRlckNvdmVyIHtcblx0YmFja2dyb3VuZDogd2hpdGU7XG5cdG9wYWNpdHk6IDA7XG59XG4uZGpfaWU2IC5kaWppdFNwbGl0dGVyQ292ZXIsXG4uZGpfaWU3IC5kaWppdFNwbGl0dGVyQ292ZXIsXG4uZGpfaWU4IC5kaWppdFNwbGl0dGVyQ292ZXIge1xuXHRmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MCk7XG59XG5cbi5kaWppdFNwbGl0dGVySCB7XG5cdGhlaWdodDogN3B4O1xuXHRib3JkZXItdG9wOjFweDtcblx0Ym9yZGVyLWJvdHRvbToxcHg7XG5cdGN1cnNvcjogcm93LXJlc2l6ZTtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5kaWppdFNwbGl0dGVyViB7XG5cdHdpZHRoOiA3cHg7XG5cdGJvcmRlci1sZWZ0OjFweDtcblx0Ym9yZGVyLXJpZ2h0OjFweDtcblx0Y3Vyc29yOiBjb2wtcmVzaXplO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmRpaml0U3BsaXRDb250YWluZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uZGlqaXRTcGxpdFBhbmUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbi5kaWppdFNwbGl0Q29udGFpbmVyU2l6ZXJILFxuLmRpaml0U3BsaXRDb250YWluZXJTaXplclYge1xuXHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0Zm9udC1zaXplOiAxcHg7XG5cdGJhY2tncm91bmQtY29sb3I6IFRocmVlREZhY2U7XG5cdGJvcmRlcjogMXB4IHNvbGlkO1xuXHRib3JkZXItY29sb3I6IFRocmVlREhpZ2hsaWdodCBUaHJlZURTaGFkb3cgVGhyZWVEU2hhZG93IFRocmVlREhpZ2hsaWdodDtcblx0bWFyZ2luOiAwO1xufVxuXG4uZGlqaXRTcGxpdENvbnRhaW5lclNpemVySCAudGh1bWIsIC5kaWppdFNwbGl0dGVyViAuZGlqaXRTcGxpdHRlclRodW1iIHtcblx0b3ZlcmZsb3c6aGlkZGVuO1xuXHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0dG9wOjQ5JTtcbn1cblxuLmRpaml0U3BsaXRDb250YWluZXJTaXplclYgLnRodW1iLCAuZGlqaXRTcGxpdHRlckggLmRpaml0U3BsaXR0ZXJUaHVtYiB7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHRsZWZ0OjQ5JTtcbn1cblxuLmRpaml0U3BsaXR0ZXJTaGFkb3csXG4uZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplckgsXG4uZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplclYge1xuXHRmb250LXNpemU6IDFweDtcblx0YmFja2dyb3VuZC1jb2xvcjogVGhyZWVEU2hhZG93O1xuXHQtbW96LW9wYWNpdHk6IDAuNTtcblx0b3BhY2l0eTogMC41O1xuXHRmaWx0ZXI6IEFscGhhKE9wYWNpdHk9NTApO1xuXHRtYXJnaW46IDA7XG59XG5cbi5kaWppdFNwbGl0Q29udGFpbmVyU2l6ZXJILCAuZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplckgge1xuXHRjdXJzb3I6IGNvbC1yZXNpemU7XG59XG5cbi5kaWppdFNwbGl0Q29udGFpbmVyU2l6ZXJWLCAuZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplclYge1xuXHRjdXJzb3I6IHJvdy1yZXNpemU7XG59XG5cbi5kal9hMTF5IC5kaWppdFNwbGl0dGVySCB7XG5cdGJvcmRlci10b3A6MXB4IHNvbGlkICNkM2QzZDMgIWltcG9ydGFudDtcblx0Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2QzZDNkMyAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0U3BsaXR0ZXJWIHtcblx0Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNkM2QzZDMgIWltcG9ydGFudDtcblx0Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjZDNkM2QzICFpbXBvcnRhbnQ7XG59XG5cbi8qIENvbnRlbnRQYW5lICovXG5cbi5kaWppdENvbnRlbnRQYW5lIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG92ZXJmbG93OiBhdXRvO1x0LyogaWYgd2UgZG9uJ3QgaGF2ZSB0aGlzIChvciBvdmVyZmxvdzpoaWRkZW4pLCB0aGVuIFdpZGdldC5yZXNpemVUbygpIGRvZXNuJ3QgbWFrZSBzZW5zZSBmb3IgQ29udGVudFBhbmUgKi9cblx0LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuXG4uZGlqaXRDb250ZW50UGFuZVNpbmdsZUNoaWxkIHtcblx0Lypcblx0ICogaWYgdGhlIENvbnRlbnRQYW5lIGhvbGRzIGEgc2luZ2xlIGxheW91dCB3aWRnZXQgY2hpbGQgd2hpY2ggaXMgYmVpbmcgc2l6ZWQgdG8gbWF0Y2ggdGhlIGNvbnRlbnQgcGFuZSxcblx0ICogdGhlbiB0aGUgQ29udGVudFBhbmUgc2hvdWxkIG5ldmVyIGdldCBhIHNjcm9sbGJhciAoYnV0IGl0IGRvZXMgZHVlIHRvIGJyb3dzZXIgYnVncywgc2VlICM5NDQ5XG5cdCAqL1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZGlqaXRDb250ZW50UGFuZUxvYWRpbmcgLmRpaml0SWNvbkxvYWRpbmcsXG4uZGlqaXRDb250ZW50UGFuZUVycm9yIC5kaWppdEljb25FcnJvciB7XG5cdG1hcmdpbi1yaWdodDogOXB4O1xufVxuXG4vKiBUaXRsZVBhbmUgYW5kIEZpZWxkc2V0ICovXG5cbi5kaWppdFRpdGxlUGFuZSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuLmRpaml0RmllbGRzZXQge1xuXHRib3JkZXI6IDFweCBzb2xpZCBncmF5O1xufVxuLmRpaml0VGl0bGVQYW5lVGl0bGUsIC5kaWppdEZpZWxkc2V0VGl0bGUge1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZGlqaXRUaXRsZVBhbmVUaXRsZUZpeGVkT3BlbiwgLmRpaml0VGl0bGVQYW5lVGl0bGVGaXhlZENsb3NlZCxcbi5kaWppdEZpZWxkc2V0VGl0bGVGaXhlZE9wZW4sIC5kaWppdEZpZWxkc2V0VGl0bGVGaXhlZENsb3NlZCB7XG5cdC8qIFRpdGxlUGFuZSBvciBGaWVsZHNldCB0aGF0IGNhbm5vdCBiZSB0b2dnbGVkICovXG5cdGN1cnNvcjogZGVmYXVsdDtcbn1cbi5kaWppdFRpdGxlUGFuZVRpdGxlICoge1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmRpaml0VGl0bGVQYW5lIC5kaWppdEFycm93Tm9kZUlubmVyLCAuZGlqaXRGaWVsZHNldCAuZGlqaXRBcnJvd05vZGVJbm5lciB7XG5cdC8qIG5vcm1hbGx5LCBoaWRlIGFycm93IHRleHQgaW4gZmF2b3Igb2YgaWNvbiAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuLmRqX2ExMXkgLmRpaml0VGl0bGVQYW5lIC5kaWppdEFycm93Tm9kZUlubmVyLCAuZGpfYTExeSAuZGlqaXRGaWVsZHNldCAuZGlqaXRBcnJvd05vZGVJbm5lciB7XG5cdC8qIC4uLiBleGNlcHQgaW4gYTExeSBtb2RlLCB0aGVuIHNob3cgdGV4dCBhcnJvdyAqL1xuXHRkaXNwbGF5OiBpbmxpbmU7XG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XHRcdC8qIGJlY2F1c2UgLSBhbmQgKyBhcmUgZGlmZmVyZW50IHdpZHRocyAqL1xufVxuLmRqX2ExMXkgLmRpaml0VGl0bGVQYW5lIC5kaWppdEFycm93Tm9kZSwgLmRqX2ExMXkgLmRpaml0RmllbGRzZXQgLmRpaml0QXJyb3dOb2RlIHtcblx0LyogLi4uIGFuZCBoaWRlIGljb24gKFRPRE86IGp1c3QgcG9pbnQgZGlqaXRJY29uIGNsYXNzIG9uIHRoZSBpY29uLCBhbmQgaXQgaGlkZXMgYXV0b21hdGljYWxseSkgKi9cblx0ZGlzcGxheTogbm9uZTtcbn1cbi5kaWppdFRpdGxlUGFuZVRpdGxlRml4ZWRPcGVuIC5kaWppdEFycm93Tm9kZSwgLmRpaml0VGl0bGVQYW5lVGl0bGVGaXhlZE9wZW4gLmRpaml0QXJyb3dOb2RlSW5uZXIsXG4uZGlqaXRUaXRsZVBhbmVUaXRsZUZpeGVkQ2xvc2VkIC5kaWppdEFycm93Tm9kZSwgLmRpaml0VGl0bGVQYW5lVGl0bGVGaXhlZENsb3NlZCAuZGlqaXRBcnJvd05vZGVJbm5lcixcbi5kaWppdEZpZWxkc2V0VGl0bGVGaXhlZE9wZW4gLmRpaml0QXJyb3dOb2RlLCAuZGlqaXRGaWVsZHNldFRpdGxlRml4ZWRPcGVuIC5kaWppdEFycm93Tm9kZUlubmVyLFxuLmRpaml0RmllbGRzZXRUaXRsZUZpeGVkQ2xvc2VkIC5kaWppdEFycm93Tm9kZSwgLmRpaml0RmllbGRzZXRUaXRsZUZpeGVkQ2xvc2VkIC5kaWppdEFycm93Tm9kZUlubmVyIHtcblx0LyogZG9uJ3Qgc2hvdyB0aGUgb3BlbiBjbG9zZSBpY29uIG9yIHRleHQgYXJyb3c7IGl0IG1ha2VzIHRoZSB1c2VyIHRoaW5rIHRoZSBwYW5lIGlzIGNsb3NhYmxlICovXG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcdC8qICFpbXBvcnRhbnQgdG8gb3ZlcnJpZGUgYWJvdmUgYTExeSBydWxlcyB0byBzaG93IHRleHQgYXJyb3cgKi9cbn1cblxuLmRqX2llNiAuZGlqaXRUaXRsZVBhbmVDb250ZW50T3V0ZXIsXG4uZGpfaWU2IC5kaWppdFRpdGxlUGFuZSAuZGlqaXRUaXRsZVBhbmVUaXRsZSB7XG5cdC8qIGZvcmNlIGhhc0xheW91dCB0byBlbnN1cmUgYm9yZGVycyBldGMsIHNob3cgdXAgKi9cblx0em9vbTogMTtcbn1cblxuLyogQ29sb3IgUGFsZXR0ZVxuICogU2l6ZXMgZGVzaWduZWQgc28gdGhhdCB0YWJsZSBjZWxsIHBvc2l0aW9ucyBtYXRjaCBpY29ucyBpbiB1bmRlcmx5aW5nIGltYWdlLFxuICogd2hpY2ggYXBwZWFyIGF0IDIweDIwIGludGVydmFscy5cbiAqL1xuXG4uZGlqaXRDb2xvclBhbGV0dGUge1xuXHRib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuXHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5kaWppdENvbG9yUGFsZXR0ZSAuZGlqaXRQYWxldHRlVGFibGUge1xuXHQvKiBUYWJsZSB0aGF0IGhvbGRzIHRoZSBwYWxldHRlIGNlbGxzLCBhbmQgb3ZlcmxheXMgaW1hZ2UgZmlsZSB3aXRoIGNvbG9yIHN3YXRjaGVzLlxuXHQgKiBwYWRkaW5nL21hcmdpbiB0byBhbGlnbiB0YWJsZSB3aXRoIGltYWdlLlxuXHQgKi9cblx0cGFkZGluZzogMnB4IDNweCAzcHggM3B4O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdG91dGxpbmU6IDA7XG5cdGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG59XG4uZGpfaWU2IC5kaWppdENvbG9yUGFsZXR0ZSAuZGlqaXRQYWxldHRlVGFibGUsXG4uZGpfaWU3IC5kaWppdENvbG9yUGFsZXR0ZSAuZGlqaXRQYWxldHRlVGFibGUsXG4uZGpfaWVxdWlya3MgLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVUYWJsZSB7XG5cdC8qIHVzaW5nIHBhZGRpbmcgYWJvdmUgc28gdGhhdCBmb2N1cyBib3JkZXIgaXNuJ3QgY3V0b2ZmIG9uIG1vei93ZWJraXQsXG5cdCAqIGJ1dCB1c2luZyBtYXJnaW4gb24gSUUgYmVjYXVzZSBwYWRkaW5nIGRvZXNuJ3Qgc2VlbSB0byB3b3JrXG5cdCAqL1xuXHRwYWRkaW5nOiAwO1xuXHRtYXJnaW46IDJweCAzcHggM3B4IDNweDtcbn1cblxuLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVDZWxsIHtcblx0LyogPHRkPiBpbiB0aGUgPHRhYmxlPiAqL1xuXHRmb250LXNpemU6IDFweDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRiYWNrZ3JvdW5kOiBub25lO1xufVxuLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVJbWcge1xuXHQvKiBDYWxsZWQgZGlqaXRQYWxldHRlSW1nIGZvciBiYWNrLWNvbXBhdCwgdGhpcyBhY3R1YWxseSB3cmFwcyB0aGUgY29sb3Igc3dhdGNoIHdpdGggYSBib3JkZXIgYW5kIHBhZGRpbmcgKi9cblx0cGFkZGluZzogMXB4O1x0XHQvKiB3aGl0ZSBhcmVhIGJldHdlZW4gZ3JheSBib3JkZXIgYW5kIGNvbG9yIHN3YXRjaCAqL1xuXHRib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuXHRtYXJnaW46IDJweCAxcHg7XG5cdGN1cnNvcjogZGVmYXVsdDtcblx0Zm9udC1zaXplOiAxcHg7XHRcdC8qIHByZXZlbnQgPHNwYW4+IGZyb20gZ2V0dGluZyBiaWdnZXIganVzdCB0byBob2xkIGEgY2hhcmFjdGVyICovXG59XG4uZGpfZ2Vja28gLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVJbWcge1xuXHRwYWRkaW5nLWJvdHRvbTogMDtcdC8qIHdvcmthcm91bmQgcmVuZGVyaW5nIGdsaXRjaCBvbiBGRiwgaXQgYWRkcyBhbiBleHRyYSBwaXhlbCBhdCB0aGUgYm90dG9tICovXG59XG4uZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0Q29sb3JQYWxldHRlU3dhdGNoIHtcblx0LyogdGhlIGFjdHVhbCBwYXJ0IHdoZXJlIHRoZSBjb2xvciBpcyAqL1xuXHR3aWR0aDogMTRweDtcblx0aGVpZ2h0OiAxMnB4O1xufVxuLmRpaml0UGFsZXR0ZVRhYmxlIHRkIHtcblx0XHRwYWRkaW5nOiAwO1xufVxuLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVDZWxsOmhvdmVyIC5kaWppdFBhbGV0dGVJbWcge1xuXHQvKiBob3ZlcmVkIGNvbG9yIHN3YXRjaCAqL1xuXHRib3JkZXI6IDFweCBzb2xpZCAjMDAwO1xufVxuXG4uZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0UGFsZXR0ZUNlbGw6YWN0aXZlIC5kaWppdFBhbGV0dGVJbWcsXG4uZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0UGFsZXR0ZVRhYmxlIC5kaWppdFBhbGV0dGVDZWxsU2VsZWN0ZWQgLmRpaml0UGFsZXR0ZUltZyB7XG5cdGJvcmRlcjogMnB4IHNvbGlkICMwMDA7XG5cdG1hcmdpbjogMXB4IDA7XHQvKiByZWR1Y2UgbWFyZ2luIHRvIGNvbXBlbnNhdGUgZm9yIGluY3JlYXNlZCBib3JkZXIgKi9cbn1cblxuXG4uZGpfYTExeSAuZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0UGFsZXR0ZVRhYmxlLFxuLmRqX2ExMXkgLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVUYWJsZSAqIHtcblx0LyogdGFibGUgY2VsbHMgYXJlIHRvIGNhdGNoIGV2ZW50cywgYnV0IHRoZSBzd2F0Y2hlcyBhcmUgaW4gdGhlIFBhbGV0dGVJbWcgYmVoaW5kIHRoZSB0YWJsZSAqL1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4vKiBBY2NvcmRpb25Db250YWluZXIgKi9cblxuLmRpaml0QWNjb3JkaW9uQ29udGFpbmVyIHtcblx0Ym9yZGVyOjFweCBzb2xpZCAjYjdiN2I3O1xuXHRib3JkZXItdG9wOjAgIWltcG9ydGFudDtcbn1cbi5kaWppdEFjY29yZGlvblRpdGxlIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmRpaml0QWNjb3JkaW9uVGl0bGVTZWxlY3RlZCB7XG5cdGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLyogaW1hZ2VzIG9mZiwgaGlnaC1jb250cmFzdCBtb2RlIHN0eWxlcyAqL1xuLmRpaml0QWNjb3JkaW9uVGl0bGUgLmFycm93VGV4dFVwLFxuLmRpaml0QWNjb3JkaW9uVGl0bGUgLmFycm93VGV4dERvd24ge1xuXHRkaXNwbGF5OiBub25lO1xuXHRmb250LXNpemU6IDAuNjVlbTtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbCAhaW1wb3J0YW50O1xufVxuXG4uZGpfYTExeSAuZGlqaXRBY2NvcmRpb25UaXRsZSAuYXJyb3dUZXh0VXAsXG4uZGpfYTExeSAuZGlqaXRBY2NvcmRpb25UaXRsZVNlbGVjdGVkIC5hcnJvd1RleHREb3duIHtcblx0ZGlzcGxheTogaW5saW5lO1xufVxuXG4uZGpfYTExeSAuZGlqaXRBY2NvcmRpb25UaXRsZVNlbGVjdGVkIC5hcnJvd1RleHRVcCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kaWppdEFjY29yZGlvbkNoaWxkV3JhcHBlciB7XG5cdC8qIHRoaXMgaXMgdGhlIG5vZGUgd2hvc2UgaGVpZ2h0IGlzIGFkanVzdGVkICovXG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIENhbGVuZGFyICovXG5cbi5kaWppdENhbGVuZGFyQ29udGFpbmVyIHRhYmxlIHtcblx0d2lkdGg6IGF1dG87XHQvKiBpbiBjYXNlIHVzZXIgaGFzIHNwZWNpZmllZCBhIHdpZHRoIGZvciB0aGUgVEFCTEUgbm9kZXMsIHNlZSAjMTA1NTMgKi9cblx0Y2xlYXI6IGJvdGg7ICAgIC8qIGNsZWFyIG1hcmdpbiBjcmVhdGVkIGZvciBsZWZ0L3JpZ2h0IG1vbnRoIGFycm93czsgbmVlZGVkIG9uIElFMTAgZm9yIENhbGVuZGFyTGl0ZSAqL1xufVxuLmRpaml0Q2FsZW5kYXJDb250YWluZXIgdGgsIC5kaWppdENhbGVuZGFyQ29udGFpbmVyIHRkIHtcblx0cGFkZGluZzogMDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmRpaml0Q2FsZW5kYXJNb250aENvbnRhaW5lciB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5kaWppdENhbGVuZGFyRGVjcmVtZW50QXJyb3cge1xuXHRmbG9hdDogbGVmdDtcbn1cbi5kaWppdENhbGVuZGFySW5jcmVtZW50QXJyb3cge1xuXHRmbG9hdDogcmlnaHQ7XG59XG5cbi5kaWppdENhbGVuZGFyWWVhckxhYmVsIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyAgICAvKiBtYWtlIHN1cmUgcHJldmlvdXMsIGN1cnJlbnQsIGFuZCBuZXh0IHllYXIgYXBwZWFyIG9uIHNhbWUgcm93ICovXG59XG5cbi5kaWppdENhbGVuZGFyTmV4dFllYXIge1xuXHRtYXJnaW46MCAwIDAgMC41NWVtO1xufVxuXG4uZGlqaXRDYWxlbmRhclByZXZpb3VzWWVhciB7XG5cdG1hcmdpbjowIDAuNTVlbSAwIDA7XG59XG5cbi5kaWppdENhbGVuZGFySW5jcmVtZW50Q29udHJvbCB7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5kaWppdENhbGVuZGFySW5jcmVtZW50Q29udHJvbCxcbi5kaWppdENhbGVuZGFyRGF0ZVRlbXBsYXRlLFxuLmRpaml0Q2FsZW5kYXJNb250aExhYmVsLFxuLmRpaml0Q2FsZW5kYXJQcmV2aW91c1llYXIsXG4uZGlqaXRDYWxlbmRhck5leHRZZWFyIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uZGlqaXRDYWxlbmRhckRpc2FibGVkRGF0ZSB7XG5cdGNvbG9yOiBncmF5O1xuXHR0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcblx0Y3Vyc29yOiBkZWZhdWx0O1xufVxuXG4uZGlqaXRTcGFjZXIge1xuXHQvKiBkb24ndCBkaXNwbGF5IGl0LCBidXQgbWFrZSBpdCBhZmZlY3QgdGhlIHdpZHRoICovXG4gIFx0cG9zaXRpb246IHJlbGF0aXZlO1xuICBcdGhlaWdodDogMXB4O1xuICBcdG92ZXJmbG93OiBoaWRkZW47XG4gIFx0dmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4vKiBTdHlsaW5nIGZvciBtb250aCBkcm9wIGRvd24gbGlzdCAqL1xuXG4uZGlqaXRDYWxlbmRhck1vbnRoTWVudSAuZGlqaXRDYWxlbmRhck1vbnRoTGFiZWwge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcbn1cblxuLyogTWVudSAqL1xuXG4uZGlqaXRNZW51IHtcblx0Ym9yZGVyOjFweCBzb2xpZCBibGFjaztcblx0YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtcbn1cbi5kaWppdE1lbnVUYWJsZSB7XG5cdGJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtcblx0Ym9yZGVyLXdpZHRoOjA7XG5cdGJhY2tncm91bmQtY29sb3I6d2hpdGU7XG59XG5cbi8qIHdvcmthcm91bmQgZm9yIHdlYmtpdCBidWcgIzg0MjcsIHJlbW92ZSB0aGlzIHdoZW4gaXQgaXMgZml4ZWQgdXBzdHJlYW0gKi9cbi5kal93ZWJraXQgLmRpaml0TWVudVRhYmxlIHRkW2NvbHNwYW49XCIyXCJde1xuXHRib3JkZXItcmlnaHQ6aGlkZGVuO1xufVxuXG4uZGlqaXRNZW51SXRlbSB7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdHBhZGRpbmc6LjFlbSAuMmVtO1xuXHRjdXJzb3I6cG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLypcbk5vIG5lZWQgdG8gc2hvdyBhIGZvY3VzIGJvcmRlciBzaW5jZSBpdCdzIG9idmlvdXMgZnJvbSB0aGUgc2hhZGluZywgYW5kIHRoZXJlJ3MgYSAuZGpfYTExeSAuZGlqaXRNZW51SXRlbVNlbGVjdGVkXG5ydWxlIGJlbG93IHRoYXQgaGFuZGxlcyB0aGUgaGlnaCBjb250cmFzdCBjYXNlIHdoZW4gdGhlcmUncyBubyBzaGFkaW5nLlxuSGlkaW5nIHRoZSBmb2N1cyBib3JkZXIgYWxzbyB3b3JrcyBhcm91bmQgd2Via2l0IGJ1ZyBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9MTI1Nzc5LlxuKi9cbi5kaWppdE1lbnVJdGVtOmZvY3VzIHtcblx0b3V0bGluZTogbm9uZVxufVxuXG4uZGlqaXRNZW51UGFzc2l2ZSAuZGlqaXRNZW51SXRlbUhvdmVyLFxuLmRpaml0TWVudUl0ZW1TZWxlY3RlZCB7XG5cdC8qXG5cdCAqIGRpaml0TWVudUl0ZW1Ib3ZlciByZWZlcnMgdG8gYWN0dWFsIG1vdXNlIG92ZXJcblx0ICogZGlqaXRNZW51SXRlbVNlbGVjdGVkIGlzIHVzZWQgYWZ0ZXIgYSBtZW51IGhhcyBiZWVuIFwiYWN0aXZhdGVkXCIgYnlcblx0ICogY2xpY2tpbmcgaXQsIHRhYmJpbmcgaW50byBpdCwgb3IgYmVpbmcgb3BlbmVkIGZyb20gYSBwYXJlbnQgbWVudSxcblx0ICogYW5kIGRlbm90ZXMgdGhhdCB0aGUgbWVudSBpdGVtIGhhcyBmb2N1cyBvciB0aGF0IGZvY3VzIGlzIG9uIGEgY2hpbGRcblx0ICogbWVudVxuXHQgKi9cblx0YmFja2dyb3VuZC1jb2xvcjpibGFjaztcblx0Y29sb3I6d2hpdGU7XG59XG5cbi5kaWppdE1lbnVJdGVtSWNvbiwgLmRpaml0TWVudUV4cGFuZCB7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG5cbi5kaWppdE1lbnVJdGVtRGlzYWJsZWQgKiB7XG5cdC8qIGZvciBhIGRpc2FibGVkIG1lbnUgaXRlbSwganVzdCBzZXQgaXQgdG8gbW9zdGx5IHRyYW5zcGFyZW50ICovXG5cdG9wYWNpdHk6MC41O1xuXHRjdXJzb3I6ZGVmYXVsdDtcbn1cbi5kal9pZSAuZGpfYTExeSAuZGlqaXRNZW51SXRlbURpc2FibGVkLFxuLmRqX2llIC5kal9hMTF5IC5kaWppdE1lbnVJdGVtRGlzYWJsZWQgKixcbi5kal9pZSAuZGlqaXRNZW51SXRlbURpc2FibGVkICoge1xuXHRjb2xvcjogZ3JheTtcblx0ZmlsdGVyOiBhbHBoYShvcGFjaXR5PTM1KTtcbn1cblxuLmRpaml0TWVudUl0ZW1MYWJlbCB7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5kal9hMTF5IC5kaWppdE1lbnVJdGVtU2VsZWN0ZWQge1xuXHRib3JkZXI6IDFweCBkb3R0ZWQgYmxhY2sgIWltcG9ydGFudDtcdC8qIGZvciAyLjAgdXNlIG91dGxpbmUgaW5zdGVhZCwgdG8gcHJldmVudCBqaXR0ZXIgKi9cbn1cblxuLmRqX2ExMXkgLmRpaml0TWVudUl0ZW1TZWxlY3RlZCAuZGlqaXRNZW51SXRlbUxhYmVsIHtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG59XG4uZGpfaWU4IC5kal9hMTF5IC5kaWppdE1lbnVJdGVtTGFiZWwge1xuXHRwb3NpdGlvbjpzdGF0aWM7XG59XG5cbi5kaWppdE1lbnVFeHBhbmRBMTF5IHtcblx0ZGlzcGxheTogbm9uZTtcbn1cbi5kal9hMTF5IC5kaWppdE1lbnVFeHBhbmRBMTF5IHtcblx0ZGlzcGxheTogaW5saW5lO1xufVxuXG4uZGlqaXRNZW51U2VwYXJhdG9yIHRkIHtcblx0Ym9yZGVyOiAwO1xuXHRwYWRkaW5nOiAwO1xufVxuXG4vKiBzZXBhcmF0b3IgY2FuIGJlIHR3byBwaXhlbHMgLS0gc2V0IGJvcmRlciBvZiBlaXRoZXIgb25lIHRvIDAgdG8gaGF2ZSBvbmx5IG9uZSAqL1xuLmRpaml0TWVudVNlcGFyYXRvclRvcCB7XG5cdGhlaWdodDogNTAlO1xuXHRtYXJnaW46IDA7XG5cdG1hcmdpbi10b3A6M3B4O1xuXHRmb250LXNpemU6IDFweDtcbn1cblxuLmRpaml0TWVudVNlcGFyYXRvckJvdHRvbSB7XG5cdGhlaWdodDogNTAlO1xuXHRtYXJnaW46IDA7XG5cdG1hcmdpbi1ib3R0b206M3B4O1xuXHRmb250LXNpemU6IDFweDtcbn1cblxuLyogQ2hlY2tlZE1lbnVJdGVtIGFuZCBSYWRpb01lbnVJdGVtICovXG4uZGlqaXRNZW51SXRlbUljb25DaGFyIHtcblx0ZGlzcGxheTogbm9uZTtcdFx0LyogZG9uJ3QgZGlzcGxheSBleGNlcHQgaW4gaGlnaCBjb250cmFzdCBtb2RlICovXG5cdHZpc2liaWxpdHk6IGhpZGRlbjtcdC8qIGZvciBoaWdoIGNvbnRyYXN0IG1vZGUgd2hlbiBtZW51aXRlbSBpcyB1bmNoZWNrZWQ6IGxlYXZlIHNwYWNlIGZvciB3aGVuIGl0IGlzIGNoZWNrZWQgKi9cbn1cbi5kal9hMTF5IC5kaWppdE1lbnVJdGVtSWNvbkNoYXIge1xuXHRkaXNwbGF5OiBpbmxpbmU7XHQvKiBkaXNwbGF5IGNoYXJhY3RlciBpbiBoaWdoIGNvbnRyYXN0IG1vZGUsIHNpbmNlIGljb24gZG9lc24ndCBzaG93ICovXG59XG4uZGlqaXRDaGVja2VkTWVudUl0ZW1DaGVja2VkIC5kaWppdE1lbnVJdGVtSWNvbkNoYXIsXG4uZGlqaXRSYWRpb01lbnVJdGVtQ2hlY2tlZCAuZGlqaXRNZW51SXRlbUljb25DaGFyIHtcblx0dmlzaWJpbGl0eTogdmlzaWJsZTsgLyogbWVudWl0ZW0gaXMgY2hlY2tlZCAqL1xufVxuLmRqX2llIC5kal9hMTF5IC5kaWppdE1lbnVCYXIgLmRpaml0TWVudUl0ZW0ge1xuXHQvKiBzbyBib3R0b20gYm9yZGVyIG9mIE1lbnVCYXIgYXBwZWFycyBvbiBJRTcgaW4gaGlnaC1jb250cmFzdCBtb2RlICovXG5cdG1hcmdpbjogMDtcbn1cblxuLyogU3RhY2tDb250YWluZXIgKi9cblxuLmRpaml0U3RhY2tDb250cm9sbGVyIC5kaWppdFRvZ2dsZUJ1dHRvbkNoZWNrZWQgKiB7XG5cdGN1cnNvcjogZGVmYXVsdDtcdC8qIGJlY2F1c2UgcHJlc3NpbmcgaXQgaGFzIG5vIGVmZmVjdCAqL1xufVxuXG4vKioqXG5UYWJDb250YWluZXJcblxuTWFpbiBjbGFzcyBoaWVyYXJjaHk6XG5cbi5kaWppdFRhYkNvbnRhaW5lciAtIHRoZSB3aG9sZSBUYWJDb250YWluZXJcbiAgIC5kaWppdFRhYkNvbnRyb2xsZXIgLyAuZGlqaXRUYWJMaXN0Q29udGFpbmVyLXRvcCAtIHdyYXBwZXIgZm9yIHRhYiBidXR0b25zLCBzY3JvbGwgYnV0dG9uc1xuXHQgLmRpaml0VGFiTGlzdFdyYXBwZXIgLyAuZGlqaXRUYWJDb250YWluZXJUb3BTdHJpcCAtIG91dGVyIHdyYXBwZXIgZm9yIHRhYiBidXR0b25zIChub3JtYWwgd2lkdGgpXG5cdFx0Lm5vd3JhcFRhYlN0cmlwIC8gLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMgLSBpbm5lciB3cmFwcGVyIGZvciB0YWIgYnV0dG9ucyAoNTBLIHdpZHRoKVxuICAgLmRpaml0VGFiUGFuZVdyYXBwZXIgLSB3cmFwcGVyIGZvciBjb250ZW50IHBhbmVzLCBoYXMgYWxsIGJvcmRlcnMgZXhjZXB0IHRoZSBvbmUgYmV0d2VlbiBjb250ZW50IGFuZCB0YWJzXG4qKiovXG5cbi5kaWppdFRhYkNvbnRhaW5lciB7XG4gICAgei1pbmRleDogMDsgLyogc28gei1pbmRleCBzZXR0aW5ncyBiZWxvdyBoYXZlIG5vIGVmZmVjdCBvdXRzaWRlIG9mIHRoZSBUYWJDb250YWluZXIgKi9cbiAgICBvdmVyZmxvdzogdmlzaWJsZTsgLyogcHJldmVudCBvZmYtYnktb25lLXBpeGVsIGVycm9ycyBmcm9tIGhpZGluZyBib3R0b20gYm9yZGVyIChvcHBvc2l0ZSB0YWIgbGFiZWxzKSAqL1xufVxuLmRqX2llNiAuZGlqaXRUYWJDb250YWluZXIge1xuICAgIC8qIHdvcmthcm91bmQgSUU2IHByb2JsZW0gd2hlbiB0YWxsIGNvbnRlbnQgb3ZlcmZsb3dzIFRhYkNvbnRhaW5lciwgc2VlIGVkaXRvci90ZXN0X0Z1bGxTY3JlZW4uaHRtbCAqL1xuICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxufVxuLmRpaml0VGFiQ29udGFpbmVyTm9MYXlvdXQge1xuXHR3aWR0aDogMTAwJTtcdC8qIG90aGVyd2lzZSBTY3JvbGxpbmdUYWJDb250cm9sbGVyIGdvZXMgdG8gNTBLIHBpeGVscyB3aWRlICovXG59XG5cbi5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS10YWJzLFxuLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMsXG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LXRhYnMsXG4uZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzIHtcbiAgICB6LWluZGV4OiAxO1xuXHRvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50OyAgLyogc28gdGFicyBjYW4gY292ZXIgdXAgYm9yZGVyIGFkamFjZW50IHRvIGNvbnRhaW5lciAqL1xufVxuXG4uZGlqaXRUYWJDb250cm9sbGVyIHtcbiAgICB6LWluZGV4OiAxO1xufVxuLmRpaml0VGFiQ29udGFpbmVyQm90dG9tLWNvbnRhaW5lcixcbi5kaWppdFRhYkNvbnRhaW5lclRvcC1jb250YWluZXIsXG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LWNvbnRhaW5lcixcbi5kaWppdFRhYkNvbnRhaW5lclJpZ2h0LWNvbnRhaW5lciB7XG5cdHotaW5kZXg6MDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0Ym9yZGVyOiAxcHggc29saWQgYmxhY2s7XG59XG4ubm93cmFwVGFiU3RyaXAge1xuXHR3aWR0aDogNTAwMDBweDtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyAgLyoganVzdCBpbiBjYXNlIGFuY2VzdG9yIGhhcyBub24tc3RhbmRhcmQgc2V0dGluZyAqL1xuICAgIHotaW5kZXg6IDE7XG59XG4uZGlqaXRUYWJMaXN0V3JhcHBlciB7XG5cdG92ZXJmbG93OiBoaWRkZW47XG4gICAgei1pbmRleDogMTtcbn1cblxuLmRqX2ExMXkgLnRhYlN0cmlwQnV0dG9uIGltZyB7XG5cdC8qIGhpZGUgdGhlIGljb25zIChvciByYXRoZXIgdGhlIGVtcHR5IHNwYWNlIHdoZXJlIHRoZXkgbm9ybWFsbHkgYXBwZWFyKSBiZWNhdXNlIHRleHQgd2lsbCBhcHBlYXIgaW5zdGVhZCAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJUb3AtdGFicyB7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBibGFjaztcbn1cbi5kaWppdFRhYkNvbnRhaW5lclRvcC1jb250YWluZXIge1xuXHRib3JkZXItdG9wOiAwO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LXRhYnMge1xuXHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCBibGFjaztcblx0ZmxvYXQ6IGxlZnQ7ICAgIC8qIG5lZWRlZCBmb3IgSUU3IFJUTCBtb2RlICovXG59XG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LWNvbnRhaW5lciB7XG5cdGJvcmRlci1sZWZ0OiAwO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJCb3R0b20tdGFicyB7XG5cdGJvcmRlci10b3A6IDFweCBzb2xpZCBibGFjaztcbn1cbi5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS1jb250YWluZXIge1xuXHRib3JkZXItYm90dG9tOiAwO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzIHtcblx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCBibGFjaztcblx0ZmxvYXQ6IGxlZnQ7ICAgIC8qIG5lZWRlZCBmb3IgSUU3IFJUTCBtb2RlICovXG59XG4uZGlqaXRUYWJDb250YWluZXJSaWdodC1jb250YWluZXIge1xuXHRib3JkZXItcmlnaHQ6IDA7XG59XG5cbmRpdi5kaWppdFRhYkRpc2FibGVkLCAuZGpfaWUgZGl2LmRpaml0VGFiRGlzYWJsZWQge1xuXHRjdXJzb3I6IGF1dG87XG59XG5cbi5kaWppdFRhYiB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRjdXJzb3I6cG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcblx0d2hpdGUtc3BhY2U6bm93cmFwO1xuXHR6LWluZGV4OjM7XG59XG4uZGlqaXRUYWIgKiB7XG5cdC8qIG1ha2UgdGFiIGljb25zIGFuZCBjbG9zZSBpY29uIGxpbmUgdXAgdy90ZXh0ICovXG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4uZGlqaXRUYWJDaGVja2VkIHtcblx0Y3Vyc29yOiBkZWZhdWx0O1x0LyogYmVjYXVzZSBjbGlja2luZyB3aWxsIGhhdmUgbm8gZWZmZWN0ICovXG59XG5cbi5kaWppdFRhYkNvbnRhaW5lclRvcC10YWJzIC5kaWppdFRhYiB7XG5cdHRvcDogMXB4O1x0LyogdG8gb3ZlcmxhcCBib3JkZXIgb24gLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMgKi9cbn1cbi5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS10YWJzIC5kaWppdFRhYiB7XG5cdHRvcDogLTFweDtcdC8qIHRvIG92ZXJsYXAgYm9yZGVyIG9uIC5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS10YWJzICovXG59XG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LXRhYnMgLmRpaml0VGFiIHtcblx0bGVmdDogMXB4O1x0LyogdG8gb3ZlcmxhcCBib3JkZXIgb24gLmRpaml0VGFiQ29udGFpbmVyTGVmdC10YWJzICovXG59XG4uZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzIC5kaWppdFRhYiB7XG5cdGxlZnQ6IC0xcHg7XHQvKiB0byBvdmVybGFwIGJvcmRlciBvbiAuZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzICovXG59XG5cblxuLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMgLmRpaml0VGFiLFxuLmRpaml0VGFiQ29udGFpbmVyQm90dG9tLXRhYnMgLmRpaml0VGFiIHtcblx0LyogSW5saW5lLWJsb2NrICovXG5cdGRpc3BsYXk6aW5saW5lLWJsb2NrO1x0XHRcdC8qIHdlYmtpdCBhbmQgRkYzICovXG5cdCN6b29tOiAxOyAvKiBzZXQgaGFzTGF5b3V0OnRydWUgdG8gbWltaWMgaW5saW5lLWJsb2NrICovXG5cdCNkaXNwbGF5OmlubGluZTsgLyogZG9uJ3QgdXNlIC5kal9pZSBzaW5jZSB0aGF0IGluY3JlYXNlcyB0aGUgcHJpb3JpdHkgKi9cbn1cblxuLnRhYlN0cmlwQnV0dG9uIHtcblx0ei1pbmRleDogMTI7XG59XG5cbi5kaWppdFRhYkJ1dHRvbkRpc2FibGVkIC50YWJTdHJpcEJ1dHRvbiB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cblxuLmRpaml0VGFiQ2xvc2VCdXR0b24ge1xuXHRtYXJnaW4tbGVmdDogMWVtO1xufVxuXG4uZGlqaXRUYWJDbG9zZVRleHQge1xuXHRkaXNwbGF5Om5vbmU7XG59XG5cbi5kaWppdFRhYiAudGFiTGFiZWwge1xuXHQvKiBtYWtlIHN1cmUgdGFicyB3L2Nsb3NlIGJ1dHRvbiBhbmQgdy9vdXQgY2xvc2UgYnV0dG9uIGFyZSBzYW1lIGhlaWdodCwgZXZlbiB3L3NtYWxsICg8MTVweCkgZm9udC5cblx0ICogYXNzdW1lcyA8PTE1cHggaGVpZ2h0IGZvciBjbG9zZSBidXR0b24gaWNvbi5cblx0ICovXG5cdG1pbi1oZWlnaHQ6IDE1cHg7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5kaWppdE5vSWNvbiB7XG5cdC8qIGFwcGxpZWQgdG8gPGltZz4vPHNwYW4+IG5vZGUgd2hlbiB0aGVyZSBpcyBubyBpY29uIHNwZWNpZmllZCAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuLmRqX2llNiAuZGlqaXRUYWIgLmRpaml0Tm9JY29uIHtcblx0LyogYmVjYXVzZSBtaW4taGVpZ2h0IChvbiAudGFiTGFiZWwsIGFib3ZlKSBkb2Vzbid0IHdvcmsgb24gSUU2ICovXG5cdGRpc3BsYXk6IGlubGluZTtcblx0aGVpZ2h0OiAxNXB4O1xuXHR3aWR0aDogMXB4O1xufVxuXG4vKiBpbWFnZXMgb2ZmLCBoaWdoLWNvbnRyYXN0IG1vZGUgc3R5bGVzICovXG5cbi5kal9hMTF5IC5kaWppdFRhYkNsb3NlQnV0dG9uIHtcblx0YmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuXHR3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLmRqX2ExMXkgLmRpaml0VGFiQ2xvc2VUZXh0IHtcblx0ZGlzcGxheTogaW5saW5lO1xufVxuXG4uZGlqaXRUYWJQYW5lLFxuLmRpaml0U3RhY2tDb250YWluZXItY2hpbGQsXG4uZGlqaXRBY2NvcmRpb25Db250YWluZXItY2hpbGQge1xuXHQvKiBjaGlsZHJlbiBvZiBUYWJDb250YWluZXIsIFN0YWNrQ29udGFpbmVyLCBhbmQgQWNjb3JkaW9uQ29udGFpbmVyIHNob3VsZG4ndCBoYXZlIGJvcmRlcnNcblx0ICogYi9jIGEgYm9yZGVyIGlzIGFscmVhZHkgdGhlcmUgZnJvbSB0aGUgVGFiQ29udGFpbmVyL1N0YWNrQ29udGFpbmVyL0FjY29yZGlvbkNvbnRhaW5lciBpdHNlbGYuXG5cdCAqL1xuICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiBJbmxpbmVFZGl0Qm94ICovXG4uZGlqaXRJbmxpbmVFZGl0Qm94RGlzcGxheU1vZGUge1xuXHRib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcdC8qIHNvIGtleWxpbmUgKGJvcmRlcikgb24gaG92ZXIgY2FuIGFwcGVhciB3aXRob3V0IHNjcmVlbiBqdW1wICovXG5cdGN1cnNvcjogdGV4dDtcbn1cblxuLmRqX2ExMXkgLmRpaml0SW5saW5lRWRpdEJveERpc3BsYXlNb2RlLFxuLmRqX2llNiAuZGlqaXRJbmxpbmVFZGl0Qm94RGlzcGxheU1vZGUge1xuXHQvKiBleGNlcHQgdGhhdCBJRTYgZG9lc24ndCBzdXBwb3J0IHRyYW5zcGFyZW50IGJvcmRlcnMsIG5vciBkb2VzIGhpZ2ggY29udHJhc3QgbW9kZSAqL1xuXHRib3JkZXI6IG5vbmU7XG59XG5cbi5kaWppdElubGluZUVkaXRCb3hEaXNwbGF5TW9kZUhvdmVyLFxuLmRqX2ExMXkgLmRpaml0SW5saW5lRWRpdEJveERpc3BsYXlNb2RlSG92ZXIsXG4uZGpfaWU2IC5kaWppdElubGluZUVkaXRCb3hEaXNwbGF5TW9kZUhvdmVyIHtcblx0LyogQW4gSW5saW5lRWRpdEJveCBpbiB2aWV3IG1vZGUgKGNsaWNrIHRoaXMgdG8gZWRpdCB0aGUgdGV4dCkgKi9cblx0YmFja2dyb3VuZC1jb2xvcjogI2UyZWJmMjtcblx0Ym9yZGVyOiBzb2xpZCAxcHggYmxhY2s7XG59XG5cbi5kaWppdElubGluZUVkaXRCb3hEaXNwbGF5TW9kZURpc2FibGVkIHtcblx0Y3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKiBUcmVlICovXG4uZGlqaXRUcmVlIHtcblx0b3ZlcmZsb3c6IGF1dG87XHQvKiBmb3Igc2Nyb2xsYmFycyB3aGVuIFRyZWUgaGFzIGEgaGVpZ2h0IHNldHRpbmcsIGFuZCB0byBwcmV2ZW50IHdyYXBwaW5nIGFyb3VuZCBmbG9hdCBlbGVtZW50cywgc2VlICMxMTQ5MSAqL1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uZGlqaXRUcmVlQ29udGFpbmVyIHtcblx0ZmxvYXQ6IGxlZnQ7XHQvKiBmb3IgY29ycmVjdCBoaWdobGlnaHRpbmcgZHVyaW5nIGhvcml6b250YWwgc2Nyb2xsLCBzZWUgIzE2MTMyICovXG59XG5cbi5kaWppdFRyZWVJbmRlbnQge1xuXHQvKiBhbW91bnQgdG8gaW5kZW50IGVhY2ggdHJlZSBub2RlIChyZWxhdGl2ZSB0byBwYXJlbnQgbm9kZSkgKi9cblx0d2lkdGg6IDE5cHg7XG59XG5cbi5kaWppdFRyZWVSb3csIC5kaWppdFRyZWVDb250ZW50IHtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmRqX2llIC5kaWppdFRyZWVMYWJlbDpmb2N1cyB7XG5cdC8qIHdvcmthcm91bmQgSUU5IGJlaGF2aW9yIHdoZXJlIGRvd24gYXJyb3dpbmcgdGhyb3VnaCBUcmVlTm9kZXMgZG9lc24ndCBzaG93IGZvY3VzIG91dGxpbmUgKi9cblx0b3V0bGluZTogMXB4IGRvdHRlZCBibGFjaztcbn1cblxuLmRpaml0VHJlZVJvdyBpbWcge1xuXHQvKiBtYWtlIHRoZSBleHBhbmRvIGFuZCBmb2xkZXIgaWNvbnMgbGluZSB1cCB3aXRoIHRoZSBsYWJlbCAqL1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uZGlqaXRUcmVlQ29udGVudCB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4uZGlqaXRFeHBhbmRvVGV4dCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kal9hMTF5IC5kaWppdEV4cGFuZG9UZXh0IHtcblx0ZGlzcGxheTogaW5saW5lO1xuXHRwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cdHBhZGRpbmctcmlnaHQ6IDEwcHg7XG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci13aWR0aDogdGhpbjtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZGlqaXRUcmVlTGFiZWwge1xuXHRtYXJnaW46IDAgNHB4O1xufVxuXG4vKiBEaWFsb2cgKi9cblxuLmRpaml0RGlhbG9nIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiA5OTk7XG5cdG92ZXJmbG93OiBoaWRkZW47XHQvKiBvdmVycmlkZSBvdmVyZmxvdzogYXV0bzsgZnJvbSBDb250ZW50UGFuZSB0byBtYWtlIGRyYWdnaW5nIHNtb290aGVyICovXG59XG5cbi5kaWppdERpYWxvZ1RpdGxlQmFyIHtcblx0Y3Vyc29yOiBtb3ZlO1xufVxuLmRpaml0RGlhbG9nRml4ZWQgLmRpaml0RGlhbG9nVGl0bGVCYXIge1xuXHRjdXJzb3I6ZGVmYXVsdDtcbn1cbi5kaWppdERpYWxvZ0Nsb3NlSWNvbiB7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5kaWppdERpYWxvZ1BhbmVDb250ZW50IHtcblx0LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuLmRpaml0RGlhbG9nVW5kZXJsYXlXcmFwcGVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAwO1xuXHR0b3A6IDA7XG5cdHotaW5kZXg6IDk5ODtcblx0ZGlzcGxheTogbm9uZTtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cblxuLmRpaml0RGlhbG9nVW5kZXJsYXkge1xuXHRiYWNrZ3JvdW5kOiAjZWVlO1xuXHRvcGFjaXR5OiAwLjU7XG59XG5cbi5kal9pZSAuZGlqaXREaWFsb2dVbmRlcmxheSB7XG5cdGZpbHRlcjogYWxwaGEob3BhY2l0eT01MCk7XG59XG5cbi8qIGltYWdlcyBvZmYsIGhpZ2gtY29udHJhc3QgbW9kZSBzdHlsZXMgKi9cbi5kal9hMTF5IC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIsXG4uZGpfYTExeSAuZGlqaXREaWFsb2cge1xuXHRvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdERpYWxvZyAuY2xvc2VUZXh0IHtcblx0ZGlzcGxheTpub25lO1xuXHQvKiBmb3IgdGhlIG9uaG92ZXIgYm9yZGVyIGluIGhpZ2ggY29udHJhc3Qgb24gSUU6ICovXG5cdHBvc2l0aW9uOmFic29sdXRlO1xufVxuXG4uZGpfYTExeSAuZGlqaXREaWFsb2cgLmNsb3NlVGV4dCB7XG5cdGRpc3BsYXk6aW5saW5lO1xufVxuXG4vKiBTbGlkZXIgKi9cblxuLmRpaml0U2xpZGVyTW92ZWFibGUge1xuXHR6LWluZGV4Ojk5O1xuXHRwb3NpdGlvbjphYnNvbHV0ZSAhaW1wb3J0YW50O1xuXHRkaXNwbGF5OmJsb2NrO1xuXHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XG59XG5cbi5kaWppdFNsaWRlck1vdmVhYmxlSCB7XG5cdHJpZ2h0OjA7XG59XG4uZGlqaXRTbGlkZXJNb3ZlYWJsZVYge1xuXHRyaWdodDo1MCU7XG59XG5cbi5kal9hMTF5IGRpdi5kaWppdFNsaWRlckltYWdlSGFuZGxlLFxuLmRpaml0U2xpZGVySW1hZ2VIYW5kbGUge1xuXHRtYXJnaW46MDtcblx0cGFkZGluZzowO1xuXHRwb3NpdGlvbjpyZWxhdGl2ZSAhaW1wb3J0YW50O1xuXHRib3JkZXI6OHB4IHNvbGlkIGdyYXk7XG5cdHdpZHRoOjA7XG5cdGhlaWdodDowO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZGpfaWVxdWlya3MgLmRqX2ExMXkgLmRpaml0U2xpZGVySW1hZ2VIYW5kbGUge1xuXHRmb250LXNpemU6IDA7XG59XG4uZGpfaWU3IC5kaWppdFNsaWRlckltYWdlSGFuZGxlIHtcblx0b3ZlcmZsb3c6IGhpZGRlbjsgLyogSUU3IHdvcmthcm91bmQgdG8gbWFrZSBzbGlkZXIgaGFuZGxlIFZJU0lCTEUgaW4gbm9uLWExMXkgbW9kZSAqL1xufVxuLmRqX2llNyAuZGpfYTExeSAuZGlqaXRTbGlkZXJJbWFnZUhhbmRsZSB7XG5cdG92ZXJmbG93OiB2aXNpYmxlOyAvKiBJRTcgd29ya2Fyb3VuZCB0byBtYWtlIHNsaWRlciBoYW5kbGUgVklTSUJMRSBpbiBhMTF5IG1vZGUgKi9cbn1cbi5kal9hMTF5IC5kaWppdFNsaWRlckZvY3VzZWQgLmRpaml0U2xpZGVySW1hZ2VIYW5kbGUge1xuXHRib3JkZXI6NHB4IHNvbGlkICMwMDA7XG5cdGhlaWdodDo4cHg7XG5cdHdpZHRoOjhweDtcbn1cblxuLmRpaml0U2xpZGVySW1hZ2VIYW5kbGVWIHtcblx0dG9wOi04cHg7XG5cdHJpZ2h0OiAtNTAlO1xufVxuXG4uZGlqaXRTbGlkZXJJbWFnZUhhbmRsZUgge1xuXHRsZWZ0OjUwJTtcblx0dG9wOi01cHg7XG5cdHZlcnRpY2FsLWFsaWduOnRvcDtcbn1cblxuLmRpaml0U2xpZGVyQmFyIHtcblx0Ym9yZGVyLXN0eWxlOnNvbGlkO1xuXHRib3JkZXItY29sb3I6YmxhY2s7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmRpaml0U2xpZGVyQmFyQ29udGFpbmVyViB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRoZWlnaHQ6MTAwJTtcblx0ei1pbmRleDoxO1xufVxuXG4uZGlqaXRTbGlkZXJCYXJDb250YWluZXJIIHtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdHotaW5kZXg6MTtcbn1cblxuLmRpaml0U2xpZGVyQmFySCB7XG5cdGhlaWdodDo0cHg7XG5cdGJvcmRlci13aWR0aDoxcHggMDtcbn1cblxuLmRpaml0U2xpZGVyQmFyViB7XG5cdHdpZHRoOjRweDtcblx0Ym9yZGVyLXdpZHRoOjAgMXB4O1xufVxuXG4uZGlqaXRTbGlkZXJQcm9ncmVzc0JhciB7XG5cdGJhY2tncm91bmQtY29sb3I6cmVkO1xuXHR6LWluZGV4OjE7XG59XG5cbi5kaWppdFNsaWRlclByb2dyZXNzQmFyViB7XG5cdHBvc2l0aW9uOnN0YXRpYyAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6MDtcblx0dmVydGljYWwtYWxpZ246dG9wO1xuXHR0ZXh0LWFsaWduOmxlZnQ7XG59XG5cbi5kaWppdFNsaWRlclByb2dyZXNzQmFySCB7XG5cdHBvc2l0aW9uOmFic29sdXRlICFpbXBvcnRhbnQ7XG5cdHdpZHRoOjA7XG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0b3ZlcmZsb3c6dmlzaWJsZTtcbn1cblxuLmRpaml0U2xpZGVyUmVtYWluaW5nQmFyIHtcblx0b3ZlcmZsb3c6aGlkZGVuO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O1xuXHR6LWluZGV4OjE7XG59XG5cbi5kaWppdFNsaWRlclJlbWFpbmluZ0JhclYge1xuXHRoZWlnaHQ6MTAwJTtcblx0dGV4dC1hbGlnbjpsZWZ0O1xufVxuXG4uZGlqaXRTbGlkZXJSZW1haW5pbmdCYXJIIHtcblx0d2lkdGg6MTAwJSAhaW1wb3J0YW50O1xufVxuXG4vKiB0aGUgc2xpZGVyIGJ1bXBlciBpcyB0aGUgc3BhY2UgY29uc3VtZWQgYnkgdGhlIHNsaWRlciBoYW5kbGUgd2hlbiBpdCBoYW5ncyBvdmVyIGFuIGVkZ2UgKi9cbi5kaWppdFNsaWRlckJ1bXBlciB7XG5cdG92ZXJmbG93OmhpZGRlbjtcblx0ei1pbmRleDoxO1xufVxuXG4uZGlqaXRTbGlkZXJCdW1wZXJWIHtcblx0d2lkdGg6NHB4O1xuXHRoZWlnaHQ6OHB4O1xuXHRib3JkZXItd2lkdGg6MCAxcHg7XG59XG5cbi5kaWppdFNsaWRlckJ1bXBlckgge1xuXHR3aWR0aDo4cHg7XG5cdGhlaWdodDo0cHg7XG5cdGJvcmRlci13aWR0aDoxcHggMDtcbn1cblxuLmRpaml0U2xpZGVyQm90dG9tQnVtcGVyLFxuLmRpaml0U2xpZGVyTGVmdEJ1bXBlciB7XG5cdGJhY2tncm91bmQtY29sb3I6cmVkO1xufVxuXG4uZGlqaXRTbGlkZXJUb3BCdW1wZXIsXG4uZGlqaXRTbGlkZXJSaWdodEJ1bXBlciB7XG5cdGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7XG59XG5cbi5kaWppdFNsaWRlckRlY29yYXRpb24ge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcbn1cblxuLmRpaml0U2xpZGVyRGVjb3JhdGlvbkMsXG4uZGlqaXRTbGlkZXJEZWNvcmF0aW9uViB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogbmVlZGVkIGZvciBJRStxdWlya3MrUlRMK3ZlcnRpY2FsIChyZW5kZXJpbmcgYnVnKSBidXQgYWRkIGV2ZXJ5d2hlcmUgZm9yIGN1c3RvbSBzdHlsaW5nIGNvbnNpc3RlbmN5IGJ1dCB0aGlzIG1lc3NlcyB1cCBJRSBob3Jpem9udGFsIHNsaWRlcnMgKi9cbn1cblxuLmRpaml0U2xpZGVyRGVjb3JhdGlvbkgge1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLmRpaml0U2xpZGVyRGVjb3JhdGlvblYge1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5kaWppdFNsaWRlckJ1dHRvbiB7XG5cdGZvbnQtZmFtaWx5Om1vbm9zcGFjZTtcblx0bWFyZ2luOjA7XG5cdHBhZGRpbmc6MDtcblx0ZGlzcGxheTpibG9jaztcbn1cblxuLmRqX2ExMXkgLmRpaml0U2xpZGVyQnV0dG9uSW5uZXIge1xuXHR2aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDtcbn1cblxuLmRpaml0U2xpZGVyQnV0dG9uQ29udGFpbmVyIHtcblx0dGV4dC1hbGlnbjpjZW50ZXI7XG5cdGhlaWdodDowO1x0LyogPz8/ICovXG59XG4uZGlqaXRTbGlkZXJCdXR0b25Db250YWluZXIgKiB7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmRpaml0U2xpZGVyIC5kaWppdEJ1dHRvbk5vZGUge1xuXHRwYWRkaW5nOjA7XG5cdGRpc3BsYXk6YmxvY2s7XG59XG5cbi5kaWppdFJ1bGVDb250YWluZXIge1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0b3ZlcmZsb3c6dmlzaWJsZTtcbn1cblxuLmRpaml0UnVsZUNvbnRhaW5lclYge1xuXHRoZWlnaHQ6MTAwJTtcblx0bGluZS1oZWlnaHQ6MDtcblx0ZmxvYXQ6bGVmdDtcblx0dGV4dC1hbGlnbjpsZWZ0O1xufVxuXG4uZGpfb3BlcmEgLmRpaml0UnVsZUNvbnRhaW5lclYge1xuXHRsaW5lLWhlaWdodDoyJTtcbn1cblxuLmRqX2llIC5kaWppdFJ1bGVDb250YWluZXJWIHtcblx0bGluZS1oZWlnaHQ6bm9ybWFsO1xufVxuXG4uZGpfZ2Vja28gLmRpaml0UnVsZUNvbnRhaW5lclYge1xuXHRtYXJnaW46MCAwIDFweCAwOyAvKiBtb3ppbGxhIGJ1ZyB3b3JrYXJvdW5kIGZvciBmbG9hdDpsZWZ0LGhlaWdodDoxMDAlIGJsb2NrIGVsZW1lbnRzICovXG59XG5cbi5kaWppdFJ1bGVNYXJrIHtcblx0cG9zaXRpb246YWJzb2x1dGU7XG5cdGJvcmRlcjoxcHggc29saWQgYmxhY2s7XG5cdGxpbmUtaGVpZ2h0OjA7XG5cdGhlaWdodDoxMDAlO1xufVxuXG4uZGlqaXRSdWxlTWFya0gge1xuXHR3aWR0aDowO1xuXHRib3JkZXItdG9wLXdpZHRoOjAgIWltcG9ydGFudDtcblx0Ym9yZGVyLWJvdHRvbS13aWR0aDowICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1sZWZ0LXdpZHRoOjAgIWltcG9ydGFudDtcbn1cblxuLmRpaml0UnVsZUxhYmVsQ29udGFpbmVyIHtcblx0cG9zaXRpb246YWJzb2x1dGU7XG59XG5cbi5kaWppdFJ1bGVMYWJlbENvbnRhaW5lckgge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG59XG5cbi5kaWppdFJ1bGVMYWJlbEgge1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0bGVmdDotNTAlO1xufVxuXG4uZGlqaXRSdWxlTGFiZWxWIHtcblx0Lyogc28gdGhhdCBsb25nIGxhYmVscyBkb24ndCBvdmVyZmxvdyB0byBtdWx0aXBsZSByb3dzLCBvciBvdmVyd3JpdGUgc2xpZGVyIGl0c2VsZiAqL1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmRpaml0UnVsZU1hcmtWIHtcblx0aGVpZ2h0OjA7XG5cdGJvcmRlci1yaWdodC13aWR0aDowICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1ib3R0b20td2lkdGg6MCAhaW1wb3J0YW50O1xuXHRib3JkZXItbGVmdC13aWR0aDowICFpbXBvcnRhbnQ7XG5cdHdpZHRoOjEwMCU7XG5cdGxlZnQ6MDtcbn1cblxuLmRqX2llIC5kaWppdFJ1bGVMYWJlbENvbnRhaW5lclYge1xuXHRtYXJnaW4tdG9wOi0uNTVlbTtcbn1cblxuLmRqX2ExMXkgLmRpaml0U2xpZGVyUmVhZE9ubHksXG4uZGpfYTExeSAuZGlqaXRTbGlkZXJEaXNhYmxlZCB7XG5cdG9wYWNpdHk6MC42O1xufVxuLmRqX2llIC5kal9hMTF5IC5kaWppdFNsaWRlclJlYWRPbmx5IC5kaWppdFNsaWRlckJhcixcbi5kal9pZSAuZGpfYTExeSAuZGlqaXRTbGlkZXJEaXNhYmxlZCAuZGlqaXRTbGlkZXJCYXIge1xuXHRmaWx0ZXI6IGFscGhhKG9wYWNpdHk9NDApO1xufVxuXG4vKiArIGFuZCAtIFNsaWRlciBidXR0b25zOiBvdmVycmlkZSB0aGVtZSBzZXR0aW5ncyB0byBkaXNwbGF5IGljb25zICovXG4uZGpfYTExeSAuZGlqaXRTbGlkZXIgLmRpaml0U2xpZGVyQnV0dG9uQ29udGFpbmVyIGRpdiB7XG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7IC8qIG90aGVyd2lzZSBoeXBoZW4gaXMgbGFyZ2VyIGFuZCBtb3JlIHZlcnRpY2FsbHkgY2VudGVyZWQgKi9cblx0Zm9udC1zaXplOiAxZW07XG5cdGxpbmUtaGVpZ2h0OiAxZW07XG5cdGhlaWdodDogYXV0bztcblx0d2lkdGg6IGF1dG87XG5cdG1hcmdpbjogMCA0cHg7XG59XG5cbi8qIEljb24tb25seSBidXR0b25zIChvZnRlbiBpbiB0b29sYmFycykgc3RpbGwgZGlzcGxheSB0aGUgdGV4dCBpbiBoaWdoLWNvbnRyYXN0IG1vZGUgKi9cbi5kal9hMTF5IC5kaWppdEJ1dHRvbkNvbnRlbnRzIC5kaWppdEJ1dHRvblRleHQsXG4uZGpfYTExeSAuZGlqaXRUYWIgLnRhYkxhYmVsIHtcblx0ZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG59XG4uZGpfYTExeSAuZGlqaXRTZWxlY3QgLmRpaml0QnV0dG9uVGV4dCB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xufVxuXG4vKiBUZXh0QXJlYSwgU2ltcGxlVGV4dEFyZWEgKi9cbi5kaWppdFRleHRBcmVhIHtcblx0d2lkdGg6MTAwJTtcblx0b3ZlcmZsb3cteTogYXV0bztcdC8qIHcvb3V0IHRoaXMgSUUncyBTaW1wbGVUZXh0QXJlYSBnb2VzIHRvIG92ZXJmbG93OiBzY3JvbGwgKi9cbn1cbi5kaWppdFRleHRBcmVhW2NvbHNdIHtcblx0d2lkdGg6YXV0bzsgLyogU2ltcGxlVGV4dEFyZWEgY29scyAqL1xufVxuLmRqX2llIC5kaWppdFRleHRBcmVhQ29scyB7XG5cdHdpZHRoOmF1dG87XG59XG5cbi5kaWppdEV4cGFuZGluZ1RleHRBcmVhIHtcblx0LyogZm9yIGF1dG8gZXhhbmRpbmcgdGV4dGFyZWEgKGNhbGxlZCBUZXh0YXJlYSBjdXJyZW50bHksIHJlbmFtZSBmb3IgMi4wKSBkb24ndCB3YW50IHRvIGRpc3BsYXkgdGhlIGdyaXAgdG8gcmVzaXplICovXG5cdHJlc2l6ZTogbm9uZTtcbn1cblxuXG4vKiBUb29sYmFyXG4gKiBOb3RlIHRoYXQgb3RoZXIgdG9vbGJhciBydWxlcyAoZm9yIG9iamVjdHMgaW4gdG9vbGJhcnMpIGFyZSBzY2F0dGVyZWQgdGhyb3VnaG91dCB0aGlzIGZpbGUuXG4gKi9cblxuLmRpaml0VG9vbGJhclNlcGFyYXRvciB7XG5cdGhlaWdodDogMThweDtcblx0d2lkdGg6IDVweDtcblx0cGFkZGluZzogMCAxcHg7XG5cdG1hcmdpbjogMDtcbn1cblxuLyogRWRpdG9yICovXG4uZGlqaXRJRUZpeGVkVG9vbGJhciB7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHQvKiB0b3A6MDsgKi9cblx0dG9wOiBleHByZXNzaW9uKGV2YWwoKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudHx8ZG9jdW1lbnQuYm9keSkuc2Nyb2xsVG9wKSk7XG59XG5cbi5kaWppdEVkaXRvciB7XG5cdGRpc3BsYXk6IGJsb2NrO1x0LyogcHJldmVudHMgZ2xpdGNoIG9uIEZGIHdpdGggSW5saW5lRWRpdEJveCwgc2VlICM4NDA0ICovXG59XG5cbi5kaWppdEVkaXRvckRpc2FibGVkLFxuLmRpaml0RWRpdG9yUmVhZE9ubHkge1xuXHRjb2xvcjogZ3JheTtcbn1cblxuLyogVGltZVBpY2tlciAqL1xuXG4uZGlqaXRUaW1lUGlja2VyIHtcblx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uZGlqaXRUaW1lUGlja2VySXRlbSB7XG5cdGN1cnNvcjpwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmRpaml0VGltZVBpY2tlckl0ZW1Ib3ZlciB7XG5cdGJhY2tncm91bmQtY29sb3I6Z3JheTtcblx0Y29sb3I6d2hpdGU7XG59XG4uZGlqaXRUaW1lUGlja2VySXRlbVNlbGVjdGVkIHtcblx0Zm9udC13ZWlnaHQ6Ym9sZDtcblx0Y29sb3I6IzMzMztcblx0YmFja2dyb3VuZC1jb2xvcjojYjdjZGVlO1xufVxuLmRpaml0VGltZVBpY2tlckl0ZW1EaXNhYmxlZCB7XG5cdGNvbG9yOmdyYXk7XG5cdHRleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2g7XG59XG5cbi5kaWppdFRpbWVQaWNrZXJJdGVtSW5uZXIge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0Ym9yZGVyOjA7XG5cdHBhZGRpbmc6MnB4IDhweCAycHggOHB4O1xufVxuXG4uZGlqaXRUaW1lUGlja2VyVGljayxcbi5kaWppdFRpbWVQaWNrZXJNYXJrZXIge1xuXHRib3JkZXItYm90dG9tOjFweCBzb2xpZCBncmF5O1xufVxuXG4uZGlqaXRUaW1lUGlja2VyIC5kaWppdERvd25BcnJvd0J1dHRvbiB7XG5cdGJvcmRlci10b3A6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmRpaml0VGltZVBpY2tlclRpY2sge1xuXHRjb2xvcjojQ0NDO1xufVxuXG4uZGlqaXRUaW1lUGlja2VyTWFya2VyIHtcblx0Y29sb3I6YmxhY2s7XG5cdGJhY2tncm91bmQtY29sb3I6I0NDQztcbn1cblxuLmRqX2ExMXkgLmRpaml0VGltZVBpY2tlckl0ZW1TZWxlY3RlZCAuZGlqaXRUaW1lUGlja2VySXRlbUlubmVyIHtcblx0Ym9yZGVyOiBzb2xpZCA0cHggYmxhY2s7XG59XG4uZGpfYTExeSAuZGlqaXRUaW1lUGlja2VySXRlbUhvdmVyIC5kaWppdFRpbWVQaWNrZXJJdGVtSW5uZXIge1xuXHRib3JkZXI6IGRhc2hlZCA0cHggYmxhY2s7XG59XG5cblxuLmRpaml0VG9nZ2xlQnV0dG9uSWNvbkNoYXIge1xuXHQvKiBjaGFyYWN0ZXIgKGluc3RlYWQgb2YgaWNvbikgdG8gc2hvdyB0aGF0IFRvZ2dsZUJ1dHRvbiBpcyBjaGVja2VkICovXG5cdGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0VG9nZ2xlQnV0dG9uIC5kaWppdFRvZ2dsZUJ1dHRvbkljb25DaGFyIHtcblx0ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudDtcblx0dmlzaWJpbGl0eTpoaWRkZW47XG59XG4uZGpfaWU2IC5kaWppdFRvZ2dsZUJ1dHRvbkljb25DaGFyLCAuZGpfaWU2IC50YWJTdHJpcEJ1dHRvbiAuZGlqaXRCdXR0b25UZXh0IHtcblx0Zm9udC1mYW1pbHk6IFwiQXJpYWwgVW5pY29kZSBNU1wiO1x0Lyogb3RoZXJ3aXNlIHRoZSBhMTF5IGNoYXJhY3RlciAoY2hlY2ttYXJrLCBhcnJvdywgZXRjLikgYXBwZWFycyBhcyBhIGJveCAqL1xufVxuLmRqX2ExMXkgLmRpaml0VG9nZ2xlQnV0dG9uQ2hlY2tlZCAuZGlqaXRUb2dnbGVCdXR0b25JY29uQ2hhciB7XG5cdGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyAvKiBJbiBoaWdoIGNvbnRyYXN0IG1vZGUsIGRpc3BsYXkgdGhlIGNoZWNrIHN5bWJvbCAqL1xuXHR2aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDtcbn1cblxuLmRpaml0QXJyb3dCdXR0b25DaGFyIHtcblx0ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG59XG4uZGpfYTExeSAuZGlqaXRBcnJvd0J1dHRvbkNoYXIge1xuXHRkaXNwbGF5OmlubGluZSAhaW1wb3J0YW50O1xufVxuXG4uZGpfYTExeSAuZGlqaXREcm9wRG93bkJ1dHRvbiAuZGlqaXRBcnJvd0J1dHRvbklubmVyLFxuLmRqX2ExMXkgLmRpaml0Q29tYm9CdXR0b24gLmRpaml0QXJyb3dCdXR0b25Jbm5lciB7XG5cdGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiBTZWxlY3QgKi9cbi5kal9hMTF5IC5kaWppdFNlbGVjdCB7XG5cdGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGUgIWltcG9ydGFudDtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG59XG4uZGpfaWUgLmRpaml0U2VsZWN0IHtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTsgLyogU2V0IHRoaXMgYmFjayBmb3Igd2hhdCB3ZSBoYWNrIGluIGRpaml0IGlubGluZSAqL1xufVxuLmRqX2llNiAuZGlqaXRTZWxlY3QgLmRpaml0VmFsaWRhdGlvbkNvbnRhaW5lcixcbi5kal9pZTggLmRpaml0U2VsZWN0IC5kaWppdEJ1dHRvblRleHQge1xuXHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLmRqX2llNiAuZGlqaXRUZXh0Qm94IC5kaWppdElucHV0Q29udGFpbmVyLFxuLmRqX2llcXVpcmtzIC5kaWppdFRleHRCb3ggLmRpaml0SW5wdXRDb250YWluZXIsXG4uZGpfaWU2IC5kaWppdFRleHRCb3ggLmRpaml0QXJyb3dCdXR0b25Jbm5lcixcbi5kal9pZTYgLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uSW5uZXIsXG4uZGlqaXRTZWxlY3QgLmRpaml0U2VsZWN0TGFiZWwge1xuXHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi5kaWppdE51bWJlclRleHRCb3gge1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRkaXJlY3Rpb246IGx0cjtcbn1cblxuLmRpaml0TnVtYmVyVGV4dEJveCAuZGlqaXRJbnB1dElubmVyIHtcblx0dGV4dC1hbGlnbjogaW5oZXJpdDsgLyogaW5wdXQgKi9cbn1cblxuLmRpaml0TnVtYmVyVGV4dEJveCBpbnB1dC5kaWppdElucHV0SW5uZXIsXG4uZGlqaXRDdXJyZW5jeVRleHRCb3ggaW5wdXQuZGlqaXRJbnB1dElubmVyLFxuLmRpaml0U3Bpbm5lciBpbnB1dC5kaWppdElucHV0SW5uZXIge1xuXHR0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLmRqX2llOCAuZGlqaXROdW1iZXJUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRJbm5lciwgLmRqX2llOSAuZGlqaXROdW1iZXJUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRJbm5lcixcbi5kal9pZTggLmRpaml0Q3VycmVuY3lUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRJbm5lciwgLmRqX2llOSAuZGlqaXRDdXJyZW5jeVRleHRCb3ggaW5wdXQuZGlqaXRJbnB1dElubmVyLFxuLmRqX2llOCAuZGlqaXRTcGlubmVyIGlucHV0LmRpaml0SW5wdXRJbm5lciwgLmRqX2llOSAuZGlqaXRTcGlubmVyIGlucHV0LmRpaml0SW5wdXRJbm5lciB7XG5cdC8qIHdvcmthcm91bmQgYnVnIHdoZXJlIGNhcmV0IGludmlzaWJsZSBpbiBlbXB0eSB0ZXh0Ym94ZXMgKi9cblx0cGFkZGluZy1yaWdodDogMXB4ICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdFRvb2xiYXIgLmRpaml0U2VsZWN0IHtcblx0bWFyZ2luOiAwO1xufVxuLmRqX3dlYmtpdCAuZGlqaXRUb29sYmFyIC5kaWppdFNlbGVjdCB7XG5cdHBhZGRpbmctbGVmdDogMC4zZW07XG59XG4uZGlqaXRTZWxlY3QgLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHRwYWRkaW5nOiAwO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRib3JkZXItc3R5bGU6IG5vbmUgc29saWQgbm9uZSBub25lO1xuXHRib3JkZXItd2lkdGg6IDFweDtcbn1cbi5kaWppdFNlbGVjdEZpeGVkV2lkdGggLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLmRpaml0U2VsZWN0TWVudSAuZGlqaXRNZW51SXRlbUljb24ge1xuXHQvKiBhdm9pZCBibGFuayBhcmVhIGluIGxlZnQgc2lkZSBvZiBtZW51IChzaW5jZSB3ZSBoYXZlIG5vIGljb25zKSAqL1xuXHRkaXNwbGF5Om5vbmU7XG59XG4uZGpfaWU2IC5kaWppdFNlbGVjdE1lbnUgLmRpaml0TWVudUl0ZW1MYWJlbCxcbi5kal9pZTcgLmRpaml0U2VsZWN0TWVudSAuZGlqaXRNZW51SXRlbUxhYmVsIHtcblx0LyogU2V0IGJhY2sgdG8gc3RhdGljIGR1ZSB0byBidWcgaW4gaWU2L2llNyAtIFNlZSBCdWcgIzk2NTEgKi9cblx0cG9zaXRpb246IHN0YXRpYztcbn1cblxuLyogRml4IHRoZSBiYXNlbGluZSBvZiBvdXIgbGFiZWwgKGZvciBtdWx0aS1zaXplIGZvbnQgZWxlbWVudHMpICovXG4uZGlqaXRTZWxlY3RMYWJlbCAqXG57XG5cdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLyogU3R5bGluZyBmb3IgdGhlIGN1cnJlbnRseS1zZWxlY3RlZCBvcHRpb24gKHJpY2ggdGV4dCBjYW4gbWVzcyB0aGlzIHVwKSAqL1xuLmRpaml0U2VsZWN0U2VsZWN0ZWRPcHRpb24gKiB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKiBGaXggdGhlIHN0eWxpbmcgb2YgdGhlIGRyb3Bkb3duIG1lbnUgdG8gYmUgbW9yZSBjb21ib2JveC1saWtlICovXG4uZGlqaXRTZWxlY3RNZW51IHtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG59XG5cbi8qIFVzZWQgaW4gY2FzZXMsIHN1Y2ggYXMgRnVsbFNjcmVlbiBwbHVnaW4sIHdoZW4gd2UgbmVlZCB0byBmb3JjZSBzdHVmZiB0byBzdGF0aWMgcG9zaXRpb25pbmcuICovXG4uZGlqaXRGb3JjZVN0YXRpYyB7XG5cdHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbn1cblxuLyoqKiogRGlzYWJsZWQgY3Vyc29yICoqKioqL1xuLmRpaml0UmVhZE9ubHkgKixcbi5kaWppdERpc2FibGVkICosXG4uZGlqaXRSZWFkT25seSxcbi5kaWppdERpc2FibGVkIHtcblx0LyogYSByZWdpb24gdGhlIHVzZXIgd291bGQgYmUgYWJsZSB0byBjbGljayBvbiwgYnV0IGl0J3MgZGlzYWJsZWQgKi9cblx0Y3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKiBEcmFnIGFuZCBEcm9wICovXG4uZG9qb0RuZEl0ZW0ge1xuICAgIHBhZGRpbmc6IDJweDsgIC8qIHdpbGwgYmUgcmVwbGFjZWQgYnkgYm9yZGVyIGR1cmluZyBkcmFnIG92ZXIgKGRvam9EbmRJdGVtQmVmb3JlLCBkb2pvRG5kSXRlbUFmdGVyKSAqL1xuXG5cdC8qIFByZXZlbnQgbWFnbmlmeWluZy1nbGFzcyB0ZXh0IHNlbGVjdGlvbiBpY29uIHRvIGFwcGVhciBvbiBtb2JpbGUgd2Via2l0IGFzIGl0IGNhdXNlcyBhIHRvdWNob3V0IGV2ZW50ICovXG5cdC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcblx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsgLyogRGlzYWJsZSBzZWxlY3Rpb24vQ29weSBvZiBVSVdlYlZpZXcgKi9cbn1cbi5kb2pvRG5kSG9yaXpvbnRhbCAuZG9qb0RuZEl0ZW0ge1xuICAgIC8qIG1ha2UgY29udGVudHMgb2YgaG9yaXpvbnRhbCBjb250YWluZXIgYmUgc2lkZSBieSBzaWRlLCByYXRoZXIgdGhhbiB2ZXJ0aWNhbCAqL1xuICAgICNkaXNwbGF5OiBpbmxpbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uZG9qb0RuZEl0ZW1CZWZvcmUsXG4uZG9qb0RuZEl0ZW1BZnRlciB7XG5cdGJvcmRlcjogMHB4IHNvbGlkICMzNjk7XG59XG4uZG9qb0RuZEl0ZW1CZWZvcmUge1xuICAgIGJvcmRlci13aWR0aDogMnB4IDAgMCAwO1xuICAgIHBhZGRpbmc6IDAgMnB4IDJweCAycHg7XG59XG4uZG9qb0RuZEl0ZW1BZnRlciB7XG4gICAgYm9yZGVyLXdpZHRoOiAwIDAgMnB4IDA7XG4gICAgcGFkZGluZzogMnB4IDJweCAwIDJweDtcbn1cbi5kb2pvRG5kSG9yaXpvbnRhbCAuZG9qb0RuZEl0ZW1CZWZvcmUge1xuICAgIGJvcmRlci13aWR0aDogMCAwIDAgMnB4O1xuICAgIHBhZGRpbmc6IDJweCAycHggMnB4IDA7XG59XG4uZG9qb0RuZEhvcml6b250YWwgLmRvam9EbmRJdGVtQWZ0ZXIge1xuICAgIGJvcmRlci13aWR0aDogMCAycHggMCAwO1xuICAgIHBhZGRpbmc6IDJweCAwIDJweCAycHg7XG59XG5cbi5kb2pvRG5kSXRlbU92ZXIge1xuXHRjdXJzb3I6cG9pbnRlcjtcbn1cbi5kal9nZWNrbyAuZGlqaXRBcnJvd0J1dHRvbklubmVyIElOUFVULFxuLmRqX2dlY2tvIElOUFVULmRpaml0QXJyb3dCdXR0b25Jbm5lciB7XG5cdC1tb3otdXNlci1mb2N1czppZ25vcmU7XG59XG4uZGlqaXRGb2N1c2VkIC5kaWppdE1lbnVJdGVtU2hvcnRjdXRLZXkge1xuXHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbiIsIi8qIERpaml0IGN1c3RvbSBzdHlsaW5nICovXG4uZGlqaXRCb3JkZXJDb250YWluZXIge1xuICAgIGhlaWdodDogMzUwcHg7XG59XG4uZGlqaXRUb29sdGlwQ29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuLmRpaml0Q29udGVudFBhbmUge1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIG92ZXJmbG93OiBhdXRvICFpbXBvcnRhbnQ7IC8qIFdpZGdldHMgbGlrZSB0aGUgZGF0YSBncmlkIHBhc3MgdGhlaXIgc2Nyb2xsXG4gICAgb2Zmc2V0IHRvIHRoZSBwYXJlbnQgaWYgdGhlcmUgaXMgbm90IGVub3VnaCByb29tIHRvIGRpc3BsYXkgYSBzY3JvbGwgYmFyXG4gICAgaW4gdGhlIHdpZGdldCBpdHNlbGYsIHNvIGRvIG5vdCBoaWRlIHRoZSBvdmVyZmxvdy4gKi9cbn1cblxuLyogR2xvYmFsIEJvb3RzdHJhcCBjaGFuZ2VzICovXG5cbi8qIENsaWVudCBkZWZhdWx0cyBhbmQgaGVscGVycyAqL1xuLm14LWRhdGF2aWV3LWNvbnRlbnQsIC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlcjpub3QoLm14LXNjcm9sbGNvbnRhaW5lci1uZXN0ZWQpLCAubXgtdGFiY29udGFpbmVyLWNvbnRlbnQsIC5teC1ncmlkLWNvbnRlbnQge1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cbmh0bWwsIGJvZHksICNjb250ZW50IHtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG4jY29udGVudCA+IC5teC1wYWdlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xufVxuXG4ubXgtbGVmdC1hbGlnbmVkIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLm14LXJpZ2h0LWFsaWduZWQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLm14LWNlbnRlci1hbGlnbmVkIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5teC10YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4ubXgtdGFibGUgdGgsXG4ubXgtdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLm14LXRhYmxlIHRoLm5vcGFkZGluZyxcbi5teC10YWJsZSB0ZC5ub3BhZGRpbmcge1xuXHRwYWRkaW5nOiAwO1xufVxuXG4ubXgtb2Zmc2NyZWVuIHtcbiAgICAvKiBXaGVuIHBvc2l0aW9uIHJlbGF0aXZlIGlzIG5vdCBzZXQgSUUgZG9lc24ndCBwcm9wZXJseSByZW5kZXIgd2hlbiB0aGlzIGNsYXNzIGlzIHJlbW92ZWRcbiAgICAgKiB3aXRoIHRoZSBlZmZlY3QgdGhhdCBlbGVtZW50cyBhcmUgbm90IGRpc3BsYXllZCBvciBhcmUgbm90IGNsaWNrYWJsZS5cbiAgICAqL1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm14LWllLWV2ZW50LXNoaWVsZCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB6LWluZGV4OiAtMTtcbn1cblxuLm14LXN3aXBlLW5hdmlnYXRpb24tcHJvZ3Jlc3Mge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IDU0cHg7XG4gICAgd2lkdGg6IDU0cHg7XG4gICAgdG9wOiBjYWxjKDUwJSAtIDI3cHgpO1xuICAgIGxlZnQ6IGNhbGMoNTAlIC0gMjdweCk7XG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaE5nQTJBUE1BQVAvLy93QUFBSGg0ZUJ3Y0hBNE9EdGpZMkZSVVZOemMzTVRFeEVoSVNJcUtpZ0FBQUFBQUFBQUFBQUFBQUFBQUFDSDVCQWtLQUFBQUlmNGFRM0psWVhSbFpDQjNhWFJvSUdGcVlYaHNiMkZrTG1sdVptOEFJZjhMVGtWVVUwTkJVRVV5TGpBREFRQUFBQ3dBQUFBQU5nQTJBQUFFeXhESVNhdTlPT3ZOdS85Z0tJNWt5U0VKUVNTSTZVcUtLaFBLV3lMejNOcGltcXNKbnVnM0U0YUlNaVBJOXdzcVBUamlUbGt3cUF3RlRDeFhleFlHczBIMmdnSk9MWUxCUURDeTVnd213WXg5SkpyQXNzSFFYc0tyOUNGdU0zQWxjakowSUFkK0JBTUhMbWxySkFkdUJvNVBsNWlabXB1Y25aNmZjV3FJbUpDamFIT1poaXFtRkl1QWw2NFpzWml6RjZvRXJFSzN1Uk9sbTc2Z3djTER4TVhHeDhYQWo2SWt1NCtvSXJVazBoL1UwV0Vqem5IUUlzcWhrY2pCM3NuY3hkYkM1K0xseWN6aDdrOFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRNRU1oSnE3MDQ2ODI3LzJBb2ptUnBubVZoRUlSUm9HY3hzT3p3d3VSS3N3Wk83anZmQ0VnVGluUzduaEYwbU5FR2h3c2l3VW9nbHBTRHpoQzFLSWlLa1dBd0VKZ1FSTllWSk5pWlNkUjBJdVNzbGRKRlVKMHd1T01KSVcwMGJ5TnhSSE9CWklRamFHbHJXQnhmUUdHUUhsTlZqNVdhbTV5ZG5wOUxZMldib29zV2dpeW1RcWdFcWhON2ZaQ3dHYk95TzdFWHJLNDR1aHFscElxZ3dzUEV4Y2JIeU1lL0tNc2l2U2JQZExjbnRkSlAxTlBPYmlmUmlhUE13Y25DemNyYnlOWEc2TVhkeHVUaTd6NFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRPRU1oSnE3MDQ2ODI3LzJBb2ptUnBubWlxQXNJd0NLc3BFRFFCeCtOUUV3T2U3ejFmYUZhN0NVR3QxMUZZTU5BTUJWTFNTQ3JvYW9Qb2NFY1ZPWGNFZytoS0M1TEF0VEhRaEthSmlMUnU2THNUdjEzeTBJSE1PeXc5QjE4R2ZuK0Zob2VJaVlvWkNBazBDUWlMRmdwb0NobFRSd2h0QkpFV2NEWkNqbTBKRjN4bU1adHVGcVpDcVFRWG4za29vbWlrc0hpWm01MlNBSlJnbHJ3VGpZKzd3Y2JIeU1uS0U1Z296VzljSjdFL1dDZXNhdFVtMTF0RjB0RWp6eks0eTRuaHh0UEkyOGJxd2VqSTV1VHhKaEVBSWZrRUNRb0FBQUFzQUFBQUFEWUFOZ0FBQk1zUXlFbXJ2VGpyemJ2L1lDaU9aR21lYUtvQ3dqQUlxeWtRTkFISDQxQVRBNTd2UFY5b1Zyc0pRYTNYY1lsS0dtV3VKM0luRlJGcDFZNnVGaXh0YVYzUWwzY2FoejlYMnltZDdUaFRiNlo4VHEvYjcvaTh2R0NnR1FvYWNVSUZab0FYYkVkOU93UUdHR1pIaXpXT1FKQ1JCQmlJUW9vN2paaFJTd2RtQjNvVUI0b0dvNlNxcTZ5dE1RZ0pOQWtJckFxUkNpT0NJd2lXQkxSVFJTV3hsZ2toanlTOU5NYVV5TWxEVk1LOXhVT2ZKYnlXdjNxMmk3aEx1aFd3c3RsQ21hdkg1c3lyNWVyVnJ1NDRFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWlaY2dVR05BWUZKSk1pQldhZ1E0TWxuVHNFQmlLTElxczFya0Ftc1RSV3FDU3FPNjFXa1JrSUNUUUpDQmNIWmdkSENyRUt4cW9HeVVJSXRnVEZlc0syQ1h2VXQzcmNCSHZZc2RwNjA3Yldlc3VyelpYQncrZ2lFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWdTQ0FrMENRaVdDanMwQ3BRSW9qV2ZKWk1kbktjRUNhcURJSzQxWGtBaHREUzJYQ0d0cDdBa2p4Nm1ycW5Ca1NLaG9xUVhCUVkwQmdWTG01M0dGUVZtMHBUUG9nYVZ0Tit1bGR3NzNwUUhaZ2VXQjl3RzZwa29FUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2dktVU0Nsa0RnTFFvN05BcC9Fd2lDTlg1Q2NSWjdpQVFKaTFRWGp6VkNacFNWQkpkQUY0NklrVDVzRjRlUGlxSlJHWUdDaElXR2puMnVzck8wdFhZRkJqUUdCYlFGWnJ4UVNpSzVnZ1l5a3lHVkpwakpqOHVkSWNRN3hpV2pJUWRtQjJ1cEl3ZkVCdHEySG95ejFyUE01OURseUxUazR1OHBFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3a1JDVm9Db1dtOWhCTEZqcWFBZGhEVEdyUGtOSDZTV1VLQ3UvTjJ3cldTcmhiOG9HbHFZQWljSFpPSU5ETUhHOTdlWFhvZFVsTlZWbGRnUzRhS2k0eU5qbzhGQmpRR0JZOFhCV3MwQTVWUVhSbVNVd2FkWlJob1VKazhwV0duY2hlZ082SkNlRFlZQjZnREIxYWVHUWVnQnJtV3djTER4TVhHeDF5QUtic2lzNEVnemo5c0o3ZlNtdFN0UTZReTI4M0tLTXpJamVIRTBjYlY1OW5sM2NYazR1OG9FUUE3KTtcbn1cblxuIiwiLyogQmFjYXVzZSB3ZSB1c2UgY2hlY2tib3hlcyB3aXRob3V0IGxhYmVscywgYWxpZ24gdGhlbSB3aXRoIG90aGVyIHdpZGdldHMuICovXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIG1hcmdpbjogOXB4IDA7XG59XG5cbi5teC1jaGVja2JveCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG59XG5cbi5mb3JtLXZlcnRpY2FsIC5mb3JtLWdyb3VwLm14LWNoZWNrYm94IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5mb3JtLXZlcnRpY2FsIC5mb3JtLWdyb3VwLm14LWNoZWNrYm94LmxhYmVsLWFmdGVyIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uZm9ybS1ob3Jpem9udGFsIC5mb3JtLWdyb3VwLm5vLWNvbHVtbnMge1xuICAgIHBhZGRpbmctbGVmdDogMTVweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xufVxuXG4ubXgtcmFkaW9idXR0b25zLmlubGluZSAucmFkaW8ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG59XG5cbi5teC1yYWRpb2J1dHRvbnMgLnJhZGlvIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgLyogUmVzZXQgYm9vdHN0cmFwIHJ1bGVzICovXG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLm14LXJhZGlvYnV0dG9ucyAucmFkaW8gbGFiZWwge1xuICAgIC8qIFJlc2V0IGJvb3RzdHJhcCBydWxlcyAqL1xuICAgIHBhZGRpbmctbGVmdDogMDtcbn1cblxuLmFsZXJ0IHtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7XG59XG5cbi5teC1jb21wb3VuZC1jb250cm9sIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xufVxuXG4ubXgtY29tcG91bmQtY29udHJvbCBidXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG59XG5cbltkaXI9XCJydGxcIl0gLm14LWNvbXBvdW5kLWNvbnRyb2wgYnV0dG9uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbiIsIi5teC10b29sdGlwIHtcbiAgICBtYXJnaW46IDEwcHg7XG59XG4ubXgtdG9vbHRpcC1jb250ZW50IHtcbiAgICB3aWR0aDogNDAwcHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbn1cbi5teC10b29sdGlwLXByZXBhcmUge1xuICAgIGhlaWdodDogMjRweDtcbiAgICBwYWRkaW5nOiA4cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKGRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEdBQVlBTVFkQUtYWjhuZkY2NFRMN1F1WDNGZTQ1emFxNGhPYjNmTDYvZnI5L3JyaTlkWHQrWnJVOEN5bTRVbXk1Y0hsOXVQeisySzg2T2oxL056dytyRGQ5TTNxK0pEUTcyckE2aU9pMyszNC9FQ3U0OGpvOXgyZjNnV1YyLy8vL3dBQUFBQUFBQ0gvQzA1RlZGTkRRVkJGTWk0d0F3RUFBQUFoL3d0WVRWQWdSR0YwWVZoTlVEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU5pMWpNVFF3SURjNUxqRTJNRFExTVN3Z01qQXhOeTh3TlM4d05pMHdNVG93T0RveU1TQWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JTWldZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlZKbFppTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRnZ0tFMWhZMmx1ZEc5emFDa2lJSGh0Y0UxTk9rbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZSVUpGTmtVNE5FWkNORVZETVRGRk9EazNNREJCTlVVMVJVTTRRamczUVRVaUlIaHRjRTFOT2tSdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNlJVSkZOa1U0TlRCQ05FVkRNVEZGT0RrM01EQkJOVVUxUlVNNFFqZzNRVFVpUGlBOGVHMXdUVTA2UkdWeWFYWmxaRVp5YjIwZ2MzUlNaV1k2YVc1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRwRlFrVTJSVGcwUkVJMFJVTXhNVVU0T1Rjd01FRTFSVFZGUXpoQ09EZEJOU0lnYzNSU1pXWTZaRzlqZFcxbGJuUkpSRDBpZUcxd0xtUnBaRHBGUWtVMlJUZzBSVUkwUlVNeE1VVTRPVGN3TUVFMVJUVkZRemhDT0RkQk5TSXZQaUE4TDNKa1pqcEVaWE5qY21sd2RHbHZiajRnUEM5eVpHWTZVa1JHUGlBOEwzZzZlRzF3YldWMFlUNGdQRDk0Y0dGamEyVjBJR1Z1WkQwaWNpSS9QZ0gvL3YzOCsvcjUrUGYyOWZUejh2SHc3Kzd0N092cTZlam41dVhrNCtMaDROL2UzZHpiMnRuWTE5YlYxTlBTMGREUHpzM015OHJKeU1mR3hjVER3c0hBdjc2OXZMdTZ1YmkzdHJXMHM3S3hzSyt1cmF5cnFxbW9wNmFscEtPaW9hQ2ZucDJjbTVxWm1KZVdsWlNUa3BHUWo0Nk5qSXVLaVlpSGhvV0VnNEtCZ0g5K2ZYeDdlbmw0ZDNaMWRITnljWEJ2Ym0xc2EycHBhR2RtWldSalltRmdYMTVkWEZ0YVdWaFhWbFZVVTFKUlVFOU9UVXhMU2tsSVIwWkZSRU5DUVVBL1BqMDhPem81T0RjMk5UUXpNakV3THk0dExDc3FLU2duSmlVa0l5SWhJQjhlSFJ3Ykdoa1lGeFlWRkJNU0VSQVBEZzBNQ3dvSkNBY0dCUVFEQWdFQUFDSDVCQVVFQUIwQUxBQUFBQUFZQUJnQUFBVWNZQ2VPWkdtZWFLcXViT3UrY0N6UGRHM2ZlSzd2Zk8vL3dPQXJCQUFoK1FRRkJBQWRBQ3dBQUFBQUFRQUJBQUFGQTJBWEFnQWgrUVFGQkFBZEFDd1VBQXdBQVFBQ0FBQUZBeURUaEFBaCtRUUZCQUFkQUN3VEFBc0FBZ0FHQUFBRkMyQVhkRnhuZE1UUU1WMElBQ0g1QkFVRUFCMEFMQkVBQ3dBRUFBZ0FBQVVSWUNjMllpbHlvcldkVm1jTnA4aTBYUWdBSWZrRUJRUUFIUUFzRHdBT0FBWUFCZ0FBQlE5Z0ozYUJNWjRqaDQ0V0I0bkZjSVlBSWZrRUNRUUFIUUFzRFFBUEFBZ0FCZ0FBQlJGZ0o0NGRSSGJCcVlvcEdRd2NPUmhxQ0FBaCtRUUpCQUFkQUN3QUFBQUFHQUFZQUFBRkxXQW5qbVJwbm1pcXJtenJ2bkFzejNSdDMzaXVrOEpnRHdRYlIyaWhCVGlOV1c4WTR6aDlHaGxnUnkyRkFBQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZNMkFuam1ScG5taXFybXpydm5Bc3ozUnQzMmh6YzN0U0M3emFZT2VvY1NBMFlNWlZJUWtHd1JhUVE2VjJpaklBYnFzS0FRQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZObUFuam1ScG5taXFybXpydm5Bc3ozUnQzMmh6Yy90VVY3eWFJV01MMGppRVZRVUZMS3dDSEVPcFlqQ3lNcHlzbGloYjRMNnJFQUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGT21BbmptUnBubWlxcm16cnZuQXN6M1J0MzJoemN6dFFWN3phcG1BTG1vQXNqZzdGTUI0NWpGV0RzeWxWTnM1VmdjUHRFbU8rQ202c0NnRUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCVDlnSjQ1a2FaNW9xcTVzNjc1d0xNOTBiZDhvY1hPQ3plMm14c2ExWVp4K0xRN2cxRUNxT0prVWc3TkljWXlxNXJDMGdicW1uSENZc1lRdGU3aDBLZ1FBSWZrRUNRUUFIUUFzQUFBQUFCZ0FHQUFBQlVSZ0o0NWthWjVvcXE1czY3NXdMTTkwYmQ4b1lRWXdKNVNjbmluNElwSVlGOWNsV1ZvWVY1ekZLZk5FY1RLcFN4WElURkc3SXkyMnhlQ1l6eGNwVFBxajRONm9FQUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGU21BbmptUnBubWlxcm16cnZuQXN6M1ROYm5iQXdZUzV2NXdBcWZKekZVZEhWckt6WWJnWU9OK2t4YW1jQ2dQV29KRGFaRk9EYUtyQWNaWVlIRzVydzJtN04xWllSUmkzMlZjaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVlBZQ2VPWkdtZWFLcXViT3UrY0N6UDVVYlFJb2QzZ3I3N3JodkpBbXh4TEtVaVM5bmhURjVNQThQRk1KaDZMbzdneEJpd0JsUFV4cHNhYkZZTVRwaVVYcXNFQm81OGJ0akN0aGI3YnI4S0FRQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZVMkFuam1ScG5taXFybXpydmpETFhERXBjRFZwWlBtSTk1MGJVUFJ6UVVxUVlvdHpKQ2xaejhsenhabVVEQVZYd1hDYW9yeWRDM2Rsb0tFTTQzTWFkZUZrU3dXT2VSVXdjTzU0UXlBbU9BcUdnQzBoQUNINUJBVUVBQjBBTEFBQUFBQVlBQmdBQUFWWFlDZU9aR21lYUtxdWJMdHVsbnNhaG14dXRVMEduRjRPRFIrcEp4VHhpaUpDemhYNzJRYUVIZEUxSFZWWkhNQXY0OG9NVE1jV0ozRENzUXliMUdBNSs2bzJIRzRwdzBtekFnTU9aNURmazIwQlVYOUloQzBoQUNINUJBa0VBQjBBTEFJQUF3QVVBQk1BQUFVL1lDZUsxdENNYUpweWhPcU93L2JPOUd6VmM0dnY5YzJuc2w5QVpQaDFpajZqY3JRUW5YYlBEc1E0SFFWcFYxUld0VTFGUjE5WDlWZ1VqV20rWkNvRUFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVmJZQ2VPWkdtZWFLcU9GckdpeE1CeHpHc2FuR3VidzdhZkJ0K3ZST0FNVGJsanlhaGtNWnVkaG5BWEtFbUhtOFp5K0JRdHVpL09ZcWw3RlUvZ1ZQSTJUVzBNcVo1cU0xamh5cU1pM0R6amJEWjllRFlRRFZwalVJZy9JUUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGWUdBbmptUnBubWlxaWxXWFpjUnFFaHczWE5jZ2t3WUg3U2ZPQlhneURJa2xHdExrVzVZNFRoSkJGeFZsamtCQjZZcThaRXBVWUpnRkpYSmFwT1lPVXBhMlY1eVl5U2k3R0ZKQzFlVmRWSlBZZHpJME5qZ0ROWEpFQkYrSVZZMUFJUUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGWldBbmptUnBubWlxaWtKWEZNUnFOaHhuTUlWUngvTEFXYWFBck1OaERGRUQ0M0hHV1o1K3pwS2dHUzBacXFTQ2Npa2NhWjA0RXVHNk5QQkcxR01hRFJ4YTFpS2F1bkZLeWhpRFZGSEZnSnQ4YlNSdmVUSTBOZ3dNT2h4MFRnUXZIUzFZa2xFaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVm1ZQ2VPWkdtZWFLcUtRY01VeldwbUhMZDF4VlpuY2pjTUFWUGdwMXB3Q2lyR0RUVkE5azZad1JQRm1aNENWV3Vwc2RTT1h0cmdWMXRna0xqV1RZeVVmYlpISExFTU81UDJCanhUVTFhd240NHFCVzhtQzBSQ2hpczBOZ1U1TzFZdFptdGVrNU1oQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFWbllDZU9aR21lYUtxS1FYWmQyV29XSEhkMURWTVhjc1VOSjRHQnMrTHdVclFLeWlpam5RcEFXY2R3NGdTa3FBQVJlM0p4VDdkdngwS0NmYjBqTk5aTTJtTGRJeXRXTzR2S0JzY1NjK1ZjNXA5d1ZYWWtBUU9CS0RRMkdTNDdYeTB2SFZkaWs1UWlJUUFoK1FRRkJBQWRBQ3dBQUFBQUdBQVlBQUFGYm1BbmptUnBubWlxaWxheGJjVnFNaHpIZEExdHl3Sm5uQUlEUjZEaVpGUVpUc29vUzU0WVAxbkhjQ3NOcFNJbHlhTEZjZ0trUWhWcjJwQkZpOUttY1c2WVIrSXpJMGJxU3UxWm9qZFJnbUtwSjB3clRpaUNLSVFvUFZFbFFYZ29PZ3dOT1RWalVpMW1kR2VhbXlVaEFDSDVCQVVFQUIwQUxBSUFBZ0FVQUJRQUFBVmJZQ2VPa01HZG5BR05MSWx5dy9DdWJjZWNXWjJkVEhzYk5aYXBKNEtrZ2kwVDdZU3NNWTI1Sm10WDRraWRKdXVWaFJwc1dUTFlkeFRXamsrbXNTZ0ZIVk03ekcvY0NMd3FSei9wMElmVDhZSkdYV1VjTkVoVktDbzFJUUFoK1FRRkJBQWRBQ3dCQUFFQUZnQVdBQUFGWjJBbmptUFZCV1NxbmdaSGNnYTZqc2JyMG5OMTEyVEZjNmFVNnpZYnBtckVXY2ZGTzRrRXloSFUyYWsxbzlYc0VydHlCYm1xWUpKN1E0MnhMaG00MlBsaVRUc3QxeXBTYzZkcUpGa3VHazVWQWtZcE9pSlhiVDlLVnh4Smhpb0JMUytOVVNaMktpRUFJZmtFQ1FRQUhRQXNBUUFCQUJZQUZnQUFCV3BnSjQ2aWxWMVgxazFrUzE2Y3kxMHUyY1MxeURVMU0zSUVFZ0hYOGRsR3dWcXl3L3ZsY2tSYVovbE1TbVBFcDY0VHM0aW8ycVJKcXoyUm42aHpMcVd1cWI1dEtyWTk3MGpCU3BHVTI5Nk9tbE01UzRBaVJseFVReU9HTmxreWhDNHdNbnRrSmlncUxDNGhBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVYrWUNlT1pHbWVwVlZjVjlaTjZMbHhkRTF2OGRqWWZOM0VEQnVFQkxFeFRqdmE4RlNrL1VxMW5DaEttbkdXdVNadVJKVjJ1aGFsbDh1eGlESzBNZG5WdWFUVlg4NUY1T2JBNC9NTzJnNm5zZU5ZVWsxbVUyOWVYUjFXZ1NoYUpBdUlLSkFkU1ZlTVBpZEJrRTAwUnlpVVBaZFNWajFiYWhZWkxCbUVkM0FoQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFXQllDZU9aR21lcFZWY1Y5Rk42TGx4ZEUxdjhkallmTjNFakpyQlpLZ3hUanRhVE9BejFYS2lKMm5HRVVDakhOeUlOcngyaXB5UlJlbnRNRGtXVVlGY3ByazZGN2FYZGhIRncrVU9YUzIvdXJkVlpXY2tYR1ZnVTMweE55UUxVamsxQ3lWSmdTZG5IRDhtUVlVa0FtQWNSeWlUUFUxUVZEMWFaU29zQldsNXJoMGhBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVdDWUNlT1pHbWVwVlZjVjlGTjZMbHhkRTF2OGRqWWZOM0VqTnJGZEtreFRqdk9JRGVnL1VxMFphN1Q1SlJtMXFub1JxSU50WjFpdG1PaGdVYzBpNmhnUG5kb3JuRDc3QldKM1cvT2x6MEd3OUY5VXdCcEloTjFZSGNqV0hRY09GMUtXbFVtU1FNQU1WVlBKVUdISXdCaUhFY29TVDAybVRGWVBZNW5LaXd1TUhodUlRQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZlbUFuam1ScG5xV1ZNVXlHdmhjbnovTDFqZzJ0ejgxYnpLNVNabFk0NVRpR20wSFdLOG1TdDg2U1U0cFJvNklhU1JiRURxOGRpd3k3NVZoRVgvS0lLMktNMVIwWm8vMVd5OUYxTWpzTDF2ZjNYaklUSTFaMkhEWmxVRXA1SWtlS0oxTk5KVCtBSTE4Y1JTaEhPelNTTUp5SGNHRXJMUjJEb25BaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVjlZQ2VPWkdtZVpkQXdUSU8rRnlmUDh2V09CRDFjMTBBVHI4SU1Zb0xNQ3FjY3h3YVRBVXUxbXlqR0tWR2xvMmlXUThSMmpGVlJRT2JkQmtRTnpxQXM4bzBZUzNZbnhoREJtV1Y2ZHMzMnVUcGpZV1ZrVzExWVlDUlhYbHBiZUUyQ09Jd25WRThsUWpLR0kyQWNTQzg2UEQ0elhsUTBrbGhuTEg5eWNpRUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCWDFnSjQ1a2FaNWwwQlJGZzc0TUo4OHk4NDRFZlhYWlJST3ZqR3h3RWd4a21WT09rd3pLZ0NYa1RTVGtsR0xFcWVob0c4bTBwSzhvSUFaM1pBRlJnN016ZDN5akF0UE40eFJFY25yOUxtTFQ0V05sWUdoZUhBSnVnbGhtWEZGelUxVW1TMDBvVlZBbFZWa2xSbEl2T2hrOU5HQXhORE5kWmlvZExYcDZJUUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGZ0dBbmptUnBucVhRRkZrbm9HakJ6ZlJjd0NORUR4M1JaUU1hQk5hWWJWQ2JXZU9rNCtCNnM5UE05K3hFU2JKanRaTzhqYTViQUZqQTRXMUZ3WmVJMHpyL25LSU1oK3BteCtGdWdoM2FQc3ZwWlc0ZFFTUmdXNFpaWjEwbFUxVjZlRG1OTUk5REprVWNXaVpKa0ZJekF4aytRRUpWTWpVMFhtY3ZHYUNDclIwaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVjZZQ2VPWkdtZXBkQmxHWUcrR1NmUGN2YU8xcnk1UWJmTmxoZEJWa0FWWks2VDdOWUpMRTJ5SHJQekhNV0swODdSTnFwbXF3TE9KanY2cVVTY0pIbG81WkJKSEc1TVNuWnkyZThPSGoxK203dHViMTVYWkZzbFVWK0JKRG1LS0U0Y1FTWkRIRmdtUjJrM09qd0VQMTR3TkRSY1pDb3NIV2Q1YnlFQUlma0VDUVFBSFFBc0FBQUFBQmdBR0FBQUJYcGdKNDVrYVo1bDFXVk5wNkpueHMzMG5NRmpRQmR1RnhTMEFJd3dHeFpSbkFGT05PQUlTOGRsSnlxU0VhUWk0bTFFbFVZckhCNVdCQ1J4eG1hSXFNRjVqY0d0RGh2TmpVK2ZZOTBJTEI2WHVXZG9WRlpqV2xDQlhvaG1Ta3ROZUNSRUhGY25rWk1uT2pNOEtqOUJVakkxTkZ0b0VBMHRiblJqSVFBaCtRUUpCQUFkQUN3QUFBQUFHQUFZQUFBRmdHQW5qbVJwbmlaRWRCYnFObHdzeDQwN0NyR3hkbE5IR0RHQkM4SVp1QUlEam90anNJbUF3bExST1VxV1lBR3FLTUNwalpqYUVaREUyWVU3U3BFbGZhNXdXajcydVN3aXlNTjBFYWR5N3JoSEMzZGFIQXRmVFdkakkxaGhYRjVmUmxwV0ptQk9pU2xGV1NkSUhCQXVPRXc3UFQ4eFdqQXpNbzVoRml0d2ZYMGhBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVYxWUNlT1pHbWVwa1YwQWVvU1hDekhxeXRXOFVWTzNSWGJIWTdCWnVCWVRqZ2QwSGNTQWtmRkV1dzVXbkJxSW82UzJ1T1FPQzF1ZGhUd2lqc1RzR2g2RG1MTlozaTVIUXpYei9PUjlzd2NzYmxYSlU1VVVTVkpUejRWS0VJTEtBdEZSeWc0ZXlNOFBuQTJNRE15V0Z3QkJDc0FkR0loQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFWellDZU9aR21lWmdCMUFlb1NBeWZQQStHU2NWWldHVGZjQWM3bGR1RzBUaHpkclZQZ25BYkRwZWp5SXhHYzBoSEhOaG9vczUxTVZZUUZrMGRCcy9ZSUtaczVxN082QXhlbDUyNU9SVjF4ZTlWaVZtNVNXeVZRWUZSSUJWSk5LRUZSS0VWSEtEazdQV00zTURNMFhHWXFjWE5xSVFBaCtRUUpCQUFkQUN3QUFBQUFHQUFZQUFBRmQyQW5qbVJwbm1iUVdkMkVvdERBY1lZeEQ5QkxEZ05oRWp4ZGdKUFJaVGlxRThlbkUzRk9nMkpUbEJtVVl0TmRidFRMam9Da3AzY2s3Z2pLWTQ1Z1pCaXpSNWEydTJOZ09lZWQ4Z1R0NWJoRVhXTmdPMjQ0SlZGZVZTWUxTMU1FZkdGU0tFZE5QRXdrUUZaVE1UTTFOMXRqYXl4L2VGa2hBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVZvWUNlT1pHbWVwdEFGYU50WkJtY3dUR3hZN21nWXA3QzdBZzdFQmVHMGpMa1ZzbVFZSmpzUUhnbjIxT0YwVlpKVXRNd3VmVm1kU3NRSWswZUJzcG5CRW0yejcyNjFheGhYd1NNcTNOU3NSazl5UnloQlRpaEZkaWMvS1lvNU1ESTBObVlkS20yU1dTRUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCV3hnSjQ1a2FaNW0xUVZvdXhvYzB6UU1aN0N1YURBb1k3Z1ZUazRnUkJWekhjN0VaQkFnUllJZktjQjdpcW9qcVZWSE9tNlBGZXlXb1JJMXRxT3pDSWZ1cUsvdERubmt0WG9OaTdaMjFXYXdkVTVQVVNkMUxZVWlRWUVvUkRrN1BYc3RBVEF5TkRaL1ZwZHhUeUVBSWZrRUNRUUFIUUFzQUFBQUFCZ0FHQUFBQldOZ0o0NWthWjVtMVFsbzJ3V2IwWFJRWTJ5Qk8yN3oyV3c2ZzY0alJCa2NRK0xFQkV5S21xTkF6emw5T2tsUTRuVlVGRldwcXRWMkJCa0p5bU8wZDl5cGRxL3ZyRE1yM1g2MThOUGJaVmlhRm50NkN5NDhLRDlKTURJME5qaGpLaXhzV3lFQUlma0VDUVFBSFFBc0FBQUFBQmdBR0FBQUJWaGdKNDVrYVo3bTBnbG91MjdGMmxuRjVwSTJhdVV0M3dNb24wc29JZzVMQXN1dHBNUXRUYjdZa3lRVk5hZldFUXRMMnNxNDN5ejQycWxpemNhYmtMeGtkOUxCRTd5VUJzeUxhcmYxUG9JcFdUVmdJaXdxZ2xnaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVlpZQ2VPWkdtZXA5QUJhTnN4aE5xcGpPeSt0c25jeGQzMUtLQlBTTnI1UnNaUjdyaE1Ia1ZPd3BQVUlDMmZyT21wSXVKcVI5N1pWenlTZnF2SXNaTThiV3JYSXFKTFRxS2I3TVdyU0FCSHdUb0xZbjArWGdwalV5RUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCVkZnSjQ1a2FaNW5oYTVqWm9sSloyVXNTYVBBdlJKMXg2Ty9YdERXSTVZQVJaS3FsVFNLWHMxb2JTSmFTcSttbUlpSzVjcXVVSkd1T2NhYXlqVzBMemtzdFUvdmtwclpxOUNRSFdURzJ1U2JleUVBSWZrRUNRUUFIUUFzQUFBQUFCZ0FHQUFBQlVsZ0o0NWthWjVuaGE0anBJcE9CN0Vrd2Rwc1FIYzYydSsvMms0NExNcU1MZVF1cHV4TVJJdW05QlNGVGErZGwyaW01R0pMdUdLWUZNeXR5dEt4U2IzeWlpcnU0clA2WllVQUFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVTVZQ2VPWkdtZUo0Q3VZMUNxS2l1Nk1ydlVkNjJiOU43dnRaOFBTQ3dtUkxHaU1yVkVKWnZMMzdNcGxGV2hwWnpOaW0zeGxxcGpseFVDQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFVM1lDZU9aR21lNklTdTRtSzY3RmpGTkoyc2Q2M0g4MTdEUHFCdlNDeUtWRVdrY1lrUzZweE1VUys2azFCWDAxT1dCWVhxbE5kVENBQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZMR0Fuam1ScG5taXFvdFBxdm5Bc3oySkxxL2F0Ny96cDlNRGdLQmNqQ284OHhVdXBNNmFjVHRnUGFRb0JBQ0g1QkFVRUFCMEFMQUFBQUFBWUFCZ0FBQVVqWUNlT1pHbWVhS3F1Yk91K2NMeFNjbTNmZUk3VGV0L3p2cUJ3eUFLV2pDOGtNUVFBT3c9PSkgbm8tcmVwZWF0IHNjcm9sbCBjZW50ZXIgY2VudGVyO1xufVxuLm14LXRvb2x0aXAtY29udGVudCAudGFibGUgdGgsXG4ubXgtdG9vbHRpcC1jb250ZW50IC50YWJsZSB0ZCB7XG4gICAgcGFkZGluZzogMnB4IDhweDtcbn1cbiIsIi5teC10YWJjb250YWluZXItcGFuZSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuLm14LXRhYmNvbnRhaW5lci1jb250ZW50LmxvYWRpbmcge1xuICAgIG1pbi1oZWlnaHQ6IDQ4cHg7XG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaE5nQTJBUE1BQVAvLy93QUFBSGg0ZUJ3Y0hBNE9EdGpZMkZSVVZOemMzTVRFeEVoSVNJcUtpZ0FBQUFBQUFBQUFBQUFBQUFBQUFDSDVCQWtLQUFBQUlmNGFRM0psWVhSbFpDQjNhWFJvSUdGcVlYaHNiMkZrTG1sdVptOEFJZjhMVGtWVVUwTkJVRVV5TGpBREFRQUFBQ3dBQUFBQU5nQTJBQUFFeXhESVNhdTlPT3ZOdS85Z0tJNWt5U0VKUVNTSTZVcUtLaFBLV3lMejNOcGltcXNKbnVnM0U0YUlNaVBJOXdzcVBUamlUbGt3cUF3RlRDeFhleFlHczBIMmdnSk9MWUxCUURDeTVnd213WXg5SkpyQXNzSFFYc0tyOUNGdU0zQWxjakowSUFkK0JBTUhMbWxySkFkdUJvNVBsNWlabXB1Y25aNmZjV3FJbUpDamFIT1poaXFtRkl1QWw2NFpzWml6RjZvRXJFSzN1Uk9sbTc2Z3djTER4TVhHeDhYQWo2SWt1NCtvSXJVazBoL1UwV0Vqem5IUUlzcWhrY2pCM3NuY3hkYkM1K0xseWN6aDdrOFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRNRU1oSnE3MDQ2ODI3LzJBb2ptUnBubVZoRUlSUm9HY3hzT3p3d3VSS3N3Wk83anZmQ0VnVGluUzduaEYwbU5FR2h3c2l3VW9nbHBTRHpoQzFLSWlLa1dBd0VKZ1FSTllWSk5pWlNkUjBJdVNzbGRKRlVKMHd1T01KSVcwMGJ5TnhSSE9CWklRamFHbHJXQnhmUUdHUUhsTlZqNVdhbTV5ZG5wOUxZMldib29zV2dpeW1RcWdFcWhON2ZaQ3dHYk95TzdFWHJLNDR1aHFscElxZ3dzUEV4Y2JIeU1lL0tNc2l2U2JQZExjbnRkSlAxTlBPYmlmUmlhUE13Y25DemNyYnlOWEc2TVhkeHVUaTd6NFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRPRU1oSnE3MDQ2ODI3LzJBb2ptUnBubWlxQXNJd0NLc3BFRFFCeCtOUUV3T2U3ejFmYUZhN0NVR3QxMUZZTU5BTUJWTFNTQ3JvYW9Qb2NFY1ZPWGNFZytoS0M1TEF0VEhRaEthSmlMUnU2THNUdjEzeTBJSE1PeXc5QjE4R2ZuK0Zob2VJaVlvWkNBazBDUWlMRmdwb0NobFRSd2h0QkpFV2NEWkNqbTBKRjN4bU1adHVGcVpDcVFRWG4za29vbWlrc0hpWm01MlNBSlJnbHJ3VGpZKzd3Y2JIeU1uS0U1Z296VzljSjdFL1dDZXNhdFVtMTF0RjB0RWp6eks0eTRuaHh0UEkyOGJxd2VqSTV1VHhKaEVBSWZrRUNRb0FBQUFzQUFBQUFEWUFOZ0FBQk1zUXlFbXJ2VGpyemJ2L1lDaU9aR21lYUtvQ3dqQUlxeWtRTkFISDQxQVRBNTd2UFY5b1Zyc0pRYTNYY1lsS0dtV3VKM0luRlJGcDFZNnVGaXh0YVYzUWwzY2FoejlYMnltZDdUaFRiNlo4VHEvYjcvaTh2R0NnR1FvYWNVSUZab0FYYkVkOU93UUdHR1pIaXpXT1FKQ1JCQmlJUW9vN2paaFJTd2RtQjNvVUI0b0dvNlNxcTZ5dE1RZ0pOQWtJckFxUkNpT0NJd2lXQkxSVFJTV3hsZ2toanlTOU5NYVV5TWxEVk1LOXhVT2ZKYnlXdjNxMmk3aEx1aFd3c3RsQ21hdkg1c3lyNWVyVnJ1NDRFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWlaY2dVR05BWUZKSk1pQldhZ1E0TWxuVHNFQmlLTElxczFya0Ftc1RSV3FDU3FPNjFXa1JrSUNUUUpDQmNIWmdkSENyRUt4cW9HeVVJSXRnVEZlc0syQ1h2VXQzcmNCSHZZc2RwNjA3Yldlc3VyelpYQncrZ2lFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWdTQ0FrMENRaVdDanMwQ3BRSW9qV2ZKWk1kbktjRUNhcURJSzQxWGtBaHREUzJYQ0d0cDdBa2p4Nm1ycW5Ca1NLaG9xUVhCUVkwQmdWTG01M0dGUVZtMHBUUG9nYVZ0Tit1bGR3NzNwUUhaZ2VXQjl3RzZwa29FUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2dktVU0Nsa0RnTFFvN05BcC9Fd2lDTlg1Q2NSWjdpQVFKaTFRWGp6VkNacFNWQkpkQUY0NklrVDVzRjRlUGlxSlJHWUdDaElXR2puMnVzck8wdFhZRkJqUUdCYlFGWnJ4UVNpSzVnZ1l5a3lHVkpwakpqOHVkSWNRN3hpV2pJUWRtQjJ1cEl3ZkVCdHEySG95ejFyUE01OURseUxUazR1OHBFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3a1JDVm9Db1dtOWhCTEZqcWFBZGhEVEdyUGtOSDZTV1VLQ3UvTjJ3cldTcmhiOG9HbHFZQWljSFpPSU5ETUhHOTdlWFhvZFVsTlZWbGRnUzRhS2k0eU5qbzhGQmpRR0JZOFhCV3MwQTVWUVhSbVNVd2FkWlJob1VKazhwV0duY2hlZ082SkNlRFlZQjZnREIxYWVHUWVnQnJtV3djTER4TVhHeDF5QUtic2lzNEVnemo5c0o3ZlNtdFN0UTZReTI4M0tLTXpJamVIRTBjYlY1OW5sM2NYazR1OG9FUUE3KSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDMycHggMzJweDtcbn1cbi5teC10YWJjb250YWluZXItdGFicyB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuLm14LXRhYmNvbnRhaW5lci10YWJzIGxpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ubXgtdGFiY29udGFpbmVyLWluZGljYXRvciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQ6ICNmMmRlZGU7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGNvbG9yOiAjYjk0YTQ4O1xuICAgIHRvcDogMHB4O1xuICAgIHJpZ2h0OiAtNXB4O1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB6LWluZGV4OiAxOyAvKiBpbmRpY2F0b3Igc2hvdWxkIG5vdCBoaWRlIGJlaGluZCBvdGhlciB0YWIgKi9cbn1cbiIsIi8qIGJhc2Ugc3RydWN0dXJlICovXG4ubXgtZ3JpZCB7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47IC8qIHRvIHByZXZlbnQgYW55IG1hcmdpbiBmcm9tIGVzY2FwaW5nIGdyaWQgYW5kIGZvb2JhcmluZyBvdXIgc2l6ZSBjYWxjdWxhdGlvbnMgKi9cbn1cbi5teC1ncmlkLWNvbnRyb2xiYXIsIC5teC1ncmlkLXNlYXJjaGJhciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZmxleC13cmFwOiB3cmFwO1xufVxuLm14LWdyaWQtY29udHJvbGJhciAubXgtYnV0dG9uLFxuLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIC5teC1idXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbn1cblxuLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIC5teC1idXR0b24gKyAubXgtYnV0dG9uLFxuLm14LWdyaWQtY29udHJvbGJhciAubXgtYnV0dG9uICsgLm14LWJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDAuM2VtO1xufVxuXG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXNlYXJjaC1jb250cm9scyAubXgtYnV0dG9uICsgLm14LWJ1dHRvbixcbltkaXI9XCJydGxcIl0gLm14LWdyaWQtY29udHJvbGJhciAubXgtYnV0dG9uICsgLm14LWJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjNlbTtcbn1cblxuLm14LWdyaWQtcGFnaW5nYmFyLFxuLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG4ubXgtZ3JpZC10b29sYmFyLCAubXgtZ3JpZC1zZWFyY2gtaW5wdXRzIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICBmbGV4OiAxO1xufVxuXG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXRvb2xiYXIsXG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXNlYXJjaC1pbnB1dHMge1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAwcHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXBhZ2luZ2JhcixcbltkaXI9XCJydGxcIl0gLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIHtcbiAgICBtYXJnaW4tbGVmdDogMHB4O1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLm14LWdyaWQtcGFnaW5nLXN0YXR1cyB7XG4gICAgcGFkZGluZzogMCA4cHggNXB4O1xufVxuXG4vKiBzZWFyY2ggZmllbGRzICovXG4ubXgtZ3JpZC1zZWFyY2gtaXRlbSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuLm14LWdyaWQtc2VhcmNoLWxhYmVsIHtcbiAgICB3aWR0aDogMTEwcHg7XG4gICAgcGFkZGluZzogMCA1cHg7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbltkaXI9XCJydGxcIl0gLm14LWdyaWQtc2VhcmNoLWxhYmVsIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLm14LWdyaWQtc2VhcmNoLWlucHV0IHtcbiAgICB3aWR0aDogMTUwcHg7XG4gICAgcGFkZGluZzogMCA1cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4ubXgtZ3JpZC1zZWFyY2gtbWVzc2FnZSB7XG4gICAgZmxleC1iYXNpczogMTAwJTtcbn1cblxuLyogd2lkZ2V0IGNvbWJpbmF0aW9ucyAqL1xuLm14LWRhdGF2aWV3IC5teC1ncmlkIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbiIsIi5teC1jYWxlbmRhciB7XG4gICAgei1pbmRleDogMTAwMDtcbn1cblxuLm14LWNhbGVuZGFyLW1vbnRoLWRyb3Bkb3duLW9wdGlvbnMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLm14LWNhbGVuZGFyLCAubXgtY2FsZW5kYXItbW9udGgtZHJvcGRvd24ge1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4ubXgtY2FsZW5kYXItbW9udGgtY3VycmVudCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4ubXgtY2FsZW5kYXItbW9udGgtc3BhY2VyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5teC1jYWxlbmRhciwgLm14LWNhbGVuZGFyLW1vbnRoLWRyb3Bkb3duLW9wdGlvbnMge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JleTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbiIsIi5teC1kYXRhZ3JpZCB0ciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubXgtZGF0YWdyaWQgdHIubXgtZGF0YWdyaWQtcm93LWVtcHR5IHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5teC1kYXRhZ3JpZCB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLm14LWRhdGFncmlkIHRoLCAubXgtZGF0YWdyaWQgdGQge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG59XG5cbi8qIGhlYWQgKi9cbi5teC1kYXRhZ3JpZCB0aCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBSZXF1aXJlZCBmb3IgdGhlIHBvc2l0aW9uaW5nIG9mIHRoZSBjb2x1bW4gcmVzaXplcnMgKi9cbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAycHg7XG59XG4ubXgtZGF0YWdyaWQtaGVhZC1jYXB0aW9uIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ubXgtZGF0YWdyaWQtc29ydC1pY29uIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1kYXRhZ3JpZC1zb3J0LWljb24ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmc6IDAgNXB4IDAgMDtcbn1cbi5teC1kYXRhZ3JpZC1jb2x1bW4tcmVzaXplciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAtNnB4O1xuICAgIHdpZHRoOiAxMHB4O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBjdXJzb3I6IGNvbC1yZXNpemU7XG59XG5bZGlyPVwicnRsXCJdIC5teC1kYXRhZ3JpZC1jb2x1bW4tcmVzaXplciB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogLTZweDtcbn1cblxuLyogYm9keSAqL1xuLm14LWRhdGFncmlkIHRib2R5IHRyOmZpcnN0LWNoaWxkIHRkIHtcbiAgICBib3JkZXItdG9wOiBub25lO1xufVxuLm14LWRhdGFncmlkIHRib2R5IHRyOm50aC1jaGlsZCgybisxKSB0ZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcbn1cbi5teC1kYXRhZ3JpZCB0Ym9keSAuc2VsZWN0ZWQgdGQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG59XG4ubXgtZGF0YWdyaWQtZGF0YS13cmFwcGVyIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ubXgtZGF0YWdyaWQgdGJvZHkgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDE2cHg7XG4gICAgbWF4LWhlaWdodDogMTZweDtcbn1cbi5teC1kYXRhZ3JpZCBpbnB1dCxcbi5teC1kYXRhZ3JpZCBzZWxlY3QsXG4ubXgtZGF0YWdyaWQgdGV4dGFyZWEge1xuICAgIGN1cnNvcjogYXV0bztcbn1cblxuLyogZm9vdCAqL1xuLm14LWRhdGFncmlkIHRmb290IHRoLFxuLm14LWRhdGFncmlkIHRmb290IHRkIHtcbiAgICBwYWRkaW5nOiAzcHggOHB4O1xufVxuLm14LWRhdGFncmlkIHRmb290IHRoIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDtcbn1cbi5teC1kYXRhZ3JpZC5teC1jb250ZW50LWxvYWRpbmcgLm14LWNvbnRlbnQtbG9hZGVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDkwJTtcbiAgICBhbmltYXRpb246IHBsYWNlaG9sZGVyR3JhZGllbnQgMXMgbGluZWFyIGluZmluaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiAjRjVGNUY1O1xuICAgIGJhY2tncm91bmQ6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNGNUY1RjUgMCUsICNGNUY1RjUgNSUsICNGOUY5RjkgNTAlLCAjRjVGNUY1IDk1JSwgI0Y1RjVGNSAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDIwMHB4IDEwMHB4O1xuICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG59XG5Aa2V5ZnJhbWVzIHBsYWNlaG9sZGVyR3JhZGllbnQge1xuICAgIDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwcHggMDsgfVxuICAgIDEwMCUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTAwcHggMDsgfVxufVxuXG4ubXgtZGF0YWdyaWQtdGFibGUtcmVzaXppbmcgdGgsXG4ubXgtZGF0YWdyaWQtdGFibGUtcmVzaXppbmcgdGQge1xuICAgIGN1cnNvcjogY29sLXJlc2l6ZSAhaW1wb3J0YW50O1xufVxuIiwiLm14LXRlbXBsYXRlZ3JpZC1jb250ZW50LXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5teC10ZW1wbGF0ZWdyaWQtcm93IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3c7XG59XG4ubXgtdGVtcGxhdGVncmlkLWl0ZW0ge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4ubXgtdGVtcGxhdGVncmlkLWVtcHR5IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuLm14LXRlbXBsYXRlZ3JpZC1pdGVtLnNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xufVxuLm14LXRlbXBsYXRlZ3JpZC1pdGVtIC5teC10YWJsZSB0aCxcbi5teC10ZW1wbGF0ZWdyaWQtaXRlbSAubXgtdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDJweCA4cHg7XG59XG4iLCIubXgtc2Nyb2xsY29udGFpbmVyLWhvcml6b250YWwge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG59XG4ubXgtc2Nyb2xsY29udGFpbmVyLWhvcml6b250YWwgPiBkaXYge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi5teC1zY3JvbGxjb250YWluZXItd3JhcHBlciB7XG4gICAgcGFkZGluZzogMTBweDtcbn1cbi5teC1zY3JvbGxjb250YWluZXItbmVzdGVkIHtcbiAgICBwYWRkaW5nOiAwO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1maXhlZCA+IC5teC1zY3JvbGxjb250YWluZXItbWlkZGxlID4gLm14LXNjcm9sbGNvbnRhaW5lci13cmFwcGVyLFxuLm14LXNjcm9sbGNvbnRhaW5lci1maXhlZCA+IC5teC1zY3JvbGxjb250YWluZXItbGVmdCA+IC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlcixcbi5teC1zY3JvbGxjb250YWluZXItZml4ZWQgPiAubXgtc2Nyb2xsY29udGFpbmVyLWNlbnRlciA+IC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlcixcbi5teC1zY3JvbGxjb250YWluZXItZml4ZWQgPiAubXgtc2Nyb2xsY29udGFpbmVyLXJpZ2h0ID4gLm14LXNjcm9sbGNvbnRhaW5lci13cmFwcGVyIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cblxuLm14LXNjcm9sbGNvbnRhaW5lci1tb3ZlLWluIHtcbiAgICB0cmFuc2l0aW9uOiBsZWZ0IDI1MG1zIGVhc2Utb3V0O1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1tb3ZlLW91dCB7XG4gICAgdHJhbnNpdGlvbjogbGVmdCAyNTBtcyBlYXNlLWluO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1zaHJpbmsgLm14LXNjcm9sbGNvbnRhaW5lci10b2dnbGVhYmxlIHtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB3aWR0aDtcbn1cblxuLm14LXNjcm9sbGNvbnRhaW5lci10b2dnbGVhYmxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1zbGlkZSA+IC5teC1zY3JvbGxjb250YWluZXItdG9nZ2xlYWJsZSA+IC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbn1cbi5teC1zY3JvbGxjb250YWluZXItcHVzaCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1zaHJpbmsgPiAubXgtc2Nyb2xsY29udGFpbmVyLXRvZ2dsZWFibGUge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG4ubXgtc2Nyb2xsY29udGFpbmVyLXB1c2gubXgtc2Nyb2xsY29udGFpbmVyLW9wZW4gPiBkaXYsXG4ubXgtc2Nyb2xsY29udGFpbmVyLXNsaWRlLm14LXNjcm9sbGNvbnRhaW5lci1vcGVuID4gZGl2IHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5teC1zY3JvbGxjb250YWluZXItcHVzaC5teC1zY3JvbGxjb250YWluZXItb3BlbiA+IC5teC1zY3JvbGxjb250YWluZXItdG9nZ2xlYWJsZSxcbi5teC1zY3JvbGxjb250YWluZXItc2xpZGUubXgtc2Nyb2xsY29udGFpbmVyLW9wZW4gPiAubXgtc2Nyb2xsY29udGFpbmVyLXRvZ2dsZWFibGUge1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuIiwiLm14LW5hdmJhci1pdGVtIGltZyxcbi5teC1uYXZiYXItc3ViaXRlbSBpbWcge1xuICAgIGhlaWdodDogMTZweDtcbn1cblxuIiwiLm14LW5hdmlnYXRpb250cmVlIC5uYXZiYXItaW5uZXIge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xufVxuLm14LW5hdmlnYXRpb250cmVlIHVsIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuLm14LW5hdmlnYXRpb250cmVlIHVsIGxpIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RmZTZlYTtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSBsaTpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG4ubXgtbmF2aWdhdGlvbnRyZWUgYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgY29sb3I6ICM3Nzc7XG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgI2ZmZjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4ubXgtbmF2aWdhdGlvbnRyZWUgYS5hY3RpdmUge1xuICAgIGNvbG9yOiAjRkZGO1xuICAgIHRleHQtc2hhZG93OiBub25lO1xuICAgIGJhY2tncm91bmQ6ICMzNDk4REI7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuLm14LW5hdmlnYXRpb250cmVlIC5teC1uYXZpZ2F0aW9udHJlZS1jb2xsYXBzZWQgdWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4ubXgtbmF2aWdhdGlvbnRyZWUgdWwge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xufVxuLm14LW5hdmlnYXRpb250cmVlIHVsIGxpIHtcbiAgICBwYWRkaW5nOiA1cHggMDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCBsaSB7XG4gICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICBwYWRkaW5nOiA1cHggMDtcbn1cbltkaXI9XCJydGxcIl0gLm14LW5hdmlnYXRpb250cmVlIHVsIGxpIHVsIGxpIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCBsaSB1bCBsaSB7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIHBhZGRpbmctdG9wOiAzcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDNweDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCBsaSB1bCBsaSBpbWcge1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4iLCIubXgtbGluayBpbWcsXG4ubXgtYnV0dG9uIGltZyB7XG4gICAgaGVpZ2h0OiAxNnB4O1xufVxuLm14LWxpbmsge1xuICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbiIsIi5teC1ncm91cGJveCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi5teC1ncm91cGJveC1oZWFkZXIge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gICAgY29sb3I6ICNlZWU7XG4gICAgYmFja2dyb3VuZDogIzMzMztcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4IDRweCAwIDA7XG59XG4ubXgtZ3JvdXBib3gtY29sbGFwc2libGUgPiAubXgtZ3JvdXBib3gtaGVhZGVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubXgtZ3JvdXBib3guY29sbGFwc2VkID4gLm14LWdyb3VwYm94LWhlYWRlciB7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLm14LWdyb3VwYm94LWJvZHkge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5teC1ncm91cGJveC5jb2xsYXBzZWQgPiAubXgtZ3JvdXBib3gtYm9keSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbi5teC1ncm91cGJveC1oZWFkZXIgKyAubXgtZ3JvdXBib3gtYm9keSB7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgNHB4IDRweDtcbn1cbi5teC1ncm91cGJveC1jb2xsYXBzZS1pY29uIHtcbiAgICBmbG9hdDogcmlnaHQ7XG59XG5bZGlyPVwicnRsXCJdIC5teC1ncm91cGJveC1jb2xsYXBzZS1pY29uIHtcbiAgICBmbG9hdDogbGVmdDtcbn1cbiIsIi5teC1kYXRhdmlldyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLm14LWRhdGF2aWV3LWNvbnRyb2xzIHtcbiAgICBwYWRkaW5nOiAxOXB4IDIwcHggMTJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWVlO1xufVxuXG4ubXgtZGF0YXZpZXctY29udHJvbHMgLm14LWJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG4ubXgtZGF0YXZpZXctY29udHJvbHMgLm14LWJ1dHRvbiArIC5teC1idXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiAwLjNlbTtcbn1cblxuLm14LWRhdGF2aWV3LW1lc3NhZ2Uge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbn1cbi5teC1kYXRhdmlldy1tZXNzYWdlID4gZGl2IHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG4ubXgtZGF0YXZpZXctbWVzc2FnZSA+IGRpdiA+IHAge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi8qIFRvcC1sZXZlbCBkYXRhIHZpZXcgaW4gd2luZG93IGlzIGEgc3BlY2lhbCBjYXNlLCBoYW5kbGUgaXQgYXMgc3VjaC4gKi9cbi5teC13aW5kb3ctdmlldyAubXgtd2luZG93LWJvZHkge1xuICAgIHBhZGRpbmc6IDA7XG59XG4ubXgtd2luZG93LXZpZXcgLm14LXdpbmRvdy1ib2R5ID4gLm14LWRhdGF2aWV3ID4gLm14LWRhdGF2aWV3LWNvbnRlbnQsXG4ubXgtd2luZG93LXZpZXcgLm14LXdpbmRvdy1ib2R5ID4gLm14LXBsYWNlaG9sZGVyID4gLm14LWRhdGF2aWV3ID4gLm14LWRhdGF2aWV3LWNvbnRlbnQge1xuICAgIHBhZGRpbmc6IDE1cHg7XG59XG4ubXgtd2luZG93LXZpZXcgLm14LXdpbmRvdy1ib2R5ID4gLm14LWRhdGF2aWV3ID4gLm14LWRhdGF2aWV3LWNvbnRyb2xzLFxuLm14LXdpbmRvdy12aWV3IC5teC13aW5kb3ctYm9keSA+IC5teC1wbGFjZWhvbGRlciA+IC5teC1kYXRhdmlldyA+IC5teC1kYXRhdmlldy1jb250cm9scyB7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4IDBweCA2cHggNnB4O1xufVxuIiwiLm14LWRpYWxvZyB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogNTAwcHg7XG4gICAgLyogSWYgdGhlIG1hcmdpbiBpcyBzZXQgdG8gYXV0bywgSUU5IHJlcG9ydHMgdGhlIGNhbGN1bGF0ZWQgdmFsdWUgb2YgdGhlXG4gICAgICogbWFyZ2luIGFzIHRoZSBhY3R1YWwgdmFsdWUuIE90aGVyIGJyb3dzZXJzIHdpbGwganVzdCByZXBvcnQgMC4gRWxpbWluYXRlXG4gICAgICogdGhpcyBkaWZmZXJlbmNlIGJ5IHNldHRpbmcgbWFyZ2luIHRvIDAgZm9yIGV2ZXJ5IGJyb3dzZXIuICovXG4gICAgbWFyZ2luOiAwO1xufVxuLm14LWRpYWxvZy1oZWFkZXIge1xuICAgIGN1cnNvcjogbW92ZTtcbn1cbi5teC1kaWFsb2ctYm9keSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG59XG4iLCIubXgtd2luZG93IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiA2MDBweDtcbiAgICAvKiBJZiB0aGUgbWFyZ2luIGlzIHNldCB0byBhdXRvLCBJRTkgcmVwb3J0cyB0aGUgY2FsY3VsYXRlZCB2YWx1ZSBvZiB0aGVcbiAgICAgKiBtYXJnaW4gYXMgdGhlIGFjdHVhbCB2YWx1ZS4gT3RoZXIgYnJvd3NlcnMgd2lsbCBqdXN0IHJlcG9ydCAwLiBFbGltaW5hdGVcbiAgICAgKiB0aGlzIGRpZmZlcmVuY2UgYnkgc2V0dGluZyBtYXJnaW4gdG8gMCBmb3IgZXZlcnkgYnJvd3Nlci4gKi9cbiAgICBtYXJnaW46IDA7XG59XG4ubXgtd2luZG93LWNvbnRlbnQge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLm14LXdpbmRvdy1hY3RpdmUgLm14LXdpbmRvdy1oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4IDZweCAwIDA7XG59XG4ubXgtd2luZG93LWhlYWRlciB7XG4gICAgY3Vyc29yOiBtb3ZlO1xufVxuLm14LXdpbmRvdy1ib2R5IHtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cbiIsIi5teC1kcm9wZG93bi1saXN0ICoge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1kcm9wZG93bi1saXN0IGltZyB7XG4gICAgd2lkdGg6IDM1cHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1kcm9wZG93bi1saXN0IGltZyB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4ubXgtZHJvcGRvd24tbGlzdCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuLm14LWRyb3Bkb3duLWxpc3QgPiBsaSB7XG4gICAgcGFkZGluZzogNXB4IDEwcHggMTBweDtcbiAgICBib3JkZXI6IDFweCAjZGRkO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLm14LWRyb3Bkb3duLWxpc3QgPiBsaTpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4O1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7XG59XG4ubXgtZHJvcGRvd24tbGlzdCA+IGxpOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xufVxuLm14LWRyb3Bkb3duLWxpc3Qtc3RyaXBlZCA+IGxpOm50aC1jaGlsZCgybisxKSB7XG4gICAgYmFja2dyb3VuZDogI2Y5ZjlmOTtcbn1cbi5teC1kcm9wZG93bi1saXN0ID4gbGk6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7XG59XG4iLCIubXgtaGVhZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogOXB4O1xuICAgIGJhY2tncm91bmQ6ICMzMzM7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLm14LWhlYWRlci1jZW50ZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBjb2xvcjogI2VlZTtcbiAgICBsaW5lLWhlaWdodDogMzBweDsgLyogaGVpZ2h0IG9mIGJ1dHRvbnMgKi9cbn1cbmJvZHlbZGlyPVwibHRyXCJdIC5teC1oZWFkZXItbGVmdCxcbmJvZHlbZGlyPVwicnRsXCJdIC5teC1oZWFkZXItcmlnaHQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDlweDtcbiAgICBsZWZ0OiA5cHg7XG59XG5ib2R5W2Rpcj1cImx0clwiXSAubXgtaGVhZGVyLXJpZ2h0LFxuYm9keVtkaXI9XCJydGxcIl0gLm14LWhlYWRlci1sZWZ0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA5cHg7XG4gICAgcmlnaHQ6IDlweDtcbn1cbiIsIi5teC10aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIG1hcmdpbi10b3A6IDBweDtcbn1cbiIsIi5teC1saXN0dmlldyB7XG4gICAgcGFkZGluZzogOHB4O1xufVxuLm14LWxpc3R2aWV3ID4gdWwge1xuICAgIHBhZGRpbmc6IDBweDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuLm14LWxpc3R2aWV3ID4gdWwgPiBsaSB7XG4gICAgcGFkZGluZzogNXB4IDEwcHggMTBweDtcbiAgICBib3JkZXI6IDFweCAjZGRkO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG4ubXgtbGlzdHZpZXcgPiB1bCA+IGxpOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweDtcbn1cbi5teC1saXN0dmlldyA+IHVsID4gbGk6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4O1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7XG59XG4ubXgtbGlzdHZpZXcgbGk6bnRoLWNoaWxkKDJuKzEpIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjlmOWY5O1xufVxuLm14LWxpc3R2aWV3IGxpOm50aC1jaGlsZCgybisxKTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2Y1ZjVmNTtcbn1cbi5teC1saXN0dmlldyA+IHVsID4gbGkuc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQ6ICNlZWU7XG59XG4ubXgtbGlzdHZpZXctY2xpY2thYmxlIHVsICoge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1saXN0dmlldy1lbXB0eSB7XG4gICAgY29sb3I6ICM5OTk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLm14LWxpc3R2aWV3IC5teC1saXN0dmlldy1sb2FkaW5nIHtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5teC1saXN0dmlldy1zZWFyY2hiYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi5teC1saXN0dmlldy1zZWFyY2hiYXIgPiBpbnB1dCB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4ubXgtbGlzdHZpZXctc2VhcmNoYmFyID4gYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xufVxuW2Rpcj1cInJ0bFwiXSAubXgtbGlzdHZpZXctc2VhcmNoYmFyID4gYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbi5teC1saXN0dmlldy1zZWxlY3Rpb24ge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBwYWRkaW5nOiAwIDE1cHggMCA1cHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1saXN0dmlldy1zZWxlY3Rpb24ge1xuICAgIHBhZGRpbmc6IDAgNXB4IDAgMTVweDtcbn1cbi5teC1saXN0dmlldy1zZWxlY3RhYmxlIC5teC1saXN0dmlldy1jb250ZW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4ubXgtbGlzdHZpZXcgLnNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZGVmO1xufVxuLm14LWxpc3R2aWV3IC5teC10YWJsZSB0aCxcbi5teC1saXN0dmlldyAubXgtdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDJweDtcbn1cbiIsIi5teC1sb2dpbiAuZm9ybS1jb250cm9sIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuIiwiLm14LW1lbnViYXIge1xuICAgIHBhZGRpbmc6IDhweDtcbn1cbi5teC1tZW51YmFyLWljb24ge1xuICAgIGhlaWdodDogMTZweDtcbn1cbi5teC1tZW51YmFyLW1vcmUtaWNvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDTUFBQUFqQ0FZQUFBQWUyYk5aQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFLTkpSRUZVZU5waS9QLy9QOE5nQVV3TWd3aU1PbWJVTWFPT0dYWE1xR05HSFRQWUhNT0NUZkRzMmJNZVFLb09pSTFCWENCdU1qWTIza0ZyZFl6b1RRaWdSbThndFFXTEcwT0JCcXlobFRwYzBkU09JeFRyYUt3T3EyUFVjV2hXcDdFNnJJNjVpVVB6VFJxcncrcVlHaHlhbTJpc0R0TXh3RVMxQ1VnRkFmRnhxQkNJRGtKUGJOUldoelUzalJaNm80NFpkY3lvWTBZZE0rcVlVY2NNVXNjQUJCZ0FVWHBFakUvQnMvSUFBQUFBU1VWT1JLNUNZSUk9KSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDE2cHggMTZweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuIiwiLm14LW5hdmlnYXRpb25saXN0IHtcbiAgICBwYWRkaW5nOiA4cHg7XG59XG4ubXgtbmF2aWdhdGlvbmxpc3QgbGk6aG92ZXIsXG4ubXgtbmF2aWdhdGlvbmxpc3QgbGk6Zm9jdXMsXG4ubXgtbmF2aWdhdGlvbmxpc3QgbGkuYWN0aXZlIHtcbiAgICBjb2xvcjogI0ZGRjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OERCO1xufVxuLm14LW5hdmlnYXRpb25saXN0ICoge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1uYXZpZ2F0aW9ubGlzdCAudGFibGUgdGgsXG4ubXgtbmF2aWdhdGlvbmxpc3QgLnRhYmxlIHRkIHtcbiAgICBwYWRkaW5nOiAycHg7XG59XG4iLCIubXgtcHJvZ3Jlc3Mge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDMwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICB3aWR0aDogMjUwcHg7XG4gICAgbWF4LXdpZHRoOiA5MCU7XG4gICAgYmFja2dyb3VuZDogIzMzMztcbiAgICBvcGFjaXR5OiAwLjg7XG4gICAgei1pbmRleDogNTAwMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgcGFkZGluZzogMjBweCAxNXB4O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBlYXNlLWluLW91dDtcbn1cbi5teC1wcm9ncmVzcy1oaWRkZW4ge1xuICAgIG9wYWNpdHk6IDA7XG59XG4ubXgtcHJvZ3Jlc3MtbWVzc2FnZSB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG59XG4ubXgtcHJvZ3Jlc3MtZW1wdHkgLm14LXByb2dyZXNzLW1lc3NhZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4ubXgtcHJvZ3Jlc3MtaW5kaWNhdG9yIHtcbiAgICB3aWR0aDogNzBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIGJhY2tncm91bmQ6IHVybChkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhSZ0FLQU1RQUFEbzZPb0dCZ1ZwYVduQndjSTZPanF5c3JGSlNVbVJrWkQ4L1AweE1UTTdPenFlbnAxaFlXRjFkWFVoSVNISnljb2VIaDB0TFMxZFhWNmlvcU0vUHoyVmxaVDA5UFRjM04wQkFRSVdGaGRiVzFseGNYSzJ0clVGQlFUTXpNd0FBQUNIL0MwNUZWRk5EUVZCRk1pNHdBd0VBQUFBaCtRUUVEQUFBQUN3QUFBQUFSZ0FLQUFBRms2RG5YUmFHV1plb3JxU0pybkI3cHJBcXY3VjQweDdRL1VCQXpnZjhDV3ZFNGhHV0RBNkx4aEVVeU5OTmYxWHBOWHU1ZHJoZWt0Y0NzNHpMNTVYNVNsYVBNVjRNREg2VnIraFR1d29QMVl2NFJTWnhjNE4zaFh1SGYzRnJVMjBxakZDT0lwQkZraDZVUUphWVB5aGhNWjRzb0RhaVZsczlVMHNyVFZGSXFFOVFxU3FySFVzN09Ub2xNN2NqdVRnNXRyZkFJUUFoK1FRRURBQUFBQ3dBQUFBQUNnQUtBQUFGSktEbkhZV2lGSWZvUVZyclFxTXJhK1RzbG5acjV0ckpvN3dVYXdZVFZRb1VDa29VQWdBaCtRUUVEQUFBQUN3QUFBQUFHUUFLQUFBRldhRG5NY1N5RUpLb3JrZWhLTVdoUGx4dFA2c0thWHdQZVJLYmtNUElIWHBJellFd3RCRnloV1N2c0dqV0ZqbUZsS2VvV3JFcjdWYkJ0RDVYMFcyQllTVWF0MG9QYllqTGVYYkpuNGcwbVJDS2RpSVZCUlFVTVNJaEFDSDVCQVFNQUFBQUxBQUFBQUFvQUFvQUFBV0tvT2NsUXhBTWthaXVETEVzaExUT1I2RW94YUUyV2U4M005R0RReXcrZ2g2SVpzbUVlQ0srYUNZeGt4U3ZIQWFOeWRVY0JsTGZZRWJBRmdtelFwZFpDSVI3Z2RuQ1RGek1GT3Vsd3YyT3IrWjBkaXQ0ZVFwZ2IyTXJaWFJvSzJwNUJRbHZVek1NZEZsYmVUbzhVa0JCUTFoSFFVcGRUaUlrSmdOVVNCNHRFeE1FV3F3VkJSUVVPU0loQUNINUJBUU1BQUFBTEFBQUFBQTNBQW9BQUFXOG9PY2hoaUFZaUtpdXlSQUVRN1RPRExFc2hEU3ZSNkVvaFlQS3NTa2FIVHRQSThOc05wSVBqblQ2U0VJMDJDeGtaT3h1VXF0SWM1eEp6Q1RUTkljeE8yVGZtb1BCYXpUTUJ1VG1ZRVpRVHdrekJYQlpCUUowUlFJekFYbE1BVE1MZmxJTE13cURXQXFHaDRrcmk0eU9LNUNSa3l1VmxncHpoM1lyZUl4N0szMlJnQ3VDbGdVSWgxOHpDWXhsTkpGcmJaWnhIa1JlU0R0TFpFODdVV3BWTzFkd1d5SVlKU2RnU1MwdkEyWkpIalVURXdSczNoVUZGQlJCSWlFQUlma0VCQXdBQUFBc0FBQUFBRVlBQ2dBQUJmQ2c1MTBXaGxtWHFLNklJUWdHc3M3SkVBUkROSzhNc1N3RXlVNTFLQ2dVaFlNSzBHazZBVVBIWmtwMURCdVpyTFl4ZkhDKzRNY1FvaW1iSVNPbnVwTmlVZDhiMlNxaXJXY1NNd2w0ejJITURtYUJHZ2NXYTA0V013WndWQVl6QTNaYUF6TUVmR0FFTXdXQ1pnVVloazBZTXdLTFV3SXpBWkJaQVRNTGxWOExNd3FhWlFxZG5xQXJvcU9sSzZlb3FpdXNyYThyc2JJS2haNklLNHFqalN1UHFKSXJsSzJYSzVteUJSZWViRE1JbzNFMHFIY3pESzE5ZjdLREhreHJVRHRTY0ZZN1dIWmNPMTU4WWp0a2dtZ2lKRXlnR0NJQ2d3c1ljb2JVdURFQUQ4RWVFeVlROEVPd1FnRUtGSktJQ0FFQUlma0VCQXdBQUFBc0R3QUFBRGNBQ2dBQUJicWc1MTBXaGxtWHFLNklJUWdHc3M3SkVBUkROSzhNc1N3RWlRclFLUm9CTzQ5ancydzZrbzJNZE5wSVBqalk3R05rN0haU3JLWjRJMXRGcHVoTVlpYkp1amtNaTlkb21SbkdUY05za0o0T1pnUnZXUVFZYzBVWU13SjRUQUl6QVgxU0FUTUxnbGdMaFlhSUs0cUxqU3VQa0pJcmxKVUxjb1oxSzNlTGVpdDhrSDhyZ1pVRUY0WmZNd2lMWkRTUWFqTU1sWEFlUkY1SU8wdGpUenRSYVZVN1YyOWJJaVFtS0VraUdDNHdaVWsxTndOcjJEMFRFd1FNSWlFQUlma0VCQXdBQUFBc0hnQUFBQ2dBQ2dBQUJZZWc1MTBXaGxtWHFLNklJUWdHc3M3SkVBUkRwQUpkN3dNemtXTkRMRHFDbmtabXlXeU1mTkJPaWxXc2JtU3JDSE9iU1ZpaVBzdk1ZQzBhWmdNdWM0QUI5ekF6UVprb21BWFV5MERiRFYvSjUzVXJkM2dCWDI1aUsyUnpaeXRwZUFNWGJsSXpDSE5YTkhoZEhqeFJRRUZEVmtkQlNseE9JaVFtS0VnaUdDNHdXRWcxTndNSklpRUFJZmtFQkF3QUFBQXNMUUFBQUJrQUNnQUFCVldnNTEwV2hsbVhxSzZJSVFnR29nSmRiUU9yNm14ODc0eTJZQ2ZGNmhrM0NJdlFac2taamowRFpsbkQ1QVJRbm1CS3RhNndXWUdTMmx3OXM0WUxkWmhEWkpFZW1oQ1g4K3lPUHhISmhLcXJNQzR3TWg0aEFDSDVCQVFNQUFBQUxEd0FBQUFLQUFvQUFBVWlvT2RkRm9aWmwrZ0JYZXNDb3l0MzVPeVdkbXZtM2NtanZCUnJCaE9SVENoUkNBQTcpO1xufVxuIiwiLm14LXJlbG9hZC1ub3RpZmljYXRpb24ge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiAxMDAxO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxcmVtO1xuXG4gICAgYm9yZGVyOiAxcHggc29saWQgaHNsKDIwMCwgOTYlLCA0MSUpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgyMDAsIDk2JSwgNDQlKTtcblxuICAgIGJveC1zaGFkb3c6IDAgNXB4IDIwcHggcmdiYSgxLCAzNywgNTUsIDAuMTYpO1xuICAgIGNvbG9yOiB3aGl0ZTtcblxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDE0cHg7XG59XG4iLCIubXgtcmVzaXplci1uLFxuLm14LXJlc2l6ZXItcyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMHB4O1xufVxuLm14LXJlc2l6ZXItbiB7XG4gICAgdG9wOiAtNXB4O1xuICAgIGN1cnNvcjogbi1yZXNpemU7XG59XG4ubXgtcmVzaXplci1zIHtcbiAgICBib3R0b206IC01cHg7XG4gICAgY3Vyc29yOiBzLXJlc2l6ZTtcbn1cblxuLm14LXJlc2l6ZXItZSxcbi5teC1yZXNpemVyLXcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDEwcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuLm14LXJlc2l6ZXItZSB7XG4gICAgcmlnaHQ6IC01cHg7XG4gICAgY3Vyc29yOiBlLXJlc2l6ZTtcbn1cbi5teC1yZXNpemVyLXcge1xuICAgIGxlZnQ6IC01cHg7XG4gICAgY3Vyc29yOiB3LXJlc2l6ZTtcbn1cblxuLm14LXJlc2l6ZXItbncsXG4ubXgtcmVzaXplci1uZSxcbi5teC1yZXNpemVyLXN3LFxuLm14LXJlc2l6ZXItc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG59XG5cbi5teC1yZXNpemVyLW53LFxuLm14LXJlc2l6ZXItbmUge1xuICAgIHRvcDogLTVweDtcbn1cbi5teC1yZXNpemVyLXN3LFxuLm14LXJlc2l6ZXItc2Uge1xuICAgIGJvdHRvbTogLTVweDtcbn1cbi5teC1yZXNpemVyLW53LFxuLm14LXJlc2l6ZXItc3cge1xuICAgIGxlZnQ6IC01cHg7XG59XG4ubXgtcmVzaXplci1uZSxcbi5teC1yZXNpemVyLXNlIHtcbiAgICByaWdodDogLTVweDtcbn1cblxuLm14LXJlc2l6ZXItbncge1xuICAgIGN1cnNvcjogbnctcmVzaXplO1xufVxuLm14LXJlc2l6ZXItbmUge1xuICAgIGN1cnNvcjogbmUtcmVzaXplO1xufVxuLm14LXJlc2l6ZXItc3cge1xuICAgIGN1cnNvcjogc3ctcmVzaXplO1xufVxuLm14LXJlc2l6ZXItc2Uge1xuICAgIGN1cnNvcjogc2UtcmVzaXplO1xufVxuIiwiLm14LXRleHQge1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtbGluZTtcbn1cbiIsIi5teC10ZXh0YXJlYSB0ZXh0YXJlYSB7XG4gICAgcmVzaXplOiBub25lO1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbn1cbi5teC10ZXh0YXJlYSAubXgtdGV4dGFyZWEtbm9yZXNpemUge1xuICAgIGhlaWdodDogYXV0bztcbiAgICByZXNpemU6IHZlcnRpY2FsO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG59XG4ubXgtdGV4dGFyZWEgLm14LXRleHRhcmVhLWNvdW50ZXIge1xuICAgIGZvbnQtc2l6ZTogc21hbGxlcjtcbn1cbi5teC10ZXh0YXJlYSAuZm9ybS1jb250cm9sLXN0YXRpYyB7XG4gICAgd2hpdGUtc3BhY2U6IHByZS1saW5lO1xufVxuIiwiLm14LXVuZGVybGF5IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB6LWluZGV4OiAxMDAwO1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xufVxuIiwiLm14LWltYWdlem9vbSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTk5O1xufVxuLm14LWltYWdlem9vbS13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLm14LWltYWdlem9vbS1pbWFnZSB7XG4gICAgbWF4LXdpZHRoOiBub25lO1xufVxuIiwiLm14LWRyb3Bkb3duIGxpIHtcbiAgICBwYWRkaW5nOiAzcHggMjBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubXgtZHJvcGRvd24gbGFiZWwge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubXgtZHJvcGRvd24gaW5wdXQge1xuICAgIG1hcmdpbjogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1kcm9wZG93biAuc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQ6ICNmOGY4Zjg7XG59XG4ubXgtc2VsZWN0Ym94IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLm14LXNlbGVjdGJveC1jYXJldC13cmFwcGVyIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuIiwiLm14LWRlbW91c2Vyc3dpdGNoZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogMzYwcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHotaW5kZXg6IDIwMDAwO1xuICAgIGJveC1zaGFkb3c6IC0xcHggMCA1cHggcmdiYSgyOCw1OSw4NiwuMik7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlci1jb250ZW50IHtcbiAgICBwYWRkaW5nOiA4MHB4IDQwcHggMjBweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgY29sb3I6ICMzODdlYTI7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIGJhY2tncm91bmQ6IHVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU9nQUFBQmdDQVlBQUFBWFNqN05BQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlScFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1TXkxak1ERXhJRFkyTGpFME5UWTJNU3dnTWpBeE1pOHdNaTh3TmkweE5EbzFOam95TnlBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVOVE5pQW9UV0ZqYVc1MGIzTm9LU0lnZUcxd1RVMDZTVzV6ZEdGdVkyVkpSRDBpZUcxd0xtbHBaRG8wTXprd09UUkVNRFEyTkVZeE1VVTBRVFE0TVVJNU5UTkdNVVEzUXpFNU55SWdlRzF3VFUwNlJHOWpkVzFsYm5SSlJEMGllRzF3TG1ScFpEbzBNemt3T1RSRU1UUTJORVl4TVVVMFFUUTRNVUk1TlROR01VUTNRekU1TnlJK0lEeDRiWEJOVFRwRVpYSnBkbVZrUm5KdmJTQnpkRkpsWmpwcGJuTjBZVzVqWlVsRVBTSjRiWEF1YVdsa09qYzBSRU15TVVaR05EWTBRekV4UlRSQk5EZ3hRamsxTTBZeFJEZERNVGszSWlCemRGSmxaanBrYjJOMWJXVnVkRWxFUFNKNGJYQXVaR2xrT2pjMFJFTXlNakF3TkRZMFF6RXhSVFJCTkRneFFqazFNMFl4UkRkRE1UazNJaTgrSUR3dmNtUm1Pa1JsYzJOeWFYQjBhVzl1UGlBOEwzSmtaanBTUkVZK0lEd3ZlRHA0YlhCdFpYUmhQaUE4UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrZzF0Umx3QUFFRkZKUkVGVWVOcnNuWWwzVmNVZHgyZHU4ckpESUpDd0NnalZhclZvc1ZYYzZqbldubnBJUWxKV2w2T0NyUFlma2gxY2l1d2xMRm81dFQzbFZKUlZFVVVFUlFRSlM0Q1FRRWpDUzk3MCs1Mlo5M0lUREd1Uzk4ajcvVGp6N3IyL2U5OTlaTzU4N205K003K1owY05YYnNxS2FUTmVLVlZvbEttT0tiWDM5RXNWS2wxRVY2MklLSzN3QjV1SGNZZy8zM3lDNHgybS9FMmpSRVNTTE1HSmw4dXZZcnNIaWR1aFNBK21Vd2FZaWhsUk0zSEdPdXp1Wlg0Zy9SbHBpdDY4TkZ1S2gwalNEWWd4emxBTVc3V3BDQmIwNlJqTmlEWUh6azZ2UEpaMm1iRnArYStKTEN4b0hyYm5vVnB0eW1lZGxXSWlrblJBS1VOWFZRMERvT01BcUlKMlg4MzB5cFBwQitteVFsL2xIWTNES0xaYlRmbnNMNldvaUNRZFVNcmdWVlZqQWVoSWFHTXhaWGFlbi83WGMybVpNWnVYVm1MenFGSTJmL1lCMm85TTJleW9GQm1ScEFKS0tWbTk4UkZvUndCUUZzZ2RnTFErVFNFZEIwQkxzWnNCUUd1d3Y4NlV6VGtqeFVZa3FZQlNpbGR2SEFkQWgyRzNDUloxUisyMFNRM3BDZW1TZ2RpVUFkQlJBTFFGKzl1UWRnTlVhZVVWU1I2Z2xBR3IvL0U0Tm9NQWFBTjgweDExMHlZMXBXMUdiVmxDdi9SMy92QVE5amVac3JsWHBBaUpkS2NFTnpqUDdoZFU3VlErMGhOOTFxeVBwR3RHd2Yrc3dvYmRNWmVRSGtENm05Nnk2SDRwUWlKSnM2RGVpa1pnUVIrSEJTMUNsYmZXYVBQWjVhbFRXdFBYa2k0dXNGVmVaUjV3Q3ZhZm1vOU42YnlyVXB4RWVoeFFTdjgxRzNJQUtDQTFoUUQwSFBaM1hVbGpTQjJvaTU3QjVua0FpbHFJdVlEOWpZRDB1QlFwa1I0SGxGSzRaa01lQUIwUFFQTUI2TmxXWlhZM1Q1MGFTM05JaXdIb2l3QjBqSEw5TWJ1UVBoRnJLdExqZ0ZMZ2crWUQwUEdnTWcrQW5zRjJUelROSWJXWnVIVWhxcnpxOS82dzFqWWdsYzcvVVlxWFNJOENTaWxZdTQ0VzlDa0F5bXJ2S2ZpbmUxdW5URE1DNmNJaDJQd0o2VmNBbFBteEY5YjFYMmJDL0NZcFppSTlCaWdsRDVDMnVyamRiQUJhRGRVK2dUUnNUWTJ6cHRxMitQNFRrSDRqT1NQU1k0QlNzdGV1TFFDZ1R3UFFMQnhXd3ovZFo2Wk1GMGd0cEF0S3NIa0JnTWE3WVk0QTJnL05oTGRxSlhkRWVnUlFTb1NRYXNQV3pBZ0FQVVZMQ2toamtxMCtjejljOEFRMlR5TDFVeTVzY2p2U0RvRGFLcmtqMHUyQVVqTFdyV0cvNEZNQWxPTW56K0NPZTh6a2x3VFNOa2laTHhNQTZDTmV4UzZaandEcEVja2RrVzRIMUVPYUQwQ2Z3bTRPN3NqeGs0UlVyRVE3VU4rK2p5OHlwSHU5Nmp1a2p3SHFCY2tka1c0RjFONW8zV3FHQTQ3SEhmT1VEUTgwdTgza2x3WFNhMEY5RnBzL0lQVlZkcnlwK3N4WGU2VzFWNlQ3QUUxQXFnMzlybndmWGJNTGtNb1l5bXNoemNYbUw4cU9ON1hDb1B2L0lPMEZxT0llaUhRUG9QYUc2MWZsT1F0aGFDSHE4QXM3emFSWG1pV3JmeEhVVWI3YUcyL3Q1Y0NFYmVLZmluUWJvQjdTSE44WDJCKy93SEdrbndOU0daclZPYWkveGVZeHBGRmU5Wk5peU9DRXR5UzJWd0R0bnE1THZmNkRMRnZvdE9HQVovaFhCcEMrZWtteS9JYitLV0V0OGFyRFNQOEdxS2NsZHdUUTdvQTBFNy9BUWM2RGZUL2dia0I2WHJMOXVwQnE1VUlHQ1dxaGNrSDRqRVQ2TDBDdGtSd1NRTHYrUnphczVOdytuRDRscG9MWUY2Ynl0V3JKK2h1Q0NqZEJ2YURhZ3ZBOXFCcWd6aGRRQmRDdWh2VHY3S2dmQVVENWd3Y0I2VkhKL3BzQ2xZMXR6M2tmMVQ0eWIxRzNBMVNaczFjQTdWSkl4d0xRa2Q0Z0hIV2d2aTd4dTdjRXFuNHNaRkhwbzM0S1VLVXhTUUR0b2gvYytONFFWMjJ6djN0S2FmV0ZxWGhkQWhwdUd0UUZCUFdQb2FvdnM1S0EvZy9waUNtZEx5ODhBZlNPSVdYd09BTWFzZ0RvUmV6dk1oVnZTRi9wcllIS1lJZW5rZTREb0lPOG1sWGVuVGo3bFNtZEp3RWlBdWlkUVBwdXZ2V3JORnNxRGNQY2RnTFNlbmtrdDVHWFd4YzhZMEZWeXJzUG1uM09YQXhxRjBDVnJpMEI5TFlocFFYbDhncTBBQzJLWTBvclpzak03YmNQS2h2aXhtSnZqRmZSZFRpbzJMMGxFNW9Kb0xmOW42aDZoMzJsdy8xVUlkOEMwaC9rMGR3SnFBdHBTVG5wK0VNaExhdS91NUVPbU5LNUVwZ3ZnTjR5cEhqekcxZEYwK29rOXZlYmlUT2w4ZWpPUUdXZ0EwZk9qTURSQ0srK0NwLzFBTFpmbXJLNUp5U1hCTkJiZ0hURllNVVJIbHBGQUdpZHJacE5uTmtvajZrcllGM0V5Q1NtKzFYaWtXdXVYTWVsRmZlYnNqbmlxd3FnTndWcEhnQmw1RkYvKzdaWFpvK1orS2FFQjNZZHFNVUE5RkZ2VmUveGFnNXhvMXZ4RlhTSFpKbEZBZlQ2LzZsTkt6SUJKZ3ZSRU8rWEhnU2tFbm5VMWZtOFpUR0h1VDNTd1ZkbEZmZ1FmVldrbzZaOHRyZ1pBbWhub0M1SDRURWp2RjlhYmYzUzhsa3Q4dGk2SEZUT216UlcyVVdoOUppMktqQUhrdXR2bFdzSlBvYThGMWdGMEk2UUxodGlDNDlXV1FDMHdmcWw1YlBFWCtvMldKZjBBNkQwVlVjck8zK1NqcDlxeFA1M09FZGdmMENOUmw2VUFtZ0MwbHlVRTFyVFltWDc5c3dCVkwya0JiSzc4MzN6RXVTMy9vMXlBOGtkcks2NHdFZlZkRGtZQzN6WVRKd3BMOHgwQnJTdHdDeWxYM3FQTHlYSFVWNitObVhpSS9WUTNoZmg4MEZrL1JoblhST1dsUS9qRkk2UFlJOE5UVCtiaWhreXIxSTZBdW9MQ254U3d5cFlnREp5R2Z0N1Rka2NDUkhzNlJxTjBteGdZdklOVEFucjJvejlZOHExQ2g4MUZXK2NreHhMSTBCOTFhdkErNlVEVUNyNHR2NEdrQjZUeDVrTVdKZHJWd1cyalV0czBCc1JzcTY4NGhMMFA5a2Fqd08zeGxTK0ppTnVlak9nb1FZTnh2SEcrL0k0Ync4NzNHVnR6bVErazZvVnVUNFdlTFNIZFdBb01JSWZET1Evb1dMQno2d09RMWN0c3o3MlVrQWRwSXM1bFFvYk1qaEZTQ09BWlFpYlZLdFNCdGgzKzNyTE9zcUhHN29KMFdKQi9BcldnR284cktkd0xWKzBaMlErNVY0Q3FJYzBSN2wrdkVIZUVUcUtsL1VoVXpwWEdwQlM3Vmx0ZkkvRERJY0QwT0hLTnZqcFVhR3pjVDgyNXNNUUFhcytBeDBEL1dzQ3BldlNiWm5MWGdGb0NOUnd3RDJiL3I4QXBIV0NSUW8vc3cwcmFVcUxMYlJLRHdXTWpNY2UxdWJISnFCbHErQlZEMm9OZEJmd3hRc1pTbk1GZ3d0WHBrNXBFa0R2Q2tnWGNRVEhRNjRCaVc5aXc3NjY3MDNwUEdtWXVGdWU0Zm9QTXF6dmFxZHIxU1dBa2RYaVlvRFp6NE5xb1NYWkdSN2tER01IcWRkQ1YwOUxpLzJMZ2RGczNlZHhQYTY2Y25aNjVWMFJYUEhraXUyWitMdnp0VkY5ZWgyZ2lZZThkWkdiUmRDOWZpOHFOaUNWenBQdW1MdFlNdGF0eWZLZ011Qy9DREFXQWRBaXhhM1JPUTVlRHpDM1JzY3RiOXdlTjBGM09YQWhqQTJFRnNlMHZFM2FUcTZ1bTNDdVVSdE4vemVLL1didGZPU3IwTVZDOTJvKzlPcUw3ZnA2SDM1L1c0RC9VN1pPL0xvT3NNMENaTmhxNkRsQ1MwZXd6Y1YxT2REeC81dURxN0d2OHFETGc0N1Yvd0p0MjFPMG5iK3gxd0xxSVVYVnlUeWc3QUs2ZHNRR1Y3cUdOWjB2SGVtOVRQcXNXYy9DM1E5UUZhTFFzeFpWQ1BnNHdWcGZIUGZWZGtFdmxVRm9BMTkxMWlHSTQ1K0JyVmJHd1ZZSnRQVzFzRnRkK0Y2MEJTRkE3ZFpDMW5hWDBIVWQ3aGZTYVJzdGh4ZUlVZlg2K2NXZjI3UEdmeG9kUDhKV3U3MlkxYnR6aVd2dE9XTkxmZnc2NC8vRmRIdy9acjhUaTkveG11KzA3Y2V2aVlYMEhmZGpmcjhWKzYzdDlQRy9NUDZ5TVNyeFZ6TmxYL2JXMU9wb1JiOVVMYmwxMTE3YnlYSGlDWVpmWnAzcE81N3JvTHZ6MTg2MUtuTVQxNFIxNWdiWG1jN3VwYS96M2M3T2RhSnZhOFc5d2JYdGZGQjFuU3F1dWdrTG1nTmRRVUNMcFRRdFZXN2dMRyt1dDFxd2FMQnVSc1BhcVlqZFY1cGZoU1hVR2FGNzBaSUhIUUJsOGJ3YUFyUlZXOHRMQkRRdE5NTWpvOVpTRzFwc1o3bHhkYU5tNzROUnNPaWFzZWFYdlRXM3hUa3pMVjZ2elFYN0FTbG5zMmZrQzZ0RXo2ck14dStSQjBkVU5FZGFldE5IbW55NmF5UkltMGNUemF0QitsVFppQmI3a3VNc2VNK3BTRk94bEZzUkFUUjFRTjJQengzS2RZNjdWY0V6bThhcHpPWnNLUTRpS2RlTzBwc2JpVzc0eDMrNGdGVmVocVRSNTRDUFlEalc4YmlaOEpaMHlZZ0lvQ2tDS1dkbzU0aU1JYjQxb2hicGEwQjZVWXFIaUFDYU9xQnlYbDVhMC9pYW5Cd1EvaTFBbGVCN0VRRTBkVUI5bXpHOUkrTWVLOUozaXZQeFNMVlhSQUJOR1VnNTN2UkJaVVBOckxEdjlLQ3NjQzBpZ0tZV3FFT1ZuWXZIOXAxU3pucFFaUTRlRVFFMGhVQmxueWtqa2ZLOGY4b1pBZzREVkJsb0xDS0FwZ2lrakxwNlNDVkNCcmthbS9vZTZVZUFLbE5RaWdpZ0tRSXFBN0RaZnpyRXEyaEZqOUNxQWxRSndoY1JRRk1FMUJMdm41WjRGY2Nqc3NYM3BMVDRpZ2lncVFNcUc1TFlMVFBRcXk1NVVFOExxQ0lDYU9xQVN0K1U4K3dNOEtwNlgvVTlKYUNLQ0tDcEErcG83NThXdFZsVWZkaUJPbDh5VzBRQVRSRlE2WjhPZGFEcWVOV1hyYjdWQUZVYWswUUUwTlFCVlE4SlZYMjVZdmdQeXFqanBuUytEQllYRVVCVEE5UUZJNzFGZFkxSmhxdUhxeCtaQUtwTTBpd2lnS1lJcUlSMEJBQ056K1JBSzNxQ3kvbVowbmtOa2tNaUFtZ3FaUHpXQlFSMGxFb0U1TnNaenhpTXozVTNhd0NyWkpLSUFKb0NvREl5NlY2L2JrbGNMbmxRVHdKVThWTUZVSkhrZzdxUXNiN3NvcUZsalhmUlJIMzE5eWRUT3ZleTVKSUFLcElhc0RMZ1liaUhWZmx1bXZOSXg3ajZseW1iSzkwMEFxaElDb0JhcU5xVzdYTmliSEErcDJNNUFWREZxZ3FnSXNrSGRaRmZ4Vm9OQnFBRFEyZHFQYXpWcG15T2ROVUlvQ0pKZjJCYkZ0RS92Y2Y1cWJyQXE5bVFkTnI3cStkTTJXeDVxQUtvU1BKaFhVdy9sZjJxZzBKYUxtMVFEVXQ3MHBUUGxxbERCVkNSRkFBMTExdFZWSC8xQU8rclVoajRjQkk2d0RwTC9GVUJWQ1Q1c0M3aFVvdkR1SDZtY3NzdXFsQ3cvaWttd0NycnBBcWdJa2wvdUp1WERGUnVPWG5DV2hBNjAyQmhOWW9ydnRXWmlXOUtaZ21nSXNtRmRTbGg5ZU5VN2NLMjhXb3cxNkxrZEtKbkZFTU1KODZVeUNVQlZDUzVzQzRyc3JBYU93U3VNTFNJTGdNZ3p1SDRETTZkTlJVenJraHVDYUFpeVN3QW01YWg2cXZaQ2x5c3dwRkxiWTFNTlRobUVQOTVVL0dHOUxVS29DTEpnM1U1NDRFQnF5N3gxalUzQWF4RDlxSUg5anlPYWszbDYxSWRGa0JGa2xZNHFsYjBkVmJWZHQyRSsxcUphOHdCcXhramZJSEpWTDRtRTNnTG9DTEpnZlVkcnNaTzMzV0FiUlZPaEJ3bS9GY1VwS0FlMk5aNlM0dXR2bXdtdlNLWko0Q0s5SGpCMmZndWdlM25yU3ZCTFFHZ3JwbXA3YXFvQTlWYTJqb2dYR2Ntdjl3b3VTZUFpdlE0c08vQmxBWjlBV2gvSFBiMzhCWjBxQlpUb2haV1oyWHJzVjhQZllPWk1sMkcwQW1nSWoxYXVEYXNqSVJnN1FjUTZkUG1ocXJGWVgvMkNtR0ZEV1pJNHFWQTZVc0VOenAxYWt3QUZSSHBxUUszL29Nc2ZIS2NLMU5mR3pSaFZKODRySUcvTG5EZ21zQUZValJrdUxWdkdqS01qWUpxZ0w2eGJ0cmtxQUFxSXRMZGhYRGRhbktaajcwK2dRdEp4RmIzSWJpQkJ6ZkRYd3RBUGNCVzN4SzRlWWFiQXFPNWJmUkFOMnUzNmx3ejlNMm5YNnE0SzYzdytCWGJBd0ZVSkdVbHNuYXRCbkE1QUM0L3d3S3M4Z0VvdDNtQnF5cEhFaGEzUGJpSlNqVDFnWnZiQ2RCcXprVWNoWTdIVVczWGVOVlJmNzVGRzgxdUl1T09OZThZWmZVYjMydnRjTytXUTYrKzJBNmNoOS9meHAvTTFDWitsZjNNME81ckVmd21WUkZ0VCtsTWZHVGFZNlBwQm1UaW9peXY1M0dXTWpwYjIvTUNxTWhkS29Wck5tUTZVRlV1QU1peFd3ZHVGZ3AzTm81em9NOEtQRnR4Yk9NdzZ3N1ZhdjFMa0p2UTkwSjYzY2tMb1FPZzdWNFV2NlR2N0Q0QWxQc3hBVlNrMTh2UVZWVzBTckJJT3N0YnM0aTNaaEZ2aGVQV2pEWHB3QjNyd0ZvNW83QzErakJFc0pUV0lvWjF4bG5oZG9DMmF0ZngxSUxmdEZ0M2JQVnhxMjJ0dWJmYVVhKy9Da0NiZDg3NFkvVC9BZ3dBMk1pN0hkQWUraWtBQUFBQVNVVk9SSzVDWUlJPSkgdG9wIHJpZ2h0IG5vLXJlcGVhdCAjMWIzMTQ5O1xuICAgIC8qIGJhY2tncm91bmQtYXR0YWNoZW1lbnQgbG9jYWwgaXMgbm90IHN1cHBvcnRlZCBvbiBJRThcbiAgICAgKiB3aGVuIHRoaXMgaXMgcGFydCBvZiBiYWNrZ3JvdW5kIHRoZSBjb21wbGV0ZSBiYWNrZ3JvdW5kIGlzIGlnbm9yZWQgKi9cbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGxvY2FsO1xufVxuLm14LWRlbW91c2Vyc3dpdGNoZXIgdWwge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luLXRvcDogMjVweDtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM0OTYwNzY7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlciBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgY29sb3I6ICMzODdlYTI7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM0OTYwNzY7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlciBoMiB7XG4gICAgbWFyZ2luOiAyMHB4IDAgNXB4O1xuICAgIGNvbG9yOiAjNWJjNGZlO1xuICAgIGZvbnQtc2l6ZTogMjhweDtcbn1cbi5teC1kZW1vdXNlcnN3aXRjaGVyIGgzIHtcbiAgICBtYXJnaW46IDAgMCAycHg7XG4gICAgY29sb3I6ICM1YmM0ZmU7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuLm14LWRlbW91c2Vyc3dpdGNoZXIgLmFjdGl2ZSBoMyB7XG4gICAgY29sb3I6ICMxMWVmZGI7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlciBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLm14LWRlbW91c2Vyc3dpdGNoZXItdG9nZ2xlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAyNSU7XG4gICAgbGVmdDogLTM1cHg7XG4gICAgd2lkdGg6IDM1cHg7XG4gICAgaGVpZ2h0OiAzOHB4O1xuICAgIG1hcmdpbi10b3A6IC00MHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xuICAgIGJveC1zaGFkb3c6IC0xcHggMCA1cHggcmdiYSgyOCw1OSw4NiwuMik7XG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQklBQUFBU0NBWUFBQUJXem81WEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeVJwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVNeTFqTURFeElEWTJMakUwTlRZMk1Td2dNakF4TWk4d01pOHdOaTB4TkRvMU5qb3lOeUFnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5UTmlBb1RXRmphVzUwYjNOb0tTSWdlRzF3VFUwNlNXNXpkR0Z1WTJWSlJEMGllRzF3TG1scFpEbzNORVJETWpGR1JEUTJORU14TVVVMFFUUTRNVUk1TlROR01VUTNRekU1TnlJZ2VHMXdUVTA2Ukc5amRXMWxiblJKUkQwaWVHMXdMbVJwWkRvM05FUkRNakZHUlRRMk5FTXhNVVUwUVRRNE1VSTVOVE5HTVVRM1F6RTVOeUkrSUR4NGJYQk5UVHBFWlhKcGRtVmtSbkp2YlNCemRGSmxaanBwYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2pjMFJFTXlNVVpDTkRZMFF6RXhSVFJCTkRneFFqazFNMFl4UkRkRE1UazNJaUJ6ZEZKbFpqcGtiMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPamMwUkVNeU1VWkRORFkwUXpFeFJUUkJORGd4UWprMU0wWXhSRGRETVRrM0lpOCtJRHd2Y21SbU9rUmxjMk55YVhCMGFXOXVQaUE4TDNKa1pqcFNSRVkrSUR3dmVEcDRiWEJ0WlhSaFBpQThQM2h3WVdOclpYUWdaVzVrUFNKeUlqOCsxWm92TkFBQUFXZEpSRUZVZU5xTTFNMHJSRkVZeC9FN1k1cUlRcE9VYklpeW1RV3lzQmd2SlZKSzJWZ3J5WlF0S1NVTFplbFBzQjBMWmFOWmpKVU5LMUZza0pxVXZDUzNOQXNaYzN6UDlOemlPT2ZlZWVwVGM4L2M4K3ZjOHhaVFNubU9ha0VHS2R6Z0RCWFh5NTRPTXNTd2pwTDZXOWNZc3J4ZlpXdmNVdTd5MFZkTFVDYytWWGdkMm9MaXhwZk9JT21GMTdUdEhUT296WXV1cEN4QWFOQjlEVUVmZURVYkU4YnpFWHhaZXJQMDBsOGhoM0xVaUhUSU1yNk45ajJrc1lvaWh2LzFkZXlMU1Z6S0ttMWpFVytXZlpWMkxmOGdza2pJY3djV3BPTSsrcEhDRlBMb3NnV3RvQ3lkN2pDUE9qemhHSEhMeURQWTFhY2hhSmhEeFJqNnJCd0pYVXVvTjBJRzhJSXY3T2lHQmp4YWR2QUlUdVQzcmV4NmMwU2JLQVNmbG5VY0JUM0pUVGhBanlXa0dVVnNCRUVGUjVDZXJ6WHBOSWFjckZJckpuQ0JCM211QnZraEIxVFAyN2hNL0x2eDN6bDZneEhxdTZjNzRraVU4SXhHaktKZExyclQzeGZkandBREFKYU14UDJidkQyQkFBQUFBRWxGVGtTdVFtQ0MpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0ICMxYjMxNDk7XG59XG4iLCIvKiBtYXN0ZXIgZGV0YWlscyBzY3JlZW4gZm9yIG1vYmlsZSAqL1xuLm14LW1hc3Rlci1kZXRhaWwtc2NyZWVuIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG59XG5cbi5teC1tYXN0ZXItZGV0YWlsLXNjcmVlbiAubXgtbWFzdGVyLWRldGFpbC1kZXRhaWxzIHtcbiAgICBwYWRkaW5nOiAxNXB4O1xufVxuXG4ubXgtbWFzdGVyLWRldGFpbC1zY3JlZW4taGVhZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNztcbn1cblxuLm14LW1hc3Rlci1kZXRhaWwtc2NyZWVuLWhlYWRlci1jYXB0aW9uIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxN3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5teC1tYXN0ZXItZGV0YWlsLXNjcmVlbi1oZWFkZXItY2xvc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDUwcHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjMDA3YWZmO1xufVxuXG5ib2R5W2Rpcj1cInJ0bFwiXSAubXgtbWFzdGVyLWRldGFpbC1zY3JlZW4taGVhZGVyLWNsb3NlIHtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiBhdXRvO1xufVxuXG4ubXgtbWFzdGVyLWRldGFpbC1zY3JlZW4taGVhZGVyLWNsb3NlOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFwyMDM5XCI7XG4gICAgZm9udC1zaXplOiA1MnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xufVxuXG4vKiBjbGFzc2VzIGZvciBjb250ZW50IHBhZ2UgKi9cbi5teC1tYXN0ZXItZGV0YWlsLWNvbnRlbnQtZml4IHtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5teC1tYXN0ZXItZGV0YWlsLWNvbnRlbnQtaGlkZGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwMCUpO1xufVxuXG5ib2R5W2Rpcj1cInJ0bFwiXSAubXgtbWFzdGVyLWRldGFpbC1jb250ZW50LWhpZGRlbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwMCUpO1xufSIsIi5yZXBvcnRpbmdSZXBvcnQge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIC1tb3otYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbiIsIi5yZXBvcnRpbmdSZXBvcnRQYXJhbWV0ZXIgdGgge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuIiwiLnJlcG9ydGluZ0RhdGVSYW5nZSB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbn1cbi5yZXBvcnRpbmdEYXRlUmFuZ2UgdGgge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xufVxuLnJlcG9ydGluZ0RhdGVSYW5nZSB0ZCB7XG4gICAgcGFkZGluZzogNXB4O1xufVxuIiwiLm14LXJlcG9ydG1hdHJpeCB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLm14LXJlcG9ydG1hdHJpeCB0aCwgLm14LXJlcG9ydG1hdHJpeCB0ZCB7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbn1cblxuLm14LXJlcG9ydG1hdHJpeCB0Ym9keSB0cjpmaXJzdC1jaGlsZCB0ZCB7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbn1cblxuLm14LXJlcG9ydG1hdHJpeCB0Ym9keSB0cjpudGgtY2hpbGQoMm4rMSkgdGQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG59XG5cbi5teC1yZXBvcnRtYXRyaXggdGJvZHkgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDE2cHg7XG4gICAgbWF4LWhlaWdodDogMTZweDtcbn1cbiIsIi8qIFdBUk5JTkc6IElFOSBsaW1pdHMgbmVzdGVkIGltcG9ydHMgdG8gdGhyZWUgbGV2ZWxzIGRlZXA6IGh0dHA6Ly9qb3JnZWFsYmFsYWRlam8uY29tLzIwMTEvMDUvMjgvaW50ZXJuZXQtZXhwbG9yZXItbGltaXRzLW5lc3RlZC1pbXBvcnQtY3NzLXN0YXRlbWVudHMgKi9cblxuLyogZGlqaXQgYmFzZSAqL1xuXG4vKiBtZW5kaXggYmFzZSAqL1xuXG4vKiB3aWRnZXRzICovXG5cbi8qIHJlcG9ydGluZyAqL1xuIl0sInNvdXJjZVJvb3QiOiIifQ==*/ diff --git a/theme/styles/web/sass/core/_legacy/bootstrap/_bootstrap-rtl.scss b/theme/styles/web/sass/core/_legacy/bootstrap/_bootstrap-rtl.scss deleted file mode 100644 index 8c768d5..0000000 --- a/theme/styles/web/sass/core/_legacy/bootstrap/_bootstrap-rtl.scss +++ /dev/null @@ -1,1570 +0,0 @@ -/******************************************************************************* - * bootstrap-rtl (version 3.3.4) - * Author: Morteza Ansarinia (http://github.com/morteza) - * Created on: August 13,2015 - * Project: bootstrap-rtl - * Copyright: Unlicensed Public Domain - *******************************************************************************/ - -[dir='rtl'] { - .flip.text-left { - text-align: right; - } - .flip.text-right { - text-align: left; - } - .list-unstyled { - padding-right: 0; - padding-left: initial; - } - .list-inline { - padding-right: 0; - padding-left: initial; - margin-right: -5px; - margin-left: 0; - } - dd { - margin-right: 0; - margin-left: initial; - } - @media (min-width: 768px) { - .dl-horizontal dt { - float: right; - clear: right; - text-align: left; - } - .dl-horizontal dd { - margin-right: 180px; - margin-left: 0; - } - } - blockquote { - border-right: 5px solid #eeeeee; - border-left: 0; - } - .blockquote-reverse, - blockquote.pull-left { - padding-left: 15px; - padding-right: 0; - border-left: 5px solid #eeeeee; - border-right: 0; - text-align: left; - } - .col-xs-1, - .col-sm-1, - .col-md-1, - .col-lg-1, - .col-xs-2, - .col-sm-2, - .col-md-2, - .col-lg-2, - .col-xs-3, - .col-sm-3, - .col-md-3, - .col-lg-3, - .col-xs-4, - .col-sm-4, - .col-md-4, - .col-lg-4, - .col-xs-5, - .col-sm-5, - .col-md-5, - .col-lg-5, - .col-xs-6, - .col-sm-6, - .col-md-6, - .col-lg-6, - .col-xs-7, - .col-sm-7, - .col-md-7, - .col-lg-7, - .col-xs-8, - .col-sm-8, - .col-md-8, - .col-lg-8, - .col-xs-9, - .col-sm-9, - .col-md-9, - .col-lg-9, - .col-xs-10, - .col-sm-10, - .col-md-10, - .col-lg-10, - .col-xs-11, - .col-sm-11, - .col-md-11, - .col-lg-11, - .col-xs-12, - .col-sm-12, - .col-md-12, - .col-lg-12 { - position: relative; - min-height: 1px; - padding-left: 15px; - padding-right: 15px; - } - .col-xs-1, - .col-xs-2, - .col-xs-3, - .col-xs-4, - .col-xs-5, - .col-xs-6, - .col-xs-7, - .col-xs-8, - .col-xs-9, - .col-xs-10, - .col-xs-11, - .col-xs-12 { - float: right; - } - .col-xs-12 { - width: 100%; - } - .col-xs-11 { - width: 91.66666667%; - } - .col-xs-10 { - width: 83.33333333%; - } - .col-xs-9 { - width: 75%; - } - .col-xs-8 { - width: 66.66666667%; - } - .col-xs-7 { - width: 58.33333333%; - } - .col-xs-6 { - width: 50%; - } - .col-xs-5 { - width: 41.66666667%; - } - .col-xs-4 { - width: 33.33333333%; - } - .col-xs-3 { - width: 25%; - } - .col-xs-2 { - width: 16.66666667%; - } - .col-xs-1 { - width: 8.33333333%; - } - .col-xs-pull-12 { - left: 100%; - right: auto; - } - .col-xs-pull-11 { - left: 91.66666667%; - right: auto; - } - .col-xs-pull-10 { - left: 83.33333333%; - right: auto; - } - .col-xs-pull-9 { - left: 75%; - right: auto; - } - .col-xs-pull-8 { - left: 66.66666667%; - right: auto; - } - .col-xs-pull-7 { - left: 58.33333333%; - right: auto; - } - .col-xs-pull-6 { - left: 50%; - right: auto; - } - .col-xs-pull-5 { - left: 41.66666667%; - right: auto; - } - .col-xs-pull-4 { - left: 33.33333333%; - right: auto; - } - .col-xs-pull-3 { - left: 25%; - right: auto; - } - .col-xs-pull-2 { - left: 16.66666667%; - right: auto; - } - .col-xs-pull-1 { - left: 8.33333333%; - right: auto; - } - .col-xs-pull-0 { - left: auto; - right: auto; - } - .col-xs-push-12 { - right: 100%; - left: 0; - } - .col-xs-push-11 { - right: 91.66666667%; - left: 0; - } - .col-xs-push-10 { - right: 83.33333333%; - left: 0; - } - .col-xs-push-9 { - right: 75%; - left: 0; - } - .col-xs-push-8 { - right: 66.66666667%; - left: 0; - } - .col-xs-push-7 { - right: 58.33333333%; - left: 0; - } - .col-xs-push-6 { - right: 50%; - left: 0; - } - .col-xs-push-5 { - right: 41.66666667%; - left: 0; - } - .col-xs-push-4 { - right: 33.33333333%; - left: 0; - } - .col-xs-push-3 { - right: 25%; - left: 0; - } - .col-xs-push-2 { - right: 16.66666667%; - left: 0; - } - .col-xs-push-1 { - right: 8.33333333%; - left: 0; - } - .col-xs-push-0 { - right: auto; - left: 0; - } - .col-xs-offset-12 { - margin-right: 100%; - margin-left: 0; - } - .col-xs-offset-11 { - margin-right: 91.66666667%; - margin-left: 0; - } - .col-xs-offset-10 { - margin-right: 83.33333333%; - margin-left: 0; - } - .col-xs-offset-9 { - margin-right: 75%; - margin-left: 0; - } - .col-xs-offset-8 { - margin-right: 66.66666667%; - margin-left: 0; - } - .col-xs-offset-7 { - margin-right: 58.33333333%; - margin-left: 0; - } - .col-xs-offset-6 { - margin-right: 50%; - margin-left: 0; - } - .col-xs-offset-5 { - margin-right: 41.66666667%; - margin-left: 0; - } - .col-xs-offset-4 { - margin-right: 33.33333333%; - margin-left: 0; - } - .col-xs-offset-3 { - margin-right: 25%; - margin-left: 0; - } - .col-xs-offset-2 { - margin-right: 16.66666667%; - margin-left: 0; - } - .col-xs-offset-1 { - margin-right: 8.33333333%; - margin-left: 0; - } - .col-xs-offset-0 { - margin-right: 0%; - margin-left: 0; - } - @media (min-width: 768px) { - .col-sm-1, - .col-sm-2, - .col-sm-3, - .col-sm-4, - .col-sm-5, - .col-sm-6, - .col-sm-7, - .col-sm-8, - .col-sm-9, - .col-sm-10, - .col-sm-11, - .col-sm-12 { - float: right; - } - .col-sm-12 { - width: 100%; - } - .col-sm-11 { - width: 91.66666667%; - } - .col-sm-10 { - width: 83.33333333%; - } - .col-sm-9 { - width: 75%; - } - .col-sm-8 { - width: 66.66666667%; - } - .col-sm-7 { - width: 58.33333333%; - } - .col-sm-6 { - width: 50%; - } - .col-sm-5 { - width: 41.66666667%; - } - .col-sm-4 { - width: 33.33333333%; - } - .col-sm-3 { - width: 25%; - } - .col-sm-2 { - width: 16.66666667%; - } - .col-sm-1 { - width: 8.33333333%; - } - .col-sm-pull-12 { - left: 100%; - right: auto; - } - .col-sm-pull-11 { - left: 91.66666667%; - right: auto; - } - .col-sm-pull-10 { - left: 83.33333333%; - right: auto; - } - .col-sm-pull-9 { - left: 75%; - right: auto; - } - .col-sm-pull-8 { - left: 66.66666667%; - right: auto; - } - .col-sm-pull-7 { - left: 58.33333333%; - right: auto; - } - .col-sm-pull-6 { - left: 50%; - right: auto; - } - .col-sm-pull-5 { - left: 41.66666667%; - right: auto; - } - .col-sm-pull-4 { - left: 33.33333333%; - right: auto; - } - .col-sm-pull-3 { - left: 25%; - right: auto; - } - .col-sm-pull-2 { - left: 16.66666667%; - right: auto; - } - .col-sm-pull-1 { - left: 8.33333333%; - right: auto; - } - .col-sm-pull-0 { - left: auto; - right: auto; - } - .col-sm-push-12 { - right: 100%; - left: 0; - } - .col-sm-push-11 { - right: 91.66666667%; - left: 0; - } - .col-sm-push-10 { - right: 83.33333333%; - left: 0; - } - .col-sm-push-9 { - right: 75%; - left: 0; - } - .col-sm-push-8 { - right: 66.66666667%; - left: 0; - } - .col-sm-push-7 { - right: 58.33333333%; - left: 0; - } - .col-sm-push-6 { - right: 50%; - left: 0; - } - .col-sm-push-5 { - right: 41.66666667%; - left: 0; - } - .col-sm-push-4 { - right: 33.33333333%; - left: 0; - } - .col-sm-push-3 { - right: 25%; - left: 0; - } - .col-sm-push-2 { - right: 16.66666667%; - left: 0; - } - .col-sm-push-1 { - right: 8.33333333%; - left: 0; - } - .col-sm-push-0 { - right: auto; - left: 0; - } - .col-sm-offset-12 { - margin-right: 100%; - margin-left: 0; - } - .col-sm-offset-11 { - margin-right: 91.66666667%; - margin-left: 0; - } - .col-sm-offset-10 { - margin-right: 83.33333333%; - margin-left: 0; - } - .col-sm-offset-9 { - margin-right: 75%; - margin-left: 0; - } - .col-sm-offset-8 { - margin-right: 66.66666667%; - margin-left: 0; - } - .col-sm-offset-7 { - margin-right: 58.33333333%; - margin-left: 0; - } - .col-sm-offset-6 { - margin-right: 50%; - margin-left: 0; - } - .col-sm-offset-5 { - margin-right: 41.66666667%; - margin-left: 0; - } - .col-sm-offset-4 { - margin-right: 33.33333333%; - margin-left: 0; - } - .col-sm-offset-3 { - margin-right: 25%; - margin-left: 0; - } - .col-sm-offset-2 { - margin-right: 16.66666667%; - margin-left: 0; - } - .col-sm-offset-1 { - margin-right: 8.33333333%; - margin-left: 0; - } - .col-sm-offset-0 { - margin-right: 0%; - margin-left: 0; - } - } - @media (min-width: 992px) { - .col-md-1, - .col-md-2, - .col-md-3, - .col-md-4, - .col-md-5, - .col-md-6, - .col-md-7, - .col-md-8, - .col-md-9, - .col-md-10, - .col-md-11, - .col-md-12 { - float: right; - } - .col-md-12 { - width: 100%; - } - .col-md-11 { - width: 91.66666667%; - } - .col-md-10 { - width: 83.33333333%; - } - .col-md-9 { - width: 75%; - } - .col-md-8 { - width: 66.66666667%; - } - .col-md-7 { - width: 58.33333333%; - } - .col-md-6 { - width: 50%; - } - .col-md-5 { - width: 41.66666667%; - } - .col-md-4 { - width: 33.33333333%; - } - .col-md-3 { - width: 25%; - } - .col-md-2 { - width: 16.66666667%; - } - .col-md-1 { - width: 8.33333333%; - } - .col-md-pull-12 { - left: 100%; - right: auto; - } - .col-md-pull-11 { - left: 91.66666667%; - right: auto; - } - .col-md-pull-10 { - left: 83.33333333%; - right: auto; - } - .col-md-pull-9 { - left: 75%; - right: auto; - } - .col-md-pull-8 { - left: 66.66666667%; - right: auto; - } - .col-md-pull-7 { - left: 58.33333333%; - right: auto; - } - .col-md-pull-6 { - left: 50%; - right: auto; - } - .col-md-pull-5 { - left: 41.66666667%; - right: auto; - } - .col-md-pull-4 { - left: 33.33333333%; - right: auto; - } - .col-md-pull-3 { - left: 25%; - right: auto; - } - .col-md-pull-2 { - left: 16.66666667%; - right: auto; - } - .col-md-pull-1 { - left: 8.33333333%; - right: auto; - } - .col-md-pull-0 { - left: auto; - right: auto; - } - .col-md-push-12 { - right: 100%; - left: 0; - } - .col-md-push-11 { - right: 91.66666667%; - left: 0; - } - .col-md-push-10 { - right: 83.33333333%; - left: 0; - } - .col-md-push-9 { - right: 75%; - left: 0; - } - .col-md-push-8 { - right: 66.66666667%; - left: 0; - } - .col-md-push-7 { - right: 58.33333333%; - left: 0; - } - .col-md-push-6 { - right: 50%; - left: 0; - } - .col-md-push-5 { - right: 41.66666667%; - left: 0; - } - .col-md-push-4 { - right: 33.33333333%; - left: 0; - } - .col-md-push-3 { - right: 25%; - left: 0; - } - .col-md-push-2 { - right: 16.66666667%; - left: 0; - } - .col-md-push-1 { - right: 8.33333333%; - left: 0; - } - .col-md-push-0 { - right: auto; - left: 0; - } - .col-md-offset-12 { - margin-right: 100%; - margin-left: 0; - } - .col-md-offset-11 { - margin-right: 91.66666667%; - margin-left: 0; - } - .col-md-offset-10 { - margin-right: 83.33333333%; - margin-left: 0; - } - .col-md-offset-9 { - margin-right: 75%; - margin-left: 0; - } - .col-md-offset-8 { - margin-right: 66.66666667%; - margin-left: 0; - } - .col-md-offset-7 { - margin-right: 58.33333333%; - margin-left: 0; - } - .col-md-offset-6 { - margin-right: 50%; - margin-left: 0; - } - .col-md-offset-5 { - margin-right: 41.66666667%; - margin-left: 0; - } - .col-md-offset-4 { - margin-right: 33.33333333%; - margin-left: 0; - } - .col-md-offset-3 { - margin-right: 25%; - margin-left: 0; - } - .col-md-offset-2 { - margin-right: 16.66666667%; - margin-left: 0; - } - .col-md-offset-1 { - margin-right: 8.33333333%; - margin-left: 0; - } - .col-md-offset-0 { - margin-right: 0%; - margin-left: 0; - } - } - @media (min-width: 1200px) { - .col-lg-1, - .col-lg-2, - .col-lg-3, - .col-lg-4, - .col-lg-5, - .col-lg-6, - .col-lg-7, - .col-lg-8, - .col-lg-9, - .col-lg-10, - .col-lg-11, - .col-lg-12 { - float: right; - } - .col-lg-12 { - width: 100%; - } - .col-lg-11 { - width: 91.66666667%; - } - .col-lg-10 { - width: 83.33333333%; - } - .col-lg-9 { - width: 75%; - } - .col-lg-8 { - width: 66.66666667%; - } - .col-lg-7 { - width: 58.33333333%; - } - .col-lg-6 { - width: 50%; - } - .col-lg-5 { - width: 41.66666667%; - } - .col-lg-4 { - width: 33.33333333%; - } - .col-lg-3 { - width: 25%; - } - .col-lg-2 { - width: 16.66666667%; - } - .col-lg-1 { - width: 8.33333333%; - } - .col-lg-pull-12 { - left: 100%; - right: auto; - } - .col-lg-pull-11 { - left: 91.66666667%; - right: auto; - } - .col-lg-pull-10 { - left: 83.33333333%; - right: auto; - } - .col-lg-pull-9 { - left: 75%; - right: auto; - } - .col-lg-pull-8 { - left: 66.66666667%; - right: auto; - } - .col-lg-pull-7 { - left: 58.33333333%; - right: auto; - } - .col-lg-pull-6 { - left: 50%; - right: auto; - } - .col-lg-pull-5 { - left: 41.66666667%; - right: auto; - } - .col-lg-pull-4 { - left: 33.33333333%; - right: auto; - } - .col-lg-pull-3 { - left: 25%; - right: auto; - } - .col-lg-pull-2 { - left: 16.66666667%; - right: auto; - } - .col-lg-pull-1 { - left: 8.33333333%; - right: auto; - } - .col-lg-pull-0 { - left: auto; - right: auto; - } - .col-lg-push-12 { - right: 100%; - left: 0; - } - .col-lg-push-11 { - right: 91.66666667%; - left: 0; - } - .col-lg-push-10 { - right: 83.33333333%; - left: 0; - } - .col-lg-push-9 { - right: 75%; - left: 0; - } - .col-lg-push-8 { - right: 66.66666667%; - left: 0; - } - .col-lg-push-7 { - right: 58.33333333%; - left: 0; - } - .col-lg-push-6 { - right: 50%; - left: 0; - } - .col-lg-push-5 { - right: 41.66666667%; - left: 0; - } - .col-lg-push-4 { - right: 33.33333333%; - left: 0; - } - .col-lg-push-3 { - right: 25%; - left: 0; - } - .col-lg-push-2 { - right: 16.66666667%; - left: 0; - } - .col-lg-push-1 { - right: 8.33333333%; - left: 0; - } - .col-lg-push-0 { - right: auto; - left: 0; - } - .col-lg-offset-12 { - margin-right: 100%; - margin-left: 0; - } - .col-lg-offset-11 { - margin-right: 91.66666667%; - margin-left: 0; - } - .col-lg-offset-10 { - margin-right: 83.33333333%; - margin-left: 0; - } - .col-lg-offset-9 { - margin-right: 75%; - margin-left: 0; - } - .col-lg-offset-8 { - margin-right: 66.66666667%; - margin-left: 0; - } - .col-lg-offset-7 { - margin-right: 58.33333333%; - margin-left: 0; - } - .col-lg-offset-6 { - margin-right: 50%; - margin-left: 0; - } - .col-lg-offset-5 { - margin-right: 41.66666667%; - margin-left: 0; - } - .col-lg-offset-4 { - margin-right: 33.33333333%; - margin-left: 0; - } - .col-lg-offset-3 { - margin-right: 25%; - margin-left: 0; - } - .col-lg-offset-2 { - margin-right: 16.66666667%; - margin-left: 0; - } - .col-lg-offset-1 { - margin-right: 8.33333333%; - margin-left: 0; - } - .col-lg-offset-0 { - margin-right: 0%; - margin-left: 0; - } - } - caption { - text-align: right; - } - th:not(.mx-left-aligned) { - text-align: right; - } - @media screen and (max-width: 767px) { - .table-responsive > .table-bordered { - border: 0; - } - .table-responsive > .table-bordered > thead > tr > th:first-child, - .table-responsive > .table-bordered > tbody > tr > th:first-child, - .table-responsive > .table-bordered > tfoot > tr > th:first-child, - .table-responsive > .table-bordered > thead > tr > td:first-child, - .table-responsive > .table-bordered > tbody > tr > td:first-child, - .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-right: 0; - border-left: initial; - } - .table-responsive > .table-bordered > thead > tr > th:last-child, - .table-responsive > .table-bordered > tbody > tr > th:last-child, - .table-responsive > .table-bordered > tfoot > tr > th:last-child, - .table-responsive > .table-bordered > thead > tr > td:last-child, - .table-responsive > .table-bordered > tbody > tr > td:last-child, - .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-left: 0; - border-right: initial; - } - } - .radio label, - .checkbox label { - padding-right: 20px; - padding-left: initial; - } - .radio input[type='radio'], - .radio-inline input[type='radio'], - .checkbox input[type='checkbox'], - .checkbox-inline input[type='checkbox'] { - margin-right: -20px; - margin-left: auto; - } - .radio-inline, - .checkbox-inline { - padding-right: 20px; - padding-left: 0; - } - .radio-inline + .radio-inline, - .checkbox-inline + .checkbox-inline { - margin-right: 10px; - margin-left: 0; - } - .has-feedback .form-control { - padding-left: 42.5px; - padding-right: 12px; - } - .form-control-feedback { - left: 0; - right: auto; - } - @media (min-width: 768px) { - .form-inline label { - padding-right: 0; - padding-left: initial; - } - .form-inline .radio input[type='radio'], - .form-inline .checkbox input[type='checkbox'] { - margin-right: 0; - margin-left: auto; - } - } - @media (min-width: 768px) { - .form-horizontal .control-label { - text-align: left; - } - } - .form-horizontal .has-feedback .form-control-feedback { - left: 15px; - right: auto; - } - .caret { - margin-right: 2px; - margin-left: 0; - } - .dropdown-menu { - right: 0; - left: auto; - float: left; - text-align: right; - } - .dropdown-menu.pull-right { - left: 0; - right: auto; - float: right; - } - .dropdown-menu-right { - left: auto; - right: 0; - } - .dropdown-menu-left { - left: 0; - right: auto; - } - @media (min-width: 768px) { - .navbar-right .dropdown-menu { - left: auto; - right: 0; - } - .navbar-right .dropdown-menu-left { - left: 0; - right: auto; - } - } - .btn-group > .btn, - .btn-group-vertical > .btn { - float: right; - } - .btn-group .btn + .btn, - .btn-group .btn + .btn-group, - .btn-group .btn-group + .btn, - .btn-group .btn-group + .btn-group { - margin-right: -1px; - margin-left: 0px; - } - .btn-toolbar { - margin-right: -5px; - margin-left: 0px; - } - .btn-toolbar .btn-group, - .btn-toolbar .input-group { - float: right; - } - .btn-toolbar > .btn, - .btn-toolbar > .btn-group, - .btn-toolbar > .input-group { - margin-right: 5px; - margin-left: 0px; - } - .btn-group > .btn:first-child { - margin-right: 0; - } - .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; - border-bottom-left-radius: 0; - border-top-left-radius: 0; - } - .btn-group > .btn:last-child:not(:first-child), - .btn-group > .dropdown-toggle:not(:first-child) { - border-top-left-radius: 4px; - border-bottom-left-radius: 4px; - border-bottom-right-radius: 0; - border-top-right-radius: 0; - } - .btn-group > .btn-group { - float: right; - } - .btn-group.btn-group-justified > .btn, - .btn-group.btn-group-justified > .btn-group { - float: none; - } - .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-top-right-radius: 4px; - border-bottom-right-radius: 4px; - border-bottom-left-radius: 0; - border-top-left-radius: 0; - } - .btn-group > .btn-group:last-child > .btn:first-child { - border-top-left-radius: 4px; - border-bottom-left-radius: 4px; - border-bottom-right-radius: 0; - border-top-right-radius: 0; - } - .btn .caret { - margin-right: 0; - } - .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-right: 0; - } - .input-group .form-control { - float: right; - } - .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: 4px; - border-top-right-radius: 4px; - border-bottom-left-radius: 0; - border-top-left-radius: 0; - } - .input-group-addon:first-child { - border-left: 0px; - border-right: 1px solid; - } - .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: 4px; - border-top-left-radius: 4px; - border-bottom-right-radius: 0; - border-top-right-radius: 0; - } - .input-group-addon:last-child { - border-left-width: 1px; - border-left-style: solid; - border-right: 0px; - } - .input-group-btn > .btn + .btn { - margin-right: -1px; - margin-left: auto; - } - .input-group-btn:first-child > .btn, - .input-group-btn:first-child > .btn-group { - margin-left: -1px; - margin-right: auto; - } - .input-group-btn:last-child > .btn, - .input-group-btn:last-child > .btn-group { - margin-right: -1px; - margin-left: auto; - } - .nav { - padding-right: 0; - padding-left: initial; - } - .nav-tabs > li { - float: right; - } - .nav-tabs > li > a { - margin-left: auto; - margin-right: -2px; - border-radius: 4px 4px 0 0; - } - .nav-pills > li { - float: right; - } - .nav-pills > li > a { - border-radius: 4px; - } - .nav-pills > li + li { - margin-right: 2px; - margin-left: auto; - } - .nav-stacked > li { - float: none; - } - .nav-stacked > li + li { - margin-right: 0; - margin-left: auto; - } - .nav-justified > .dropdown .dropdown-menu { - right: auto; - } - .nav-tabs-justified > li > a { - margin-left: 0; - margin-right: auto; - } - @media (min-width: 768px) { - .nav-tabs-justified > li > a { - border-radius: 4px 4px 0 0; - } - } - @media (min-width: 768px) { - .navbar-header { - float: right; - } - } - .navbar-collapse { - padding-right: 15px; - padding-left: 15px; - } - .navbar-brand { - float: right; - } - @media (min-width: 768px) { - .navbar > .container .navbar-brand, - .navbar > .container-fluid .navbar-brand { - margin-right: -15px; - margin-left: auto; - } - } - .navbar-toggle { - float: left; - margin-left: 15px; - margin-right: auto; - } - @media (max-width: 767px) { - .navbar-nav .open .dropdown-menu > li > a, - .navbar-nav .open .dropdown-menu .dropdown-header { - padding: 5px 25px 5px 15px; - } - } - @media (min-width: 768px) { - .navbar-nav { - float: right; - } - .navbar-nav > li { - float: right; - } - } - @media (min-width: 768px) { - .navbar-left.flip { - float: right !important; - } - .navbar-right:last-child { - margin-left: -15px; - margin-right: auto; - } - .navbar-right.flip { - float: left !important; - margin-left: -15px; - margin-right: auto; - } - .navbar-right .dropdown-menu { - left: 0; - right: auto; - } - } - @media (min-width: 768px) { - .navbar-text { - float: right; - } - .navbar-text.navbar-right:last-child { - margin-left: 0; - margin-right: auto; - } - } - .pagination { - padding-right: 0; - } - .pagination > li > a, - .pagination > li > span { - float: right; - margin-right: -1px; - margin-left: 0px; - } - .pagination > li:first-child > a, - .pagination > li:first-child > span { - margin-left: 0; - border-bottom-right-radius: 4px; - border-top-right-radius: 4px; - border-bottom-left-radius: 0; - border-top-left-radius: 0; - } - .pagination > li:last-child > a, - .pagination > li:last-child > span { - margin-right: -1px; - border-bottom-left-radius: 4px; - border-top-left-radius: 4px; - border-bottom-right-radius: 0; - border-top-right-radius: 0; - } - .pager { - padding-right: 0; - padding-left: initial; - } - .pager .next > a, - .pager .next > span { - float: left; - } - .pager .previous > a, - .pager .previous > span { - float: right; - } - .nav-pills > li > a > .badge { - margin-left: 0px; - margin-right: 3px; - } - .list-group-item > .badge { - float: left; - } - .list-group-item > .badge + .badge { - margin-left: 5px; - margin-right: auto; - } - .alert-dismissable, - .alert-dismissible { - padding-left: 35px; - padding-right: 15px; - } - .alert-dismissable .close, - .alert-dismissible .close { - right: auto; - left: -21px; - } - .progress-bar { - float: right; - } - .media > .pull-left { - margin-right: 10px; - } - .media > .pull-left.flip { - margin-right: 0; - margin-left: 10px; - } - .media > .pull-right { - margin-left: 10px; - } - .media > .pull-right.flip { - margin-left: 0; - margin-right: 10px; - } - .media-right, - .media > .pull-right { - padding-right: 10px; - padding-left: initial; - } - .media-left, - .media > .pull-left { - padding-left: 10px; - padding-right: initial; - } - .media-list { - padding-right: 0; - padding-left: initial; - list-style: none; - } - .list-group { - padding-right: 0; - padding-left: initial; - } - .panel > .table:first-child > thead:first-child > tr:first-child td:first-child, - .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, - .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, - .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, - .panel > .table:first-child > thead:first-child > tr:first-child th:first-child, - .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, - .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, - .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { - border-top-right-radius: 3px; - border-top-left-radius: 0; - } - .panel > .table:first-child > thead:first-child > tr:first-child td:last-child, - .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, - .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, - .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, - .panel > .table:first-child > thead:first-child > tr:first-child th:last-child, - .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, - .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, - .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { - border-top-left-radius: 3px; - border-top-right-radius: 0; - } - .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, - .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, - .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, - .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, - .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, - .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, - .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, - .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { - border-bottom-left-radius: 3px; - border-top-right-radius: 0; - } - .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, - .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, - .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, - .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, - .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, - .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, - .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, - .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { - border-bottom-right-radius: 3px; - border-top-left-radius: 0; - } - .panel > .table-bordered > thead > tr > th:first-child, - .panel > .table-responsive > .table-bordered > thead > tr > th:first-child, - .panel > .table-bordered > tbody > tr > th:first-child, - .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, - .panel > .table-bordered > tfoot > tr > th:first-child, - .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, - .panel > .table-bordered > thead > tr > td:first-child, - .panel > .table-responsive > .table-bordered > thead > tr > td:first-child, - .panel > .table-bordered > tbody > tr > td:first-child, - .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, - .panel > .table-bordered > tfoot > tr > td:first-child, - .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-right: 0; - border-left: none; - } - .panel > .table-bordered > thead > tr > th:last-child, - .panel > .table-responsive > .table-bordered > thead > tr > th:last-child, - .panel > .table-bordered > tbody > tr > th:last-child, - .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, - .panel > .table-bordered > tfoot > tr > th:last-child, - .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, - .panel > .table-bordered > thead > tr > td:last-child, - .panel > .table-responsive > .table-bordered > thead > tr > td:last-child, - .panel > .table-bordered > tbody > tr > td:last-child, - .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, - .panel > .table-bordered > tfoot > tr > td:last-child, - .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: none; - border-left: 0; - } - .embed-responsive .embed-responsive-item, - .embed-responsive iframe, - .embed-responsive embed, - .embed-responsive object { - right: 0; - left: auto; - } - .close { - float: left; - } - .modal-footer { - text-align: left; - } - .modal-footer.flip { - text-align: right; - } - .modal-footer .btn + .btn { - margin-left: auto; - margin-right: 5px; - } - .modal-footer .btn-group .btn + .btn { - margin-right: -1px; - margin-left: auto; - } - .modal-footer .btn-block + .btn-block { - margin-right: 0; - margin-left: auto; - } - .popover { - left: auto; - text-align: right; - } - .popover.top > .arrow { - right: 50%; - left: auto; - margin-right: -11px; - margin-left: auto; - } - .popover.top > .arrow:after { - margin-right: -10px; - margin-left: auto; - } - .popover.bottom > .arrow { - right: 50%; - left: auto; - margin-right: -11px; - margin-left: auto; - } - .popover.bottom > .arrow:after { - margin-right: -10px; - margin-left: auto; - } - .carousel-control { - right: 0; - bottom: 0; - } - .carousel-control.left { - right: auto; - left: 0; - background-image: -webkit-linear-gradient( - left, - color-stop(rgba(0, 0, 0, 0.5) 0%), - color-stop(rgba(0, 0, 0, 0.0001) 100%) - ); - background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); - } - .carousel-control.right { - left: auto; - right: 0; - background-image: -webkit-linear-gradient( - left, - color-stop(rgba(0, 0, 0, 0.0001) 0%), - color-stop(rgba(0, 0, 0, 0.5) 100%) - ); - background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); - } - .carousel-control .icon-prev, - .carousel-control .glyphicon-chevron-left { - left: 50%; - right: auto; - margin-right: -10px; - } - .carousel-control .icon-next, - .carousel-control .glyphicon-chevron-right { - right: 50%; - left: auto; - margin-left: -10px; - } - .carousel-indicators { - right: 50%; - left: 0; - margin-right: -30%; - margin-left: 0; - padding-left: 0; - } - @media screen and (min-width: 768px) { - .carousel-control .glyphicon-chevron-left, - .carousel-control .icon-prev { - margin-left: 0; - margin-right: -15px; - } - .carousel-control .glyphicon-chevron-right, - .carousel-control .icon-next { - margin-left: 0; - margin-right: -15px; - } - .carousel-caption { - left: 20%; - right: 20%; - padding-bottom: 30px; - } - } - .pull-right.flip { - float: left !important; - } - .pull-left.flip { - float: right !important; - } -} diff --git a/theme/styles/web/sass/core/_legacy/bootstrap/_bootstrap.scss b/theme/styles/web/sass/core/_legacy/bootstrap/_bootstrap.scss deleted file mode 100644 index 90fc44f..0000000 --- a/theme/styles/web/sass/core/_legacy/bootstrap/_bootstrap.scss +++ /dev/null @@ -1,6820 +0,0 @@ -/*! - * Bootstrap v3.3.4 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ - -/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ -html { - font-family: sans-serif; - -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; -} -body { - margin: 0; -} -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; -} -audio, -canvas, -progress, -video { - display: inline-block; - vertical-align: baseline; -} -audio:not([controls]) { - display: none; - height: 0; -} -[hidden], -template { - display: none; -} -a { - background-color: transparent; -} -a:active, -a:hover { - outline: 0; -} -abbr[title] { - border-bottom: 1px dotted; -} -b, -strong { - font-weight: bold; -} -dfn { - font-style: italic; -} -h1 { - margin: 0.67em 0; - font-size: 2em; -} -mark { - color: #000; - background: #ff0; -} -small { - font-size: 80%; -} -sub, -sup { - position: relative; - font-size: 75%; - line-height: 0; - vertical-align: baseline; -} -sup { - top: -0.5em; -} -sub { - bottom: -0.25em; -} -img { - border: 0; -} -svg:not(:root) { - overflow: hidden; -} -figure { - margin: 1em 40px; -} -hr { - height: 0; - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; -} -pre { - overflow: auto; -} -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; -} -button, -input, -optgroup, -select, -textarea { - margin: 0; - font: inherit; - color: inherit; -} -button { - overflow: visible; -} -button, -select { - text-transform: none; -} -button, -html input[type='button'], -input[type='reset'], -input[type='submit'] { - -webkit-appearance: button; - cursor: pointer; -} -//button[disabled], -//html input[disabled] { -// cursor: default; -//} -button::-moz-focus-inner, -input::-moz-focus-inner { - padding: 0; - border: 0; -} -input { - line-height: normal; -} -input[type='checkbox'], -input[type='radio'] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - padding: 0; -} -input[type='number']::-webkit-inner-spin-button, -input[type='number']::-webkit-outer-spin-button { - height: auto; -} -input[type='search'] { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; - -webkit-appearance: textfield; -} -input[type='search']::-webkit-search-cancel-button, -input[type='search']::-webkit-search-decoration { - -webkit-appearance: none; -} -fieldset { - padding: 0.35em 0.625em 0.75em; - margin: 0 2px; - border: 1px solid #c0c0c0; -} -legend { - padding: 0; - border: 0; -} -textarea { - overflow: auto; -} -optgroup { - font-weight: bold; -} -table { - border-spacing: 0; - border-collapse: collapse; -} -td, -th { - padding: 0; -} -/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ -@media print { - *, - *:before, - *:after { - color: #000 !important; - text-shadow: none !important; - background: transparent !important; - -webkit-box-shadow: none !important; - box-shadow: none !important; - } - a, - a:visited { - text-decoration: underline; - } - a[href]:after { - content: ' (' attr(href) ')'; - } - abbr[title]:after { - content: ' (' attr(title) ')'; - } - a[href^='#']:after, - a[href^='javascript:']:after { - content: ''; - } - pre, - blockquote { - border: 1px solid #999; - - page-break-inside: avoid; - } - thead { - display: table-header-group; - } - tr, - img { - page-break-inside: avoid; - } - img { - max-width: 100% !important; - } - p, - h2, - h3 { - orphans: 3; - widows: 3; - } - h2, - h3 { - page-break-after: avoid; - } - select { - background: #fff !important; - } - .navbar { - display: none; - } - .btn > .caret, - .dropup > .btn > .caret { - border-top-color: #000 !important; - } - .label { - border: 1px solid #000; - } - .table { - border-collapse: collapse !important; - } - .table td, - .table th { - background-color: #fff !important; - } - .table-bordered th, - .table-bordered td { - border: 1px solid #ddd !important; - } -} -@font-face { - font-family: 'Glyphicons Halflings'; - src: url('./fonts/glyphicons-halflings-regular.woff2') format('woff2'), - url('./fonts/glyphicons-halflings-regular.woff') format('woff'); -} -.glyphicon { - position: relative; - top: 1px; - display: inline-block; - font-family: 'Glyphicons Halflings'; - font-style: normal; - font-weight: normal; - line-height: 1; - - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} -.glyphicon-asterisk:before { - content: '\2a'; -} -.glyphicon-plus:before { - content: '\2b'; -} -.glyphicon-euro:before, -.glyphicon-eur:before { - content: '\20ac'; -} -.glyphicon-minus:before { - content: '\2212'; -} -.glyphicon-cloud:before { - content: '\2601'; -} -.glyphicon-envelope:before { - content: '\2709'; -} -.glyphicon-pencil:before { - content: '\270f'; -} -.glyphicon-glass:before { - content: '\e001'; -} -.glyphicon-music:before { - content: '\e002'; -} -.glyphicon-search:before { - content: '\e003'; -} -.glyphicon-heart:before { - content: '\e005'; -} -.glyphicon-star:before { - content: '\e006'; -} -.glyphicon-star-empty:before { - content: '\e007'; -} -.glyphicon-user:before { - content: '\e008'; -} -.glyphicon-film:before { - content: '\e009'; -} -.glyphicon-th-large:before { - content: '\e010'; -} -.glyphicon-th:before { - content: '\e011'; -} -.glyphicon-th-list:before { - content: '\e012'; -} -.glyphicon-ok:before { - content: '\e013'; -} -.glyphicon-remove:before { - content: '\e014'; -} -.glyphicon-zoom-in:before { - content: '\e015'; -} -.glyphicon-zoom-out:before { - content: '\e016'; -} -.glyphicon-off:before { - content: '\e017'; -} -.glyphicon-signal:before { - content: '\e018'; -} -.glyphicon-cog:before { - content: '\e019'; -} -.glyphicon-trash:before { - content: '\e020'; -} -.glyphicon-home:before { - content: '\e021'; -} -.glyphicon-file:before { - content: '\e022'; -} -.glyphicon-time:before { - content: '\e023'; -} -.glyphicon-road:before { - content: '\e024'; -} -.glyphicon-download-alt:before { - content: '\e025'; -} -.glyphicon-download:before { - content: '\e026'; -} -.glyphicon-upload:before { - content: '\e027'; -} -.glyphicon-inbox:before { - content: '\e028'; -} -.glyphicon-play-circle:before { - content: '\e029'; -} -.glyphicon-repeat:before { - content: '\e030'; -} -.glyphicon-refresh:before { - content: '\e031'; -} -.glyphicon-list-alt:before { - content: '\e032'; -} -.glyphicon-lock:before { - content: '\e033'; -} -.glyphicon-flag:before { - content: '\e034'; -} -.glyphicon-headphones:before { - content: '\e035'; -} -.glyphicon-volume-off:before { - content: '\e036'; -} -.glyphicon-volume-down:before { - content: '\e037'; -} -.glyphicon-volume-up:before { - content: '\e038'; -} -.glyphicon-qrcode:before { - content: '\e039'; -} -.glyphicon-barcode:before { - content: '\e040'; -} -.glyphicon-tag:before { - content: '\e041'; -} -.glyphicon-tags:before { - content: '\e042'; -} -.glyphicon-book:before { - content: '\e043'; -} -.glyphicon-bookmark:before { - content: '\e044'; -} -.glyphicon-print:before { - content: '\e045'; -} -.glyphicon-camera:before { - content: '\e046'; -} -.glyphicon-font:before { - content: '\e047'; -} -.glyphicon-bold:before { - content: '\e048'; -} -.glyphicon-italic:before { - content: '\e049'; -} -.glyphicon-text-height:before { - content: '\e050'; -} -.glyphicon-text-width:before { - content: '\e051'; -} -.glyphicon-align-left:before { - content: '\e052'; -} -.glyphicon-align-center:before { - content: '\e053'; -} -.glyphicon-align-right:before { - content: '\e054'; -} -.glyphicon-align-justify:before { - content: '\e055'; -} -.glyphicon-list:before { - content: '\e056'; -} -.glyphicon-indent-left:before { - content: '\e057'; -} -.glyphicon-indent-right:before { - content: '\e058'; -} -.glyphicon-facetime-video:before { - content: '\e059'; -} -.glyphicon-picture:before { - content: '\e060'; -} -.glyphicon-map-marker:before { - content: '\e062'; -} -.glyphicon-adjust:before { - content: '\e063'; -} -.glyphicon-tint:before { - content: '\e064'; -} -.glyphicon-edit:before { - content: '\e065'; -} -.glyphicon-share:before { - content: '\e066'; -} -.glyphicon-check:before { - content: '\e067'; -} -.glyphicon-move:before { - content: '\e068'; -} -.glyphicon-step-backward:before { - content: '\e069'; -} -.glyphicon-fast-backward:before { - content: '\e070'; -} -.glyphicon-backward:before { - content: '\e071'; -} -.glyphicon-play:before { - content: '\e072'; -} -.glyphicon-pause:before { - content: '\e073'; -} -.glyphicon-stop:before { - content: '\e074'; -} -.glyphicon-forward:before { - content: '\e075'; -} -.glyphicon-fast-forward:before { - content: '\e076'; -} -.glyphicon-step-forward:before { - content: '\e077'; -} -.glyphicon-eject:before { - content: '\e078'; -} -.glyphicon-chevron-left:before { - content: '\e079'; -} -.glyphicon-chevron-right:before { - content: '\e080'; -} -.glyphicon-plus-sign:before { - content: '\e081'; -} -.glyphicon-minus-sign:before { - content: '\e082'; -} -.glyphicon-remove-sign:before { - content: '\e083'; -} -.glyphicon-ok-sign:before { - content: '\e084'; -} -.glyphicon-question-sign:before { - content: '\e085'; -} -.glyphicon-info-sign:before { - content: '\e086'; -} -.glyphicon-screenshot:before { - content: '\e087'; -} -.glyphicon-remove-circle:before { - content: '\e088'; -} -.glyphicon-ok-circle:before { - content: '\e089'; -} -.glyphicon-ban-circle:before { - content: '\e090'; -} -.glyphicon-arrow-left:before { - content: '\e091'; -} -.glyphicon-arrow-right:before { - content: '\e092'; -} -.glyphicon-arrow-up:before { - content: '\e093'; -} -.glyphicon-arrow-down:before { - content: '\e094'; -} -.glyphicon-share-alt:before { - content: '\e095'; -} -.glyphicon-resize-full:before { - content: '\e096'; -} -.glyphicon-resize-small:before { - content: '\e097'; -} -.glyphicon-exclamation-sign:before { - content: '\e101'; -} -.glyphicon-gift:before { - content: '\e102'; -} -.glyphicon-leaf:before { - content: '\e103'; -} -.glyphicon-fire:before { - content: '\e104'; -} -.glyphicon-eye-open:before { - content: '\e105'; -} -.glyphicon-eye-close:before { - content: '\e106'; -} -.glyphicon-warning-sign:before { - content: '\e107'; -} -.glyphicon-plane:before { - content: '\e108'; -} -.glyphicon-calendar:before { - content: '\e109'; -} -.glyphicon-random:before { - content: '\e110'; -} -.glyphicon-comment:before { - content: '\e111'; -} -.glyphicon-magnet:before { - content: '\e112'; -} -.glyphicon-chevron-up:before { - content: '\e113'; -} -.glyphicon-chevron-down:before { - content: '\e114'; -} -.glyphicon-retweet:before { - content: '\e115'; -} -.glyphicon-shopping-cart:before { - content: '\e116'; -} -.glyphicon-folder-close:before { - content: '\e117'; -} -.glyphicon-folder-open:before { - content: '\e118'; -} -.glyphicon-resize-vertical:before { - content: '\e119'; -} -.glyphicon-resize-horizontal:before { - content: '\e120'; -} -.glyphicon-hdd:before { - content: '\e121'; -} -.glyphicon-bullhorn:before { - content: '\e122'; -} -.glyphicon-bell:before { - content: '\e123'; -} -.glyphicon-certificate:before { - content: '\e124'; -} -.glyphicon-thumbs-up:before { - content: '\e125'; -} -.glyphicon-thumbs-down:before { - content: '\e126'; -} -.glyphicon-hand-right:before { - content: '\e127'; -} -.glyphicon-hand-left:before { - content: '\e128'; -} -.glyphicon-hand-up:before { - content: '\e129'; -} -.glyphicon-hand-down:before { - content: '\e130'; -} -.glyphicon-circle-arrow-right:before { - content: '\e131'; -} -.glyphicon-circle-arrow-left:before { - content: '\e132'; -} -.glyphicon-circle-arrow-up:before { - content: '\e133'; -} -.glyphicon-circle-arrow-down:before { - content: '\e134'; -} -.glyphicon-globe:before { - content: '\e135'; -} -.glyphicon-wrench:before { - content: '\e136'; -} -.glyphicon-tasks:before { - content: '\e137'; -} -.glyphicon-filter:before { - content: '\e138'; -} -.glyphicon-briefcase:before { - content: '\e139'; -} -.glyphicon-fullscreen:before { - content: '\e140'; -} -.glyphicon-dashboard:before { - content: '\e141'; -} -.glyphicon-paperclip:before { - content: '\e142'; -} -.glyphicon-heart-empty:before { - content: '\e143'; -} -.glyphicon-link:before { - content: '\e144'; -} -.glyphicon-phone:before { - content: '\e145'; -} -.glyphicon-pushpin:before { - content: '\e146'; -} -.glyphicon-usd:before { - content: '\e148'; -} -.glyphicon-gbp:before { - content: '\e149'; -} -.glyphicon-sort:before { - content: '\e150'; -} -.glyphicon-sort-by-alphabet:before { - content: '\e151'; -} -.glyphicon-sort-by-alphabet-alt:before { - content: '\e152'; -} -.glyphicon-sort-by-order:before { - content: '\e153'; -} -.glyphicon-sort-by-order-alt:before { - content: '\e154'; -} -.glyphicon-sort-by-attributes:before { - content: '\e155'; -} -.glyphicon-sort-by-attributes-alt:before { - content: '\e156'; -} -.glyphicon-unchecked:before { - content: '\e157'; -} -.glyphicon-expand:before { - content: '\e158'; -} -.glyphicon-collapse-down:before { - content: '\e159'; -} -.glyphicon-collapse-up:before { - content: '\e160'; -} -.glyphicon-log-in:before { - content: '\e161'; -} -.glyphicon-flash:before { - content: '\e162'; -} -.glyphicon-log-out:before { - content: '\e163'; -} -.glyphicon-new-window:before { - content: '\e164'; -} -.glyphicon-record:before { - content: '\e165'; -} -.glyphicon-save:before { - content: '\e166'; -} -.glyphicon-open:before { - content: '\e167'; -} -.glyphicon-saved:before { - content: '\e168'; -} -.glyphicon-import:before { - content: '\e169'; -} -.glyphicon-export:before { - content: '\e170'; -} -.glyphicon-send:before { - content: '\e171'; -} -.glyphicon-floppy-disk:before { - content: '\e172'; -} -.glyphicon-floppy-saved:before { - content: '\e173'; -} -.glyphicon-floppy-remove:before { - content: '\e174'; -} -.glyphicon-floppy-save:before { - content: '\e175'; -} -.glyphicon-floppy-open:before { - content: '\e176'; -} -.glyphicon-credit-card:before { - content: '\e177'; -} -.glyphicon-transfer:before { - content: '\e178'; -} -.glyphicon-cutlery:before { - content: '\e179'; -} -.glyphicon-header:before { - content: '\e180'; -} -.glyphicon-compressed:before { - content: '\e181'; -} -.glyphicon-earphone:before { - content: '\e182'; -} -.glyphicon-phone-alt:before { - content: '\e183'; -} -.glyphicon-tower:before { - content: '\e184'; -} -.glyphicon-stats:before { - content: '\e185'; -} -.glyphicon-sd-video:before { - content: '\e186'; -} -.glyphicon-hd-video:before { - content: '\e187'; -} -.glyphicon-subtitles:before { - content: '\e188'; -} -.glyphicon-sound-stereo:before { - content: '\e189'; -} -.glyphicon-sound-dolby:before { - content: '\e190'; -} -.glyphicon-sound-5-1:before { - content: '\e191'; -} -.glyphicon-sound-6-1:before { - content: '\e192'; -} -.glyphicon-sound-7-1:before { - content: '\e193'; -} -.glyphicon-copyright-mark:before { - content: '\e194'; -} -.glyphicon-registration-mark:before { - content: '\e195'; -} -.glyphicon-cloud-download:before { - content: '\e197'; -} -.glyphicon-cloud-upload:before { - content: '\e198'; -} -.glyphicon-tree-conifer:before { - content: '\e199'; -} -.glyphicon-tree-deciduous:before { - content: '\e200'; -} -.glyphicon-cd:before { - content: '\e201'; -} -.glyphicon-save-file:before { - content: '\e202'; -} -.glyphicon-open-file:before { - content: '\e203'; -} -.glyphicon-level-up:before { - content: '\e204'; -} -.glyphicon-copy:before { - content: '\e205'; -} -.glyphicon-paste:before { - content: '\e206'; -} -.glyphicon-alert:before { - content: '\e209'; -} -.glyphicon-equalizer:before { - content: '\e210'; -} -.glyphicon-king:before { - content: '\e211'; -} -.glyphicon-queen:before { - content: '\e212'; -} -.glyphicon-pawn:before { - content: '\e213'; -} -.glyphicon-bishop:before { - content: '\e214'; -} -.glyphicon-knight:before { - content: '\e215'; -} -.glyphicon-baby-formula:before { - content: '\e216'; -} -.glyphicon-tent:before { - content: '\26fa'; -} -.glyphicon-blackboard:before { - content: '\e218'; -} -.glyphicon-bed:before { - content: '\e219'; -} -.glyphicon-apple:before { - content: '\f8ff'; -} -.glyphicon-erase:before { - content: '\e221'; -} -.glyphicon-hourglass:before { - content: '\231b'; -} -.glyphicon-lamp:before { - content: '\e223'; -} -.glyphicon-duplicate:before { - content: '\e224'; -} -.glyphicon-piggy-bank:before { - content: '\e225'; -} -.glyphicon-scissors:before { - content: '\e226'; -} -.glyphicon-bitcoin:before { - content: '\e227'; -} -.glyphicon-btc:before { - content: '\e227'; -} -.glyphicon-xbt:before { - content: '\e227'; -} -.glyphicon-yen:before { - content: '\00a5'; -} -.glyphicon-jpy:before { - content: '\00a5'; -} -.glyphicon-ruble:before { - content: '\20bd'; -} -.glyphicon-rub:before { - content: '\20bd'; -} -.glyphicon-scale:before { - content: '\e230'; -} -.glyphicon-ice-lolly:before { - content: '\e231'; -} -.glyphicon-ice-lolly-tasted:before { - content: '\e232'; -} -.glyphicon-education:before { - content: '\e233'; -} -.glyphicon-option-horizontal:before { - content: '\e234'; -} -.glyphicon-option-vertical:before { - content: '\e235'; -} -.glyphicon-menu-hamburger:before { - content: '\e236'; -} -.glyphicon-modal-window:before { - content: '\e237'; -} -.glyphicon-oil:before { - content: '\e238'; -} -.glyphicon-grain:before { - content: '\e239'; -} -.glyphicon-sunglasses:before { - content: '\e240'; -} -.glyphicon-text-size:before { - content: '\e241'; -} -.glyphicon-text-color:before { - content: '\e242'; -} -.glyphicon-text-background:before { - content: '\e243'; -} -.glyphicon-object-align-top:before { - content: '\e244'; -} -.glyphicon-object-align-bottom:before { - content: '\e245'; -} -.glyphicon-object-align-horizontal:before { - content: '\e246'; -} -.glyphicon-object-align-left:before { - content: '\e247'; -} -.glyphicon-object-align-vertical:before { - content: '\e248'; -} -.glyphicon-object-align-right:before { - content: '\e249'; -} -.glyphicon-triangle-right:before { - content: '\e250'; -} -.glyphicon-triangle-left:before { - content: '\e251'; -} -.glyphicon-triangle-bottom:before { - content: '\e252'; -} -.glyphicon-triangle-top:before { - content: '\e253'; -} -.glyphicon-console:before { - content: '\e254'; -} -.glyphicon-superscript:before { - content: '\e255'; -} -.glyphicon-subscript:before { - content: '\e256'; -} -.glyphicon-menu-left:before { - content: '\e257'; -} -.glyphicon-menu-right:before { - content: '\e258'; -} -.glyphicon-menu-down:before { - content: '\e259'; -} -.glyphicon-menu-up:before { - content: '\e260'; -} -* { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -*:before, -*:after { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -html { - font-size: 10px; - - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -} -body { - font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; - font-size: 14px; - line-height: 1.42857143; - color: #333; - background-color: #fff; -} -input, -button, -select, -textarea { - font-family: inherit; - font-size: inherit; - line-height: inherit; -} -a { - color: #337ab7; - text-decoration: none; -} -a:hover, -a:focus { - color: #23527c; - text-decoration: underline; -} -a:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -figure { - margin: 0; -} -img { - vertical-align: middle; -} -.img-responsive, -.thumbnail > img, -.thumbnail a > img, -.carousel-inner > .item > img, -.carousel-inner > .item > a > img { - display: block; - max-width: 100%; - height: auto; -} -.img-rounded { - border-radius: 6px; -} -.img-thumbnail { - display: inline-block; - max-width: 100%; - height: auto; - padding: 4px; - line-height: 1.42857143; - background-color: #fff; - border: 1px solid #ddd; - border-radius: 4px; - -webkit-transition: all 0.2s ease-in-out; - -o-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; -} -.img-circle { - border-radius: 50%; -} -hr { - margin-top: 20px; - margin-bottom: 20px; - border: 0; - border-top: 1px solid #eee; -} -.sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; -} -.sr-only-focusable:active, -.sr-only-focusable:focus { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; -} -[role='button'] { - cursor: pointer; -} -h1, -h2, -h3, -h4, -h5, -h6, -.h1, -.h2, -.h3, -.h4, -.h5, -.h6 { - font-family: inherit; - font-weight: 500; - line-height: 1.1; - color: inherit; -} -h1 small, -h2 small, -h3 small, -h4 small, -h5 small, -h6 small, -.h1 small, -.h2 small, -.h3 small, -.h4 small, -.h5 small, -.h6 small, -h1 .small, -h2 .small, -h3 .small, -h4 .small, -h5 .small, -h6 .small, -.h1 .small, -.h2 .small, -.h3 .small, -.h4 .small, -.h5 .small, -.h6 .small { - font-weight: normal; - line-height: 1; - color: #777; -} -h1, -.h1, -h2, -.h2, -h3, -.h3 { - margin-top: 20px; - margin-bottom: 10px; -} -h1 small, -.h1 small, -h2 small, -.h2 small, -h3 small, -.h3 small, -h1 .small, -.h1 .small, -h2 .small, -.h2 .small, -h3 .small, -.h3 .small { - font-size: 65%; -} -h4, -.h4, -h5, -.h5, -h6, -.h6 { - margin-top: 10px; - margin-bottom: 10px; -} -h4 small, -.h4 small, -h5 small, -.h5 small, -h6 small, -.h6 small, -h4 .small, -.h4 .small, -h5 .small, -.h5 .small, -h6 .small, -.h6 .small { - font-size: 75%; -} -h1, -.h1 { - font-size: 36px; -} -h2, -.h2 { - font-size: 30px; -} -h3, -.h3 { - font-size: 24px; -} -h4, -.h4 { - font-size: 18px; -} -h5, -.h5 { - font-size: 14px; -} -h6, -.h6 { - font-size: 12px; -} -p { - margin: 0 0 10px; -} -.lead { - margin-bottom: 20px; - font-size: 16px; - font-weight: 300; - line-height: 1.4; -} -@media (min-width: 768px) { - .lead { - font-size: 21px; - } -} -small, -.small { - font-size: 85%; -} -mark, -.mark { - padding: 0.2em; - background-color: #fcf8e3; -} -.text-left { - text-align: left; -} -.text-right { - text-align: right; -} -.text-center { - text-align: center; -} -.text-justify { - text-align: justify; -} -.text-nowrap { - white-space: nowrap; -} -.text-lowercase { - text-transform: lowercase; -} -.text-uppercase { - text-transform: uppercase; -} -.text-capitalize { - text-transform: capitalize; -} -.text-muted { - color: #777; -} -.text-primary { - color: #337ab7; -} -a.text-primary:hover { - color: #286090; -} -.text-success { - color: #3c763d; -} -a.text-success:hover { - color: #2b542c; -} -.text-info { - color: #31708f; -} -a.text-info:hover { - color: #245269; -} -.text-warning { - color: #8a6d3b; -} -a.text-warning:hover { - color: #66512c; -} -.text-danger { - color: #a94442; -} -a.text-danger:hover { - color: #843534; -} -.bg-primary { - color: #fff; - background-color: #337ab7; -} -a.bg-primary:hover { - background-color: #286090; -} -.bg-success { - background-color: #dff0d8; -} -a.bg-success:hover { - background-color: #c1e2b3; -} -.bg-info { - background-color: #d9edf7; -} -a.bg-info:hover { - background-color: #afd9ee; -} -.bg-warning { - background-color: #fcf8e3; -} -a.bg-warning:hover { - background-color: #f7ecb5; -} -.bg-danger { - background-color: #f2dede; -} -a.bg-danger:hover { - background-color: #e4b9b9; -} -.page-header { - padding-bottom: 9px; - margin: 40px 0 20px; - border-bottom: 1px solid #eee; -} -ul, -ol { - margin-top: 0; - margin-bottom: 10px; -} -ul ul, -ol ul, -ul ol, -ol ol { - margin-bottom: 0; -} -.list-unstyled { - padding-left: 0; - list-style: none; -} -.list-inline { - padding-left: 0; - margin-left: -5px; - list-style: none; -} -.list-inline > li { - display: inline-block; - padding-right: 5px; - padding-left: 5px; -} -dl { - margin-top: 0; - margin-bottom: 20px; -} -dt, -dd { - line-height: 1.42857143; -} -dt { - font-weight: bold; -} -dd { - margin-left: 0; -} -@media (min-width: 768px) { - .dl-horizontal dt { - float: left; - width: 160px; - overflow: hidden; - clear: left; - text-align: right; - text-overflow: ellipsis; - white-space: nowrap; - } - .dl-horizontal dd { - margin-left: 180px; - } -} -abbr[title], -abbr[data-original-title] { - cursor: help; - border-bottom: 1px dotted #777; -} -.initialism { - font-size: 90%; - text-transform: uppercase; -} -blockquote { - padding: 10px 20px; - margin: 0 0 20px; - font-size: 17.5px; - border-left: 5px solid #eee; -} -blockquote p:last-child, -blockquote ul:last-child, -blockquote ol:last-child { - margin-bottom: 0; -} -blockquote footer, -blockquote small, -blockquote .small { - display: block; - font-size: 80%; - line-height: 1.42857143; - color: #777; -} -blockquote footer:before, -blockquote small:before, -blockquote .small:before { - content: '\2014 \00A0'; -} -.blockquote-reverse, -blockquote.pull-right { - padding-right: 15px; - padding-left: 0; - text-align: right; - border-right: 5px solid #eee; - border-left: 0; -} -.blockquote-reverse footer:before, -blockquote.pull-right footer:before, -.blockquote-reverse small:before, -blockquote.pull-right small:before, -.blockquote-reverse .small:before, -blockquote.pull-right .small:before { - content: ''; -} -.blockquote-reverse footer:after, -blockquote.pull-right footer:after, -.blockquote-reverse small:after, -blockquote.pull-right small:after, -.blockquote-reverse .small:after, -blockquote.pull-right .small:after { - content: '\00A0 \2014'; -} -address { - margin-bottom: 20px; - font-style: normal; - line-height: 1.42857143; -} -code, -kbd, -pre, -samp { - font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; -} -code { - padding: 2px 4px; - font-size: 90%; - color: #c7254e; - background-color: #f9f2f4; - border-radius: 4px; -} -kbd { - padding: 2px 4px; - font-size: 90%; - color: #fff; - background-color: #333; - border-radius: 3px; - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); -} -kbd kbd { - padding: 0; - font-size: 100%; - font-weight: bold; - -webkit-box-shadow: none; - box-shadow: none; -} -pre { - display: block; - padding: 9.5px; - margin: 0 0 10px; - font-size: 13px; - line-height: 1.42857143; - color: #333; - word-break: break-all; - word-wrap: break-word; - background-color: #f5f5f5; - border: 1px solid #ccc; - border-radius: 4px; -} -pre code { - padding: 0; - font-size: inherit; - color: inherit; - white-space: pre-wrap; - background-color: transparent; - border-radius: 0; -} -.pre-scrollable { - max-height: 340px; - overflow-y: scroll; -} -.container { - padding-right: 15px; - padding-left: 15px; - margin-right: auto; - margin-left: auto; -} -@media (min-width: 768px) { - .container { - width: 750px; - } -} -@media (min-width: 992px) { - .container { - width: 970px; - } -} -@media (min-width: 1200px) { - .container { - width: 1170px; - } -} -.container-fluid { - padding-right: 15px; - padding-left: 15px; - margin-right: auto; - margin-left: auto; -} -.row { - margin-right: -15px; - margin-left: -15px; -} -//.col-xs-1, -//.col-sm-1, -//.col-md-1, -//.col-lg-1, -//.col-xs-2, -//.col-sm-2, -//.col-md-2, -//.col-lg-2, -//.col-xs-3, -//.col-sm-3, -//.col-md-3, -//.col-lg-3, -//.col-xs-4, -//.col-sm-4, -//.col-md-4, -//.col-lg-4, -//.col-xs-5, -//.col-sm-5, -//.col-md-5, -//.col-lg-5, -//.col-xs-6, -//.col-sm-6, -//.col-md-6, -//.col-lg-6, -//.col-xs-7, -//.col-sm-7, -//.col-md-7, -//.col-lg-7, -//.col-xs-8, -//.col-sm-8, -//.col-md-8, -//.col-lg-8, -//.col-xs-9, -//.col-sm-9, -//.col-md-9, -//.col-lg-9, -//.col-xs-10, -//.col-sm-10, -//.col-md-10, -//.col-lg-10, -//.col-xs-11, -//.col-sm-11, -//.col-md-11, -//.col-lg-11, -//.col-xs-12, -//.col-sm-12, -//.col-md-12, -//.col-lg-12 { -// position: relative; -// min-height: 1px; -// padding-right: 15px; -// padding-left: 15px; -//} -//.col-xs-1, -//.col-xs-2, -//.col-xs-3, -//.col-xs-4, -//.col-xs-5, -//.col-xs-6, -//.col-xs-7, -//.col-xs-8, -//.col-xs-9, -//.col-xs-10, -//.col-xs-11, -//.col-xs-12 { -// float: left; -//} -//.col-xs-12 { -// width: 100%; -//} -//.col-xs-11 { -// width: 91.66666667%; -//} -//.col-xs-10 { -// width: 83.33333333%; -//} -//.col-xs-9 { -// width: 75%; -//} -//.col-xs-8 { -// width: 66.66666667%; -//} -//.col-xs-7 { -// width: 58.33333333%; -//} -//.col-xs-6 { -// width: 50%; -//} -//.col-xs-5 { -// width: 41.66666667%; -//} -//.col-xs-4 { -// width: 33.33333333%; -//} -//.col-xs-3 { -// width: 25%; -//} -//.col-xs-2 { -// width: 16.66666667%; -//} -//.col-xs-1 { -// width: 8.33333333%; -//} -//.col-xs-pull-12 { -// right: 100%; -//} -//.col-xs-pull-11 { -// right: 91.66666667%; -//} -//.col-xs-pull-10 { -// right: 83.33333333%; -//} -//.col-xs-pull-9 { -// right: 75%; -//} -//.col-xs-pull-8 { -// right: 66.66666667%; -//} -//.col-xs-pull-7 { -// right: 58.33333333%; -//} -//.col-xs-pull-6 { -// right: 50%; -//} -//.col-xs-pull-5 { -// right: 41.66666667%; -//} -//.col-xs-pull-4 { -// right: 33.33333333%; -//} -//.col-xs-pull-3 { -// right: 25%; -//} -//.col-xs-pull-2 { -// right: 16.66666667%; -//} -//.col-xs-pull-1 { -// right: 8.33333333%; -//} -//.col-xs-pull-0 { -// right: auto; -//} -//.col-xs-push-12 { -// left: 100%; -//} -//.col-xs-push-11 { -// left: 91.66666667%; -//} -//.col-xs-push-10 { -// left: 83.33333333%; -//} -//.col-xs-push-9 { -// left: 75%; -//} -//.col-xs-push-8 { -// left: 66.66666667%; -//} -//.col-xs-push-7 { -// left: 58.33333333%; -//} -//.col-xs-push-6 { -// left: 50%; -//} -//.col-xs-push-5 { -// left: 41.66666667%; -//} -//.col-xs-push-4 { -// left: 33.33333333%; -//} -//.col-xs-push-3 { -// left: 25%; -//} -//.col-xs-push-2 { -// left: 16.66666667%; -//} -//.col-xs-push-1 { -// left: 8.33333333%; -//} -//.col-xs-push-0 { -// left: auto; -//} -//.col-xs-offset-12 { -// margin-left: 100%; -//} -//.col-xs-offset-11 { -// margin-left: 91.66666667%; -//} -//.col-xs-offset-10 { -// margin-left: 83.33333333%; -//} -//.col-xs-offset-9 { -// margin-left: 75%; -//} -//.col-xs-offset-8 { -// margin-left: 66.66666667%; -//} -//.col-xs-offset-7 { -// margin-left: 58.33333333%; -//} -//.col-xs-offset-6 { -// margin-left: 50%; -//} -//.col-xs-offset-5 { -// margin-left: 41.66666667%; -//} -//.col-xs-offset-4 { -// margin-left: 33.33333333%; -//} -//.col-xs-offset-3 { -// margin-left: 25%; -//} -//.col-xs-offset-2 { -// margin-left: 16.66666667%; -//} -//.col-xs-offset-1 { -// margin-left: 8.33333333%; -//} -//.col-xs-offset-0 { -// margin-left: 0; -//} -//@media (min-width: 768px) { -// .col-sm-1, -// .col-sm-2, -// .col-sm-3, -// .col-sm-4, -// .col-sm-5, -// .col-sm-6, -// .col-sm-7, -// .col-sm-8, -// .col-sm-9, -// .col-sm-10, -// .col-sm-11, -// .col-sm-12 { -// float: left; -// } -// .col-sm-12 { -// width: 100%; -// } -// .col-sm-11 { -// width: 91.66666667%; -// } -// .col-sm-10 { -// width: 83.33333333%; -// } -// .col-sm-9 { -// width: 75%; -// } -// .col-sm-8 { -// width: 66.66666667%; -// } -// .col-sm-7 { -// width: 58.33333333%; -// } -// .col-sm-6 { -// width: 50%; -// } -// .col-sm-5 { -// width: 41.66666667%; -// } -// .col-sm-4 { -// width: 33.33333333%; -// } -// .col-sm-3 { -// width: 25%; -// } -// .col-sm-2 { -// width: 16.66666667%; -// } -// .col-sm-1 { -// width: 8.33333333%; -// } -// .col-sm-pull-12 { -// right: 100%; -// } -// .col-sm-pull-11 { -// right: 91.66666667%; -// } -// .col-sm-pull-10 { -// right: 83.33333333%; -// } -// .col-sm-pull-9 { -// right: 75%; -// } -// .col-sm-pull-8 { -// right: 66.66666667%; -// } -// .col-sm-pull-7 { -// right: 58.33333333%; -// } -// .col-sm-pull-6 { -// right: 50%; -// } -// .col-sm-pull-5 { -// right: 41.66666667%; -// } -// .col-sm-pull-4 { -// right: 33.33333333%; -// } -// .col-sm-pull-3 { -// right: 25%; -// } -// .col-sm-pull-2 { -// right: 16.66666667%; -// } -// .col-sm-pull-1 { -// right: 8.33333333%; -// } -// .col-sm-pull-0 { -// right: auto; -// } -// .col-sm-push-12 { -// left: 100%; -// } -// .col-sm-push-11 { -// left: 91.66666667%; -// } -// .col-sm-push-10 { -// left: 83.33333333%; -// } -// .col-sm-push-9 { -// left: 75%; -// } -// .col-sm-push-8 { -// left: 66.66666667%; -// } -// .col-sm-push-7 { -// left: 58.33333333%; -// } -// .col-sm-push-6 { -// left: 50%; -// } -// .col-sm-push-5 { -// left: 41.66666667%; -// } -// .col-sm-push-4 { -// left: 33.33333333%; -// } -// .col-sm-push-3 { -// left: 25%; -// } -// .col-sm-push-2 { -// left: 16.66666667%; -// } -// .col-sm-push-1 { -// left: 8.33333333%; -// } -// .col-sm-push-0 { -// left: auto; -// } -// .col-sm-offset-12 { -// margin-left: 100%; -// } -// .col-sm-offset-11 { -// margin-left: 91.66666667%; -// } -// .col-sm-offset-10 { -// margin-left: 83.33333333%; -// } -// .col-sm-offset-9 { -// margin-left: 75%; -// } -// .col-sm-offset-8 { -// margin-left: 66.66666667%; -// } -// .col-sm-offset-7 { -// margin-left: 58.33333333%; -// } -// .col-sm-offset-6 { -// margin-left: 50%; -// } -// .col-sm-offset-5 { -// margin-left: 41.66666667%; -// } -// .col-sm-offset-4 { -// margin-left: 33.33333333%; -// } -// .col-sm-offset-3 { -// margin-left: 25%; -// } -// .col-sm-offset-2 { -// margin-left: 16.66666667%; -// } -// .col-sm-offset-1 { -// margin-left: 8.33333333%; -// } -// .col-sm-offset-0 { -// margin-left: 0; -// } -//} -//@media (min-width: 992px) { -// .col-md-1, -// .col-md-2, -// .col-md-3, -// .col-md-4, -// .col-md-5, -// .col-md-6, -// .col-md-7, -// .col-md-8, -// .col-md-9, -// .col-md-10, -// .col-md-11, -// .col-md-12 { -// float: left; -// } -// .col-md-12 { -// width: 100%; -// } -// .col-md-11 { -// width: 91.66666667%; -// } -// .col-md-10 { -// width: 83.33333333%; -// } -// .col-md-9 { -// width: 75%; -// } -// .col-md-8 { -// width: 66.66666667%; -// } -// .col-md-7 { -// width: 58.33333333%; -// } -// .col-md-6 { -// width: 50%; -// } -// .col-md-5 { -// width: 41.66666667%; -// } -// .col-md-4 { -// width: 33.33333333%; -// } -// .col-md-3 { -// width: 25%; -// } -// .col-md-2 { -// width: 16.66666667%; -// } -// .col-md-1 { -// width: 8.33333333%; -// } -// .col-md-pull-12 { -// right: 100%; -// } -// .col-md-pull-11 { -// right: 91.66666667%; -// } -// .col-md-pull-10 { -// right: 83.33333333%; -// } -// .col-md-pull-9 { -// right: 75%; -// } -// .col-md-pull-8 { -// right: 66.66666667%; -// } -// .col-md-pull-7 { -// right: 58.33333333%; -// } -// .col-md-pull-6 { -// right: 50%; -// } -// .col-md-pull-5 { -// right: 41.66666667%; -// } -// .col-md-pull-4 { -// right: 33.33333333%; -// } -// .col-md-pull-3 { -// right: 25%; -// } -// .col-md-pull-2 { -// right: 16.66666667%; -// } -// .col-md-pull-1 { -// right: 8.33333333%; -// } -// .col-md-pull-0 { -// right: auto; -// } -// .col-md-push-12 { -// left: 100%; -// } -// .col-md-push-11 { -// left: 91.66666667%; -// } -// .col-md-push-10 { -// left: 83.33333333%; -// } -// .col-md-push-9 { -// left: 75%; -// } -// .col-md-push-8 { -// left: 66.66666667%; -// } -// .col-md-push-7 { -// left: 58.33333333%; -// } -// .col-md-push-6 { -// left: 50%; -// } -// .col-md-push-5 { -// left: 41.66666667%; -// } -// .col-md-push-4 { -// left: 33.33333333%; -// } -// .col-md-push-3 { -// left: 25%; -// } -// .col-md-push-2 { -// left: 16.66666667%; -// } -// .col-md-push-1 { -// left: 8.33333333%; -// } -// .col-md-push-0 { -// left: auto; -// } -// .col-md-offset-12 { -// margin-left: 100%; -// } -// .col-md-offset-11 { -// margin-left: 91.66666667%; -// } -// .col-md-offset-10 { -// margin-left: 83.33333333%; -// } -// .col-md-offset-9 { -// margin-left: 75%; -// } -// .col-md-offset-8 { -// margin-left: 66.66666667%; -// } -// .col-md-offset-7 { -// margin-left: 58.33333333%; -// } -// .col-md-offset-6 { -// margin-left: 50%; -// } -// .col-md-offset-5 { -// margin-left: 41.66666667%; -// } -// .col-md-offset-4 { -// margin-left: 33.33333333%; -// } -// .col-md-offset-3 { -// margin-left: 25%; -// } -// .col-md-offset-2 { -// margin-left: 16.66666667%; -// } -// .col-md-offset-1 { -// margin-left: 8.33333333%; -// } -// .col-md-offset-0 { -// margin-left: 0; -// } -//} -//@media (min-width: 1200px) { -// .col-lg-1, -// .col-lg-2, -// .col-lg-3, -// .col-lg-4, -// .col-lg-5, -// .col-lg-6, -// .col-lg-7, -// .col-lg-8, -// .col-lg-9, -// .col-lg-10, -// .col-lg-11, -// .col-lg-12 { -// float: left; -// } -// .col-lg-12 { -// width: 100%; -// } -// .col-lg-11 { -// width: 91.66666667%; -// } -// .col-lg-10 { -// width: 83.33333333%; -// } -// .col-lg-9 { -// width: 75%; -// } -// .col-lg-8 { -// width: 66.66666667%; -// } -// .col-lg-7 { -// width: 58.33333333%; -// } -// .col-lg-6 { -// width: 50%; -// } -// .col-lg-5 { -// width: 41.66666667%; -// } -// .col-lg-4 { -// width: 33.33333333%; -// } -// .col-lg-3 { -// width: 25%; -// } -// .col-lg-2 { -// width: 16.66666667%; -// } -// .col-lg-1 { -// width: 8.33333333%; -// } -// .col-lg-pull-12 { -// right: 100%; -// } -// .col-lg-pull-11 { -// right: 91.66666667%; -// } -// .col-lg-pull-10 { -// right: 83.33333333%; -// } -// .col-lg-pull-9 { -// right: 75%; -// } -// .col-lg-pull-8 { -// right: 66.66666667%; -// } -// .col-lg-pull-7 { -// right: 58.33333333%; -// } -// .col-lg-pull-6 { -// right: 50%; -// } -// .col-lg-pull-5 { -// right: 41.66666667%; -// } -// .col-lg-pull-4 { -// right: 33.33333333%; -// } -// .col-lg-pull-3 { -// right: 25%; -// } -// .col-lg-pull-2 { -// right: 16.66666667%; -// } -// .col-lg-pull-1 { -// right: 8.33333333%; -// } -// .col-lg-pull-0 { -// right: auto; -// } -// .col-lg-push-12 { -// left: 100%; -// } -// .col-lg-push-11 { -// left: 91.66666667%; -// } -// .col-lg-push-10 { -// left: 83.33333333%; -// } -// .col-lg-push-9 { -// left: 75%; -// } -// .col-lg-push-8 { -// left: 66.66666667%; -// } -// .col-lg-push-7 { -// left: 58.33333333%; -// } -// .col-lg-push-6 { -// left: 50%; -// } -// .col-lg-push-5 { -// left: 41.66666667%; -// } -// .col-lg-push-4 { -// left: 33.33333333%; -// } -// .col-lg-push-3 { -// left: 25%; -// } -// .col-lg-push-2 { -// left: 16.66666667%; -// } -// .col-lg-push-1 { -// left: 8.33333333%; -// } -// .col-lg-push-0 { -// left: auto; -// } -// .col-lg-offset-12 { -// margin-left: 100%; -// } -// .col-lg-offset-11 { -// margin-left: 91.66666667%; -// } -// .col-lg-offset-10 { -// margin-left: 83.33333333%; -// } -// .col-lg-offset-9 { -// margin-left: 75%; -// } -// .col-lg-offset-8 { -// margin-left: 66.66666667%; -// } -// .col-lg-offset-7 { -// margin-left: 58.33333333%; -// } -// .col-lg-offset-6 { -// margin-left: 50%; -// } -// .col-lg-offset-5 { -// margin-left: 41.66666667%; -// } -// .col-lg-offset-4 { -// margin-left: 33.33333333%; -// } -// .col-lg-offset-3 { -// margin-left: 25%; -// } -// .col-lg-offset-2 { -// margin-left: 16.66666667%; -// } -// .col-lg-offset-1 { -// margin-left: 8.33333333%; -// } -// .col-lg-offset-0 { -// margin-left: 0; -// } -//} -table { - background-color: transparent; -} -caption { - padding-top: 8px; - padding-bottom: 8px; - color: #777; - text-align: left; -} -th { - text-align: left; -} -.table { - width: 100%; - max-width: 100%; - margin-bottom: 20px; -} -.table > thead > tr > th, -.table > tbody > tr > th, -.table > tfoot > tr > th, -.table > thead > tr > td, -.table > tbody > tr > td, -.table > tfoot > tr > td { - padding: 8px; - line-height: 1.42857143; - vertical-align: top; - border-top: 1px solid #ddd; -} -.table > thead > tr > th { - vertical-align: bottom; - border-bottom: 2px solid #ddd; -} -.table > caption + thead > tr:first-child > th, -.table > colgroup + thead > tr:first-child > th, -.table > thead:first-child > tr:first-child > th, -.table > caption + thead > tr:first-child > td, -.table > colgroup + thead > tr:first-child > td, -.table > thead:first-child > tr:first-child > td { - border-top: 0; -} -.table > tbody + tbody { - border-top: 2px solid #ddd; -} -.table .table { - background-color: #fff; -} -.table-condensed > thead > tr > th, -.table-condensed > tbody > tr > th, -.table-condensed > tfoot > tr > th, -.table-condensed > thead > tr > td, -.table-condensed > tbody > tr > td, -.table-condensed > tfoot > tr > td { - padding: 5px; -} -.table-bordered { - border: 1px solid #ddd; -} -.table-bordered > thead > tr > th, -.table-bordered > tbody > tr > th, -.table-bordered > tfoot > tr > th, -.table-bordered > thead > tr > td, -.table-bordered > tbody > tr > td, -.table-bordered > tfoot > tr > td { - border: 1px solid #ddd; -} -.table-bordered > thead > tr > th, -.table-bordered > thead > tr > td { - border-bottom-width: 2px; -} -.table-striped > tbody > tr:nth-of-type(odd) { - background-color: #f9f9f9; -} -.table-hover > tbody > tr:hover { - background-color: #f5f5f5; -} -table col[class*='col-'] { - position: static; - display: table-column; - float: none; -} -table td[class*='col-'], -table th[class*='col-'] { - position: static; - display: table-cell; - float: none; -} -.table > thead > tr > td.active, -.table > tbody > tr > td.active, -.table > tfoot > tr > td.active, -.table > thead > tr > th.active, -.table > tbody > tr > th.active, -.table > tfoot > tr > th.active, -.table > thead > tr.active > td, -.table > tbody > tr.active > td, -.table > tfoot > tr.active > td, -.table > thead > tr.active > th, -.table > tbody > tr.active > th, -.table > tfoot > tr.active > th { - background-color: #f5f5f5; -} -.table-hover > tbody > tr > td.active:hover, -.table-hover > tbody > tr > th.active:hover, -.table-hover > tbody > tr.active:hover > td, -.table-hover > tbody > tr:hover > .active, -.table-hover > tbody > tr.active:hover > th { - background-color: #e8e8e8; -} -.table > thead > tr > td.success, -.table > tbody > tr > td.success, -.table > tfoot > tr > td.success, -.table > thead > tr > th.success, -.table > tbody > tr > th.success, -.table > tfoot > tr > th.success, -.table > thead > tr.success > td, -.table > tbody > tr.success > td, -.table > tfoot > tr.success > td, -.table > thead > tr.success > th, -.table > tbody > tr.success > th, -.table > tfoot > tr.success > th { - background-color: #dff0d8; -} -.table-hover > tbody > tr > td.success:hover, -.table-hover > tbody > tr > th.success:hover, -.table-hover > tbody > tr.success:hover > td, -.table-hover > tbody > tr:hover > .success, -.table-hover > tbody > tr.success:hover > th { - background-color: #d0e9c6; -} -.table > thead > tr > td.info, -.table > tbody > tr > td.info, -.table > tfoot > tr > td.info, -.table > thead > tr > th.info, -.table > tbody > tr > th.info, -.table > tfoot > tr > th.info, -.table > thead > tr.info > td, -.table > tbody > tr.info > td, -.table > tfoot > tr.info > td, -.table > thead > tr.info > th, -.table > tbody > tr.info > th, -.table > tfoot > tr.info > th { - background-color: #d9edf7; -} -.table-hover > tbody > tr > td.info:hover, -.table-hover > tbody > tr > th.info:hover, -.table-hover > tbody > tr.info:hover > td, -.table-hover > tbody > tr:hover > .info, -.table-hover > tbody > tr.info:hover > th { - background-color: #c4e3f3; -} -.table > thead > tr > td.warning, -.table > tbody > tr > td.warning, -.table > tfoot > tr > td.warning, -.table > thead > tr > th.warning, -.table > tbody > tr > th.warning, -.table > tfoot > tr > th.warning, -.table > thead > tr.warning > td, -.table > tbody > tr.warning > td, -.table > tfoot > tr.warning > td, -.table > thead > tr.warning > th, -.table > tbody > tr.warning > th, -.table > tfoot > tr.warning > th { - background-color: #fcf8e3; -} -.table-hover > tbody > tr > td.warning:hover, -.table-hover > tbody > tr > th.warning:hover, -.table-hover > tbody > tr.warning:hover > td, -.table-hover > tbody > tr:hover > .warning, -.table-hover > tbody > tr.warning:hover > th { - background-color: #faf2cc; -} -.table > thead > tr > td.danger, -.table > tbody > tr > td.danger, -.table > tfoot > tr > td.danger, -.table > thead > tr > th.danger, -.table > tbody > tr > th.danger, -.table > tfoot > tr > th.danger, -.table > thead > tr.danger > td, -.table > tbody > tr.danger > td, -.table > tfoot > tr.danger > td, -.table > thead > tr.danger > th, -.table > tbody > tr.danger > th, -.table > tfoot > tr.danger > th { - background-color: #f2dede; -} -.table-hover > tbody > tr > td.danger:hover, -.table-hover > tbody > tr > th.danger:hover, -.table-hover > tbody > tr.danger:hover > td, -.table-hover > tbody > tr:hover > .danger, -.table-hover > tbody > tr.danger:hover > th { - background-color: #ebcccc; -} -.table-responsive { - min-height: 0.01%; - overflow-x: auto; -} -@media screen and (max-width: 767px) { - .table-responsive { - width: 100%; - margin-bottom: 15px; - overflow-y: hidden; - -ms-overflow-style: -ms-autohiding-scrollbar; - border: 1px solid #ddd; - } - .table-responsive > .table { - margin-bottom: 0; - } - .table-responsive > .table > thead > tr > th, - .table-responsive > .table > tbody > tr > th, - .table-responsive > .table > tfoot > tr > th, - .table-responsive > .table > thead > tr > td, - .table-responsive > .table > tbody > tr > td, - .table-responsive > .table > tfoot > tr > td { - white-space: nowrap; - } - .table-responsive > .table-bordered { - border: 0; - } - .table-responsive > .table-bordered > thead > tr > th:first-child, - .table-responsive > .table-bordered > tbody > tr > th:first-child, - .table-responsive > .table-bordered > tfoot > tr > th:first-child, - .table-responsive > .table-bordered > thead > tr > td:first-child, - .table-responsive > .table-bordered > tbody > tr > td:first-child, - .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; - } - .table-responsive > .table-bordered > thead > tr > th:last-child, - .table-responsive > .table-bordered > tbody > tr > th:last-child, - .table-responsive > .table-bordered > tfoot > tr > th:last-child, - .table-responsive > .table-bordered > thead > tr > td:last-child, - .table-responsive > .table-bordered > tbody > tr > td:last-child, - .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; - } - .table-responsive > .table-bordered > tbody > tr:last-child > th, - .table-responsive > .table-bordered > tfoot > tr:last-child > th, - .table-responsive > .table-bordered > tbody > tr:last-child > td, - .table-responsive > .table-bordered > tfoot > tr:last-child > td { - border-bottom: 0; - } -} -fieldset { - min-width: 0; - padding: 0; - margin: 0; - border: 0; -} -legend { - display: block; - width: 100%; - padding: 0; - margin-bottom: 20px; - font-size: 21px; - line-height: inherit; - color: #333; - border: 0; - border-bottom: 1px solid #e5e5e5; -} -label { - display: inline-block; - max-width: 100%; - margin-bottom: 5px; - font-weight: bold; -} -input[type='search'] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -input[type='radio'], -input[type='checkbox'] { - margin: 4px 0 0; - margin-top: 1px \9; - line-height: normal; -} -input[type='file'] { - display: block; -} -input[type='range'] { - display: block; - width: 100%; -} -select[multiple], -select[size] { - height: auto; -} -input[type='file']:focus, -input[type='radio']:focus, -input[type='checkbox']:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -output { - display: block; - padding-top: 7px; - font-size: 14px; - line-height: 1.42857143; - color: #555; -} -//.form-control { -// display: block; -// width: 100%; -// height: 34px; -// padding: 6px 12px; -// font-size: 14px; -// line-height: 1.42857143; -// color: #555; -// background-color: #fff; -// background-image: none; -// border: 1px solid #ccc; -// border-radius: 4px; -// -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -// box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -// -webkit-transition: border-color ease-in-out 0.15s, -webkit-box-shadow ease-in-out 0.15s; -// -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; -// transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; -//} -//.form-control:focus { -// border-color: #66afe9; -// outline: 0; -// -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); -// box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); -//} -//.form-control::-moz-placeholder { -// color: #999; -// opacity: 1; -//} -//.form-control:-ms-input-placeholder { -// color: #999; -//} -//.form-control::-webkit-input-placeholder { -// color: #999; -//} -//.form-control[disabled], -//.form-control[readonly], -//fieldset[disabled] .form-control { -// background-color: #eee; -// opacity: 1; -//} -//.form-control[disabled], -//fieldset[disabled] .form-control { -// cursor: not-allowed; -//} -//textarea.form-control { -// height: auto; -//} -//input[type='search'] { -// -webkit-appearance: none; -//} -// @media screen and (-webkit-min-device-pixel-ratio: 0) { -// input[type='date'], -// input[type='time'], -// input[type='datetime-local'], -// input[type='month'] { -// line-height: 34px; -// } -// input[type='date'].input-sm, -// input[type='time'].input-sm, -// input[type='datetime-local'].input-sm, -// input[type='month'].input-sm, -// .input-group-sm input[type='date'], -// .input-group-sm input[type='time'], -// .input-group-sm input[type='datetime-local'], -// .input-group-sm input[type='month'] { -// line-height: 30px; -// } -// input[type='date'].input-lg, -// input[type='time'].input-lg, -// input[type='datetime-local'].input-lg, -// input[type='month'].input-lg, -// .input-group-lg input[type='date'], -// .input-group-lg input[type='time'], -// .input-group-lg input[type='datetime-local'], -// .input-group-lg input[type='month'] { -// line-height: 46px; -// } -// } -//.form-group { -// margin-bottom: 15px; -//} -.radio, -.checkbox { - position: relative; - display: block; - margin-top: 10px; - margin-bottom: 10px; -} -.radio label, -.checkbox label { - min-height: 20px; - padding-left: 20px; - margin-bottom: 0; - font-weight: normal; - cursor: pointer; -} -.radio input[type='radio'], -.radio-inline input[type='radio'], -.checkbox input[type='checkbox'], -.checkbox-inline input[type='checkbox'] { - position: absolute; - margin-top: 4px \9; - margin-left: -20px; -} -.radio + .radio, -.checkbox + .checkbox { - margin-top: -5px; -} -.radio-inline, -.checkbox-inline { - position: relative; - display: inline-block; - padding-left: 20px; - margin-bottom: 0; - font-weight: normal; - vertical-align: middle; - cursor: pointer; -} -.radio-inline + .radio-inline, -.checkbox-inline + .checkbox-inline { - margin-top: 0; - margin-left: 10px; -} -input[type='radio'][disabled], -input[type='checkbox'][disabled], -input[type='radio'].disabled, -input[type='checkbox'].disabled, -fieldset[disabled] input[type='radio'], -fieldset[disabled] input[type='checkbox'] { - cursor: not-allowed; -} -.radio-inline.disabled, -.checkbox-inline.disabled, -fieldset[disabled] .radio-inline, -fieldset[disabled] .checkbox-inline { - cursor: not-allowed; -} -.radio.disabled label, -.checkbox.disabled label, -fieldset[disabled] .radio label, -fieldset[disabled] .checkbox label { - cursor: not-allowed; -} -.form-control-static { - min-height: 34px; - padding-top: 7px; - padding-bottom: 7px; - margin-bottom: 0; -} -.form-control-static.input-lg, -.form-control-static.input-sm { - padding-right: 0; - padding-left: 0; -} -.input-sm { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -select.input-sm { - height: 30px; - line-height: 30px; -} -textarea.input-sm, -select[multiple].input-sm { - height: auto; -} -.form-group-sm .form-control { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -select.form-group-sm .form-control { - height: 30px; - line-height: 30px; -} -textarea.form-group-sm .form-control, -select[multiple].form-group-sm .form-control { - height: auto; -} -.form-group-sm .form-control-static { - height: 30px; - min-height: 32px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; -} -.input-lg { - height: 46px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.3333333; - border-radius: 6px; -} -select.input-lg { - height: 46px; - line-height: 46px; -} -textarea.input-lg, -select[multiple].input-lg { - height: auto; -} -.form-group-lg .form-control { - height: 46px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.3333333; - border-radius: 6px; -} -select.form-group-lg .form-control { - height: 46px; - line-height: 46px; -} -textarea.form-group-lg .form-control, -select[multiple].form-group-lg .form-control { - height: auto; -} -.form-group-lg .form-control-static { - height: 46px; - min-height: 38px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.3333333; -} -.has-feedback { - position: relative; -} -.has-feedback .form-control { - padding-right: 42.5px; -} -.form-control-feedback { - position: absolute; - top: 0; - right: 0; - z-index: 2; - display: block; - width: 34px; - height: 34px; - line-height: 34px; - text-align: center; - pointer-events: none; -} -.input-lg + .form-control-feedback { - width: 46px; - height: 46px; - line-height: 46px; -} -.input-sm + .form-control-feedback { - width: 30px; - height: 30px; - line-height: 30px; -} -.has-success .help-block, -.has-success .control-label, -.has-success .radio, -.has-success .checkbox, -.has-success .radio-inline, -.has-success .checkbox-inline, -.has-success.radio label, -.has-success.checkbox label, -.has-success.radio-inline label, -.has-success.checkbox-inline label { - color: #3c763d; -} -.has-success .form-control { - border-color: #3c763d; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} -.has-success .form-control:focus { - border-color: #2b542c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; -} -.has-success .input-group-addon { - color: #3c763d; - background-color: #dff0d8; - border-color: #3c763d; -} -.has-success .form-control-feedback { - color: #3c763d; -} -.has-warning .help-block, -.has-warning .control-label, -.has-warning .radio, -.has-warning .checkbox, -.has-warning .radio-inline, -.has-warning .checkbox-inline, -.has-warning.radio label, -.has-warning.checkbox label, -.has-warning.radio-inline label, -.has-warning.checkbox-inline label { - color: #8a6d3b; -} -.has-warning .form-control { - border-color: #8a6d3b; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} -.has-warning .form-control:focus { - border-color: #66512c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; -} -.has-warning .input-group-addon { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #8a6d3b; -} -.has-warning .form-control-feedback { - color: #8a6d3b; -} -.has-error .help-block, -.has-error .control-label, -.has-error .radio, -.has-error .checkbox, -.has-error .radio-inline, -.has-error .checkbox-inline, -.has-error.radio label, -.has-error.checkbox label, -.has-error.radio-inline label, -.has-error.checkbox-inline label { - color: #a94442; -} -.has-error .form-control { - border-color: #a94442; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} -.has-error .form-control:focus { - border-color: #843534; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; -} -.has-error .input-group-addon { - color: #a94442; - background-color: #f2dede; - border-color: #a94442; -} -.has-error .form-control-feedback { - color: #a94442; -} -.has-feedback label ~ .form-control-feedback { - top: 25px; -} -.has-feedback label.sr-only ~ .form-control-feedback { - top: 0; -} -.help-block { - display: block; - margin-top: 5px; - margin-bottom: 10px; - color: #737373; -} -@media (min-width: 768px) { - .form-inline .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .form-control { - display: inline-block; - width: auto; - vertical-align: middle; - } - .form-inline .form-control-static { - display: inline-block; - } - .form-inline .input-group { - display: inline-table; - vertical-align: middle; - } - .form-inline .input-group .input-group-addon, - .form-inline .input-group .input-group-btn, - .form-inline .input-group .form-control { - width: auto; - } - .form-inline .input-group > .form-control { - width: 100%; - } - .form-inline .control-label { - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .radio, - .form-inline .checkbox { - display: inline-block; - margin-top: 0; - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .radio label, - .form-inline .checkbox label { - padding-left: 0; - } - .form-inline .radio input[type='radio'], - .form-inline .checkbox input[type='checkbox'] { - position: relative; - margin-left: 0; - } - .form-inline .has-feedback .form-control-feedback { - top: 0; - } -} -.form-horizontal .radio, -.form-horizontal .checkbox, -.form-horizontal .radio-inline, -.form-horizontal .checkbox-inline { - padding-top: 7px; - margin-top: 0; - margin-bottom: 0; -} -.form-horizontal .radio, -.form-horizontal .checkbox { - min-height: 27px; -} -.form-horizontal .form-group { - margin-right: -15px; - margin-left: -15px; -} -@media (min-width: 768px) { - .form-horizontal .control-label { - padding-top: 7px; - margin-bottom: 0; - text-align: right; - } -} -.form-horizontal .has-feedback .form-control-feedback { - right: 15px; -} -@media (min-width: 768px) { - .form-horizontal .form-group-lg .control-label { - padding-top: 14.333333px; - } -} -@media (min-width: 768px) { - .form-horizontal .form-group-sm .control-label { - padding-top: 6px; - } -} -.btn { - display: inline-block; - padding: 6px 12px; - margin-bottom: 0; - font-size: 14px; - font-weight: normal; - line-height: 1.42857143; - text-align: center; - white-space: nowrap; - vertical-align: middle; - -ms-touch-action: manipulation; - touch-action: manipulation; - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - background-image: none; - border: 1px solid transparent; - border-radius: 4px; -} -.btn:focus, -.btn:active:focus, -.btn.active:focus, -.btn.focus, -.btn:active.focus, -.btn.active.focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -.btn:hover, -.btn:focus, -.btn.focus { - color: #333; - text-decoration: none; -} -.btn:active, -.btn.active { - background-image: none; - outline: 0; - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); -} -.btn.disabled, -.btn[disabled], -fieldset[disabled] .btn { - pointer-events: none; - cursor: not-allowed; - filter: alpha(opacity=65); - -webkit-box-shadow: none; - box-shadow: none; - opacity: 0.65; -} -.btn-default { - color: #333; - background-color: #fff; - border-color: #ccc; -} -.btn-default:hover, -.btn-default:focus, -.btn-default.focus, -.btn-default:active, -.btn-default.active, -.open > .dropdown-toggle.btn-default { - color: #333; - background-color: #e6e6e6; - border-color: #adadad; -} -.btn-default:active, -.btn-default.active, -.open > .dropdown-toggle.btn-default { - background-image: none; -} -.btn-default.disabled, -.btn-default[disabled], -fieldset[disabled] .btn-default, -.btn-default.disabled:hover, -.btn-default[disabled]:hover, -fieldset[disabled] .btn-default:hover, -.btn-default.disabled:focus, -.btn-default[disabled]:focus, -fieldset[disabled] .btn-default:focus, -.btn-default.disabled.focus, -.btn-default[disabled].focus, -fieldset[disabled] .btn-default.focus, -.btn-default.disabled:active, -.btn-default[disabled]:active, -fieldset[disabled] .btn-default:active, -.btn-default.disabled.active, -.btn-default[disabled].active, -fieldset[disabled] .btn-default.active { - background-color: #fff; - border-color: #ccc; -} -.btn-default .badge { - color: #fff; - background-color: #333; -} -.btn-primary { - color: #fff; - background-color: #337ab7; - border-color: #2e6da4; -} -.btn-primary:hover, -.btn-primary:focus, -.btn-primary.focus, -.btn-primary:active, -.btn-primary.active, -.open > .dropdown-toggle.btn-primary { - color: #fff; - background-color: #286090; - border-color: #204d74; -} -.btn-primary:active, -.btn-primary.active, -.open > .dropdown-toggle.btn-primary { - background-image: none; -} -.btn-primary.disabled, -.btn-primary[disabled], -fieldset[disabled] .btn-primary, -.btn-primary.disabled:hover, -.btn-primary[disabled]:hover, -fieldset[disabled] .btn-primary:hover, -.btn-primary.disabled:focus, -.btn-primary[disabled]:focus, -fieldset[disabled] .btn-primary:focus, -.btn-primary.disabled.focus, -.btn-primary[disabled].focus, -fieldset[disabled] .btn-primary.focus, -.btn-primary.disabled:active, -.btn-primary[disabled]:active, -fieldset[disabled] .btn-primary:active, -.btn-primary.disabled.active, -.btn-primary[disabled].active, -fieldset[disabled] .btn-primary.active { - background-color: #337ab7; - border-color: #2e6da4; -} -.btn-primary .badge { - color: #337ab7; - background-color: #fff; -} -.btn-success { - color: #fff; - background-color: #5cb85c; - border-color: #4cae4c; -} -.btn-success:hover, -.btn-success:focus, -.btn-success.focus, -.btn-success:active, -.btn-success.active, -.open > .dropdown-toggle.btn-success { - color: #fff; - background-color: #449d44; - border-color: #398439; -} -.btn-success:active, -.btn-success.active, -.open > .dropdown-toggle.btn-success { - background-image: none; -} -.btn-success.disabled, -.btn-success[disabled], -fieldset[disabled] .btn-success, -.btn-success.disabled:hover, -.btn-success[disabled]:hover, -fieldset[disabled] .btn-success:hover, -.btn-success.disabled:focus, -.btn-success[disabled]:focus, -fieldset[disabled] .btn-success:focus, -.btn-success.disabled.focus, -.btn-success[disabled].focus, -fieldset[disabled] .btn-success.focus, -.btn-success.disabled:active, -.btn-success[disabled]:active, -fieldset[disabled] .btn-success:active, -.btn-success.disabled.active, -.btn-success[disabled].active, -fieldset[disabled] .btn-success.active { - background-color: #5cb85c; - border-color: #4cae4c; -} -.btn-success .badge { - color: #5cb85c; - background-color: #fff; -} -.btn-info { - color: #fff; - background-color: #5bc0de; - border-color: #46b8da; -} -.btn-info:hover, -.btn-info:focus, -.btn-info.focus, -.btn-info:active, -.btn-info.active, -.open > .dropdown-toggle.btn-info { - color: #fff; - background-color: #31b0d5; - border-color: #269abc; -} -.btn-info:active, -.btn-info.active, -.open > .dropdown-toggle.btn-info { - background-image: none; -} -.btn-info.disabled, -.btn-info[disabled], -fieldset[disabled] .btn-info, -.btn-info.disabled:hover, -.btn-info[disabled]:hover, -fieldset[disabled] .btn-info:hover, -.btn-info.disabled:focus, -.btn-info[disabled]:focus, -fieldset[disabled] .btn-info:focus, -.btn-info.disabled.focus, -.btn-info[disabled].focus, -fieldset[disabled] .btn-info.focus, -.btn-info.disabled:active, -.btn-info[disabled]:active, -fieldset[disabled] .btn-info:active, -.btn-info.disabled.active, -.btn-info[disabled].active, -fieldset[disabled] .btn-info.active { - background-color: #5bc0de; - border-color: #46b8da; -} -.btn-info .badge { - color: #5bc0de; - background-color: #fff; -} -.btn-warning { - color: #fff; - background-color: #f0ad4e; - border-color: #eea236; -} -.btn-warning:hover, -.btn-warning:focus, -.btn-warning.focus, -.btn-warning:active, -.btn-warning.active, -.open > .dropdown-toggle.btn-warning { - color: #fff; - background-color: #ec971f; - border-color: #d58512; -} -.btn-warning:active, -.btn-warning.active, -.open > .dropdown-toggle.btn-warning { - background-image: none; -} -.btn-warning.disabled, -.btn-warning[disabled], -fieldset[disabled] .btn-warning, -.btn-warning.disabled:hover, -.btn-warning[disabled]:hover, -fieldset[disabled] .btn-warning:hover, -.btn-warning.disabled:focus, -.btn-warning[disabled]:focus, -fieldset[disabled] .btn-warning:focus, -.btn-warning.disabled.focus, -.btn-warning[disabled].focus, -fieldset[disabled] .btn-warning.focus, -.btn-warning.disabled:active, -.btn-warning[disabled]:active, -fieldset[disabled] .btn-warning:active, -.btn-warning.disabled.active, -.btn-warning[disabled].active, -fieldset[disabled] .btn-warning.active { - background-color: #f0ad4e; - border-color: #eea236; -} -.btn-warning .badge { - color: #f0ad4e; - background-color: #fff; -} -.btn-danger { - color: #fff; - background-color: #d9534f; - border-color: #d43f3a; -} -.btn-danger:hover, -.btn-danger:focus, -.btn-danger.focus, -.btn-danger:active, -.btn-danger.active, -.open > .dropdown-toggle.btn-danger { - color: #fff; - background-color: #c9302c; - border-color: #ac2925; -} -.btn-danger:active, -.btn-danger.active, -.open > .dropdown-toggle.btn-danger { - background-image: none; -} -.btn-danger.disabled, -.btn-danger[disabled], -fieldset[disabled] .btn-danger, -.btn-danger.disabled:hover, -.btn-danger[disabled]:hover, -fieldset[disabled] .btn-danger:hover, -.btn-danger.disabled:focus, -.btn-danger[disabled]:focus, -fieldset[disabled] .btn-danger:focus, -.btn-danger.disabled.focus, -.btn-danger[disabled].focus, -fieldset[disabled] .btn-danger.focus, -.btn-danger.disabled:active, -.btn-danger[disabled]:active, -fieldset[disabled] .btn-danger:active, -.btn-danger.disabled.active, -.btn-danger[disabled].active, -fieldset[disabled] .btn-danger.active { - background-color: #d9534f; - border-color: #d43f3a; -} -.btn-danger .badge { - color: #d9534f; - background-color: #fff; -} -.btn-link { - font-weight: normal; - color: #337ab7; - border-radius: 0; -} -.btn-link, -.btn-link:active, -.btn-link.active, -.btn-link[disabled], -fieldset[disabled] .btn-link { - background-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; -} -.btn-link, -.btn-link:hover, -.btn-link:focus, -.btn-link:active { - border-color: transparent; -} -.btn-link:hover, -.btn-link:focus { - color: #23527c; - text-decoration: underline; - background-color: transparent; -} -.btn-link[disabled]:hover, -fieldset[disabled] .btn-link:hover, -.btn-link[disabled]:focus, -fieldset[disabled] .btn-link:focus { - color: #777; - text-decoration: none; -} -.btn-lg, -.btn-group-lg > .btn { - padding: 10px 16px; - font-size: 18px; - line-height: 1.3333333; - border-radius: 6px; -} -.btn-sm, -.btn-group-sm > .btn { - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -.btn-xs, -.btn-group-xs > .btn { - padding: 1px 5px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -.btn-block { - display: block; - width: 100%; -} -.btn-block + .btn-block { - margin-top: 5px; -} -input[type='submit'].btn-block, -input[type='reset'].btn-block, -input[type='button'].btn-block { - width: 100%; -} -.fade { - opacity: 0; - -webkit-transition: opacity 0.15s linear; - -o-transition: opacity 0.15s linear; - transition: opacity 0.15s linear; -} -.fade.in { - opacity: 1; -} -.collapse { - display: none; -} -.collapse.in { - display: block; -} -tr.collapse.in { - display: table-row; -} -tbody.collapse.in { - display: table-row-group; -} -.collapsing { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition-timing-function: ease; - -o-transition-timing-function: ease; - transition-timing-function: ease; - -webkit-transition-duration: 0.35s; - -o-transition-duration: 0.35s; - transition-duration: 0.35s; - -webkit-transition-property: height, visibility; - -o-transition-property: height, visibility; - transition-property: height, visibility; -} -.caret { - display: inline-block; - width: 0; - height: 0; - margin-left: 2px; - vertical-align: middle; - border-top: 4px dashed; - border-right: 4px solid transparent; - border-left: 4px solid transparent; -} -.dropup, -.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; - font-size: 14px; - text-align: left; - list-style: none; - background-color: #fff; - -webkit-background-clip: padding-box; - background-clip: padding-box; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.15); - border-radius: 4px; - -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); -} -.dropdown-menu.pull-right { - right: 0; - left: auto; -} -.dropdown-menu .divider { - height: 1px; - margin: 9px 0; - overflow: hidden; - background-color: #e5e5e5; -} -.dropdown-menu > li > a { - display: block; - padding: 3px 20px; - clear: both; - font-weight: normal; - line-height: 1.42857143; - color: #333; - white-space: nowrap; -} -.dropdown-menu > li > a:hover, -.dropdown-menu > li > a:focus { - color: #262626; - text-decoration: none; - background-color: #f5f5f5; -} -.dropdown-menu > .active > a, -.dropdown-menu > .active > a:hover, -.dropdown-menu > .active > a:focus { - color: #fff; - text-decoration: none; - background-color: #337ab7; - outline: 0; -} -.dropdown-menu > .disabled > a, -.dropdown-menu > .disabled > a:hover, -.dropdown-menu > .disabled > a:focus { - color: #777; -} -.dropdown-menu > .disabled > a:hover, -.dropdown-menu > .disabled > a:focus { - text-decoration: none; - cursor: not-allowed; - background-color: transparent; - background-image: none; - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); -} -.open > .dropdown-menu { - display: block; -} -.open > a { - outline: 0; -} -.dropdown-menu-right { - right: 0; - left: auto; -} -.dropdown-menu-left { - right: auto; - left: 0; -} -.dropdown-header { - display: block; - padding: 3px 20px; - font-size: 12px; - line-height: 1.42857143; - color: #777; - white-space: nowrap; -} -.dropdown-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 990; -} -.pull-right > .dropdown-menu { - right: 0; - left: auto; -} -.dropup .caret, -.navbar-fixed-bottom .dropdown .caret { - content: ''; - border-top: 0; - border-bottom: 4px solid; -} -.dropup .dropdown-menu, -.navbar-fixed-bottom .dropdown .dropdown-menu { - top: auto; - bottom: 100%; - margin-bottom: 2px; -} -@media (min-width: 768px) { - .navbar-right .dropdown-menu { - right: 0; - left: auto; - } - .navbar-right .dropdown-menu-left { - right: auto; - left: 0; - } -} -.btn-group, -.btn-group-vertical { - position: relative; - display: inline-block; - vertical-align: middle; -} -.btn-group > .btn, -.btn-group-vertical > .btn { - position: relative; - float: left; -} -.btn-group > .btn:hover, -.btn-group-vertical > .btn:hover, -.btn-group > .btn:focus, -.btn-group-vertical > .btn:focus, -.btn-group > .btn:active, -.btn-group-vertical > .btn:active, -.btn-group > .btn.active, -.btn-group-vertical > .btn.active { - z-index: 2; -} -.btn-group .btn + .btn, -.btn-group .btn + .btn-group, -.btn-group .btn-group + .btn, -.btn-group .btn-group + .btn-group { - margin-left: -1px; -} -.btn-toolbar { - margin-left: -5px; -} -.btn-toolbar .btn-group, -.btn-toolbar .input-group { - float: left; -} -.btn-toolbar > .btn, -.btn-toolbar > .btn-group, -.btn-toolbar > .input-group { - margin-left: 5px; -} -.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { - border-radius: 0; -} -.btn-group > .btn:first-child { - margin-left: 0; -} -.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} -.btn-group > .btn:last-child:not(:first-child), -.btn-group > .dropdown-toggle:not(:first-child) { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} -.btn-group > .btn-group { - float: left; -} -.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} -.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child, -.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} -.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} -.btn-group .dropdown-toggle:active, -.btn-group.open .dropdown-toggle { - outline: 0; -} -.btn-group > .btn + .dropdown-toggle { - padding-right: 8px; - padding-left: 8px; -} -.btn-group > .btn-lg + .dropdown-toggle { - padding-right: 12px; - padding-left: 12px; -} -.btn-group.open .dropdown-toggle { - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); -} -.btn-group.open .dropdown-toggle.btn-link { - -webkit-box-shadow: none; - box-shadow: none; -} -.btn .caret { - margin-left: 0; -} -.btn-lg .caret { - border-width: 5px 5px 0; - border-bottom-width: 0; -} -.dropup .btn-lg .caret { - border-width: 0 5px 5px; -} -.btn-group-vertical > .btn, -.btn-group-vertical > .btn-group, -.btn-group-vertical > .btn-group > .btn { - display: block; - float: none; - width: 100%; - max-width: 100%; -} -.btn-group-vertical > .btn-group > .btn { - float: none; -} -.btn-group-vertical > .btn + .btn, -.btn-group-vertical > .btn + .btn-group, -.btn-group-vertical > .btn-group + .btn, -.btn-group-vertical > .btn-group + .btn-group { - margin-top: -1px; - margin-left: 0; -} -.btn-group-vertical > .btn:not(:first-child):not(:last-child) { - border-radius: 0; -} -.btn-group-vertical > .btn:first-child:not(:last-child) { - border-top-right-radius: 4px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.btn-group-vertical > .btn:last-child:not(:first-child) { - border-top-left-radius: 0; - border-top-right-radius: 0; - border-bottom-left-radius: 4px; -} -.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-left-radius: 0; - border-top-right-radius: 0; -} -.btn-group-justified { - display: table; - width: 100%; - table-layout: fixed; - border-collapse: separate; -} -.btn-group-justified > .btn, -.btn-group-justified > .btn-group { - display: table-cell; - float: none; - width: 1%; -} -.btn-group-justified > .btn-group .btn { - width: 100%; -} -.btn-group-justified > .btn-group .dropdown-menu { - left: auto; -} -[data-toggle='buttons'] > .btn input[type='radio'], -[data-toggle='buttons'] > .btn-group > .btn input[type='radio'], -[data-toggle='buttons'] > .btn input[type='checkbox'], -[data-toggle='buttons'] > .btn-group > .btn input[type='checkbox'] { - position: absolute; - clip: rect(0, 0, 0, 0); - pointer-events: none; -} -.input-group { - position: relative; - display: table; - border-collapse: separate; -} -.input-group[class*='col-'] { - float: none; - padding-right: 0; - padding-left: 0; -} -.input-group .form-control { - position: relative; - z-index: 2; - float: left; - width: 100%; - margin-bottom: 0; -} -.input-group-lg > .form-control, -.input-group-lg > .input-group-addon, -.input-group-lg > .input-group-btn > .btn { - height: 46px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.3333333; - border-radius: 6px; -} -select.input-group-lg > .form-control, -select.input-group-lg > .input-group-addon, -select.input-group-lg > .input-group-btn > .btn { - height: 46px; - line-height: 46px; -} -textarea.input-group-lg > .form-control, -textarea.input-group-lg > .input-group-addon, -textarea.input-group-lg > .input-group-btn > .btn, -select[multiple].input-group-lg > .form-control, -select[multiple].input-group-lg > .input-group-addon, -select[multiple].input-group-lg > .input-group-btn > .btn { - height: auto; -} -.input-group-sm > .form-control, -.input-group-sm > .input-group-addon, -.input-group-sm > .input-group-btn > .btn { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -select.input-group-sm > .form-control, -select.input-group-sm > .input-group-addon, -select.input-group-sm > .input-group-btn > .btn { - height: 30px; - line-height: 30px; -} -textarea.input-group-sm > .form-control, -textarea.input-group-sm > .input-group-addon, -textarea.input-group-sm > .input-group-btn > .btn, -select[multiple].input-group-sm > .form-control, -select[multiple].input-group-sm > .input-group-addon, -select[multiple].input-group-sm > .input-group-btn > .btn { - height: auto; -} -.input-group-addon, -.input-group-btn, -.input-group .form-control { - display: table-cell; -} -.input-group-addon:not(:first-child):not(:last-child), -.input-group-btn:not(:first-child):not(:last-child), -.input-group .form-control:not(:first-child):not(:last-child) { - border-radius: 0; -} -.input-group-addon, -.input-group-btn { - width: 1%; - white-space: nowrap; - vertical-align: middle; -} -.input-group-addon { - padding: 6px 12px; - font-size: 14px; - font-weight: normal; - line-height: 1; - color: #555; - text-align: center; - background-color: #eee; - border: 1px solid #ccc; - border-radius: 4px; -} -.input-group-addon.input-sm { - padding: 5px 10px; - font-size: 12px; - border-radius: 3px; -} -.input-group-addon.input-lg { - padding: 10px 16px; - font-size: 18px; - border-radius: 6px; -} -.input-group-addon input[type='radio'], -.input-group-addon input[type='checkbox'] { - margin-top: 0; -} -.input-group .form-control:first-child, -.input-group-addon:first-child, -.input-group-btn:first-child > .btn, -.input-group-btn:first-child > .btn-group > .btn, -.input-group-btn:first-child > .dropdown-toggle, -.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), -.input-group-btn:last-child > .btn-group:not(:last-child) > .btn { - border-top-right-radius: 0; - border-bottom-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-top-left-radius: 0; - border-bottom-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 { - padding-left: 0; - margin-bottom: 0; - list-style: none; -} -.nav > li { - position: relative; - display: block; -} -.nav > li > a { - position: relative; - display: block; - padding: 10px 15px; -} -.nav > li > a:hover, -.nav > li > a:focus { - text-decoration: none; - background-color: #eee; -} -.nav > li.disabled > a { - color: #777; -} -.nav > li.disabled > a:hover, -.nav > li.disabled > a:focus { - color: #777; - text-decoration: none; - cursor: not-allowed; - background-color: transparent; -} -.nav .open > a, -.nav .open > a:hover, -.nav .open > a:focus { - background-color: #eee; - border-color: #337ab7; -} -.nav .nav-divider { - height: 1px; - margin: 9px 0; - overflow: hidden; - background-color: #e5e5e5; -} -.nav > li > a > img { - max-width: none; -} -.nav-tabs { - border-bottom: 1px solid #ddd; -} -.nav-tabs > li { - float: left; - margin-bottom: -1px; -} -.nav-tabs > li > a { - margin-right: 2px; - line-height: 1.42857143; - border: 1px solid transparent; - border-radius: 4px 4px 0 0; -} -.nav-tabs > li > a:hover { - border-color: #eee #eee #ddd; -} -.nav-tabs > li.active > a, -.nav-tabs > li.active > a:hover, -.nav-tabs > li.active > a:focus { - color: #555; - cursor: default; - background-color: #fff; - border: 1px solid #ddd; - border-bottom-color: transparent; -} -.nav-tabs.nav-justified { - width: 100%; - border-bottom: 0; -} -.nav-tabs.nav-justified > li { - float: none; -} -.nav-tabs.nav-justified > li > a { - margin-bottom: 5px; - text-align: center; -} -.nav-tabs.nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; -} -@media (min-width: 768px) { - .nav-tabs.nav-justified > li { - display: table-cell; - width: 1%; - } - .nav-tabs.nav-justified > li > a { - margin-bottom: 0; - } -} -.nav-tabs.nav-justified > li > a { - margin-right: 0; - border-radius: 4px; -} -.nav-tabs.nav-justified > .active > a, -.nav-tabs.nav-justified > .active > a:hover, -.nav-tabs.nav-justified > .active > a:focus { - border: 1px solid #ddd; -} -@media (min-width: 768px) { - .nav-tabs.nav-justified > li > a { - border-bottom: 1px solid #ddd; - border-radius: 4px 4px 0 0; - } - .nav-tabs.nav-justified > .active > a, - .nav-tabs.nav-justified > .active > a:hover, - .nav-tabs.nav-justified > .active > a:focus { - border-bottom-color: #fff; - } -} -.nav-pills > li { - float: left; -} -.nav-pills > li > a { - border-radius: 4px; -} -.nav-pills > li + li { - margin-left: 2px; -} -.nav-pills > li.active > a, -.nav-pills > li.active > a:hover, -.nav-pills > li.active > a:focus { - color: #fff; - background-color: #337ab7; -} -.nav-stacked > li { - float: none; -} -.nav-stacked > li + li { - margin-top: 2px; - margin-left: 0; -} -.nav-justified { - width: 100%; -} -.nav-justified > li { - float: none; -} -.nav-justified > li > a { - margin-bottom: 5px; - text-align: center; -} -.nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; -} -@media (min-width: 768px) { - .nav-justified > li { - display: table-cell; - width: 1%; - } - .nav-justified > li > a { - margin-bottom: 0; - } -} -.nav-tabs-justified { - border-bottom: 0; -} -.nav-tabs-justified > li > a { - margin-right: 0; - border-radius: 4px; -} -.nav-tabs-justified > .active > a, -.nav-tabs-justified > .active > a:hover, -.nav-tabs-justified > .active > a:focus { - border: 1px solid #ddd; -} -@media (min-width: 768px) { - .nav-tabs-justified > li > a { - border-bottom: 1px solid #ddd; - border-radius: 4px 4px 0 0; - } - .nav-tabs-justified > .active > a, - .nav-tabs-justified > .active > a:hover, - .nav-tabs-justified > .active > a:focus { - border-bottom-color: #fff; - } -} -.tab-content > .tab-pane { - display: none; -} -.tab-content > .active { - display: block; -} -.nav-tabs .dropdown-menu { - margin-top: -1px; - border-top-left-radius: 0; - border-top-right-radius: 0; -} -.navbar { - position: relative; - min-height: 50px; - margin-bottom: 20px; - border: 1px solid transparent; -} -@media (min-width: 768px) { - .navbar { - border-radius: 4px; - } -} -@media (min-width: 768px) { - .navbar-header { - float: left; - } -} -.navbar-collapse { - padding-right: 15px; - padding-left: 15px; - overflow-x: visible; - -webkit-overflow-scrolling: touch; - border-top: 1px solid transparent; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); -} -.navbar-collapse.in { - overflow-y: auto; -} -@media (min-width: 768px) { - .navbar-collapse { - width: auto; - border-top: 0; - -webkit-box-shadow: none; - 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-right: 0; - padding-left: 0; - } -} -.navbar-fixed-top .navbar-collapse, -.navbar-fixed-bottom .navbar-collapse { - max-height: 340px; -} -@media (max-device-width: 480px) and (orientation: landscape) { - .navbar-fixed-top .navbar-collapse, - .navbar-fixed-bottom .navbar-collapse { - max-height: 200px; - } -} -.container > .navbar-header, -.container-fluid > .navbar-header, -.container > .navbar-collapse, -.container-fluid > .navbar-collapse { - margin-right: -15px; - margin-left: -15px; -} -@media (min-width: 768px) { - .container > .navbar-header, - .container-fluid > .navbar-header, - .container > .navbar-collapse, - .container-fluid > .navbar-collapse { - margin-right: 0; - margin-left: 0; - } -} -.navbar-static-top { - z-index: 1000; - border-width: 0 0 1px; -} -@media (min-width: 768px) { - .navbar-static-top { - border-radius: 0; - } -} -.navbar-fixed-top, -.navbar-fixed-bottom { - position: fixed; - right: 0; - left: 0; - z-index: 1030; -} -@media (min-width: 768px) { - .navbar-fixed-top, - .navbar-fixed-bottom { - border-radius: 0; - } -} -.navbar-fixed-top { - top: 0; - border-width: 0 0 1px; -} -.navbar-fixed-bottom { - bottom: 0; - margin-bottom: 0; - border-width: 1px 0 0; -} -.navbar-brand { - float: left; - height: 50px; - padding: 15px 15px; - font-size: 18px; - line-height: 20px; -} -.navbar-brand:hover, -.navbar-brand:focus { - text-decoration: none; -} -.navbar-brand > img { - display: block; -} -@media (min-width: 768px) { - .navbar > .container .navbar-brand, - .navbar > .container-fluid .navbar-brand { - margin-left: -15px; - } -} -.navbar-toggle { - position: relative; - float: right; - padding: 9px 10px; - margin-top: 8px; - margin-right: 15px; - margin-bottom: 8px; - background-color: transparent; - background-image: none; - border: 1px solid transparent; - border-radius: 4px; -} -.navbar-toggle:focus { - outline: 0; -} -.navbar-toggle .icon-bar { - display: block; - width: 22px; - height: 2px; - border-radius: 1px; -} -.navbar-toggle .icon-bar + .icon-bar { - margin-top: 4px; -} -@media (min-width: 768px) { - .navbar-toggle { - display: none; - } -} -.navbar-nav { - margin: 7.5px -15px; -} -.navbar-nav > li > a { - padding-top: 10px; - padding-bottom: 10px; - line-height: 20px; -} -@media (max-width: 767px) { - .navbar-nav .open .dropdown-menu { - position: static; - float: none; - width: auto; - margin-top: 0; - background-color: transparent; - border: 0; - -webkit-box-shadow: none; - box-shadow: none; - } - .navbar-nav .open .dropdown-menu > li > a, - .navbar-nav .open .dropdown-menu .dropdown-header { - padding: 5px 15px 5px 25px; - } - .navbar-nav .open .dropdown-menu > li > a { - line-height: 20px; - } - .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-nav .open .dropdown-menu > li > a:focus { - background-image: none; - } -} -@media (min-width: 768px) { - .navbar-nav { - float: left; - margin: 0; - } - .navbar-nav > li { - float: left; - } - .navbar-nav > li > a { - padding-top: 15px; - padding-bottom: 15px; - } -} -.navbar-form { - padding: 10px 15px; - margin-top: 8px; - margin-right: -15px; - margin-bottom: 8px; - margin-left: -15px; - border-top: 1px solid transparent; - border-bottom: 1px solid transparent; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); -} -@media (min-width: 768px) { - .navbar-form .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .form-control { - display: inline-block; - width: auto; - vertical-align: middle; - } - .navbar-form .form-control-static { - display: inline-block; - } - .navbar-form .input-group { - display: inline-table; - vertical-align: middle; - } - .navbar-form .input-group .input-group-addon, - .navbar-form .input-group .input-group-btn, - .navbar-form .input-group .form-control { - width: auto; - } - .navbar-form .input-group > .form-control { - width: 100%; - } - .navbar-form .control-label { - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .radio, - .navbar-form .checkbox { - display: inline-block; - margin-top: 0; - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .radio label, - .navbar-form .checkbox label { - padding-left: 0; - } - .navbar-form .radio input[type='radio'], - .navbar-form .checkbox input[type='checkbox'] { - position: relative; - margin-left: 0; - } - .navbar-form .has-feedback .form-control-feedback { - top: 0; - } -} -@media (max-width: 767px) { - .navbar-form .form-group { - margin-bottom: 5px; - } - .navbar-form .form-group:last-child { - margin-bottom: 0; - } -} -@media (min-width: 768px) { - .navbar-form { - width: auto; - padding-top: 0; - padding-bottom: 0; - margin-right: 0; - margin-left: 0; - border: 0; - -webkit-box-shadow: none; - box-shadow: none; - } -} -.navbar-nav > li > .dropdown-menu { - margin-top: 0; - border-top-left-radius: 0; - border-top-right-radius: 0; -} -.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { - margin-bottom: 0; - border-top-left-radius: 4px; - border-top-right-radius: 4px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.navbar-btn { - margin-top: 8px; - margin-bottom: 8px; -} -.navbar-btn.btn-sm { - margin-top: 10px; - margin-bottom: 10px; -} -.navbar-btn.btn-xs { - margin-top: 14px; - margin-bottom: 14px; -} -.navbar-text { - margin-top: 15px; - margin-bottom: 15px; -} -@media (min-width: 768px) { - .navbar-text { - float: left; - margin-right: 15px; - margin-left: 15px; - } -} -@media (min-width: 768px) { - .navbar-left { - float: left !important; - } - .navbar-right { - float: right !important; - margin-right: -15px; - } - .navbar-right ~ .navbar-right { - margin-right: 0; - } -} -.navbar-default { - background-color: #f8f8f8; - border-color: #e7e7e7; -} -.navbar-default .navbar-brand { - color: #777; -} -.navbar-default .navbar-brand:hover, -.navbar-default .navbar-brand:focus { - color: #5e5e5e; - background-color: transparent; -} -.navbar-default .navbar-text { - color: #777; -} -.navbar-default .navbar-nav > li > a { - color: #777; -} -.navbar-default .navbar-nav > li > a:hover, -.navbar-default .navbar-nav > li > a:focus { - color: #333; - background-color: transparent; -} -.navbar-default .navbar-nav > .active > a, -.navbar-default .navbar-nav > .active > a:hover, -.navbar-default .navbar-nav > .active > a:focus { - color: #555; - background-color: #e7e7e7; -} -.navbar-default .navbar-nav > .disabled > a, -.navbar-default .navbar-nav > .disabled > a:hover, -.navbar-default .navbar-nav > .disabled > a:focus { - color: #ccc; - background-color: transparent; -} -.navbar-default .navbar-toggle { - border-color: #ddd; -} -.navbar-default .navbar-toggle:hover, -.navbar-default .navbar-toggle:focus { - background-color: #ddd; -} -.navbar-default .navbar-toggle .icon-bar { - background-color: #888; -} -.navbar-default .navbar-collapse, -.navbar-default .navbar-form { - border-color: #e7e7e7; -} -.navbar-default .navbar-nav > .open > a, -.navbar-default .navbar-nav > .open > a:hover, -.navbar-default .navbar-nav > .open > a:focus { - color: #555; - background-color: #e7e7e7; -} -@media (max-width: 767px) { - .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: #333; - 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: #555; - background-color: #e7e7e7; - } - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: #ccc; - background-color: transparent; - } -} -.navbar-default .navbar-link { - color: #777; -} -.navbar-default .navbar-link:hover { - color: #333; -} -.navbar-default .btn-link { - color: #777; -} -.navbar-default .btn-link:hover, -.navbar-default .btn-link:focus { - color: #333; -} -.navbar-default .btn-link[disabled]:hover, -fieldset[disabled] .navbar-default .btn-link:hover, -.navbar-default .btn-link[disabled]:focus, -fieldset[disabled] .navbar-default .btn-link:focus { - color: #ccc; -} -.navbar-inverse { - background-color: #222; - border-color: #080808; -} -.navbar-inverse .navbar-brand { - color: #9d9d9d; -} -.navbar-inverse .navbar-brand:hover, -.navbar-inverse .navbar-brand:focus { - color: #fff; - background-color: transparent; -} -.navbar-inverse .navbar-text { - color: #9d9d9d; -} -.navbar-inverse .navbar-nav > li > a { - color: #9d9d9d; -} -.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: #080808; -} -.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 { - color: #fff; - background-color: #080808; -} -@media (max-width: 767px) { - .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { - border-color: #080808; - } - .navbar-inverse .navbar-nav .open .dropdown-menu .divider { - background-color: #080808; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { - color: #9d9d9d; - } - .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: #080808; - } - .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: #9d9d9d; -} -.navbar-inverse .navbar-link:hover { - color: #fff; -} -.navbar-inverse .btn-link { - color: #9d9d9d; -} -.navbar-inverse .btn-link:hover, -.navbar-inverse .btn-link:focus { - color: #fff; -} -.navbar-inverse .btn-link[disabled]:hover, -fieldset[disabled] .navbar-inverse .btn-link:hover, -.navbar-inverse .btn-link[disabled]:focus, -fieldset[disabled] .navbar-inverse .btn-link:focus { - color: #444; -} -.breadcrumb { - padding: 8px 15px; - margin-bottom: 20px; - list-style: none; - background-color: #f5f5f5; - border-radius: 4px; -} -.breadcrumb > li { - display: inline-block; -} -.breadcrumb > li + li:before { - padding: 0 5px; - color: #ccc; - content: '/\00a0'; -} -.breadcrumb > .active { - color: #777; -} -.pagination { - display: inline-block; - padding-left: 0; - margin: 20px 0; - border-radius: 4px; -} -.pagination > li { - display: inline; -} -.pagination > li > a, -.pagination > li > span { - position: relative; - float: left; - padding: 6px 12px; - margin-left: -1px; - line-height: 1.42857143; - color: #337ab7; - text-decoration: none; - background-color: #fff; - border: 1px solid #ddd; -} -.pagination > li:first-child > a, -.pagination > li:first-child > span { - margin-left: 0; - border-top-left-radius: 4px; - border-bottom-left-radius: 4px; -} -.pagination > li:last-child > a, -.pagination > li:last-child > span { - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; -} -.pagination > li > a:hover, -.pagination > li > span:hover, -.pagination > li > a:focus, -.pagination > li > span:focus { - color: #23527c; - background-color: #eee; - border-color: #ddd; -} -.pagination > .active > a, -.pagination > .active > span, -.pagination > .active > a:hover, -.pagination > .active > span:hover, -.pagination > .active > a:focus, -.pagination > .active > span:focus { - z-index: 2; - color: #fff; - cursor: default; - background-color: #337ab7; - border-color: #337ab7; -} -.pagination > .disabled > span, -.pagination > .disabled > span:hover, -.pagination > .disabled > span:focus, -.pagination > .disabled > a, -.pagination > .disabled > a:hover, -.pagination > .disabled > a:focus { - color: #777; - cursor: not-allowed; - background-color: #fff; - border-color: #ddd; -} -.pagination-lg > li > a, -.pagination-lg > li > span { - padding: 10px 16px; - font-size: 18px; -} -.pagination-lg > li:first-child > a, -.pagination-lg > li:first-child > span { - border-top-left-radius: 6px; - border-bottom-left-radius: 6px; -} -.pagination-lg > li:last-child > a, -.pagination-lg > li:last-child > span { - border-top-right-radius: 6px; - border-bottom-right-radius: 6px; -} -.pagination-sm > li > a, -.pagination-sm > li > span { - padding: 5px 10px; - font-size: 12px; -} -.pagination-sm > li:first-child > a, -.pagination-sm > li:first-child > span { - border-top-left-radius: 3px; - border-bottom-left-radius: 3px; -} -.pagination-sm > li:last-child > a, -.pagination-sm > li:last-child > span { - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; -} -.pager { - padding-left: 0; - margin: 20px 0; - text-align: center; - list-style: none; -} -.pager li { - display: inline; -} -.pager li > a, -.pager li > span { - display: inline-block; - padding: 5px 14px; - background-color: #fff; - border: 1px solid #ddd; - border-radius: 15px; -} -.pager li > a:hover, -.pager li > a:focus { - text-decoration: none; - background-color: #eee; -} -.pager .next > a, -.pager .next > span { - float: right; -} -.pager .previous > a, -.pager .previous > span { - float: left; -} -.pager .disabled > a, -.pager .disabled > a:hover, -.pager .disabled > a:focus, -.pager .disabled > span { - color: #777; - cursor: not-allowed; - background-color: #fff; -} -.label { - display: inline; - padding: 0.2em 0.6em 0.3em; - font-size: 75%; - font-weight: bold; - line-height: 1; - color: #fff; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: 0.25em; -} -a.label:hover, -a.label:focus { - color: #fff; - text-decoration: none; - cursor: pointer; -} -.label:empty { - display: none; -} -.btn .label { - position: relative; - top: -1px; -} -.label-default { - background-color: #777; -} -.label-default[href]:hover, -.label-default[href]:focus { - background-color: #5e5e5e; -} -.label-primary { - background-color: #337ab7; -} -.label-primary[href]:hover, -.label-primary[href]:focus { - background-color: #286090; -} -.label-success { - background-color: #5cb85c; -} -.label-success[href]:hover, -.label-success[href]:focus { - background-color: #449d44; -} -.label-info { - background-color: #5bc0de; -} -.label-info[href]:hover, -.label-info[href]:focus { - background-color: #31b0d5; -} -.label-warning { - background-color: #f0ad4e; -} -.label-warning[href]:hover, -.label-warning[href]:focus { - background-color: #ec971f; -} -.label-danger { - background-color: #d9534f; -} -.label-danger[href]:hover, -.label-danger[href]:focus { - background-color: #c9302c; -} -.badge { - display: inline-block; - min-width: 10px; - padding: 3px 7px; - font-size: 12px; - font-weight: bold; - line-height: 1; - color: #fff; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - background-color: #777; - border-radius: 10px; -} -.badge:empty { - display: none; -} -.btn .badge { - position: relative; - top: -1px; -} -.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; -} -.list-group-item.active > .badge, -.nav-pills > .active > a > .badge { - color: #337ab7; - background-color: #fff; -} -.list-group-item > .badge { - float: right; -} -.list-group-item > .badge + .badge { - margin-right: 5px; -} -.nav-pills > li > a > .badge { - margin-left: 3px; -} -.jumbotron { - padding: 30px 15px; - margin-bottom: 30px; - color: inherit; - background-color: #eee; -} -.jumbotron h1, -.jumbotron .h1 { - color: inherit; -} -.jumbotron p { - margin-bottom: 15px; - font-size: 21px; - font-weight: 200; -} -.jumbotron > hr { - border-top-color: #d5d5d5; -} -.container .jumbotron, -.container-fluid .jumbotron { - border-radius: 6px; -} -.jumbotron .container { - max-width: 100%; -} -@media screen and (min-width: 768px) { - .jumbotron { - padding: 48px 0; - } - .container .jumbotron, - .container-fluid .jumbotron { - padding-right: 60px; - padding-left: 60px; - } - .jumbotron h1, - .jumbotron .h1 { - font-size: 63px; - } -} -.thumbnail { - display: block; - padding: 4px; - margin-bottom: 20px; - line-height: 1.42857143; - background-color: #fff; - border: 1px solid #ddd; - border-radius: 4px; - -webkit-transition: border 0.2s ease-in-out; - -o-transition: border 0.2s ease-in-out; - transition: border 0.2s ease-in-out; -} -.thumbnail > img, -.thumbnail a > img { - margin-right: auto; - margin-left: auto; -} -a.thumbnail:hover, -a.thumbnail:focus, -a.thumbnail.active { - border-color: #337ab7; -} -.thumbnail .caption { - padding: 9px; - color: #333; -} -.alert { - padding: 15px; - margin-bottom: 20px; - border: 1px solid transparent; - border-radius: 4px; -} -.alert h4 { - margin-top: 0; - color: inherit; -} -.alert .alert-link { - font-weight: bold; -} -.alert > p, -.alert > ul { - margin-bottom: 0; -} -.alert > p + p { - margin-top: 5px; -} -.alert-dismissable, -.alert-dismissible { - padding-right: 35px; -} -.alert-dismissable .close, -.alert-dismissible .close { - position: relative; - top: -2px; - right: -21px; - color: inherit; -} -.alert-success { - color: #3c763d; - background-color: #dff0d8; - border-color: #d6e9c6; -} -.alert-success hr { - border-top-color: #c9e2b3; -} -.alert-success .alert-link { - color: #2b542c; -} -.alert-info { - color: #31708f; - background-color: #d9edf7; - border-color: #bce8f1; -} -.alert-info hr { - border-top-color: #a6e1ec; -} -.alert-info .alert-link { - color: #245269; -} -.alert-warning { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #faebcc; -} -.alert-warning hr { - border-top-color: #f7e1b5; -} -.alert-warning .alert-link { - color: #66512c; -} -.alert-danger { - color: #a94442; - background-color: #f2dede; - border-color: #ebccd1; -} -.alert-danger hr { - border-top-color: #e4b9c0; -} -.alert-danger .alert-link { - color: #843534; -} -@-webkit-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} -@-o-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 { - height: 20px; - margin-bottom: 20px; - overflow: hidden; - background-color: #f5f5f5; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); -} -.progress-bar { - float: left; - width: 0; - height: 100%; - font-size: 12px; - line-height: 20px; - color: #fff; - text-align: center; - background-color: #337ab7; - -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; - -o-transition: width 0.6s ease; - transition: width 0.6s ease; -} -.progress-striped .progress-bar, -.progress-bar-striped { - background-image: -webkit-linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); - background-image: -o-linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); - background-image: linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); - -webkit-background-size: 40px 40px; - background-size: 40px 40px; -} -.progress.active .progress-bar, -.progress-bar.active { - -webkit-animation: progress-bar-stripes 2s linear infinite; - -o-animation: progress-bar-stripes 2s linear infinite; - animation: progress-bar-stripes 2s linear infinite; -} -.progress-bar-success { - background-color: #5cb85c; -} -.progress-striped .progress-bar-success { - background-image: -webkit-linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); - background-image: -o-linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); - background-image: linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); -} -.progress-bar-info { - background-color: #5bc0de; -} -.progress-striped .progress-bar-info { - background-image: -webkit-linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); - background-image: -o-linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); - background-image: linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); -} -.progress-bar-warning { - background-color: #f0ad4e; -} -.progress-striped .progress-bar-warning { - background-image: -webkit-linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); - background-image: -o-linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); - background-image: linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); -} -.progress-bar-danger { - background-color: #d9534f; -} -.progress-striped .progress-bar-danger { - background-image: -webkit-linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); - background-image: -o-linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); - background-image: linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); -} -.media { - margin-top: 15px; -} -.media:first-child { - margin-top: 0; -} -.media, -.media-body { - overflow: hidden; - zoom: 1; -} -.media-body { - width: 10000px; -} -.media-object { - display: block; -} -.media-right, -.media > .pull-right { - padding-left: 10px; -} -.media-left, -.media > .pull-left { - padding-right: 10px; -} -.media-left, -.media-right, -.media-body { - display: table-cell; - vertical-align: top; -} -.media-middle { - vertical-align: middle; -} -.media-bottom { - vertical-align: bottom; -} -.media-heading { - margin-top: 0; - margin-bottom: 5px; -} -.media-list { - padding-left: 0; - list-style: none; -} -.list-group { - padding-left: 0; - margin-bottom: 20px; -} -.list-group-item { - position: relative; - display: block; - padding: 10px 15px; - margin-bottom: -1px; - background-color: #fff; - border: 1px solid #ddd; -} -.list-group-item:first-child { - border-top-left-radius: 4px; - border-top-right-radius: 4px; -} -.list-group-item:last-child { - margin-bottom: 0; - border-bottom-right-radius: 4px; - border-bottom-left-radius: 4px; -} -a.list-group-item { - color: #555; -} -a.list-group-item .list-group-item-heading { - color: #333; -} -a.list-group-item:hover, -a.list-group-item:focus { - color: #555; - text-decoration: none; - background-color: #f5f5f5; -} -.list-group-item.disabled, -.list-group-item.disabled:hover, -.list-group-item.disabled:focus { - color: #777; - cursor: not-allowed; - background-color: #eee; -} -.list-group-item.disabled .list-group-item-heading, -.list-group-item.disabled:hover .list-group-item-heading, -.list-group-item.disabled:focus .list-group-item-heading { - color: inherit; -} -.list-group-item.disabled .list-group-item-text, -.list-group-item.disabled:hover .list-group-item-text, -.list-group-item.disabled:focus .list-group-item-text { - color: #777; -} -.list-group-item.active, -.list-group-item.active:hover, -.list-group-item.active:focus { - z-index: 2; - color: #fff; - background-color: #337ab7; - border-color: #337ab7; -} -.list-group-item.active .list-group-item-heading, -.list-group-item.active:hover .list-group-item-heading, -.list-group-item.active:focus .list-group-item-heading, -.list-group-item.active .list-group-item-heading > small, -.list-group-item.active:hover .list-group-item-heading > small, -.list-group-item.active:focus .list-group-item-heading > small, -.list-group-item.active .list-group-item-heading > .small, -.list-group-item.active:hover .list-group-item-heading > .small, -.list-group-item.active:focus .list-group-item-heading > .small { - color: inherit; -} -.list-group-item.active .list-group-item-text, -.list-group-item.active:hover .list-group-item-text, -.list-group-item.active:focus .list-group-item-text { - color: #c7ddef; -} -.list-group-item-success { - color: #3c763d; - background-color: #dff0d8; -} -a.list-group-item-success { - color: #3c763d; -} -a.list-group-item-success .list-group-item-heading { - color: inherit; -} -a.list-group-item-success:hover, -a.list-group-item-success:focus { - color: #3c763d; - background-color: #d0e9c6; -} -a.list-group-item-success.active, -a.list-group-item-success.active:hover, -a.list-group-item-success.active:focus { - color: #fff; - background-color: #3c763d; - border-color: #3c763d; -} -.list-group-item-info { - color: #31708f; - background-color: #d9edf7; -} -a.list-group-item-info { - color: #31708f; -} -a.list-group-item-info .list-group-item-heading { - color: inherit; -} -a.list-group-item-info:hover, -a.list-group-item-info:focus { - color: #31708f; - background-color: #c4e3f3; -} -a.list-group-item-info.active, -a.list-group-item-info.active:hover, -a.list-group-item-info.active:focus { - color: #fff; - background-color: #31708f; - border-color: #31708f; -} -.list-group-item-warning { - color: #8a6d3b; - background-color: #fcf8e3; -} -a.list-group-item-warning { - color: #8a6d3b; -} -a.list-group-item-warning .list-group-item-heading { - color: inherit; -} -a.list-group-item-warning:hover, -a.list-group-item-warning:focus { - color: #8a6d3b; - background-color: #faf2cc; -} -a.list-group-item-warning.active, -a.list-group-item-warning.active:hover, -a.list-group-item-warning.active:focus { - color: #fff; - background-color: #8a6d3b; - border-color: #8a6d3b; -} -.list-group-item-danger { - color: #a94442; - background-color: #f2dede; -} -a.list-group-item-danger { - color: #a94442; -} -a.list-group-item-danger .list-group-item-heading { - color: inherit; -} -a.list-group-item-danger:hover, -a.list-group-item-danger:focus { - color: #a94442; - background-color: #ebcccc; -} -a.list-group-item-danger.active, -a.list-group-item-danger.active:hover, -a.list-group-item-danger.active:focus { - color: #fff; - background-color: #a94442; - border-color: #a94442; -} -.list-group-item-heading { - margin-top: 0; - margin-bottom: 5px; -} -.list-group-item-text { - margin-bottom: 0; - line-height: 1.3; -} -.panel { - margin-bottom: 20px; - background-color: #fff; - border: 1px solid transparent; - border-radius: 4px; - -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); -} -.panel-body { - padding: 15px; -} -.panel-heading { - padding: 10px 15px; - border-bottom: 1px solid transparent; - border-top-left-radius: 3px; - border-top-right-radius: 3px; -} -.panel-heading > .dropdown .dropdown-toggle { - color: inherit; -} -.panel-title { - margin-top: 0; - margin-bottom: 0; - font-size: 16px; - color: inherit; -} -.panel-title > a, -.panel-title > small, -.panel-title > .small, -.panel-title > small > a, -.panel-title > .small > a { - color: inherit; -} -.panel-footer { - padding: 10px 15px; - background-color: #f5f5f5; - border-top: 1px solid #ddd; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} -.panel > .list-group, -.panel > .panel-collapse > .list-group { - margin-bottom: 0; -} -.panel > .list-group .list-group-item, -.panel > .panel-collapse > .list-group .list-group-item { - border-width: 1px 0; - border-radius: 0; -} -.panel > .list-group:first-child .list-group-item:first-child, -.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child { - border-top: 0; - border-top-left-radius: 3px; - border-top-right-radius: 3px; -} -.panel > .list-group:last-child .list-group-item:last-child, -.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child { - border-bottom: 0; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} -.panel-heading + .list-group .list-group-item:first-child { - border-top-width: 0; -} -.list-group + .panel-footer { - border-top-width: 0; -} -.panel > .table, -.panel > .table-responsive > .table, -.panel > .panel-collapse > .table { - margin-bottom: 0; -} -.panel > .table caption, -.panel > .table-responsive > .table caption, -.panel > .panel-collapse > .table caption { - padding-right: 15px; - padding-left: 15px; -} -.panel > .table:first-child, -.panel > .table-responsive:first-child > .table:first-child { - border-top-left-radius: 3px; - border-top-right-radius: 3px; -} -.panel > .table:first-child > thead:first-child > tr:first-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child, -.panel > .table:first-child > tbody:first-child > tr:first-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child { - border-top-left-radius: 3px; - border-top-right-radius: 3px; -} -.panel > .table:first-child > thead:first-child > tr:first-child td:first-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, -.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, -.panel > .table:first-child > thead:first-child > tr:first-child th:first-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, -.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { - border-top-left-radius: 3px; -} -.panel > .table:first-child > thead:first-child > tr:first-child td:last-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, -.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, -.panel > .table:first-child > thead:first-child > tr:first-child th:last-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, -.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { - border-top-right-radius: 3px; -} -.panel > .table:last-child, -.panel > .table-responsive:last-child > .table:last-child { - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} -.panel > .table:last-child > tbody:last-child > tr:last-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child { - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} -.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, -.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { - border-bottom-left-radius: 3px; -} -.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, -.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { - border-bottom-right-radius: 3px; -} -.panel > .panel-body + .table, -.panel > .panel-body + .table-responsive, -.panel > .table + .panel-body, -.panel > .table-responsive + .panel-body { - border-top: 1px solid #ddd; -} -.panel > .table > tbody:first-child > tr:first-child th, -.panel > .table > tbody:first-child > tr:first-child td { - border-top: 0; -} -.panel > .table-bordered, -.panel > .table-responsive > .table-bordered { - border: 0; -} -.panel > .table-bordered > thead > tr > th:first-child, -.panel > .table-responsive > .table-bordered > thead > tr > th:first-child, -.panel > .table-bordered > tbody > tr > th:first-child, -.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, -.panel > .table-bordered > tfoot > tr > th:first-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, -.panel > .table-bordered > thead > tr > td:first-child, -.panel > .table-responsive > .table-bordered > thead > tr > td:first-child, -.panel > .table-bordered > tbody > tr > td:first-child, -.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, -.panel > .table-bordered > tfoot > tr > td:first-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; -} -.panel > .table-bordered > thead > tr > th:last-child, -.panel > .table-responsive > .table-bordered > thead > tr > th:last-child, -.panel > .table-bordered > tbody > tr > th:last-child, -.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, -.panel > .table-bordered > tfoot > tr > th:last-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, -.panel > .table-bordered > thead > tr > td:last-child, -.panel > .table-responsive > .table-bordered > thead > tr > td:last-child, -.panel > .table-bordered > tbody > tr > td:last-child, -.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, -.panel > .table-bordered > tfoot > tr > td:last-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; -} -.panel > .table-bordered > thead > tr:first-child > td, -.panel > .table-responsive > .table-bordered > thead > tr:first-child > td, -.panel > .table-bordered > tbody > tr:first-child > td, -.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, -.panel > .table-bordered > thead > tr:first-child > th, -.panel > .table-responsive > .table-bordered > thead > tr:first-child > th, -.panel > .table-bordered > tbody > tr:first-child > th, -.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th { - border-bottom: 0; -} -.panel > .table-bordered > tbody > tr:last-child > td, -.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, -.panel > .table-bordered > tfoot > tr:last-child > td, -.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, -.panel > .table-bordered > tbody > tr:last-child > th, -.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, -.panel > .table-bordered > tfoot > tr:last-child > th, -.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { - border-bottom: 0; -} -.panel > .table-responsive { - margin-bottom: 0; - border: 0; -} -.panel-group { - margin-bottom: 20px; -} -.panel-group .panel { - margin-bottom: 0; - border-radius: 4px; -} -.panel-group .panel + .panel { - margin-top: 5px; -} -.panel-group .panel-heading { - border-bottom: 0; -} -.panel-group .panel-heading + .panel-collapse > .panel-body, -.panel-group .panel-heading + .panel-collapse > .list-group { - border-top: 1px solid #ddd; -} -.panel-group .panel-footer { - border-top: 0; -} -.panel-group .panel-footer + .panel-collapse .panel-body { - border-bottom: 1px solid #ddd; -} -.panel-default { - border-color: #ddd; -} -.panel-default > .panel-heading { - color: #333; - background-color: #f5f5f5; - border-color: #ddd; -} -.panel-default > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #ddd; -} -.panel-default > .panel-heading .badge { - color: #f5f5f5; - background-color: #333; -} -.panel-default > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #ddd; -} -.panel-primary { - border-color: #337ab7; -} -.panel-primary > .panel-heading { - color: #fff; - background-color: #337ab7; - border-color: #337ab7; -} -.panel-primary > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #337ab7; -} -.panel-primary > .panel-heading .badge { - color: #337ab7; - background-color: #fff; -} -.panel-primary > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #337ab7; -} -.panel-success { - border-color: #d6e9c6; -} -.panel-success > .panel-heading { - color: #3c763d; - background-color: #dff0d8; - border-color: #d6e9c6; -} -.panel-success > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #d6e9c6; -} -.panel-success > .panel-heading .badge { - color: #dff0d8; - background-color: #3c763d; -} -.panel-success > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #d6e9c6; -} -.panel-info { - border-color: #bce8f1; -} -.panel-info > .panel-heading { - color: #31708f; - background-color: #d9edf7; - border-color: #bce8f1; -} -.panel-info > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #bce8f1; -} -.panel-info > .panel-heading .badge { - color: #d9edf7; - background-color: #31708f; -} -.panel-info > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #bce8f1; -} -.panel-warning { - border-color: #faebcc; -} -.panel-warning > .panel-heading { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #faebcc; -} -.panel-warning > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #faebcc; -} -.panel-warning > .panel-heading .badge { - color: #fcf8e3; - background-color: #8a6d3b; -} -.panel-warning > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #faebcc; -} -.panel-danger { - border-color: #ebccd1; -} -.panel-danger > .panel-heading { - color: #a94442; - background-color: #f2dede; - border-color: #ebccd1; -} -.panel-danger > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #ebccd1; -} -.panel-danger > .panel-heading .badge { - color: #f2dede; - background-color: #a94442; -} -.panel-danger > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #ebccd1; -} -.embed-responsive { - position: relative; - display: block; - height: 0; - padding: 0; - overflow: hidden; -} -.embed-responsive .embed-responsive-item, -.embed-responsive iframe, -.embed-responsive embed, -.embed-responsive object, -.embed-responsive video { - position: absolute; - top: 0; - bottom: 0; - left: 0; - width: 100%; - height: 100%; - border: 0; -} -.embed-responsive-16by9 { - padding-bottom: 56.25%; -} -.embed-responsive-4by3 { - padding-bottom: 75%; -} -.well { - min-height: 20px; - padding: 19px; - margin-bottom: 20px; - background-color: #f5f5f5; - border: 1px solid #e3e3e3; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); -} -.well blockquote { - border-color: #ddd; - border-color: rgba(0, 0, 0, 0.15); -} -.well-lg { - padding: 24px; - border-radius: 6px; -} -.well-sm { - padding: 9px; - border-radius: 3px; -} -.close { - float: right; - font-size: 21px; - font-weight: bold; - line-height: 1; - color: #000; - text-shadow: 0 1px 0 #fff; - filter: alpha(opacity=20); - opacity: 0.2; -} -.close:hover, -.close:focus { - color: #000; - text-decoration: none; - cursor: pointer; - filter: alpha(opacity=50); - opacity: 0.5; -} -button.close { - -webkit-appearance: none; - padding: 0; - cursor: pointer; - background: transparent; - border: 0; -} -.modal-open { - overflow: hidden; -} -.modal { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1050; - display: none; - overflow: hidden; - -webkit-overflow-scrolling: touch; - outline: 0; -} -.modal.fade .modal-dialog { - -webkit-transition: -webkit-transform 0.3s ease-out; - -o-transition: -o-transform 0.3s ease-out; - transition: transform 0.3s ease-out; - -webkit-transform: translate(0, -25%); - -ms-transform: translate(0, -25%); - -o-transform: translate(0, -25%); - transform: translate(0, -25%); -} -.modal.in .modal-dialog { - -webkit-transform: translate(0, 0); - -ms-transform: translate(0, 0); - -o-transform: translate(0, 0); - transform: translate(0, 0); -} -.modal-open .modal { - overflow-x: hidden; - overflow-y: auto; -} -.modal-dialog { - position: relative; - width: auto; - margin: 10px; -} -.modal-content { - position: relative; - background-color: #fff; - -webkit-background-clip: padding-box; - background-clip: padding-box; - border: 1px solid #999; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 6px; - outline: 0; - -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); - box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); -} -.modal-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1040; - background-color: #000; -} -.modal-backdrop.fade { - filter: alpha(opacity=0); - opacity: 0; -} -.modal-backdrop.in { - filter: alpha(opacity=50); - opacity: 0.5; -} -.modal-header { - min-height: 16.42857143px; - padding: 15px; - border-bottom: 1px solid #e5e5e5; -} -.modal-header .close { - margin-top: -2px; -} -.modal-title { - margin: 0; - line-height: 1.42857143; -} -.modal-body { - position: relative; - padding: 15px; -} -.modal-footer { - padding: 15px; - text-align: right; - border-top: 1px solid #e5e5e5; -} -.modal-footer .btn + .btn { - margin-bottom: 0; - margin-left: 5px; -} -.modal-footer .btn-group .btn + .btn { - margin-left: -1px; -} -.modal-footer .btn-block + .btn-block { - margin-left: 0; -} -.modal-scrollbar-measure { - position: absolute; - top: -9999px; - width: 50px; - height: 50px; - overflow: scroll; -} -@media (min-width: 768px) { - .modal-dialog { - width: 600px; - margin: 30px auto; - } - .modal-content { - -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); - box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); - } - .modal-sm { - width: 300px; - } -} -@media (min-width: 992px) { - .modal-lg { - width: 900px; - } -} -.tooltip { - position: absolute; - z-index: 1070; - display: block; - font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; - font-size: 12px; - font-weight: normal; - line-height: 1.4; - filter: alpha(opacity=0); - opacity: 0; -} -.tooltip.in { - filter: alpha(opacity=90); - opacity: 0.9; -} -.tooltip.top { - padding: 5px 0; - margin-top: -3px; -} -.tooltip.right { - padding: 0 5px; - margin-left: 3px; -} -.tooltip.bottom { - padding: 5px 0; - margin-top: 3px; -} -.tooltip.left { - padding: 0 5px; - margin-left: -3px; -} -.tooltip-inner { - max-width: 200px; - padding: 3px 8px; - color: #fff; - text-align: center; - text-decoration: none; - background-color: #000; - border-radius: 4px; -} -.tooltip-arrow { - position: absolute; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} -.tooltip.top .tooltip-arrow { - bottom: 0; - left: 50%; - margin-left: -5px; - border-width: 5px 5px 0; - border-top-color: #000; -} -.tooltip.top-left .tooltip-arrow { - right: 5px; - bottom: 0; - margin-bottom: -5px; - border-width: 5px 5px 0; - border-top-color: #000; -} -.tooltip.top-right .tooltip-arrow { - bottom: 0; - left: 5px; - margin-bottom: -5px; - border-width: 5px 5px 0; - border-top-color: #000; -} -.tooltip.right .tooltip-arrow { - top: 50%; - left: 0; - margin-top: -5px; - border-width: 5px 5px 5px 0; - border-right-color: #000; -} -.tooltip.left .tooltip-arrow { - top: 50%; - right: 0; - margin-top: -5px; - border-width: 5px 0 5px 5px; - border-left-color: #000; -} -.tooltip.bottom .tooltip-arrow { - top: 0; - left: 50%; - margin-left: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000; -} -.tooltip.bottom-left .tooltip-arrow { - top: 0; - right: 5px; - margin-top: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000; -} -.tooltip.bottom-right .tooltip-arrow { - top: 0; - left: 5px; - margin-top: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000; -} -.popover { - position: absolute; - top: 0; - left: 0; - z-index: 1060; - display: none; - max-width: 276px; - padding: 1px; - font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; - font-size: 14px; - font-weight: normal; - line-height: 1.42857143; - text-align: left; - white-space: normal; - background-color: #fff; - -webkit-background-clip: padding-box; - 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); -} -.popover.top { - margin-top: -10px; -} -.popover.right { - margin-left: 10px; -} -.popover.bottom { - margin-top: 10px; -} -.popover.left { - margin-left: -10px; -} -.popover-title { - padding: 8px 14px; - margin: 0; - font-size: 14px; - background-color: #f7f7f7; - border-bottom: 1px solid #ebebeb; - border-radius: 5px 5px 0 0; -} -.popover-content { - padding: 9px 14px; -} -.popover > .arrow, -.popover > .arrow:after { - position: absolute; - display: block; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} -.popover > .arrow { - border-width: 11px; -} -.popover > .arrow:after { - content: ''; - border-width: 10px; -} -.popover.top > .arrow { - bottom: -11px; - left: 50%; - margin-left: -11px; - border-top-color: #999; - border-top-color: rgba(0, 0, 0, 0.25); - border-bottom-width: 0; -} -.popover.top > .arrow:after { - bottom: 1px; - margin-left: -10px; - content: ' '; - border-top-color: #fff; - border-bottom-width: 0; -} -.popover.right > .arrow { - top: 50%; - left: -11px; - margin-top: -11px; - border-right-color: #999; - border-right-color: rgba(0, 0, 0, 0.25); - border-left-width: 0; -} -.popover.right > .arrow:after { - bottom: -10px; - left: 1px; - content: ' '; - border-right-color: #fff; - border-left-width: 0; -} -.popover.bottom > .arrow { - top: -11px; - left: 50%; - margin-left: -11px; - border-top-width: 0; - border-bottom-color: #999; - border-bottom-color: rgba(0, 0, 0, 0.25); -} -.popover.bottom > .arrow:after { - top: 1px; - margin-left: -10px; - content: ' '; - border-top-width: 0; - border-bottom-color: #fff; -} -.popover.left > .arrow { - top: 50%; - right: -11px; - margin-top: -11px; - border-right-width: 0; - border-left-color: #999; - border-left-color: rgba(0, 0, 0, 0.25); -} -.popover.left > .arrow:after { - right: 1px; - bottom: -10px; - content: ' '; - border-right-width: 0; - border-left-color: #fff; -} -.carousel { - position: relative; -} -.carousel-inner { - position: relative; - width: 100%; - overflow: hidden; -} -.carousel-inner > .item { - position: relative; - display: none; - -webkit-transition: 0.6s ease-in-out left; - -o-transition: 0.6s ease-in-out left; - transition: 0.6s ease-in-out left; -} -.carousel-inner > .item > img, -.carousel-inner > .item > a > img { - line-height: 1; -} -@media all and (transform-3d), (-webkit-transform-3d) { - .carousel-inner > .item { - -webkit-transition: -webkit-transform 0.6s ease-in-out; - -o-transition: -o-transform 0.6s ease-in-out; - transition: transform 0.6s ease-in-out; - - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - -webkit-perspective: 1000; - perspective: 1000; - } - .carousel-inner > .item.next, - .carousel-inner > .item.active.right { - left: 0; - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); - } - .carousel-inner > .item.prev, - .carousel-inner > .item.active.left { - left: 0; - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - } - .carousel-inner > .item.next.left, - .carousel-inner > .item.prev.right, - .carousel-inner > .item.active { - left: 0; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} -.carousel-inner > .active, -.carousel-inner > .next, -.carousel-inner > .prev { - display: block; -} -.carousel-inner > .active { - left: 0; -} -.carousel-inner > .next, -.carousel-inner > .prev { - position: absolute; - top: 0; - width: 100%; -} -.carousel-inner > .next { - left: 100%; -} -.carousel-inner > .prev { - left: -100%; -} -.carousel-inner > .next.left, -.carousel-inner > .prev.right { - left: 0; -} -.carousel-inner > .active.left { - left: -100%; -} -.carousel-inner > .active.right { - left: 100%; -} -.carousel-control { - position: absolute; - top: 0; - bottom: 0; - left: 0; - width: 15%; - font-size: 20px; - color: #fff; - text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); - filter: alpha(opacity=50); - opacity: 0.5; -} -.carousel-control.left { - background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); - background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); - background-image: -webkit-gradient( - linear, - left top, - right top, - from(rgba(0, 0, 0, 0.5)), - to(rgba(0, 0, 0, 0.0001)) - ); - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); - background-repeat: repeat-x; -} -.carousel-control.right { - right: 0; - left: auto; - background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); - background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); - background-image: -webkit-gradient( - linear, - left top, - right top, - from(rgba(0, 0, 0, 0.0001)), - to(rgba(0, 0, 0, 0.5)) - ); - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); - background-repeat: repeat-x; -} -.carousel-control:hover, -.carousel-control:focus { - color: #fff; - text-decoration: none; - filter: alpha(opacity=90); - outline: 0; - opacity: 0.9; -} -.carousel-control .icon-prev, -.carousel-control .icon-next, -.carousel-control .glyphicon-chevron-left, -.carousel-control .glyphicon-chevron-right { - position: absolute; - top: 50%; - z-index: 5; - display: inline-block; -} -.carousel-control .icon-prev, -.carousel-control .glyphicon-chevron-left { - left: 50%; - margin-left: -10px; -} -.carousel-control .icon-next, -.carousel-control .glyphicon-chevron-right { - right: 50%; - margin-right: -10px; -} -.carousel-control .icon-prev, -.carousel-control .icon-next { - width: 20px; - height: 20px; - margin-top: -10px; - font-family: serif; - line-height: 1; -} -.carousel-control .icon-prev:before { - content: '\2039'; -} -.carousel-control .icon-next:before { - content: '\203a'; -} -.carousel-indicators { - position: absolute; - bottom: 10px; - left: 50%; - z-index: 15; - width: 60%; - padding-left: 0; - margin-left: -30%; - text-align: center; - list-style: none; -} -.carousel-indicators li { - display: inline-block; - width: 10px; - height: 10px; - margin: 1px; - text-indent: -999px; - cursor: pointer; - background-color: #000 \9; - background-color: rgba(0, 0, 0, 0); - border: 1px solid #fff; - border-radius: 10px; -} -.carousel-indicators .active { - width: 12px; - height: 12px; - margin: 0; - background-color: #fff; -} -.carousel-caption { - position: absolute; - right: 15%; - bottom: 20px; - left: 15%; - z-index: 10; - padding-top: 20px; - padding-bottom: 20px; - color: #fff; - text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); -} -.carousel-caption .btn { - text-shadow: none; -} -@media screen and (min-width: 768px) { - .carousel-control .glyphicon-chevron-left, - .carousel-control .glyphicon-chevron-right, - .carousel-control .icon-prev, - .carousel-control .icon-next { - width: 30px; - height: 30px; - margin-top: -15px; - font-size: 30px; - } - .carousel-control .glyphicon-chevron-left, - .carousel-control .icon-prev { - margin-left: -15px; - } - .carousel-control .glyphicon-chevron-right, - .carousel-control .icon-next { - margin-right: -15px; - } - .carousel-caption { - right: 20%; - left: 20%; - padding-bottom: 30px; - } - .carousel-indicators { - bottom: 20px; - } -} -.clearfix:before, -.clearfix:after, -.dl-horizontal dd:before, -.dl-horizontal dd:after, -.container:before, -.container:after, -.container-fluid:before, -.container-fluid:after, -.row:before, -.row:after, -.form-horizontal .form-group:before, -.form-horizontal .form-group:after, -.btn-toolbar:before, -.btn-toolbar:after, -.btn-group-vertical > .btn-group:before, -.btn-group-vertical > .btn-group:after, -.nav:before, -.nav:after, -.navbar:before, -.navbar:after, -.navbar-header:before, -.navbar-header:after, -.navbar-collapse:before, -.navbar-collapse:after, -.pager:before, -.pager:after, -.panel-body:before, -.panel-body:after, -.modal-footer:before, -.modal-footer:after { - display: table; - content: ' '; -} -.clearfix:after, -.dl-horizontal dd:after, -.container:after, -.container-fluid:after, -.row:after, -.form-horizontal .form-group:after, -.btn-toolbar:after, -.btn-group-vertical > .btn-group:after, -.nav:after, -.navbar:after, -.navbar-header:after, -.navbar-collapse:after, -.pager:after, -.panel-body:after, -.modal-footer:after { - clear: both; -} -.center-block { - display: block; - margin-right: auto; - margin-left: 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; -} -.affix { - position: fixed; -} -@-ms-viewport { - width: device-width; -} -.visible-xs, -.visible-sm, -.visible-md, -.visible-lg { - display: none !important; -} -.visible-xs-block, -.visible-xs-inline, -.visible-xs-inline-block, -.visible-sm-block, -.visible-sm-inline, -.visible-sm-inline-block, -.visible-md-block, -.visible-md-inline, -.visible-md-inline-block, -.visible-lg-block, -.visible-lg-inline, -.visible-lg-inline-block { - display: none !important; -} -@media (max-width: 767px) { - .visible-xs { - display: block !important; - } - table.visible-xs { - display: table; - } - tr.visible-xs { - display: table-row !important; - } - th.visible-xs, - td.visible-xs { - display: table-cell !important; - } -} -@media (max-width: 767px) { - .visible-xs-block { - display: block !important; - } -} -@media (max-width: 767px) { - .visible-xs-inline { - display: inline !important; - } -} -@media (max-width: 767px) { - .visible-xs-inline-block { - display: inline-block !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm { - display: block !important; - } - table.visible-sm { - display: table; - } - tr.visible-sm { - display: table-row !important; - } - th.visible-sm, - td.visible-sm { - display: table-cell !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-block { - display: block !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-inline { - display: inline !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-inline-block { - display: inline-block !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md { - display: block !important; - } - table.visible-md { - display: table; - } - tr.visible-md { - display: table-row !important; - } - th.visible-md, - td.visible-md { - display: table-cell !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-block { - display: block !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-inline { - display: inline !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-inline-block { - display: inline-block !important; - } -} -@media (min-width: 1200px) { - .visible-lg { - display: block !important; - } - table.visible-lg { - display: table; - } - tr.visible-lg { - display: table-row !important; - } - th.visible-lg, - td.visible-lg { - display: table-cell !important; - } -} -@media (min-width: 1200px) { - .visible-lg-block { - display: block !important; - } -} -@media (min-width: 1200px) { - .visible-lg-inline { - display: inline !important; - } -} -@media (min-width: 1200px) { - .visible-lg-inline-block { - display: inline-block !important; - } -} -@media (max-width: 767px) { - .hidden-xs { - display: none !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .hidden-sm { - display: none !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .hidden-md { - display: none !important; - } -} -@media (min-width: 1200px) { - .hidden-lg { - display: none !important; - } -} -.visible-print { - display: none !important; -} -@media print { - .visible-print { - display: block !important; - } - table.visible-print { - display: table; - } - tr.visible-print { - display: table-row !important; - } - th.visible-print, - td.visible-print { - display: table-cell !important; - } -} -.visible-print-block { - display: none !important; -} -@media print { - .visible-print-block { - display: block !important; - } -} -.visible-print-inline { - display: none !important; -} -@media print { - .visible-print-inline { - display: inline !important; - } -} -.visible-print-inline-block { - display: none !important; -} -@media print { - .visible-print-inline-block { - display: inline-block !important; - } -} -@media print { - .hidden-print { - display: none !important; - } -} diff --git a/theme/styles/web/sass/core/_legacy/bootstrap/fonts/glyphicons-halflings-regular.woff b/theme/styles/web/sass/core/_legacy/bootstrap/fonts/glyphicons-halflings-regular.woff deleted file mode 100644 index 9e61285..0000000 Binary files a/theme/styles/web/sass/core/_legacy/bootstrap/fonts/glyphicons-halflings-regular.woff and /dev/null differ diff --git a/theme/styles/web/sass/core/_legacy/bootstrap/fonts/glyphicons-halflings-regular.woff2 b/theme/styles/web/sass/core/_legacy/bootstrap/fonts/glyphicons-halflings-regular.woff2 deleted file mode 100644 index 64539b5..0000000 Binary files a/theme/styles/web/sass/core/_legacy/bootstrap/fonts/glyphicons-halflings-regular.woff2 and /dev/null differ diff --git a/theme/styles/web/sass/core/_variables.scss b/theme/styles/web/sass/core/_variables.scss deleted file mode 100644 index 5c864ad..0000000 --- a/theme/styles/web/sass/core/_variables.scss +++ /dev/null @@ -1,649 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -// -// ██████╗ █████╗ ███████╗██╗ ██████╗ -// ██╔══██╗██╔══██╗██╔════╝██║██╔════╝ -// ██████╔╝███████║███████╗██║██║ -// ██╔══██╗██╔══██║╚════██║██║██║ -// ██████╔╝██║ ██║███████║██║╚██████╗ -// ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═════╝ -// - - -//== Gray Shades -//## Different gray shades to be used for our variables and components -$gray-darker: #222 !default; -$gray-dark: #333 !default; -$gray: #555 !default; -$gray-light: #888 !default; -$gray-primary: #d7d7d7 !default; -$gray-lighter: #eee !default; - - -//== Step 1: Brand Colors -$brand-default: #DDDDDD !default; -$brand-primary: #0595DB !default; -$brand-inverse: #252C36 !default; -$brand-info: #48B0F7 !default; -$brand-success: #76CA02 !default; -$brand-warning: #f99b1d !default; -$brand-danger: #ed1c24 !default; - -$brand-logo: false !default; -$brand-logo-height: 26px !default; -$brand-logo-width: 26px !default; // Only used for CSS brand logo - - - - - -//== Step 2: UI Customization - -// Default Font Size & Color -$font-size-default: 14px !default; -$font-color-default: #555 !default; - -// Global Border Color -$border-color-default: $gray-primary !default; -$border-radius-default: 4px !default; - -// Topbar -$topbar-bg: #FFF !default; -$topbar-minimalheight: 60px !default; -$topbar-border-color: $border-color-default !default; - -// Topbar mobile -$m-header-height: 45px !default; -$m-header-bg: $topbar-bg !default; -$m-header-color: #555 !default; -$m-header-title-size: 17px !default; - - -// Sidebar -$sidebar-bg: $brand-inverse !default; - -// Navbar Brand Name / For your company, product, or project name (used in layouts/base/) -$navbar-brand-name: $font-color-default !default; - -// Background Colors -$bg-color: #FFF !default; -$bg-color-secondary: #F5F8FD !default; // Background color that is used for specific page templates background - -// Default Link Color -$link-color: $brand-primary !default; -$link-hover-color: darken($link-color, 15%) !default; - - - - - -// -// █████╗ ██████╗ ██╗ ██╗ █████╗ ███╗ ██╗ ██████╗███████╗██████╗ -// ██╔══██╗██╔══██╗██║ ██║██╔══██╗████╗ ██║██╔════╝██╔════╝██╔══██╗ -// ███████║██║ ██║██║ ██║███████║██╔██╗ ██║██║ █████╗ ██║ ██║ -// ██╔══██║██║ ██║╚██╗ ██╔╝██╔══██║██║╚██╗██║██║ ██╔══╝ ██║ ██║ -// ██║ ██║██████╔╝ ╚████╔╝ ██║ ██║██║ ╚████║╚██████╗███████╗██████╔╝ -// ╚═╝ ╚═╝╚═════╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝╚══════╝╚═════╝ -// - - -//== Typography -//## Change your font family, weight, line-height, headings and more (used in components/typography) - -// Font Family Import (Used for google font plugin in theme creater https://ux.mendix.com/theme-creator.html) -$font-family-import: "https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700" !default; -@if $font-family-import != false { - // Only import, if the import is set - @import url($font-family-import); -} - -// Font Family / False = fallback from Bootstrap (Helvetica Neue) -$font-family-base: 'Open Sans', sans-serif !default; - -// Font Sizes -$font-size-large: 16px !default; -$font-size-small: 12px !default; - -// Font Weights -$font-weight-light: 100 !default; -$font-weight-normal: normal !default; -$font-weight-semibold: 600 !default; -$font-weight-bold: bold !default; - -// Font Size Headers -$font-size-h1: 31px !default; -$font-size-h2: 26px !default; -$font-size-h3: 24px !default; -$font-size-h4: 18px !default; -$font-size-h5: $font-size-default !default; -$font-size-h6: 12px !default; - -// Font Weight Headers -$font-weight-header: $font-weight-normal !default; - -// Line Height -$line-height-base: 1.428571429 !default; - -// Spacing -$font-header-margin: 15px 0 30px 0 !default; - -// Text Colors -$font-color-header: #17347B !default; -$font-color-detail: $gray-light !default; - - - - - -//== Navigation -//## Used in components/navigation - -// Default Navigation styling -$navigation-item-height: 60px !default; -$navigation-item-padding: 5px 15px !default; - -$navigation-font-size: $font-size-default !default; -$navigation-sub-font-size: $font-size-small !default; -$navigation-glyph-size: 20px !default; // For glyphicons that you can select in the Mendix Modeler - -$navigation-bg: $brand-inverse !default; -$navigation-bg-hover: lighten($navigation-bg, 4) !default; -$navigation-bg-active: lighten($navigation-bg, 8) !default; -$navigation-color: #FFF !default; -$navigation-color-hover: #FFF !default; -$navigation-color-active: #FFF !default; - -$navigation-sub-bg: darken($navigation-bg, 4) !default; -$navigation-sub-bg-hover: $navigation-sub-bg !default; -$navigation-sub-bg-active: $navigation-sub-bg !default; -$navigation-sub-color: #AAA !default; -$navigation-sub-color-hover: $brand-primary !default; -$navigation-sub-color-active: $brand-primary !default; - -$navigation-border-color: $navigation-bg-hover !default; - -// Navigation Sidebar -$navsidebar-font-size: $font-size-default !default; -$navsidebar-sub-font-size: $font-size-small !default; -$navsidebar-glyph-size: 20px !default; // For glyphicons that you can select in the Mendix Modeler - -$navsidebar-bg: $sidebar-bg !default; -$navsidebar-bg-hover: lighten($navsidebar-bg, 4) !default; -$navsidebar-bg-active: lighten($navsidebar-bg, 8) !default; -$navsidebar-color: #FFF !default; -$navsidebar-color-hover: #FFF !default; -$navsidebar-color-active: #FFF !default; - -$navsidebar-sub-bg: darken($navsidebar-bg, 4) !default; -$navsidebar-sub-bg-hover: $navsidebar-sub-bg !default; -$navsidebar-sub-bg-active: $navsidebar-sub-bg !default; -$navsidebar-sub-color: #AAA !default; -$navsidebar-sub-color-hover: $brand-primary !default; -$navsidebar-sub-color-active: $brand-primary !default; - -$navsidebar-border-color: $navsidebar-bg-hover !default; - -// Navigation topbar -$navtopbar-font-size: $font-size-default !default; -$navtopbar-sub-font-size: $font-size-small !default; -$navtopbar-glyph-size: 1.2em !default; // For glyphicons that you can select in the Mendix Modeler - -$navtopbar-bg: $topbar-bg !default; -$navtopbar-bg-hover: darken($navtopbar-bg, 4) !default; -$navtopbar-bg-active: darken($navtopbar-bg, 8) !default; -$navtopbar-color: $font-color-default !default; -$navtopbar-color-hover: $navtopbar-color !default; -$navtopbar-color-active: $navtopbar-color !default; - -$navtopbar-sub-bg: lighten($navtopbar-bg, 4) !default; -$navtopbar-sub-bg-hover: $navtopbar-sub-bg !default; -$navtopbar-sub-bg-active: $navtopbar-sub-bg !default; -$navtopbar-sub-color: #AAA !default; -$navtopbar-sub-color-hover: $brand-primary !default; -$navtopbar-sub-color-active: $brand-primary !default; - -//## Used in layouts/base -$navtopbar-border-color: $topbar-border-color !default; - - - - -//== Form -//## Used in components/inputs - -// Values that can be used default | lined -$form-input-style: default !default; - -// Form Label -$form-label-color: #666 !default; -$form-label-size: $font-size-default !default; -$form-label-weight: $font-weight-semibold !default; -$form-label-gutter: 8px !default; - -// Form Input dimensions -$form-input-height: auto !default; -$form-input-padding-y: 8px !default; -$form-input-padding-x: 10px !default; -$form-input-font-size: $form-label-size !default; -$form-input-line-height: $line-height-base !default; -$form-input-border-radius: $border-radius-default !default; - -// Form Input styling -$form-input-bg: #FFF !default; -$form-input-bg-focus: #FFF !default; -$form-input-bg-hover: $gray-primary !default; -$form-input-bg-disabled: $gray-lighter !default; -$form-input-color: $font-color-default !default; -$form-input-focus-color: $form-input-color !default; -$form-input-disabled-color: $form-input-color !default; -$form-input-placeholder-color: $gray-light !default; -$form-input-border-color: $border-color-default !default; -$form-input-border-focus-color: $brand-primary !default; - -// Form Input Static styling -$form-input-static-border-color: #F0F0EE !default; - -// Form Group -$form-group-margin-bottom: 15px !default; -$form-group-gutter: 15px !default; - - - - -//== Buttons -//## Define background-color, border-color and text. Used in components/buttons - -// Default button style -$btn-font-size: 14px !default; -$btn-bordered: false !default; // Default value false, set to true if you want this effect -$btn-border-radius: $border-radius-default !default; - -// Button Background Color -$btn-default-bg: #FFF !default; -$btn-inverse-bg: $brand-inverse !default; -$btn-primary-bg: $brand-primary !default; -$btn-info-bg: $brand-info !default; -$btn-success-bg: $brand-success !default; -$btn-warning-bg: $brand-warning !default; -$btn-danger-bg: $brand-danger !default; - -// Button Border Color -$btn-default-border-color: $brand-default !default; -$btn-inverse-border-color: $btn-inverse-bg !default; -$btn-primary-border-color: $btn-primary-bg !default; -$btn-info-border-color: $btn-info-bg !default; -$btn-success-border-color: $btn-success-bg !default; -$btn-warning-border-color: $btn-warning-bg !default; -$btn-danger-border-color: $btn-danger-bg !default; - -// Button Text Color -$btn-default-color: $brand-primary !default; -$btn-inverse-color: #FFF !default; -$btn-primary-color: #FFF !default; -$btn-info-color: #FFF !default; -$btn-success-color: #FFF !default; -$btn-warning-color: #FFF !default; -$btn-danger-color: #FFF !default; - -// Button Background Color -$btn-default-bg-hover: $btn-default-border-color !default; -$btn-inverse-bg-hover: mix($btn-inverse-bg, white, 80%) !default; -$btn-primary-bg-hover: mix($btn-primary-bg, black, 80%) !default; -$btn-info-bg-hover: mix($btn-info-bg, black, 80%) !default; -$btn-success-bg-hover: mix($btn-success-bg, black, 80%) !default; -$btn-warning-bg-hover: mix($btn-warning-bg, black, 80%) !default; -$btn-danger-bg-hover: mix($btn-danger-bg, black, 80%) !default; -$btn-link-bg-hover: $gray-lighter !default; - - - - -//== Header blocks -//## Define look and feel over multible building blocks that serve as header -$header-bg-color: $bg-color-secondary !default; -$header-text-color: #FFF !default; -$header-text-color-detail: rgba(0,0,0, 0.2) !default; - - - - - -// -// ███████╗██╗ ██╗██████╗ ███████╗██████╗ ████████╗ -// ██╔════╝╚██╗██╔╝██╔══██╗██╔════╝██╔══██╗╚══██╔══╝ -// █████╗ ╚███╔╝ ██████╔╝█████╗ ██████╔╝ ██║ -// ██╔══╝ ██╔██╗ ██╔═══╝ ██╔══╝ ██╔══██╗ ██║ -// ███████╗██╔╝ ██╗██║ ███████╗██║ ██║ ██║ -// ╚══════╝╚═╝ ╚═╝╚═╝ ╚══════╝╚═╝ ╚═╝ ╚═╝ -// - -//== Color variations -//## These variations are used to support several other variables and components - -// Color variations -$color-default-darker: mix($brand-default, black, 60%) !default; -$color-default-dark: mix($brand-default, black, 70%) !default; -$color-default-light: mix($brand-default, white, 60%) !default; -$color-default-lighter: mix($brand-default, white, 20%) !default; - -$color-inverse-darker: mix($brand-inverse, black, 60%) !default; -$color-inverse-dark: mix($brand-inverse, black, 70%) !default; -$color-inverse-light: mix($brand-inverse, white, 60%) !default; -$color-inverse-lighter: mix($brand-inverse, white, 20%) !default; - -$color-primary-darker: mix($brand-primary, black, 60%) !default; -$color-primary-dark: mix($brand-primary, black, 70%) !default; -$color-primary-light: mix($brand-primary, white, 60%) !default; -$color-primary-lighter: mix($brand-primary, white, 20%) !default; - -$color-info-darker: mix($brand-info, black, 60%) !default; -$color-info-dark: mix($brand-info, black, 70%) !default; -$color-info-light: mix($brand-info, white, 60%) !default; -$color-info-lighter: mix($brand-info, white, 20%) !default; - -$color-success-darker: mix($brand-success, black, 60%) !default; -$color-success-dark: mix($brand-success, black, 70%) !default; -$color-success-light: mix($brand-success, white, 60%) !default; -$color-success-lighter: mix($brand-success, white, 20%) !default; - -$color-warning-darker: mix($brand-warning, black, 60%) !default; -$color-warning-dark: mix($brand-warning, black, 70%) !default; -$color-warning-light: mix($brand-warning, white, 60%) !default; -$color-warning-lighter: mix($brand-warning, white, 20%) !default; - -$color-danger-darker: mix($brand-danger, black, 60%) !default; -$color-danger-dark: mix($brand-danger, black, 70%) !default; -$color-danger-light: mix($brand-danger, white, 60%) !default; -$color-danger-lighter: mix($brand-danger, white, 20%) !default; - -$brand-gradient: linear-gradient(152deg, #0CC7F0 0%, #087ECC 51%, #077AC9 55%, #0659B9 78%) !default; - - -//== Grids -//## Used for Datagrid, Templategrid, Listview & Tables (see components folder) - -// Default Border Colors -$grid-border-color: $border-color-default !default; - -// Spacing -// Default -$grid-padding-top: 15px !default; -$grid-padding-right: 15px !default; -$grid-padding-bottom: 15px !default; -$grid-padding-left: 15px !default; - -// Listview -$listview-padding-top: 15px !default; -$listview-padding-right: 15px !default; -$listview-padding-bottom: 15px !default; -$listview-padding-left: 15px !default; - -// Background Colors -$grid-bg: #FFF !default; -$grid-bg-header: transparent !default; // Grid Headers -$grid-bg-hover: mix($grid-border-color, #FFF, 20%) !default; -$grid-bg-selected: mix($grid-border-color, #FFF, 30%) !default; -$grid-bg-selected-hover: mix($grid-border-color, #FFF, 50%) !default; - -// Striped Background Color -$grid-bg-striped: mix($grid-border-color, #FFF, 10%) !default; - -// Background Footer Color -$grid-footer-bg: $gray-primary !default; - -// Text Color -$grid-selected-color: $font-color-default !default; - -// Paging Colors -$grid-paging-bg: transparent !default; -$grid-paging-bg-hover: transparent !default; -$grid-paging-border-color: transparent !default; -$grid-paging-border-color-hover: transparent !default; -$grid-paging-color: $gray-light !default; -$grid-paging-color-hover: $brand-primary !default; - - - - -//== Tabs -//## Default variables for Tab Container Widget (used in components/tabcontainer) - -// Text Color -$tabs-color: $font-color-detail !default; -$tabs-color-active: $font-color-default !default; -$tabs-lined-color-active: $brand-primary !default; - -// Border Color -$tabs-border-color: $border-color-default !default; -$tabs-lined-border-color: $brand-primary !default; - -// Background Color -$tabs-bg: #FFF !default; -$tabs-bg-hover: lighten($tabs-border-color,5) !default; -$tabs-bg-active: $brand-primary !default; - - - - -//== Modals -//## Default Mendix Modal, Blocking Modal and Login Modal (used in components/modals) - -// Background Color -$modal-header-bg: transparent !default; - -// Border Color -$modal-header-border-color: $border-color-default !default; - -// Text Color -$modal-header-color: $font-color-default !default; - - - - -//== Dataview -//## Default variables for Dataview Widget (used in components/dataview) - -// Controls -$dataview-controls-bg: transparent !default; -$dataview-controls-border-color: $border-color-default !default; - -// Empty Message -$dataview-emptymessage-bg: $bg-color !default; -$dataview-emptymessage-color: $font-color-default !default; - - - - -//== Alerts -//## Default Bootstrap alerts, not a widget in the Modeler (used in components/alerts) - -// Background Color -$alert-info-bg: $color-info-lighter !default; -$alert-success-bg: $color-success-lighter !default; -$alert-warning-bg: $color-warning-lighter !default; -$alert-danger-bg: $color-danger-lighter !default; - -// Text Color -$alert-info-color: $color-info-darker !default; -$alert-success-color: $color-success-darker !default; -$alert-warning-color: $color-warning-darker !default; -$alert-danger-color: $color-danger-darker !default; - -// Border Color -$alert-info-border-color: $color-info-dark !default; -$alert-success-border-color: $color-success-dark !default; -$alert-warning-border-color: $color-warning-dark !default; -$alert-danger-border-color: $color-danger-dark !default; - - - - -//== Labels -//## Default Bootstrap Labels, not a widget in the Modeler (used in components/labels) - -// Background Color -$label-default-bg: $brand-default !default; -$label-primary-bg: $brand-primary !default; -$label-info-bg: $brand-info !default; -$label-inverse-bg: $brand-inverse !default; -$label-success-bg: $brand-success !default; -$label-warning-bg: $brand-warning !default; -$label-danger-bg: $brand-danger !default; - -// Border Color -$label-default-border-color: $brand-default !default; -$label-primary-border-color: $brand-primary !default; -$label-info-border-color: $brand-info !default; -$label-success-border-color: $brand-success !default; -$label-warning-border-color: $brand-warning !default; -$label-danger-border-color: $brand-danger !default; - -// Text Color -$label-default-color: $font-color-default !default; -$label-primary-color: #FFF !default; -$label-info-color: #FFF !default; -$label-inverse-color: #FFF !default; -$label-success-color: #FFF !default; -$label-warning-color: #FFF !default; -$label-danger-color: #FFF !default; - - - - -//== Groupbox -//## Default variables for Groupbox Widget (used in components/groupbox) - -// Background Color -$groupbox-default-bg: $brand-default !default; -$groupbox-inverse-bg: $brand-inverse !default; -$groupbox-primary-bg: $brand-primary !default; -$groupbox-info-bg: $brand-info !default; -$groupbox-success-bg: $brand-success !default; -$groupbox-warning-bg: $brand-warning !default; -$groupbox-danger-bg: $brand-danger !default; -$groupbox-white-bg: #FFF !default; - -// Text Color -$groupbox-default-color: $font-color-default !default; -$groupbox-inverse-color: #FFF !default; -$groupbox-primary-color: #FFF !default; -$groupbox-info-color: #FFF !default; -$groupbox-success-color: #FFF !default; -$groupbox-warning-color: #FFF !default; -$groupbox-danger-color: #FFF !default; -$groupbox-white-color: $font-color-default !default; - - - - -//== Callout (groupbox) Colors -//## Extended variables for Groupbox Widget (used in components/groupbox) - -// Text and Border Color -$callout-default-color: $font-color-default !default; -$callout-info-color: $brand-info !default; -$callout-success-color: $brand-success !default; -$callout-warning-color: $brand-warning !default; -$callout-danger-color: $brand-danger !default; - -// Background Color -$callout-default-bg: $color-default-lighter!default; -$callout-info-bg: $color-info-lighter !default; -$callout-success-bg: $color-success-lighter !default; -$callout-warning-bg: $color-warning-lighter !default; -$callout-danger-bg: $color-danger-lighter !default; - -//== Timeline -//## Extended variables for Timeline Widget -// Colors -$timeline-icon-color: $brand-primary; -$timeline-border-color: $border-color-default; - -$timeline-color-header: $font-color-header; -$timeline-color-detail: $font-color-detail; - -// Sizes -$timeline-icon-size: 18px; - -//== Spacing -//## Advanced layout options (used in base/mixins/default-spacing) - -// Small spacing -$spacing-small: 5px !default; - -// Medium spacing -$spacing-medium: 15px !default; -$t-spacing-medium: 15px !default; -$m-spacing-medium: 15px !default; - -// Large spacing -$spacing-large: 30px !default; -$t-spacing-large: 30px !default; -$m-spacing-large: 15px !default; - -// Layout spacing -$layout-spacing-top: 30px !default; -$layout-spacing-right: 30px !default; -$layout-spacing-bottom: 30px !default; -$layout-spacing-left: 30px !default; - -$t-layout-spacing-top: 30px !default; -$t-layout-spacing-right: 30px !default; -$t-layout-spacing-bottom: 30px !default; -$t-layout-spacing-left: 30px !default; - -$m-layout-spacing-top: 15px !default; -$m-layout-spacing-right: 15px !default; -$m-layout-spacing-bottom: 15px !default; -$m-layout-spacing-left: 15px !default; - -// Combined layout spacing -$layout-spacing: $layout-spacing-top $layout-spacing-right $layout-spacing-bottom $layout-spacing-left !default; -$m-layout-spacing: $m-layout-spacing-top $m-layout-spacing-right $m-layout-spacing-bottom $m-layout-spacing-left !default; -$t-layout-spacing: $t-layout-spacing-top $t-layout-spacing-right $t-layout-spacing-bottom $t-layout-spacing-left !default; - -// Gutter size -$gutter-size: 15px !default; - - - - - -//== Tables -//## Table spacing options (used in components/tables) - -$padding-table-cell-top: 8px !default; -$padding-table-cell-bottom: 8px !default; -$padding-table-cell-left: 8px !default; -$padding-table-cell-right: 8px !default; - - - - -//== Media queries breakpoints -//## Define the breakpoints at which your layout will change, adapting to different screen sizes. - -$screen-xs: 480px !default; -$screen-sm: 576px !default; -$screen-md: 768px !default; -$screen-lg: 992px !default; -$screen-xl: 1200px !default; - -// So media queries don't overlap when required, provide a maximum (used for max-width) -$screen-xs-max: ($screen-sm - 1) !default; -$screen-sm-max: ($screen-md - 1) !default; -$screen-md-max: ($screen-lg - 1) !default; -$screen-lg-max: ($screen-xl - 1) !default; - - -//== Settings -//## Enable or disable your desired framework features -// Use of !important -$important-flex: true !default; // ./base/flex.scss -$important-spacing: true !default; // ./base/spacing.scss -$important-helpers: true !default; // ./helpers/helperclasses.scss diff --git a/theme/styles/web/sass/core/base/_animation.scss b/theme/styles/web/sass/core/base/_animation.scss deleted file mode 100644 index 425d343..0000000 --- a/theme/styles/web/sass/core/base/_animation.scss +++ /dev/null @@ -1,55 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -@keyframes slideInUp { - from { - visibility: visible; - transform: translate3d(0, 100%, 0); - } - - to { - transform: translate3d(0, 0, 0); - } -} - -.animated { - animation-duration: 0.4s; - animation-fill-mode: both; -} - -.slideInUp { - animation-name: slideInUp; -} - -@keyframes slideInDown { - from { - visibility: visible; - transform: translate3d(0, -100%, 0); - } - - to { - transform: translate3d(0, 0, 0); - } -} - -.slideInDown { - animation-name: slideInDown; -} - -@keyframes fadeIn { - from { - opacity: 0; - } - - to { - opacity: 1; - } -} - -.fadeIn { - animation-name: fadeIn; -} diff --git a/theme/styles/web/sass/core/base/_base.scss b/theme/styles/web/sass/core/base/_base.scss deleted file mode 100644 index b9d4379..0000000 --- a/theme/styles/web/sass/core/base/_base.scss +++ /dev/null @@ -1,71 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// -/* ========================================================================== - Base - - Default settings -========================================================================== */ -html { - height: 100%; -} - -body { - min-height: 100%; - color: $font-color-default; - background-color: $bg-color; - font-family: $font-family-base; - font-size: $font-size-default; - font-weight: $font-weight-normal; - line-height: $line-height-base; -} - -a { - -moz-transition: 0.25s; - -o-transition: 0.25s; - -webkit-transition: 0.25s; - transition: 0.25s; - color: $link-color; - -webkit-backface-visibility: hidden; -} - -a:hover { - text-decoration: underline; - color: $link-hover-color; -} - -// Address `outline` inconsistency between Chrome and other browsers. -a:focus { - outline: thin dotted; -} - -// Improve readability when focused and also mouse hovered in all browsers -a:active, -a:hover { - outline: 0; -} - -// Removes large blue border in chrome on focus and active states -input:focus, -button:focus, -.mx-link:focus { - outline: 0; -} - -// Removes large blue border for tabindexes from widgets -div[tabindex] { - outline: 0; -} - -// Disabled State -.disabled, -[disabled] { - cursor: not-allowed; - // opacity: 0.65; - -webkit-box-shadow: none; - box-shadow: none; - filter: alpha(opacity=65); -} diff --git a/theme/styles/web/sass/core/base/_flex.scss b/theme/styles/web/sass/core/base/_flex.scss deleted file mode 100644 index 4f6364e..0000000 --- a/theme/styles/web/sass/core/base/_flex.scss +++ /dev/null @@ -1,180 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// -/* ========================================================================== - Flex - - Flex classes -========================================================================== */ -$important-flex-value: if($important-flex, ' !important', ''); - -// Flex layout -.flexcontainer { - display: flex; - overflow: hidden; - flex: 1; - flex-direction: row; - - .flexitem { - margin-right: $gutter-size; - - &:last-child { - margin-right: 0; - } - } - - .flexitem-main { - overflow: hidden; - flex: 1; - } -} - -// These classes define the order of the children -.flex-row { - flex-direction: row #{$important-flex-value}; -} - -.flex-column { - flex-direction: column #{$important-flex-value}; -} - -.flex-row-reverse { - flex-direction: row-reverse #{$important-flex-value}; -} - -.flex-column-reverse { - flex-direction: column-reverse #{$important-flex-value}; -} - -.flex-wrap { - flex-wrap: wrap #{$important-flex-value}; -} - -.flex-nowrap { - flex-wrap: nowrap #{$important-flex-value}; -} - -.flex-wrap-reverse { - flex-wrap: wrap-reverse #{$important-flex-value}; -} - -// Align children in both directions -.flex-center { - align-items: center #{$important-flex-value}; - justify-content: center #{$important-flex-value}; -} - -// These classes define the alignment of the children -.justify-content-start { - justify-content: flex-start #{$important-flex-value}; -} - -.justify-content-end { - justify-content: flex-end #{$important-flex-value}; -} - -.justify-content-center { - justify-content: center #{$important-flex-value}; -} - -.justify-content-between { - justify-content: space-between #{$important-flex-value}; -} - -.justify-content-around { - justify-content: space-around #{$important-flex-value}; -} - -.justify-content-evenly { - // Not Supported in IE11 - justify-content: space-evenly #{$important-flex-value}; -} - -.justify-content-stretch { - justify-content: stretch #{$important-flex-value}; -} - -/// These classes define the alignment of the children in the cross-direction -.align-children-start { - align-items: flex-start #{$important-flex-value}; -} - -.align-children-end { - align-items: flex-end #{$important-flex-value}; -} - -.align-children-center { - align-items: center #{$important-flex-value}; -} - -.align-children-baseline { - align-items: baseline #{$important-flex-value}; -} - -.align-children-stretch { - align-items: stretch #{$important-flex-value}; -} - -/// These classes define the alignment of the rows of children in the cross-direction -.align-content-start { - align-content: flex-start #{$important-flex-value}; -} - -.align-content-end { - align-content: flex-end #{$important-flex-value}; -} - -.align-content-center { - align-content: center #{$important-flex-value}; -} - -.align-content-between { - align-content: space-between #{$important-flex-value}; -} - -.align-content-around { - align-content: space-around #{$important-flex-value}; -} - -.align-content-stretch { - align-content: stretch #{$important-flex-value}; -} - -/// These classes allow the default alignment to be overridden for individual items -.align-self-auto { - align-self: auto #{$important-flex-value}; -} - -.align-self-start { - align-self: flex-start #{$important-flex-value}; -} - -.align-self-end { - align-self: flex-end #{$important-flex-value}; -} - -.align-self-center { - align-self: center #{$important-flex-value}; -} - -.align-self-baseline { - align-self: baseline #{$important-flex-value}; -} - -.align-self-stretch { - align-self: stretch #{$important-flex-value}; -} - -/// These classes define the percentage of available free space within a flex container a flex item will take. -@mixin flex-items($number) { - @for $i from 1 through $number { - .flexitem-#{$i} { - flex: #{$i} #{$i} 1%; - } - } -} - -@include flex-items($number: 12); diff --git a/theme/styles/web/sass/core/base/_login.scss b/theme/styles/web/sass/core/base/_login.scss deleted file mode 100644 index 6df8a0c..0000000 --- a/theme/styles/web/sass/core/base/_login.scss +++ /dev/null @@ -1,188 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -body { - height: 100%; -} - -.loginpage { - display: flex; - height: 100%; -} -.loginpage-logo { - position: absolute; - top: 30px; - right: 30px; - width: 120px; -} - -.loginpage-left { - display: none; -} - -.loginpage-right { - display: flex; - flex: 1; - flex-direction: column; - justify-content: space-around; -} -.loginpage-formwrapper { - width: 400px; - margin: 0 auto; -} -// Form -.loginpage-form { - .alert { - display: none; - } - - .btn { - border-radius: 40px; - } - - // Form label + input - .form-group { - width: 100%; - align-items: center; - - .control-label { - flex: 4; - margin-bottom: 0; - font-size: $font-size-default; - font-weight: 500; - } - - .inputwrapper { - flex: 8; - position: relative; - width: 100%; - - .glyphicon { - &:before { - -webkit-transition: color 0.4s; - -moz-transition: color 0.4s; - -o-transition: color 0.4s; - transition: color 0.4s; - } - - position: absolute; - top: 50%; - left: $form-input-padding-x; - -webkit-transform: translateY(-50%); - -moz-transform: translateY(-50%); - -ms-transform: translateY(-50%); - -o-transform: translateY(-50%); - transform: translateY(-50%); - - &-eye-open:hover, - &-eye-close:hover { - cursor: pointer; - color: $brand-primary; - } - } - - .form-control { - padding: $form-input-padding-y $form-input-padding-x $form-input-padding-y 45px; - } - - .form-control:focus ~ .glyphicon:before { - color: $brand-primary; - } - } - } -} -// Divider - only on login-with-sso.html -.loginpage-alternativelabel { - display: flex; - align-items: center; - flex-direction: row; - flex-wrap: nowrap; - justify-content: space-between; - margin: 25px 0px; - - hr { - flex: 1; - margin: 20px 0 20px 10px; - border: 0; - border-color: #d8d8d8; - border-top: 1px solid #eeeeee; - } -} - -.loginpage-signin { - color: #555555; -} - -// Show only on wide screens -@media screen and (min-width: $screen-xl) { - .loginpage-logo { - width: 150px; - } - - .loginpage-left { - position: relative; - display: block; - flex: 1; - width: 100%; - height: 100%; - } - // Image and clipping mask - .loginpage-image { - height: 100%; - animation: makePointer 1s ease-out both; - background: left / cover no-repeat url('../../../resources/work-do-more.jpeg'); // Microsoft EDGE - background: left / cover no-repeat - linear-gradient(to right, rgba($brand-primary, 0.9) 0%, rgba($brand-primary, 0.6) 100%), - left / cover no-repeat url('../../../resources/work-do-more.jpeg'); - background: left / cover no-repeat -moz-linear-gradient(left, rgba($brand-primary, 0.9) 0%, rgba( - $brand-primary, - 0.6 - ) - 100%), - left / cover no-repeat url('../../../resources/work-do-more.jpeg'); - background: left / cover no-repeat -webkit-gradient(linear, left bottom, right bottom, color-stop(0%, rgba($brand-primary, 0.9)), color-stop(100%, rgba($brand-primary, 0.6))), - left / cover no-repeat url('../../../resources/work-do-more.jpeg'); - background: left / cover no-repeat -webkit-linear-gradient(left, rgba($brand-primary, 0.9) 0%, rgba( - $brand-primary, - 0.6 - ) - 100%), - left / cover no-repeat url('../../../resources/work-do-more.jpeg'); - background: left / cover no-repeat -o-linear-gradient(left, rgba($brand-primary, 0.9) 0%, rgba( - $brand-primary, - 0.6 - ) - 100%), - left / cover no-repeat url('../../../resources/work-do-more.jpeg'); - background: left / cover no-repeat -ms-linear-gradient(left, rgba($brand-primary, 0.9) 0%, rgba( - $brand-primary, - 0.6 - ) - 100%), - left / cover no-repeat url('../../../resources/work-do-more.jpeg'); - -webkit-clip-path: polygon(0% 0%, 100% 0, 100% 50%, 100% 100%, 0% 100%); - clip-path: polygon(0% 0%, 100% 0, 100% 50%, 100% 100%, 0% 100%); - } - - .loginpage-formwrapper { - width: 400px; - } -} - -// Animate image clipping mask -@keyframes makePointer { - 100% { - -webkit-clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%); - clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%); - } -} -@-webkit-keyframes makePointer { - 100% { - -webkit-clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%); - clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%); - } -} diff --git a/theme/styles/web/sass/core/base/_reset.scss b/theme/styles/web/sass/core/base/_reset.scss deleted file mode 100644 index cd1f61e..0000000 --- a/theme/styles/web/sass/core/base/_reset.scss +++ /dev/null @@ -1,40 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -// Basic styling Scroll container -// .mx-scrollcontainer { -// .mx-scrollcontainer-wrapper { -// padding: 0; -// // Convert width to max-width when in scroll container to make sure you dont get scrollbars -// .mx-layoutgrid-fixed { -// width: 100%; -// margin: auto; -// @media (min-width: $screen-md) { -// max-width: 750px; -// } -// @media (min-width: $screen-lg) { -// max-width: 970px; -// } -// @media (min-width: $screen-xl) { -// max-width: 1170px; -// } -// } -// } -// } - -.mx-scrollcontainer .mx-placeholder { - width: 100%; - height: 100%; - .mx-layoutgrid, - .mx-layoutgrid-fluid { - @include layout-spacing($type: padding, $direction: all, $device: responsive); - .mx-layoutgrid, - .mx-layoutgrid-fluid { - padding: 0; - } - } -} diff --git a/theme/styles/web/sass/core/base/_spacing.scss b/theme/styles/web/sass/core/base/_spacing.scss deleted file mode 100644 index 4d020f9..0000000 --- a/theme/styles/web/sass/core/base/_spacing.scss +++ /dev/null @@ -1,217 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// -/* ========================================================================== - Spacing - - Spacing classes -========================================================================== */ -$important-spacing-value: if($important-spacing, ' !important', ''); - -// Spacing none -.spacing-inner-none { - padding: 0 #{$important-spacing-value}; -} - -.spacing-inner-top-none { - padding-top: 0 #{$important-spacing-value}; -} - -.spacing-inner-right-none { - padding-right: 0 #{$important-spacing-value}; -} - -.spacing-inner-bottom-none { - padding-bottom: 0 #{$important-spacing-value}; -} - -.spacing-inner-left-none { - padding-left: 0 #{$important-spacing-value}; -} - -.spacing-outer-none { - margin: 0 #{$important-spacing-value}; -} - -.spacing-outer-top-none { - margin-top: 0 #{$important-spacing-value}; -} - -.spacing-outer-right-none { - margin-right: 0 #{$important-spacing-value}; -} - -.spacing-outer-bottom-none { - margin-bottom: 0 #{$important-spacing-value}; -} - -.spacing-outer-left-none { - margin-left: 0 #{$important-spacing-value}; -} - -// Spacing small -.spacing-inner { - padding: $spacing-small #{$important-spacing-value}; -} - -.spacing-inner-top { - padding-top: $spacing-small #{$important-spacing-value}; -} - -.spacing-inner-right { - padding-right: $spacing-small #{$important-spacing-value}; -} - -.spacing-inner-bottom { - padding-bottom: $spacing-small #{$important-spacing-value}; -} - -.spacing-inner-left { - padding-left: $spacing-small #{$important-spacing-value}; -} - -.spacing-outer { - margin: $spacing-small #{$important-spacing-value}; -} - -.spacing-outer-top { - margin-top: $spacing-small #{$important-spacing-value}; -} - -.spacing-outer-right { - margin-right: $spacing-small #{$important-spacing-value}; -} - -.spacing-outer-bottom { - margin-bottom: $spacing-small #{$important-spacing-value}; -} - -.spacing-outer-left { - margin-left: $spacing-small #{$important-spacing-value}; -} - -// Spacing Medium -.spacing-inner-medium { - @include get-responsive-spacing-medium($type: padding, $direction: all, $is_important: #{$important-spacing-value}); -} - -.spacing-inner-top-medium { - @include get-responsive-spacing-medium($type: padding, $direction: top, $is_important: #{$important-spacing-value}); -} - -.spacing-inner-right-medium { - @include get-responsive-spacing-medium($type: padding, $direction: right, $is_important: #{$important-spacing-value}); -} - -.spacing-inner-bottom-medium { - @include get-responsive-spacing-medium($type: padding, $direction: bottom, $is_important: #{$important-spacing-value}); -} - -.spacing-inner-left-medium { - @include get-responsive-spacing-medium($type: padding, $direction: left, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-medium { - @include get-responsive-spacing-medium($type: margin, $direction: all, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-top-medium { - @include get-responsive-spacing-medium($type: margin, $direction: top, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-right-medium { - @include get-responsive-spacing-medium($type: margin, $direction: right, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-bottom-medium { - @include get-responsive-spacing-medium($type: margin, $direction: bottom, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-left-medium { - @include get-responsive-spacing-medium($type: margin, $direction: left, $is_important: #{$important-spacing-value}); -} - -// Spacing Large -.spacing-inner-large { - @include get-responsive-spacing-large($type: padding, $direction: all, $is_important: #{$important-spacing-value}); -} - -.spacing-inner-top-large { - @include get-responsive-spacing-large($type: padding, $direction: top, $is_important: #{$important-spacing-value}); -} - -.spacing-inner-right-large { - @include get-responsive-spacing-large($type: padding, $direction: right, $is_important: #{$important-spacing-value}); -} - -.spacing-inner-bottom-large { - @include get-responsive-spacing-large($type: padding, $direction: bottom, $is_important: #{$important-spacing-value}); -} - -.spacing-inner-left-large { - @include get-responsive-spacing-large($type: padding, $direction: left, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-large { - @include get-responsive-spacing-large($type: margin, $direction: all, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-top-large { - @include get-responsive-spacing-large($type: margin, $direction: top, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-right-large { - @include get-responsive-spacing-large($type: margin, $direction: right, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-bottom-large { - @include get-responsive-spacing-large($type: margin, $direction: bottom, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-left-large { - @include get-responsive-spacing-large($type: margin, $direction: left, $is_important: #{$important-spacing-value}); -} - -// Spacing layouts -.spacing-inner-layout { - @include layout-spacing($type: padding, $direction: all, $device: responsive, $is_important: #{$important-spacing-value}); -} - -.spacing-inner-top-layout { - @include layout-spacing($type: padding, $direction: top, $device: responsive, $is_important: #{$important-spacing-value}); -} - -.spacing-inner-right-layout { - @include layout-spacing($type: padding, $direction: right, $device: responsive, $is_important: #{$important-spacing-value}); -} - -.spacing-inner-bottom-layout { - @include layout-spacing($type: padding, $direction: bottom, $device: responsive, $is_important: #{$important-spacing-value}); -} - -.spacing-inner-left-layout { - @include layout-spacing($type: padding, $direction: left, $device: responsive, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-layout { - @include layout-spacing($type: margin, $direction: all, $device: responsive, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-top-layout { - @include layout-spacing($type: margin, $direction: top, $device: responsive, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-right-layout { - @include layout-spacing($type: margin, $direction: right, $device: responsive, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-bottom-layout { - @include layout-spacing($type: margin, $direction: bottom, $device: responsive, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-left-layout { - @include layout-spacing($type: margin, $direction: left, $device: responsive, $is_important: #{$important-spacing-value}); -} diff --git a/theme/styles/web/sass/core/base/mixins/_animations.scss b/theme/styles/web/sass/core/base/mixins/_animations.scss deleted file mode 100644 index 93bca3b..0000000 --- a/theme/styles/web/sass/core/base/mixins/_animations.scss +++ /dev/null @@ -1,54 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -@mixin transition( - $style: initial, - $delay: 0s, - $duration: 0.3s, - $property: all, - $timing-fucntion: cubic-bezier(0.4, 0, 0.2, 1) -) { - -webkit-transition: $property $duration $delay $timing-fucntion; - -moz-transition: $property $duration $delay $timing-fucntion; - -o-transition: $property $duration $delay $timing-fucntion; - transition: $property $duration $delay $timing-fucntion; - transform-style: $style; -} - -@mixin ripple($color: #000, $transparency: 10%, $scale: 10) { - position: relative; - overflow: hidden; - transform: translate3d(0, 0, 0); - - &:after { - content: ''; - display: block; - position: absolute; - width: 100%; - height: 100%; - top: 0; - left: 0; - pointer-events: none; - background-image: radial-gradient(circle, $color $transparency, transparent $transparency); - background-repeat: no-repeat; - background-position: 50%; - -webkit-transform: scale($scale, $scale); - transform: scale($scale, $scale); - opacity: 0; - -webkit-transition: transform 0.5s, opacity 1s; - -moz-transition: transform 0.5s, opacity 1s; - -o-transition: transform 0.5s, opacity 1s; - transition: transform 0.5s, opacity 1s; - } - - &:active:after { - -webkit-transform: scale(0, 0); - transform: scale(0, 0); - opacity: 0.1; - transition: 0s; - } -} diff --git a/theme/styles/web/sass/core/base/mixins/_buttons.scss b/theme/styles/web/sass/core/base/mixins/_buttons.scss deleted file mode 100644 index 3b59292..0000000 --- a/theme/styles/web/sass/core/base/mixins/_buttons.scss +++ /dev/null @@ -1,71 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -@mixin button-variant($color, $background, $border, $hover) { - color: $color; - border-color: $border; - background-color: $background; - - &:hover, - &:focus, - &:active, - &.active, - .open > &.dropdown-toggle { - color: $color; - border-color: $hover; - background-color: $hover; - } - &:active, - &.active, - .open > &.dropdown-toggle { - background-image: none; - } - &.disabled, - &[disabled], - &[aria-disabled], - fieldset[disabled] { - &, - &:hover, - &:focus, - &:active, - &.active { - border-color: $border; - background-color: $background; - } - } - // Button bordered - &.btn-bordered { - background-color: transparent; - @if $color != $btn-default-color { - color: $border; - } - - &:hover, - &:focus, - &:active, - &.active, - .open > &.dropdown-toggle { - color: $color; - border-color: $border; - background-color: $border; - } - } - // Button as link - &.btn-link { - text-decoration: none; - border-color: transparent; - background-color: transparent; - @if $color != $btn-default-color { - color: $background; - } - - &:hover { - border-color: $btn-link-bg-hover; - background-color: $btn-link-bg-hover; - } - } -} diff --git a/theme/styles/web/sass/core/base/mixins/_groupbox.scss b/theme/styles/web/sass/core/base/mixins/_groupbox.scss deleted file mode 100644 index 71581ec..0000000 --- a/theme/styles/web/sass/core/base/mixins/_groupbox.scss +++ /dev/null @@ -1,17 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -@mixin groupbox-variant($color, $background) { - > .mx-groupbox-header { - color: $color; - border-color: $background; - background: $background; - } - > .mx-groupbox-body { - border-color: $background; - } -} diff --git a/theme/styles/web/sass/core/base/mixins/_layout-spacing.scss b/theme/styles/web/sass/core/base/mixins/_layout-spacing.scss deleted file mode 100644 index 76aa983..0000000 --- a/theme/styles/web/sass/core/base/mixins/_layout-spacing.scss +++ /dev/null @@ -1,90 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -@mixin layout-spacing($type: padding, $direction: all, $device: responsive, $is_important: false) { - $suffix: ''; - @if $is_important != false { - $suffix: ' !important'; - } - @if $device==responsive { - @if $direction==all { - @media (max-width: $screen-sm-max) { - #{$type}: #{$m-layout-spacing}#{$suffix}; - } - @media (min-width: $screen-md) { - #{$type}: #{$t-layout-spacing}#{$suffix}; - } - @media (min-width: $screen-lg) { - #{$type}: #{$layout-spacing}#{$suffix}; - } - } @else if $direction==top { - @media (max-width: $screen-sm-max) { - #{$type}-top: #{$m-layout-spacing-top}#{$suffix}; - } - @media (min-width: $screen-md) { - #{$type}-top: #{$t-layout-spacing-top}#{$suffix}; - } - @media (min-width: $screen-lg) { - #{$type}-top: #{$layout-spacing-top}#{$suffix}; - } - } @else if $direction==right { - @media (max-width: $screen-sm-max) { - #{$type}-right: #{$m-layout-spacing-right}#{$suffix}; - } - @media (min-width: $screen-md) { - #{$type}-right: #{$t-layout-spacing-right}#{$suffix}; - } - @media (min-width: $screen-lg) { - #{$type}-right: #{$layout-spacing-right}#{$suffix}; - } - } @else if $direction==bottom { - @media (max-width: $screen-sm-max) { - #{$type}-bottom: #{$m-layout-spacing-bottom}#{$suffix}; - } - @media (min-width: $screen-md) { - #{$type}-bottom: #{$t-layout-spacing-bottom}#{$suffix}; - } - @media (min-width: $screen-lg) { - #{$type}-bottom: #{$layout-spacing-bottom}#{$suffix}; - } - } @else if $direction==left { - @media (max-width: $screen-sm-max) { - #{$type}-left: #{$m-layout-spacing-left}#{$suffix}; - } - @media (min-width: $screen-md) { - #{$type}-left: #{$t-layout-spacing-left}#{$suffix}; - } - @media (min-width: $screen-lg) { - #{$type}-left: #{$layout-spacing-left}#{$suffix}; - } - } - } @else if $device==tablet { - @if $direction==all { - #{$type}: #{$t-layout-spacing}#{$suffix}; - } @else if $direction==top { - #{$type}-top: #{$t-layout-spacing-top}#{$suffix}; - } @else if $direction==right { - #{$type}-right: #{$t-layout-spacing-right}#{$suffix}; - } @else if $direction==bottom { - #{$type}-bottom: #{$t-layout-spacing-bottom}#{$suffix}; - } @else if $direction==left { - #{$type}-left: #{$t-layout-spacing-left}#{$suffix}; - } - } @else if $device==mobile { - @if $direction==all { - #{$type}: #{$m-layout-spacing}#{$suffix}; - } @else if $direction==top { - #{$type}-top: #{$m-layout-spacing-top}#{$suffix}; - } @else if $direction==right { - #{$type}-right: #{$m-layout-spacing-right}#{$suffix}; - } @else if $direction==bottom { - #{$type}-bottom: #{$m-layout-spacing-bottom}#{$suffix}; - } @else if $direction==left { - #{$type}-left: #{$m-layout-spacing-left}#{$suffix}; - } - } -} diff --git a/theme/styles/web/sass/core/base/mixins/_spacing.scss b/theme/styles/web/sass/core/base/mixins/_spacing.scss deleted file mode 100644 index db1d055..0000000 --- a/theme/styles/web/sass/core/base/mixins/_spacing.scss +++ /dev/null @@ -1,66 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -@mixin get-responsive-spacing-large($type: padding, $direction: all, $is_important: false) { - $suffix: ''; - $dash: '-'; // Otherwise it will be interpreted as a minus symbol. Needed for the Gonzales PE version: 3.4.7 compiler (used by the Webmodeler) - - @if $is_important != false { - $suffix: ' !important'; - } - @if $direction==all { - @media (max-width: $screen-sm-max) { - #{$type}: #{$m-spacing-large}#{$suffix}; - } - @media (min-width: $screen-md) { - #{$type}: #{$t-spacing-large}#{$suffix}; - } - @media (min-width: $screen-lg) { - #{$type}: #{$spacing-large}#{$suffix}; - } - } @else { - @media (max-width: $screen-sm-max) { - #{$type}#{$dash}#{$direction}: #{$m-spacing-large}#{$suffix}; - } - @media (min-width: $screen-md) { - #{$type}#{$dash}#{$direction}: #{$t-spacing-large}#{$suffix}; - } - @media (min-width: $screen-lg) { - #{$type}#{$dash}#{$direction}: #{$spacing-large}#{$suffix}; - } - } -} - -@mixin get-responsive-spacing-medium($type: padding, $direction: all, $is_important: false) { - $suffix: ''; - $dash: '-'; // Otherwise it will be interpreted as a minus symbol. Needed for the Gonzales PE version: 3.4.7 compiler (used by the Webmodeler) - - @if $is_important != false { - $suffix: ' !important'; - } - @if $direction==all { - @media (max-width: $screen-sm-max) { - #{$type}: #{$m-spacing-medium}#{$suffix}; - } - @media (min-width: $screen-md) { - #{$type}: #{$t-spacing-medium}#{$suffix}; - } - @media (min-width: $screen-lg) { - #{$type}: #{$spacing-medium}#{$suffix}; - } - } @else { - @media (max-width: $screen-sm-max) { - #{$type}#{$dash}#{$direction}: #{$m-spacing-medium}#{$suffix}; - } - @media (min-width: $screen-md) { - #{$type}#{$dash}#{$direction}: #{$t-spacing-medium}#{$suffix}; - } - @media (min-width: $screen-lg) { - #{$type}#{$dash}#{$direction}: #{$spacing-medium}#{$suffix}; - } - } -} diff --git a/theme/styles/web/sass/core/helpers/_alerts.scss b/theme/styles/web/sass/core/helpers/_alerts.scss deleted file mode 100644 index 69fdab1..0000000 --- a/theme/styles/web/sass/core/helpers/_alerts.scss +++ /dev/null @@ -1,49 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Alerts - -//== Design Properties -//## Helper classes to change the look and feel of the component -========================================================================== */ -.alert-bordered { - border: 1px solid; -} - -// Color variations -.alert-success { - color: $alert-success-color; - border-color: $alert-success-border-color; - background-color: $alert-success-bg; -} - -.alert-info { - color: $alert-info-color; - border-color: $alert-info-border-color; - background-color: $alert-info-bg; -} - -.alert-warning { - color: $alert-warning-color; - border-color: $alert-warning-border-color; - background-color: $alert-warning-bg; -} - -.alert-danger { - color: $alert-danger-color; - border-color: $alert-danger-border-color; - background-color: $alert-danger-bg; -} - -//== State -//## Styling when component is in certain state -//-------------------------------------------------------------------------------------------------------------------// -.has-error .alert { - margin-top: 8px; - margin-bottom: 0; -} diff --git a/theme/styles/web/sass/core/helpers/_backgrounds.scss b/theme/styles/web/sass/core/helpers/_backgrounds.scss deleted file mode 100644 index 8c4a57b..0000000 --- a/theme/styles/web/sass/core/helpers/_backgrounds.scss +++ /dev/null @@ -1,164 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Backgrounds - - Different background components, all managed by variables -========================================================================== */ - -.background-main { - background-color: $bg-color !important; -} - -.background-secondary { - background-color: $bg-color-secondary !important; -} - -.background-default { - background-color: $brand-default !important; -} - -.background-default-darker { - background-color: $color-default-darker !important; -} - -.background-default-dark { - background-color: $color-default-dark !important; -} - -.background-default-light { - background-color: $color-default-light !important; -} - -.background-default-lighter { - background-color: $color-default-lighter !important; -} - -.background-inverse { - background-color: $brand-inverse !important; -} - -.background-inverse-darker { - background-color: $color-inverse-darker !important; -} - -.background-inverse-dark { - background-color: $color-inverse-dark !important; -} - -.background-inverse-light { - background-color: $color-inverse-light !important; -} - -.background-inverse-lighter { - background-color: $color-inverse-lighter !important; -} - -.background-primary { - background-color: $brand-primary !important; -} - -.background-primary-darker { - background-color: $color-primary-darker !important; -} - -.background-primary-dark { - background-color: $color-primary-dark !important; -} - -.background-primary-light { - background-color: $color-primary-light !important; -} - -.background-primary-lighter { - background-color: $color-primary-lighter !important; -} - -.background-info { - background-color: $brand-info !important; -} - -.background-info-darker { - background-color: $color-info-darker !important; -} - -.background-info-dark { - background-color: $color-info-dark !important; -} - -.background-info-light { - background-color: $color-info-light !important; -} - -.background-info-lighter { - background-color: $color-info-lighter !important; -} - -.background-success { - background-color: $brand-success !important; -} - -.background-success-darker { - background-color: $color-success-darker !important; -} - -.background-success-dark { - background-color: $color-success-dark !important; -} - -.background-success-light { - background-color: $color-success-light !important; -} - -.background-success-lighter { - background-color: $color-success-lighter !important; -} - -.background-warning { - background-color: $brand-warning !important; -} - -.background-warning-darker { - background-color: $color-warning-darker !important; -} - -.background-warning-dark { - background-color: $color-warning-dark !important; -} - -.background-warning-light { - background-color: $color-warning-light !important; -} - -.background-warning-lighter { - background-color: $color-warning-lighter !important; -} - -.background-danger { - background-color: $brand-danger !important; -} - -.background-danger-darker { - background-color: $color-danger-darker !important; -} - -.background-danger-dark { - background-color: $color-danger-dark !important; -} - -.background-danger-light { - background-color: $color-danger-light !important; -} - -.background-danger-lighter { - background-color: $color-danger-lighter !important; -} - -.background-brand-gradient { - background-image: $brand-gradient !important; -} diff --git a/theme/styles/web/sass/core/helpers/_buttons.scss b/theme/styles/web/sass/core/helpers/_buttons.scss deleted file mode 100644 index 87c8985..0000000 --- a/theme/styles/web/sass/core/helpers/_buttons.scss +++ /dev/null @@ -1,100 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Buttons - -//== Design Properties -//## Helper classes to change the look and feel of the component -========================================================================== */ -// Color variations -.btn, -.btn-default { - @include button-variant($btn-default-color, $btn-default-bg, $btn-default-border-color, $btn-default-bg-hover); -} - -.btn-primary { - @include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border-color, $btn-primary-bg-hover); -} - -.btn-inverse { - @include button-variant($btn-inverse-color, $btn-inverse-bg, $btn-inverse-border-color, $btn-inverse-bg-hover); -} - -.btn-success { - @include button-variant($btn-success-color, $btn-success-bg, $btn-success-border-color, $btn-success-bg-hover); -} - -.btn-info { - @include button-variant($btn-info-color, $btn-info-bg, $btn-info-border-color, $btn-info-bg-hover); -} - -.btn-warning { - @include button-variant($btn-warning-color, $btn-warning-bg, $btn-warning-border-color, $btn-warning-bg-hover); -} - -.btn-danger { - @include button-variant($btn-danger-color, $btn-danger-bg, $btn-danger-border-color, $btn-danger-bg-hover); -} - -// Button Sizes -.btn-lg { - font-size: $font-size-large; - img { - height: calc(#{$font-size-small} + 4px); - } -} - -.btn-sm { - font-size: $font-size-small; - img { - height: calc(#{$font-size-small} + 4px); - } -} - -// Button Image -.btn-image { - padding: 0; - vertical-align: middle; - border-style: none; - background-color: transparent; - img { - display: block; // or else the button doesn't get a width - height: auto; // Image set height - } - &:hover, - &:focus { - background-color: transparent; - } -} - -// Icon buttons -.btn-icon { - & > img, - & > .glyphicon { - margin: 0; - } -} - -.btn-icon-right { - & > img, - & > .glyphicon { - float: right; - margin-left: 5px; - } -} - -.btn-icon-top { - padding-right: 0; - padding-left: 0; - & > img, - & > .glyphicon { - display: block; - margin: 0 0 5px 0; - } -} - diff --git a/theme/styles/web/sass/core/helpers/_datagrids.scss b/theme/styles/web/sass/core/helpers/_datagrids.scss deleted file mode 100644 index f37c889..0000000 --- a/theme/styles/web/sass/core/helpers/_datagrids.scss +++ /dev/null @@ -1,157 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// -/* ========================================================================== - Datagrid Default - -//== Design Properties -//## Helper classes to change the look and feel of the component -========================================================================== */ -// Striped style -.datagrid-striped.mx-datagrid { - table { - th { - border-width: 0; - } - - tbody tr { - td { - border-top-width: 0; - } - - &:nth-child(odd) td { - background-color: $grid-bg-striped; - } - } - } -} - -// Bordered style -.datagrid-bordered.mx-datagrid { - table { - border: 1px solid; - - th { - border: 1px solid $grid-border-color; - } - - tbody tr { - td { - border: 1px solid $grid-border-color; - } - } - } - - tfoot { - > tr > th { - border-width: 0; - background-color: $grid-footer-bg; - } - - > tr > td { - border-width: 1px; - } - } -} - -// Transparent style so you can see the background -.datagrid-transparent.mx-datagrid { - table { - background-color: transparent; - - tbody tr { - &:nth-of-type(odd) { - background-color: transparent; - } - - td { - background-color: transparent; - } - } - } -} - -// Hover style activated -.datagrid-hover.mx-datagrid { - table { - tbody tr { - &:hover td { - background-color: $grid-bg-hover !important; - } - - &.selected:hover td { - background-color: $grid-bg-selected-hover !important; - } - } - } -} - -// Datagrid Row Sizes -.datagrid-lg.mx-datagrid { - table { - th { - padding: ($grid-padding-top * 2) ($grid-padding-right * 2) ($grid-padding-bottom * 2) ($grid-padding-left * 2); - } - - tbody tr { - td { - padding: ($grid-padding-top * 2) ($grid-padding-right * 2) ($grid-padding-bottom * 2) ($grid-padding-left * 2); - } - } - } -} - -.datagrid-sm.mx-datagrid { - table { - th { - padding: ($grid-padding-top / 2) ($grid-padding-right / 2) ($grid-padding-bottom / 2) ($grid-padding-left / 2); - } - - tbody tr { - td { - padding: ($grid-padding-top / 2) ($grid-padding-right / 2) ($grid-padding-bottom / 2) ($grid-padding-left/ 2); - } - } - } -} - -// Datagrid Full Search -// Default Mendix Datagrid Widget with adjusted search field. Only 1 search field is allowed -.datagrid-fullsearch.mx-grid { - .mx-grid-search-button { - @extend .btn-primary; - } - - .mx-grid-reset-button { - display: none; - } - - .mx-grid-search-item { - display: block; - } - - .mx-grid-search-label { - display: none; - } - - .mx-grid-searchbar { - .mx-grid-search-controls { - position: absolute; - right: 0; - } - - .mx-grid-search-input { - width: 80%; - padding-left: 0; - - .btn, - .form-control { - height: 35px; - font-size: 12px; - } - } - } -} diff --git a/theme/styles/web/sass/core/helpers/_groupbox.scss b/theme/styles/web/sass/core/helpers/_groupbox.scss deleted file mode 100644 index 2e71036..0000000 --- a/theme/styles/web/sass/core/helpers/_groupbox.scss +++ /dev/null @@ -1,147 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Groupbox - -//== Design Properties -//## Helper classes to change the look and feel of the component -========================================================================== */ -// Color variations -.groupbox-default { - @include groupbox-variant($groupbox-default-color, $groupbox-default-bg); -} - -.groupbox-primary { - @include groupbox-variant($groupbox-primary-color, $groupbox-primary-bg); -} - -.groupbox-inverse { - @include groupbox-variant($groupbox-inverse-color, $groupbox-inverse-bg); -} - -// Success appears as green -.groupbox-success { - @include groupbox-variant($groupbox-success-color, $groupbox-success-bg); -} - -// Info appears as blue-green -.groupbox-info { - @include groupbox-variant($groupbox-info-color, $groupbox-info-bg); -} - -// Warning appears as orange -.groupbox-warning { - @include groupbox-variant($groupbox-warning-color, $groupbox-warning-bg); -} - -// Danger and error appear as red -.groupbox-danger { - @include groupbox-variant($groupbox-danger-color, $groupbox-danger-bg); -} - -// white appears as full white -.groupbox-white { - @include groupbox-variant($groupbox-white-color, $groupbox-white-bg); -} - -.groupbox-transparent { - border-bottom: 1px solid $border-color-default; - > .mx-groupbox-header { - padding: 15px 0; - color: $gray-darker; - border-style: none; - background: transparent; - font-size: 16px; - font-weight: $font-weight-semibold; - } - .mx-groupbox-body { - padding: 15px 0; - border-style: none; - background-color: transparent; - } - .mx-groupbox-collapse-icon { - color: $brand-primary; - } -} - -// Header options -.groupbox-h1 > .mx-groupbox-header { - font-size: $font-size-h1; -} - -.groupbox-h2 > .mx-groupbox-header { - font-size: $font-size-h2; -} - -.groupbox-h3 > .mx-groupbox-header { - font-size: $font-size-h3; -} - -.groupbox-h4 > .mx-groupbox-header { - font-size: $font-size-h4; -} - -.groupbox-h5 > .mx-groupbox-header { - font-size: $font-size-h5; -} - -.groupbox-h6 > .mx-groupbox-header { - font-size: $font-size-h6; -} - -// Callout Look and Feel -.groupbox-callout { - > .mx-groupbox-header, - > .mx-groupbox-body { - border: 0; - background-color: $callout-info-bg; - } - .mx-groupbox-header + .mx-groupbox-body { - padding-top: 0; - } -} - -.groupbox-info.groupbox-callout { - > .mx-groupbox-header, - > .mx-groupbox-body { - background-color: $callout-info-bg; - } - > .mx-groupbox-header { - color: $callout-info-color; - } -} - -.groupbox-success.groupbox-callout { - > .mx-groupbox-header, - > .mx-groupbox-body { - background-color: $callout-success-bg; - } - > .mx-groupbox-header { - color: $callout-success-color; - } -} - -.groupbox-warning.groupbox-callout { - > .mx-groupbox-header, - > .mx-groupbox-body { - background-color: $callout-warning-bg; - } - > .mx-groupbox-header { - color: $callout-warning-color; - } -} - -.groupbox-danger.groupbox-callout { - > .mx-groupbox-header, - > .mx-groupbox-body { - background-color: $callout-danger-bg; - } - > .mx-groupbox-header { - color: $callout-danger-color; - } -} diff --git a/theme/styles/web/sass/core/helpers/_helperclasses.scss b/theme/styles/web/sass/core/helpers/_helperclasses.scss deleted file mode 100644 index b76b778..0000000 --- a/theme/styles/web/sass/core/helpers/_helperclasses.scss +++ /dev/null @@ -1,346 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Helpers - - Default Mendix Helpers -========================================================================== */ -$important-helpers-value: if($important-helpers, ' !important', ''); - -// Display properties -.d-none { - display: none #{$important-helpers-value}; -} - -.d-flex { - display: flex #{$important-helpers-value}; -} - -.d-inline-flex { - display: inline-flex #{$important-helpers-value}; -} - -.d-inline { - display: inline #{$important-helpers-value}; -} - -.d-inline-block { - display: inline-block #{$important-helpers-value}; -} - -.show, -.d-block { - display: block #{$important-helpers-value}; -} - -.table, -.d-table { - display: table #{$important-helpers-value}; -} - -.table-row, -.d-table-row { - display: table-row #{$important-helpers-value}; -} - -.table-cell, -.d-table-cell { - display: table-cell #{$important-helpers-value}; -} - -.hide, -.hidden { - display: none #{$important-helpers-value}; - visibility: hidden #{$important-helpers-value}; -} - -.invisible { - visibility: hidden #{$important-helpers-value}; -} - -.display-ie8-only:not([attr*=""]) { - display: none #{$important-helpers-value}; - padding: 0 #{$important-helpers-value}; -} - -.list-nostyle { - ul { - margin: 0 #{$important-helpers-value}; - padding: 0 #{$important-helpers-value}; - - li { - list-style-type: none #{$important-helpers-value}; - } - } -} - -.nowrap, -.nowrap * { - overflow: hidden #{$important-helpers-value}; - // Star for inside an element, IE8 span > a - white-space: nowrap #{$important-helpers-value}; - text-overflow: ellipsis #{$important-helpers-value}; -} - -// Render DIV as Table Cells -.table { - display: table #{$important-helpers-value}; -} - -.table-row { - display: table-row #{$important-helpers-value}; -} - -.table-cell { - display: table-cell #{$important-helpers-value}; -} - -// Quick floats -.pull-left { - float: left #{$important-helpers-value}; -} - -.pull-right { - float: right #{$important-helpers-value}; -} - -// Align options -.align-top { - vertical-align: top #{$important-helpers-value}; -} - -.align-middle { - vertical-align: middle #{$important-helpers-value}; -} - -.align-bottom { - vertical-align: bottom #{$important-helpers-value}; -} - -// Flex alignments -.row-left { - display: flex #{$important-helpers-value}; - align-items: center #{$important-helpers-value}; - flex-flow: row #{$important-helpers-value}; - justify-content: flex-start #{$important-helpers-value}; -} - -.row-center { - display: flex #{$important-helpers-value}; - align-items: center #{$important-helpers-value}; - flex-flow: row #{$important-helpers-value}; - justify-content: center #{$important-helpers-value}; -} - -.row-right { - display: flex #{$important-helpers-value}; - align-items: center #{$important-helpers-value}; - flex-flow: row #{$important-helpers-value}; - justify-content: flex-end #{$important-helpers-value}; -} - -.col-left { - display: flex #{$important-helpers-value}; - align-items: flex-start #{$important-helpers-value}; - flex-direction: column #{$important-helpers-value}; - justify-content: center #{$important-helpers-value}; -} - -.col-center { - display: flex #{$important-helpers-value}; - align-items: center #{$important-helpers-value}; - flex-direction: column #{$important-helpers-value}; - justify-content: center #{$important-helpers-value}; -} - -.col-right { - display: flex #{$important-helpers-value}; - align-items: flex-end #{$important-helpers-value}; - flex-direction: column #{$important-helpers-value}; - justify-content: center #{$important-helpers-value}; -} - -// Media -@media (max-width: $screen-sm-max) { - .hide-phone { - display: none #{$important-helpers-value}; - } -} - -@media (min-width: $screen-md) and (max-width: $screen-md-max) { - .hide-tablet { - display: none #{$important-helpers-value}; - } -} - -@media (min-width: $screen-lg) { - .hide-desktop { - display: none #{$important-helpers-value}; - } -} - - -@media (max-width: $screen-xs-max) { - .hide-xs, - .hidden-xs, - .d-xs-none { - display: none #{$important-helpers-value}; - } - .d-xs-flex { - display: flex #{$important-helpers-value}; - } - .d-xs-inline-flex { - display: inline-flex #{$important-helpers-value}; - } - .d-xs-inline { - display: inline #{$important-helpers-value}; - } - .d-xs-inline-block { - display: inline-block #{$important-helpers-value}; - } - .d-xs-block { - display: block #{$important-helpers-value}; - } - .d-xs-table { - display: table #{$important-helpers-value}; - } - .d-xs-table-row { - display: table-row #{$important-helpers-value}; - } - .d-xs-table-cell { - display: table-cell #{$important-helpers-value}; - } -} - -@media (min-width: $screen-sm) and (max-width: $screen-sm-max) { - .hide-sm, - .hidden-sm, - .d-sm-none { - display: none #{$important-helpers-value}; - } - .d-sm-flex { - display: flex #{$important-helpers-value}; - } - .d-sm-inline-flex { - display: inline-flex #{$important-helpers-value}; - } - .d-sm-inline { - display: inline #{$important-helpers-value}; - } - .d-sm-inline-block { - display: inline-block #{$important-helpers-value}; - } - .d-sm-block { - display: block #{$important-helpers-value}; - } - .d-sm-table { - display: table #{$important-helpers-value}; - } - .d-sm-table-row { - display: table-row #{$important-helpers-value}; - } - .d-sm-table-cell { - display: table-cell #{$important-helpers-value}; - } -} - -@media (min-width: $screen-md) and (max-width: $screen-md-max) { - .hide-md, - .hidden-md, - .d-md-none { - display: none #{$important-helpers-value}; - } - .d-md-flex { - display: flex #{$important-helpers-value}; - } - .d-md-inline-flex { - display: inline-flex #{$important-helpers-value}; - } - .d-md-inline { - display: inline #{$important-helpers-value}; - } - .d-md-inline-block { - display: inline-block #{$important-helpers-value}; - } - .d-md-block { - display: block #{$important-helpers-value}; - } - .d-md-table { - display: table #{$important-helpers-value}; - } - .d-md-table-row { - display: table-row #{$important-helpers-value}; - } - .d-md-table-cell { - display: table-cell #{$important-helpers-value}; - } -} - -@media (min-width: $screen-lg) and (max-width: $screen-xl) { - .hide-lg, - .hidden-lg, - .d-lg-none { - display: none #{$important-helpers-value}; - } - .d-lg-flex { - display: flex #{$important-helpers-value}; - } - .d-lg-inline-flex { - display: inline-flex #{$important-helpers-value}; - } - .d-lg-inline { - display: inline #{$important-helpers-value}; - } - .d-lg-inline-block { - display: inline-block #{$important-helpers-value}; - } - .d-lg-block { - display: block #{$important-helpers-value}; - } - .d-lg-table { - display: table #{$important-helpers-value}; - } - .d-lg-table-row { - display: table-row #{$important-helpers-value}; - } - .d-lg-table-cell { - display: table-cell #{$important-helpers-value}; - } -} - -@media (min-width: $screen-xl) { - .hide-xl, - .hidden-xl, - .d-xl-none { - display: none #{$important-helpers-value}; - } - .d-xl-flex { - display: flex #{$important-helpers-value}; - } - .d-xl-inline-flex { - display: inline-flex #{$important-helpers-value}; - } - .d-xl-inline { - display: inline #{$important-helpers-value}; - } - .d-xl-inline-block { - display: inline-block #{$important-helpers-value}; - } - .d-xl-block { - display: block #{$important-helpers-value}; - } - .d-xl-table { - display: table #{$important-helpers-value}; - } - .d-xl-table-row { - display: table-row #{$important-helpers-value}; - } - .d-xl-table-cell { - display: table-cell #{$important-helpers-value}; - } -} diff --git a/theme/styles/web/sass/core/helpers/_images.scss b/theme/styles/web/sass/core/helpers/_images.scss deleted file mode 100644 index 7a65cc6..0000000 --- a/theme/styles/web/sass/core/helpers/_images.scss +++ /dev/null @@ -1,52 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Images - - Default Mendix Image Widgets -========================================================================== */ - -img.img-rounded, -.img-rounded img { - border-radius: 6px; -} - -img.img-thumbnail, -.img-thumbnail img { - display: inline-block; - max-width: 100%; - height: auto; - padding: 4px; - -webkit-transition: all 0.2s ease-in-out; - -moz-transition: all 0.2s ease-in-out; - -o-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; - border: 1px solid $brand-default; - border-radius: 4px; - background-color: #FFFFFF; - line-height: $line-height-base; -} - -img.img-circle, -.img-circle img { - border-radius: 50%; -} - -img.img-auto, -.img-auto img { - width: auto !important; - max-width: 100% !important; - height: auto !important; - max-height: 100% !important; -} - -img.img-center, -.img-center img { - margin-right: auto !important; - margin-left: auto !important; -} diff --git a/theme/styles/web/sass/core/helpers/_labels.scss b/theme/styles/web/sass/core/helpers/_labels.scss deleted file mode 100644 index ef798ba..0000000 --- a/theme/styles/web/sass/core/helpers/_labels.scss +++ /dev/null @@ -1,48 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Labels - -//== Design Properties -//## Helper classes to change the look and feel of the component -========================================================================== */ -// Color variations -.label-default { - color: $label-default-color; - background-color: $label-default-bg; -} - -.label-primary { - color: $label-primary-color; - background-color: $label-primary-bg; -} - -.label-success { - color: $label-success-color; - background-color: $label-success-bg; -} - -.label-inverse { - color: $label-inverse-color; - background-color: $label-inverse-bg; -} - -.label-info { - color: $label-info-color; - background-color: $label-info-bg; -} - -.label-warning { - color: $label-warning-color; - background-color: $label-warning-bg; -} - -.label-danger { - color: $label-danger-color; - background-color: $label-danger-bg; -} diff --git a/theme/styles/web/sass/core/helpers/_listview.scss b/theme/styles/web/sass/core/helpers/_listview.scss deleted file mode 100644 index f56a4f3..0000000 --- a/theme/styles/web/sass/core/helpers/_listview.scss +++ /dev/null @@ -1,302 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// -/* ========================================================================== - Listview - -//== Design Properties -//## Helper classes to change the look and feel of the component -========================================================================== */ -// Bordered -.listview-bordered.mx-listview { - & > ul > li { - border: 1px solid $grid-border-color; - border-top: 0; - - &:first-child { - border-top: 1px solid $grid-border-color; - border-radius: 0; - } - - &:last-child { - border-radius: 0; - } - } -} - -// Striped -.listview-striped.mx-listview { - & > ul > li:nth-child(2n + 1) { - background-color: $grid-bg-striped; - } -} - -// Items as seperated blocks -.listview-seperated.mx-listview { - & > ul > li { - margin-bottom: $gutter-size; - border-width: 1px; - border-style: solid; - border-radius: $border-radius-default; - } -} - -// Remove all styling -.listview-stylingless.mx-listview { - & > ul > li { - padding: 0; - cursor: default; - border: 0; - background-color: transparent; - - &:hover, - &:focus, - &:active { - background-color: transparent; - } - - &.selected { - background-color: transparent !important; - - &:hover, - &:focus, - &:active { - background-color: transparent !important; - } - } - } -} - -// Hover style activated -.listview-hover.mx-listview { - & > ul > li { - &:hover, - &:focus, - &:active { - background-color: $grid-bg-hover !important; - } - - &.selected { - &:hover, - &:focus, - &:active { - background-color: $grid-bg-selected-hover !important; - } - } - } -} - -// Templategrid Row Sizes -.listview-lg.mx-listview { - & > ul > li { - padding: ($grid-padding-top * 2) ($grid-padding-right * 2) ($grid-padding-bottom * 2) ($grid-padding-left * 2); - } -} - -.listview-sm.mx-listview { - & > ul > li { - padding: ($grid-padding-top / 2) ($grid-padding-right / 2) ($grid-padding-bottom / 2) ($grid-padding-left / 2); - } -} - -// Bootstrap columns -.mx-listview[class*='lv-col'] { - overflow: hidden; // For if it is not in a layout, to prevent scrollbars - & > ul { - display: block; // normal a table - margin-right: -1 * $gutter-size; - margin-left: -1 * $gutter-size; - - &::before, - &::after { - // clearfix - display: table; - clear: both; - content: ' '; - } - - & > li { - // bootstrap col - position: relative; - display: block; // normal a table - float: left; - min-height: 1px; - padding-right: $gutter-size; - padding-left: $gutter-size; - border: 0; - @media (max-width: $screen-md-max) { - width: 100% !important; - } - - & > .mx-dataview { - overflow: hidden; - } - } - } - - &.lv-col-xs-12 > ul > li { - width: 100% !important; - } - - &.lv-col-xs-11 > ul > li { - width: 91.66666667% !important; - } - - &.lv-col-xs-10 > ul > li { - width: 83.33333333% !important; - } - - &.lv-col-xs-9 > ul > li { - width: 75% !important; - } - - &.lv-col-xs-8 > ul > li { - width: 66.66666667% !important; - } - - &.lv-col-xs-7 > ul > li { - width: 58.33333333% !important; - } - - &.lv-col-xs-6 > ul > li { - width: 50% !important; - } - - &.lv-col-xs-5 > ul > li { - width: 41.66666667% !important; - } - - &.lv-col-xs-4 > ul > li { - width: 33.33333333% !important; - } - - &.lv-col-xs-3 > ul > li { - width: 25% !important; - } - - &.lv-col-xs-2 > ul > li { - width: 16.66666667% !important; - } - - &.lv-col-xs-1 > ul > li { - width: 8.33333333% !important; - } - - @media (min-width: $screen-md) { - &.lv-col-sm-12 > ul > li { - width: 100% !important; - } - &.lv-col-sm-11 > ul > li { - width: 91.66666667% !important; - } - &.lv-col-sm-10 > ul > li { - width: 83.33333333% !important; - } - &.lv-col-sm-9 > ul > li { - width: 75% !important; - } - &.lv-col-sm-8 > ul > li { - width: 66.66666667% !important; - } - &.lv-col-sm-7 > ul > li { - width: 58.33333333% !important; - } - &.lv-col-sm-6 > ul > li { - width: 50% !important; - } - &.lv-col-sm-5 > ul > li { - width: 41.66666667% !important; - } - &.lv-col-sm-4 > ul > li { - width: 33.33333333% !important; - } - &.lv-col-sm-3 > ul > li { - width: 25% !important; - } - &.lv-col-sm-2 > ul > li { - width: 16.66666667% !important; - } - &.lv-col-sm-1 > ul > li { - width: 8.33333333% !important; - } - } - @media (min-width: $screen-lg) { - &.lv-col-md-12 > ul > li { - width: 100% !important; - } - &.lv-col-md-11 > ul > li { - width: 91.66666667% !important; - } - &.lv-col-md-10 > ul > li { - width: 83.33333333% !important; - } - &.lv-col-md-9 > ul > li { - width: 75% !important; - } - &.lv-col-md-8 > ul > li { - width: 66.66666667% !important; - } - &.lv-col-md-7 > ul > li { - width: 58.33333333% !important; - } - &.lv-col-md-6 > ul > li { - width: 50% !important; - } - &.lv-col-md-5 > ul > li { - width: 41.66666667% !important; - } - &.lv-col-md-4 > ul > li { - width: 33.33333333% !important; - } - &.lv-col-md-3 > ul > li { - width: 25% !important; - } - &.lv-col-md-2 > ul > li { - width: 16.66666667% !important; - } - &.lv-col-md-1 > ul > li { - width: 16.66666667% !important; - } - } - @media (min-width: $screen-xl) { - &.lv-col-lg-12 > ul > li { - width: 100% !important; - } - &.lv-col-lg-11 > ul > li { - width: 91.66666667% !important; - } - &.lv-col-lg-10 > ul > li { - width: 83.33333333% !important; - } - &.lv-col-lg-9 > ul > li { - width: 75% !important; - } - &.lv-col-lg-8 > ul > li { - width: 66.66666667% !important; - } - &.lv-col-lg-7 > ul > li { - width: 58.33333333% !important; - } - &.lv-col-lg-6 > ul > li { - width: 50% !important; - } - &.lv-col-lg-5 > ul > li { - width: 41.66666667% !important; - } - &.lv-col-lg-4 > ul > li { - width: 33.33333333% !important; - } - &.lv-col-lg-3 > ul > li { - width: 25% !important; - } - &.lv-col-lg-2 > ul > li { - width: 16.66666667% !important; - } - &.lv-col-lg-1 > ul > li { - width: 8.33333333% !important; - } - } -} diff --git a/theme/styles/web/sass/core/helpers/_navigationbar.scss b/theme/styles/web/sass/core/helpers/_navigationbar.scss deleted file mode 100644 index b4fbad9..0000000 --- a/theme/styles/web/sass/core/helpers/_navigationbar.scss +++ /dev/null @@ -1,186 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Navigation - -//== Regions -//## Behavior in the different regions -========================================================================== */ -// When used in topbar -.region-topbar { - .mx-navbar { - background-color: $navtopbar-bg; - ul.nav { - /* Navigation item */ - & > li.mx-navbar-item > a { - color: $navtopbar-color; - font-size: $navtopbar-font-size; - - /* Dropdown arrow */ - .caret { - border-top-color: $navtopbar-color; - border-bottom-color: $navtopbar-color; - } - &:hover, - &:focus, - &.active { - color: $navtopbar-color-hover; - background-color: $navtopbar-bg-hover; - .caret { - border-top-color: $navtopbar-color-active; - border-bottom-color: $navtopbar-color-active; - } - } - &.active { - color: $navtopbar-color-active; - background-color: $navtopbar-bg-active; - } - - /* Dropdown */ - .mx-navbar-submenu::before { - border-color: transparent transparent $navtopbar-border-color transparent; - } - - // Image - .glyphicon { - font-size: $navtopbar-glyph-size; - } - } - - /* When hovering or the dropdown is open */ - & > .mx-navbar-item > a:hover, - & > .mx-navbar-item > a:focus, - & > .mx-navbar-item.active a, - & > .mx-navbar-item.open > a, - & > .mx-navbar-item.open > a:hover, - & > .mx-navbar-item.open > a:focus { - color: $navtopbar-color-hover; - background-color: $navtopbar-bg-hover; - .caret { - border-top-color: $navtopbar-color-hover; - border-bottom-color: $navtopbar-color-hover; - } - } - & > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem.active a { - color: $navtopbar-sub-color-active; - background-color: $navtopbar-sub-bg-active; - .caret { - border-top-color: $navtopbar-sub-color-active; - border-bottom-color: $navtopbar-sub-color-active; - } - } - } - @media (max-width: $screen-md) { - ul.nav > li.mx-navbar-item > a { - } - .mx-navbar-item.open .dropdown-menu { - background-color: $navtopbar-sub-bg; - & > li.mx-navbar-subitem > a { - color: $navtopbar-sub-color; - font-size: $navtopbar-sub-font-size; - &:hover, - &:focus { - color: $navtopbar-sub-color-hover; - background-color: $navtopbar-sub-bg-hover; - } - &.active { - color: $navtopbar-sub-color-active; - background-color: $navtopbar-sub-bg-active; - } - } - } - } - } -} - -// When used in sidebar -.region-sidebar { - .mx-navbar { - background-color: $navsidebar-bg; - ul.nav { - /* Navigation item */ - & > li.mx-navbar-item > a { - color: $navsidebar-color; - font-size: $navsidebar-font-size; - - /* Dropdown arrow */ - .caret { - border-top-color: $navsidebar-color; - border-bottom-color: $navsidebar-color; - } - &:hover, - &:focus, - &.active { - color: $navsidebar-color-hover; - background-color: $navsidebar-bg-hover; - .caret { - border-top-color: $navsidebar-color-active; - border-bottom-color: $navsidebar-color-active; - } - } - &.active { - color: $navsidebar-color-active; - background-color: $navsidebar-bg-active; - } - - /* Dropdown */ - .mx-navbar-submenu::before { - border-color: transparent transparent $navsidebar-border-color transparent; - } - - // Image - .glyphicon { - font-size: $navsidebar-glyph-size; - } - } - - /* When hovering or the dropdown is open */ - & > .mx-navbar-item > a:hover, - & > .mx-navbar-item > a:focus, - & > .mx-navbar-item.active a, - & > .mx-navbar-item.open > a, - & > .mx-navbar-item.open > a:hover, - & > .mx-navbar-item.open > a:focus { - color: $navsidebar-color-hover; - background-color: $navsidebar-bg-hover; - .caret { - border-top-color: $navsidebar-color-hover; - border-bottom-color: $navsidebar-color-hover; - } - } - & > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem.active a { - color: $navsidebar-sub-color-active; - background-color: $navsidebar-sub-bg-active; - .caret { - border-top-color: $navsidebar-sub-color-active; - border-bottom-color: $navsidebar-sub-color-active; - } - } - } - @media (max-width: $screen-md) { - ul.nav > li.mx-navbar-item > a { - } - .mx-navbar-item.open .dropdown-menu { - background-color: $navtopbar-sub-bg; - & > li.mx-navbar-subitem > a { - color: $navsidebar-sub-color; - font-size: $navsidebar-sub-font-size; - &:hover, - &:focus { - color: $navsidebar-sub-color-hover; - background-color: $navsidebar-sub-bg-hover; - } - &.active { - color: $navsidebar-sub-color-active; - background-color: $navsidebar-sub-bg-active; - } - } - } - } - } -} diff --git a/theme/styles/web/sass/core/helpers/_navigationtree.scss b/theme/styles/web/sass/core/helpers/_navigationtree.scss deleted file mode 100644 index 9037dbc..0000000 --- a/theme/styles/web/sass/core/helpers/_navigationtree.scss +++ /dev/null @@ -1,166 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Navigation - -//== Regions -//## Behavior in the different regions -========================================================================== */ -// When used in topbar -.region-topbar { - .mx-navigationtree { - background-color: $navtopbar-bg; - .navbar-inner > ul { - & > li { - & > a { - color: $navtopbar-color; - border-color: $navtopbar-border-color; - background-color: $navtopbar-bg; - font-size: $navtopbar-font-size; - .caret { - border-top-color: $navtopbar-color; - border-bottom-color: $navtopbar-color; - } - - .glyphicon { - font-size: $navtopbar-glyph-size; - } - } - a:hover, - a:focus, - a.active { - color: $navtopbar-color-hover; - background-color: $navtopbar-bg-hover; - .caret { - border-top-color: $navtopbar-color-active; - border-bottom-color: $navtopbar-color-active; - } - } - a.active { - color: $navtopbar-color-active; - border-left-color: $navtopbar-color-active; - background-color: $navtopbar-bg-active; - } - } - } - - /* Sub navigation item specific */ - li.mx-navigationtree-has-items { - & > ul { - background-color: $navtopbar-sub-bg; - li { - a { - color: $navtopbar-sub-color; - background-color: $navtopbar-sub-bg; - font-size: $navtopbar-sub-font-size; - &:hover, - &:focus, - &.active { - color: $navtopbar-sub-color-hover; - background-color: $navtopbar-sub-bg-hover; - } - &.active { - color: $navtopbar-sub-color-active; - background-color: $navtopbar-sub-bg-active; - } - } - } - } - } - } -} - -// When used in sidebar -.region-sidebar { - .mx-navigationtree { - background-color: $navsidebar-bg; - .navbar-inner > ul { - & > li { - & > a { - color: $navsidebar-color; - border-color: $navsidebar-border-color; - background-color: $navsidebar-bg; - font-size: $navsidebar-font-size; - .caret { - border-top-color: $navsidebar-color; - border-bottom-color: $navsidebar-color; - } - - .glyphicon { - font-size: $navsidebar-glyph-size; - } - } - a:hover, - a:focus, - a.active { - color: $navsidebar-color-hover; - background-color: $navsidebar-bg-hover; - .caret { - border-top-color: $navsidebar-color-active; - border-bottom-color: $navsidebar-color-active; - } - } - a.active { - color: $navsidebar-color-active; - border-left-color: $navsidebar-color-active; - background-color: $navsidebar-bg-active; - } - } - } - - /* Sub navigation item specific */ - li.mx-navigationtree-has-items { - & > ul { - background-color: $navsidebar-sub-bg; - li { - a { - color: $navsidebar-sub-color; - background-color: $navsidebar-sub-bg; - font-size: $navsidebar-sub-font-size; - &:hover, - &:focus, - &.active { - color: $navsidebar-sub-color-hover; - background-color: $navsidebar-sub-bg-hover; - } - &.active { - color: $navsidebar-sub-color-active; - background-color: $navsidebar-sub-bg-active; - } - } - } - } - } - } -} - - -//== Design Properties -//## Helper classes to change the look and feel of the component -//-------------------------------------------------------------------------------------------------------------------// -// Content Centerd text and icons -.nav-content-center-text-icons.mx-navigationtree { - .navbar-inner ul { - a { - flex-direction: column; - justify-content: center; - .glyphicon { - margin: 0 0 5px 0; - } - } - } -} - -// Content Centerd icons only -.nav-content-center.mx-navigationtree { - .navbar-inner ul { - a { - justify-content: center; - } - } -} diff --git a/theme/styles/web/sass/core/helpers/_simplemenubar.scss b/theme/styles/web/sass/core/helpers/_simplemenubar.scss deleted file mode 100644 index 1c6eaa8..0000000 --- a/theme/styles/web/sass/core/helpers/_simplemenubar.scss +++ /dev/null @@ -1,36 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Navigation - -//== Design Properties -//## Helper classes to change the look and feel of the component -========================================================================== */ -// Center text and icons -.bottom-nav-text-icons.mx-menubar { - ul.mx-menubar-list { - li.mx-menubar-item { - a { - flex-direction: column; - padding: 8px 8px 6px 8px; - line-height: normal; - font-size: 11px; - .glyphicon { - display: block; - margin: 0 0 5px 0; - font-size: 18px; - } - img { - display: block; - height: 18px; - margin: 0 0 5px 0; - } - } - } - } -} diff --git a/theme/styles/web/sass/core/helpers/_tabcontainer.scss b/theme/styles/web/sass/core/helpers/_tabcontainer.scss deleted file mode 100644 index 727c236..0000000 --- a/theme/styles/web/sass/core/helpers/_tabcontainer.scss +++ /dev/null @@ -1,164 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Tab Container - -//== Design Properties -//## Helper classes to change the look and feel of the component -========================================================================== */ -// Style as pills -.tab-pills.mx-tabcontainer { - & > .mx-tabcontainer-tabs { - border: 0; - & > li > a { - margin-right: 2px; - color: $tabs-color; - border: 1px solid $tabs-border-color; - border-radius: 4px; - &:hover, - &:focus { - background-color: $tabs-bg-hover; - } - } - & > li.active > a, - & > li.active > a:hover, - & > li.active > a:focus { - color: #FFFFFF; - border-color: $tabs-bg-active; - background-color: $tabs-bg-active; - } - } -} - -// Style with lines -.tab-lined.mx-tabcontainer { - & > .mx-tabcontainer-tabs { - border-width: 3px; - li { - margin-right: 30px; - margin-bottom: -3px; - & > a { - padding: 10px 0; - color: $tabs-color; - border: 0; - border-style: solid; - border-color: transparent; - border-bottom-width: 3px; - border-radius: 0; - &:hover, - &:focus { - color: $tabs-color; - border: 0; - border-color: transparent; - background: transparent; - } - } - &.active > a, - &.active > a:hover, - &.active > a:focus { - color: $tabs-lined-color-active; - border: 0; - border-bottom: 3px solid $tabs-lined-border-color; - background-color: transparent; - } - } - } -} - -// Justified style -// Lets your tabs take 100% of the width -.tab-justified.mx-tabcontainer { - & > .mx-tabcontainer-tabs { - width: 100%; - border-bottom: 0; - & > li { - display: table-cell; - float: none; - width: 1%; - margin: 0; - @media (max-width: $screen-sm-max) { - display: block; - width: 100%; - } - & > a { - text-align: center; - border-bottom: 1px solid $tabs-border-color; - } - } - & > li.active > a { - border-bottom-color: transparent; - border-radius: 4px; - @media (max-width: $screen-sm-max) { - border-bottom-color: $tabs-border-color; - } - } - } -} - -// Bordered -.tab-bordered.mx-tabcontainer { - & > .mx-tabcontainer-tabs { - margin: 0; - } - & > .mx-tabcontainer-content { - padding: 10px; - border-width: 0 1px 1px 1px; - border-style: solid; - border-color: $tabs-border-color; - background-color: #FFFFFF; - } -} - -// Wizard -.tab-wizard.mx-tabcontainer { - & > .mx-tabcontainer-tabs { - position: relative; - display: flex; - justify-content: space-between; - border-style: none; - - &::before { - position: absolute; - top: 16px; - display: block; - width: 100%; - height: 1px; - content: ""; - background-color: $tabs-border-color; - } - & > li { - position: relative; - float: none; - width: 100%; - text-align: center; - & > a { - width: 33px; - height: 33px; - margin: auto; - padding: 0; - text-align: center; - color: $brand-default; - border: 1px solid $tabs-border-color; - border-radius: 100%; - background-color: #FFFFFF; - font-size: 18px; - font-weight: bold; - line-height: 33px; - } - &.active { - & > a, - & > a:hover, - & > a:focus { - color: #FFFFFF; - border-color: $tabs-bg-active; - background-color: $tabs-bg-active; - } - } - } - } -} diff --git a/theme/styles/web/sass/core/helpers/_tables.scss b/theme/styles/web/sass/core/helpers/_tables.scss deleted file mode 100644 index b81f803..0000000 --- a/theme/styles/web/sass/core/helpers/_tables.scss +++ /dev/null @@ -1,206 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Tables - -//== Design Properties -//## Helper classes to change the look and feel of the component -========================================================================== */ -// Lined -table.table-lined.mx-table { - > tbody { - // Table row - > tr { - // Table header - // Table data - > td { - border-width: 1px 0; - border-style: solid; - border-color: $grid-border-color; - } - } - } -} - -// Bordered -table.table-bordered.mx-table { - > tbody { - // Table row - > tr { - // Table header - // Table data - > th, - > td { - border-width: 1px; - border-style: solid; - border-color: $grid-border-color; - } - } - } -} - -// Makes table compact -table.table-compact.mx-table { - > tbody { - // Table row - > tr { - // Table header - // Table data - > th, - > td { - padding-top: 2px; - padding-bottom: 2px; - } - } - } -} - -// Remove padding on sides -table.table-sideless.mx-table { - > tbody { - // Table row - > tr { - // Table header - // Table data - > td, - > th { - padding-right: 0; - } - > th:first-child, - > td:first-child { - padding-left: 0; - } - } - } -} - -// Remove all padding -table.table-spaceless.mx-table { - > tbody { - // Table row - > tr { - // Table header - // Table data - > th, - > td { - padding: 0; - } - } - } -} - -// Tables Vertical -// Will remove unwanted paddings -table.table-vertical.mx-table { - > tbody { - // Table row - > tr { - // Table header - > th { - padding-bottom: 0; - > label { - padding: 0; - } - > div > label { - padding: 0; - } - } - } - } -} - -// Align content in middle -table.table-align-vertical-middle.mx-table { - > tbody { - // Table row - > tr { - // Table header - // Table data - > th, - > td { - vertical-align: middle; - } - } - } -} - -// Compact labels -table.table-label-compact.mx-table { - > tbody { - // Table row - > tr { - // Table header - // Table data - > th, - > td { - > label { - margin: 0; - padding: 0; - } - > div > label, - .mx-referenceselector-input-wrapper label { - margin: 0; - padding: 0; - } - } - } - } -} - -$height-row-s: 55px; -$height-row-m: 70px; -$height-row-l: 120px; -// Small rows -table.table-row-s.mx-table { - > tbody { - // Table row - > tr { - // Table header - // Table data - > th, - > td { - height: $height-row-s; - } - } - } -} - -// Medium rows -table.table-row-m.mx-table { - > tbody { - // Table row - > tr { - // Table header - // Table data - > th, - > td { - height: $height-row-m; - } - } - } -} - -// Large rows -table.table-row-l.mx-table { - > tbody { - // Table row - > tr { - // Table header - // Table data - > th, - > td { - height: $height-row-l; - } - } - } -} - -// Makes the columns fixed -table.table-fixed { - table-layout: fixed; -} diff --git a/theme/styles/web/sass/core/helpers/_templategrids.scss b/theme/styles/web/sass/core/helpers/_templategrids.scss deleted file mode 100644 index 3cfa01c..0000000 --- a/theme/styles/web/sass/core/helpers/_templategrids.scss +++ /dev/null @@ -1,304 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// -/* ========================================================================== - Templategrid - -//== Design Properties -//## Helper classes to change the look and feel of the component -========================================================================== */ -// Make sure your content looks selectable -.templategrid-selectable.mx-templategrid { - .mx-templategrid-item { - cursor: pointer; - } -} - -// Lined -.templategrid-lined.mx-templategrid { - .mx-grid-content { - border-top-width: 2px; - border-top-style: solid; - border-top-color: $grid-border-color; - } - - .mx-templategrid-item { - border-top: 1px solid $grid-border-color; - border-right: none; - border-bottom: 1px solid $grid-border-color; - border-left: none; - } -} - -// Striped -.templategrid-striped.mx-templategrid { - .mx-templategrid-row:nth-child(odd) .mx-templategrid-item { - background-color: #F9F9F9; - } -} - -// Stylingless -.templategrid-stylingless.mx-templategrid { - .mx-templategrid-item { - padding: 0; - cursor: default; - border: 0; - background-color: transparent; - - &:hover { - background-color: transparent; - } - - &.selected { - background-color: transparent !important; - - &:hover { - background-color: transparent !important; - } - } - } -} - -// Transparent items -.templategrid-transparent.mx-templategrid { - .mx-templategrid-item { - border: 0; - background-color: transparent; - } -} - -// Hover -.templategrid-hover.mx-templategrid { - .mx-templategrid-item { - &:hover { - background-color: $grid-bg-hover !important; - } - - &.selected { - background-color: $grid-bg-selected !important; - - &:hover { - background-color: $grid-bg-selected-hover !important; - } - } - } -} - -// Templategrid Row Sizes -.templategrid-lg.mx-templategrid { - .mx-templategrid-item { - padding: ($grid-padding-top * 2) ($grid-padding-right * 2) ($grid-padding-bottom * 2) ($grid-padding-left * 2); - } -} - -.templategrid-sm.mx-templategrid { - .mx-templategrid-item { - padding: ($grid-padding-top / 2) ($grid-padding-right / 2) ($grid-padding-bottom / 2) ($grid-padding-left / 2); - } -} - -// Templategrid Layoutgrid styles -.mx-templategrid[class*="tg-col"] { - overflow: hidden; // For if it is not in a layout, to prevent scrollbars - .mx-templategrid-content-wrapper { - display: block; - } - - .mx-templategrid-row { - display: block; - margin-right: -1 * $gutter-size; - margin-left: -1 * $gutter-size; - - &::before, - &::after { - // clearfix - display: table; - clear: both; - content: " "; - } - } - - .mx-templategrid-item { - // bootstrap col - position: relative; - display: block; - float: left; - min-height: 1px; - padding-right: $gutter-size; - padding-left: $gutter-size; - border: 0; - @media (max-width: 992px) { - width: 100% !important; - } - - .mx-dataview { - overflow: hidden; - } - } - - &.tg-col-xs-12 .mx-templategrid-item { - width: 100% !important; - } - - &.tg-col-xs-11 .mx-templategrid-item { - width: 91.66666667% !important; - } - - &.tg-col-xs-10 .mx-templategrid-item { - width: 83.33333333% !important; - } - - &.tg-col-xs-9 .mx-templategrid-item { - width: 75% !important; - } - - &.tg-col-xs-8 .mx-templategrid-item { - width: 66.66666667% !important; - } - - &.tg-col-xs-7 .mx-templategrid-item { - width: 58.33333333% !important; - } - - &.tg-col-xs-6 .mx-templategrid-item { - width: 50% !important; - } - - &.tg-col-xs-5 .mx-templategrid-item { - width: 41.66666667% !important; - } - - &.tg-col-xs-4 .mx-templategrid-item { - width: 33.33333333% !important; - } - - &.tg-col-xs-3 .mx-templategrid-item { - width: 25% !important; - } - - &.tg-col-xs-2 .mx-templategrid-item { - width: 16.66666667% !important; - } - - &.tg-col-xs-1 .mx-templategrid-item { - width: 8.33333333% !important; - } - - @media (min-width: 768px) { - &.tg-col-sm-12 .mx-templategrid-item { - width: 100% !important; - } - &.tg-col-sm-11 .mx-templategrid-item { - width: 91.66666667% !important; - } - &.tg-col-sm-10 .mx-templategrid-item { - width: 83.33333333% !important; - } - &.tg-col-sm-9 .mx-templategrid-item { - width: 75% !important; - } - &.tg-col-sm-8 .mx-templategrid-item { - width: 66.66666667% !important; - } - &.tg-col-sm-7 .mx-templategrid-item { - width: 58.33333333% !important; - } - &.tg-col-sm-6 .mx-templategrid-item { - width: 50% !important; - } - &.tg-col-sm-5 .mx-templategrid-item { - width: 41.66666667% !important; - } - &.tg-col-sm-4 .mx-templategrid-item { - width: 33.33333333% !important; - } - &.tg-col-sm-3 .mx-templategrid-item { - width: 25% !important; - } - &.tg-col-sm-2 .mx-templategrid-item { - width: 16.66666667% !important; - } - &.tg-col-sm-1 .mx-templategrid-item { - width: 8.33333333% !important; - } - } - @media (min-width: 992px) { - &.tg-col-md-12 .mx-templategrid-item { - width: 100% !important; - } - &.tg-col-md-11 .mx-templategrid-item { - width: 91.66666667% !important; - } - &.tg-col-md-10 .mx-templategrid-item { - width: 83.33333333% !important; - } - &.tg-col-md-9 .mx-templategrid-item { - width: 75% !important; - } - &.tg-col-md-8 .mx-templategrid-item { - width: 66.66666667% !important; - } - &.tg-col-md-7 .mx-templategrid-item { - width: 58.33333333% !important; - } - &.tg-col-md-6 .mx-templategrid-item { - width: 50% !important; - } - &.tg-col-md-5 .mx-templategrid-item { - width: 41.66666667% !important; - } - &.tg-col-md-4 .mx-templategrid-item { - width: 33.33333333% !important; - } - &.tg-col-md-3 .mx-templategrid-item { - width: 25% !important; - } - &.tg-col-md-2 .mx-templategrid-item { - width: 16.66666667% !important; - } - &.tg-col-md-1 .mx-templategrid-item { - width: 8.33333333% !important; - } - } - @media (min-width: 1200px) { - &.tg-col-lg-12 .mx-templategrid-item { - width: 100% !important; - } - &.tg-col-lg-11 .mx-templategrid-item { - width: 91.66666667% !important; - } - &.tg-col-lg-10 .mx-templategrid-item { - width: 83.33333333% !important; - } - &.tg-col-lg-9 .mx-templategrid-item { - width: 75% !important; - } - &.tg-col-lg-8 .mx-templategrid-item { - width: 66.66666667% !important; - } - &.tg-col-lg-7 .mx-templategrid-item { - width: 58.33333333% !important; - } - &.tg-col-lg-6 .mx-templategrid-item { - width: 50% !important; - } - &.tg-col-lg-5 .mx-templategrid-item { - width: 41.66666667% !important; - } - &.tg-col-lg-4 .mx-templategrid-item { - width: 33.33333333% !important; - } - &.tg-col-lg-3 .mx-templategrid-item { - width: 25% !important; - } - &.tg-col-lg-2 .mx-templategrid-item { - width: 16.66666667% !important; - } - &.tg-col-lg-1 .mx-templategrid-item { - width: 8.33333333% !important; - } - } -} diff --git a/theme/styles/web/sass/core/helpers/_typography.scss b/theme/styles/web/sass/core/helpers/_typography.scss deleted file mode 100644 index cab8b63..0000000 --- a/theme/styles/web/sass/core/helpers/_typography.scss +++ /dev/null @@ -1,135 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Typography - -//== Design Properties -//## Helper classes to change the look and feel of the component -========================================================================== */ -// Text size -.text-small { - font-size: $font-size-small !important; -} - -.text-large { - font-size: $font-size-large !important; -} - -// Text Weights -.text-light, -.text-light > *, -.text-light label { - font-weight: $font-weight-light !important; -} - -.text-normal, -.text-normal > *, -.text-normal label { - font-weight: $font-weight-normal !important; -} - -.text-semibold, -.text-semibold > *, -.text-semibold label { - font-weight: $font-weight-semibold !important; -} - -.text-bold, -.text-bold > *, -.text-bold label { - font-weight: $font-weight-bold !important; -} - -// Color variations -.text-default, -.text-default:hover { - color: $font-color-default !important; -} - -.text-primary, -.text-primary:hover { - color: $brand-primary !important; -} - -.text-info, -.text-info:hover { - color: $brand-info !important; -} - -.text-success, -.text-success:hover { - color: $brand-success !important; -} - -.text-warning, -.text-warning:hover { - color: $brand-warning !important; -} - -.text-danger, -.text-danger:hover { - color: $brand-danger !important; -} - -.text-header { - color: $font-color-header !important; -} - -.text-detail { - color: $font-color-detail !important; -} - -.text-white { - color: #ffffff; -} - -// Alignment options -.text-left { - text-align: left !important; -} -.text-center { - text-align: center !important; -} -.text-right { - text-align: right !important; -} -.text-justify { - text-align: justify !important; -} - -// Transform options -.text-lowercase { - text-transform: lowercase !important; -} -.text-uppercase { - text-transform: uppercase !important; -} -.text-capitalize { - text-transform: capitalize !important; -} - -// Wrap options -.text-break { - word-break: break-all !important; - word-break: break-word !important; - -ms-word-break: break-all !important; - -webkit-hyphens: auto !important; - -moz-hyphens: auto !important; - hyphens: auto !important; -} - -.text-nowrap { - white-space: nowrap !important; -} - -.text-nowrap { - overflow: hidden !important; - max-width: 100% !important; - white-space: nowrap !important; - text-overflow: ellipsis !important; -} diff --git a/theme/styles/web/sass/core/manifest.json b/theme/styles/web/sass/core/manifest.json deleted file mode 100644 index 5ace500..0000000 --- a/theme/styles/web/sass/core/manifest.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "Atlas-UI-Framework", - "version": "2.6.3" -} \ No newline at end of file diff --git a/theme/styles/web/sass/core/widgets/_alerts.scss b/theme/styles/web/sass/core/widgets/_alerts.scss deleted file mode 100644 index 006ae6a..0000000 --- a/theme/styles/web/sass/core/widgets/_alerts.scss +++ /dev/null @@ -1,19 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Alerts - - Default Bootstrap Alert boxes. Provide contextual feedback messages for typical user actions with the handful of available and flexible alert messages -========================================================================== */ - -.alert { - margin-top: 0; // want to align it with padding of a page - padding: 15px; - border: 0; - border-radius: 4px; -} diff --git a/theme/styles/web/sass/core/widgets/_buttons.scss b/theme/styles/web/sass/core/widgets/_buttons.scss deleted file mode 100644 index c5cc4d0..0000000 --- a/theme/styles/web/sass/core/widgets/_buttons.scss +++ /dev/null @@ -1,96 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Buttons - - Default Bootstrap and Mendix Buttons -========================================================================== */ - -.btn, -.mx-button { - display: inline-block; - margin-bottom: 0; - padding: 0.6em 1em; - cursor: pointer; - -moz-user-select: none; - -ms-user-select: none; - -webkit-user-select: none; - user-select: none; - -moz-transition: all 0.2s ease-in-out; - -o-transition: all 0.2s ease-in-out; - -webkit-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; - text-align: center; - vertical-align: middle; - white-space: nowrap; - color: $btn-default-color; - border: 1px solid $btn-default-border-color; - border-radius: $btn-border-radius; - background-color: $btn-default-bg; - background-image: none; - box-shadow: none; - text-shadow: none; - font-size: $btn-font-size; - line-height: $line-height-base; - - &:hover, - &:focus, - &:active, - &:active:focus { - outline: none; - box-shadow: none; - } - - &[aria-disabled] { - cursor: not-allowed; - pointer-events: none; - opacity: 0.65; - filter: alpha(opacity=65); - } - - @if $btn-bordered != false { - @extend .btn-bordered; - } -} - -// Mendix button link -.mx-link { - padding: 0; - color: $link-color; - - &[aria-disabled='true'] { - cursor: not-allowed; - pointer-events: none; - opacity: 0.65; - filter: alpha(opacity=65); - } -} - -// Images and icons in buttons -.btn, -.mx-button, -.mx-link { - img { - //height: auto; // MXUI override who set the height on 16px default - height: $font-size-default + 4px; - margin-right: 5px; - vertical-align: text-top; - } -} - -//== Phone specific -//-------------------------------------------------------------------------------------------------------------------// -.profile-phone { - .btn, - .mx-link { - &:active { - -webkit-transform: translateY(1px); - transform: translateY(1px); - } - } -} diff --git a/theme/styles/web/sass/core/widgets/_checkbox.scss b/theme/styles/web/sass/core/widgets/_checkbox.scss deleted file mode 100644 index 5534c72..0000000 --- a/theme/styles/web/sass/core/widgets/_checkbox.scss +++ /dev/null @@ -1,112 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Checkbox - - Default Mendix Checkbox Widget -========================================================================== */ - -.mx-checkbox.label-after { - flex-wrap: wrap; - - .control-label { - padding: 0; - } -} - -input[type='checkbox'] { - position: relative !important; //Remove after mxui merge - width: 16px; - height: 16px; - margin: 0 !important; // Remove after mxui merge - cursor: pointer; - -moz-user-select: none; - -ms-user-select: none; - -o-user-select: none; - -webkit-user-select: none; - user-select: none; - appearance: none; - -moz-appearance: none; - -webkit-appearance: none; - - - &::-ms-check { - color: $form-input-border-color; - border-color: $form-input-border-color; - border-radius: $form-input-border-radius; - background-color: $form-input-bg; - } - - &:focus::-ms-check, - &:checked::-ms-check { - color: $form-input-border-focus-color; - border-color: $form-input-border-focus-color; - background-color: $form-input-bg-focus; - } - - &:before, - &:after { - position: absolute; - display: block; - transition: all 0.3s ease; - } - - &:before { - // Checkbox - width: 100%; - height: 100%; - content: ''; - border: 1px solid $form-input-border-color; - border-radius: $form-input-border-radius; - background-color: transparent; - } - - &:after { - // Checkmark - width: 8px; - height: 4px; - margin: 5px 4px; - transform: rotate(-45deg); - pointer-events: none; - border: 2px solid #FFFFFF; - border-top: 0; - border-right: 0; - } - - &:not(:disabled):not(:checked):hover:after { - content: ''; - border-color: $form-input-bg-hover; // color of checkmark on hover - } - - &:checked:before { - border-color: $form-input-border-focus-color; - background-color: $form-input-border-focus-color; - } - - &:checked:after { - content: ''; - } - - &:disabled:before { - background-color: $form-input-bg-disabled; - } - - &:checked:disabled:before { - border-color: transparent; - background-color: rgba($form-input-border-focus-color, 0.4); - } - - &:disabled:after, - &:checked:disabled:after { - border-color: $form-input-bg-disabled; - } - - & + .control-label { - margin-left: $form-label-gutter; - } -} diff --git a/theme/styles/web/sass/core/widgets/_datagrids.scss b/theme/styles/web/sass/core/widgets/_datagrids.scss deleted file mode 100644 index f0c1bdf..0000000 --- a/theme/styles/web/sass/core/widgets/_datagrids.scss +++ /dev/null @@ -1,76 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Datagrid Default - - Default Mendix Datagrid Widget. The datagrid shows a list of objects in a grid -========================================================================== */ - -.mx-datagrid { - table { - border-width: 0; - background-color: transparent; - /* Table header */ - th { - border-style: solid; - border-color: $grid-border-color; - border-top-width: 0; - border-right: 0; - border-bottom-width: 1px; - border-left: 0; - background-color: $grid-bg-header; - padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left; - vertical-align: middle; - .mx-datagrid-head-caption { - white-space: normal; - } - } - /* Table Body */ - tbody tr { - td { - @include transition(); - padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left; - vertical-align: middle; - border-width: 0; - border-color: $grid-border-color; - border-bottom-width: 1px; - border-bottom-style: solid; - background-color: $grid-bg; - &:focus { - outline: none; - } - /* Text without spaces */ - .mx-datagrid-data-wrapper { - text-overflow: ellipsis; - } - } - &.selected td, - &.selected:hover td { - color: $grid-selected-color; - background-color: $grid-bg-selected !important; - } - } - /* Table Footer */ - tfoot { - > tr > th { - padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left; - border-width: 0; - background-color: $grid-footer-bg; - } - > tr > td { - padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left; - border-width: 0; - background-color: $grid-bg; - font-weight: $font-weight-bold; - } - } - & *:focus { - outline: 0; - } - } -} \ No newline at end of file diff --git a/theme/styles/web/sass/core/widgets/_dataview.scss b/theme/styles/web/sass/core/widgets/_dataview.scss deleted file mode 100644 index bd4199d..0000000 --- a/theme/styles/web/sass/core/widgets/_dataview.scss +++ /dev/null @@ -1,45 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Dataview - - Default Mendix Dataview Widget. The data view is used for showing the contents of exactly one object -========================================================================== */ - -.mx-dataview { - /* Control bar */ - .mx-dataview-controls { - // Needed to clear the bootstrap columns (get float: left) - clear: both; - margin-top: 10px; - padding: 8px 0; - border-top: 1px solid $dataview-controls-border-color; - border-radius: 0; - background-color: $dataview-controls-bg; - /* Buttons */ - .mx-button { - margin-right: 0.3em; - margin-bottom: 0; - &:last-child { - margin-right: 0; - } - } - } - /* Dataview-content gives problems for nexted layout grid containers */ - > .mx-dataview-content > .mx-container-nested { - > .row { - margin-right: 0; - margin-left: 0; - } - } - /* Dataview empty message */ - .mx-dataview-message { - color: $dataview-emptymessage-color; - background: $dataview-emptymessage-bg; - } -} diff --git a/theme/styles/web/sass/core/widgets/_datepicker.scss b/theme/styles/web/sass/core/widgets/_datepicker.scss deleted file mode 100644 index 6f30417..0000000 --- a/theme/styles/web/sass/core/widgets/_datepicker.scss +++ /dev/null @@ -1,117 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Date Picker - - Default Mendix Date Picker Widget. -========================================================================== */ - -.mx-calendar { - /* (must be higher than popup z-index) */ - z-index: 10010 !important; - padding: 10px; - font-size: 12px; - background: $bg-color; - border-radius: $border-radius-default; - border: 1px solid $border-color-default; - box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.06); - .mx-calendar-month-header { - display: flex; - flex-direction: row; - justify-content: space-between; - margin: 0 3px 10px 3px; - } - .mx-calendar-month-next, - .mx-calendar-month-previous, - .mx-calendar-month-dropdown { - border: 0; - cursor: pointer; - background: transparent; - } - .mx-calendar-month-next, - .mx-calendar-month-previous { - &:hover { - color: $brand-primary; - } - } - .mx-calendar-month-dropdown { - display: flex; - align-items: center; - justify-content: center; - position: relative; - .mx-calendar-month-current:first-child { - margin-right: 10px; - } - } - th { - color: $brand-primary; - } - th, - td { - width: 35px; - height: 35px; - text-align: center; - } - td { - color: $font-color-default; - - &:hover { - cursor: pointer; - border-radius: 50%; - color: $brand-primary; - background-color: $brand-default; - } - } - .mx-calendar-day-month-next, - .mx-calendar-day-month-previous { - color: lighten($font-color-default, 45%); - } - .mx-calendar-day-selected, - .mx-calendar-day-selected:hover { - color: #fff; - border-radius: 50%; - background: $brand-primary; - } - - // - - .mx-calendar-year-switcher { - text-align: center; - margin-top: 10px; - color: lighten($brand-primary, 30%); - span.mx-calendar-year-selected { - color: $brand-primary; - margin-left: 10px; - margin-right: 10px; - } - span:hover { - cursor: pointer; - text-decoration: underline; - background-color: transparent; - } - } -} - -.mx-calendar-month-dropdown-options { - /* (must be higher than popup z-index) */ - z-index: 10020 !important; - position: absolute; - top: 25px; - padding: 2px 10px; - border-radius: $border-radius-default; - background-color: $bg-color; - div { - cursor: pointer; - font-size: 12px; - padding: 2px 0; - &:hover, - &:focus { - color: $brand-primary; - } - } -} diff --git a/theme/styles/web/sass/core/widgets/_glyphicons.scss b/theme/styles/web/sass/core/widgets/_glyphicons.scss deleted file mode 100644 index dccd16f..0000000 --- a/theme/styles/web/sass/core/widgets/_glyphicons.scss +++ /dev/null @@ -1,27 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Glyphicons - - Default Mendix Glyphicons -========================================================================== */ - -.mx-glyphicon { - &:before { - display: inline-block; - margin-top: -0.2em; - margin-right: 0.4555555em; - vertical-align: middle; - font-family: "Glyphicons Halflings"; - font-weight: $font-weight-normal; - font-style: normal; - line-height: inherit; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - } -} diff --git a/theme/styles/web/sass/core/widgets/_grid.scss b/theme/styles/web/sass/core/widgets/_grid.scss deleted file mode 100644 index 8bbf4ac..0000000 --- a/theme/styles/web/sass/core/widgets/_grid.scss +++ /dev/null @@ -1,72 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Grid - - Default Mendix Grid (used for Mendix Datagrid) -========================================================================== */ - -.mx-grid { - padding: 0px; - border: 0; - border-radius: 0; - .mx-grid-controlbar { - margin: 10px 0; - /* Paging */ - .mx-grid-pagingbar { - /* Buttons */ - .mx-button { - padding: 6px; - color: $grid-paging-color; - border-color: $grid-paging-border-color; - background-color: $grid-paging-bg; - &:hover { - color: $grid-paging-color-hover; - border-color: $grid-paging-border-color-hover; - background-color: $grid-paging-bg-hover; - } - } - /* Text Paging .. to .. to .. */ - .mx-grid-paging-status { - padding: 0 8px 8px; - } - } - } - .mx-grid-searchbar { - margin: 10px 0; - .mx-grid-search-item { - .mx-grid-search-label { - vertical-align: middle; - label { - padding-top: 5px; - } - } - .mx-grid-search-input { - display: inline-flex; - .form-control { - height: 28px; - font-size: 11px; - } - select.form-control { - padding: 3px; - vertical-align: middle; - } - .mx-button { - height: 28px; - padding-top: 2px; - padding-bottom: 2px; - } - } - } - } -} - -// Remove default border from grid inside a Mendix Dataview -.mx-dataview .mx-grid { - border: 0; -} diff --git a/theme/styles/web/sass/core/widgets/_groupbox.scss b/theme/styles/web/sass/core/widgets/_groupbox.scss deleted file mode 100644 index ab304dc..0000000 --- a/theme/styles/web/sass/core/widgets/_groupbox.scss +++ /dev/null @@ -1,40 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Groupbox - - Default Mendix Groupboxes -========================================================================== */ - -.mx-groupbox { - margin: 0; - > .mx-groupbox-header { - margin: 0; - color: $groupbox-default-color; - border-width: 1px 1px 0 1px; - border-style: solid; - border-color: $groupbox-default-bg; - background: $groupbox-default-bg; - font-size: $font-size-h5; - .mx-groupbox-collapse-icon { - margin-top: 0.1em; - } - } - > .mx-groupbox-body { - padding: 10px 15px; - border-width: 1px; - border-style: solid; - border-color: $groupbox-default-bg; - background-color: #FFFFFF; - } - .mx-groupbox-header + .mx-groupbox-body { - border-top: none; - } - &.collapsed > .mx-groupbox-header { - } -} \ No newline at end of file diff --git a/theme/styles/web/sass/core/widgets/_header.scss b/theme/styles/web/sass/core/widgets/_header.scss deleted file mode 100644 index b85e1ae..0000000 --- a/theme/styles/web/sass/core/widgets/_header.scss +++ /dev/null @@ -1,116 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Header - - Default Mendix Mobile Header -========================================================================== */ - -.mx-header { - z-index: 100; - display: flex; - width: 100%; - height: $m-header-height; - padding: 0; - text-align: initial; - color: $m-header-color; - border-bottom: 1px solid $border-color-default; - background-color: $m-header-bg; - box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.14); - - // Reset mxui - div.mx-header-left, - div.mx-header-right { - position: relative; - top: initial; - right: initial; - left: initial; - display: flex; - align-items: center; - width: 25%; - height: 100%; - .mx-placeholder { - display: flex; - align-items: center; - height: 100%; - } - } - - div.mx-header-left .mx-placeholder { - order: 1; - .mx-placeholder { - justify-content: flex-start; - } - } - div.mx-header-center { - overflow: hidden; - flex: 1; - order: 2; - text-align: center; - - .mx-title { - overflow: hidden; - width: 100%; - margin: 0; - text-overflow: ellipsis; - color: $m-header-color; - font-size: $m-header-title-size; - line-height: $m-header-height; - } - } - div.mx-header-right { - order: 3; - .mx-placeholder { - justify-content: flex-end; - } - } - - // Content magic - .mx-link { - display: flex; - align-items: center; - height: 100%; - -webkit-transition: all 0.2s; - -moz-transition: all 0.2s; - transition: all 0.2s; - text-decoration: none; - .glyphicon { - top: 0; - font-size: 23px; - } - &:active { - -webkit-transform: translateY(1px); - transform: translateY(1px); - color: $link-hover-color; - } - } - - .mx-link, - .btn, - img { - padding: 0 8px; - } - - .mx-sidebartoggle { - font-size: 24px; - line-height: $m-header-height; - img { - height: 20px; - } - } -} - -// RTL support -body[dir='rtl'] { - .mx-header-left { - order: 3; - } - .mx-header-right { - order: 1; - } -} diff --git a/theme/styles/web/sass/core/widgets/_inputs.scss b/theme/styles/web/sass/core/widgets/_inputs.scss deleted file mode 100644 index 7c76e32..0000000 --- a/theme/styles/web/sass/core/widgets/_inputs.scss +++ /dev/null @@ -1,240 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// -/* ========================================================================== - Inputs - - The form-control class style all inputs -========================================================================== */ -.form-control { - display: flex; - flex: 1; - min-width: 50px; - height: $form-input-height; - padding: $form-input-padding-y $form-input-padding-x; - transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; - color: $form-input-color; - border: 1px solid $form-input-border-color; - border-radius: $form-input-border-radius; - background-color: $form-input-bg; - background-image: none; - box-shadow: none; - font-size: $form-input-font-size; - line-height: $form-input-line-height; - appearance: none; - -moz-appearance: none; - -webkit-appearance: none; - @if $form-input-style==lined { - @extend .form-control-lined; - } -} - -.form-control:not([readonly]):focus { - border-color: $form-input-border-focus-color; - outline: 0; - background-color: $form-input-bg-focus; - box-shadow: none; -} - -.form-control[disabled], -.form-control[readonly], -fieldset[disabled] .form-control { - opacity: 1; - background-color: #EEEEEE; -} - -.form-control[disabled], -fieldset[disabled] .form-control { - cursor: not-allowed; -} - -// Lined -.form-control-lined { - border: 0; - border-bottom: 1px solid $form-input-border-color; - border-radius: 0; - background-color: transparent; - - &:focus { - background-color: transparent; - } -} - -// Read only form control class -.form-control-static { - overflow: hidden; - flex: 1; - min-height: auto; - padding: $form-input-padding-y $form-input-padding-x; - border-bottom: 1px solid $form-input-static-border-color; - font-size: $form-input-font-size; - line-height: $form-input-line-height; - - & + .control-label { - margin-left: $form-label-gutter; - } -} - -// Dropdown input widget -select.form-control { - $arrow: "data:image/svg+xml;utf8,"; - padding-right: 30px; - background-image: url($arrow); - background-repeat: no-repeat; - background-position: calc(100% - #{$form-input-padding-x}) center; - appearance: none; - -moz-appearance: none; - -webkit-appearance: none; -} - -.form-control.mx-selectbox { - align-items: center; - flex-direction: row-reverse; - justify-content: space-between; -} - -// Not editable textarea, textarea will be rendered as a label -.mx-textarea .control-label { - height: auto; -} - -textarea.form-control { - flex-basis: auto; -} - -.mx-compound-control { - display: flex; - flex: 1; - flex-wrap: wrap; - max-width: 100%; - - .mx-validation-message { - flex-basis: 100%; - margin-top: 5px; - } -} - -// Form Group -.form-group { - display: flex; - flex-direction: row; - margin-bottom: $form-group-margin-bottom; - - & > div[class*='col-'] { - display: flex; - align-items: center; - flex-wrap: wrap; - } - - & > [class*='col-'] { - padding-right: $form-group-gutter; - padding-left: $form-group-gutter; - } - - // Alignment content - div[class*='textBox'] > .control-label, - div[class*='textArea'] > .control-label, - div[class*='datePicker'] > .control-label { - @extend .form-control-static; - } - - // Label - .control-label { - overflow: hidden; - margin-bottom: 5px; - text-overflow: ellipsis; - color: $form-label-color; - font-size: $form-label-size; - font-weight: $form-label-weight; - } - - .mx-validation-message { - flex-basis: 100%; - } - - &.no-columns:not(.label-after) { - flex-direction: column; - } -} - -.form-group.label-after { - .form-control-static { - flex: unset; - } - - .control-label { - margin-bottom: 0; - } -} - -.mx-dateinput, -.mx-referenceselector, -.mx-referencesetselector { - flex: 1; -} - -// Targets only webkit iOS devices -.dj_webkit.dj_ios .form-control { - transform: translateZ(0); -} - -@media only screen and (min-width: $screen-md) { - .form-horizontal { - .control-label { - margin-bottom: 0; - padding-top: $form-input-padding-y; - padding-bottom: $form-input-padding-y; - line-height: $form-input-line-height; - } - } -} - -@media only screen and (max-width: $screen-sm-max) { - .form-group { - flex-direction: column; - } -} - -@media only screen and (max-device-width: 1024px) and (-webkit-min-device-pixel-ratio: 0) { - // Fixes alignment bug on iPads / iPhones where datefield is not aligned vertically - input[type='date'], - input[type='time'], - input[type='datetime-local'], - input[type='month'] { - line-height: 1; - } - // Fix shrinking of date inputs because inability of setting a placeholder - input[type='time']:not(.has-value):before, - input[type='date']:not(.has-value):before, - input[type='month']:not(.has-value):before, - input[type='datetime-local']:not(.has-value):before { - margin-right: 0.5em; - content: attr(placeholder) !important; - color: #AAAAAA; - } - input[type='time'].has-value:before, - input[type='date'].has-value:before, - input[type='month'].has-value:before, - input[type='datetime-local'].has-value:before { - content: '' !important; - } -} - -@media (-ms-high-contrast: none), (-ms-high-contrast: active) { - // Target IE10+ - .form-group { - display: block; - } -} - -[dir='rtl'] { - // Dropdown input widget - select.form-control { - padding-right: 30px; - padding-left: 0; - background-position: #{$form-input-padding-x} center; - } -} diff --git a/theme/styles/web/sass/core/widgets/_labels.scss b/theme/styles/web/sass/core/widgets/_labels.scss deleted file mode 100644 index 344ba06..0000000 --- a/theme/styles/web/sass/core/widgets/_labels.scss +++ /dev/null @@ -1,30 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Labels - - Default labels combined with Bootstrap labels -========================================================================== */ - -.label { - display: inline-block; - padding: 0.2em 0.6em 0.3em; - text-align: center; - vertical-align: baseline; - white-space: nowrap; - color: #ffffff; - border-radius: 0.25em; - font-size: 100%; - line-height: 1; - margin: 0; - - .form-control-static { - all: unset; - font-weight: $font-weight-normal; - } -} diff --git a/theme/styles/web/sass/core/widgets/_layoutgrid.scss b/theme/styles/web/sass/core/widgets/_layoutgrid.scss deleted file mode 100644 index 9dbb564..0000000 --- a/theme/styles/web/sass/core/widgets/_layoutgrid.scss +++ /dev/null @@ -1,948 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Layout Grid - - Default Bootstrap containers -========================================================================== */ -.mx-layoutgrid { - width: 100%; - margin-right: auto; - margin-left: auto; - padding-right: $gutter-size; - padding-left: $gutter-size; -} - -// Row -.row { - display: flex; - flex-wrap: wrap; - margin-right: -$gutter-size; - margin-left: -$gutter-size; - - &::before, - &::after { - content: normal; - } -} - -.no-gutters { - margin-right: 0; - margin-left: 0; -} - -.no-gutters > .col, -.no-gutters > [class*="col-"] { - padding-right: 0; - padding-left: 0; -} - -// Columns -.col-1, -.col-2, -.col-3, -.col-4, -.col-5, -.col-6, -.col-7, -.col-8, -.col-9, -.col-10, -.col-11, -.col-12, -.col, -.col-auto, -.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, -.col-sm, -.col-sm-auto, -.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, -.col-md, -.col-md-auto, -.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, -.col-lg, -.col-lg-auto, -.col-xl-1, -.col-xl-2, -.col-xl-3, -.col-xl-4, -.col-xl-5, -.col-xl-6, -.col-xl-7, -.col-xl-8, -.col-xl-9, -.col-xl-10, -.col-xl-11, -.col-xl-12, -.col-xl, -.col-xl-auto { - position: relative; - width: 100%; - padding-right: $gutter-size; - padding-left: $gutter-size; -} - -.col { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; -} - -.col-auto { - flex: 0 0 auto; - width: auto; - max-width: 100%; -} - -.col-1 { - flex: 0 0 8.333333%; - max-width: 8.333333%; -} - -.col-2 { - flex: 0 0 16.666667%; - max-width: 16.666667%; -} - -.col-3 { - flex: 0 0 25%; - max-width: 25%; -} - -.col-4 { - flex: 0 0 33.333333%; - max-width: 33.333333%; -} - -.col-5 { - flex: 0 0 41.666667%; - max-width: 41.666667%; -} - -.col-6 { - flex: 0 0 50%; - max-width: 50%; -} - -.col-7 { - flex: 0 0 58.333333%; - max-width: 58.333333%; -} - -.col-8 { - flex: 0 0 66.666667%; - max-width: 66.666667%; -} - -.col-9 { - flex: 0 0 75%; - max-width: 75%; -} - -.col-10 { - flex: 0 0 83.333333%; - max-width: 83.333333%; -} - -.col-11 { - flex: 0 0 91.666667%; - max-width: 91.666667%; -} - -.col-12 { - flex: 0 0 100%; - max-width: 100%; -} - -.order-first { - order: -1; -} - -.order-last { - order: 13; -} - -.order-0 { - order: 0; -} - -.order-1 { - order: 1; -} - -.order-2 { - order: 2; -} - -.order-3 { - order: 3; -} - -.order-4 { - order: 4; -} - -.order-5 { - order: 5; -} - -.order-6 { - order: 6; -} - -.order-7 { - order: 7; -} - -.order-8 { - order: 8; -} - -.order-9 { - order: 9; -} - -.order-10 { - order: 10; -} - -.order-11 { - order: 11; -} - -.order-12 { - order: 12; -} - -.offset-1, -.col-offset-1 { - margin-left: 8.333333%; -} - -.offset-2, -.col-offset-2 { - margin-left: 16.666667%; -} - -.offset-3, -.col-offset-3 { - margin-left: 25%; -} - -.offset-4, -.col-offset-4 { - margin-left: 33.333333%; -} - -.offset-5, -.col-offset-5 { - margin-left: 41.666667%; -} - -.offset-6, -.col-offset-6 { - margin-left: 50%; -} - -.offset-7, -.col-offset-7 { - margin-left: 58.333333%; -} - -.offset-8, -.col-offset-8 { - margin-left: 66.666667%; -} - -.offset-9, -.col-offset-9 { - margin-left: 75%; -} - -.offset-10, -.col-offset-10 { - margin-left: 83.333333%; -} - -.offset-11, -.col-offset-11 { - margin-left: 91.666667%; -} - -// Responsiveness -@media (min-width: $screen-sm) { - .mx-layoutgrid-fixed { - max-width: 540px; - } -} - -@media (min-width: $screen-md) { - .mx-layoutgrid-fixed { - max-width: 720px; - } -} - -@media (min-width: $screen-lg) { - .mx-layoutgrid-fixed { - max-width: 960px; - } -} - -@media (min-width: $screen-xl) { - .mx-layoutgrid-fixed { - max-width: 1140px; - } -} - -@media (min-width: $screen-sm) { - .col-sm { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; - } - .col-sm-auto { - flex: 0 0 auto; - width: auto; - max-width: 100%; - } - .col-sm-1 { - flex: 0 0 8.333333%; - max-width: 8.333333%; - } - .col-sm-2 { - flex: 0 0 16.666667%; - max-width: 16.666667%; - } - .col-sm-3 { - flex: 0 0 25%; - max-width: 25%; - } - .col-sm-4 { - flex: 0 0 33.333333%; - max-width: 33.333333%; - } - .col-sm-5 { - flex: 0 0 41.666667%; - max-width: 41.666667%; - } - .col-sm-6 { - flex: 0 0 50%; - max-width: 50%; - } - .col-sm-7 { - flex: 0 0 58.333333%; - max-width: 58.333333%; - } - .col-sm-8 { - flex: 0 0 66.666667%; - max-width: 66.666667%; - } - .col-sm-9 { - flex: 0 0 75%; - max-width: 75%; - } - .col-sm-10 { - flex: 0 0 83.333333%; - max-width: 83.333333%; - } - .col-sm-11 { - flex: 0 0 91.666667%; - max-width: 91.666667%; - } - .col-sm-12 { - flex: 0 0 100%; - max-width: 100%; - } - .order-sm-first { - order: -1; - } - .order-sm-last { - order: 13; - } - .order-sm-0 { - order: 0; - } - .order-sm-1 { - order: 1; - } - .order-sm-2 { - order: 2; - } - .order-sm-3 { - order: 3; - } - .order-sm-4 { - order: 4; - } - .order-sm-5 { - order: 5; - } - .order-sm-6 { - order: 6; - } - .order-sm-7 { - order: 7; - } - .order-sm-8 { - order: 8; - } - .order-sm-9 { - order: 9; - } - .order-sm-10 { - order: 10; - } - .order-sm-11 { - order: 11; - } - .order-sm-12 { - order: 12; - } - .offset-sm-0, - .col-sm-offset-0 { - margin-left: 0; - } - .offset-sm-1, - .col-sm-offset-1 { - margin-left: 8.333333%; - } - .offset-sm-2, - .col-sm-offset-2 { - margin-left: 16.666667%; - } - .offset-sm-3, - .col-sm-offset-3 { - margin-left: 25%; - } - .offset-sm-4, - .col-sm-offset-4 { - margin-left: 33.333333%; - } - .offset-sm-5, - .col-sm-offset-5 { - margin-left: 41.666667%; - } - .offset-sm-6, - .col-sm-offset-6 { - margin-left: 50%; - } - .offset-sm-7, - .col-sm-offset-7 { - margin-left: 58.333333%; - } - .offset-sm-8, - .col-sm-offset-8 { - margin-left: 66.666667%; - } - .offset-sm-9, - .col-sm-offset-9 { - margin-left: 75%; - } - .offset-sm-10, - .col-sm-offset-10 { - margin-left: 83.333333%; - } - .offset-sm-11, - .col-sm-offset-11 { - margin-left: 91.666667%; - } -} - -@media (min-width: $screen-md) { - .col-md { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; - } - .col-md-auto { - flex: 0 0 auto; - width: auto; - max-width: 100%; - } - .col-md-1 { - flex: 0 0 8.333333%; - max-width: 8.333333%; - } - .col-md-2 { - flex: 0 0 16.666667%; - max-width: 16.666667%; - } - .col-md-3 { - flex: 0 0 25%; - max-width: 25%; - } - .col-md-4 { - flex: 0 0 33.333333%; - max-width: 33.333333%; - } - .col-md-5 { - flex: 0 0 41.666667%; - max-width: 41.666667%; - } - .col-md-6 { - flex: 0 0 50%; - max-width: 50%; - } - .col-md-7 { - flex: 0 0 58.333333%; - max-width: 58.333333%; - } - .col-md-8 { - flex: 0 0 66.666667%; - max-width: 66.666667%; - } - .col-md-9 { - flex: 0 0 75%; - max-width: 75%; - } - .col-md-10 { - flex: 0 0 83.333333%; - max-width: 83.333333%; - } - .col-md-11 { - flex: 0 0 91.666667%; - max-width: 91.666667%; - } - .col-md-12 { - flex: 0 0 100%; - max-width: 100%; - } - .order-md-first { - order: -1; - } - .order-md-last { - order: 13; - } - .order-md-0 { - order: 0; - } - .order-md-1 { - order: 1; - } - .order-md-2 { - order: 2; - } - .order-md-3 { - order: 3; - } - .order-md-4 { - order: 4; - } - .order-md-5 { - order: 5; - } - .order-md-6 { - order: 6; - } - .order-md-7 { - order: 7; - } - .order-md-8 { - order: 8; - } - .order-md-9 { - order: 9; - } - .order-md-10 { - order: 10; - } - .order-md-11 { - order: 11; - } - .order-md-12 { - order: 12; - } - .offset-md-0, - .col-md-offset-0 { - margin-left: 0; - } - .offset-md-1, - .col-md-offset-1 { - margin-left: 8.333333%; - } - .offset-md-2, - .col-md-offset-2 { - margin-left: 16.666667%; - } - .offset-md-3, - .col-md-offset-3 { - margin-left: 25%; - } - .offset-md-4, - .col-md-offset-4 { - margin-left: 33.333333%; - } - .offset-md-5, - .col-md-offset-5 { - margin-left: 41.666667%; - } - .offset-md-6, - .col-md-offset-6 { - margin-left: 50%; - } - .offset-md-7, - .col-md-offset-7 { - margin-left: 58.333333%; - } - .offset-md-8, - .col-md-offset-8 { - margin-left: 66.666667%; - } - .offset-md-9, - .col-md-offset-9 { - margin-left: 75%; - } - .offset-md-10, - .col-md-offset-10 { - margin-left: 83.333333%; - } - .offset-md-11, - .col-md-offset-11 { - margin-left: 91.666667%; - } -} - -@media (min-width: $screen-lg) { - .col-lg { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; - } - .col-lg-auto { - flex: 0 0 auto; - width: auto; - max-width: 100%; - } - .col-lg-1 { - flex: 0 0 8.333333%; - max-width: 8.333333%; - } - .col-lg-2 { - flex: 0 0 16.666667%; - max-width: 16.666667%; - } - .col-lg-3 { - flex: 0 0 25%; - max-width: 25%; - } - .col-lg-4 { - flex: 0 0 33.333333%; - max-width: 33.333333%; - } - .col-lg-5 { - flex: 0 0 41.666667%; - max-width: 41.666667%; - } - .col-lg-6 { - flex: 0 0 50%; - max-width: 50%; - } - .col-lg-7 { - flex: 0 0 58.333333%; - max-width: 58.333333%; - } - .col-lg-8 { - flex: 0 0 66.666667%; - max-width: 66.666667%; - } - .col-lg-9 { - flex: 0 0 75%; - max-width: 75%; - } - .col-lg-10 { - flex: 0 0 83.333333%; - max-width: 83.333333%; - } - .col-lg-11 { - flex: 0 0 91.666667%; - max-width: 91.666667%; - } - .col-lg-12 { - flex: 0 0 100%; - max-width: 100%; - } - .order-lg-first { - order: -1; - } - .order-lg-last { - order: 13; - } - .order-lg-0 { - order: 0; - } - .order-lg-1 { - order: 1; - } - .order-lg-2 { - order: 2; - } - .order-lg-3 { - order: 3; - } - .order-lg-4 { - order: 4; - } - .order-lg-5 { - order: 5; - } - .order-lg-6 { - order: 6; - } - .order-lg-7 { - order: 7; - } - .order-lg-8 { - order: 8; - } - .order-lg-9 { - order: 9; - } - .order-lg-10 { - order: 10; - } - .order-lg-11 { - order: 11; - } - .order-lg-12 { - order: 12; - } - .offset-lg-0, - .col-lg-offset-0 { - margin-left: 0; - } - .offset-lg-1, - .col-lg-offset-1 { - margin-left: 8.333333%; - } - .offset-lg-2, - .col-lg-offset-2 { - margin-left: 16.666667%; - } - .offset-lg-3, - .col-lg-offset-3 { - margin-left: 25%; - } - .offset-lg-4, - .col-lg-offset-4 { - margin-left: 33.333333%; - } - .offset-lg-5, - .col-lg-offset-5 { - margin-left: 41.666667%; - } - .offset-lg-6, - .col-lg-offset-6 { - margin-left: 50%; - } - .offset-lg-7, - .col-lg-offset-7 { - margin-left: 58.333333%; - } - .offset-lg-8, - .col-lg-offset-8 { - margin-left: 66.666667%; - } - .offset-lg-9, - .col-lg-offset-9 { - margin-left: 75%; - } - .offset-lg-10, - .col-lg-offset-10 { - margin-left: 83.333333%; - } - .offset-lg-11, - .col-lg-offset-11 { - margin-left: 91.666667%; - } -} - -@media (min-width: $screen-xl) { - .col-xl { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; - } - .col-xl-auto { - flex: 0 0 auto; - width: auto; - max-width: 100%; - } - .col-xl-1 { - flex: 0 0 8.333333%; - max-width: 8.333333%; - } - .col-xl-2 { - flex: 0 0 16.666667%; - max-width: 16.666667%; - } - .col-xl-3 { - flex: 0 0 25%; - max-width: 25%; - } - .col-xl-4 { - flex: 0 0 33.333333%; - max-width: 33.333333%; - } - .col-xl-5 { - flex: 0 0 41.666667%; - max-width: 41.666667%; - } - .col-xl-6 { - flex: 0 0 50%; - max-width: 50%; - } - .col-xl-7 { - flex: 0 0 58.333333%; - max-width: 58.333333%; - } - .col-xl-8 { - flex: 0 0 66.666667%; - max-width: 66.666667%; - } - .col-xl-9 { - flex: 0 0 75%; - max-width: 75%; - } - .col-xl-10 { - flex: 0 0 83.333333%; - max-width: 83.333333%; - } - .col-xl-11 { - flex: 0 0 91.666667%; - max-width: 91.666667%; - } - .col-xl-12 { - flex: 0 0 100%; - max-width: 100%; - } - .order-xl-first { - order: -1; - } - .order-xl-last { - order: 13; - } - .order-xl-0 { - order: 0; - } - .order-xl-1 { - order: 1; - } - .order-xl-2 { - order: 2; - } - .order-xl-3 { - order: 3; - } - .order-xl-4 { - order: 4; - } - .order-xl-5 { - order: 5; - } - .order-xl-6 { - order: 6; - } - .order-xl-7 { - order: 7; - } - .order-xl-8 { - order: 8; - } - .order-xl-9 { - order: 9; - } - .order-xl-10 { - order: 10; - } - .order-xl-11 { - order: 11; - } - .order-xl-12 { - order: 12; - } - .offset-xl-0, - .col-xl-offset-0 { - margin-left: 0; - } - .offset-xl-1, - .col-xl-offset-1 { - margin-left: 8.333333%; - } - .offset-xl-2, - .col-xl-offset-2 { - margin-left: 16.666667%; - } - .offset-xl-3, - .col-xl-offset-3 { - margin-left: 25%; - } - .offset-xl-4, - .col-xl-offset-4 { - margin-left: 33.333333%; - } - .offset-xl-5, - .col-xl-offset-5 { - margin-left: 41.666667%; - } - .offset-xl-6, - .col-xl-offset-6 { - margin-left: 50%; - } - .offset-xl-7, - .col-xl-offset-7 { - margin-left: 58.333333%; - } - .offset-xl-8, - .col-xl-offset-8 { - margin-left: 66.666667%; - } - .offset-xl-9, - .col-xl-offset-9 { - margin-left: 75%; - } - .offset-xl-10, - .col-xl-offset-10 { - margin-left: 83.333333%; - } - .offset-xl-11, - .col-xl-offset-11 { - margin-left: 91.666667%; - } -} diff --git a/theme/styles/web/sass/core/widgets/_listview.scss b/theme/styles/web/sass/core/widgets/_listview.scss deleted file mode 100644 index 0a0d367..0000000 --- a/theme/styles/web/sass/core/widgets/_listview.scss +++ /dev/null @@ -1,102 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// -/* ========================================================================== - Listview - - Default Mendix Listview Widget. The list view shows a list of objects arranged vertically. Each object is shown using a template -========================================================================== */ -.mx-listview { - // Remove widget padding - padding: 0; - /* Clear search button (overrides load more button stying) */ - // Search bar - .mx-listview-searchbar { - margin-bottom: $gutter-size; - - .btn { - width: auto; - } - } - - /* Load more button */ - & > .btn { - width: 100%; - margin: 10px auto; - } - - & > ul { - margin: 0; - - .mx-listview-empty { - border-style: none; - background-color: transparent; - } - - & > li { - @include transition(); - padding: $listview-padding-top $listview-padding-right $listview-padding-bottom $listview-padding-left; - border-width: 1px 0 0 0; - border-style: solid; - border-color: $grid-border-color; - background-color: $grid-bg; - - &:first-child { - border-radius: 0; // Reset mxui listview style - } - - &:last-child { - border-bottom: 1px solid $grid-border-color; - border-radius: 0; // Reset mxui listview style - } - - &:focus, - &:active { - outline: 0; - background-color: $grid-bg-hover; - } - - &.selected { - background-color: $grid-bg-selected; - } - } - } - - .mx-layoutgrid { - padding-top: 0 !important; - padding-bottom: 0 !important; - } -} - -//== Phone specific -//-------------------------------------------------------------------------------------------------------------------// -.profile-phone .mx-listview { - .mx-listview-searchbar { - margin-bottom: 3px; - background: #FFFFFF; - box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.14); - - input { - padding: 14px 15px; - color: #555555; - border-style: none; - border-radius: 0; - box-shadow: none; - } - - .btn { - padding: 14px 15px; - color: inherit; - border-style: none; - } - } - - & > ul > li { - &:first-child { - border-top: none; - } - } -} diff --git a/theme/styles/web/sass/core/widgets/_modals.scss b/theme/styles/web/sass/core/widgets/_modals.scss deleted file mode 100644 index 4298f37..0000000 --- a/theme/styles/web/sass/core/widgets/_modals.scss +++ /dev/null @@ -1,123 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// -/* ========================================================================== - Modals - - Default Mendix Modals. Modals are streamlined, but flexible, dialog prompts with the minimum required functionality and smart defaults -========================================================================== */ -.modal-dialog { - .modal-content { - border: 1px solid $modal-header-border-color; - border-radius: 4px; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); - - .modal-header { - padding: 15px 20px; - border-bottom-color: $modal-header-border-color; - border-radius: 0; // Because of the class .mx-window-active in mxui.css - background-color: $modal-header-bg; - - h4 { - margin: 0; - color: $modal-header-color; - font-size: 16px; - font-weight: $font-weight-bold; - } - - .close { - margin-top: -3px; - opacity: 1; - /* For IE8 and earlier */ - color: $modal-header-color; - text-shadow: none; - filter: alpha(opacity=100); - } - } - - .modal-body { - padding: 20px; - } - - .modal-footer { - display: flex; - justify-content: flex-end; - margin-top: 0; - padding: 20px; - border-style: none; - } - } -} - -// Default Mendix Window Modal -.mx-window { - // If popup direct child is a dataview it gets the class mx-window-view - &.mx-window-view .mx-window-body { - overflow: hidden; // hide second scrollbar in edit page - padding: 0; - // Dataview in popup - > .mx-dataview > .mx-dataview-content, - > .mx-placeholder > .mx-dataview > .mx-dataview-content { - padding: 20px; - } - - > .mx-dataview > .mx-dataview-controls, - > .mx-placeholder > .mx-dataview > .mx-dataview-controls { - display: flex; - justify-content: flex-end; - margin: 0; - padding: 20px; - text-align: left; - border-top: 1px solid $modal-header-border-color; - } - } - - .mx-dataview-controls { - padding-bottom: 0; - } - - .mx-layoutgrid { - padding-right: 0; - padding-left: 0; - } -} - -// Login modal -.mx-login { - .modal-body { - padding: 0 15px; - } - - .modal-content { - input { - height: 56px; - padding: 12px 12px; - border: 1px solid #EEEEEE; - background: #EEEEEE; - box-shadow: none; - font-size: 16px; - - &:focus { - border-color: #66AFE9; - } - } - } - - .modal-header, - .modal-footer { - border: 0; - } - - button { - font-size: 16px; - } - - h4 { - color: #AAAAAA; - font-size: 20px; - font-weight: $font-weight-bold; - } -} diff --git a/theme/styles/web/sass/core/widgets/_navigationbar.scss b/theme/styles/web/sass/core/widgets/_navigationbar.scss deleted file mode 100644 index 7845cad..0000000 --- a/theme/styles/web/sass/core/widgets/_navigationbar.scss +++ /dev/null @@ -1,152 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Navigation - - Default Mendix Navigation Bar -========================================================================== */ -.mx-navbar { - margin: 0; - border-style: none; - border-radius: 0; - background-color: $navigation-bg; - - ul.nav { - margin: 0; // weird -margin if screen gets small (bootstrap) - - /* Navigation item */ - & > li.mx-navbar-item > a { - display: flex; - align-items: center; - min-height: $topbar-minimalheight; - padding: $navigation-item-padding; - vertical-align: middle; - color: $navigation-color; - border-radius: 0; - font-size: $navigation-font-size; - font-weight: $font-weight-normal; - - /* Dropdown arrow */ - .caret { - border-top-color: $navigation-color; - border-bottom-color: $navigation-color; - } - - &:hover, - &:focus, - &.active { - text-decoration: none; - color: $navigation-color-hover; - background-color: $navigation-bg-hover; - - .caret { - border-top-color: $navigation-color-active; - border-bottom-color: $navigation-color-active; - } - } - - &.active { - color: $navigation-color-active; - background-color: $navigation-bg-active; - } - - /* Dropdown */ - .mx-navbar-submenu::before { - position: absolute; - top: -9px; - left: 15px; - width: 0; - height: 0; - content: ''; - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - border-width: 0 9px 9px 9px; - border-style: solid; - border-color: transparent transparent $navigation-border-color transparent; - } - - // Image - img { - width: 20px; // Default size (so it looks good) - height: auto; - margin-right: 0.5em; - } - - .glyphicon { - top: 0; - margin-right: 0.5em; - vertical-align: middle; - font-size: $navigation-glyph-size; - } - } - - & > .mx-navbar-item.active a { - color: $navigation-color-active; - } - - /* When hovering or the dropdown is open */ - & > .mx-navbar-item > a:hover, - & > .mx-navbar-item > a:focus, - & > .mx-navbar-item.open > a, - & > .mx-navbar-item.open > a:hover, - & > .mx-navbar-item.open > a:focus { - text-decoration: none; - color: $navigation-color-hover; - background-color: $navigation-bg-hover; - - .caret { - border-top-color: $navigation-color-hover; - border-bottom-color: $navigation-color-hover; - } - } - - & > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem.active a { - color: $navigation-sub-color-active; - background-color: $navigation-sub-bg-active; - - .caret { - border-top-color: $navigation-sub-color-active; - border-bottom-color: $navigation-sub-color-active; - } - } - } - @media (max-width: $screen-md) { - ul.nav > li.mx-navbar-item > a { - padding: 10px 20px; - } - .mx-navbar-item.open .dropdown-menu { - padding: 0; - border-radius: 0; - background-color: $navigation-sub-bg; - - & > li.mx-navbar-subitem > a { - padding: 10px 20px; - color: $navigation-sub-color; - border-radius: 0; - font-size: $navigation-sub-font-size; - font-weight: $font-weight-normal; - - &:hover, - &:focus { - color: $navigation-sub-color-hover; - background-color: $navigation-sub-bg-hover; - } - - &.active { - color: $navigation-sub-color-active; - background-color: $navigation-sub-bg-active; - } - } - } - } - - /* remove focus */ - &:focus { - outline: 0; - } -} diff --git a/theme/styles/web/sass/core/widgets/_navigationlist.scss b/theme/styles/web/sass/core/widgets/_navigationlist.scss deleted file mode 100644 index 0b44c33..0000000 --- a/theme/styles/web/sass/core/widgets/_navigationlist.scss +++ /dev/null @@ -1,37 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// -/* ========================================================================== - Navigation List - - Default Mendix Navigation List Widget. A navigation list can be used to attach an action to an entire row. Such a row is called a navigation list item -========================================================================== */ -.mx-navigationlist { - margin: 0; - padding: 0; - list-style: none; - - li.mx-navigationlist-item { - @include transition(); - padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left; - border-width: 1px; - border-style: none none solid none; - border-color: $grid-border-color; - border-radius: 0; - background-color: $grid-bg; - - &:hover, - &:focus { - color: inherit; - background-color: $grid-bg-hover; - } - - &.active { - color: inherit; - background-color: $grid-bg-selected; - } - } -} diff --git a/theme/styles/web/sass/core/widgets/_navigationtree.scss b/theme/styles/web/sass/core/widgets/_navigationtree.scss deleted file mode 100644 index c5beb0e..0000000 --- a/theme/styles/web/sass/core/widgets/_navigationtree.scss +++ /dev/null @@ -1,111 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Navigation - - Default Mendix Navigation Tree -========================================================================== */ -.mx-navigationtree { - background-color: $navigation-bg; - - /* Every navigation item */ - .navbar-inner > ul { - margin: 0; - padding-left: 0; - & > li { - padding: 0; - border-style: none; - & > a { - display: flex; - align-items: center; - height: $navigation-item-height; - padding: $navigation-item-padding; - color: $navigation-color; - border-bottom: 1px solid $navigation-border-color; - border-radius: 0; - background-color: $navigation-bg; - text-shadow: none; - font-size: $navigation-font-size; - font-weight: $font-weight-normal; - .caret { - border-top-color: $navigation-color; - border-bottom-color: $navigation-color; - } - img { - width: 20px; // Default size - height: auto; - margin-right: 0.5em; - } - .glyphicon { - top: 0; - margin-right: 0.5em; - vertical-align: middle; - font-size: $navigation-glyph-size; - } - } - a:hover, - a:focus, - a.active { - text-decoration: none; - color: $navigation-color-hover; - background-color: $navigation-bg-hover; - .caret { - border-top-color: $navigation-color-active; - border-bottom-color: $navigation-color-active; - } - } - a.active { - color: $navigation-color-active; - border-left-color: $navigation-color-active; - background-color: $navigation-bg-active; - } - } - } - - /* Sub navigation item specific */ - li.mx-navigationtree-has-items { - & > ul { - margin: 0; - padding-left: 0; - background-color: $navigation-sub-bg; - li { - margin: 0; - padding: 0; - border: 0; - a { - padding: 12px 20px 12px 25px; - text-decoration: none; - color: $navigation-sub-color; - border: 0; - background-color: $navigation-sub-bg; - text-shadow: none; - font-size: $navigation-sub-font-size; - font-weight: $font-weight-normal; - - &:hover, - &:focus, - &.active { - color: $navigation-sub-color-hover; - outline: 0; - background-color: $navigation-sub-bg-hover; - } - &.active { - color: $navigation-sub-color-active; - border: 0; - background-color: $navigation-sub-bg-active; - } - } - } - } - } - - /* remove focus */ - &:focus { - outline: 0; - } -} diff --git a/theme/styles/web/sass/core/widgets/_popupmenu.scss b/theme/styles/web/sass/core/widgets/_popupmenu.scss deleted file mode 100644 index f286357..0000000 --- a/theme/styles/web/sass/core/widgets/_popupmenu.scss +++ /dev/null @@ -1,119 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Popup Menu - - Default Mendix Popup Menus -========================================================================== */ -.popupmenu { - position: relative; - display: inline-flex; -} - -.popupmenu-trigger { - cursor: pointer; -} - -.popupmenu-menu { - position: absolute; - z-index: 999; - display: none; - flex-direction: column; - width: max-content; - border-radius: 8px; - background-color: $bg-color; - box-shadow: 0 2px 20px 1px rgba(5, 15, 129, 0.05), 0 2px 16px 0 rgba(33, 43, 54, 0.08); - - &.popupmenu-position-left { - top: 0; - left: 0; - transform: translateX(-100%); - } - - &.popupmenu-position-right { - top: 0; - right: 0; - transform: translateX(100%); - } - - &.popupmenu-position-top { - top: 0; - transform: translateY(-100%); - } - - &.popupmenu-position-bottom { - bottom: 0; - transform: translateY(100%); - } - - .popupmenu-basic-item:first-child, - .popupmenu-custom-item:first-child { - border-top-left-radius: 8px; - border-top-right-radius: 8px; - } - - .popupmenu-basic-item:last-child, - .popupmenu-custom-item:last-child { - border-bottom-right-radius: 8px; - border-bottom-left-radius: 8px; - } -} - -.popupmenu-basic-divider { - width: 100%; - height: 1px; - background-color: $brand-default; -} - -.popupmenu-basic-item { - padding: 12px 16px; - color: $font-color-default; - font-size: 14px; - - &:hover, - &:focus, - &:active { - cursor: pointer; - border-color: $bg-color-secondary; - background-color: $bg-color-secondary; - } - - &-inverse { - color: $brand-inverse; - } - - &-primary { - color: $brand-primary; - } - - &-info { - color: $brand-info; - } - - &-success { - color: $brand-success; - } - - &-warning { - color: $brand-warning; - } - - &-danger { - color: $brand-danger; - } -} - -.popupmenu-custom-item { - &:hover, - &:focus, - &:active { - cursor: pointer; - border-color: $bg-color-secondary; - background-color: $bg-color-secondary; - } -} diff --git a/theme/styles/web/sass/core/widgets/_progress.scss b/theme/styles/web/sass/core/widgets/_progress.scss deleted file mode 100644 index bfdd31c..0000000 --- a/theme/styles/web/sass/core/widgets/_progress.scss +++ /dev/null @@ -1,64 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Progress - - Default Mendix Progress Widget. -========================================================================== */ - -.mx-progress { - color: $font-color-default; - background: $bg-color-secondary; - - .mx-progress-message { - color: $font-color-default; - } - - .mx-progress-indicator { - position: relative; - overflow: hidden; - width: 100%; - max-width: 100%; - height: 2px; - margin: auto; - padding: 0; - border-radius: 0; - background: $gray-lighter; - - &:before, - &:after { - position: absolute; - top: 0; - left: 0; - display: block; - width: 50%; - height: 2px; - content: ""; - transform: translate3d(-100%, 0, 0); - background: $brand-primary; - } - - &::before { - animation: loader 2s infinite; - } - - &::after { - animation: loader 2s -2s infinite; - } - } -} - - -@keyframes loader { - 0% { - transform: translate3d(-100%, 0, 0); - } - 100% { - transform: translate3d(200%, 0, 0); - } -} diff --git a/theme/styles/web/sass/core/widgets/_radiobuttons.scss b/theme/styles/web/sass/core/widgets/_radiobuttons.scss deleted file mode 100644 index 63d0b5b..0000000 --- a/theme/styles/web/sass/core/widgets/_radiobuttons.scss +++ /dev/null @@ -1,121 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// -/* ========================================================================== - Radio Buttons - - Default Mendix Radio Button Widget -========================================================================== */ -.mx-radiobuttons.inline .mx-radiogroup { - display: flex; - flex-direction: row; - - .radio { - margin: 0 20px 0 0; - } -} - -.mx-radiobuttons .radio:last-child { - margin-bottom: 0; -} - -.radio { - display: flex !important; // Remove after mxui merge - align-items: center; - margin-top: 0; -} - -input[type='radio'] { - position: relative !important; // Remove after mxui merge - width: 16px; - height: 16px; - margin: 0; - cursor: pointer; - -moz-user-select: none; - -ms-user-select: none; - -o-user-select: none; - -webkit-user-select: none; - user-select: none; - appearance: none; - -moz-appearance: none; - -webkit-appearance: none; - - &::-ms-check { - color: $form-input-border-color; - border-color: $form-input-border-color; - background-color: $form-input-bg; - } - - &:focus::-ms-check, - &:checked::-ms-check { - color: $form-input-border-focus-color; - border-color: $form-input-border-focus-color; - background-color: $form-input-bg-focus; - } - - &:before, - &:after { - position: absolute; - display: block; - transition: all 0.3s ease-in-out; - border-radius: 50%; - } - - &:before { - width: 100%; - height: 100%; - content: ''; - border: 1px solid $form-input-border-color; - background-color: transparent; - } - - &:after { - top: 50%; - left: 50%; - width: 50%; - height: 50%; - transform: translate(-50%, -50%); - pointer-events: none; - background-color: $form-input-border-focus-color; - } - - &:not(:checked):after { - transform: translate(-50%, -50%) scale(0); - opacity: 0; - } - - &:not(:disabled):not(:checked):hover:after { - background-color: $form-input-bg-hover; - } - - &:checked:after, - &:not(:disabled):not(:checked):hover:after { - content: ''; - transform: translate(-50%, -50%) scale(1); - opacity: 1; - } - - &:checked:before { - border-color: $form-input-border-focus-color; - background-color: $form-input-bg; - } - - &:disabled:before { - background-color: $form-input-bg-disabled; - } - - &:checked:disabled:before { - border-color: rgba($form-input-border-focus-color, 0.4); - } - - &:checked:disabled:after { - background-color: rgba($form-input-border-focus-color, 0.4); - } - - & + label { - margin-left: $form-label-gutter; - } -} diff --git a/theme/styles/web/sass/core/widgets/_simplemenubar.scss b/theme/styles/web/sass/core/widgets/_simplemenubar.scss deleted file mode 100644 index a7f11a5..0000000 --- a/theme/styles/web/sass/core/widgets/_simplemenubar.scss +++ /dev/null @@ -1,226 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// -/* ========================================================================== - Navigation - - Default Mendix Simple Menu Bar -========================================================================== */ -.mx-menubar { - padding: 0; - background-color: $navigation-bg; - - ul.mx-menubar-list { - display: flex; - width: 100%; - min-height: 50px; - - li.mx-menubar-item { - margin: 0; - - > a { - display: flex; - overflow: hidden; - align-items: center; - justify-content: center; - height: 100%; - padding: $navigation-item-padding; - white-space: nowrap; - color: $navigation-color; - border-radius: 0; - font-size: $navigation-font-size; - font-weight: $font-weight-normal; - - img { - margin-right: 0.5em; - } - - .glyphicon { - top: -1px; - margin-right: 0.5em; - vertical-align: middle; - font-size: $navigation-glyph-size; - } - } - - a:hover, - a:focus, - &:hover a, - &:focus a, - &.active a { - text-decoration: none; - color: $navigation-color-hover; - background-color: $navigation-bg-hover; - } - - &.active a { - color: $navigation-color-active; - background-color: $navigation-bg-active; - } - } - } - - /* remove focus */ - &:focus { - outline: 0; - } -} - -// Vertical variation specifics -.mx-menubar-vertical { - background-color: $navigation-bg; - - ul.mx-menubar-list { - display: flex; - - li.mx-menubar-item { - display: block; - - a { - border-bottom: 1px solid $navigation-border-color; - } - } - } -} - -// Horizontal variation specifics -.mx-menubar-horizontal { - box-shadow: 2px 0 4px 0 rgba(0, 0, 0, 0.14); - - ul.mx-menubar-list { - li.mx-menubar-item { - width: auto; - - a { - width: 100%; - } - } - } - - /* Two menu items */ - &.menubar-col-6 ul.mx-menubar-list li.mx-menubar-item { - width: 50%; - } - - /* Three menu items */ - &.menubar-col-4 ul.mx-menubar-list li.mx-menubar-item { - width: 33.33333333%; - } - - /* Four menu items */ - &.menubar-col-3 ul.mx-menubar-list li.mx-menubar-item { - width: 25%; - } - - /* Five menu items */ - &.menubar-col-2 ul.mx-menubar-list li.mx-menubar-item { - width: 20%; - } -} - -//== Regions -//## Behavior in the different regions -//-------------------------------------------------------------------------------------------------------------------// -// When used in topbar -.region-topbar { - .mx-menubar { - background-color: $navtopbar-bg; - - ul.mx-menubar-list { - li.mx-menubar-item { - a { - color: $navtopbar-color; - font-size: $navtopbar-font-size; - - .glyphicon { - font-size: $navtopbar-glyph-size; - } - } - - a:hover, - a:focus, - &:hover a, - &:focus a, - &.active a { - color: $navtopbar-color-hover; - background-color: $navtopbar-bg-hover; - } - - &.active a { - color: $navtopbar-color-active; - background-color: $navtopbar-bg-active; - } - } - } - } - - // Vertical variation specifics - .mx-menubar-vertical { - background-color: $navtopbar-bg; - - ul.mx-menubar-list { - li.mx-menubar-item { - a { - height: $navigation-item-height; - border-color: $navtopbar-border-color; - } - } - } - } -} - -// When used in sidebar -.region-sidebar { - .mx-menubar { - background-color: $navsidebar-bg; - - ul.mx-menubar-list { - li.mx-menubar-item { - a { - color: $navsidebar-color; - font-size: $navsidebar-font-size; - - .glyphicon { - font-size: $navsidebar-glyph-size; - } - } - - a:hover, - a:focus, - &:hover a, - &:focus a, - &.active a { - color: $navsidebar-color-hover; - background-color: $navsidebar-bg-hover; - } - - &.active a { - color: $navsidebar-color-active; - background-color: $navsidebar-bg-active; - } - } - } - } - - // Vertical variation specifics - .mx-menubar-vertical { - background-color: $navsidebar-bg; - - ul.mx-menubar-list { - li.mx-menubar-item { - a { - border-color: $navsidebar-border-color; - } - } - } - } -} - -@supports (padding-bottom: env(safe-area-inset-bottom)) { - .mx-menubar { - padding-bottom: env(safe-area-inset-bottom); - } -} \ No newline at end of file diff --git a/theme/styles/web/sass/core/widgets/_tabcontainer.scss b/theme/styles/web/sass/core/widgets/_tabcontainer.scss deleted file mode 100644 index f6933b5..0000000 --- a/theme/styles/web/sass/core/widgets/_tabcontainer.scss +++ /dev/null @@ -1,97 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Tab Container - - Default Mendix Tab Container Widget. Tab containers are used to show information categorized into multiple tab pages. - This can be very useful if the amount of information that has to be displayed is larger than the amount of space on the screen -========================================================================== */ - -.mx-tabcontainer { - .mx-tabcontainer-tabs { - margin-bottom: 20px; - border-color: $tabs-border-color; - & > li > a { - margin-right: 0; - -webkit-transition: all 0.2s ease-in-out; - -moz-transition: all 0.2s ease-in-out; - -o-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; - color: $tabs-color; - font-weight: $font-weight-normal; - &:hover, - &:focus { - background-color: $tabs-bg-hover; - } - } - & > li.active > a, - & > li.active > a:hover, - & > li.active > a:focus { - color: $tabs-color-active; - border: 1px solid $tabs-border-color; - border-bottom-color: transparent; - background-color: $tabs-bg; - } - } -} - -// Tab Styling Specific for mobile -.tab-mobile.mx-tabcontainer { - & > .mx-tabcontainer-tabs { - margin: 0; - text-align: center; - border-style: none; - background-color: $brand-primary; - li { - display: table-cell; - float: none; - width: 1%; - margin: 0; - text-align: center; - border-style: none; - border-radius: 0; - a { - padding: 15px; - text-transform: uppercase; - color: #FFFFFF; - border-width: 0 1px 0 0; - border-style: solid; - border-color: rgba(255, 255, 255, 0.3); - border-radius: 0; - font-size: 12px; - font-weight: $font-weight-normal; - &:hover, - &:focus { - background-color: inherit; - } - } - &:last-child a { - border-right: none; - } - &.active > a, - &.active > a:hover, - &.active > a:focus { - color: #FFFFFF; - border-style: none; - border-radius: 0; - background-color: mix($brand-primary, #000000, 80%); - } - } - } -} - -.mx-tabcontainer-badge { - margin-left: 8px; - border-radius: $font-size-small; - background-color: $label-primary-bg; - color: $label-primary-color; - font-size: $font-size-small; - font-weight: $font-weight-bold; - line-height: 1; - padding: 3px 7px; -} diff --git a/theme/styles/web/sass/core/widgets/_tables.scss b/theme/styles/web/sass/core/widgets/_tables.scss deleted file mode 100644 index 21c0c33..0000000 --- a/theme/styles/web/sass/core/widgets/_tables.scss +++ /dev/null @@ -1,79 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Tables - - Default Mendix Table Widget. Tables can be used to lend structure to a page. They contain a number of rows (tr) and columns, the intersection of which is called a cell (td). Each cell can contain widgets -========================================================================== */ - -th { - font-weight: $font-weight-bold; -} - -html body .mx-page table.mx-table { - th, - td { - &.nopadding { - padding: 0; - } - } -} - -table.mx-table { - > tbody { - /* Table row */ - > tr { - /* Table header */ - > th { - padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom $padding-table-cell-left;s - * { - color: $form-label-color; - font-weight: $font-weight-bold; - font-weight: $form-label-weight; - } - > label { - padding-top: 7px; - padding-bottom: 6px; // Aligns label in the middle if there is no input field next to it. - } - } - /* Table cells */ - > td { - padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom $padding-table-cell-left; - > div > label, - .mx-referenceselector-input-wrapper label { - padding-top: 7px; - padding-bottom: 6px; // Aligns label in the middle if there is no input field next to it. - } - } - } - } -} - -// Default Mendix Table Widget inside TemplateGrid -.mx-templategrid table.mx-table { - > tbody { - > tr { - > th, - > td { - padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom $padding-table-cell-left; - } - } - } -} - -// Default Mendix Table Widget inside Listview -.mx-list table.mx-table { - > tbody { - > tr { - > th, - > td { - padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom $padding-table-cell-left; - } - } - } -} diff --git a/theme/styles/web/sass/core/widgets/_templategrids.scss b/theme/styles/web/sass/core/widgets/_templategrids.scss deleted file mode 100644 index 35d6fce..0000000 --- a/theme/styles/web/sass/core/widgets/_templategrids.scss +++ /dev/null @@ -1,33 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Templategrid - - Default Mendix Templategrid Widget. The template grid shows a list of objects in a tile view. For example, a template grid can show a list of products. The template grid has a lot in common with the data grid. The main difference is that the objects are shown in templates (a sort of small data view) instead of rows -========================================================================== */ - -.mx-templategrid { - .mx-templategrid-content-wrapper { - table-layout: fixed; - } - .mx-templategrid-item { - padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left; - cursor: default; - background-color: $grid-bg; - &:hover { - background-color: transparent; - } - &.selected { - background-color: $grid-bg-selected !important; - } - } - .mx-layoutgrid { - padding-top: 0 !important; - padding-bottom: 0 !important; - } -} \ No newline at end of file diff --git a/theme/styles/web/sass/core/widgets/_timeline.scss b/theme/styles/web/sass/core/widgets/_timeline.scss deleted file mode 100644 index 638af7b..0000000 --- a/theme/styles/web/sass/core/widgets/_timeline.scss +++ /dev/null @@ -1,102 +0,0 @@ -.widget-timeline-date-header { - display: inline-block; - width: 110px; - overflow-wrap: break-word; - padding: 8px; - text-align: center; - border: 1px solid $timeline-border-color; - border-radius: 30px; -} - -.widget-timeline-events-wrapper { - display: flex; - flex: 1; - margin-left: 55px; - padding-top: 35px; - - ul { - padding: 0; - list-style: none; - margin-bottom: 0; - } -} - -.widget-timeline-title { - color: $timeline-color-header; - font-weight: 600; - margin: 0 0 10px 0; -} - -.widget-timeline-description { - color: $timeline-color-detail; -} - -.widget-timeline-event { - position: relative; - margin-left: $timeline-icon-size / 2; - padding-left: $spacing-large; - padding-bottom: 20px; - - &:not(:last-of-type) { - border-left: 1px solid $timeline-border-color; - } - - &.clickable { - cursor: pointer; - transition: background 0.8s; - - &:hover { - .widget-timeline-title { - color: #dadcde; - } - } - } -} - -.widget-timeline-icon-wrapper { - position: absolute; - top: 0; - left: 0; - display: flex; - justify-content: center; - align-items: center; - width: $timeline-icon-size; - height: $timeline-icon-size; - transform: translateX(-50%); - - .glyphicon { - font-size: $timeline-icon-size; - } - - img { - max-width: $timeline-icon-size; - max-height: $timeline-icon-size; - } -} - -.widget-timeline-content-wrapper { - .widget-timeline-date-time-wrapper { - margin-right: 15px; - } - - .widget-timeline-info-wrapper { - flex-direction: column; - } -} - -.widget-timeline-icon-circle { - width: 18px; - height: 18px; - border-radius: 50%; - background-color: $timeline-icon-color; -} - -.widget-timeline-no-divider { - padding-bottom: 0; - padding-top: 0; - margin-left: 0; -} - -.widget-timeline-flex-container { - display: flex; -} diff --git a/theme/styles/web/sass/core/widgets/_typography.scss b/theme/styles/web/sass/core/widgets/_typography.scss deleted file mode 100644 index 21fa8a0..0000000 --- a/theme/styles/web/sass/core/widgets/_typography.scss +++ /dev/null @@ -1,79 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Typography -========================================================================== */ - -p { - line-height: $line-height-base * 1.25; -} - -label { - padding-top: 0; -} - -.mx-title { - margin: $font-header-margin; - color: $font-color-header; - font-size: $font-size-h1; - font-weight: $font-weight-header; -} - -h1, -.h1, -.h1 > * { - font-size: $font-size-h1; -} - -h2, -.h2, -.h2 > * { - font-size: $font-size-h2; -} - -h3, -.h3, -.h3 > * { - font-size: $font-size-h3; -} - -h4, -.h4, -.h4 > * { - font-size: $font-size-h4; -} - -h5, -.h5, -.h5 > * { - font-size: $font-size-h5; -} - -h6, -.h6, -.h6 > * { - font-size: $font-size-h6; -} - -h1, -h2, -h3, -h4, -h5, -h6, -.h1, -.h2, -.h3, -.h4, -.h5, -.h6 { - margin: $font-header-margin; - color: $font-color-header; - font-weight: $font-weight-header; - line-height: 1.3; -} \ No newline at end of file diff --git a/theme/styles/web/sass/core/widgetscustom/_dijit-widgets.scss b/theme/styles/web/sass/core/widgetscustom/_dijit-widgets.scss deleted file mode 100644 index cf859c1..0000000 --- a/theme/styles/web/sass/core/widgetscustom/_dijit-widgets.scss +++ /dev/null @@ -1,184 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* -* Mendix Documentation -* Special styles for presenting components -*/ - -/* -* Dijit Widgets -* -* Default Dojo Dijit Widgets -*/ - -/* - * Dijit Tooltip Widget - * - * Default tooltip used for Mendix widgets - */ - -.mx-tooltip { - .dijitTooltipContainer { - border-width: 1px; - border-color: $gray-light; - border-radius: 4px; - background: #ffffff; - box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - .mx-tooltip-content { - padding: 10px; - } - .form-group { - margin-bottom: 5px; - } - } - .dijitTooltipConnector { - width: 0; - height: 0; - margin-left: -10px; - border-width: 10px 10px 10px 0; - border-style: solid; - border-color: transparent; - border-right-color: $gray-light; - } -} - -/* - * Dijit Border Container - * - * Used in Mendix as split pane containers - */ - -.dijitBorderContainer { - padding: 5px; - background-color: #fcfcfc; - .dijitSplitterV, - .dijitGutterV { - width: 5px; - border: 0; - background: #fcfcfc; - } - .dijitSplitterH, - .dijitGutterH { - height: 5px; - border: 0; - background: #fcfcfc; - } - .dijitSplitterH { - .dijitSplitterThumb { - top: 2px; - width: 19px; - height: 1px; - background: #b0b0b0; - } - } - .dijitSplitterV { - .dijitSplitterThumb { - left: 2px; - width: 1px; - height: 19px; - background: #b0b0b0; - } - } - .dijitSplitContainer-child, - .dijitBorderContainer-child { - border: 1px solid #cccccc; - } - .dijitBorderContainer-dijitTabContainerTop, - .dijitBorderContainer-dijitTabContainerBottom, - .dijitBorderContainer-dijitTabContainerLeft, - .dijitBorderContainer-dijitTabContainerRight { - border: none; - } - .dijitBorderContainer-dijitBorderContainer { - padding: 0; - border: none; - } - .dijitSplitterActive { - /* For IE8 and earlier */ - margin: 0; - opacity: 0.6; - background-color: #aaaaaa; - background-image: none; - font-size: 1px; - filter: alpha(opacity=60); - } - .dijitSplitContainer-dijitContentPane, - .dijitBorderContainer-dijitContentPane { - padding: 5px; - background-color: #ffffff; - } -} - -/* - * Dijit Menu Popup - * - * Used in datepickers and calendar widgets - */ - -.dijitMenuPopup { - margin-top: 10px; - .dijitMenu { - display: block; - width: 200px !important; - margin-top: 0; // No top margin because there is no parent with margin bottom - padding: 12px 10px; - border-radius: 3px; - background: $brand-inverse; - &:after { - position: absolute; - bottom: 100%; - left: 20px; - width: 0; - height: 0; - margin-left: -10px; - content: ' '; - pointer-events: none; - border: medium solid transparent; - border-width: 10px; - border-bottom-color: $brand-inverse; - } - // Menu item - .dijitMenuItem { - background: transparent; - .dijitMenuItemLabel { - display: block; - overflow: hidden; - width: 180px !important; - padding: 10px; - text-overflow: ellipsis; - color: #ffffff; - border-radius: 3px; - } - // Hover - &.dijitMenuItemHover { - background: none; - .dijitMenuItemLabel { - background: $brand-primary; - } - } - } - // New label - .tg_newlabelmenuitem { - .dijitMenuItemLabel { - font-weight: $font-weight-bold; - } - } - // Seperator - .dijitMenuSeparator { - td { - padding: 0; - border-bottom-width: 3px; - } - .dijitMenuSeparatorIconCell { - > div { - margin: 0; //override dijit styling - } - } - } - } -} diff --git a/theme/styles/web/sass/core/widgetscustom/_progress-bar-theme.scss b/theme/styles/web/sass/core/widgetscustom/_progress-bar-theme.scss deleted file mode 100644 index 7309a06..0000000 --- a/theme/styles/web/sass/core/widgetscustom/_progress-bar-theme.scss +++ /dev/null @@ -1,43 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* Based on https://github.com/mendixlabs/star-rating/blob/v1.1.1/src/ui/StarRating.scss */ -div.widget-progress-bar .progress-bar-default { - background-color: $brand-default; -} - -div.widget-progress-bar .progress-bar-primary { - background-color: $brand-primary; -} - -div.widget-progress-bar .progress-bar-success { - background-color: $brand-success; -} - -div.widget-progress-bar .progress-bar-info { - background-color: $brand-info; -} - -div.widget-progress-bar .progress-bar-warning { - background-color: $brand-warning; -} - -div.widget-progress-bar .progress-bar-danger { - background-color: $brand-danger; -} - -div.widget-progress-bar .progress-bar-inverse { - background-color: $brand-inverse; -} - -div.widget-progress-bar-alert.widget-progress-bar-text-contrast .progress-bar { - color: $color-danger-darker; -} - -div.widget-progress-bar-text-contrast .progress-bar { - color: $font-color-default; -} diff --git a/theme/styles/web/sass/core/widgetscustom/_progress-circle-theme.scss b/theme/styles/web/sass/core/widgetscustom/_progress-circle-theme.scss deleted file mode 100644 index 0c0b385..0000000 --- a/theme/styles/web/sass/core/widgetscustom/_progress-circle-theme.scss +++ /dev/null @@ -1,65 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* Based on https://github.com/mendixlabs/progress-circle/tree/master/src/ui/_progress-circle-theme.scss */ -path.widget-progress-circle-path { - stroke: $brand-primary; -} - -.widget-progress-circle-primary { - path.widget-progress-circle-path { - stroke: $brand-primary; - } - .progressbar-text { - color: $brand-primary !important; - } -} - -.widget-progress-circle-info { - path.widget-progress-circle-path { - stroke: $brand-info; - } - .progressbar-text { - color: $brand-info !important; - } -} - -.widget-progress-circle-success { - path.widget-progress-circle-path { - stroke: $brand-success; - } - .progressbar-text { - color: $brand-success !important; - } -} - -.widget-progress-circle-warning { - path.widget-progress-circle-path { - stroke: $brand-warning; - } - .progressbar-text { - color: $brand-warning !important; - } -} - -.widget-progress-circle-danger { - path.widget-progress-circle-path { - stroke: $brand-danger; - } - .progressbar-text { - color: $brand-danger !important; - } -} - -.widget-progress-circle-inverse { - path.widget-progress-circle-path { - stroke: $brand-inverse; - } - .progressbar-text { - color: $brand-inverse !important; - } -} diff --git a/theme/styles/web/sass/core/widgetscustom/_range-slider-theme.scss b/theme/styles/web/sass/core/widgetscustom/_range-slider-theme.scss deleted file mode 100644 index 0da429b..0000000 --- a/theme/styles/web/sass/core/widgetscustom/_range-slider-theme.scss +++ /dev/null @@ -1,59 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -// Based on https://github.com/mendixlabs/range-slider/tree/master/src/ui/_range-slider-theme.scss - -div.widget-range-slider { - .rc-slider-handle, - .rc-slider-dot-active { - border-color: $brand-default; - - &:active { - border-color: $brand-default; - box-shadow: none; - } - - &:hover { - border-color: $brand-default; - } - } - - &.has-error { - .rc-slider-track, - .rc-slider-rail { - background-color: $brand-danger; - } - } -} - -div.widget-range-slider-primary .rc-slider-track { - background-color: $brand-primary; -} - -div.widget-range-slider-info .rc-slider-track { - background-color: $brand-info; -} - -div.widget-range-slider-success .rc-slider-track { - background-color: $brand-success; -} - -div.widget-range-slider-warning .rc-slider-track { - background-color: $brand-warning; -} - -div.widget-range-slider-danger .rc-slider-track { - background-color: $brand-danger; -} - -div.widget-range-slider-inverse .rc-slider-track { - background-color: $brand-inverse; -} - -.rc-slider-tooltip { - z-index: 999; -} \ No newline at end of file diff --git a/theme/styles/web/sass/core/widgetscustom/_slider-theme.scss b/theme/styles/web/sass/core/widgetscustom/_slider-theme.scss deleted file mode 100644 index 951b79a..0000000 --- a/theme/styles/web/sass/core/widgetscustom/_slider-theme.scss +++ /dev/null @@ -1,52 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -// Based on https://github.com/mendixlabs/slider/tree/master/src/ui/_slider-theme.scss - -div.widget-slider { - .rc-slider-handle, - .rc-slider-dot-active { - border-color: $brand-default; - &:active { - border-color: $brand-default; - } - &:hover { - border-color: $brand-default; - } - } - - &.has-error { - .rc-slider-track, - .rc-slider-rail { - background-color: $brand-danger; - } - } -} - -div.widget-slider-primary .rc-slider-track { - background-color: $brand-primary; -} - -div.widget-slider-info .rc-slider-track { - background-color: $brand-info; -} - -div.widget-slider-success .rc-slider-track { - background-color: $brand-success; -} - -div.widget-slider-warning .rc-slider-track { - background-color: $brand-warning; -} - -div.widget-slider-danger .rc-slider-track { - background-color: $brand-danger; -} - -div.widget-slider-inverse .rc-slider-track { - background-color: $brand-inverse; -} diff --git a/theme/styles/web/sass/core/widgetscustom/_star-rating-theme.scss b/theme/styles/web/sass/core/widgetscustom/_star-rating-theme.scss deleted file mode 100644 index 91eeb86..0000000 --- a/theme/styles/web/sass/core/widgetscustom/_star-rating-theme.scss +++ /dev/null @@ -1,35 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* Based on https://github.com/mendixlabs/star-rating/blob/v1.1.1/src/ui/StarRating.scss */ -span.widget-star-rating-full-default { - color: $brand-default; -} - -span.widget-star-rating-full-primary { - color: $brand-primary; -} - -span.widget-star-rating-full-success { - color: $brand-success; -} - -span.widget-star-rating-full-info { - color: $brand-info; -} - -span.widget-star-rating-full-warning { - color: $brand-warning; -} - -span.widget-star-rating-full-danger { - color: $brand-danger; -} - -span.widget-star-rating-full-inverse { - color: $brand-inverse; -} diff --git a/theme/styles/web/sass/core/widgetscustom/_switchwidget.scss b/theme/styles/web/sass/core/widgetscustom/_switchwidget.scss deleted file mode 100644 index 14dd591..0000000 --- a/theme/styles/web/sass/core/widgetscustom/_switchwidget.scss +++ /dev/null @@ -1,157 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -$default-android-color: #6FBEB5; -$default-ios-color: rgb(100, 189, 99); - -@mixin bootstrap-style-ios($brand-style) { - border-color: $brand-style; - background-color: $brand-style; - box-shadow: $brand-style 0 0 0 16px inset; -} - -@mixin bootstrap-style-android($brand-style) { - background-color: lighten($brand-style, 10%); -} - -@mixin ios { - .widget-switch-btn-wrapper { - &.checked { - &.widget-switch-btn-wrapper-default { - @include bootstrap-style-ios($default-ios-color); - } - - &.widget-switch-btn-wrapper-success { - @include bootstrap-style-ios($brand-success); - } - - &.widget-switch-btn-wrapper-info { - @include bootstrap-style-ios($brand-info); - } - - &.widget-switch-btn-wrapper-primary { - @include bootstrap-style-ios($brand-primary); - } - - &.widget-switch-btn-wrapper-warning { - @include bootstrap-style-ios($brand-warning); - } - - &.widget-switch-btn-wrapper-danger { - @include bootstrap-style-ios($brand-danger); - } - - &.widget-switch-btn-wrapper-inverse { - @include bootstrap-style-ios($brand-inverse); - } - } - } -} - -@mixin android { - .widget-switch-btn-wrapper { - &.checked { - &.widget-switch-btn-wrapper-default { - @include bootstrap-style-android($default-android-color); - - .widget-switch-btn { - background: $default-android-color; - } - } - - &.widget-switch-btn-wrapper-success { - @include bootstrap-style-android($brand-success); - - .widget-switch-btn { - background: $brand-success; - } - } - - &.widget-switch-btn-wrapper-info { - @include bootstrap-style-android($brand-info); - - .widget-switch-btn { - background: $brand-info; - } - } - - &.widget-switch-btn-wrapper-primary { - @include bootstrap-style-android($brand-primary); - - .widget-switch-btn { - background: $brand-primary; - } - } - - &.widget-switch-btn-wrapper-warning { - @include bootstrap-style-android($brand-warning); - - .widget-switch-btn { - background: $brand-warning; - } - } - - &.widget-switch-btn-wrapper-danger { - @include bootstrap-style-android($brand-danger); - - .widget-switch-btn { - background: $brand-danger; - } - } - - &.widget-switch-btn-wrapper-inverse { - @include bootstrap-style-android($brand-inverse); - - .widget-switch-btn { - background: $brand-inverse; - } - } - } - } -} - -.widget-switch-btn-wrapper { - &:focus { - outline: 1px solid $brand-primary; - } -} - -div { - &.widget-switch { - &.iOS { - @include ios; - } - - &.android { - @include android; - } - - &.auto { - @include ios; - } - } -} - -html { - div { - &.dj_android { - .widget-switch { - &.auto { - @include android; - } - } - } - - &.dj_ios { - .widget-switch { - &.auto { - @include ios; - } - } - } - } -} diff --git a/theme/styles/web/sass/main.scss b/theme/styles/web/sass/main.scss deleted file mode 100644 index 53f45f9..0000000 --- a/theme/styles/web/sass/main.scss +++ /dev/null @@ -1,104 +0,0 @@ -// Utilities -@import 'core/_legacy/bootstrap/bootstrap'; -@import 'core/_legacy/bootstrap/bootstrap-rtl'; -@import 'core/_legacy/mxui'; - -// Custom variables -@import 'app/custom-variables'; - -//================================== CORE ==================================\\ - -// Default variables -@import 'core/variables'; - -// Base -@import 'core/base/mixins/animations'; -@import 'core/base/mixins/spacing'; -@import 'core/base/mixins/layout-spacing'; -@import 'core/base/mixins/buttons'; -@import 'core/base/mixins/groupbox'; -@import 'core/base/animation'; -@import 'core/base/flex'; -@import 'core/base/spacing'; -@import 'core/base/reset'; -@import 'core/base/base'; -@import 'core/base/login'; - -// Widgets -@import 'core/widgets/inputs'; -@import 'core/widgets/alerts'; -@import 'core/helpers/alerts'; -@import 'core/helpers/backgrounds'; -@import 'core/widgets/buttons'; -@import 'core/helpers/buttons'; -@import 'core/widgets/checkbox'; -@import 'core/widgets/grid'; -@import 'core/widgets/datagrids'; -@import 'core/helpers/datagrids'; -@import 'core/widgets/dataview'; -@import 'core/widgets/datepicker'; -@import 'core/widgets/header'; -@import 'core/widgets/glyphicons'; -@import 'core/widgets/groupbox'; -@import 'core/helpers/groupbox'; -@import 'core/helpers/images'; -@import 'core/widgets/labels'; -@import 'core/helpers/labels'; -@import 'core/widgets/listview'; -@import 'core/helpers/listview'; -@import 'core/widgets/modals'; -@import 'core/widgets/navigationbar'; -@import 'core/helpers/navigationbar'; -@import 'core/widgets/navigationlist'; -@import 'core/widgets/navigationtree'; -@import 'core/helpers/navigationtree'; -@import 'core/widgets/popupmenu'; -@import 'core/widgets/simplemenubar'; -@import 'core/helpers/simplemenubar'; -@import 'core/widgets/radiobuttons'; -@import 'core/widgets/tabcontainer'; -@import 'core/helpers/tabcontainer'; -@import 'core/widgets/tables'; -@import 'core/helpers/tables'; -@import 'core/widgets/templategrids'; -@import 'core/helpers/templategrids'; -@import 'core/widgets/typography'; -@import 'core/helpers/typography'; -@import 'core/widgets/layoutgrid'; -@import 'core/widgets/progress'; -@import 'core/widgets/timeline'; -@import 'core/helpers/helperclasses'; - -// Custom widgets -@import 'core/widgetscustom/dijit-widgets'; -@import 'core/widgetscustom/progress-bar-theme'; -@import 'core/widgetscustom/progress-circle-theme'; -@import 'core/widgetscustom/range-slider-theme'; -@import 'core/widgetscustom/slider-theme'; -@import 'core/widgetscustom/star-rating-theme'; -@import 'core/widgetscustom/switchwidget'; - -//================================= CUSTOM =================================\\ - -// Building blocks -@import 'ui_resources/atlas_ui_resources/buildingblocks/breadcrumb'; -@import 'ui_resources/atlas_ui_resources/buildingblocks/card'; -@import 'ui_resources/atlas_ui_resources/buildingblocks/chat'; -@import 'ui_resources/atlas_ui_resources/buildingblocks/controlgroup'; -@import 'ui_resources/atlas_ui_resources/buildingblocks/pageblocks'; -@import 'ui_resources/atlas_ui_resources/buildingblocks/pageheader'; -@import 'ui_resources/atlas_ui_resources/buildingblocks/heroheader'; -@import 'ui_resources/atlas_ui_resources/buildingblocks/formblock'; -@import 'ui_resources/atlas_ui_resources/buildingblocks/master-detail'; -@import 'ui_resources/atlas_ui_resources/buildingblocks/userprofile'; -@import 'ui_resources/atlas_ui_resources/buildingblocks/wizard'; -@import 'ui_resources/atlas_ui_resources/buildingblocks/timeline'; - -// Layouts -@import 'ui_resources/atlas_ui_resources/layouts/layout-atlas'; -@import 'ui_resources/atlas_ui_resources/layouts/layout-atlas-phone'; -@import 'ui_resources/atlas_ui_resources/layouts/layout-atlas-responsive'; -@import 'ui_resources/atlas_ui_resources/layouts/layout-atlas-tablet'; - -// Custom -@import 'app/custom'; diff --git a/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_breadcrumb.scss b/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_breadcrumb.scss deleted file mode 100644 index b5655be..0000000 --- a/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_breadcrumb.scss +++ /dev/null @@ -1,44 +0,0 @@ -/* ========================================================================== - Breadcrumbs - -========================================================================== */ -.breadcrumb { - //reset - margin: 0; - padding: 0; - border-radius: 0; - background-color: transparent; - font-size: $font-size-default; -} - -//== Elements -//-------------------------------------------------------------------------------------------------------------------// -.breadcrumb-item { - display: inline-block; - margin: 0; - &:last-child { - color: $font-color-default; - a { - text-decoration: none; - } - } -} -.breadcrumb-item + .breadcrumb-item { - &::before { - display: inline-block; - padding-right: 10px; - padding-left: 10px; - content: "/"; - color: $gray-light; - } -} - -//== Variations -//-------------------------------------------------------------------------------------------------------------------// -.breadcrumb-large { - font-size: $font-size-h3; -} -.breadcrumb-underline { - padding-bottom: $gutter-size; - border-bottom: 1px solid $border-color-default; -} diff --git a/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_card.scss b/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_card.scss deleted file mode 100644 index ddfc68d..0000000 --- a/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_card.scss +++ /dev/null @@ -1,337 +0,0 @@ -/* ========================================================================== - Cards - -========================================================================== */ -.card { - padding: 30px; - border: 1px solid $border-color-default; - border-radius: $border-radius-default; - background-color: #FFFFFF; -} - -//== Elements -//-------------------------------------------------------------------------------------------------------------------// -.card-title { - margin-top: 0; -} - -//== Variations -//-------------------------------------------------------------------------------------------------------------------// -.cardaction { - .card-image { - .glyphicon { - font-size: 58px; - } - } -} - -.cardmetrics { - .card-title { - margin-bottom: 0; - } - - .figurecontent { - } - - .card-image { - width: 100px; - height: auto; - // If btn - &.btn { - width: 100px; - height: 100px; - padding: 0; - cursor: default; - pointer-events: none; - font-size: 40px; - } - } - - .card-counter { - margin: 0; - font-size: 64px; - } - - .card-morebutton { - } -} - -.cardinfo { - .card-text { - margin-bottom: $spacing-large; - } -} - -// Used in card info -.textwithicon { - overflow: hidden; - max-width: 100%; - margin-bottom: 15px; - text-overflow: ellipsis; - - .textwithicon-icon, - .textwithicon-text { - display: inline-block; - vertical-align: middle; - } - - .textwithicon-icon { - margin-right: 15px; - padding: 0; - color: $brand-primary; // class .text-primary - border: 0; - background: transparent; - font-size: 23px; - } - - .textwithicon-text { - } -} - -// Used in card info -.socialprofiles { - .socialprofiles-title { - display: block; - margin-bottom: 10px; - font-weight: bold; // class text-bold - } - - .socialprofiles-button { - width: 24px; - height: 24px; - margin-right: 15px; - padding: 0; - border-radius: 24px; - - .glyphicon { - margin: 0; - } - } -} - - -.cardtabs { - padding: 0; -} - -.cardtabs-tabs { - margin: 0; - - ul.mx-tabcontainer-tabs { - display: flex; - margin: 0; - background-color: mix($tabs-border-color, #FFFFFF, 20%); - - li { - flex: 1 1 auto; - text-align: center; - - a, - a:hover, - a:focus { - border-top-width: 0; - border-right-width: 1px; - border-left-width: 0; - } - - &:first-child a { - border-radius: $border-radius-default 0 0 0; - } - - &:last-child a { - border-radius: 0 $border-radius-default 0 0; - } - } - } - - .mx-tabcontainer-pane { - @include get-responsive-spacing-large($type: padding, $direction: all); - } -} - -.carduser { - .card-controls { - } - - .card-title { - } - - .card-detail { - } -} - -.cardgraph { - .card-title { - } -} - -.cardchart { - .card-title { - } -} - -.cardproduct { - padding: 0; - -} - -.cardproduct-header { - position: relative; - overflow: hidden; - height: 200px; - - .card-image { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: auto; - } - -} - -.cardproduct-overlay { - position: absolute; - bottom: 0; - left: 0; - width: 100%; - padding: 20px 30px; - background: rgba(0, 0, 0, 0.60); - -} - -.cardproduct-overlay-category, -.cardproduct-overlay-title { - margin: 0; - color: #FFFFFF; -} - -.cardproduct-footer .col { - padding: 20px 30px; - - .widget-star-rating-font { - font-size: 20px; - } -} - -.cardproduct-name { - margin: 0; -} - -.cardproduct-btn { - display: flex; - align-items: center; - height: 100%; - padding: 30px; - border-left: 1px solid $border-color-default; -} - -.cardproduct2 { - @extend .cardproduct; - - .cardproduct-header { - &::after { - position: absolute; - bottom: 0; - left: 0; - display: block; - width: 100%; - padding: 20px 30px; - content: ""; - background: rgba(0, 0, 0, 0.60); - background: -moz-linear-gradient(top, rgba(255, 255, 255, 0) 0%, rgba(250, 250, 250, 0) 2%, rgba(0, 0, 0, 0.99) 99%, rgba(0, 0, 0, 1) 100%); - background: -webkit-linear-gradient(top, rgba(255, 255, 255, 0) 0%, rgba(250, 250, 250, 0) 2%, rgba(0, 0, 0, 0.99) 99%, rgba(0, 0, 0, 1) 100%); - background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(250, 250, 250, 0) 2%, rgba(0, 0, 0, 0.99) 99%, rgba(0, 0, 0, 1) 100%); - } - } -} - - -.cardproduct3 { - @extend .cardproduct; - - .cardproduct-header { - height: 320px; - - img { - width: 100%; - height: 100%; - object-fit: cover; - } - - } - - .cardproduct-overlay { - min-height: 100px; - padding: 30px; - background: -moz-linear-gradient(top, rgba(255, 255, 255, 0) 0%, rgba(250, 250, 250, 0) 8%, rgba(0, 0, 0, 0.99) 121%, rgba(0, 0, 0, 1) 100%); - background: -webkit-linear-gradient(top, rgba(255, 255, 255, 0) 0%, rgba(250, 250, 250, 0) 8%, rgba(0, 0, 0, 0.99) 121%, rgba(0, 0, 0, 1) 100%); - background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(250, 250, 250, 0) 8%, rgba(0, 0, 0, 0.99) 121%, rgba(0, 0, 0, 1) 100%); - font-size: $font-size-default; - } -} - -.cardshopping { -} - -.carduserlist { -} - -.cardstatus { - padding: 20px; - - .card-linkicon { - font-size: 30px; - } - - .cardstatus-status { - margin-bottom: 5px; - } -} - -.cardpayment { -} - -.cardprogress { -} - -.cardprogress-state { - width: 80px; - height: 80px; - padding: 0; - cursor: default; - pointer-events: none; - border-radius: 100%; - font-size: 28px; -} - -.cardhighlight { - border-top: 4px solid $brand-primary; -} - -.cardchat { - overflow: hidden; - padding: 0; - - .chat { - height: 400px; - } -} - -@media screen and (max-width: $screen-md-max) { - .widget-charts:not([height]), - .widget-charts-line:not([height]) { - padding-bottom: 80% !important; - } -} - - -@media screen and (max-width: $screen-lg-max) { - .cardprogress { - .cardprogress-state { - width: 60px; - height: 60px; - font-size: 24px; - } - } -} diff --git a/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_chat.scss b/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_chat.scss deleted file mode 100644 index 4dba229..0000000 --- a/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_chat.scss +++ /dev/null @@ -1,148 +0,0 @@ -/* ========================================================================== - Chats - -========================================================================== */ -.chat { - display: flex; - flex-direction: column; - height: 100%; - background-color: $bg-color-secondary; -} - -//== Elements -//-------------------------------------------------------------------------------------------------------------------// -.chat-content { - display: flex; - overflow: auto; - flex: 1; - flex-direction: column; - justify-content: flex-end; - - .chat-list { - position: relative; - overflow: auto; - - ul { - display: flex; - flex-direction: column-reverse; - margin-bottom: $m-spacing-large; - } - - li { - padding: 15px 30px; - animation: fadeIn 0.2s; - background-color: transparent; - animation-fill-mode: both; - - &, - &:last-child { - border: 0; - } - } - - .mx-listview-loadMore { - position: absolute; - top: 0; - right: 0; - left: 0; - display: block; - width: 50%; - margin: 15px auto; - color: #FFFFFF; - background-color: $brand-primary; - box-shadow: 0 2px 20px 0 rgba(0, 0, 0, 0.05); - } - } -} - - -.chat-message { - display: flex; -} - -.chat-avatar { - margin: 0 20px 0 0; - border-radius: 50%; -} - -.chat-message-content { - display: inline-flex; - flex-direction: column; -} - -.chat-message-balloon { - position: relative; - display: flex; - flex-direction: column; - padding: 10px 15px; - border-radius: 5px; - background-color: $bg-color; - - &::after { - position: absolute; - top: 10px; - right: 100%; - width: 0; - height: 0; - content: ''; - border: 10px solid transparent; - border-top: 0; - border-right-color: $bg-color; - border-left: 0; - } -} - -.chat-message-time { - padding-top: 2px; - - .form-control-static { - border: 0; - } -} - -.chat-footer { - z-index: 1; - padding: $m-spacing-large; - background-color: $bg-color; - box-shadow: 0 2px 20px 0 rgba(0, 0, 0, 0.05); -} - -.chat-input { - display: flex; - - .chat-textbox { - flex: 1; - margin-right: $spacing-large; - margin-bottom: 0; - - .form-control { - border: 0; - } - } -} - -//== Variations -//-------------------------------------------------------------------------------------------------------------------// -.chat-message-self { - justify-content: flex-end; - - .chat-avatar { - margin: 0 0 0 20px; - } - - .chat-message-balloon { - background-color: $color-primary-lighter; - - &::after { - left: 100%; - border: 10px solid transparent; - border-top: 0; - border-right: 0; - border-left-color: $color-primary-lighter; - } - } - - .chat-message-time { - text-align: right; - } -} diff --git a/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_formblock.scss b/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_formblock.scss deleted file mode 100644 index 9ecfc2f..0000000 --- a/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_formblock.scss +++ /dev/null @@ -1,15 +0,0 @@ -/* ========================================================================== - Form Block - - Used in default forms -========================================================================== */ -.formblock { -} - -//== Elements -//-------------------------------------------------------------------------------------------------------------------// -.formblock-title { - margin-bottom: $gutter-size; - padding-bottom: $gutter-size; - border-bottom: 1px solid $border-color-default; -} diff --git a/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_heroheader.scss b/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_heroheader.scss deleted file mode 100644 index f00c387..0000000 --- a/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_heroheader.scss +++ /dev/null @@ -1,99 +0,0 @@ -/* ========================================================================== - Pageheader - -========================================================================== */ -.heroheader { - border-bottom: 1px solid $border-color-default; - background: $header-bg-color; -} - -//== Elements -//-------------------------------------------------------------------------------------------------------------------// -.heroheader-title { - margin: 0 0 10px 0; -} - -.heroheader-subtitle { - margin: 0; - padding: 0 15px; - - &::before { - display: block; - max-width: 330px; - height: 1px; - margin: auto auto 10px auto; - content: ""; - background-color: lighten($border-color-default, 4); - } -} - -//== Variations -//-------------------------------------------------------------------------------------------------------------------// -.heroheader1 { - background-image: $brand-gradient; - - .heroheader-title { - margin-bottom: 10px; - color: #FFFFFF; - } - - .heroheader-subtitle { - padding: 0; - color: #FFFFFF; - - &::before { - display: none; - } - } -} - -.heroheadermap { - padding: 0 !important; -} - -.heroheadermap-controls { - padding: $spacing-large; - background: $header-bg-color; -} - -.heroheaderproduct { - position: relative; - overflow: hidden; - height: 300px; - background-color: #000000; - - .heroheaderproduct-backgroundimage { - position: absolute; - z-index: 0; - top: 0; - width: 100%; - opacity: 0.7; - filter: blur(5px); - } - - .heroheaderproduct-overlay { - position: absolute; - z-index: 1; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - } -} - -.heroheaderexpense { - .heroheaderexpense-title { - font-size: 72px; - } - - .heroheaderexpense-type { - align-items: center; - - &::before { - flex-grow: 1; - height: 1px; - margin-right: 10px; - content: ""; - background-color: #D2D2D2; - } - } -} diff --git a/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_master-detail.scss b/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_master-detail.scss deleted file mode 100644 index 2422239..0000000 --- a/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_master-detail.scss +++ /dev/null @@ -1,46 +0,0 @@ -/* ========================================================================== - Master Detail - - A list with a listening dataview -========================================================================== */ -.masterdetail { - .masterdetail-master { - .controlgroup { - margin-bottom: $gutter-size; - } - - @media (max-width: $screen-lg) { - @include layout-spacing($type: margin, $direction: bottom, $device: responsive); - } - - @media (min-width: $screen-lg) { - border-right: 1px solid $border-color-default; - - .mx-listview-searchbar { - margin: $gutter-size; - } - .controlgroup { - padding: $gutter-size; - border-bottom: 1px solid $border-color-default; - } - } - } - - .masterdetail-detail { - @media (min-width: $screen-lg) { - @include layout-spacing($type: padding, $direction: all, $device: responsive); - } - } -} - -//== Variations -//-------------------------------------------------------------------------------------------------------------------// -.masterdetailvertical { - .masterdetail-master { - @include layout-spacing($type: margin, $direction: bottom, $device: responsive); - } - - .masterdetail-detail { - @include layout-spacing($type: padding, $direction: top, $device: responsive); - } -} diff --git a/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_pageheader.scss b/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_pageheader.scss deleted file mode 100644 index 3425161..0000000 --- a/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_pageheader.scss +++ /dev/null @@ -1,59 +0,0 @@ -/* ========================================================================== - Pageheader -========================================================================== */ - -//== Default -//-------------------------------------------------------------------------------------------------------------------// -.pageheader { - border-bottom: 1px solid $border-color-default; - background: $header-bg-color; -} - -// Check if it is part of a inner layoutgrid -.mx-scrollcontainer .mx-placeholder .mx-layoutgrid .pageheader { - @include get-responsive-spacing-large($type: margin, $direction: bottom); - @include get-responsive-spacing-large($type: padding, $direction: bottom); - background: transparent; -} - -//== Elements -//-------------------------------------------------------------------------------------------------------------------// -.pageheader-type { - margin: 0; -} - -.pageheader-title { - margin: 0; -} - -.pageheader-subtitle { - margin: 0; -} - -//== Variations -//-------------------------------------------------------------------------------------------------------------------// -.pageheaderwithcontrols { - .controlgroup { - } -} - -.pageheaderwithimage { - .pageheader-image { - } - .figurecontent { - } -} - -.pageheaderwithimageandcontrols { -} - -.pageheaderwithsearch { - .pageheader-title { - margin-bottom: 1em; - } -} - -.pageheaderwithbreadcrumb { - .breadcrumb { - } -} diff --git a/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_timeline.scss b/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_timeline.scss deleted file mode 100644 index 63f4d65..0000000 --- a/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_timeline.scss +++ /dev/null @@ -1,46 +0,0 @@ -// Timeline -.timeline { - .timeline-header { - display: inline-block; - width: 110px; - padding: 8px; - text-align: center; - border: 1px solid $border-color-default; - border-radius: 30px; - } -} -.timeline-itemwrapper.mx-listview { - margin-bottom: 0; - margin-left: 55px; - padding: $spacing-large 0; - border-left: 1px solid $border-color-default; - & > ul > li { - position: relative; - padding-left: ($gutter-size * 2); - - &::before { - position: absolute; - top: 5px; - left: -5px; - display: block; - width: 10px; - height: 10px; - content: ''; - border-radius: 50%; - background-color: $brand-primary; - } - } - li + li { - margin-top: $spacing-large; - } -} - -//== Variations -//-------------------------------------------------------------------------------------------------------------------// -.timeline2 { - .timeline-itemwrapper.mx-listview { - & > ul > li { - padding-left: $gutter-size; - } - } -} diff --git a/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_userprofile.scss b/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_userprofile.scss deleted file mode 100644 index c4544a9..0000000 --- a/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_userprofile.scss +++ /dev/null @@ -1,12 +0,0 @@ -/* ========================================================================== - User profile blocks - - -========================================================================== */ -.userprofile { - .userprofile-img { - } - .userprofile-title { - } - .userprofile-subtitle { - } -} \ No newline at end of file diff --git a/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_wizard.scss b/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_wizard.scss deleted file mode 100644 index 37df48d..0000000 --- a/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_wizard.scss +++ /dev/null @@ -1,137 +0,0 @@ -$wizard-step-number-size: 60px; -$wizard-step-height: 50px; - -.wizard { - display: flex; - justify-content: space-between; - .wizard-step { - position: relative; - width: 100%; - text-align: center; - &::before { - position: absolute; - z-index: -1; - top: $wizard-step-number-size / 2; - display: block; - width: 100%; - height: 2px; - content: ""; - background-color: $border-color-default; - } - .wizard-step-number { - width: $wizard-step-number-size; - height: $wizard-step-number-size; - border-color: $border-color-default; - border-radius: 50%; - background-color: #FFFFFF; - font-size: 20px; - } - .wizard-step-text { - display: block; - margin-top: 15px; - } - } - - - // States - .wizard-step-active { - .wizard-step-number { - color: #FFFFFF; - border-color: $brand-primary; - background-color: $brand-primary; - } - .wizard-step-text { - color: $brand-primary; - } - } - .wizard-step-visited { - .wizard-step-number { - color: #FFFFFF; - border-color: $brand-success; - background-color: $brand-success; - } - .wizard-step-text { - } - } -} - -.wizardprogress { - display: flex; - justify-content: space-between; - - .wizard-step-text { - width: 100%; - } - - .wizard-step { - position: relative; - width: 100%; - height: $wizard-step-height; - margin-left: 0 - ($wizard-step-height / 2); - padding-left: ($wizard-step-height / 2); - border: 1px solid $border-color-default; - background: #FFFFFF; - - a { - display: block; - overflow: hidden; - width: 100%; - height: 100%; - padding: 14px; - white-space: nowrap; - text-decoration: none; - text-overflow: ellipsis; - color: $font-color-default; - } - &::before, - &::after { - position: absolute; - z-index: 1; - left: 100%; - margin-left: 0 - ($wizard-step-height / 2); - content: " "; - border-style: solid; - border-color: transparent; - } - &::after { - top: 1px; - border-width: (($wizard-step-height / 2) - 1); - border-left-color: #FFFFFF; - } - &::before { - top: 0; - border-width: $wizard-step-height / 2; - border-left-color: $border-color-default; - } - - &:first-child { - margin-left: 0; - padding-left: 0; - border-radius: 5px 0 0 5px; - } - - &:last-child { - border-radius: 0 5px 5px 0; - &::before, - &::after { - display: none; - } - } - } - // States - .wizard-step-active { - background: $brand-primary; - a { - text-decoration: none; - color: #FFFFFF; - } - &::after { - border-left-color: $brand-primary; - } - } - .wizard-step-visited { - a { - color: $link-color; - } - } -} diff --git a/theme/styles/web/sass/ui_resources/atlas_ui_resources/layouts/_layout-atlas-phone.scss b/theme/styles/web/sass/ui_resources/atlas_ui_resources/layouts/_layout-atlas-phone.scss deleted file mode 100644 index f9d6e9d..0000000 --- a/theme/styles/web/sass/ui_resources/atlas_ui_resources/layouts/_layout-atlas-phone.scss +++ /dev/null @@ -1,16 +0,0 @@ -/* ========================================================================== - Atlas layout - - Extra styling for phone layouts -========================================================================== */ -.layout-atlas-phone { - .region-topbar { - min-height: $m-header-height; - border-style: none; - background-color: $m-header-bg; - - &::before { - display: none; - } - } -} diff --git a/theme/styles/web/sass/ui_resources/atlas_ui_resources/layouts/_layout-atlas-responsive.scss b/theme/styles/web/sass/ui_resources/atlas_ui_resources/layouts/_layout-atlas-responsive.scss deleted file mode 100644 index cc0f4c7..0000000 --- a/theme/styles/web/sass/ui_resources/atlas_ui_resources/layouts/_layout-atlas-responsive.scss +++ /dev/null @@ -1,154 +0,0 @@ -/* ========================================================================== - Atlas layout - - Extra styling for responsive layouts -========================================================================== */ -.layout-atlas-responsive-default { - $sidebar-width: 60px; - - @media (min-width: $screen-md) { - .mx-scrollcontainer:not(.mx-scrollcontainer-open) > .region-sidebar { - width: $sidebar-width !important; - - .mx-scrollcontainer-wrapper > .mx-navigationtree ul li { - &.mx-navigationtree-has-items:hover { - a { - background-color: $navsidebar-sub-bg; - } - - ul { - position: absolute; - z-index: 100; - top: 0; - bottom: 0; - left: $sidebar-width; - display: block; - overflow-y: auto; - min-width: 200px; - padding-top: 10px; - } - } - - &.mx-navigationtree-collapsed, - &.mx-navigationtree-has-items { - ul { - display: none; - } - } - } - } - } - - - .mx-scrollcontainer-slide { - - &.mx-scrollcontainer-open > .region-sidebar { - width: $sidebar-width !important; - } - } - - // Push aside for mobile - @media (max-width: $screen-sm-max) { - .mx-scrollcontainer-open:not(.mx-scrollcontainer-slide) { - width: 1100px; - } - - .mx-scrollcontainer-slide .toggle-btn { - display: inline-block !important; - } - } - - // Sidebar - .region-sidebar { - .toggle-btn { - width: $sidebar-width; - height: 60px; - border-color: transparent; - border-radius: 0; - background: transparent; - } - - .mx-scrollcontainer-wrapper > .mx-navigationtree { - .navbar-inner > ul > li { - & > a { - height: $sidebar-width; - // Glyph icon - .glyphicon { - display: flex; - align-items: center; - justify-content: center; - width: 40px; - height: 40px; - margin-left: -5px; - padding: 10px; - border-radius: 3px; - } - - &.active { - .glyphicon { - background: $brand-primary; - } - } - } - } - } - } - - // Topbar - .region-topbar { - } -} - -// Topbar variant -.layout-atlas-responsive-topbar { - .mx-scrollcontainer-slide, - .mx-scrollcontainer-push { - &:not(.mx-scrollcontainer-open) > .region-sidebar { - visibility: hidden; - } - } -} - -// All responsive layouts -.layout-atlas-responsive-default, -.layout-atlas-responsive-topbar { - // Topbar - .region-topbar { - .toggle-btn { - display: none; - - @media (max-width: $screen-sm-max) { - display: inline-block; - } - } - } - - .mx-scrollcontainer-slide { - &:not(.mx-scrollcontainer-open) > .region-sidebar { - overflow: hidden; - } - - &.mx-scrollcontainer-open > .region-sidebar { - - & > .mx-scrollcontainer-wrapper { - position: relative; - } - } - - .region-sidebar > .mx-scrollcontainer-wrapper { - z-index: 2; - background-color: inherit; - } - } -} - -// Fix Safari issue of sidebar disappearing -.profile-tablet { - .mx-scrollcontainer:not(.mx-scrollcontainer-open) > .region-sidebar { - overflow-y: hidden; - - .mx-scrollcontainer-wrapper { - overflow: visible; - } - } -} diff --git a/theme/styles/web/sass/ui_resources/atlas_ui_resources/layouts/_layout-atlas-tablet.scss b/theme/styles/web/sass/ui_resources/atlas_ui_resources/layouts/_layout-atlas-tablet.scss deleted file mode 100644 index dfa318e..0000000 --- a/theme/styles/web/sass/ui_resources/atlas_ui_resources/layouts/_layout-atlas-tablet.scss +++ /dev/null @@ -1,8 +0,0 @@ -/* ========================================================================== - Atlas layout - - Extra styling for tablet layouts -========================================================================== */ -.layout-atlas-tablet { - // tablet -} diff --git a/theme/styles/web/sass/ui_resources/atlas_ui_resources/layouts/_layout-atlas.scss b/theme/styles/web/sass/ui_resources/atlas_ui_resources/layouts/_layout-atlas.scss deleted file mode 100644 index 150f73d..0000000 --- a/theme/styles/web/sass/ui_resources/atlas_ui_resources/layouts/_layout-atlas.scss +++ /dev/null @@ -1,111 +0,0 @@ -/* ========================================================================== - Atlas layout - - The core stucture of all atlas layouts -========================================================================== */ -.layout-atlas { - // Toggle button - .toggle-btn > .glyphicon { - margin: 0; - } - - // Sidebar - .region-sidebar { - background-color: $navsidebar-bg; - - .mx-navigationtree .navbar-inner > ul > li > a { - padding: 0 15px; - - .glyphicon { - margin-right: 10px; - } - } - .toggle-btn { - border-color: transparent; - border-radius: 0; - background: transparent; - } - } - - // Topbar - .region-topbar { - position: relative; - z-index: 1; // Show dropshadow - min-height: $topbar-minimalheight; - border-bottom: 1px solid $navtopbar-border-color; - background-color: $navtopbar-bg; - box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.14); - - &::before { - z-index: 1; - display: block; - width: 100%; - height: 4px; - content: ""; - background-color: $brand-primary; - } - // Topbar Content - .topbar-content { - display: flex; - align-items: center; - min-height: $topbar-minimalheight; - } - - // Toggle btn - .toggle-btn { - margin-right: 15px; - padding: 5px; - } - - // For your company, product, or project name - .navbar-brand { - display: inline-block; - // reset bootstrap - float: none; - height: auto; - padding: 0; - line-height: inherit; - - img { - display: inline-block; - @if $brand-logo !=false { - width: 0; - height: 0; - padding: ($brand-logo-height / 2) ($brand-logo-width / 2); - background-image: url($brand-logo); - background-repeat: no-repeat; - background-position: left center; - background-size: $brand-logo-width; - } @else { - width: auto; - height: $brand-logo-height; - } - } - - a { - margin-left: 5px; - color: $navbar-brand-name; - font-size: 20px; - - &:hover, - &:focus { - text-decoration: none; - } - } - } - - .mx-navbar { - display: inline-block; - margin-left: $gutter-size; - vertical-align: middle; - background: transparent; - - & > .mx-navbar-item { - & > a { - margin-top: 5px; - padding: 0 20px; - } - } - } - } -} diff --git a/theme/tsconfig.json b/theme/tsconfig.json deleted file mode 100644 index d4829e8..0000000 --- a/theme/tsconfig.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "compilerOptions": { - "baseUrl": "./", - "module": "es2015", - "target": "esnext", - "typeRoots": [ - "./node_modules/@types" - ], - "types": [ - "react-native", - "react-native-device-info" - ], - "paths": { - "react-native": [ - "./node_modules/@types/react-native" - ], - "react-native-device-info": [ - "./node_modules/react-native-device-info/lib/typescript" - ] - }, - "lib": [ - "es2017" - ], - "noEmitOnError": true, - "sourceMap": false, - "allowSyntheticDefaultImports": true, - "esModuleInterop": true, - "removeComments": false, - "allowJs": true, - "checkJs": true, - "declaration": false, - "noLib": false, - "watch": false, - "forceConsistentCasingInFileNames": true, - "noFallthroughCasesInSwitch": true, - "strict": true, - "strictFunctionTypes": false, - "skipLibCheck": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "moduleResolution": "node", - "outDir": "./styles/native/js", - "newLine": "CRLF" - }, - "include": [ - "./styles/native/**/*.ts" - ] -} diff --git a/theme/web/custom-variables.scss b/theme/web/custom-variables.scss new file mode 100644 index 0000000..04a84ce --- /dev/null +++ b/theme/web/custom-variables.scss @@ -0,0 +1,719 @@ +// +// ██████╗ █████╗ ███████╗██╗ ██████╗ +// ██╔══██╗██╔══██╗██╔════╝██║██╔════╝ +// ██████╔╝███████║███████╗██║██║ +// ██╔══██╗██╔══██║╚════██║██║██║ +// ██████╔╝██║ ██║███████║██║╚██████╗ +// ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═════╝ +// + +//== Gray Shades +//## Different gray shades to be used for our variables and components +$gray-darker: #0a1325; +$gray-dark: #474e5c; +$gray: #787d87; +$gray-light: #a9acb3; +$gray-primary: #e7e7e9; +$gray-lighter: #f8f8f8; + +//== Step 1: Brand Colors +$brand-default: $gray-primary; +$brand-primary: #264ae5; +$brand-success: #3cb33d; +$brand-warning: #eca51c; +$brand-danger: #e33f4e; + +$brand-logo: false; +$brand-logo-height: 32px; +$brand-logo-width: 32px; // Only used for CSS brand logo + +//== Step 2: UI Customization + +// Default Font Size & Color +$font-size-default: 14px; +$font-color-default: #0a1325; + +// Global Border Color +$border-color-default: #ced0d3; +$border-radius-default: 4px; + +// Topbar +$topbar-bg: #020557; +$topbar-minimalheight: 48px; +$topbar-border-color: $border-color-default; + +// Sidebar +$sidebar-bg: #24276c; + +// Topbar mobile +$m-header-height: 45px; +$m-header-bg: $topbar-bg; +$m-header-color: #fff; +$m-header-title-size: 16px; + +// Navbar Brand Name / For your company, product, or project name (used in layouts/base/) +$navbar-brand-name: #fff; + +// Background Colors +// Backgrounds +$bg-color: #f8f8f8; +$bg-color-secondary: #fff; + +// Default Link Color +$link-color: $brand-primary; +$link-hover-color: darken($link-color, 15%); + +// +// █████╗ ██████╗ ██╗ ██╗ █████╗ ███╗ ██╗ ██████╗███████╗██████╗ +// ██╔══██╗██╔══██╗██║ ██║██╔══██╗████╗ ██║██╔════╝██╔════╝██╔══██╗ +// ███████║██║ ██║██║ ██║███████║██╔██╗ ██║██║ █████╗ ██║ ██║ +// ██╔══██║██║ ██║╚██╗ ██╔╝██╔══██║██║╚██╗██║██║ ██╔══╝ ██║ ██║ +// ██║ ██║██████╔╝ ╚████╔╝ ██║ ██║██║ ╚████║╚██████╗███████╗██████╔╝ +// ╚═╝ ╚═╝╚═════╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝╚══════╝╚═════╝ +// + +//== Typography +//## Change your font family, weight, line-height, headings and more (used in components/typography) + +// Font Family Import (Used for google font plugin in theme creater) +$font-family-import: "resources/fonts/open-sans/open-sans.css"; + +// Font Family / False = fallback from Bootstrap (Helvetica Neue) +$font-family-base: "Open Sans", sans-serif; + +// Font Sizes +$font-size-large: 18px; +$font-size-small: 12px; + +// Font Weights +$font-weight-light: 100; +$font-weight-normal: normal; +$font-weight-semibold: 600; +$font-weight-bold: bold; + +// Font Size Headers +$font-size-h1: 31px; +$font-size-h2: 26px; +$font-size-h3: 24px; +$font-size-h4: 18px; +$font-size-h5: $font-size-default; +$font-size-h6: 12px; + +// Font Weight Headers +$font-weight-header: $font-weight-semibold; + +// Line Height +$line-height-base: 1.428571429; + +// Spacing +$font-header-margin: 0 0 8px 0; + +// Text Colors +$font-color-detail: #6c717e; +$font-color-header: #0a1325; + +//== Navigation +//## Used in components/navigation + +// Default Navigation styling +$navigation-item-height: unset; +$navigation-item-padding: 8px; + +$navigation-font-size: 14px; +$navigation-sub-font-size: $font-size-small; +$navigation-glyph-size: 20px; // For glyphicons that you can select in the Mendix Modeler + +$navigation-color: #fff; +$navigation-color-hover: #fff; +$navigation-color-active: #fff; + +$navigation-sub-color: #fff; +$navigation-sub-color-hover: #fff; +$navigation-sub-color-active: #fff; + +// Navigation Sidebar +$navsidebar-bg: $sidebar-bg; +$navsidebar-bg-hover: darken($navsidebar-bg, 10%); +$navsidebar-bg-active: darken($navsidebar-bg, 10%); + +$navsidebar-sub-bg: $navsidebar-bg-hover; +$navsidebar-sub-bg-hover: $navsidebar-bg; +$navsidebar-sub-bg-active: $navsidebar-bg; + +$navsidebar-border-color: $navsidebar-bg-hover; + +$navsidebar-font-size: $font-size-default; +$navsidebar-sub-font-size: $font-size-small; +$navsidebar-glyph-size: 20px; // For glyphicons that you can select in the Mendix Modeler + +$navsidebar-color: #fff; +$navsidebar-color-hover: #fff; +$navsidebar-color-active: #fff; + +$navsidebar-sub-color: #fff; +$navsidebar-sub-color-hover: #fff; +$navsidebar-sub-color-active: #fff; + +$navsidebar-width-closed: 52px; +$navsidebar-width-open: 232px; + +// Navigation topbar +$navtopbar-font-size: $font-size-default; +$navtopbar-sub-font-size: $font-size-small; +$navtopbar-glyph-size: 1.2em; // For glyphicons that you can select in the Mendix Modeler + +$navtopbar-bg: $topbar-bg; +$navtopbar-bg-hover: mix($topbar-bg, white, 85%); +$navtopbar-bg-active: mix($topbar-bg, white, 85%); +$navtopbar-color: #fff; +$navtopbar-color-hover: $navtopbar-color; +$navtopbar-color-active: $navtopbar-color; + +$navtopbar-sub-bg: $topbar-bg; +$navtopbar-sub-bg-hover: $navtopbar-bg-hover; +$navtopbar-sub-bg-active: $navtopbar-bg-hover; +$navtopbar-sub-color: #fff; +$navtopbar-sub-color-hover: #fff; +$navtopbar-sub-color-active: #fff; + +//## Used in layouts/base +$navtopbar-border-color: $topbar-border-color; + +//== Form +//## Used in components/inputs + +// Values that can be used default | lined +$form-input-style: default; + +// Form Label +$form-label-color: $font-color-default; +$form-label-size: $font-size-default; +$form-label-weight: $font-weight-semibold; +$form-label-gutter: 8px; + +// Form Input dimensions +$form-input-height: auto; +$form-input-padding-y: 8px; +$form-input-padding-x: 8px; +$form-input-static-padding-y: 8px; +$form-input-static-padding-x: 0; +$form-input-font-size: $form-label-size; +$form-input-line-height: $line-height-base; +$form-input-border-radius: $border-radius-default; + +// Form Input styling +$form-input-bg: #fff; +$form-input-bg-focus: #fff; +$form-input-bg-hover: $gray-primary; +$form-input-bg-disabled: $bg-color; +$form-input-color: $font-color-default; +$form-input-focus-color: $form-input-color; +$form-input-disabled-color: #9da1a8; +$form-input-placeholder-color: #6c717c; +$form-input-border-color: $gray-primary; +$form-input-border-focus-color: $brand-primary; + +// Form Input Static styling +$form-input-static-border-color: $gray-primary; + +// Form Group +$form-group-margin-bottom: 16px; +$form-group-gutter: 16px; + +//== Buttons +//## Define background-color, border-color and text. Used in components/buttons + +// Default button style +$btn-font-size: 14px; +$btn-bordered: false; // Default value false, set to true if you want this effect +$btn-border-radius: $border-radius-default; + +// Button Background Color +$btn-default-bg: #fff; +$btn-primary-bg: $brand-primary; +$btn-success-bg: $brand-success; +$btn-warning-bg: $brand-warning; +$btn-danger-bg: $brand-danger; + +// Button Border Color +$btn-default-border-color: $gray-primary; +$btn-primary-border-color: $brand-primary; +$btn-success-border-color: $brand-success; +$btn-warning-border-color: $brand-warning; +$btn-danger-border-color: $brand-danger; + +// Button Text Color +$btn-default-color: $brand-primary; +$btn-primary-color: #fff; +$btn-success-color: #fff; +$btn-warning-color: #fff; +$btn-danger-color: #fff; + +// Button Icon Color +$btn-default-icon-color: $gray; + +// Button Background Color +$btn-default-bg-hover: $btn-default-border-color; +$btn-primary-bg-hover: mix($btn-primary-bg, black, 80%); +$btn-success-bg-hover: mix($btn-success-bg, black, 80%); +$btn-warning-bg-hover: mix($btn-warning-bg, black, 80%); +$btn-danger-bg-hover: mix($btn-danger-bg, black, 80%); +$btn-link-bg-hover: $gray-lighter; + +//== Header blocks +//## Define look and feel over multible building blocks that serve as header + +$header-min-height: 240px; +$header-bg-color: $brand-primary; +$header-bgimage-filter: brightness(60%); +$header-text-color: #fff; +$header-text-color-detail: rgba(0, 0, 0, 0.2); + +// +// ███████╗██╗ ██╗██████╗ ███████╗██████╗ ████████╗ +// ██╔════╝╚██╗██╔╝██╔══██╗██╔════╝██╔══██╗╚══██╔══╝ +// █████╗ ╚███╔╝ ██████╔╝█████╗ ██████╔╝ ██║ +// ██╔══╝ ██╔██╗ ██╔═══╝ ██╔══╝ ██╔══██╗ ██║ +// ███████╗██╔╝ ██╗██║ ███████╗██║ ██║ ██║ +// ╚══════╝╚═╝ ╚═╝╚═╝ ╚══════╝╚═╝ ╚═╝ ╚═╝ +// + +//== Color variations +//## These variations are used to support several other variables and components + +// Color variations +$color-default-darker: mix($brand-default, black, 60%); +$color-default-dark: mix($brand-default, black, 70%); +$color-default-light: mix($brand-default, white, 40%); +$color-default-lighter: mix($brand-default, white, 20%); + +$color-primary-darker: mix($brand-primary, black, 60%); +$color-primary-dark: mix($brand-primary, black, 70%); +$color-primary-light: mix($brand-primary, white, 40%); +$color-primary-lighter: mix($brand-primary, white, 20%); + +$color-success-darker: mix($brand-success, black, 60%); +$color-success-dark: mix($brand-success, black, 70%); +$color-success-light: mix($brand-success, white, 40%); +$color-success-lighter: mix($brand-success, white, 20%); + +$color-warning-darker: mix($brand-warning, black, 60%); +$color-warning-dark: mix($brand-warning, black, 70%); +$color-warning-light: mix($brand-warning, white, 40%); +$color-warning-lighter: mix($brand-warning, white, 20%); + +$color-danger-darker: mix($brand-danger, black, 60%); +$color-danger-dark: mix($brand-danger, black, 70%); +$color-danger-light: mix($brand-danger, white, 40%); +$color-danger-lighter: mix($brand-danger, white, 20%); + +$brand-gradient: linear-gradient(to right top, #264ae5, #2239c5, #1b29a6, #111988, #03096c); + +//== Grids +//## Used for Datagrid, Templategrid, Listview & Tables (see components folder) + +// Default Border Colors +$grid-border-color: $border-color-default; + +// Spacing +// Default +$grid-padding-top: 16px; +$grid-padding-right: 16px; +$grid-padding-bottom: 16px; +$grid-padding-left: 16px; + +// Listview +$listview-padding-top: 16px; +$listview-padding-right: 16px; +$listview-padding-bottom: 16px; +$listview-padding-left: 16px; + +// Background Colors +$grid-bg: transparent; +$grid-bg-header: transparent; // Grid Headers +$grid-bg-hover: mix($grid-border-color, #fff, 20%); +$grid-bg-selected: mix($grid-border-color, #fff, 30%); +$grid-bg-selected-hover: mix($grid-border-color, #fff, 50%); + +// Striped Background Color +$grid-bg-striped: mix($grid-border-color, #fff, 10%); + +// Background Footer Color +$grid-footer-bg: $gray-primary; + +// Text Color +$grid-selected-color: $font-color-default; + +// Paging Colors +$grid-paging-bg: transparent; +$grid-paging-bg-hover: transparent; +$grid-paging-border-color: transparent; +$grid-paging-border-color-hover: transparent; +$grid-paging-color: $gray-light; +$grid-paging-color-hover: $brand-primary; + +//== Tabs +//## Default variables for Tab Container Widget (used in components/tabcontainer) + +// Text Color +$tabs-color: $font-color-detail; +$tabs-color-active: $font-color-default; +$tabs-lined-color-active: $font-color-default; + +$tabs-lined-border-width: 3px; + +// Border Color +$tabs-border-color: $border-color-default; +$tabs-lined-border-color: $brand-primary; + +// Background Color +$tabs-bg: transparent; +$tabs-bg-pills: #e7e7e9; +$tabs-bg-hover: lighten($tabs-border-color, 5); +$tabs-bg-active: $brand-primary; + +//== Modals +//## Default Mendix Modal, Blocking Modal and Login Modal (used in components/modals) + +// Background Color +$modal-header-bg: transparent; + +// Border Color +$modal-header-border-color: $border-color-default; + +// Text Color +$modal-header-color: $font-color-default; + +//== Dataview +//## Default variables for Dataview Widget (used in components/dataview) + +// Controls +$dataview-controls-bg: transparent; +$dataview-controls-border-color: $border-color-default; + +// Empty Message +$dataview-emptymessage-bg: $bg-color; +$dataview-emptymessage-color: $font-color-default; + +//== Alerts +//## Default Bootstrap alerts, not a widget in the Modeler (used in components/alerts) + +// Background Color +$alert-success-bg: $color-success-lighter; +$alert-warning-bg: $color-warning-lighter; +$alert-danger-bg: $color-danger-lighter; + +// Text Color +$alert-success-color: $color-success-darker; +$alert-warning-color: $color-warning-darker; +$alert-danger-color: $color-danger-darker; + +// Border Color +$alert-success-border-color: $color-success-dark; +$alert-warning-border-color: $color-warning-dark; +$alert-danger-border-color: $color-danger-dark; + +//== Wizard + +$wizard-step-height: 48px; +$wizard-step-number-size: 64px; +$wizard-step-number-font-size: $font-size-h3; + +//Wizard step states +$wizard-default-bg: #fff; +$wizard-default-color: #fff; +$wizard-default-step-color: $font-color-default; +$wizard-default-border-color: $border-color-default; + +$wizard-active-bg: $color-primary-lighter; +$wizard-active-color: $color-primary-dark; +$wizard-active-step-color: $color-primary-dark; +$wizard-active-border-color: $color-primary-dark; + +$wizard-visited-bg: $color-success-lighter; +$wizard-visited-color: $color-success-dark; +$wizard-visited-step-color: $color-success-dark; +$wizard-visited-border-color: $color-success-dark; + +//== Labels +//## Default Bootstrap Labels, not a widget in the Modeler (used in components/labels) + +// Background Color +$label-default-bg: $brand-default; +$label-primary-bg: $brand-primary; +$label-success-bg: $brand-success; +$label-warning-bg: $brand-warning; +$label-danger-bg: $brand-danger; + +// Border Color +$label-default-border-color: $brand-default; +$label-primary-border-color: $brand-primary; +$label-success-border-color: $brand-success; +$label-warning-border-color: $brand-warning; +$label-danger-border-color: $brand-danger; + +// Text Color +$label-default-color: $font-color-default; +$label-primary-color: #fff; +$label-success-color: #fff; +$label-warning-color: #fff; +$label-danger-color: #fff; + +//== Groupbox +//## Default variables for Groupbox Widget (used in components/groupbox) + +// Background Color +$groupbox-default-bg: $gray-primary; +$groupbox-primary-bg: $brand-primary; +$groupbox-success-bg: $brand-success; +$groupbox-warning-bg: $brand-warning; +$groupbox-danger-bg: $brand-danger; +$groupbox-white-bg: #fff; + +// Text Color +$groupbox-default-color: $font-color-default; +$groupbox-primary-color: #fff; +$groupbox-success-color: #fff; +$groupbox-warning-color: #fff; +$groupbox-danger-color: #fff; +$groupbox-white-color: $font-color-default; + +//== Callout (groupbox) Colors +//## Extended variables for Groupbox Widget (used in components/groupbox) + +// Text and Border Color +$callout-default-color: $font-color-default; +$callout-success-color: $brand-success; +$callout-warning-color: $brand-warning; +$callout-danger-color: $brand-danger; + +// Background Color +$callout-default-bg: $color-default-lighter; +$callout-success-bg: $color-success-lighter; +$callout-warning-bg: $color-warning-lighter; +$callout-danger-bg: $color-danger-lighter; + +//== Timeline +//## Extended variables for Timeline Widget +// Colors +$timeline-icon-color: $brand-primary; +$timeline-border-color: $border-color-default; +$timeline-event-time-color: $brand-primary; + +// Sizes +$timeline-icon-size: 18px; +$timeline-image-size: 36px; + +//Timeline grouping +$timeline-grouping-size: 120px; +$timeline-grouping-border-radius: 30px; +$timeline-grouping-border-color: $timeline-border-color; + +//== Accordions +//## Extended variables for Accordion Widget + +// Default +$accordion-header-default-bg: $bg-color-secondary; +$accordion-header-default-bg-hover: $bg-color; +$accordion-header-default-color: $font-color-header; +$accordion-default-border-color: $border-color-default; + +$accordion-bg-striped: $grid-bg-striped; +$accordion-bg-striped-hover: $grid-bg-selected; + +// Semantic background colors +$accordion-header-primary-bg: $btn-primary-bg; +$accordion-header-secondary-bg: $btn-default-bg; +$accordion-header-success-bg: $btn-success-bg; +$accordion-header-warning-bg: $btn-warning-bg; +$accordion-header-danger-bg: $btn-danger-bg; + +$accordion-header-primary-bg-hover: $btn-primary-bg-hover; +$accordion-header-secondary-bg-hover: $btn-default-bg-hover; +$accordion-header-success-bg-hover: $btn-success-bg-hover; +$accordion-header-warning-bg-hover: $btn-warning-bg-hover; +$accordion-header-danger-bg-hover: $btn-danger-bg-hover; + +// Semantic text colors +$accordion-header-primary-color: $btn-primary-color; +$accordion-header-secondary-color: $btn-default-color; +$accordion-header-success-color: $btn-success-color; +$accordion-header-warning-color: $btn-warning-color; +$accordion-header-danger-color: $btn-danger-color; + +// Semantic border colors +$accordion-primary-border-color: $btn-primary-border-color; +$accordion-secondary-border-color: $btn-default-border-color; +$accordion-success-border-color: $btn-success-border-color; +$accordion-warning-border-color: $btn-warning-border-color; +$accordion-danger-border-color: $btn-danger-border-color; + +//== Spacing +//## Advanced layout options (used in base/mixins/default-spacing) + +// Smallest spacing +$spacing-smallest: 2px; + +// Smaller spacing +$spacing-smaller: 4px; + +// Small spacing +$spacing-small: 8px; + +// Medium spacing +$spacing-medium: 16px; +$t-spacing-medium: 16px; +$m-spacing-medium: 16px; + +// Large spacing +$spacing-large: 24px; +$t-spacing-large: 24px; +$m-spacing-large: 16px; + +// Larger spacing +$spacing-larger: 32px; + +// Largest spacing +$spacing-largest: 48px; + +// Layout spacing +$layout-spacing-top: 24px; +$layout-spacing-right: 24px; +$layout-spacing-bottom: 24px; +$layout-spacing-left: 24px; + +$t-layout-spacing-top: 24px; +$t-layout-spacing-right: 24px; +$t-layout-spacing-bottom: 24px; +$t-layout-spacing-left: 24px; + +$m-layout-spacing-top: 16px; +$m-layout-spacing-right: 16px; +$m-layout-spacing-bottom: 16px; +$m-layout-spacing-left: 16px; + +// Combined layout spacing +$layout-spacing: $layout-spacing-top $layout-spacing-right $layout-spacing-bottom $layout-spacing-left; +$m-layout-spacing: $m-layout-spacing-top $m-layout-spacing-right $m-layout-spacing-bottom $m-layout-spacing-left; +$t-layout-spacing: $t-layout-spacing-top $t-layout-spacing-right $t-layout-spacing-bottom $t-layout-spacing-left; + +// Gutter size +$gutter-size: 8px; + +//== Tables +//## Table spacing options (used in components/tables) + +$padding-table-cell-top: 8px; +$padding-table-cell-bottom: 8px; +$padding-table-cell-left: 8px; +$padding-table-cell-right: 8px; + +//== Media queries breakpoints +//## Define the breakpoints at which your layout will change, adapting to different screen sizes. + +$screen-xs: 480px; +$screen-sm: 576px; +$screen-md: 768px; +$screen-lg: 992px; +$screen-xl: 1200px; + +// So media queries don't overlap when required, provide a maximum (used for max-width) +$screen-xs-max: calc(#{$screen-sm} - 1px); +$screen-sm-max: calc(#{$screen-md} - 1px); +$screen-md-max: calc(#{$screen-lg} - 1px); +$screen-lg-max: calc(#{$screen-xl} - 1px); + +//== Settings +//## Enable or disable your desired framework features +// Use of !important +$important-flex: true; // ./base/flex.scss +$important-spacing: true; // ./base/spacing.scss +$important-helpers: true; // ./helpers/helperclasses.scss + +//===== Legacy variables ===== + +//== Step 1: Brand Colors +$brand-inverse: #24276c; +$brand-info: #0086d9; + +//== Step 2: UI Customization + +//== Buttons +//## Define background-color, border-color and text. Used in components/buttons + +// Button Background Color +$btn-inverse-bg: $brand-inverse; +$btn-info-bg: $brand-info; + +// Button Border Color +$btn-inverse-border-color: $brand-inverse; +$btn-info-border-color: $brand-info; + +// Button Text Color +$btn-inverse-color: #fff; +$btn-info-color: #fff; + +// Button Background Color +$btn-inverse-bg-hover: mix($btn-inverse-bg, white, 80%); +$btn-info-bg-hover: mix($btn-info-bg, black, 80%); + +//== Color variations +//## These variations are used to support several other variables and components + +// Color variations +$color-inverse-darker: mix($brand-inverse, black, 60%); +$color-inverse-dark: mix($brand-inverse, black, 70%); +$color-inverse-light: mix($brand-inverse, white, 60%); +$color-inverse-lighter: mix($brand-inverse, white, 20%); + +$color-info-darker: mix($brand-info, black, 60%); +$color-info-dark: mix($brand-info, black, 70%); +$color-info-light: mix($brand-info, white, 60%); +$color-info-lighter: mix($brand-info, white, 20%); + +//== Alerts +//## Default Bootstrap alerts, not a widget in the Modeler (used in components/alerts) + +// Background Color +$alert-info-bg: $color-primary-lighter; + +// Text Color +$alert-info-color: $color-primary-darker; + +// Border Color +$alert-info-border-color: $color-primary-dark; + +//== Labels +//## Default Bootstrap Labels, not a widget in the Modeler (used in components/labels) + +// Background Color +$label-info-bg: $brand-info; +$label-inverse-bg: $brand-inverse; + +// Border Color +$label-info-border-color: $brand-info; +$label-inverse-border-color: $brand-inverse; + +// Text Color +$label-info-color: #fff; +$label-inverse-color: #fff; + +//== Groupbox +//## Default variables for Groupbox Widget (used in components/groupbox) + +// Background Color +$groupbox-inverse-bg: $brand-inverse; +$groupbox-info-bg: $brand-info; + +// Text Color +$groupbox-inverse-color: #fff; +$groupbox-info-color: #fff; + +//== Callout (groupbox) Colors +//## Extended variables for Groupbox Widget (used in components/groupbox) + +// Text and Border Color +$callout-info-color: $brand-info; + +// Background Color +$callout-info-bg: $color-info-lighter; diff --git a/theme/web/exclusion-variables.scss b/theme/web/exclusion-variables.scss new file mode 100644 index 0000000..97e8207 --- /dev/null +++ b/theme/web/exclusion-variables.scss @@ -0,0 +1,80 @@ +//== Core style exclusion +$exclude-bootstrap: false; +$exclude-mxui: false; +$exclude-animations: false; +$exclude-flex: false; +$exclude-spacing: false; +$exclude-base: false; +$exclude-login: false; + +//== Widget style exclusion +$exclude-accordion: false; +$exclude-accordion-helpers: false; +$exclude-background-helpers: false; +$exclude-badge: false; +$exclude-badge-button: false; +$exclude-badge-button-helpers: false; +$exclude-barcode-scanner: false; +$exclude-button: false; +$exclude-button-helpers: false; +$exclude-check-box: false; +$exclude-custom-dijit-widget: false; +$exclude-custom-switch: false; +$exclude-data-grid: false; +$exclude-data-grid-helpers: false; +$exclude-data-view: false; +$exclude-data-picker: false; +$exclude-gallery: false; +$exclude-gallery-helpers: false; +$exclude-glyphicon: false; +$exclude-grid: false; +$exclude-group-box: false; +$exclude-group-box-helpers: false; +$exclude-header: false; +$exclude-helper-classes: false; +$exclude-input: false; +$exclude-image-helpers: false; +$exclude-label: false; +$exclude-label-helpers: false; +$exclude-layout-grid: false; +$exclude-list-view: false; +$exclude-list-view-helpers: false; +$exclude-modal: false; +$exclude-navigation-bar: false; +$exclude-navigation-bar-helpers: false; +$exclude-navigation-list: false; +$exclude-navigation-tree: false; +$exclude-navigation-tree-helpers: false; +$exclude-pagination: false; +$exclude-pop-up-menu: false; +$exclude-progress: false; +$exclude-progress-bar: false; +$exclude-progress-bar-helpers: false; +$exclude-progress-circle: false; +$exclude-progress-circle-helpers: false; +$exclude-radio-button: false; +$exclude-range-slider: false; +$exclude-range-slider-helpers: false; +$exclude-rating: false; +$exclude-rating-helpers: false; +$exclude-simple-menu-bar: false; +$exclude-simple-menu-bar-helpers: false; +$exclude-slider: false; +$exclude-slider-helpers: false; +$exclude-table: false; +$exclude-table-helpers: false; +$exclude-tab-container: false; +$exclude-tab-container-helpers: false; +$exclude-template-grid: false; +$exclude-template-grid-helpers: false; +$exclude-timeline: false; +$exclude-tree-node: false; +$exclude-tree-node-helpers: false; +$exclude-typography: false; +$exclude-typography-helpers: false; + +//== Layouts style exclusion +$exclude-layout-atlas: false; +$exclude-layout-atlas-phone: false; +$exclude-layout-atlas-responsive: false; +$exclude-layout-atlas-tablet: false; diff --git a/theme/web/login-with-mendixsso-automatically.html b/theme/web/login-with-mendixsso-automatically.html new file mode 100644 index 0000000..bdf4655 --- /dev/null +++ b/theme/web/login-with-mendixsso-automatically.html @@ -0,0 +1,17 @@ + + + + + + + + + diff --git a/theme/web/login-with-mendixsso-button.html b/theme/web/login-with-mendixsso-button.html new file mode 100644 index 0000000..a1b8c1c --- /dev/null +++ b/theme/web/login-with-mendixsso-button.html @@ -0,0 +1,88 @@ + + + + + Login + + + + {{themecss}} {{appicons}} {{manifest}} {{startupimages}} + + + +
    +
    +
    +
    +
    +
    +

    Sign in

    +
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    + + +
    +
    + +
    + +
    +
    Or sign in with
    +
    +
    + + + + + + +
    +
    + +
    + + + + + + diff --git a/theme/web/login.html b/theme/web/login.html new file mode 100644 index 0000000..dc487c1 --- /dev/null +++ b/theme/web/login.html @@ -0,0 +1,78 @@ + + + + + Login + + + + {{themecss}} {{appicons}} {{manifest}} {{startupimages}} + + + +
    +
    +
    +
    +
    +
    +

    Sign in

    +
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    + + +
    +
    + +
    + +
    +
    + +
    + + + + + + diff --git a/theme/logo.png b/theme/web/logo.png similarity index 100% rename from theme/logo.png rename to theme/web/logo.png diff --git a/theme/styles/web/sass/app/_custom.scss b/theme/web/main.scss similarity index 100% rename from theme/styles/web/sass/app/_custom.scss rename to theme/web/main.scss diff --git a/theme/manifest-overrides.webmanifest b/theme/web/manifest-overrides.webmanifest similarity index 100% rename from theme/manifest-overrides.webmanifest rename to theme/web/manifest-overrides.webmanifest diff --git a/theme/robots.txt b/theme/web/robots.txt similarity index 100% rename from theme/robots.txt rename to theme/web/robots.txt diff --git a/theme/web/settings.json b/theme/web/settings.json new file mode 100644 index 0000000..9dbd93b --- /dev/null +++ b/theme/web/settings.json @@ -0,0 +1,3 @@ +{ + "cssFiles": ["theme.compiled.css"] +} diff --git a/theme_old/.prettierrc b/theme_old/.prettierrc deleted file mode 100644 index a46f75f..0000000 --- a/theme_old/.prettierrc +++ /dev/null @@ -1,11 +0,0 @@ -{ - "singleQuote": false, - "printWidth": 120, - "proseWrap": "always", - "tabWidth": 4, - "useTabs": false, - "trailingComma": "all", - "bracketSpacing": true, - "semi": true, - "arrowParens": "avoid" -} diff --git a/theme_old/.stylelintrc b/theme_old/.stylelintrc deleted file mode 100644 index 62c30a6..0000000 --- a/theme_old/.stylelintrc +++ /dev/null @@ -1,32 +0,0 @@ -{ - "extends": "stylelint-config-standard", - "rules": { - "indentation": 4, - "string-quotes": "double", - "no-duplicate-selectors": true, - "color-hex-case": "upper", - "color-hex-length": "short", - "selector-combinator-space-after": "always", - "selector-attribute-operator-space-before": "always", - "selector-attribute-operator-space-after": "always", - "selector-attribute-brackets-space-inside": "always", - "declaration-block-trailing-semicolon": "always", - "declaration-colon-space-before": "never", - "declaration-colon-space-after": "always", - "number-leading-zero": "never", - "function-url-quotes": "always", - "font-family-name-quotes": "always-unless-keyword", - "comment-whitespace-inside": "always", - "comment-empty-line-before": "always", - "rule-empty-line-before": "always-multi-line", - "selector-pseudo-element-colon-notation": "single", - "media-feature-range-operator-space-after": "always", - "media-feature-colon-space-after": "always", - "no-descending-specificity": null, - "declaration-colon-newline-after": null, - "value-list-comma-newline-after": null, - "at-rule-no-unknown": [true, { - "ignoreAtRules": ["function", "if", "each", "include", "mixin"] - }] - } -} diff --git a/theme_old/LICENSE b/theme_old/LICENSE deleted file mode 100644 index 476061e..0000000 --- a/theme_old/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2019 Mendix - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/theme_old/README.md b/theme_old/README.md deleted file mode 100644 index 91312ab..0000000 --- a/theme_old/README.md +++ /dev/null @@ -1,96 +0,0 @@ -# For Atlas 3 UI go [here](https://github.com/mendix/widgets-resources/tree/master/packages/theming/atlas) - -We are always improving our code base with new technologies. Thus we moved our new atlas 3 theme package to our [monorepo](https://github.com/mendix/widgets-resources) - -## Mendix Atlas 2 UI - -Mendix Atlas UI is the foundation of making beautiful apps with Mendix. For more information about the framework go to -[here](https://atlas.mendix.com/). - -### Useful tools -- [Compile SCSS to CSS with Calypso](https://docs.mendix.com/howto/front-end/calypso) -- [Visually update the design properties for web and native](https://jeltemx.github.io/mendix-dpt/) -- [Inspect and update styles in the Make it Native app with the React Native Debugger](https://docs.mendix.com/howto/mobile/native-debug) - -#### Structure - -Mendix is capable of creating beautiful and user-friendly UI. Our Atlas UI framework demonstrates some of its -possibilities. Here you will find a basic overview of our framework. - -``` -theme/ -├── styles/ -| ├── native/ -| | ├── ts/ // Will not be in the Atlas UI Resources module -| | ├── js/ -| | ├── app/ -| | | ├── _custom-variables.js -| | | └── _custom.js -| | ├── core/ -| |     |   ├── base/ -| |     |   ├── helpers/ -| | | ├── widgets/ -| |    |  | _variables.js -| |    |  └── manifest.json -| | ├── ui_resources/ -| |     |   └── atlas_ui_resources/ -| |     |   ├── buildingblocks/ -| |     |   └── layouts/ -| | └── main.js -| └── web/ -| ├── css/ -| │ ├── * all output files -| └── sass/ -| ├── app/ -| | ├── _custom-variables.scss -| | └── _custom.scss -| ├── core/ -|       |   ├── _legacy/ -|       |   ├── base/ -|       |   ├── helpers/ -| | ├── widgets/ -| | ├── widgetscustom/ -|      |   | _variables.scss -|      |  └── manifest.json -| ├── ui_resources/ -|       |   └── atlas_ui_resources/ -|       |   ├── buildingblocks/ -|       |   └── layouts/ -| └── main.scss -├── * index files -├── * assets -├── * settings*.json (Design Properties) -└── styles.js -``` - -#### App - -The app folder contains all custom styling. We recommend users to only use this directory for any custom styling. - -When you want to customize something, you should first check if you can accomplish your goal by changing variables. -These variables can be found in _styles/web/sass/core/variables.scss_ or _styles/native/core/variables.js_. If you want -to change any core variable, copy it to _../app/\_custom-variables.(scss|js)_ and change it there. It will then -overwrite the core variable. This will make updating Atlas UI much easier in the future. - -#### Core - -The core folder is the heart of Atlas UI. This folder includes base styling, widget styling & additional helper classes. -The core widget styling is split in to two parts. The widget folder includes the default widget styling, as it will look -out of the box. The helpers folder will include design properties and extra classes to change that default styling. - -#### UI Resources - -THe UI Resources folder will contain any styling related to Building Blocks, Page Templates and Layouts. - -Building blocks are created with Widgets. For example _cards_ or _headers_ are building blocks. A building block could -be an image, a title, and a button, assembled together into one UI block. - -Page Templates are created with Building Blocks and Widgets. Page Templates are an example of how a page could look -like. - -Layouts are created with widgets. They are mainly used for navigation or user experiences which need to be consistent -between pages. - -## License - -MIT diff --git a/theme_old/com.mendix.charts.json b/theme_old/com.mendix.charts.json deleted file mode 100644 index 0967ef4..0000000 --- a/theme_old/com.mendix.charts.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/theme_old/components.json b/theme_old/components.json deleted file mode 100644 index df42ffa..0000000 --- a/theme_old/components.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "files": { - "css": ["styles/web/css/main.css"], - "js": ["mxclientsystem/mxui/mxui.js"] - }, - "cachebust": "{{cachebust}}" -} diff --git a/theme_old/index-rtl.html b/theme_old/index-rtl.html deleted file mode 100644 index fa89bca..0000000 --- a/theme_old/index-rtl.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - Mendix - - - - {{themecss}} - {{appicons}} - {{manifest}} - {{startupimages}} - - - -
    - - - - diff --git a/theme_old/index.html b/theme_old/index.html deleted file mode 100644 index ce29e6b..0000000 --- a/theme_old/index.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - Mendix - - - - {{themecss}} - {{appicons}} - {{manifest}} - {{startupimages}} - - - - -
    - - - - - diff --git a/theme_old/login-with-sso.html b/theme_old/login-with-sso.html deleted file mode 100644 index 46c961c..0000000 --- a/theme_old/login-with-sso.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - Login - - - - {{themecss}} - {{appicons}} - {{manifest}} - {{startupimages}} - - - - -
    -
    -
    -
    -
    -
    -

    Sign in

    -
    -
    -
    -
    - -
    - - -
    -
    -
    - -
    - - -
    -
    - -
    - -
    -
    Or sign in with
    -
    -
    - - - - - - -
    -
    - -
    - - - - - - diff --git a/theme_old/login.html b/theme_old/login.html deleted file mode 100644 index aed07bc..0000000 --- a/theme_old/login.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - Login - - - - {{themecss}} - {{appicons}} - {{manifest}} - {{startupimages}} - - - - -
    -
    -
    -
    -
    -
    -

    Sign in

    -
    -
    -
    -
    - -
    - - -
    -
    -
    - -
    - - -
    -
    - -
    - -
    -
    - -
    - - - - - - diff --git a/theme_old/logo.png b/theme_old/logo.png deleted file mode 100644 index e49703b..0000000 Binary files a/theme_old/logo.png and /dev/null differ diff --git a/theme_old/manifest-overrides.webmanifest b/theme_old/manifest-overrides.webmanifest deleted file mode 100644 index 10161cd..0000000 --- a/theme_old/manifest-overrides.webmanifest +++ /dev/null @@ -1,3 +0,0 @@ -{ - "background_color": "#FFFFFF" -} diff --git a/theme_old/package.json b/theme_old/package.json deleted file mode 100644 index 15b8b35..0000000 --- a/theme_old/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "atlas-ui-framework", - "version": "2.6.3", - "description": "Mendix Atlas UI is the foundation of making beautiful apps with Mendix. For more information about the framework go to https://atlas.mendix.com.", - "main": "", - "scripts": { - "bump:patch": "node ./scripts/bump-patch.js", - "bump:minor": "node ./scripts/bump-minor.js", - "bump:major": "node ./scripts/bump-major.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/mendix/Atlas-UI-Framework.git" - }, - "author": "Mendix", - "license": "MIT", - "bugs": { - "url": "https://github.com/mendix/Atlas-UI-Framework/issues" - }, - "homepage": "https://github.com/mendix/Atlas-UI-Framework#readme", - "devDependencies": { - "@types/react-native": "^0.61.19", - "react-native-device-info": "^5.5.3" - }, - "dependencies": {} -} diff --git a/theme_old/resources/work-do-more.jpeg b/theme_old/resources/work-do-more.jpeg deleted file mode 100644 index 5aa1de2..0000000 Binary files a/theme_old/resources/work-do-more.jpeg and /dev/null differ diff --git a/theme_old/robots.txt b/theme_old/robots.txt deleted file mode 100644 index 46169db..0000000 --- a/theme_old/robots.txt +++ /dev/null @@ -1,4 +0,0 @@ -# For more information, see https://support.google.com/webmasters/answer/6062608?hl=en&ref_topic=6061961 - -User-agent: * -Disallow: diff --git a/theme_old/scripts/bump-major.js b/theme_old/scripts/bump-major.js deleted file mode 100644 index 2bb584e..0000000 --- a/theme_old/scripts/bump-major.js +++ /dev/null @@ -1,12 +0,0 @@ -const { getVersionFilePaths, readVersionFiles } = require("./lib/readFile.js"); -const { writeVersionFiles } = require("./lib/writeFile.js"); - -(() => { - const paths = getVersionFilePaths(); - const files = readVersionFiles(paths); - const versionNumbers = files.pkg.version.split("."); - const majorNumber = Number(versionNumbers[1]) + 1; - const majorVersion = majorNumber + "." + 0 + "." + 0; - files.pkg.version = files.manifest.ts.version = files.manifest.js.version = files.manifest.sass.version = majorVersion; - writeVersionFiles(files, paths); -})(); diff --git a/theme_old/scripts/bump-minor.js b/theme_old/scripts/bump-minor.js deleted file mode 100644 index e4e9ac3..0000000 --- a/theme_old/scripts/bump-minor.js +++ /dev/null @@ -1,12 +0,0 @@ -const { getVersionFilePaths, readVersionFiles } = require("./lib/readFile.js"); -const { writeVersionFiles } = require("./lib/writeFile.js"); - -(() => { - const paths = getVersionFilePaths(); - const files = readVersionFiles(paths); - const versionNumbers = files.pkg.version.split("."); - const minorNumber = Number(versionNumbers[1]) + 1; - const minorVersion = versionNumbers[0] + "." + minorNumber + "." + 0; - files.pkg.version = files.manifest.ts.version = files.manifest.js.version = files.manifest.sass.version = minorVersion; - writeVersionFiles(files, paths); -})(); diff --git a/theme_old/scripts/bump-patch.js b/theme_old/scripts/bump-patch.js deleted file mode 100644 index 52e7baa..0000000 --- a/theme_old/scripts/bump-patch.js +++ /dev/null @@ -1,12 +0,0 @@ -const { getVersionFilePaths, readVersionFiles } = require("./lib/readFile.js"); -const { writeVersionFiles } = require("./lib/writeFile.js"); - -(() => { - const paths = getVersionFilePaths(); - const files = readVersionFiles(paths); - const versionNumbers = files.pkg.version.split("."); - const patchedNumber = Number(versionNumbers[2]) + 1; - const patchedVersion = versionNumbers[0] + "." + versionNumbers[1] + "." + patchedNumber; - files.pkg.version = files.manifest.ts.version = files.manifest.js.version = files.manifest.sass.version = patchedVersion; - writeVersionFiles(files, paths); -})(); diff --git a/theme_old/scripts/lib/readFile.js b/theme_old/scripts/lib/readFile.js deleted file mode 100644 index 50f0a8c..0000000 --- a/theme_old/scripts/lib/readFile.js +++ /dev/null @@ -1,20 +0,0 @@ -const path = require("path"); - -module.exports.getVersionFilePaths = () => ({ - pkg: path.join(process.cwd(), "package.json"), - manifest: { - ts: path.join(process.cwd(), "styles", "native", "ts", "core", "manifest.json"), - js: path.join(process.cwd(), "styles", "native", "js", "core", "manifest.json"), - sass: path.join(process.cwd(), "styles", "web", "sass", "core", "manifest.json"), - }, -}); - -module.exports.readVersionFiles = paths => ({ - pkg: require(paths.pkg), - manifest: { - ts: require(paths.manifest.ts), - js: require(paths.manifest.js), - sass: require(paths.manifest.sass), - }, -}); - diff --git a/theme_old/scripts/lib/writeFile.js b/theme_old/scripts/lib/writeFile.js deleted file mode 100644 index fb35779..0000000 --- a/theme_old/scripts/lib/writeFile.js +++ /dev/null @@ -1,8 +0,0 @@ -const fs = require("fs"); - -module.exports.writeVersionFiles = (files, paths) => { - fs.writeFileSync(paths.pkg, JSON.stringify(files.pkg, null, 4)); - fs.writeFileSync(paths.manifest.js, JSON.stringify(files.manifest.js, null, 4)); - fs.writeFileSync(paths.manifest.ts, JSON.stringify(files.manifest.ts, null, 4)); - fs.writeFileSync(paths.manifest.sass, JSON.stringify(files.manifest.sass, null, 4)); -}; diff --git a/theme_old/settings-native.json b/theme_old/settings-native.json deleted file mode 100644 index d31c9b1..0000000 --- a/theme_old/settings-native.json +++ /dev/null @@ -1,1764 +0,0 @@ -{ - "designProperties": { - "Document": [ - { - "name": "Spacing top", - "type": "Dropdown", - "description": "The spacing above this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerTopSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerTopMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerTopLarger" - } - ] - }, - { - "name": "Spacing bottom", - "type": "Dropdown", - "description": "The spacing below this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerBottomSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerBottomMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerBottomLarger" - } - ] - }, - { - "name": "Spacing left", - "type": "Dropdown", - "description": "The spacing to the left of this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerLeftSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerLeftMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerLeftLarger" - } - ] - }, - { - "name": "Spacing right", - "type": "Dropdown", - "description": "The spacing to the right of this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerRightSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerRightMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerRightLarger" - } - ] - }, - { - "name": "Background color", - "type": "Dropdown", - "description": "Change the background color of the container.", - "options": [ - { - "name": "Primary", - "class": "backgroundPrimary" - }, - { - "name": "Secondary", - "class": "backgroundSecondary" - }, - { - "name": "Brand Primary", - "class": "backgroundBrandPrimary" - }, - { - "name": "Brand Success", - "class": "backgroundBrandSuccess" - }, - { - "name": "Brand Warning", - "class": "backgroundBrandWarning" - }, - { - "name": "Brand Danger", - "class": "backgroundBrandDanger" - } - ] - }, - { - "name": "Render children horizontal", - "type": "Toggle", - "description": "Determines the direction in which children are rendered.", - "class": "flexRow" - }, - { - "name": "Wrap children", - "type": "Toggle", - "description": "Determines if children can flow into multiple lines if they hit the end of the container.", - "class": "flexWrap" - }, - { - "name": "Align children", - "type": "Dropdown", - "description": "Align children in the opposite direction.", - "options": [ - { - "name": "Start", - "class": "alignChildrenStart" - }, - { - "name": "Center", - "class": "alignChildrenCenter" - }, - { - "name": "End", - "class": "alignChildrenEnd" - }, - { - "name": "Stretch", - "class": "alignChildrenStretch" - }, - { - "name": "Baseline", - "class": "alignChildrenBaseline" - } - ] - }, - { - "name": "Justify content", - "type": "Dropdown", - "description": "Justify content in the active direction.", - "options": [ - { - "name": "Start", - "class": "justifyContentStart" - }, - { - "name": "Center", - "class": "justifyContentCenter" - }, - { - "name": "End", - "class": "justifyContentEnd" - }, - { - "name": "Space between", - "class": "justifyContentSpaceBetween" - }, - { - "name": "Space around", - "class": "justifyContentSpaceAround" - }, - { - "name": "Space evenly", - "class": "justifyContentSpaceEvenly" - } - ] - } - ], - "Page": [ - { - "name": "Hide header bottom border", - "type": "Toggle", - "description": "Hide the bottom border (iOS) and elevation (Android) of the header.", - "class": "pageHeaderBorderNone" - } - ], - "Widget": [ - { - "name": "Spacing top", - "type": "Dropdown", - "description": "The spacing above this element.", - "options": [ - { - "name": "Smallest", - "class": "spacingOuterTopSmallest" - }, - { - "name": "Small", - "class": "spacingOuterTopSmaller" - }, - { - "name": "Medium", - "class": "spacingOuterTopMedium" - }, - { - "name": "Large", - "class": "spacingOuterTopLarger" - }, - { - "name": "Largest", - "class": "spacingOuterTopLargest" - } - ] - }, - { - "name": "Spacing bottom", - "type": "Dropdown", - "description": "The spacing below this element.", - "options": [ - { - "name": "Smallest", - "class": "spacingOuterBottomSmallest" - }, - { - "name": "Small", - "class": "spacingOuterBottomSmaller" - }, - { - "name": "Medium", - "class": "spacingOuterBottomMedium" - }, - { - "name": "Large", - "class": "spacingOuterBottomLarger" - }, - { - "name": "Largest", - "class": "spacingOuterBottomLargest" - } - ] - }, - { - "name": "Spacing left", - "type": "Dropdown", - "description": "The spacing to the left of this element.", - "options": [ - { - "name": "Smallest", - "class": "spacingOuterLeftSmallest" - }, - { - "name": "Small", - "class": "spacingOuterLeftSmaller" - }, - { - "name": "Medium", - "class": "spacingOuterLeftMedium" - }, - { - "name": "Large", - "class": "spacingOuterLeftLarger" - }, - { - "name": "Largest", - "class": "spacingOuterLeftLargest" - } - ] - }, - { - "name": "Spacing right", - "type": "Dropdown", - "description": "The spacing to the right of this element.", - "options": [ - { - "name": "Smallest", - "class": "spacingOuterRightSmallest" - }, - { - "name": "Small", - "class": "spacingOuterRightSmaller" - }, - { - "name": "Medium", - "class": "spacingOuterRightMedium" - }, - { - "name": "Large", - "class": "spacingOuterRightLarger" - }, - { - "name": "Largest", - "class": "spacingOuterRightLargest" - } - ] - } - ], - "DivContainer": [ - { - "name": "Spacing top", - "type": "Dropdown", - "description": "The spacing above this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerTopSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerTopMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerTopLarger" - }, - { - "name": "Outer small", - "class": "spacingOuterTopSmaller" - }, - { - "name": "Outer medium", - "class": "spacingOuterTopMedium" - }, - { - "name": "Outer large", - "class": "spacingOuterTopLarger" - } - ] - }, - { - "name": "Spacing bottom", - "type": "Dropdown", - "description": "The spacing below this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerBottomSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerBottomMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerBottomLarger" - }, - { - "name": "Outer small", - "class": "spacingOuterBottomSmaller" - }, - { - "name": "Outer medium", - "class": "spacingOuterBottomMedium" - }, - { - "name": "Outer large", - "class": "spacingOuterBottomLarger" - } - ] - }, - { - "name": "Spacing left", - "type": "Dropdown", - "description": "The spacing to the left of this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerLeftSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerLeftMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerLeftLarger" - }, - { - "name": "Outer small", - "class": "spacingOuterLeftSmaller" - }, - { - "name": "Outer medium", - "class": "spacingOuterLeftMedium" - }, - { - "name": "Outer large", - "class": "spacingOuterLeftLarger" - } - ] - }, - { - "name": "Spacing right", - "type": "Dropdown", - "description": "The spacing to the right of this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerRightSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerRightMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerRightLarger" - }, - { - "name": "Outer small", - "class": "spacingOuterRightSmaller" - }, - { - "name": "Outer medium", - "class": "spacingOuterRightMedium" - }, - { - "name": "Outer large", - "class": "spacingOuterRightLarger" - } - ] - }, - { - "name": "Size", - "type": "Dropdown", - "description": "Change the size of the widget relative to its sibling(s).", - "options": [ - { - "name": "Maximum space", - "class": "flexMain" - }, - { - "name": "Minimum space", - "class": "flexItem" - } - ] - }, - { - "name": "Background color", - "type": "Dropdown", - "description": "Change the background color of the container.", - "options": [ - { - "name": "Primary", - "class": "backgroundPrimary" - }, - { - "name": "Secondary", - "class": "backgroundSecondary" - }, - { - "name": "Brand Primary", - "class": "backgroundBrandPrimary" - }, - { - "name": "Brand Success", - "class": "backgroundBrandSuccess" - }, - { - "name": "Brand Warning", - "class": "backgroundBrandWarning" - }, - { - "name": "Brand Danger", - "class": "backgroundBrandDanger" - } - ] - }, - { - "name": "Align", - "type": "Dropdown", - "description": "Aligns the element. This overrides 'Align children' of the parent.", - "options": [ - { - "name": "Start", - "class": "alignSelfStart" - }, - { - "name": "Center", - "class": "alignSelfCenter" - }, - { - "name": "End", - "class": "alignSelfEnd" - }, - { - "name": "Stretch", - "class": "alignSelfStretch" - }, - { - "name": "Baseline", - "class": "alignSelfBaseline" - } - ] - }, - { - "name": "Render children horizontal", - "type": "Toggle", - "description": "Determines the direction in which children are rendered.", - "class": "flexRow" - }, - { - "name": "Wrap children", - "type": "Toggle", - "description": "Determines if children can flow into multiple lines if they hit the end of the container.", - "class": "flexWrap" - }, - { - "name": "Align children", - "type": "Dropdown", - "description": "Align children in the opposite direction.", - "options": [ - { - "name": "Start", - "class": "alignChildrenStart" - }, - { - "name": "Center", - "class": "alignChildrenCenter" - }, - { - "name": "End", - "class": "alignChildrenEnd" - }, - { - "name": "Stretch", - "class": "alignChildrenStretch" - }, - { - "name": "Baseline", - "class": "alignChildrenBaseline" - } - ] - }, - { - "name": "Justify content", - "type": "Dropdown", - "description": "Justify content in the active direction.", - "options": [ - { - "name": "Start", - "class": "justifyContentStart" - }, - { - "name": "Center", - "class": "justifyContentCenter" - }, - { - "name": "End", - "class": "justifyContentEnd" - }, - { - "name": "Space between", - "class": "justifyContentSpaceBetween" - }, - { - "name": "Space around", - "class": "justifyContentSpaceAround" - }, - { - "name": "Space evenly", - "class": "justifyContentSpaceEvenly" - } - ] - } - ], - "ScrollContainer": [ - { - "name": "Spacing top", - "type": "Dropdown", - "description": "The spacing above this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerTopSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerTopMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerTopLarger" - }, - { - "name": "Outer small", - "class": "spacingOuterTopSmaller" - }, - { - "name": "Outer medium", - "class": "spacingOuterTopMedium" - }, - { - "name": "Outer large", - "class": "spacingOuterTopLarger" - } - ] - }, - { - "name": "Spacing bottom", - "type": "Dropdown", - "description": "The spacing below this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerBottomSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerBottomMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerBottomLarger" - }, - { - "name": "Outer small", - "class": "spacingOuterBottomSmaller" - }, - { - "name": "Outer medium", - "class": "spacingOuterBottomMedium" - }, - { - "name": "Outer large", - "class": "spacingOuterBottomLarger" - } - ] - }, - { - "name": "Spacing left", - "type": "Dropdown", - "description": "The spacing to the left of this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerLeftSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerLeftMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerLeftLarger" - }, - { - "name": "Outer small", - "class": "spacingOuterLeftSmaller" - }, - { - "name": "Outer medium", - "class": "spacingOuterLeftMedium" - }, - { - "name": "Outer large", - "class": "spacingOuterLeftLarger" - } - ] - }, - { - "name": "Spacing right", - "type": "Dropdown", - "description": "The spacing to the right of this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerRightSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerRightMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerRightLarger" - }, - { - "name": "Outer small", - "class": "spacingOuterRightSmaller" - }, - { - "name": "Outer medium", - "class": "spacingOuterRightMedium" - }, - { - "name": "Outer large", - "class": "spacingOuterRightLarger" - } - ] - }, - { - "name": "Size", - "type": "Dropdown", - "description": "Change the size of the widget relative to its sibling(s).", - "options": [ - { - "name": "Maximum space", - "class": "flexMain" - }, - { - "name": "Minimum space", - "class": "flexItem" - } - ] - }, - { - "name": "Background color", - "type": "Dropdown", - "description": "Change the background color of the container.", - "options": [ - { - "name": "Primary", - "class": "backgroundPrimary" - }, - { - "name": "Secondary", - "class": "backgroundSecondary" - }, - { - "name": "Brand Primary", - "class": "backgroundBrandPrimary" - }, - { - "name": "Brand Success", - "class": "backgroundBrandSuccess" - }, - { - "name": "Brand Warning", - "class": "backgroundBrandWarning" - }, - { - "name": "Brand Danger", - "class": "backgroundBrandDanger" - } - ] - }, - { - "name": "Align", - "type": "Dropdown", - "description": "Aligns the element. This overrides 'Align children' of the parent.", - "options": [ - { - "name": "Start", - "class": "alignSelfStart" - }, - { - "name": "Center", - "class": "alignSelfCenter" - }, - { - "name": "End", - "class": "alignSelfEnd" - }, - { - "name": "Stretch", - "class": "alignSelfStretch" - }, - { - "name": "Baseline", - "class": "alignSelfBaseline" - } - ] - }, - { - "name": "Render children horizontal", - "type": "Toggle", - "description": "Determines the direction in which children are rendered.", - "class": "flexRow" - }, - { - "name": "Wrap children", - "type": "Toggle", - "description": "Determines if children can flow into multiple lines if they hit the end of the container.", - "class": "flexWrap" - }, - { - "name": "Align children", - "type": "Dropdown", - "description": "Align children in the opposite direction.", - "options": [ - { - "name": "Start", - "class": "alignChildrenStart" - }, - { - "name": "Center", - "class": "alignChildrenCenter" - }, - { - "name": "End", - "class": "alignChildrenEnd" - }, - { - "name": "Stretch", - "class": "alignChildrenStretch" - }, - { - "name": "Baseline", - "class": "alignChildrenBaseline" - } - ] - }, - { - "name": "Justify content", - "type": "Dropdown", - "description": "Justify content in the active direction.", - "options": [ - { - "name": "Start", - "class": "justifyContentStart" - }, - { - "name": "Center", - "class": "justifyContentCenter" - }, - { - "name": "End", - "class": "justifyContentEnd" - }, - { - "name": "Space between", - "class": "justifyContentSpaceBetween" - }, - { - "name": "Space around", - "class": "justifyContentSpaceAround" - } - ] - } - ], - "ActionButton": [ - { - "name": "Button style", - "type": "Dropdown", - "description": "Style of the button", - "options": [ - { - "name": "Secondary", - "class": "btnSecondary" - }, - { - "name": "Success", - "class": "btnSuccess" - }, - { - "name": "Warning", - "class": "btnWarning" - }, - { - "name": "Danger", - "class": "btnDanger" - }, - { - "name": "Inversed", - "class": "btnPrimaryInversed" - } - ] - }, - { - "name": "Align", - "type": "Dropdown", - "description": "Aligns the element. This overrides 'Align children' of the parent.", - "options": [ - { - "name": "Start", - "class": "alignSelfStart" - }, - { - "name": "Center", - "class": "alignSelfCenter" - }, - { - "name": "End", - "class": "alignSelfEnd" - }, - { - "name": "Stretch", - "class": "alignSelfStretch" - }, - { - "name": "Baseline", - "class": "alignSelfBaseline" - } - ] - } - ], - "Image": [ - { - "name": "Avatar", - "type": "Toggle", - "description": "Create an avatar image.", - "class": "avatar" - } - ], - "DynamicImage": [ - { - "name": "Avatar", - "type": "Toggle", - "description": "Create an avatar image.", - "class": "avatar" - } - ], - "DynamicText": [ - { - "name": "Color", - "type": "Dropdown", - "description": "Change the color of text.", - "options": [ - { - "name": "Brand primary", - "class": "textPrimary" - }, - { - "name": "Brand success", - "class": "textSuccess" - }, - { - "name": "Brand warning", - "class": "textWarning" - }, - { - "name": "Brand danger", - "class": "textDanger" - }, - { - "name": "White", - "class": "textWhite" - }, - { - "name": "Contrast lowest", - "class": "textContrastLowest" - }, - { - "name": "Contrast lower", - "class": "textContrastLower" - }, - { - "name": "Contrast low", - "class": "textContrastLow" - }, - { - "name": "Contrast default", - "class": "textContrastDefault" - }, - { - "name": "Contrast high", - "class": "textContrastHigh" - }, - { - "name": "Contrast higher", - "class": "textContrastHigher" - }, - { - "name": "Contrast highest", - "class": "textContrastHighest" - } - ] - }, - { - "name": "Size", - "type": "Dropdown", - "description": "Make the text smaller or larger.", - "options": [ - { - "name": "Small", - "class": "textSmall" - }, - { - "name": "Large", - "class": "textLarge" - } - ] - }, - { - "name": "Weight", - "type": "Dropdown", - "description": "Emphasize the text with a heavier or lighter font weight", - "options": [ - { - "name": "Light", - "class": "textLight" - }, - { - "name": "Default", - "class": "textNormal" - }, - { - "name": "Semibold", - "class": "textSemiBold" - }, - { - "name": "Bold", - "class": "textBold" - } - ] - }, - { - "name": "Alignment", - "type": "Dropdown", - "description": "Align the text.", - "options": [ - { - "name": "Left", - "class": "textLeft" - }, - { - "name": "Center", - "class": "textCenter" - }, - { - "name": "Right", - "class": "textRight" - } - ] - } - ], - "ListView": [ - { - "name": "List item divider", - "type": "Dropdown", - "description": "Give each list item a border.", - "options": [ - { - "name": "Vertical", - "class": "listItemBorderBottom" - }, - { - "name": "Horizontal", - "class": "listItemBorderRight" - } - ] - } - ], - "TabContainer": [ - { - "name": "Tab bar scroll", - "type": "Toggle", - "description": "Enable horizontal scroll for the tab bar.", - "class": "tabContainerScroll" - } - ], - "TextBox": [ - { - "name": "Capitalize", - "type": "Dropdown", - "description": "Change the capitalization of the input.", - "options": [ - { - "name": "None", - "class": "textInputCapitalizeNone" - }, - { - "name": "Characters", - "class": "textInputCapitalizeCharacters" - }, - { - "name": "Words", - "class": "textInputCapitalizeWords" - }, - { - "name": "Sentences", - "class": "textInputCapitalizeSentences" - } - ] - } - ], - "TextArea": [ - { - "name": "Capitalize", - "type": "Dropdown", - "description": "Change the capitalization of the input.", - "options": [ - { - "name": "None", - "class": "textInputCapitalizeNone" - }, - { - "name": "Characters", - "class": "textInputCapitalizeCharacters" - }, - { - "name": "Words", - "class": "textInputCapitalizeWords" - }, - { - "name": "Sentences", - "class": "textInputCapitalizeSentences" - } - ] - } - ], - "com.mendix.widget.native.activityindicator.ActivityIndicator": [ - { - "name": "Activity indicator style", - "type": "Dropdown", - "description": "Style of the Activity indicator.", - "options": [ - { - "name": "Success", - "class": "activityIndicatorSuccess" - }, - { - "name": "Warning", - "class": "activityIndicatorWarning" - }, - { - "name": "Danger", - "class": "activityIndicatorDanger" - } - ] - } - ], - "com.mendix.widget.native.animation.Animation": [ - { - "name": "Spacing top", - "type": "Dropdown", - "description": "The spacing above this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerTopSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerTopMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerTopLarger" - }, - { - "name": "Outer small", - "class": "spacingOuterTopSmaller" - }, - { - "name": "Outer medium", - "class": "spacingOuterTopMedium" - }, - { - "name": "Outer large", - "class": "spacingOuterTopLarger" - } - ] - }, - { - "name": "Spacing bottom", - "type": "Dropdown", - "description": "The spacing below this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerBottomSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerBottomMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerBottomLarger" - }, - { - "name": "Outer small", - "class": "spacingOuterBottomSmaller" - }, - { - "name": "Outer medium", - "class": "spacingOuterBottomMedium" - }, - { - "name": "Outer large", - "class": "spacingOuterBottomLarger" - } - ] - }, - { - "name": "Spacing left", - "type": "Dropdown", - "description": "The spacing to the left of this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerLeftSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerLeftMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerLeftLarger" - }, - { - "name": "Outer small", - "class": "spacingOuterLeftSmaller" - }, - { - "name": "Outer medium", - "class": "spacingOuterLeftMedium" - }, - { - "name": "Outer large", - "class": "spacingOuterLeftLarger" - } - ] - }, - { - "name": "Spacing right", - "type": "Dropdown", - "description": "The spacing to the right of this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerRightSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerRightMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerRightLarger" - }, - { - "name": "Outer small", - "class": "spacingOuterRightSmaller" - }, - { - "name": "Outer medium", - "class": "spacingOuterRightMedium" - }, - { - "name": "Outer large", - "class": "spacingOuterRightLarger" - } - ] - }, - { - "name": "Size", - "type": "Dropdown", - "description": "Change the size of the widget relative to its sibling(s).", - "options": [ - { - "name": "Maximum space", - "class": "flexMain" - }, - { - "name": "Minimum space", - "class": "flexItem" - } - ] - }, - { - "name": "Background color", - "type": "Dropdown", - "description": "Change the background color of the container.", - "options": [ - { - "name": "Primary", - "class": "backgroundPrimary" - }, - { - "name": "Secondary", - "class": "backgroundSecondary" - }, - { - "name": "Brand Primary", - "class": "backgroundBrandPrimary" - }, - { - "name": "Brand Success", - "class": "backgroundBrandSuccess" - }, - { - "name": "Brand Warning", - "class": "backgroundBrandWarning" - }, - { - "name": "Brand Danger", - "class": "backgroundBrandDanger" - } - ] - }, - { - "name": "Align", - "type": "Dropdown", - "description": "Aligns the element. This overrides 'Align children' of the parent.", - "options": [ - { - "name": "Stretch", - "class": "alignSelfStretch" - }, - { - "name": "Start", - "class": "alignSelfStart" - }, - { - "name": "Center", - "class": "alignSelfCenter" - }, - { - "name": "End", - "class": "alignSelfEnd" - } - ] - }, - { - "name": "Render children horizontal", - "type": "Toggle", - "description": "Determines the direction in which children are rendered.", - "class": "flexRow" - }, - { - "name": "Wrap children", - "type": "Toggle", - "description": "Determines if children can flow into multiple lines if they hit the end of the container.", - "class": "flexWrap" - }, - { - "name": "Align children", - "type": "Dropdown", - "description": "Align children in the opposite direction.", - "options": [ - { - "name": "Start", - "class": "alignChildrenStart" - }, - { - "name": "Center", - "class": "alignChildrenCenter" - }, - { - "name": "End", - "class": "alignChildrenEnd" - }, - { - "name": "Stretch", - "class": "alignChildrenStretch" - } - ] - }, - { - "name": "Justify children", - "type": "Dropdown", - "description": "Justify children in the active direction.", - "options": [ - { - "name": "Center", - "class": "justifyChildrenCenter" - }, - { - "name": "End", - "class": "justifyChildrenEnd" - }, - { - "name": "Space between", - "class": "justifyChildrenSpaceBetween" - }, - { - "name": "Space around", - "class": "justifyChildrenSpaceAround" - } - ] - } - ], - "com.mendix.widget.native.badge.Badge": [ - { - "name": "Badge style", - "type": "Dropdown", - "description": "Style of the Badge.", - "options": [ - { - "name": "Primary", - "class": "badgePrimary" - }, - { - "name": "Success", - "class": "badgeSuccess" - }, - { - "name": "Warning", - "class": "badgeWarning" - }, - { - "name": "Danger", - "class": "badgeDanger" - } - ] - } - ], - "com.mendix.widget.native.floatingactionbutton.FloatingActionButton": [ - { - "name": "Style", - "type": "Dropdown", - "description": "Style of the Floating Action Button.", - "options": [ - { - "name": "Success", - "class": "floatingActionButtonSuccess" - }, - { - "name": "Warning", - "class": "floatingActionButtonWarning" - }, - { - "name": "Danger", - "class": "floatingActionButtonDanger" - } - ] - } - ], - "com.mendix.widget.native.linechart.LineChart": [ - { - "name": "Chart size", - "type": "Dropdown", - "description": "Size of the chart.", - "options": [ - { - "name": "Square", - "class": "lineChartSquare" - }, - { - "name": "Maximum space", - "class": "lineChartMaxSpace" - } - ] - } - ], - "com.mendix.widget.native.listviewswipe.ListViewSwipe": [ - { - "name": "Panel size", - "type": "Dropdown", - "description": "Size of the left and right panel.", - "options": [ - { - "name": "Small", - "class": "listViewSwipeSmallPanels" - }, - { - "name": "Large", - "class": "listViewSwipeLargePanels" - } - ] - } - ], - "com.mendix.widget.native.maps.Maps": [ - { - "name": "Maps size", - "type": "Dropdown", - "description": "Size of the maps.", - "options": [ - { - "name": "Square", - "class": "mapsSquare" - }, - { - "name": "Maximum space", - "class": "mapsMaxSpace" - } - ] - }, - { - "name": "Maps marker style", - "type": "Dropdown", - "description": "Style of the marker.", - "options": [ - { - "name": "Success", - "class": "mapsSuccess" - }, - { - "name": "Warning", - "class": "mapsWarning" - }, - { - "name": "Danger", - "class": "mapsDanger" - } - ] - } - ], - "com.mendix.widget.native.progressbar.ProgressBar": [ - { - "name": "Progress bar style", - "type": "Dropdown", - "description": "Style of the progress bar.", - "options": [ - { - "name": "Success", - "class": "progressBarSuccess" - }, - { - "name": "Warning", - "class": "progressBarWarning" - }, - { - "name": "Danger", - "class": "progressBarDanger" - } - ] - }, - { - "name": "Progress bar size", - "type": "Dropdown", - "description": "Size of the progress bar.", - "options": [ - { - "name": "Small", - "class": "progressBarSmall" - }, - { - "name": "Large", - "class": "progressBarLarge" - } - ] - } - ], - "com.mendix.widget.native.progresscircle.ProgressCircle": [ - { - "name": "Progress circle style", - "type": "Dropdown", - "description": "Style of the progress circle.", - "options": [ - { - "name": "Success", - "class": "progressCircleSuccess" - }, - { - "name": "Warning", - "class": "progressCircleWarning" - }, - { - "name": "Danger", - "class": "progressCircleDanger" - } - ] - } - ], - "com.mendix.widget.native.rangeslider.RangeSlider": [ - { - "name": "Range Slider style", - "type": "Dropdown", - "description": "Style of the range slider.", - "options": [ - { - "name": "Success", - "class": "rangeSliderSuccess" - }, - { - "name": "Warning", - "class": "rangeSliderWarning" - }, - { - "name": "Danger", - "class": "rangeSliderDanger" - } - ] - } - ], - "com.mendix.widget.native.safeareaview.SafeAreaView": [ - { - "name": "Spacing top", - "type": "Dropdown", - "description": "The spacing above this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerTopSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerTopMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerTopLarger" - } - ] - }, - { - "name": "Spacing bottom", - "type": "Dropdown", - "description": "The spacing below this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerBottomSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerBottomMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerBottomLarger" - } - ] - }, - { - "name": "Spacing left", - "type": "Dropdown", - "description": "The spacing to the left of this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerLeftSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerLeftMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerLeftLarger" - } - ] - }, - { - "name": "Spacing right", - "type": "Dropdown", - "description": "The spacing to the right of this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerRightSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerRightMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerRightLarger" - } - ] - }, - { - "name": "Background color", - "type": "Dropdown", - "description": "Change the background color of the container.", - "options": [ - { - "name": "Primary", - "class": "backgroundPrimary" - }, - { - "name": "Secondary", - "class": "backgroundSecondary" - }, - { - "name": "Brand Primary", - "class": "backgroundBrandPrimary" - }, - { - "name": "Brand Success", - "class": "backgroundBrandSuccess" - }, - { - "name": "Brand Warning", - "class": "backgroundBrandWarning" - }, - { - "name": "Brand Danger", - "class": "backgroundBrandDanger" - } - ] - }, - { - "name": "Render children horizontal", - "type": "Toggle", - "description": "Determines the direction in which children are rendered.", - "class": "flexRow" - }, - { - "name": "Wrap children", - "type": "Toggle", - "description": "Determines if children can flow into multiple lines if they hit the end of the container.", - "class": "flexWrap" - }, - { - "name": "Align children", - "type": "Dropdown", - "description": "Align children in the opposite direction.", - "options": [ - { - "name": "Start", - "class": "alignChildrenStart" - }, - { - "name": "Center", - "class": "alignChildrenCenter" - }, - { - "name": "End", - "class": "alignChildrenEnd" - }, - { - "name": "Stretch", - "class": "alignChildrenStretch" - }, - { - "name": "Baseline", - "class": "alignChildrenBaseline" - } - ] - }, - { - "name": "Justify content", - "type": "Dropdown", - "description": "Justify content in the active direction.", - "options": [ - { - "name": "Start", - "class": "justifyContentStart" - }, - { - "name": "Center", - "class": "justifyContentCenter" - }, - { - "name": "End", - "class": "justifyContentEnd" - }, - { - "name": "Space between", - "class": "justifyContentSpaceBetween" - }, - { - "name": "Space around", - "class": "justifyContentSpaceAround" - }, - { - "name": "Space evenly", - "class": "justifyContentSpaceEvenly" - } - ] - } - ], - "com.mendix.widget.native.slider.Slider": [ - { - "name": "Slider style", - "type": "Dropdown", - "description": "Style of the slider.", - "options": [ - { - "name": "Success", - "class": "sliderSuccess" - }, - { - "name": "Warning", - "class": "sliderWarning" - }, - { - "name": "Danger", - "class": "sliderDanger" - } - ] - } - ] - } -} diff --git a/theme_old/settings.json b/theme_old/settings.json deleted file mode 100644 index f616bed..0000000 --- a/theme_old/settings.json +++ /dev/null @@ -1,753 +0,0 @@ -{ - "pageTemplates": "WebModeler", - "cssFiles": [ - "styles/web/css/main.css" - ], - "designProperties": { - "Widget": [ - { - "name": "Spacing top", - "type": "Dropdown", - "description": "The spacing above this element.", - "options": [ - { - "name": "None", - "class": "spacing-outer-top-none" - }, - { - "name": "Small", - "class": "spacing-outer-top" - }, - { - "name": "Medium", - "class": "spacing-outer-top-medium" - }, - { - "name": "Large", - "class": "spacing-outer-top-large" - } - ] - }, - { - "name": "Spacing bottom", - "type": "Dropdown", - "description": "The spacing below this element.", - "options": [ - { - "name": "None", - "class": "spacing-outer-bottom-none" - }, - { - "name": "Small", - "class": "spacing-outer-bottom" - }, - { - "name": "Medium", - "class": "spacing-outer-bottom-medium" - }, - { - "name": "Large", - "class": "spacing-outer-bottom-large" - } - ] - }, - { - "name": "Spacing left", - "type": "Dropdown", - "description": "The spacing to the left of this element.", - "options": [ - { - "name": "None", - "class": "spacing-outer-left-none" - }, - { - "name": "Small", - "class": "spacing-outer-left" - }, - { - "name": "Medium", - "class": "spacing-outer-left-medium" - }, - { - "name": "Large", - "class": "spacing-outer-left-large" - } - ] - }, - { - "name": "Spacing right", - "type": "Dropdown", - "description": "The spacing to the right of this element.", - "options": [ - { - "name": "None", - "class": "spacing-outer-right-none" - }, - { - "name": "Small", - "class": "spacing-outer-right" - }, - { - "name": "Medium", - "class": "spacing-outer-right-medium" - }, - { - "name": "Large", - "class": "spacing-outer-right-large" - } - ] - }, - { - "name": "Align self", - "oldNames": [ - "Align Self" - ], - "type": "Dropdown", - "description": "Float the element to the left or to the right.", - "options": [ - { - "name": "Left", - "class": "pull-left" - }, - { - "name": "Right", - "class": "pull-right" - } - ] - }, - { - "name": "Hide on phone", - "oldNames": [ - "Hide On Phone" - ], - "type": "Toggle", - "description": "Hide element on phone.", - "class": "hide-phone" - }, - { - "name": "Hide on tablet", - "oldNames": [ - "Hide On Tablet" - ], - "type": "Toggle", - "description": "Hide element on tablet.", - "class": "hide-tablet" - }, - { - "name": "Hide on desktop", - "oldNames": [ - "Hide On Desktop" - ], - "type": "Toggle", - "description": "Hide element on desktop.", - "class": "hide-desktop" - } - ], - "DivContainer": [ - { - "name": "Align content", - "type": "Dropdown", - "description": "Align content of this element left, right or center it. Align elements inside the container as a row or as a column.", - "options": [ - { - "name": "Left align as a row", - "oldNames": [ - "Left align as row" - ], - "class": "row-left" - }, - { - "name": "Center align as a row", - "oldNames": [ - "Center align as row" - ], - "class": "row-center" - }, - { - "name": "Right align as a row", - "oldNames": [ - "Right align as row" - ], - "class": "row-right" - }, - { - "name": "Left align as a column", - "oldNames": [ - "Left align as column" - ], - "class": "col-left" - }, - { - "name": "Center align as a column", - "oldNames": [ - "Center align as column" - ], - "class": "col-center" - }, - { - "name": "Right align as a column", - "oldNames": [ - "Right align as column" - ], - "class": "col-right" - } - ] - }, - { - "name": "Background color", - "type": "Dropdown", - "description": "Change the background color of the container.", - "options": [ - { - "name": "Brand Default", - "oldNames": [ - "Default" - ], - "class": "background-default" - }, - { - "name": "Brand Primary", - "oldNames": [ - "Primary" - ], - "class": "background-primary" - }, - { - "name": "Brand Inverse", - "oldNames": [ - "Inverse" - ], - "class": "background-inverse" - }, - { - "name": "Brand Info", - "oldNames": [ - "Info" - ], - "class": "background-info" - }, - { - "name": "Brand Success", - "oldNames": [ - "Success" - ], - "class": "background-success" - }, - { - "name": "Brand Warning", - "oldNames": [ - "Warning" - ], - "class": "background-warning" - }, - { - "name": "Brand Danger", - "oldNames": [ - "Danger" - ], - "class": "background-danger" - }, - { - "name": "Background Default", - "class": "background-main" - }, - { - "name": "Background Dashboard", - "class": "background-secondary" - } - ] - } - ], - "Button": [ - { - "name": "Size", - "type": "Dropdown", - "description": "Size of the buttons", - "options": [ - { - "name": "Small", - "class": "btn-sm" - }, - { - "name": "Large", - "class": "btn-lg" - } - ] - }, - { - "name": "Full width", - "type": "Toggle", - "description": "Extend the button to the full width of the container it is placed in.", - "class": "btn-block" - }, - { - "name": "Border", - "oldNames": [ - "Bordered" - ], - "type": "Toggle", - "description": "Style the button with a transparent background, a colored border, and colored text.", - "class": "btn-bordered" - }, - { - "name": "Align icon", - "type": "Dropdown", - "description": "Place the icon to the right or on top of the button.", - "options": [ - { - "name": "Right", - "class": "btn-icon-right" - }, - { - "name": "Top", - "class": "btn-icon-top" - } - ] - } - ], - "ListView": [ - { - "name": "Style", - "type": "Dropdown", - "description": "Change the appearance of rows in the list view.", - "options": [ - { - "name": "Striped", - "class": "listview-striped" - }, - { - "name": "Bordered", - "class": "listview-bordered" - }, - { - "name": "Lined", - "class": "listview-lined" - }, - { - "name": "No Styling", - "class": "listview-stylingless" - } - ] - }, - { - "name": "Hover style", - "type": "Toggle", - "description": "Highlight a row when hovering over it. Only useful when the row is clickable.", - "class": "listview-hover" - }, - { - "name": "Row Size", - "type": "Dropdown", - "description": "Change the row spacing of the list view.", - "options": [ - { - "name": "Small", - "class": "listview-sm" - }, - { - "name": "Large", - "class": "listview-lg" - } - ] - } - ], - "DataGrid": [ - { - "name": "Style", - "type": "Dropdown", - "description": "Choose one of the following styles to change the appearance of the data grid.", - "options": [ - { - "name": "Striped", - "class": "datagrid-striped" - }, - { - "name": "Bordered", - "class": "datagrid-bordered" - }, - { - "name": "Lined", - "class": "datagrid-lined" - } - ] - }, - { - "name": "Hover style", - "type": "Toggle", - "description": "Enable data grid hover to make the rows hoverable.", - "class": "datagrid-hover" - }, - { - "name": "Row size", - "type": "Dropdown", - "description": "Increase or decrease the row spacing of the data grid row.", - "options": [ - { - "name": "Small", - "class": "datagrid-sm" - }, - { - "name": "Large", - "class": "datagrid-lg" - } - ] - } - ], - "TemplateGrid": [ - { - "name": "Style", - "type": "Dropdown", - "description": "Choose one of the following styles to change the appearance of the template grid.", - "options": [ - { - "name": "Striped", - "class": "templategrid-striped" - }, - { - "name": "Bordered", - "class": "templategrid-bordered" - }, - { - "name": "Lined", - "class": "templategrid-lined" - }, - { - "name": "No styling", - "class": "templategrid-stylingless" - } - ] - }, - { - "name": "Hover style", - "type": "Toggle", - "description": "Enable template grid hover to make the rows hoverable.", - "class": "templategrid-hover" - } - ], - "GroupBox": [ - { - "name": "Style", - "type": "Dropdown", - "description": "Choose one of the following styles to change the appearance of the groupbox.", - "options": [ - { - "name": "Brand Default", - "oldNames": [ - "Default" - ], - "class": "groupbox-default" - }, - { - "name": "Brand Primary", - "oldNames": [ - "Primary" - ], - "class": "groupbox-primary" - }, - { - "name": "Brand Inverse", - "oldNames": [ - "Inverse" - ], - "class": "groupbox-inverse" - }, - { - "name": "Brand Info", - "oldNames": [ - "Info" - ], - "class": "groupbox-info" - }, - { - "name": "Brand Success", - "oldNames": [ - "Success" - ], - "class": "groupbox-success" - }, - { - "name": "Brand Warning", - "oldNames": [ - "Warning" - ], - "class": "groupbox-warning" - }, - { - "name": "Brand Danger", - "oldNames": [ - "Danger" - ], - "class": "groupbox-danger" - }, - { - "name": "Transparent", - "class": "groupbox-transparent" - } - ] - }, - { - "name": "Callout style", - "type": "Toggle", - "description": "Enable the groupbox callout functionality to highlight the importance of the groupbox.", - "class": "groupbox-callout" - } - ], - "StaticImageViewer": [ - { - "name": "Style", - "type": "Dropdown", - "description": "Choose the style of your image.", - "options": [ - { - "name": "Rounded", - "class": "img-rounded" - }, - { - "name": "Thumbnail", - "class": "img-thumbnail" - }, - { - "name": "Circle", - "class": "img-circle" - } - ] - }, - { - "name": "Center", - "type": "Toggle", - "description": "Align the image in the center of an element.", - "class": "img-center" - } - ], - "DynamicImageViewer": [ - { - "name": "Style", - "type": "Dropdown", - "description": "Choose the style of your image.", - "options": [ - { - "name": "Rounded", - "class": "img-rounded" - }, - { - "name": "Thumbnail", - "class": "img-thumbnail" - }, - { - "name": "Circle", - "class": "img-circle" - } - ] - }, - { - "name": "Center", - "type": "Toggle", - "description": "Align the image in the center of an element.", - "class": "img-center" - } - ], - "Label": [ - { - "name": "Style", - "type": "Dropdown", - "description": "Change the appearance of a label.", - "options": [ - { - "name": "Brand Default", - "oldNames": [ - "Default" - ], - "class": "label-default" - }, - { - "name": "Brand Primary", - "oldNames": [ - "Primary" - ], - "class": "label-primary" - }, - { - "name": "Brand Inverse", - "oldNames": [ - "Inverse" - ], - "class": "label-inverse" - }, - { - "name": "Brand Info", - "oldNames": [ - "Info" - ], - "class": "label-info" - }, - { - "name": "Brand Success", - "oldNames": [ - "Success" - ], - "class": "label-success" - }, - { - "name": "Brand Warning", - "oldNames": [ - "Warning" - ], - "class": "label-warning" - }, - { - "name": "Brand Danger", - "oldNames": [ - "Danger" - ], - "class": "label-danger" - } - ] - } - ], - "DynamicText": [ - { - "name": "Font Weight", - "oldNames": [ - "Weight" - ], - "type": "Dropdown", - "description": "Emphasize the text with a heavier or lighter font weight", - "options": [ - { - "name": "Light", - "class": "text-light" - }, - { - "name": "Normal", - "class": "text-normal" - }, - { - "name": "Semibold", - "class": "text-semibold" - }, - { - "name": "Bold", - "class": "text-bold" - } - ] - }, - { - "name": "Color", - "type": "Dropdown", - "description": "Change the color of text.", - "options": [ - { - "name": "Header color", - "class": "text-header" - }, - { - "name": "Detail color", - "class": "text-detail" - }, - { - "name": "Brand Default", - "oldNames": [ - "Default" - ], - "class": "text-default" - }, - { - "name": "Brand Primary", - "oldNames": [ - "Primary" - ], - "class": "text-primary" - }, - { - "name": "Brand Inverse", - "oldNames": [ - "Inverse" - ], - "class": "text-inverse" - }, - { - "name": "Brand Info", - "oldNames": [ - "Info" - ], - "class": "text-info" - }, - { - "name": "Brand Success", - "oldNames": [ - "Success" - ], - "class": "text-success" - }, - { - "name": "Brand Warning", - "oldNames": [ - "Warning" - ], - "class": "text-warning" - }, - { - "name": "Brand Danger", - "oldNames": [ - "Danger" - ], - "class": "text-danger" - } - ] - }, - { - "name": "Alignment", - "type": "Dropdown", - "description": "Align the text.", - "options": [ - { - "name": "Left", - "class": "text-left d-block" - }, - { - "name": "Center", - "class": "text-center d-block" - }, - { - "name": "Right", - "class": "text-right d-block" - } - ] - }, - { - "name": "Transform", - "type": "Dropdown", - "description": "Change the letter case of the text.", - "options": [ - { - "name": "Lowercase", - "class": "text-lowercase" - }, - { - "name": "Uppercase", - "class": "text-uppercase" - }, - { - "name": "Capitalize", - "class": "text-capitalize" - } - ] - }, - { - "name": "Wrap options", - "type": "Dropdown", - "description": "Break long words and sentences into multiple lines.", - "options": [ - { - "name": "Wrap", - "class": "text-break" - }, - { - "name": "No Wrap", - "class": "text-nowrap" - } - ] - } - ] - } -} diff --git a/theme_old/styles.js b/theme_old/styles.js deleted file mode 100644 index 5836d58..0000000 --- a/theme_old/styles.js +++ /dev/null @@ -1,12 +0,0 @@ -import * as custom from "./styles/native/app/custom"; -import mergeobjects from "./styles/native/core/helpers/_functions/mergeobjects"; -import * as main from "./styles/native/main"; - -Object.keys(custom).forEach(key => { - if (main[key]) { - Object.assign(main[key], mergeobjects(main[key], custom[key])); - delete custom[key]; - } -}); - -module.exports = { ...main, ...custom }; diff --git a/theme_old/styles/native/app/custom-variables.js b/theme_old/styles/native/app/custom-variables.js deleted file mode 100644 index 80db3a2..0000000 --- a/theme_old/styles/native/app/custom-variables.js +++ /dev/null @@ -1,279 +0,0 @@ -import { NativeModules, Platform } from "react-native"; -import adjustFont from "../core/helpers/_functions/adjustfont"; -import { anyColorToRgbString, setColorBasedOnBackground, setContrastScale, } from "../core/helpers/_functions/convertcolors"; -/* - -==> You can find a copy of the core variables below. (From styles/native/core/variables.js) -==> You can freely change any value in this file. -==> DO NOT change the core variable file (or any other file in core), as that makes updating Atlas a lot harder in the future. - -*/ -//== Global variables -//## Variables to be used during styling -//-------------------------------------------------------------------------------------------------------------------// -// Brand Style -export const brand = { - primary: "#0595DB", - success: "#76CA02", - warning: "#f99b1d", - danger: "#ed1c24", - primaryLight: `rgba(${anyColorToRgbString("#0595DB")}, 0.14)`, - successLight: `rgba(${anyColorToRgbString("#76CA02")}, 0.14)`, - warningLight: `rgba(${anyColorToRgbString("#f99b1d")}, 0.14)`, - dangerLight: `rgba(${anyColorToRgbString("#ed1c24")}, 0.14)`, -}; -// -// Dark Mode - Inherits OS theme if possible -export const darkMode = NativeModules && NativeModules.RNDarkMode && NativeModules.RNDarkMode.initialMode - ? NativeModules.RNDarkMode.initialMode === "dark" - : false; -// -// Background Colors -const backgroundColor = darkMode ? "#000" : "#FFF"; -const backgroundSecondaryContrast = darkMode ? 0.11 : 0.03; -// -export const background = { - primary: backgroundColor, - secondary: setContrastScale(backgroundSecondaryContrast, backgroundColor), - gray: "#c6c6cc", - brandPrimary: brand.primary, - brandSuccess: brand.success, - brandWarning: brand.warning, - brandDanger: brand.danger, -}; -// -// Contrast (Gray) colors based on background.primary -export const contrast = { - highest: setContrastScale(0.95, background.primary), - higher: setContrastScale(0.8, background.primary), - high: setContrastScale(0.65, background.primary), - regular: setContrastScale(0.5, background.primary), - low: setContrastScale(0.35, background.primary), - lower: setContrastScale(0.2, background.primary), - lowest: setContrastScale(0.05, background.primary), -}; -// -// Border Style -export const border = { - color: setContrastScale(0.17, background.primary), - width: 1, - radius: 5, -}; -// -// Font Styles -export const font = { - size: adjustFont(14), - sizeSmall: adjustFont(12), - sizeLarge: adjustFont(18), - sizeH1: adjustFont(31), - sizeH2: adjustFont(26), - sizeH3: adjustFont(24), - sizeH4: adjustFont(18), - sizeH5: adjustFont(14), - sizeH6: adjustFont(12), - color: setColorBasedOnBackground(background.primary), - colorDisabled: "#9DA1A8", - labelColorDisabled: "#474E5C", - weightLight: "100", - weightNormal: "normal", - weightSemiBold: "600", - weightBold: "bold", - family: Platform.select({ ios: "System", android: "normal" }), -}; -// -// Spacing -export const spacing = { - smallest: 5, - smaller: 10, - small: 15, - regular: 20, - large: 25, - larger: 30, - largest: 40, -}; -// -// Button Styles -export const button = { - fontSize: font.sizeSmall, - fontSizeLarge: font.size, - fontWeight: font.weightBold, - fontSizeIcon: font.sizeSmall, - fontSizeIconLarge: font.size, - borderRadius: border.radius, - paddingVertical: spacing.smaller, - paddingHorizontal: spacing.regular, - header: { - color: contrast.highest, - borderColor: "transparent", - backgroundColor: "transparent", - fontSize: font.sizeSmall, - fontSizeIcon: font.sizeSmall, - paddingLeft: 0, - paddingRight: 10, - }, - primary: { - color: "#FFF", - colorDisabled: font.colorDisabled, - borderColor: brand.primary, - borderColorDisabled: border.color, - backgroundColor: brand.primary, - backgroundColorDisabled: border.color, - }, - secondary: { - color: brand.primary, - borderColor: brand.primary, - backgroundColor: "transparent", - inversedColor: "#FFF", - }, - success: { - color: "#FFF", - borderColor: brand.success, - backgroundColor: brand.success, - }, - warning: { - color: "#FFF", - borderColor: brand.warning, - backgroundColor: brand.warning, - }, - danger: { - color: "#FFF", - borderColor: brand.danger, - backgroundColor: brand.danger, - }, -}; -// -// Input Styles -export const input = { - // Colors - color: font.color, - colorDisabled: font.colorDisabled, - errorColor: brand.danger, - labelColor: font.color, - labelColorDisabled: font.labelColorDisabled, - borderColor: contrast.lower, - borderColorFocused: "", - backgroundColor: background.primary, - backgroundColorDisabled: contrast.lowest, - selectionColor: contrast.lower, - placeholderTextColor: contrast.regular, - underlineColorAndroid: "transparent", - inputContainerUnderlayColor: `rgba(${anyColorToRgbString(contrast.low)},0.4)`, - // Sizes - fontSize: font.size, - fontFamily: font.family, - borderWidth: border.width, - borderRadius: border.radius, - // Alignment - textAlign: "left", - paddingHorizontal: spacing.smaller, - paddingVertical: spacing.small, -}; -// -// Navigation Styles -export const navigation = { - statusBar: { - backgroundColor: background.primary, - barStyle: darkMode ? "light-content" : "dark-content", - }, - topBar: { - backgroundColor: background.primary, - backButtonColor: contrast.highest, - titleColor: contrast.highest, - titleFontSize: Platform.select({ android: font.sizeH4, ios: font.sizeH5 }), - }, - bottomBar: { - color: contrast.high, - selectedTextColor: contrast.high, - selectedIconColor: brand.primary, - backgroundColor: background.primary, - fontSize: font.sizeSmall, - iconSize: font.sizeSmall, - }, - progressOverlay: { - color: font.color, - activityIndicatorColor: font.color, - backgroundColor: `rgba(0, 0, 0, 0.5)`, - containerBackgroundColor: background.secondary, - fontSize: font.size, - borderRadius: border.radius, - elevation: 1.5, - shadowColor: "#000", - shadowOpacity: 0.1, - shadowRadius: 10, - }, -}; -// -// Badge Styles -export const badge = { - fontWeight: font.weightBold, - borderRadius: 30, - paddingVertical: 3, - paddingHorizontal: spacing.smaller, - default: { - color: contrast.higher, - backgroundColor: contrast.lower, - }, - primary: { - color: brand.primary, - backgroundColor: brand.primaryLight, - }, - success: { - color: brand.success, - backgroundColor: brand.successLight, - }, - warning: { - color: brand.warning, - backgroundColor: brand.warningLight, - }, - danger: { - color: brand.danger, - backgroundColor: brand.dangerLight, - }, -}; -// -// Tabcontainer Styles -export const tabContainer = { - tabBar: { - pressColor: contrast.lower, - backgroundColor: background.primary, - }, - indicator: { - backgroundColor: brand.primary, - height: Platform.select({ ios: 2, android: 2 }), - }, - label: { - color: contrast.highest, - fontWeight: font.weightBold, - textTransform: "uppercase", - }, - activeLabel: { - color: brand.primary, - fontWeight: font.weightBold, - textTransform: "uppercase", - }, - badgeContainer: { - borderRadius: badge.borderRadius, - backgroundColor: badge.default.backgroundColor, - paddingVertical: badge.paddingVertical, - paddingHorizontal: badge.paddingHorizontal, - marginLeft: 8, - }, - badgeCaption: { - fontSize: font.size, - color: badge.default.color, - fontWeight: badge.fontWeight, - }, -}; -// -// ListView Styles -export const listView = { - border: { - color: border.color, - width: border.width, - }, -}; -// -// Layoutgrid Styles -export const layoutGrid = { - gutterSize: 15, -}; diff --git a/theme_old/styles/native/core/base/flex.js b/theme_old/styles/native/core/base/flex.js deleted file mode 100644 index dd1edff..0000000 --- a/theme_old/styles/native/core/base/flex.js +++ /dev/null @@ -1,203 +0,0 @@ -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -*/ -//== Flex layout -export const flexMain = { - container: { - // flex 1 will take all available space not taken by flexItems. - flex: 1, - }, -}; -export const flexItem = { - container: { - // When flex is -1, the component is normally sized according width and height. - // However, if there's not enough space, the component will shrink to its minWidth and minHeight - flex: -1, - }, -}; -export const flexRow = { - container: { - flexDirection: "row", - }, -}; -export const flexColumn = { - container: { - flexDirection: "column", - }, -}; -export const flexRowReverse = { - container: { - flexDirection: "row-reverse", - }, -}; -export const flexColumnReverse = { - container: { - flexDirection: "column-reverse", - }, -}; -export const flexWrap = { - container: { - // flexWrap controls whether children can wrap around after they hit the end of a flex container. - flexWrap: "wrap", - }, -}; -export const justifyContentStart = { - container: { - // justifyContent aligns children in the main direction. - // For example, if children are flowing vertically, justifyContent controls how they align vertically. - justifyContent: "flex-start", - }, -}; -export const justifyContentCenter = { - container: { - // justifyContent aligns children in the main direction. - // For example, if children are flowing vertically, justifyContent controls how they align vertically. - justifyContent: "center", - }, -}; -export const justifyContentEnd = { - container: { - // justifyContent aligns children in the main direction. - // For example, if children are flowing vertically, justifyContent controls how they align vertically. - justifyContent: "flex-end", - }, -}; -export const justifyContentSpaceBetween = { - container: { - // justifyContent aligns children in the main direction. - // For example, if children are flowing vertically, justifyContent controls how they align vertically. - justifyContent: "space-between", - }, -}; -export const justifyContentSpaceAround = { - container: { - // justifyContent aligns children in the main direction. - // For example, if children are flowing vertically, justifyContent controls how they align vertically. - justifyContent: "space-around", - }, -}; -export const justifyContentSpaceEvenly = { - container: { - // justifyContent aligns children in the main direction. - // For example, if children are flowing vertically, justifyContent controls how they align vertically. - justifyContent: "space-evenly", - }, -}; -export const alignChildrenStart = { - container: { - // alignItems aligns children in the cross direction. - // For example, if children are flowing vertically, alignItems controls how they align horizontally. - alignItems: "flex-start", - }, -}; -export const alignChildrenCenter = { - container: { - // alignItems aligns children in the cross direction. - // For example, if children are flowing vertically, alignItems controls how they align horizontally. - alignItems: "center", - }, -}; -export const alignChildrenEnd = { - container: { - // alignItems aligns children in the cross direction. - // For example, if children are flowing vertically, alignItems controls how they align horizontally. - alignItems: "flex-end", - }, -}; -export const alignChildrenStretch = { - container: { - // alignItems aligns children in the cross direction. - // For example, if children are flowing vertically, alignItems controls how they align horizontally. - alignItems: "stretch", - }, -}; -export const alignChildrenBaseline = { - container: { - // alignContent aligns children in the cross direction. - // For example, if children are flowing vertically, alignContent controls how they align horizontally. - alignItems: "baseline", - }, -}; -export const childrenCenter = { - container: { - ...justifyContentCenter.container, - ...alignChildrenCenter.container, - }, -}; -export const alignContentStart = { - container: { - // alignContent aligns rows of children in the cross direction. - // For example, if children are flowing vertically, alignContent controls how they align horizontally. - alignContent: "flex-start", - }, -}; -export const alignContentCenter = { - container: { - // alignContent aligns rows of children in the cross direction. - // For example, if children are flowing vertically, alignContent controls how they align horizontally. - alignContent: "center", - }, -}; -export const alignContentEnd = { - container: { - // alignContent aligns rows of children in the cross direction. - // For example, if children are flowing vertically, alignContent controls how they align horizontally. - alignContent: "flex-end", - }, -}; -export const alignContentStretch = { - container: { - // alignContent aligns rows of children in the cross direction. - // For example, if children are flowing vertically, alignContent controls how they align horizontally. - alignContent: "stretch", - }, -}; -export const alignContentSpaceAround = { - container: { - // alignContent aligns rows of children in the cross direction. - // For example, if children are flowing vertically, alignContent controls how they align horizontally. - alignContent: "space-around", - }, -}; -export const alignContentSpaceBetween = { - container: { - // alignContent aligns rows of children in the cross direction. - // For example, if children are flowing vertically, alignContent controls how they align horizontally. - alignContent: "space-between", - }, -}; -export const alignSelfStart = { - container: { - // controls how a child aligns in the cross direction, overriding the alignItems of the parent. - alignSelf: "flex-start", - }, -}; -export const alignSelfCenter = { - container: { - // controls how a child aligns in the cross direction, overriding the alignItems of the parent. - alignSelf: "center", - }, -}; -export const alignSelfEnd = { - container: { - // controls how a child aligns in the cross direction, overriding the alignItems of the parent. - alignSelf: "flex-end", - }, -}; -export const alignSelfStretch = { - container: { - // controls how a child aligns in the cross direction, overriding the alignItems of the parent. - alignSelf: "stretch", - }, -}; -export const alignSelfBaseline = { - container: { - // controls how a child aligns in the cross direction, overriding the alignItems of the parent. - alignSelf: "baseline", - }, -}; diff --git a/theme_old/styles/native/core/base/spacing.js b/theme_old/styles/native/core/base/spacing.js deleted file mode 100644 index 13a72e2..0000000 --- a/theme_old/styles/native/core/base/spacing.js +++ /dev/null @@ -1,503 +0,0 @@ -import { spacing } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -*/ -//== Inner Spacing -export const spacingInnerSmallest = { - container: { - padding: spacing.smallest, - }, -}; -export const spacingInnerVerticalSmallest = { - container: { - paddingVertical: spacing.smallest, - }, -}; -export const spacingInnerHorizontalSmallest = { - container: { - paddingHorizontal: spacing.smallest, - }, -}; -export const spacingInnerTopSmallest = { - container: { - paddingTop: spacing.smallest, - }, -}; -export const spacingInnerRightSmallest = { - container: { - paddingRight: spacing.smallest, - }, -}; -export const spacingInnerLeftSmallest = { - container: { - paddingLeft: spacing.smallest, - }, -}; -export const spacingInnerBottomSmallest = { - container: { - paddingBottom: spacing.smallest, - }, -}; -export const spacingInnerSmaller = { - container: { - padding: spacing.smaller, - }, -}; -export const spacingInnerVerticalSmaller = { - container: { - paddingVertical: spacing.smaller, - }, -}; -export const spacingInnerHorizontalSmaller = { - container: { - paddingHorizontal: spacing.smaller, - }, -}; -export const spacingInnerTopSmaller = { - container: { - paddingTop: spacing.smaller, - }, -}; -export const spacingInnerRightSmaller = { - container: { - paddingRight: spacing.smaller, - }, -}; -export const spacingInnerLeftSmaller = { - container: { - paddingLeft: spacing.smaller, - }, -}; -export const spacingInnerBottomSmaller = { - container: { - paddingBottom: spacing.smaller, - }, -}; -export const spacingInnerSmall = { - container: { - padding: spacing.small, - }, -}; -export const spacingInnerVerticalSmall = { - container: { - paddingVertical: spacing.small, - }, -}; -export const spacingInnerHorizontalSmall = { - container: { - paddingHorizontal: spacing.small, - }, -}; -export const spacingInnerTopSmall = { - container: { - paddingTop: spacing.small, - }, -}; -export const spacingInnerRightSmall = { - container: { - paddingRight: spacing.small, - }, -}; -export const spacingInnerLeftSmall = { - container: { - paddingLeft: spacing.small, - }, -}; -export const spacingInnerBottomSmall = { - container: { - paddingBottom: spacing.small, - }, -}; -export const spacingInnerMedium = { - container: { - padding: spacing.regular, - }, -}; -export const spacingInnerVerticalMedium = { - container: { - paddingVertical: spacing.regular, - }, -}; -export const spacingInnerHorizontalMedium = { - container: { - paddingHorizontal: spacing.regular, - }, -}; -export const spacingInnerTopMedium = { - container: { - paddingTop: spacing.regular, - }, -}; -export const spacingInnerRightMedium = { - container: { - paddingRight: spacing.regular, - }, -}; -export const spacingInnerLeftMedium = { - container: { - paddingLeft: spacing.regular, - }, -}; -export const spacingInnerBottomMedium = { - container: { - paddingBottom: spacing.regular, - }, -}; -export const spacingInnerLarge = { - container: { - padding: spacing.large, - }, -}; -export const spacingInnerVerticalLarge = { - container: { - paddingVertical: spacing.large, - }, -}; -export const spacingInnerHorizontalLarge = { - container: { - paddingHorizontal: spacing.large, - }, -}; -export const spacingInnerTopLarge = { - container: { - paddingTop: spacing.large, - }, -}; -export const spacingInnerRightLarge = { - container: { - paddingRight: spacing.large, - }, -}; -export const spacingInnerLeftLarge = { - container: { - paddingLeft: spacing.large, - }, -}; -export const spacingInnerBottomLarge = { - container: { - paddingBottom: spacing.large, - }, -}; -export const spacingInnerLarger = { - container: { - padding: spacing.larger, - }, -}; -export const spacingInnerVerticalLarger = { - container: { - paddingVertical: spacing.larger, - }, -}; -export const spacingInnerHorizontalLarger = { - container: { - paddingHorizontal: spacing.larger, - }, -}; -export const spacingInnerTopLarger = { - container: { - paddingTop: spacing.larger, - }, -}; -export const spacingInnerRightLarger = { - container: { - paddingRight: spacing.larger, - }, -}; -export const spacingInnerLeftLarger = { - container: { - paddingLeft: spacing.larger, - }, -}; -export const spacingInnerBottomLarger = { - container: { - paddingBottom: spacing.larger, - }, -}; -export const spacingInnerLargest = { - container: { - padding: spacing.largest, - }, -}; -export const spacingInnerVerticalLargest = { - container: { - paddingVertical: spacing.largest, - }, -}; -export const spacingInnerHorizontalLargest = { - container: { - paddingHorizontal: spacing.largest, - }, -}; -export const spacingInnerTopLargest = { - container: { - paddingTop: spacing.largest, - }, -}; -export const spacingInnerRightLargest = { - container: { - paddingRight: spacing.largest, - }, -}; -export const spacingInnerLeftLargest = { - container: { - paddingLeft: spacing.largest, - }, -}; -export const spacingInnerBottomLargest = { - container: { - paddingBottom: spacing.largest, - }, -}; -// -// -//== Outer Spacing -export const spacingOuterSmallest = { - container: { - margin: spacing.smallest, - }, -}; -export const spacingOuterVerticalSmallest = { - container: { - marginVertical: spacing.smallest, - }, -}; -export const spacingOuterHorizontalSmallest = { - container: { - marginHorizontal: spacing.smallest, - }, -}; -export const spacingOuterTopSmallest = { - container: { - marginTop: spacing.smallest, - }, -}; -export const spacingOuterRightSmallest = { - container: { - marginRight: spacing.smallest, - }, -}; -export const spacingOuterLeftSmallest = { - container: { - marginLeft: spacing.smallest, - }, -}; -export const spacingOuterBottomSmallest = { - container: { - marginBottom: spacing.smallest, - }, -}; -export const spacingOuterSmaller = { - container: { - margin: spacing.smaller, - }, -}; -export const spacingOuterVerticalSmaller = { - container: { - marginVertical: spacing.smaller, - }, -}; -export const spacingOuterHorizontalSmaller = { - container: { - marginHorizontal: spacing.smaller, - }, -}; -export const spacingOuterTopSmaller = { - container: { - marginTop: spacing.smaller, - }, -}; -export const spacingOuterRightSmaller = { - container: { - marginRight: spacing.smaller, - }, -}; -export const spacingOuterLeftSmaller = { - container: { - marginLeft: spacing.smaller, - }, -}; -export const spacingOuterBottomSmaller = { - container: { - marginBottom: spacing.smaller, - }, -}; -export const spacingOuterSmall = { - container: { - margin: spacing.small, - }, -}; -export const spacingOuterVerticalSmall = { - container: { - marginVertical: spacing.small, - }, -}; -export const spacingOuterHorizontalSmall = { - container: { - marginHorizontal: spacing.small, - }, -}; -export const spacingOuterTopSmall = { - container: { - marginTop: spacing.small, - }, -}; -export const spacingOuterRightSmall = { - container: { - marginRight: spacing.small, - }, -}; -export const spacingOuterLeftSmall = { - container: { - marginLeft: spacing.small, - }, -}; -export const spacingOuterBottomSmall = { - container: { - marginBottom: spacing.small, - }, -}; -export const spacingOuterMedium = { - container: { - margin: spacing.regular, - }, -}; -export const spacingOuterVerticalMedium = { - container: { - marginVertical: spacing.regular, - }, -}; -export const spacingOuterHorizontalMedium = { - container: { - marginHorizontal: spacing.regular, - }, -}; -export const spacingOuterTopMedium = { - container: { - marginTop: spacing.regular, - }, -}; -export const spacingOuterRightMedium = { - container: { - marginRight: spacing.regular, - }, -}; -export const spacingOuterLeftMedium = { - container: { - marginLeft: spacing.regular, - }, -}; -export const spacingOuterBottomMedium = { - container: { - marginBottom: spacing.regular, - }, -}; -export const spacingOuterLarge = { - container: { - margin: spacing.large, - }, -}; -export const spacingOuterVerticalLarge = { - container: { - marginVertical: spacing.large, - }, -}; -export const spacingOuterHorizontalLarge = { - container: { - marginHorizontal: spacing.large, - }, -}; -export const spacingOuterTopLarge = { - container: { - marginTop: spacing.large, - }, -}; -export const spacingOuterRightLarge = { - container: { - marginRight: spacing.large, - }, -}; -export const spacingOuterLeftLarge = { - container: { - marginLeft: spacing.large, - }, -}; -export const spacingOuterBottomLarge = { - container: { - marginBottom: spacing.large, - }, -}; -export const spacingOuterLarger = { - container: { - margin: spacing.larger, - }, -}; -export const spacingOuterVerticalLarger = { - container: { - marginVertical: spacing.larger, - }, -}; -export const spacingOuterHorizontalLarger = { - container: { - marginHorizontal: spacing.larger, - }, -}; -export const spacingOuterTopLarger = { - container: { - marginTop: spacing.larger, - }, -}; -export const spacingOuterRightLarger = { - container: { - marginRight: spacing.larger, - }, -}; -export const spacingOuterLeftLarger = { - container: { - marginLeft: spacing.larger, - }, -}; -export const spacingOuterBottomLarger = { - container: { - marginBottom: spacing.larger, - }, -}; -export const spacingOuterLargest = { - container: { - margin: spacing.largest, - }, -}; -export const spacingOuterVerticalLargest = { - container: { - marginVertical: spacing.largest, - }, -}; -export const spacingOuterHorizontalLargest = { - container: { - marginHorizontal: spacing.largest, - }, -}; -export const spacingOuterTopLargest = { - container: { - marginTop: spacing.largest, - }, -}; -export const spacingOuterRightLargest = { - container: { - marginRight: spacing.largest, - }, -}; -export const spacingOuterLeftLargest = { - container: { - marginLeft: spacing.largest, - }, -}; -export const spacingOuterBottomLargest = { - container: { - marginBottom: spacing.largest, - }, -}; diff --git a/theme_old/styles/native/core/helpers/_functions/adjustfont.js b/theme_old/styles/native/core/helpers/_functions/adjustfont.js deleted file mode 100644 index 7c8efe1..0000000 --- a/theme_old/styles/native/core/helpers/_functions/adjustfont.js +++ /dev/null @@ -1,59 +0,0 @@ -import { Dimensions, PixelRatio } from "react-native"; -const { height, width } = Dimensions.get("window"); -const pixelRatio = PixelRatio.get(); -/** - * - * Adjust the font size based on the screen size - * - * @param {number} size Font size - * - * @return {number} Returns adjusted font size - */ -function adjustFont(size) { - if (pixelRatio === 2) { - // iphone 5s and older Androids - if (width < 360) - return size * 0.95; - // iphone 5 - if (height < 667) - return size; - // iphone 6-6s - else if (height >= 667 && height <= 735) - return size * 1.15; - // older phablets - return size * 1.25; - } - if (pixelRatio === 3) { - // catch Android font scaling on small machines - // where pixel ratio / font scale ratio => 3:3 - if (width <= 360) - return size; - // Catch other weird android width sizings - if (height < 667) - return size * 1.15; - // catch in-between size Androids and scale font up - if (height >= 667 && height <= 735) - return size * 1.2; - // catch larger devices - // ie iphone 6s plus / 7 plus / mi note - return size * 1.27; - } - if (pixelRatio === 3.5) { - // catch Android font scaling on small machines - // where pixel ratio / font scale ratio => 3:3 - if (width <= 360) - return size; - // Catch other smaller android height sizings - if (height < 667) - return size * 1.2; - // catch in-between size Androids and scale font up - if (height >= 667 && height <= 735) - return size * 1.25; - // catch larger phablet devices - return size * 1.4; - } - // if older device ie pixelRatio !== 2 || 3 || 3.5 - return size; -} -// -export { adjustFont as default, height, width }; diff --git a/theme_old/styles/native/core/helpers/_functions/colorwords.js b/theme_old/styles/native/core/helpers/_functions/colorwords.js deleted file mode 100644 index 3c4cb0f..0000000 --- a/theme_old/styles/native/core/helpers/_functions/colorwords.js +++ /dev/null @@ -1,153 +0,0 @@ -// -const colors = { - aliceblue: { r: 240, g: 248, b: 255 }, - antiquewhite: { r: 250, g: 235, b: 215 }, - aqua: { r: 0, g: 255, b: 255 }, - aquamarine: { r: 127, g: 255, b: 212 }, - azure: { r: 240, g: 255, b: 255 }, - beige: { r: 245, g: 245, b: 220 }, - bisque: { r: 255, g: 228, b: 196 }, - black: { r: 0, g: 0, b: 0 }, - blanchedalmond: { r: 255, g: 235, b: 205 }, - blue: { r: 0, g: 0, b: 255 }, - blueviolet: { r: 138, g: 43, b: 226 }, - brown: { r: 165, g: 42, b: 42 }, - burlywood: { r: 222, g: 184, b: 135 }, - cadetblue: { r: 95, g: 158, b: 160 }, - chartreuse: { r: 127, g: 255, b: 0 }, - chocolate: { r: 210, g: 105, b: 30 }, - coral: { r: 255, g: 127, b: 80 }, - cornflowerblue: { r: 100, g: 149, b: 237 }, - cornsilk: { r: 255, g: 248, b: 220 }, - crimson: { r: 220, g: 20, b: 60 }, - cyan: { r: 0, g: 255, b: 255 }, - darkblue: { r: 0, g: 0, b: 139 }, - darkcyan: { r: 0, g: 139, b: 139 }, - darkgoldenrod: { r: 184, g: 134, b: 11 }, - darkgray: { r: 169, g: 169, b: 169 }, - darkgreen: { r: 0, g: 100, b: 0 }, - darkgrey: { r: 169, g: 169, b: 169 }, - darkkhaki: { r: 189, g: 183, b: 107 }, - darkmagenta: { r: 139, g: 0, b: 139 }, - darkolivegreen: { r: 85, g: 107, b: 47 }, - darkorange: { r: 255, g: 140, b: 0 }, - darkorchid: { r: 153, g: 50, b: 204 }, - darkred: { r: 139, g: 0, b: 0 }, - darksalmon: { r: 233, g: 150, b: 122 }, - darkseagreen: { r: 143, g: 188, b: 143 }, - darkslateblue: { r: 72, g: 61, b: 139 }, - darkslategray: { r: 47, g: 79, b: 79 }, - darkslategrey: { r: 47, g: 79, b: 79 }, - darkturquoise: { r: 0, g: 206, b: 209 }, - darkviolet: { r: 148, g: 0, b: 211 }, - deeppink: { r: 255, g: 20, b: 147 }, - deepskyblue: { r: 0, g: 191, b: 255 }, - dimgray: { r: 105, g: 105, b: 105 }, - dimgrey: { r: 105, g: 105, b: 105 }, - dodgerblue: { r: 30, g: 144, b: 255 }, - firebrick: { r: 178, g: 34, b: 34 }, - floralwhite: { r: 255, g: 250, b: 240 }, - forestgreen: { r: 34, g: 139, b: 34 }, - fuchsia: { r: 255, g: 0, b: 255 }, - gainsboro: { r: 220, g: 220, b: 220 }, - ghostwhite: { r: 248, g: 248, b: 255 }, - gold: { r: 255, g: 215, b: 0 }, - goldenrod: { r: 218, g: 165, b: 32 }, - gray: { r: 128, g: 128, b: 128 }, - green: { r: 0, g: 128, b: 0 }, - greenyellow: { r: 173, g: 255, b: 47 }, - grey: { r: 128, g: 128, b: 128 }, - honeydew: { r: 240, g: 255, b: 240 }, - hotpink: { r: 255, g: 105, b: 180 }, - indianred: { r: 205, g: 92, b: 92 }, - indigo: { r: 75, g: 0, b: 130 }, - ivory: { r: 255, g: 255, b: 240 }, - khaki: { r: 240, g: 230, b: 140 }, - lavender: { r: 230, g: 230, b: 250 }, - lavenderblush: { r: 255, g: 240, b: 245 }, - lawngreen: { r: 124, g: 252, b: 0 }, - lemonchiffon: { r: 255, g: 250, b: 205 }, - lightblue: { r: 173, g: 216, b: 230 }, - lightcoral: { r: 240, g: 128, b: 128 }, - lightcyan: { r: 224, g: 255, b: 255 }, - lightgoldenrodyellow: { r: 250, g: 250, b: 210 }, - lightgray: { r: 211, g: 211, b: 211 }, - lightgreen: { r: 144, g: 238, b: 144 }, - lightgrey: { r: 211, g: 211, b: 211 }, - lightpink: { r: 255, g: 182, b: 193 }, - lightsalmon: { r: 255, g: 160, b: 122 }, - lightseagreen: { r: 32, g: 178, b: 170 }, - lightskyblue: { r: 135, g: 206, b: 250 }, - lightslategray: { r: 119, g: 136, b: 153 }, - lightslategrey: { r: 119, g: 136, b: 153 }, - lightsteelblue: { r: 176, g: 196, b: 222 }, - lightyellow: { r: 255, g: 255, b: 224 }, - lime: { r: 0, g: 255, b: 0 }, - limegreen: { r: 50, g: 205, b: 50 }, - linen: { r: 250, g: 240, b: 230 }, - magenta: { r: 255, g: 0, b: 255 }, - maroon: { r: 128, g: 0, b: 0 }, - mediumaquamarine: { r: 102, g: 205, b: 170 }, - mediumblue: { r: 0, g: 0, b: 205 }, - mediumorchid: { r: 186, g: 85, b: 211 }, - mediumpurple: { r: 147, g: 112, b: 219 }, - mediumseagreen: { r: 60, g: 179, b: 113 }, - mediumslateblue: { r: 123, g: 104, b: 238 }, - mediumspringgreen: { r: 0, g: 250, b: 154 }, - mediumturquoise: { r: 72, g: 209, b: 204 }, - mediumvioletred: { r: 199, g: 21, b: 133 }, - midnightblue: { r: 25, g: 25, b: 112 }, - mintcream: { r: 245, g: 255, b: 250 }, - mistyrose: { r: 255, g: 228, b: 225 }, - moccasin: { r: 255, g: 228, b: 181 }, - navajowhite: { r: 255, g: 222, b: 173 }, - navy: { r: 0, g: 0, b: 128 }, - oldlace: { r: 253, g: 245, b: 230 }, - olive: { r: 128, g: 128, b: 0 }, - olivedrab: { r: 107, g: 142, b: 35 }, - orange: { r: 255, g: 165, b: 0 }, - orangered: { r: 255, g: 69, b: 0 }, - orchid: { r: 218, g: 112, b: 214 }, - palegoldenrod: { r: 238, g: 232, b: 170 }, - palegreen: { r: 152, g: 251, b: 152 }, - paleturquoise: { r: 175, g: 238, b: 238 }, - palevioletred: { r: 219, g: 112, b: 147 }, - papayawhip: { r: 255, g: 239, b: 213 }, - peachpuff: { r: 255, g: 218, b: 185 }, - peru: { r: 205, g: 133, b: 63 }, - pink: { r: 255, g: 192, b: 203 }, - plum: { r: 221, g: 160, b: 221 }, - powderblue: { r: 176, g: 224, b: 230 }, - purple: { r: 128, g: 0, b: 128 }, - rebeccapurple: { r: 102, g: 51, b: 153 }, - red: { r: 255, g: 0, b: 0 }, - rosybrown: { r: 188, g: 143, b: 143 }, - royalblue: { r: 65, g: 105, b: 225 }, - saddlebrown: { r: 139, g: 69, b: 19 }, - salmon: { r: 250, g: 128, b: 114 }, - sandybrown: { r: 244, g: 164, b: 96 }, - seagreen: { r: 46, g: 139, b: 87 }, - seashell: { r: 255, g: 245, b: 238 }, - sienna: { r: 160, g: 82, b: 45 }, - silver: { r: 192, g: 192, b: 192 }, - skyblue: { r: 135, g: 206, b: 235 }, - slateblue: { r: 106, g: 90, b: 205 }, - slategray: { r: 112, g: 128, b: 144 }, - slategrey: { r: 112, g: 128, b: 144 }, - snow: { r: 255, g: 250, b: 250 }, - springgreen: { r: 0, g: 255, b: 127 }, - steelblue: { r: 70, g: 130, b: 180 }, - tan: { r: 210, g: 180, b: 140 }, - teal: { r: 0, g: 128, b: 128 }, - thistle: { r: 216, g: 191, b: 216 }, - tomato: { r: 255, g: 99, b: 71 }, - turquoise: { r: 64, g: 224, b: 208 }, - violet: { r: 238, g: 130, b: 238 }, - wheat: { r: 245, g: 222, b: 179 }, - white: { r: 255, g: 255, b: 255 }, - whitesmoke: { r: 245, g: 245, b: 245 }, - yellow: { r: 255, g: 255, b: 0 }, - yellowgreen: { r: 154, g: 205, b: 50 }, -}; -// -export default colors; diff --git a/theme_old/styles/native/core/helpers/_functions/convertcolors.js b/theme_old/styles/native/core/helpers/_functions/convertcolors.js deleted file mode 100644 index d24f483..0000000 --- a/theme_old/styles/native/core/helpers/_functions/convertcolors.js +++ /dev/null @@ -1,228 +0,0 @@ -import colors from "./colorwords.js"; -/** - * - * Converts RGB color to HEX - * - * @param {number || string} r Accepts RGB as string || Accepts R as string or number - * @param {number || string} g Accepts G as string or number - * @param {number || string} b Accepts B as string or number - * - * @return {string} Returns HEX color - */ -function RgbToHex(r, g, b) { - if (typeof r === "string" && !g && !b) { - const color = r.replace(/rgb[(]|[)]/gm, ""); - [r, g, b] = color.split(","); - } - return "#" + ((1 << 24) + (Number(r) << 16) + (Number(g) << 8) + Number(b)).toString(16).slice(1); -} -/** - * - * Converts HEX or HEX Alpha to RGB - * - * @param {string} hex Accepts HEX color - * - * @return {object} Returns RGB color; {r,g,b} - */ -function hexToRgb(hex) { - hex = hex.substring(1); - hex = hex.length === 3 || hex.length === 4 ? [...hex].map(x => x + x).join("") : hex; - return rgbaToRgb({ - r: parseInt("0x" + hex[0] + hex[1], 16), - g: parseInt("0x" + hex[2] + hex[3], 16), - b: parseInt("0x" + hex[4] + hex[5], 16), - a: parseInt("0x" + hex[6] + hex[7], 16) / 255 || 1, - }); -} -/** - * - * Converts any color format to RGB string - * - * @param {string} anyColor Accepts any color format - * - * @return {string} Returns RGB color; `r,g,b` - */ -export function anyColorToRgbString(anyColor) { - const { r, g, b } = checkColor(anyColor); - return [r, g, b].join(","); -} -/** - * - * Converts HSL to RGB color - * - * @param {string} hsl Accepts HSL color - * - * @return {object} Returns RGB color; {r,g,b} - */ -function hslToRgb(hsl) { - let hslArray = hsl.replace(/hsla?[(]|[%]|[)]/gm, "").split(",").map(x => x.trim()); - let h = hslArray[0], s = Number(hslArray[1]) / 100, l = Number(hslArray[2]) / 100, a = 1; - // Strip label and convert to degrees (if necessary) - if (~h.indexOf("deg")) - h = h.substr(0, h.length - 3); - else if (~h.indexOf("rad")) - h = Math.round(Number(h.substr(0, h.length - 3)) * (180 / Math.PI)); - else if (~h.indexOf("turn")) - h = Math.round(Number(h.substr(0, h.length - 4)) * 360); - h = Number(h); - if (h >= 360) - h %= 360; // Keep hue fraction of 360 if h is higher than 360 - let r = 255, g = 255, b = 255; - const c = (1 - Math.abs(2 * l - 1)) * s; // chroma -> color intensity - const x = c * (1 - Math.abs(((h / 60) % 2) - 1)); // Second largest component (first being chroma) - const m = l - c / 2; // Amount to add to each channel to match lightness - if (0 <= h && h < 60) { - r = c; - g = x; - b = 0; - } - else if (60 <= h && h < 120) { - r = x; - g = c; - b = 0; - } - else if (120 <= h && h < 180) { - r = 0; - g = c; - b = x; - } - else if (180 <= h && h < 240) { - r = 0; - g = x; - b = c; - } - else if (240 <= h && h < 300) { - r = x; - g = 0; - b = c; - } - else if (300 <= h && h < 360) { - r = c; - g = 0; - b = x; - } - return rgbaToRgb({ - r: Math.round((r + m) * 255), - g: Math.round((g + m) * 255), - b: Math.round((b + m) * 255), - a, - }); -} -/** - * - * Convert RGB string with HEX or Word inside to RGB object - * - * @param {string} rgb Accepts RGB color as string - * - * @return {object} Returns RGB color; {r,g,b} - */ -function rgbStringToRgb(rgb) { - const color = rgb.replace(/rgb[(]|[)]/gm, ""); - // if RGB has hex color definition - if (~rgb.indexOf("#")) - return hexToRgb(color); - // if RGB has word color definition - else if (!(/\d/).test(rgb)) - return colors[color.toLowerCase()]; - // if RGB has RGB color definition - else { - const [r, g, b] = color.split(","); - [r, g, b].forEach(x => x.trim()); - return { r: Number(r), g: Number(g), b: Number(b) }; - } -} -/** - * - * Converts RGB Alpha to RGB object - * - * @param {string} rgba Accepts RGB Alpha color - * - * @return {object} Returns RGB color; {r,g,b} - */ -function rgbaToRgb(rgba) { - let newAlpha = 1; - let RGB = typeof rgba === "object" ? rgba : { r: 255, g: 255, b: 255 }; - const calc = (val) => Math.round(newAlpha * (val / 255) * 255); // Calc best color contrast values - // const calc = val => Math.round((RGB.a * (val / 255) + (RGB.a * ( 0 / 255))) * 255); // Calc best color contrast values - if (typeof rgba === "string") { - const val = rgba.replace(/rgba[(]|[)]/gm, ""); - const color = val.slice(0, val.lastIndexOf(",")).trim(); - const alpha = Number(val.slice(val.lastIndexOf(",") + 1).trim()); - // if RGBA has HEX color definition - if (color[0] === "#") - RGB = hexToRgb(color); - // if RGBA has word color definition - else if (!(/\d/).test(color)) - RGB = colors[color.toLowerCase()]; - // if RGBA has RGB color definition - else { - const [r, g, b] = color.split(","); - [r, g, b].forEach(x => Number(x.trim())); - RGB = { r: Number(r), g: Number(g), b: Number(b) }; - } - // RGB.a = alpha; - newAlpha = alpha === 1 ? 1 : Number((1 - alpha).toPrecision(2)); - } - return { r: calc(RGB.r), g: calc(RGB.g), b: calc(RGB.b) }; -} -/** - * - * Check what color format is being used. - * - * @param {string} color Accepts any color format - * - * @return {object} Returns RGB color; {r,g,b} - */ -function checkColor(color) { - if (color in colors) - return colors[color.toLowerCase()]; - else if (color[0] === "#") - return hexToRgb(color); - else if (~color.indexOf("hsl")) - return hslToRgb(color); - else if (~color.indexOf("rgba")) - return rgbaToRgb(color); - else if (~color.indexOf("rgb")) - return rgbStringToRgb(color); - return { r: 255, g: 255, b: 255 }; -} -/** - * - * Set best contrast color based on a (background) color - * - * @param {string} color Accepts any color format - * - * @return {string} Returns RGB Alpha color - */ -export function setColorBasedOnBackground(color) { - const c = checkColor(color); - const RGB = typeof c === "object" ? c : { r: 255, g: 255, b: 255 }; - // https://www.w3.org/TR/AERT/#color-contrast - const o = Math.round((RGB.r * 299 + RGB.g * 587 + RGB.b * 114) / 1000); - return o > 125 ? "rgba(0,0,0,.87)" : "rgba(255,255,255,.87)"; -} -/** - * - * Expects a color and a contrast value between 0 and 1.' - * It will look at the supplied color's brightness and will start the contrast scale either from #000 (black) or #FFF (white). - * This function will work best when you supply a very dark or very bright color. - * It will return a gray color with the desired contrast which is based on the specified color. - * - * @param {string} color Accepts any color format - * @param {number} contrast Accepts a value between 0 and 1 - * - * @return {string} Returns HEX color - */ -export function setContrastScale(contrast, color) { - if (contrast > 1) - contrast = 1; - if (contrast < 0) - contrast = 0; - const max = 256; - const c = checkColor(color); - const { r, g, b } = typeof c === "object" ? c : { r: 255, g: 255, b: 255 }; - // https://www.w3.org/TR/AERT/#color-contrast - const brightness = Math.round((r * 299 + g * 587 + b * 114) / 1000); - const value = Math.round(brightness > max / 2 ? max - max * contrast : max * contrast); - return RgbToHex(value, value, value); -} diff --git a/theme_old/styles/native/core/helpers/_functions/device.js b/theme_old/styles/native/core/helpers/_functions/device.js deleted file mode 100644 index a44011c..0000000 --- a/theme_old/styles/native/core/helpers/_functions/device.js +++ /dev/null @@ -1,24 +0,0 @@ -import { Platform } from "react-native"; -import DeviceInfo from "react-native-device-info"; -// -const isiPhoneModelWithNotch = () => { - const model = DeviceInfo.getDeviceId(); - if (model.includes("iPhone")) { - switch (model) { - case "iPhone10,6": // iPhone X GSM - case "iPhone11,2": // iPhone XS - case "iPhone11,4": // iPhone XS Max - case "iPhone11,6": // iPhone XS Max Global - case "iPhone11,8": // Iphone XR - case "iPhone12,1": // Iphone 11 - case "iPhone12,3": // Iphone 11 Pro - case "iPhone12,5": // Iphone 11 Pro Max - return true; - default: - return false; - } - } - return false; -}; -// -export const isIphoneWithNotch = DeviceInfo.hasNotch() || (Platform.OS === "ios" && isiPhoneModelWithNotch()); diff --git a/theme_old/styles/native/core/helpers/_functions/mergeobjects.js b/theme_old/styles/native/core/helpers/_functions/mergeobjects.js deleted file mode 100644 index 0590b3e..0000000 --- a/theme_old/styles/native/core/helpers/_functions/mergeobjects.js +++ /dev/null @@ -1,33 +0,0 @@ -/** - * Merge 2 objects - * This function will look at every object property of the second object and will override the matching property in the first object - * - * @param {object[]} sources Array of 2 objects - * - * @return {object} Returns merged object - * - */ -export default function (...sources) { - function mergeDeep(target, ...sources) { - function isObject(item) { - return item && typeof item === "object" && !Array.isArray(item); - } - if (!sources.length) - return target; - const source = sources.shift(); - if (isObject(target) && isObject(source)) { - Object.keys(source).forEach((key) => { - if (isObject(source[key])) { - if (!target[key]) - Object.assign(target, { [key]: {} }); - mergeDeep(target[key], source[key]); - } - else { - Object.assign(target, { [key]: source[key] }); - } - }); - } - return mergeDeep(target, ...sources); - } - return mergeDeep({}, ...sources); -} diff --git a/theme_old/styles/native/core/helpers/_functions/shadeblendconvert.js b/theme_old/styles/native/core/helpers/_functions/shadeblendconvert.js deleted file mode 100644 index aeb99be..0000000 --- a/theme_old/styles/native/core/helpers/_functions/shadeblendconvert.js +++ /dev/null @@ -1,94 +0,0 @@ -/** - * Blend two colors or add a shade to color - * Colors can be: - * HEX => (#FFFFFF / #FFF) - * RGB => rgb(255,255,255) - * RGBA => rgba(255,255,255, 0.8) - * - * Usage: - * shade => shadeBlendConvert(-0.5, "#FFF") // Makes #FFF 50% darker - * shade => shadeBlendConvert(0.5, "#000") // Makes #000 50% lighter - * shade => shadeBlendConvert(0.5, "#000", "c") // Makes #000 50% lighter and converts HEX to RGB - * blend => shadeBlendConvert(0.2, "rgb(0,0,0)", "rgb(0,200,0)") // rgb(0,0,0) + rgb(0,200,0) + 20% Blend will become rgb(0,40,0) - * blend => shadeBlendConvert(-0.2, "rgb(0,0,0)", "rgb(0,200,0)") // rgb(0,0,0) + rgb(0,200,0) + -20% Blend will become rgb(0,160,0) - * blend => shadeBlendConvert(0.75, "rgb(200,60,20)", "#67DAF0") // rgb(200,60,20) + #67DAF0 + 75% Blend will become #7fb3b9 - * - * - * @param {number} c Amount of change. Value between -1 and 1 - * @param {string} fromValue HEX / RGB / RGBA Color - * @param {string} toValue HEX / RGB / RGBA Color to blend with. If (to === 'c') return value will be RGB Color - * - * @return {string} Returns HEX color or RGB color if parameter to === 'c' - * - */ -export function shadeBlendConvert(c, fromValue, toValue = undefined) { - if (typeof c != "number" || - c < -1 || - c > 1 || - typeof fromValue != "string" || - (fromValue[0] != "r" && fromValue[0] != "#") || - (toValue && typeof toValue != "string")) - return "red"; //ErrorCheck - const sbcRip = (value) => { - const l = value.length, RGB = []; - if (l > 9) { - const d = value.split(","); - if (d.length < 3 || d.length > 4) - return null; //ErrorCheck - (RGB[0] = i(d[0].split("(")[1])), - (RGB[1] = i(d[1])), - (RGB[2] = i(d[2])), - (RGB[3] = d[3] ? parseFloat(d[3]) : -1); - } - else { - let hex = ""; - if (l == 8 || l == 6 || l < 4) - return null; //ErrorCheck - if (l == 4 || l == 5) - hex = "#" + value[1] + value[1] + value[2] + value[2] + value[3] + value[3] + (l > 4 ? value[4] + "" + value[4] : ""); //3 or 4 digit - let d = i(hex.slice(1), 16); - RGB[0] = (d >> 16) & 255; - RGB[1] = (d >> 8) & 255; - RGB[2] = d & 255; - RGB[3] = -1; - if (l == 9 || l == 5) { - RGB[3] = r((RGB[2] / 255) * 10000) / 10000; - RGB[2] = RGB[1]; - RGB[1] = RGB[0]; - RGB[0] = (d >> 24) & 255; - } - } - return RGB; - }; - let i = parseInt, r = Math.round, th = fromValue.length > 9, h = typeof toValue == "string" ? (toValue.length > 9 ? true : toValue == "c" ? !th : false) : th, b = c < 0, p = b ? c * -1 : c, to = toValue && toValue != "c" ? toValue : b ? "#000000" : "#FFFFFF", f = sbcRip(fromValue), t = sbcRip(to); - if (!f || !t) - return "red"; //ErrorCheck - if (h) - return ("rgb" + - (f[3] > -1 || t[3] > -1 ? "a(" : "(") + - r((t[0] - f[0]) * p + f[0]) + - "," + - r((t[1] - f[1]) * p + f[1]) + - "," + - r((t[2] - f[2]) * p + f[2]) + - (f[3] < 0 && t[3] < 0 - ? ")" - : "," + - (f[3] > -1 && t[3] > -1 ? r(((t[3] - f[3]) * p + f[3]) * 10000) / 10000 : t[3] < 0 ? f[3] : t[3]) + - ")")); - else - return ("#" + - (0x100000000 + - r((t[0] - f[0]) * p + f[0]) * 0x1000000 + - r((t[1] - f[1]) * p + f[1]) * 0x10000 + - r((t[2] - f[2]) * p + f[2]) * 0x100 + - (f[3] > -1 && t[3] > -1 - ? r(((t[3] - f[3]) * p + f[3]) * 255) - : t[3] > -1 - ? r(t[3] * 255) - : f[3] > -1 - ? r(f[3] * 255) - : 255)) - .toString(16) - .slice(1, f[3] > -1 || t[3] > -1 ? undefined : -2)); -} diff --git a/theme_old/styles/native/core/helpers/activityindicator.js b/theme_old/styles/native/core/helpers/activityindicator.js deleted file mode 100644 index 97ac202..0000000 --- a/theme_old/styles/native/core/helpers/activityindicator.js +++ /dev/null @@ -1,30 +0,0 @@ -import { brand } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Activity Indicator - -//== Design Properties -//## Helper classes to change the look and feel of the widget -========================================================================== */ -// Activity indicator Colors -export const activityIndicatorSuccess = { - indicator: { - color: brand.success, - }, -}; -export const activityIndicatorWarning = { - indicator: { - color: brand.warning, - }, -}; -export const activityIndicatorDanger = { - indicator: { - color: brand.danger, - }, -}; diff --git a/theme_old/styles/native/core/helpers/badge.js b/theme_old/styles/native/core/helpers/badge.js deleted file mode 100644 index d224531..0000000 --- a/theme_old/styles/native/core/helpers/badge.js +++ /dev/null @@ -1,47 +0,0 @@ -import { badge } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Badge - -//== Design Properties -//## Helper classes to change the look and feel of the widget -========================================================================== */ -// Badge Colors -export const badgePrimary = { - container: { - backgroundColor: badge.primary.backgroundColor, - }, - caption: { - color: badge.primary.color, - }, -}; -export const badgeSuccess = { - container: { - backgroundColor: badge.success.backgroundColor, - }, - caption: { - color: badge.success.color, - }, -}; -export const badgeWarning = { - container: { - backgroundColor: badge.warning.backgroundColor, - }, - caption: { - color: badge.warning.color, - }, -}; -export const badgeDanger = { - container: { - backgroundColor: badge.danger.backgroundColor, - }, - caption: { - color: badge.danger.color, - }, -}; diff --git a/theme_old/styles/native/core/helpers/barchart.js b/theme_old/styles/native/core/helpers/barchart.js deleted file mode 100644 index 834992c..0000000 --- a/theme_old/styles/native/core/helpers/barchart.js +++ /dev/null @@ -1,11 +0,0 @@ -export const barChartSquare = { - chart: { - aspectRatio: 1 - } -}; -export const barChartMaxSpace = { - chart: { - flex: 1, - aspectRatio: undefined - } -}; diff --git a/theme_old/styles/native/core/helpers/buttons.js b/theme_old/styles/native/core/helpers/buttons.js deleted file mode 100644 index 80e7c6b..0000000 --- a/theme_old/styles/native/core/helpers/buttons.js +++ /dev/null @@ -1,208 +0,0 @@ -import { brand, button, contrast, font } from "../variables"; -import merge from "./_functions/mergeobjects"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Button - -//== Design Properties -//## Helper classes to change the look and feel of the widget -========================================================================== */ -// Button Colors -export const btnSecondary = { - container: { - borderColor: button.secondary.borderColor, - backgroundColor: button.secondary.backgroundColor, - }, - icon: { - color: button.secondary.color, - }, - caption: { - color: button.secondary.color, - }, -}; -export const btnSuccess = { - container: { - borderColor: button.success.borderColor, - backgroundColor: button.success.backgroundColor, - }, - icon: { - color: button.success.color, - }, - caption: { - color: button.success.color, - }, -}; -export const btnWarning = { - container: { - borderColor: button.warning.borderColor, - backgroundColor: button.warning.backgroundColor, - }, - icon: { - color: button.warning.color, - }, - caption: { - color: button.warning.color, - }, -}; -export const btnDanger = { - container: { - borderColor: button.danger.borderColor, - backgroundColor: button.danger.backgroundColor, - }, - icon: { - color: button.danger.color, - }, - caption: { - color: button.danger.color, - }, -}; -export const btnPrimaryInversed = { - container: { - borderColor: button.primary.color, - backgroundColor: button.primary.color, - }, - icon: { - color: button.primary.backgroundColor, - }, - caption: { - color: button.primary.backgroundColor, - }, -}; -// -//== Extra Classes -//## Helper classes to change the look and feel of the widget -//-------------------------------------------------------------------------------------------------------------------// -export const btnSecondaryInversed = { - container: { - borderColor: button.secondary.inversedColor, - backgroundColor: button.secondary.backgroundColor, - }, - icon: { - color: button.secondary.inversedColor, - }, - caption: { - color: button.secondary.inversedColor, - }, -}; -// -// Button Icon Only -export const btnIcon = { - container: { - borderWidth: 0, - backgroundColor: "transparent", - paddingVertical: 0, - paddingHorizontal: 0, - }, - icon: { - color: font.color, - }, - caption: { - fontSize: 0, - }, -}; -export const btnIconPrimary = merge(btnIcon, { - icon: { - color: button.primary.backgroundColor, - }, -}); -export const btnIconSecondary = merge(btnIcon, { - icon: { - color: contrast.low, - }, -}); -export const btnIconSuccess = merge(btnIcon, { - icon: { - color: button.success.backgroundColor, - }, -}); -export const btnIconWarning = merge(btnIcon, { - icon: { - color: button.warning.backgroundColor, - }, -}); -export const btnIconDanger = merge(btnIcon, { - icon: { - color: button.danger.backgroundColor, - }, -}); -export const btnIconWhite = merge(btnIcon, { - icon: { - color: "#FFF", - }, -}); -// -export const btnIconGrayRounded = { - container: { - height: 80, - width: 80, - padding: 10, - borderRadius: 20, - borderWidth: 0, - backgroundColor: contrast.lowest, - }, - icon: { - size: 30, - color: contrast.high, - }, - caption: { - fontSize: 0, - }, -}; -// -// Round Button Icon With Background -export const btnIconPrimaryBackground = { - container: { - width: 40, - height: 40, - borderRadius: 20, - paddingVertical: 0, - paddingHorizontal: 0, - }, - icon: { - width: "100%", - height: "100%", - alignItems: "center", - justifyContent: "center", - size: button.fontSizeIconLarge, - color: button.primary.color, - }, -}; -// -// -// Text only -export const btnAsText = { - container: { - maxHeight: 22, - borderWidth: 0, - borderRadius: 0, - rippleColor: contrast.lowest, - backgroundColor: "transparent", - paddingVertical: 0, - paddingHorizontal: 0, - }, - icon: { - color: brand.primary, - size: button.fontSizeIcon, - }, - caption: { - color: brand.primary, - fontWeight: font.weightSemiBold, - fontSize: button.fontSize, - }, -}; -// -// Button sizes -export const btnLarge = { - icon: { - size: button.fontSizeIconLarge, - }, - caption: { - fontSize: button.fontSizeLarge, - }, -}; diff --git a/theme_old/styles/native/core/helpers/floatingactionbutton.js b/theme_old/styles/native/core/helpers/floatingactionbutton.js deleted file mode 100644 index 5d37bed..0000000 --- a/theme_old/styles/native/core/helpers/floatingactionbutton.js +++ /dev/null @@ -1,30 +0,0 @@ -import { brand } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Floating Action Button - -//== Design Properties -//## Helper classes to change the look and feel of the widget -========================================================================== */ -// Floating Action Button Colors -export const floatingActionButtonSuccess = { - button: { - backgroundColor: brand.success, - }, -}; -export const floatingActionButtonWarning = { - button: { - backgroundColor: brand.warning, - }, -}; -export const floatingActionButtonDanger = { - button: { - backgroundColor: brand.danger, - }, -}; diff --git a/theme_old/styles/native/core/helpers/helperclasses.js b/theme_old/styles/native/core/helpers/helperclasses.js deleted file mode 100644 index 50ba7fb..0000000 --- a/theme_old/styles/native/core/helpers/helperclasses.js +++ /dev/null @@ -1,73 +0,0 @@ -import { Platform } from "react-native"; -import { background, border } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -*/ -// Hide on Android -export const hideOnAndroid = { - container: { - display: Platform.select({ ios: "flex", android: "none" }), - }, -}; -// Hide on iOS -export const hideOnIos = { - container: { - display: Platform.select({ ios: "none", android: "flex" }), - }, -}; -// -//== Background Colors -export const backgroundPrimary = { - container: { - backgroundColor: background.primary, - }, -}; -export const backgroundSecondary = { - container: { - backgroundColor: background.secondary, - }, -}; -export const backgroundBrandPrimary = { - container: { - backgroundColor: background.brandPrimary, - }, -}; -export const backgroundBrandSuccess = { - container: { - backgroundColor: background.brandSuccess, - }, -}; -export const backgroundBrandWarning = { - container: { - backgroundColor: background.brandWarning, - }, -}; -export const backgroundBrandDanger = { - container: { - backgroundColor: background.brandDanger, - }, -}; -export const backgroundGray = { - container: { - backgroundColor: background.gray, - }, -}; -// -// borders -export const borderTop = { - container: { - borderColor: border.color, - borderTopWidth: border.width, - }, -}; -export const borderBottom = { - container: { - borderColor: border.color, - borderBottomWidth: border.width, - }, -}; diff --git a/theme_old/styles/native/core/helpers/images.js b/theme_old/styles/native/core/helpers/images.js deleted file mode 100644 index cdfaaa2..0000000 --- a/theme_old/styles/native/core/helpers/images.js +++ /dev/null @@ -1,55 +0,0 @@ -import { border } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Image - -//== Design Properties -//## Helper classes to change the look and feel of the widget -========================================================================== */ -// -// -//== Extra Classes -//## Helper classes to change the look and feel of the widget -//-------------------------------------------------------------------------------------------------------------------// -// Image Sizes -export const thumbnail = { - image: { - width: "100%", - height: "auto", - aspectRatio: 1, - borderRadius: border.radius, - }, -}; -export const avatarSmall = { - image: { - width: 60, - height: 60, - borderRadius: 30, - }, -}; -export const avatarMedium = { - image: { - width: 80, - height: 80, - borderRadius: 40, - }, -}; -export const avatarLarge = { - image: { - width: 120, - height: 120, - borderRadius: 60, - }, -}; -export const inputIcon = { - image: { - width: 30, - height: 30, - }, -}; diff --git a/theme_old/styles/native/core/helpers/linechart.js b/theme_old/styles/native/core/helpers/linechart.js deleted file mode 100644 index 32eabbd..0000000 --- a/theme_old/styles/native/core/helpers/linechart.js +++ /dev/null @@ -1,11 +0,0 @@ -export const lineChartSquare = { - chart: { - aspectRatio: 1 - } -}; -export const lineChartMaxSpace = { - chart: { - flex: 1, - aspectRatio: undefined - } -}; diff --git a/theme_old/styles/native/core/helpers/listviews.js b/theme_old/styles/native/core/helpers/listviews.js deleted file mode 100644 index 8d98e1f..0000000 --- a/theme_old/styles/native/core/helpers/listviews.js +++ /dev/null @@ -1,41 +0,0 @@ -import { listView } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - List View - -//== Design Properties -//## Helper classes to change the look and feel of the widget -========================================================================== */ -// List item dividers -export const listItemBorderBottom = { - listItem: { - borderColor: listView.border.color, - borderBottomWidth: listView.border.width, - }, -}; -export const listItemBorderRight = { - listItem: { - borderColor: listView.border.color, - borderRightWidth: listView.border.width, - }, -}; -// -//== Extra Classes -//## Helper classes to change the look and feel of the widget -//-------------------------------------------------------------------------------------------------------------------// -export const listItemIconSmall = { - icon: { - size: 16, - }, -}; -export const listItemIconLarge = { - icon: { - size: 24, - }, -}; diff --git a/theme_old/styles/native/core/helpers/listviewswipe.js b/theme_old/styles/native/core/helpers/listviewswipe.js deleted file mode 100644 index 5f09712..0000000 --- a/theme_old/styles/native/core/helpers/listviewswipe.js +++ /dev/null @@ -1,37 +0,0 @@ -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - List View Swipe - -//== Design Properties -//## Helper classes to change the look and feel of the widget -========================================================================== */ -export const listViewSwipeSmallPanels = { - leftAction: { - // PanelSize & All ViewStyle properties are allowed - panelSize: 150, - }, - rightAction: { - // PanelSize & All ViewStyle properties are allowed - panelSize: 150, - }, -}; -export const listViewSwipeLargePanels = { - leftAction: { - // PanelSize & All ViewStyle properties are allowed - panelSize: 250, - }, - rightAction: { - // PanelSize & All ViewStyle properties are allowed - panelSize: 250, - }, -}; -// -//== Extra Classes -//## Helper classes to change the look and feel of the widget -//-------------------------------------------------------------------------------------------------------------------// diff --git a/theme_old/styles/native/core/helpers/maps.js b/theme_old/styles/native/core/helpers/maps.js deleted file mode 100644 index 20d3491..0000000 --- a/theme_old/styles/native/core/helpers/maps.js +++ /dev/null @@ -1,54 +0,0 @@ -import { border, brand } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Maps - -//== Design Properties -//## Helper classes to change the look and feel of the widget -========================================================================== */ -// Maps Colors -export const mapsSuccess = { - marker: { - color: brand.success, - }, -}; -export const mapsWarning = { - marker: { - color: brand.warning, - }, -}; -export const mapsDanger = { - marker: { - color: brand.danger, - }, -}; -// -// Maps Size -export const mapsSquare = { - container: { - aspectRatio: 1 / 1, - }, -}; -export const mapsMaxSpace = { - container: { - flex: 1, - aspectRatio: undefined, - }, -}; -// -//== Extra Classes -//## Helper classes to change the look and feel of the widget -//-------------------------------------------------------------------------------------------------------------------// -// Maps Shape -export const mapsRounded = { - container: { - borderRadius: border.radius, - overflow: "hidden", - }, -}; diff --git a/theme_old/styles/native/core/helpers/progressbar.js b/theme_old/styles/native/core/helpers/progressbar.js deleted file mode 100644 index 92298fc..0000000 --- a/theme_old/styles/native/core/helpers/progressbar.js +++ /dev/null @@ -1,58 +0,0 @@ -import { Platform } from "react-native"; -import { anyColorToRgbString } from "./_functions/convertcolors"; -import { brand } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Progress Bar - -//== Design Properties -//## Helper classes to change the look and feel of the widget -========================================================================== */ -// Progress Bar Color -export const progressBarSuccess = { - bar: { - borderColor: Platform.select({ ios: brand.success }), - backgroundColor: Platform.select({ android: `rgba(${anyColorToRgbString(brand.success)},0.2)` }), - }, - fill: { - backgroundColor: brand.success, - }, -}; -export const progressBarWarning = { - bar: { - borderColor: Platform.select({ ios: brand.warning }), - backgroundColor: Platform.select({ android: `rgba(${anyColorToRgbString(brand.warning)},0.2)` }), - }, - fill: { - backgroundColor: brand.warning, - }, -}; -export const progressBarDanger = { - bar: { - borderColor: Platform.select({ ios: brand.danger }), - backgroundColor: Platform.select({ android: `rgba(${anyColorToRgbString(brand.danger)},0.2)` }), - }, - fill: { - backgroundColor: brand.danger, - }, -}; -// -// Progress Bar Size -export const progressBarSmall = { - bar: { - height: 3, - borderRadius: Platform.select({ ios: 2 }), - }, -}; -export const progressBarLarge = { - bar: { - height: 10, - borderRadius: Platform.select({ ios: 8 }), - }, -}; diff --git a/theme_old/styles/native/core/helpers/progresscircle.js b/theme_old/styles/native/core/helpers/progresscircle.js deleted file mode 100644 index 393f0d7..0000000 --- a/theme_old/styles/native/core/helpers/progresscircle.js +++ /dev/null @@ -1,60 +0,0 @@ -import { brand, contrast, font } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Progress Circle - -//== Design Properties -//## Helper classes to change the look and feel of the widget -========================================================================== */ -// Progress Circle Color -export const progressCircleSuccess = { - fill: { - backgroundColor: brand.success, - }, - text: { - color: contrast.regular, - }, -}; -export const progressCircleWarning = { - fill: { - backgroundColor: brand.warning, - }, - text: { - color: contrast.regular, - }, -}; -export const progressCircleDanger = { - fill: { - backgroundColor: brand.danger, - }, - text: { - color: contrast.regular, - }, -}; -export const progressCircleGray = { - fill: { - backgroundColor: contrast.regular, - }, - text: { - color: contrast.regular, - }, -}; -// -// Sizes -export const progressCircleSmall = { - circle: { - size: 50, - }, - fill: { - width: 3, - }, - text: { - fontSize: font.sizeSmall, - }, -}; diff --git a/theme_old/styles/native/core/helpers/rangeslider.js b/theme_old/styles/native/core/helpers/rangeslider.js deleted file mode 100644 index 09d0e58..0000000 --- a/theme_old/styles/native/core/helpers/rangeslider.js +++ /dev/null @@ -1,18 +0,0 @@ -import { sliderDanger, sliderSuccess, sliderWarning } from "./slider"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Range Slider - -//== Design Properties -//## Helper classes to change the look and feel of the widget -========================================================================== */ -// Range Slider Color -export const rangeSliderSuccess = sliderSuccess; -export const rangeSliderWarning = sliderWarning; -export const rangeSliderDanger = sliderDanger; diff --git a/theme_old/styles/native/core/helpers/slider.js b/theme_old/styles/native/core/helpers/slider.js deleted file mode 100644 index e1f9443..0000000 --- a/theme_old/styles/native/core/helpers/slider.js +++ /dev/null @@ -1,40 +0,0 @@ -import { Platform } from "react-native"; -import { brand, contrast } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Slider - -//== Design Properties -//## Helper classes to change the look and feel of the widget -========================================================================== */ -// Slider Color -export const sliderSuccess = { - highlight: { - backgroundColor: brand.success, - }, - highlightDisabled: { - backgroundColor: Platform.select({ ios: brand.success, android: contrast.low }), - }, -}; -export const sliderWarning = { - highlight: { - backgroundColor: brand.warning, - }, - highlightDisabled: { - backgroundColor: Platform.select({ ios: brand.warning, android: contrast.low }), - }, -}; -export const sliderDanger = { - highlight: { - backgroundColor: brand.danger, - }, - highlightDisabled: { - backgroundColor: Platform.select({ ios: brand.danger, android: contrast.low }), - }, -}; diff --git a/theme_old/styles/native/core/helpers/tabcontainer.js b/theme_old/styles/native/core/helpers/tabcontainer.js deleted file mode 100644 index 2d64f41..0000000 --- a/theme_old/styles/native/core/helpers/tabcontainer.js +++ /dev/null @@ -1,33 +0,0 @@ -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Tab Container - -//== Design Properties -//## Helper classes to change the look and feel of the widget -========================================================================== */ -// Enable scroll for the tab bar -export const tabContainerScroll = { - tabBar: { - scrollEnabled: true, - }, -}; -// -//== Extra Classes -//## Helper classes to change the look and feel of the widget -//-------------------------------------------------------------------------------------------------------------------// -// Tab container as content of page -export const tabContainerMinimal = { - container: { - backgroundColor: "transparent", - }, - tabBar: { - backgroundColor: "transparent", - elevation: 0, - }, -}; diff --git a/theme_old/styles/native/core/helpers/textbox.js b/theme_old/styles/native/core/helpers/textbox.js deleted file mode 100644 index ad07594..0000000 --- a/theme_old/styles/native/core/helpers/textbox.js +++ /dev/null @@ -1,34 +0,0 @@ -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Text Box - -//== Design Properties -//## Helper classes to change the look and feel of the widget -========================================================================== */ -// Text Box Color -export const textInputCapitalizeNone = { - input: { - autoCapitalize: "none", - }, -}; -export const textInputCapitalizeCharacters = { - input: { - autoCapitalize: "characters", - }, -}; -export const textInputCapitalizeWords = { - input: { - autoCapitalize: "words", - }, -}; -export const textInputCapitalizeSentences = { - input: { - autoCapitalize: "sentences", - }, -}; diff --git a/theme_old/styles/native/core/helpers/typography.js b/theme_old/styles/native/core/helpers/typography.js deleted file mode 100644 index b960e00..0000000 --- a/theme_old/styles/native/core/helpers/typography.js +++ /dev/null @@ -1,150 +0,0 @@ -import { brand, contrast, font } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Text - -//== Design Properties -//## Helper classes to change the look and feel of the widget -========================================================================== */ -// Text Colors -export const textPrimary = { - text: { - color: brand.primary, - }, -}; -export const textSuccess = { - text: { - color: brand.success, - }, -}; -export const textWarning = { - text: { - color: brand.warning, - }, -}; -export const textDanger = { - text: { - color: brand.danger, - }, -}; -export const textWhite = { - text: { - color: "#FFF", - }, -}; -// -export const textContrastLowest = { - text: { - color: contrast.lowest, - }, -}; -export const textContrastLower = { - text: { - color: contrast.lower, - }, -}; -export const textContrastLow = { - text: { - color: contrast.low, - }, -}; -export const textContrastDefault = { - text: { - color: contrast.regular, - }, -}; -export const textContrastHigh = { - text: { - color: contrast.high, - }, -}; -export const textContrastHigher = { - text: { - color: contrast.higher, - }, -}; -export const textContrastHighest = { - text: { - color: contrast.highest, - }, -}; -// -// Text Alignment -export const textLeft = { - text: { - textAlign: "left", - }, -}; -export const textCenter = { - text: { - textAlign: "center", - }, -}; -export const textRight = { - text: { - textAlign: "right", - }, -}; -// -// Text Weights -export const textLight = { - text: { - fontWeight: font.weightLight, - }, -}; -export const textNormal = { - text: { - fontWeight: font.weightNormal, - }, -}; -export const textSemiBold = { - text: { - fontWeight: font.weightSemiBold, - }, -}; -export const textBold = { - text: { - fontWeight: font.weightBold, - }, -}; -// -// Text Sizes -export const textSmall = { - text: { - fontSize: font.sizeSmall, - lineHeight: font.sizeSmall + 2, - }, -}; -export const textLarge = { - text: { - fontSize: font.sizeLarge, - lineHeight: font.sizeLarge + 2, - }, -}; -// -//== Extra Classes -//## Helper classes to change the look and feel of the widget -//-------------------------------------------------------------------------------------------------------------------// -// -// Text Transformations -export const textLowercase = { - text: { - textTransform: "lowercase", - }, -}; -export const textUppercase = { - text: { - textTransform: "uppercase", - }, -}; -export const textCapitalize = { - text: { - textTransform: "capitalize", - }, -}; diff --git a/theme_old/styles/native/core/manifest.json b/theme_old/styles/native/core/manifest.json deleted file mode 100644 index cddd493..0000000 --- a/theme_old/styles/native/core/manifest.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "Atlas-UI-Framework", - "version": "2.6.7" -} \ No newline at end of file diff --git a/theme_old/styles/native/core/variables.js b/theme_old/styles/native/core/variables.js deleted file mode 100644 index 7d8a092..0000000 --- a/theme_old/styles/native/core/variables.js +++ /dev/null @@ -1,287 +0,0 @@ -import { Platform } from "react-native"; -import * as custom from "../app/custom-variables"; -import adjustFont, { height, width } from "./helpers/_functions/adjustfont"; -import { anyColorToRgbString, setColorBasedOnBackground, setContrastScale } from "./helpers/_functions/convertcolors"; -import merge from "./helpers/_functions/mergeobjects"; -// -// -//== Global variables -//## Variables to be used during styling -//-------------------------------------------------------------------------------------------------------------------// -// System defined read-only values -export const deviceHeight = height; -export const deviceWidth = width; -// -// Brand Style -let brand = { - primary: "#0595DB", - success: "#76CA02", - warning: "#f99b1d", - danger: "#ed1c24", - primaryLight: `rgba(${anyColorToRgbString("#0595DB")}, 0.14)`, - successLight: `rgba(${anyColorToRgbString("#76CA02")}, 0.14)`, - warningLight: `rgba(${anyColorToRgbString("#f99b1d")}, 0.14)`, - dangerLight: `rgba(${anyColorToRgbString("#ed1c24")}, 0.14)`, -}; -brand = merge(brand, custom.brand || {}); -// -// Background colors -let background = { - primary: "#FFF", - secondary: setContrastScale(0.03, "#FFF"), - gray: "#c6c6cc", - brandPrimary: brand.primary, - brandSuccess: brand.success, - brandWarning: brand.warning, - brandDanger: brand.danger, -}; -background = merge(background, custom.background || {}); -// -// Contrast (Gray) colors based on background.primary -let contrast = { - highest: setContrastScale(0.95, background.primary), - higher: setContrastScale(0.8, background.primary), - high: setContrastScale(0.65, background.primary), - regular: setContrastScale(0.5, background.primary), - low: setContrastScale(0.35, background.primary), - lower: setContrastScale(0.2, background.primary), - lowest: setContrastScale(0.05, background.primary), -}; -contrast = merge(contrast, custom.contrast || {}); -// -// Border Style -let border = { - color: setContrastScale(0.17, background.primary), - width: 1, - radius: 5, -}; -border = merge(border, custom.border || {}); -// -// Font Styles -let font = { - size: adjustFont(14), - sizeSmall: adjustFont(12), - sizeLarge: adjustFont(18), - sizeH1: adjustFont(31), - sizeH2: adjustFont(26), - sizeH3: adjustFont(24), - sizeH4: adjustFont(18), - sizeH5: adjustFont(14), - sizeH6: adjustFont(12), - color: setColorBasedOnBackground(background.primary), - colorDisabled: "#9DA1A8", - labelColorDisabled: "#474E5C", - weightLight: "100", - weightNormal: "normal", - weightSemiBold: "600", - weightBold: "bold", - family: Platform.select({ ios: "System", android: "normal" }), -}; -font = merge(font, custom.font || {}); -// -// Spacing -let spacing = { - smallest: 5, - smaller: 10, - small: 15, - regular: 20, - large: 25, - larger: 30, - largest: 40, -}; -spacing = merge(spacing, custom.spacing || {}); -// -// Button Styles -let button = { - fontSize: font.sizeSmall, - fontSizeLarge: font.size, - fontWeight: font.weightBold, - fontSizeIcon: font.sizeSmall, - fontSizeIconLarge: font.size, - borderRadius: border.radius, - paddingVertical: spacing.smaller, - paddingHorizontal: spacing.regular, - header: { - color: contrast.highest, - borderColor: "transparent", - backgroundColor: "transparent", - fontSize: font.sizeSmall, - fontSizeIcon: font.sizeSmall, - paddingLeft: 0, - paddingRight: 10, - }, - primary: { - color: "#FFF", - colorDisabled: font.colorDisabled, - borderColor: brand.primary, - borderColorDisabled: border.color, - backgroundColor: brand.primary, - backgroundColorDisabled: border.color, - }, - secondary: { - color: brand.primary, - borderColor: brand.primary, - backgroundColor: "transparent", - inversedColor: "#FFF", - }, - success: { - color: "#FFF", - borderColor: brand.success, - backgroundColor: brand.success, - }, - warning: { - color: "#FFF", - borderColor: brand.warning, - backgroundColor: brand.warning, - }, - danger: { - color: "#FFF", - borderColor: brand.danger, - backgroundColor: brand.danger, - }, -}; -button = merge(button, custom.button || {}); -// -//Input Styles -let input = { - // Colors - color: font.color, - colorDisabled: font.colorDisabled, - errorColor: brand.danger, - labelColor: font.color, - labelColorDisabled: font.labelColorDisabled, - borderColor: contrast.lower, - borderColorFocused: brand.primary, - backgroundColor: background.primary, - backgroundColorDisabled: background.secondary, - selectionColor: contrast.lower, - placeholderTextColor: contrast.regular, - underlineColorAndroid: "transparent", - inputContainerUnderlayColor: `rgba(${anyColorToRgbString(contrast.low)},0.4)`, - // Sizes - fontSize: font.size, - fontFamily: font.family, - borderWidth: border.width, - borderRadius: border.radius, - // Alignment - textAlign: "left", - paddingHorizontal: spacing.smaller, - paddingVertical: spacing.small, -}; -input = merge(input, custom.input || {}); -// -// Navigation Styles -let navigation = { - statusBar: { - backgroundColor: background.primary, - barStyle: custom.darkMode ? "light-content" : "dark-content", - }, - topBar: { - backgroundColor: background.primary, - backButtonColor: contrast.highest, - titleColor: contrast.highest, - titleFontSize: Platform.select({ android: font.sizeH4, ios: font.sizeH5 }), - }, - bottomBar: { - color: contrast.high, - selectedTextColor: contrast.high, - selectedIconColor: brand.primary, - backgroundColor: background.primary, - fontSize: font.sizeSmall, - iconSize: font.sizeSmall, - }, - progressOverlay: { - color: font.color, - activityIndicatorColor: font.color, - backgroundColor: `rgba(0, 0, 0, 0.5)`, - containerBackgroundColor: background.secondary, - fontSize: font.size, - borderRadius: border.radius, - elevation: 1.5, - shadowColor: "#000", - shadowOpacity: 0.1, - shadowRadius: 10, - }, -}; -navigation = merge(navigation, custom.navigation || {}); -// -// Badge Styles -let badge = { - fontWeight: font.weightBold, - borderRadius: 30, - paddingVertical: 3, - paddingHorizontal: spacing.smaller, - default: { - color: contrast.higher, - backgroundColor: contrast.lower, - }, - primary: { - color: brand.primary, - backgroundColor: brand.primaryLight, - }, - success: { - color: brand.success, - backgroundColor: brand.successLight, - }, - warning: { - color: brand.warning, - backgroundColor: brand.warningLight, - }, - danger: { - color: brand.danger, - backgroundColor: brand.dangerLight, - }, -}; -badge = merge(badge, custom.badge || {}); -// -// Tabcontainer Styles -let tabContainer = { - tabBar: { - pressColor: contrast.lower, - backgroundColor: background.primary, - }, - indicator: { - backgroundColor: brand.primary, - height: Platform.select({ ios: 2, android: 2 }), - }, - label: { - color: contrast.highest, - fontWeight: font.weightBold, - textTransform: "uppercase", - }, - activeLabel: { - color: brand.primary, - fontWeight: font.weightBold, - textTransform: "uppercase", - }, - badgeContainer: { - borderRadius: badge.borderRadius, - backgroundColor: badge.default.backgroundColor, - paddingVertical: badge.paddingVertical, - paddingHorizontal: badge.paddingHorizontal, - marginLeft: 8 - }, - badgeCaption: { - fontSize: font.size, - color: badge.default.color, - fontWeight: badge.fontWeight, - } -}; -tabContainer = merge(tabContainer, custom.tabContainer || {}); -// -// Listview Styles -let listView = { - border: { - color: border.color, - width: border.width, - }, -}; -listView = merge(listView, custom.listView || {}); -// -// Layoutgrid Styles -let layoutGrid = { - gutterSize: 15, -}; -layoutGrid = merge(layoutGrid, custom.layoutGrid || {}); -// -export { brand, background, border, contrast, font, spacing, button, input, navigation, tabContainer, listView, layoutGrid, badge, }; diff --git a/theme_old/styles/native/core/widgets/activityindicator.js b/theme_old/styles/native/core/widgets/activityindicator.js deleted file mode 100644 index 088542b..0000000 --- a/theme_old/styles/native/core/widgets/activityindicator.js +++ /dev/null @@ -1,23 +0,0 @@ -import { brand } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Activity Indicator - - Default Class For Mendix Activity Indicator Widget -========================================================================== */ -export const com_mendix_widget_native_activityindicator_ActivityIndicator = { - container: { - // All ViewStyle properties are allowed - }, - indicator: { - // Color and size are allowed - color: brand.primary, - size: "large", - }, -}; diff --git a/theme_old/styles/native/core/widgets/animation.js b/theme_old/styles/native/core/widgets/animation.js deleted file mode 100644 index bfef391..0000000 --- a/theme_old/styles/native/core/widgets/animation.js +++ /dev/null @@ -1,15 +0,0 @@ -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Animation - - Default Class For Mendix Animation Widget -========================================================================== */ -export const com_mendix_widget_native_animation_Animation = { - container: {}, -}; diff --git a/theme_old/styles/native/core/widgets/backgroundimage.js b/theme_old/styles/native/core/widgets/backgroundimage.js deleted file mode 100644 index bd79f14..0000000 --- a/theme_old/styles/native/core/widgets/backgroundimage.js +++ /dev/null @@ -1,19 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. -// -/* ========================================================================== - Background Image - - Default Class For Mendix Background Image Widget -========================================================================== */ -export const com_mendix_widget_native_backgroundimage_BackgroundImage = { - container: { - // All ViewStyle properties are allowed - }, - image: { - // svgColor and all ImageStyle properties are allowed - }, -}; diff --git a/theme_old/styles/native/core/widgets/badge.js b/theme_old/styles/native/core/widgets/badge.js deleted file mode 100644 index d34de33..0000000 --- a/theme_old/styles/native/core/widgets/badge.js +++ /dev/null @@ -1,29 +0,0 @@ -import { badge, font } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Badge - - Default Class For Mendix Badge Widget -========================================================================== */ -export const com_mendix_widget_native_badge_Badge = { - container: { - // All ViewStyle properties are allowed - borderRadius: badge.borderRadius, - backgroundColor: badge.default.backgroundColor, - paddingVertical: badge.paddingVertical, - paddingHorizontal: badge.paddingHorizontal, - }, - caption: { - // All TextStyle properties are allowed - color: badge.default.color, - fontFamily: font.family, - fontWeight: badge.fontWeight, - marginTop: -1, - }, -}; diff --git a/theme_old/styles/native/core/widgets/barchart.js b/theme_old/styles/native/core/widgets/barchart.js deleted file mode 100644 index cfcf64d..0000000 --- a/theme_old/styles/native/core/widgets/barchart.js +++ /dev/null @@ -1,169 +0,0 @@ -import { border, brand, font, spacing } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Line Chart - - Default Class For Mendix Line Chart Widget -========================================================================== */ -// eslint-disable-next-line @typescript-eslint/camelcase -export const com_mendix_widget_native_barchart_BarChart = { - container: { - // All ViewStyle properties are allowed - }, - errorMessage: { - // All TextStyle properties are allowed - fontFamily: font.family, - fontSize: font.sizeSmall, - fontWeight: font.weightNormal - }, - chart: { - // All ViewStyle properties are allowed - }, - grid: { - /* - Allowed properties: - - backgroundColor (string) - - dashArray (string) - - lineColor (string) - - padding (number) - - paddingBottom (number) - - paddingHorizontal (number) - - paddingLeft (number) - - paddingRight (number) - - paddingTop (number) - - paddingVertical (number) - - width (number) - */ - lineColor: border.color, - paddingBottom: 32, - paddingLeft: 32, - paddingRight: 8, - paddingTop: 8 - }, - xAxis: { - /* - Allowed properties: - - color (string) - - dashArray (string) - - fontFamily (string) - - fontSize (number) - - fontStyle ("normal" or "italic") - - fontWeight ("normal" or "bold" or "100" or "200" or "300" or "400" or "500" or "600" or "700" or "800" or "900") - - lineColor (string) - - width (number) - */ - color: font.color, - fontFamily: font.family, - fontSize: font.sizeSmall, - fontWeight: font.weightNormal, - lineColor: border.color, - label: { - /* - All TextStyle properties are allowed and: - - relativePositionGrid ("bottom" or "right") - */ - color: font.color, - alignSelf: "center", - marginHorizontal: 0, - marginVertical: spacing.smallest, - fontFamily: font.family, - fontSize: font.sizeSmall, - fontWeight: font.weightNormal, - relativePositionGrid: "bottom" - }, - }, - yAxis: { - /* - Allowed properties: - - color (string) - - dashArray (string) - - fontFamily (string) - - fontSize (number) - - fontStyle ("normal" or "italic") - - fontWeight ("normal" or "bold" or "100" or "200" or "300" or "400" or "500" or "600" or "700" or "800" or "900") - - lineColor (string) - - width (number) - */ - color: font.color, - fontFamily: font.family, - fontSize: font.sizeSmall, - fontWeight: font.weightNormal, - lineColor: border.color, - label: { - /* - All TextStyle properties are allowed and: - - relativePositionGrid ("top" or "left") - */ - color: font.color, - marginHorizontal: 0, - marginVertical: spacing.smallest, - fontFamily: font.family, - fontSize: font.sizeSmall, - fontWeight: font.weightNormal, - relativePositionGrid: "top" - }, - }, - bars: { - /* - Allowed properties: - - barColorPalette (string with array of colors separated by ';') - - barsOffset (number) - - */ - barColorPalette: Object.values(brand) - .map((color, index, brandColors) => (index === brandColors.length - 1 ? color : `${color};`)) - .join(""), - barsOffset: 20, - customBarStyles: { - your_static_or_dynamic_attribute_value: { - bar: { - /* - Allowed properties: - - ending (number) - - barColor (string) - - width (number) - */ - }, - label: { - /* - Allowed properties: - - fontFamily (string) - - fontSize (number) - - fontStyle ("normal" or "italic") - - fontWeight ("normal" or "bold" or "100" or "200" or "300" or "400" or "500" or "600" or "700" or "800" or "900") - */ - } - } - } - }, - legend: { - container: { - // All ViewStyle properties are allowed - justifyContent: "flex-start", - marginHorizontal: 0, - marginVertical: spacing.smallest - }, - item: { - // All ViewStyle properties are allowed - padding: 0, - paddingRight: spacing.smaller - }, - indicator: { - // All ViewStyle properties are allowed - marginRight: spacing.smallest - }, - label: { - // All TextStyle properties are allowed - color: font.color, - fontFamily: font.family, - fontSize: font.sizeSmall, - fontWeight: font.weightNormal - } - } -}; diff --git a/theme_old/styles/native/core/widgets/bottomsheet.js b/theme_old/styles/native/core/widgets/bottomsheet.js deleted file mode 100644 index f4e3177..0000000 --- a/theme_old/styles/native/core/widgets/bottomsheet.js +++ /dev/null @@ -1,67 +0,0 @@ -import { background, border, brand, contrast, font } from "../variables"; -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. -// -/* ========================================================================== - Bottom Sheet - - Default Class For Mendix Bottom Sheet Widget -========================================================================== */ -export const com_mendix_widget_native_bottomsheet_BottomSheet = { - container: { - // All ViewStyle properties are allowed - backgroundColor: background.primary, - borderRadius: border.radius, - elevation: 20, - shadowColor: "#000", - shadowOpacity: 0.1, - shadowRadius: 6, - shadowOffset: { - width: 0, - height: -4, - }, - }, - containerWhenExpandedFullscreen: { - // All ViewStyle properties are allowed - height: "100%", - alignSelf: "stretch", - backgroundColor: background.primary, - }, - modal: { - // All ViewStyle properties are allowed - margin: 0, - justifyContent: "flex-end", - }, - modalItems: { - container: { - // rippleColor & All TextStyle properties are allowed - height: 50, - marginTop: 0, - rippleColor: contrast.lower, - backgroundColor: background.primary, - }, - defaultStyle: { - // All TextStyle properties are allowed - fontSize: 16, - color: font.color, - }, - primaryStyle: { - // All TextStyle properties are allowed - fontSize: 16, - color: brand.primary, - }, - dangerStyle: { - // All TextStyle properties are allowed - fontSize: 16, - color: brand.danger, - }, - customStyle: { - // All TextStyle properties are allowed - fontSize: 16, - color: font.color, - }, - }, -}; diff --git a/theme_old/styles/native/core/widgets/buttons.js b/theme_old/styles/native/core/widgets/buttons.js deleted file mode 100644 index 7813ea6..0000000 --- a/theme_old/styles/native/core/widgets/buttons.js +++ /dev/null @@ -1,72 +0,0 @@ -import { button, contrast, font } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Button - - Default Class For Mendix Button Widget -========================================================================== */ -export const ActionButton = { - container: { - // Ripplecolor and all ViewStyle properties are allowed - borderWidth: 1, - borderStyle: "solid", - rippleColor: contrast.lowest, - borderColor: button.primary.borderColor, - backgroundColor: button.primary.backgroundColor, - alignItems: "center", - justifyContent: "center", - borderRadius: button.borderRadius, - paddingVertical: button.paddingVertical, - paddingHorizontal: button.paddingHorizontal, - }, - containerDisabled: { - // All ViewStyle properties are allowed - borderColor: button.primary.borderColorDisabled, - backgroundColor: button.primary.backgroundColorDisabled, - }, - icon: { - // size and color are allowed - color: button.primary.color, - size: button.fontSizeIcon, - }, - iconDisabled: { - // size and color are allowed - color: button.primary.colorDisabled, - }, - caption: { - // All TextStyle properties are allowed - color: button.primary.color, - fontSize: button.fontSize, - fontFamily: font.family, - fontWeight: button.fontWeight, - }, - captionDisabled: { - // All TextStyle properties are allowed - color: button.primary.colorDisabled, - }, -}; -// -// Default style for button inside a header -export const ActionButtonHeader = { - container: { - borderColor: button.header.borderColor, - backgroundColor: button.header.backgroundColor, - paddingLeft: button.header.paddingLeft, - paddingRight: button.header.paddingRight, - }, - icon: { - color: button.header.color, - size: button.header.fontSizeIcon, - }, - caption: { - color: button.header.color, - fontSize: button.header.fontSize, - fontFamily: font.family, - }, -}; diff --git a/theme_old/styles/native/core/widgets/carousel.js b/theme_old/styles/native/core/widgets/carousel.js deleted file mode 100644 index 09b071e..0000000 --- a/theme_old/styles/native/core/widgets/carousel.js +++ /dev/null @@ -1,119 +0,0 @@ -import { brand, contrast, font, spacing } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Button - - Default Class For Mendix Carousel Widget -========================================================================== */ -// Card -const carouselFullWidthLayout = { - slideItem: { - // All ViewStyle properties are allowed - height: 250, - }, - inactiveSlideItem: { - // Only opacity and scale are allowed - }, - pagination: { - container: { - // All ViewStyle properties are allowed - position: "absolute", - bottom: 0, - width: "100%", - justifyContent: "center", - paddingHorizontal: spacing.regular, - paddingBottom: spacing.regular, - }, - text: { - // All TextStyle properties are allowed - color: "#FFF", - fontSize: font.size, - fontFamily: font.family, - textAlign: "center", - textShadowColor: "#888", - textShadowRadius: 3, - textShadowOffset: { - width: 0, - height: 1, - }, - }, - dotContainerStyle: { - // All ViewStyle properties are allowed - marginHorizontal: 3, - }, - dotStyle: { - // Color and all ViewStyle properties are allowed - color: "#FFF", - }, - inactiveDotStyle: { - // Only opacity, scale and color are allowed - color: "rgba(255, 255, 255, 0.45)", - scale: 1, - }, - }, -}; -const carouselCardLayout = { - slideItem: { - // All ViewStyle properties are allowed - width: "70%", - height: 250, - padding: 8, - paddingBottom: spacing.regular, - elevation: 1.5, - shadowColor: "#000", - shadowOpacity: 0.5, - shadowRadius: 6, - shadowOffset: { - width: 0, - height: 4, - }, - }, - inactiveSlideItem: { - // Only opacity and scale are allowed - opacity: .8, - }, - pagination: { - container: { - // All ViewStyle properties are allowed - paddingHorizontal: spacing.regular, - paddingBottom: spacing.smaller, - }, - text: { - // All TextStyle properties are allowed - color: font.color, - fontSize: font.size, - fontFamily: font.family, - textAlign: "center", - }, - dotContainerStyle: { - // All ViewStyle properties are allowed - marginHorizontal: 3, - }, - dotStyle: { - // Color and all ViewStyle properties are allowed - color: brand.primary, - }, - inactiveDotStyle: { - // Only opacity, scale and color are allowed - color: contrast.lower, - scale: 1, - }, - }, -}; -export const com_mendix_widget_native_carousel_Carousel = { - container: { - // All ViewStyle properties are allowed - }, - fullWidthLayout: carouselFullWidthLayout, - cardLayout: carouselCardLayout, - activityIndicator: { - // Only color is allowed - color: font.color, - }, -}; diff --git a/theme_old/styles/native/core/widgets/checkbox.js b/theme_old/styles/native/core/widgets/checkbox.js deleted file mode 100644 index bcfa729..0000000 --- a/theme_old/styles/native/core/widgets/checkbox.js +++ /dev/null @@ -1,86 +0,0 @@ -import { Platform } from "react-native"; -import { background, border, brand, contrast, font, spacing } from "../variables"; -import { TextBox, TextBoxVertical } from "./textbox"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - CheckBox - - Default Class For Mendix CheckBox Widget -========================================================================== */ -export const CheckBox = { - container: { - // All ViewStyle properties are allowed - ...TextBox.container, - paddingVertical: spacing.smallest, - justifyContent: "center", - }, - containerDisabled: { - // All ViewStyle properties are allowed - ...TextBox.containerDisabled - }, - label: { - // numberOfLines and all TextStyle properties are allowed - ...TextBox.label, - }, - labelDisabled: { - // All TextStyle properties are allowed - ...TextBox.labelDisabled - }, - input: { - // thumbColorOn, thumbColorOff, trackColorOn, trackColorOff and all TextStyle properties are allowed - backgroundColor: "transparent", - marginRight: Platform.select({ android: -3 }), - thumbColorOn: background.primary, - trackColorOn: brand.success, - thumbColorOff: contrast.regular, - trackColorOff: contrast.lower, - }, - inputDisabled: { - // thumbColorOn, thumbColorOff, trackColorOn, trackColorOff and all TextStyle properties are allowed - thumbColorOn: background.secondary, - trackColorOn: font.colorDisabled, - thumbColorOff: background.secondary, - trackColorOff: border.color, - }, - inputError: { - // thumbColorOn, thumbColorOff, trackColorOn, trackColorOff and all TextStyle properties are allowed - ...TextBox.inputError, - thumbColorOn: background.primary, - trackColorOn: brand.danger, - thumbColorOff: contrast.regular, - trackColorOff: brand.danger, - }, - validationMessage: { - // All TextStyle properties are allowed - ...TextBox.validationMessage, - alignSelf: "stretch", - }, -}; -export const CheckBoxVertical = { - container: TextBoxVertical.container, - containerDisabled: TextBoxVertical.containerDisabled, - label: TextBoxVertical.label, - labelDisabled: TextBoxVertical.labelDisabled, - input: { - ...CheckBox.input, - alignSelf: "flex-start", - }, - inputDisabled: CheckBox.inputDisabled, - inputError: { - ...TextBoxVertical.inputError, - thumbColorOn: background.primary, - trackColorOn: brand.danger, - thumbColorOff: contrast.regular, - trackColorOff: brand.danger, - }, - validationMessage: { - ...TextBoxVertical.validationMessage, - alignSelf: "stretch", - }, -}; diff --git a/theme_old/styles/native/core/widgets/colorpicker.js b/theme_old/styles/native/core/widgets/colorpicker.js deleted file mode 100644 index 020e2e3..0000000 --- a/theme_old/styles/native/core/widgets/colorpicker.js +++ /dev/null @@ -1,20 +0,0 @@ -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Color Picker - - Default Class For Mendix Color Picker Widget -========================================================================== */ -export const com_mendix_widget_native_colorpicker_ColorPicker = { - container: { - // All ViewStyle properties are allowed - }, - thumbnail: { - // All ViewStyle properties are allowed - }, -}; diff --git a/theme_old/styles/native/core/widgets/container.js b/theme_old/styles/native/core/widgets/container.js deleted file mode 100644 index ed3553a..0000000 --- a/theme_old/styles/native/core/widgets/container.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Container - - Default Class For Mendix Container Widget -========================================================================== */ -export const Container = { - container: { - // rippleColor & all ViewStyle properties are allowed - }, - containerDisabled: { - // All ViewStyle properties are allowed - opacity: 0.6 - } -}; -export const ScrollContainer = { - container: { - // All ViewStyle properties are allowed - }, -}; diff --git a/theme_old/styles/native/core/widgets/datepicker.js b/theme_old/styles/native/core/widgets/datepicker.js deleted file mode 100644 index a30e2d3..0000000 --- a/theme_old/styles/native/core/widgets/datepicker.js +++ /dev/null @@ -1,84 +0,0 @@ -import { background, font, input } from "../variables"; -import { TextBox, TextBoxVertical } from "./textbox"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Date Picker - - Default Class For Mendix Date Picker Widget -========================================================================== */ -export const DatePicker = { - container: { - // All ViewStyle properties are allowed - ...TextBox.container, - }, - containerDisabled: { - // All ViewStyle properties are allowed - ...TextBox.containerDisabled - }, - label: { - // numberOfLines and all TextStyle properties are allowed - ...TextBox.label, - }, - labelDisabled: { - // All TextStyle properties are allowed - ...TextBox.labelDisabled - }, - pickerIOS: { - // All ViewStyle properties & "color" (type: string) are allowed - backgroundColor: background.primary, - color: font.color, - }, - pickerBackdropIOS: { - // All ViewStyle properties are allowed - }, - pickerTopIOS: { - // All ViewStyle properties are allowed - backgroundColor: background.primary, - }, - value: { - // All TextStyle properties are allowed - color: input.color, - borderColor: input.borderColor, - backgroundColor: input.backgroundColor, - fontSize: input.fontSize, - fontFamily: font.family, - borderWidth: input.borderWidth, - borderRadius: input.borderRadius, - paddingHorizontal: input.paddingHorizontal, - paddingVertical: input.paddingVertical, - }, - valueDisabled: { - // All TextStyle properties are allowed - backgroundColor: input.backgroundColorDisabled, - color: input.colorDisabled - }, - placeholder: { - // All TextStyle properties are allowed - color: input.placeholderTextColor, - }, - placeholderDisabled: { - // All TextStyle properties are allowed - color: input.colorDisabled - }, - validationMessage: { - // All TextStyle properties are allowed - ...TextBox.validationMessage, - }, -}; -export const DatePickerVertical = { - container: TextBoxVertical.container, - containerDisabled: TextBoxVertical.containerDisabled, - label: TextBoxVertical.label, - labelDisabled: TextBoxVertical.labelDisabled, - value: DatePicker.value, - valueDisabled: DatePicker.valueDisabled, - placeholder: DatePicker.placeholder, - placeholderDisabled: DatePicker.placeholderDisabled, - validationMessage: TextBoxVertical.validationMessage, -}; diff --git a/theme_old/styles/native/core/widgets/dropdown.js b/theme_old/styles/native/core/widgets/dropdown.js deleted file mode 100644 index 3a03dc6..0000000 --- a/theme_old/styles/native/core/widgets/dropdown.js +++ /dev/null @@ -1,141 +0,0 @@ -import { border, contrast, font, input } from "../variables"; -import { TextBox, TextBoxVertical } from "./textbox"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Drop Down - - Default Class For Mendix Drop Down Widget -========================================================================== */ -export const DropDown = { - container: { - // All ViewStyle properties are allowed - ...TextBox.container, - }, - containerDisabled: { - // All ViewStyle properties are allowed - ...TextBox.containerDisabled - }, - label: { - // numberOfLines and all TextStyle properties are allowed - ...TextBox.label, - }, - labelDisabled: { - // All TextStyle properties are allowed - ...TextBox.labelDisabled - }, - value: { - // All TextStyle properties & placeholderTextColor are allowed - color: input.color, - fontSize: input.fontSize, - fontFamily: input.fontFamily, - placeholderTextColor: input.placeholderTextColor, - }, - validationMessage: { - // All TextStyle properties are allowed - ...TextBox.validationMessage, - }, - /* New dropdown styles start */ - valueFocused: { - // All TextStyle properties are allowed - }, - valueDisabled: { - // All TextStyle properties are allowed - ...TextBox.inputDisabled - }, - valueContainer: { - // All ViewStyle properties & rippleColor are allowed - flexDirection: "row", - justifyContent: "space-between", - alignItems: "center", - borderWidth: input.borderWidth, - borderRadius: input.borderRadius, - borderColor: input.borderColor, - paddingHorizontal: input.paddingHorizontal, - paddingVertical: input.paddingVertical, - backgroundColor: input.backgroundColor, - }, - valueContainerFocused: { - // All ViewStyle properties are allowed - ...TextBox.inputFocused - }, - valueContainerDisabled: { - // All ViewStyle properties are allowed - }, - menuWrapper: { - // All ViewStyle properties are allowed - borderRadius: border.radius, - shadowColor: "#000", - shadowOpacity: 0.2, - shadowRadius: 10, - elevation: 16, - backgroundColor: input.backgroundColor, - }, - itemContainer: { - // All ViewStyle properties & rippleColor & activeOpacity & underlayColor are allowed - maxWidth: 500, - paddingVertical: 6, - paddingHorizontal: 16, - backgroundColor: input.backgroundColor, - underlayColor: input.inputContainerUnderlayColor, - }, - iconStyle: { - // All TextStyle properties are allowed - color: input.color - }, - item: { - // All TextStlye properties are allowed - color: input.color, - }, - selectedItem: { - // All TextStlye properties are allowed - fontWeight: font.weightBold, - }, - selectedItemContainer: { - // All ViewStyle properties are allowed - backgroundColor: contrast.lowest, - }, - /* New dropdown styles end */ - useUniformDesign: true, - /* Old dropdown styles start */ - pickerIOS: { - // All ViewStyle properties are allowed - backgroundColor: input.backgroundColor, - }, - pickerItemIOS: { - // All TextStyle properties are allowed - }, - pickerBackdropIOS: { - // All ViewStyle properties are allowed - }, - pickerTopIOS: { - // All ViewStyle properties are allowed - backgroundColor: input.backgroundColor, - }, -}; -export const DropDownVertical = { - container: TextBoxVertical.container, - containerDisabled: TextBoxVertical.containerDisabled, - label: TextBoxVertical.label, - labelDisabled: TextBoxVertical.labelDisabled, - value: DropDown.value, - valueFocused: DropDown.valueFocused, - validationMessage: TextBoxVertical.validationMessage, - valueContainer: DropDown.valueContainer, - valueContainerFocused: DropDown.valueContainerFocused, - valueContainerDisabled: DropDown.valueContainerDisabled, - menuWrapper: DropDown.menuWrapper, - itemContainer: DropDown.itemContainer, - item: DropDown.item, - iconStyle: DropDown.iconStyle, - useUniformDesign: DropDown.useUniformDesign, - pickerIOS: DropDown.pickerIOS, - pickerItemIOS: DropDown.pickerItemIOS, - pickerBackdropIOS: DropDown.pickerBackdropIOS, - pickerTopIOS: DropDown.pickerTopIOS, -}; diff --git a/theme_old/styles/native/core/widgets/feedback.js b/theme_old/styles/native/core/widgets/feedback.js deleted file mode 100644 index f1c2d82..0000000 --- a/theme_old/styles/native/core/widgets/feedback.js +++ /dev/null @@ -1,85 +0,0 @@ -import { Platform } from "react-native"; -import { background, border, brand, button, contrast, font, input } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Feedback - - Default Class For Mendix Feedback Widget -========================================================================== */ -export const com_mendix_widget_native_feedback_Feedback = { - floatingButton: { - // All ViewStyle properties are allowed - borderRadius: 0, - backgroundColor: background.secondary, - borderTopLeftRadius: button.borderRadius, - borderBottomLeftRadius: button.borderRadius, - elevation: 1.5, - shadowColor: "#000", - shadowOpacity: 0.2, - shadowRadius: 10, - shadowOffset: { - width: 0, - height: 2, - }, - }, - dialog: { - // All ViewStyle properties are allowed - backgroundColor: background.primary, - }, - title: { - // All TextStyle properties are allowed - color: font.color, - fontFamily: font.family, - }, - textAreaInput: { - // All TextStyle properties are allowed - color: input.color, - borderColor: input.borderColor, - backgroundColor: input.backgroundColor, - selectionColor: input.selectionColor, - placeholderTextColor: input.placeholderTextColor, - underlineColorAndroid: input.underlineColorAndroid, - height: 100, - fontSize: input.fontSize, - fontFamily: input.fontFamily, - borderRadius: input.borderRadius, - borderTopWidth: input.borderWidth, - borderBottomWidth: input.borderWidth, - borderWidth: Platform.select({ android: border.width }), - textAlignVertical: "top", - paddingVertical: input.paddingVertical, - paddingHorizontal: input.paddingHorizontal, - }, - switchLabel: { - // All TextStyle properties are allowed - color: input.color, - fontSize: input.fontSize, - fontFamily: input.fontFamily, - }, - switchInput: { - // thumbColorOn, thumbColorOff, trackColorOn, trackColorOff and all TextStyle properties are allowed - margin: 0, - padding: 0, - marginRight: Platform.select({ ios: 0, android: -5 }), - thumbColorOn: background.primary, - trackColorOn: brand.success, - thumbColorOff: contrast.regular, - trackColorOff: contrast.lower, - }, - button: { - // Just these 3 properties are allowed - color: brand.primary, - borderColor: border.color, - borderWidth: border.width, - }, - activityIndicator: { - // Only color is allowed - color: font.color, - }, -}; diff --git a/theme_old/styles/native/core/widgets/floatingactionbutton.js b/theme_old/styles/native/core/widgets/floatingactionbutton.js deleted file mode 100644 index 56f0a3b..0000000 --- a/theme_old/styles/native/core/widgets/floatingactionbutton.js +++ /dev/null @@ -1,77 +0,0 @@ -import { background, brand, contrast, font } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Floating Action Button - - Default Class For Mendix Floating Action Button Widget -========================================================================== */ -export const com_mendix_widget_native_floatingactionbutton_FloatingActionButton = { - container: { - // All ViewStyle properties are allowed - margin: 30, - }, - button: { - // Size, ripplecolor and all ViewStyle properties are allowed - size: 50, - height: 50, - width: 50, - rippleColor: contrast.lowest, - backgroundColor: brand.primary, - borderRadius: 25, - elevation: 2, - shadowColor: "#000", - shadowOpacity: 0.3, - shadowRadius: 4, - shadowOffset: { - width: 0, - height: 2, - }, - }, - buttonIcon: { - // Size and color are allowed - size: font.sizeLarge, - color: contrast.lowest, - }, - secondaryButton: { - // Size and all ViewStyle properties are allowed - size: 30, - backgroundColor: background.secondary, - elevation: 2, - shadowColor: "#000", - shadowOpacity: 0.3, - shadowRadius: 4, - shadowOffset: { - width: 0, - height: 2, - }, - }, - secondaryButtonIcon: { - // Size and color are allowed - size: font.sizeSmall, - color: contrast.high, - }, - secondaryButtonCaption: { - // All TextStyle properties are allowed - color: font.color, - fontSize: font.size, - lineHeight: font.size, - fontFamily: font.family, - }, - secondaryButtonCaptionContainer: { - // All ViewStyle properties are allowed - marginHorizontal: 5, - elevation: 2, - shadowOpacity: 0.3, - shadowRadius: 4, - shadowOffset: { - width: 0, - height: 2, - }, - }, -}; diff --git a/theme_old/styles/native/core/widgets/images.js b/theme_old/styles/native/core/widgets/images.js deleted file mode 100644 index ff418a2..0000000 --- a/theme_old/styles/native/core/widgets/images.js +++ /dev/null @@ -1,51 +0,0 @@ -import { contrast } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Image - - Default Class For Mendix Image Widgets -========================================================================== */ -export const Image = { - container: { - // rippleColor & all ViewStyle properties are allowed - rippleColor: contrast.lowest, - }, - containerDisabled: { - // All ViewStyle properties are allowed - }, - image: { - // All ImageStyle properties are allowed - maxWidth: "100%", - maxHeight: "100%", - resizeMode: "cover", - }, - imageDisabled: { - // All ImageStyle properties are allowed - opacity: 0.6 - } -}; -export const ImageViewer = { - container: { - // RippleColor & All ViewStyle properties are allowed - rippleColor: contrast.lowest, - }, - containerDisabled: { - // All ViewStyle properties are allowed - }, - image: { - // All ImageStyle properties are allowed - maxWidth: "100%", - maxHeight: "100%", - resizeMode: "cover", - }, - imageDisabled: { - // All ImageStyle properties are allowed - opacity: 0.6 - } -}; diff --git a/theme_old/styles/native/core/widgets/introscreen.js b/theme_old/styles/native/core/widgets/introscreen.js deleted file mode 100644 index 86db1d5..0000000 --- a/theme_old/styles/native/core/widgets/introscreen.js +++ /dev/null @@ -1,122 +0,0 @@ -import { isIphoneWithNotch } from "../helpers/_functions/device"; -import { background, button, contrast, font, spacing } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Intro Screen - - Default Class For Mendix Intro Screen Widget -========================================================================== */ -// Button styles when the chose to show the indicator above the buttons -export const introScreenButtonPaginationAbove = { - container: { - // Ripplecolor and all ViewStyle properties are allowed - flexDirection: "row", - alignSelf: "stretch", - alignItems: "center", - justifyContent: "center", - paddingVertical: spacing.regular, - backgroundColor: button.primary.backgroundColor, - }, - icon: { - // Size and color are allowed - color: button.primary.color, - size: button.fontSizeIcon, - }, - caption: { - // All TextStyle properties are allowed - color: button.primary.color, - fontSize: button.fontSize, - fontFamily: font.family, - fontWeight: font.weightBold, - textTransform: "uppercase", - paddingHorizontal: spacing.smallest, - }, -}; -// Button styles when the chose to show the indicator between the buttons -export const introScreenButtonPaginationBetween = { - container: { - // Ripplecolor and all ViewStyle properties are allowed - flexDirection: "row", - alignItems: "center", - justifyContent: "center", - }, - icon: { - // Size and color are allowed - color: font.color, - size: button.fontSizeIcon, - }, - caption: { - // All TextStyle properties are allowed - color: font.color, - fontSize: button.fontSize, - fontFamily: font.family, - fontWeight: font.weightBold, - textTransform: "uppercase", - paddingHorizontal: spacing.smallest, - }, -}; -// Default styles -export const com_mendix_widget_native_introscreen_IntroScreen = { - fullscreenContainer: { - // All ViewStyle properties are allowed - backgroundColor: background.primary, - }, - popupContainer: { - // All ViewStyle properties are allowed - paddingVertical: 150, - paddingHorizontal: 50, - backgroundColor: `rgba(0, 0, 0, 0.5)`, - }, - // Pagination styles - paginationContainer: { - // All ViewStyle properties are allowed - position: "absolute", - left: 0, - right: 0, - bottom: isIphoneWithNotch ? 22 : 0, - justifyContent: "space-between", - alignItems: "center", - }, - paginationText: { - // All TextStyle properties are allowed - color: font.color, - fontSize: font.size, - fontFamily: font.family, - }, - dotStyle: { - // All ViewStyle properties are allowed - backgroundColor: contrast.lower, - transform: [{ scale: 0.5 }], - }, - activeDotStyle: { - // All ViewStyle properties are allowed - backgroundColor: background.brandPrimary, - }, - // Button styles - paginationAbove: { - buttonsContainer: { - // All ViewStyle properties are allowed - flex: 1, - marginTop: 30, - flexDirection: "row", - justifyContent: "center", - width: "100%", - }, - buttonSkip: introScreenButtonPaginationAbove, - buttonPrevious: introScreenButtonPaginationAbove, - buttonNext: introScreenButtonPaginationAbove, - buttonDone: introScreenButtonPaginationAbove, - }, - paginationBetween: { - buttonSkip: introScreenButtonPaginationBetween, - buttonPrevious: introScreenButtonPaginationBetween, - buttonNext: introScreenButtonPaginationBetween, - buttonDone: introScreenButtonPaginationBetween, - }, -}; diff --git a/theme_old/styles/native/core/widgets/layoutgrid.js b/theme_old/styles/native/core/widgets/layoutgrid.js deleted file mode 100644 index 3a73aca..0000000 --- a/theme_old/styles/native/core/widgets/layoutgrid.js +++ /dev/null @@ -1,121 +0,0 @@ -import { layoutGrid } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Intro Screen - - Default Class For Mendix Layoutgrid Widget -========================================================================== */ -export const LayoutGrid = { - container: {}, -}; -export const row = { - container: { - flexDirection: "row", - flexWrap: "wrap", - marginHorizontal: -layoutGrid.gutterSize, - }, -}; -export const col = { - container: { - flex: 1, - paddingHorizontal: layoutGrid.gutterSize, - }, -}; -export const colFitToContent = { - container: { - flex: -1, - paddingHorizontal: layoutGrid.gutterSize, - }, -}; -export const col1 = { - container: { - flexBasis: "8.333%", - paddingHorizontal: layoutGrid.gutterSize, - }, -}; -export const col2 = { - container: { - flexBasis: "16.666%", - paddingHorizontal: layoutGrid.gutterSize, - }, -}; -export const col3 = { - container: { - flexBasis: "25%", - paddingHorizontal: layoutGrid.gutterSize, - }, -}; -export const col4 = { - container: { - flexBasis: "33.333%", - paddingHorizontal: layoutGrid.gutterSize, - }, -}; -export const col5 = { - container: { - flexBasis: "41.666%", - paddingHorizontal: layoutGrid.gutterSize, - }, -}; -export const col6 = { - container: { - flexBasis: "50%", - paddingHorizontal: layoutGrid.gutterSize, - }, -}; -export const col7 = { - container: { - flexBasis: "58.333%", - paddingHorizontal: layoutGrid.gutterSize, - }, -}; -export const col8 = { - container: { - flexBasis: "66.666%", - paddingHorizontal: layoutGrid.gutterSize, - }, -}; -export const col9 = { - container: { - flexBasis: "75%", - paddingHorizontal: layoutGrid.gutterSize, - }, -}; -export const col10 = { - container: { - flexBasis: "83.333%", - paddingHorizontal: layoutGrid.gutterSize, - }, -}; -export const col11 = { - container: { - flexBasis: "91.666%", - paddingHorizontal: layoutGrid.gutterSize, - }, -}; -export const col12 = { - container: { - flexBasis: "100%", - paddingHorizontal: layoutGrid.gutterSize, - }, -}; -export const noGutters = { - container: { - paddingLeft: 0, - paddingRight: 0, - paddingHorizontal: 0, - }, -}; -export const noGuttersRow = { - container: { - marginLeft: 0, - marginRight: 0, - marginHorizontal: 0, - }, -}; diff --git a/theme_old/styles/native/core/widgets/linechart.js b/theme_old/styles/native/core/widgets/linechart.js deleted file mode 100644 index b26ccfa..0000000 --- a/theme_old/styles/native/core/widgets/linechart.js +++ /dev/null @@ -1,169 +0,0 @@ -import { border, brand, font, spacing } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Line Chart - - Default Class For Mendix Line Chart Widget -========================================================================== */ -// eslint-disable-next-line @typescript-eslint/camelcase -export const com_mendix_widget_native_linechart_LineChart = { - container: { - // All ViewStyle properties are allowed - }, - errorMessage: { - // All TextStyle properties are allowed - fontFamily: font.family, - fontSize: font.sizeSmall, - fontWeight: font.weightNormal, - }, - chart: { - // All ViewStyle properties are allowed - }, - grid: { - /* - Allowed properties: - - backgroundColor (string) - - dashArray (string) - - lineColor (string) - - lineWidth (number) - - padding (number) - - paddingBottom (number) - - paddingHorizontal (number) - - paddingLeft (number) - - paddingRight (number) - - paddingTop (number) - - paddingVertical (number) - */ - lineColor: border.color, - paddingBottom: 32, - paddingLeft: 32, - paddingRight: 8, - paddingTop: 8, - }, - xAxis: { - /* - Allowed properties: - - color (string) - - dashArray (string) - - fontFamily (string) - - fontSize (number) - - fontStyle ("normal" or "italic") - - fontWeight ("normal" or "bold" or "100" or "200" or "300" or "400" or "500" or "600" or "700" or "800" or "900") - - lineColor (string) - - lineWidth (number) - */ - color: font.color, - fontFamily: font.family, - fontSize: font.sizeSmall, - fontWeight: font.weightNormal, - lineColor: border.color, - label: { - /* - All TextStyle properties are allowed and: - - relativePositionGrid ("bottom" or "right") - */ - color: font.color, - alignSelf: "center", - marginHorizontal: 0, - marginVertical: spacing.smallest, - fontFamily: font.family, - fontSize: font.sizeSmall, - fontWeight: font.weightNormal, - relativePositionGrid: "bottom" - }, - }, - yAxis: { - /* - Allowed properties: - - color (string) - - dashArray (string) - - fontFamily (string) - - fontSize (number) - - fontStyle ("normal" or "italic") - - fontWeight ("normal" or "bold" or "100" or "200" or "300" or "400" or "500" or "600" or "700" or "800" or "900") - - lineColor (string) - - lineWidth (number) - */ - color: font.color, - fontFamily: font.family, - fontSize: font.sizeSmall, - fontWeight: font.weightNormal, - lineColor: border.color, - label: { - /* - All TextStyle properties are allowed and: - - relativePositionGrid ("top" or "left") - */ - color: font.color, - marginHorizontal: 0, - marginVertical: spacing.smallest, - fontFamily: font.family, - fontSize: font.sizeSmall, - fontWeight: font.weightNormal, - relativePositionGrid: "top" - }, - }, - lines: { - /* - Allowed properties: - - lineColorPalette (string with array of colors separated by ';') - */ - lineColorPalette: Object.values(brand) - .map((color, index, brandColors) => (index === brandColors.length - 1 ? color : `${color};`)) - .join(""), - customLineStyles: { - any_custom_line_style_name: { - line: { - /* - Allowed properties: - - dashArray (string) - - ending ("flat" or "round") - - lineColor (string) - - lineWidth (number) - */ - }, - markers: { - /* - Allowed properties: - - backgroundColor (string) - - borderColor (string) - - borderWidth (number) - - display ("false" or "underneath" or "onTop") - - size (number) - - symbol ("circle" or "diamond" or "plus" or "minus" or "square" or "star" or "triangleDown" or "triangleUp") - */ - } - } - } - }, - legend: { - container: { - // All ViewStyle properties are allowed - justifyContent: "flex-start", - marginHorizontal: 0, - marginVertical: spacing.smallest, - }, - item: { - // All ViewStyle properties are allowed - padding: 0, - paddingRight: spacing.smaller, - }, - indicator: { - // All ViewStyle properties are allowed - marginRight: spacing.smallest, - }, - label: { - // All TextStyle properties are allowed - color: font.color, - fontFamily: font.family, - fontSize: font.sizeSmall, - fontWeight: font.weightNormal, - }, - } -}; diff --git a/theme_old/styles/native/core/widgets/listviews.js b/theme_old/styles/native/core/widgets/listviews.js deleted file mode 100644 index fc45243..0000000 --- a/theme_old/styles/native/core/widgets/listviews.js +++ /dev/null @@ -1,24 +0,0 @@ -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - List View - - Default Class For Mendix List View Widget -========================================================================== */ -export const ListView = { - container: { - // numColumns & all ViewStyle properties are allowed - }, - listItem: { - // All ViewStyle properties are allowed - }, - listItemDisabled: { - // All ViewStyle properties are allowed - opacity: 0.6 - }, -}; diff --git a/theme_old/styles/native/core/widgets/listviewswipe.js b/theme_old/styles/native/core/widgets/listviewswipe.js deleted file mode 100644 index 7adec6e..0000000 --- a/theme_old/styles/native/core/widgets/listviewswipe.js +++ /dev/null @@ -1,38 +0,0 @@ -import { background } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - List View Swipe - - Default Class For Mendix List View Swipe Widget -========================================================================== */ -export const com_mendix_widget_native_listviewswipe_ListViewSwipe = { - container: { - // All ViewStyle properties are allowed - flex: 1, - alignItems: "stretch", - justifyContent: "space-between", - backgroundColor: background.primary, - }, - leftAction: { - // PanelSize & All ViewStyle properties are allowed - panelSize: 200, - flex: 1, - flexDirection: "row", - alignItems: "stretch", - backgroundColor: background.primary, - }, - rightAction: { - // PanelSize & All ViewStyle properties are allowed - panelSize: 200, - flex: 1, - flexDirection: "row", - alignItems: "stretch", - backgroundColor: background.primary, - }, -}; diff --git a/theme_old/styles/native/core/widgets/maps.js b/theme_old/styles/native/core/widgets/maps.js deleted file mode 100644 index 3036260..0000000 --- a/theme_old/styles/native/core/widgets/maps.js +++ /dev/null @@ -1,33 +0,0 @@ -import { brand } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Maps - - Default Class For Mendix Maps Widget -========================================================================== */ -export const com_mendix_widget_native_maps_Maps = { - container: { - // All ViewStyle properties are allowed - flex: 1, - maxWidth: "100%", - aspectRatio: 4 / 2, - }, - loadingOverlay: { - // All ViewStyle properties are allowed - }, - loadingIndicator: { - // Only color is allowed - color: brand.primary, - }, - marker: { - // Only color & opacity are allowed - color: brand.primary, - opacity: 1, - }, -}; diff --git a/theme_old/styles/native/core/widgets/navigation.js b/theme_old/styles/native/core/widgets/navigation.js deleted file mode 100644 index 276ab40..0000000 --- a/theme_old/styles/native/core/widgets/navigation.js +++ /dev/null @@ -1,75 +0,0 @@ -import { font, navigation, spacing } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - BottomBar / ProgressOverlay - - Default Class For Mendix BottomBar and ProgressOverlay -========================================================================== */ -export const navigationStyle = { - bottomBar: { - container: { - // All ViewStyle properties are allowed - backgroundColor: navigation.bottomBar.backgroundColor, - }, - label: { - // All TextStyle properties are allowed - color: navigation.bottomBar.color, - fontFamily: font.family, - fontSize: navigation.bottomBar.fontSize, - }, - selectedLabel: { - // All TextStyle properties are allowed - color: navigation.bottomBar.selectedTextColor, - fontFamily: font.family, - fontSize: navigation.bottomBar.fontSize, - }, - icon: { - // All TextStyle properties are allowed - color: navigation.bottomBar.color, - fontSize: navigation.bottomBar.iconSize, - }, - selectedIcon: { - // All TextStyle properties are allowed - color: navigation.bottomBar.selectedIconColor, - fontSize: navigation.bottomBar.iconSize, - }, - }, - progressOverlay: { - background: { - // All ViewStyle properties are allowed - backgroundColor: navigation.progressOverlay.backgroundColor, - }, - container: { - // All ViewStyle properties are allowed - backgroundColor: navigation.progressOverlay.containerBackgroundColor, - paddingHorizontal: spacing.largest, - paddingVertical: spacing.large, - borderRadius: navigation.progressOverlay.borderRadius, - elevation: navigation.progressOverlay.elevation, - shadowColor: navigation.progressOverlay.shadowColor, - shadowOpacity: navigation.progressOverlay.shadowOpacity, - shadowRadius: navigation.progressOverlay.shadowRadius, - shadowOffset: { - width: 0, - height: 2, - }, - }, - activityIndicator: { - // Color, Size & All ViewStyle properties are allowed - color: navigation.progressOverlay.activityIndicatorColor, - }, - text: { - // All TextStyle properties are allowed - color: navigation.progressOverlay.color, - marginTop: spacing.small, - fontFamily: font.family, - fontSize: navigation.progressOverlay.fontSize, - }, - }, -}; diff --git a/theme_old/styles/native/core/widgets/pagetitle.js b/theme_old/styles/native/core/widgets/pagetitle.js deleted file mode 100644 index bdc4c87..0000000 --- a/theme_old/styles/native/core/widgets/pagetitle.js +++ /dev/null @@ -1,24 +0,0 @@ -import { font } from "../variables"; -import { TextHeading1 } from "./typography"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Page Title - - Default Class For Mendix Page Title Widget -========================================================================== */ -export const PageTitle = { - container: { - // All ViewStyle properties are allowed - }, - text: { - // All TextStyle properties are allowed - ...TextHeading1.text, - color: font.color, - }, -}; diff --git a/theme_old/styles/native/core/widgets/popupmenu.js b/theme_old/styles/native/core/widgets/popupmenu.js deleted file mode 100644 index dc0cd18..0000000 --- a/theme_old/styles/native/core/widgets/popupmenu.js +++ /dev/null @@ -1,58 +0,0 @@ -import { background, brand, contrast, font } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Popup Menu - - Default Class For Mendix Popup Menu Widget -========================================================================== */ -export const com_mendix_widget_native_popupmenu_PopupMenu = { - container: { - // All ViewStyle properties are allowed - borderRadius: 10, - shadowColor: "#000", - shadowOpacity: 0.2, - shadowRadius: 10, - elevation: 16, - backgroundColor: background.primary, - }, - custom: { - container: { - // All ViewStyle properties are allowed - }, - itemStyle: { - rippleColor: contrast.lower, - }, - }, - basic: { - dividerColor: font.color, - container: { - // All ViewStyle properties are allowed - height: 40, - }, - itemStyle: { - ellipsizeMode: "tail", - rippleColor: contrast.lower, - defaultStyle: { - // All TextStyle properties are allowed - color: font.color, - }, - primaryStyle: { - // All TextStyle properties are allowed - color: brand.primary, - }, - dangerStyle: { - // All TextStyle properties are allowed - color: brand.danger, - }, - customStyle: { - // All TextStyle properties are allowed - }, - }, - }, -}; diff --git a/theme_old/styles/native/core/widgets/progressbar.js b/theme_old/styles/native/core/widgets/progressbar.js deleted file mode 100644 index 0725d94..0000000 --- a/theme_old/styles/native/core/widgets/progressbar.js +++ /dev/null @@ -1,44 +0,0 @@ -import { Platform } from "react-native"; -import { anyColorToRgbString } from "../helpers/_functions/convertcolors"; -import { brand, font, input } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Progress Bar - - Default Class For Mendix Progress Bar Widget -========================================================================== */ -export const com_mendix_widget_native_progressbar_ProgressBar = { - container: { - // All ViewStyle properties are allowed - alignSelf: "stretch", - }, - bar: { - // All ViewStyle properties are allowed - ...Platform.select({ - ios: { - borderColor: brand.primary, - }, - android: { - borderRadius: 0, - borderWidth: 0, - backgroundColor: `rgba(${anyColorToRgbString(brand.primary)},0.2)`, - }, - }), - }, - fill: { - //Only the backgroundColor property is allowed - backgroundColor: brand.primary, - }, - validationMessage: { - // All TextStyle properties are allowed - color: input.errorColor, - fontSize: font.size, - fontFamily: font.family, - }, -}; diff --git a/theme_old/styles/native/core/widgets/progresscircle.js b/theme_old/styles/native/core/widgets/progresscircle.js deleted file mode 100644 index 522a5eb..0000000 --- a/theme_old/styles/native/core/widgets/progresscircle.js +++ /dev/null @@ -1,42 +0,0 @@ -import { brand, contrast, font, input } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Progress Circle - - Default Class For Mendix Progress Circle Widget -========================================================================== */ -export const com_mendix_widget_native_progresscircle_ProgressCircle = { - container: { - // All ViewStyle properties are allowed - }, - circle: { - // Only the size & borderWidth & borderColor properties are allowed - size: 80, - borderWidth: 0, - }, - fill: { - // Only the width & backgroundColor & lineCapRounded properties are allowed - backgroundColor: brand.primary, - width: 5, - lineCapRounded: true, - }, - text: { - // All TextStyle properties are allowed - color: contrast.regular, - fontSize: font.size, - fontWeight: font.weightSemiBold, - fontFamily: font.family, - }, - validationMessage: { - // All TextStyle properties are allowed - color: input.errorColor, - fontSize: font.size, - fontFamily: font.family, - }, -}; diff --git a/theme_old/styles/native/core/widgets/qrcode.js b/theme_old/styles/native/core/widgets/qrcode.js deleted file mode 100644 index c7f8113..0000000 --- a/theme_old/styles/native/core/widgets/qrcode.js +++ /dev/null @@ -1,24 +0,0 @@ -import { background, contrast } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - QR Code - - Default Class For Mendix QR Code Widget -========================================================================== */ -export const com_mendix_widget_native_qrcode_QRCode = { - container: { - // All ViewStyle properties are allowed - }, - qrcode: { - // Only size, color and backgroundColor are allowed - size: 100, - color: contrast.highest, - backgroundColor: background.primary, - }, -}; diff --git a/theme_old/styles/native/core/widgets/rangeslider.js b/theme_old/styles/native/core/widgets/rangeslider.js deleted file mode 100644 index 7e43104..0000000 --- a/theme_old/styles/native/core/widgets/rangeslider.js +++ /dev/null @@ -1,14 +0,0 @@ -import { com_mendix_widget_native_slider_Slider as Slider } from "./slider"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Range Slider - - Default Class For Mendix Range Slider Widget -========================================================================== */ -export const com_mendix_widget_native_rangeslider_RangeSlider = Slider; diff --git a/theme_old/styles/native/core/widgets/rating.js b/theme_old/styles/native/core/widgets/rating.js deleted file mode 100644 index 7ab06d9..0000000 --- a/theme_old/styles/native/core/widgets/rating.js +++ /dev/null @@ -1,27 +0,0 @@ -import { spacing } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Rating - - Default Class For Mendix Rating Widget -========================================================================== */ -export const com_mendix_widget_native_rating_Rating = { - container: { - // All ViewStyle properties are allowed - }, - containerDisabled: { - // All ViewStyle properties are allowed - opacity: 0.5, - }, - icon: { - // Size, color, selectedColor & all ViewStyle properties are allowed - size: 30, - marginRight: spacing.smaller, - }, -}; diff --git a/theme_old/styles/native/core/widgets/referenceselector.js b/theme_old/styles/native/core/widgets/referenceselector.js deleted file mode 100644 index a406c64..0000000 --- a/theme_old/styles/native/core/widgets/referenceselector.js +++ /dev/null @@ -1,143 +0,0 @@ -import { border, contrast, font, input } from "../variables"; -import { DropDownVertical } from "./dropdown"; -import { TextBox, TextBoxVertical } from "./textbox"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Reference Selector - - Default Class For Mendix Reference Selector Widget -========================================================================== */ -export const ReferenceSelector = { - container: { - // All ViewStyle properties are allowed - ...TextBox.container, - }, - containerDisabled: { - // All ViewStyle properties are allowed - ...TextBox.containerDisabled, - }, - label: { - // numberOfLines and all TextStyle properties are allowed - ...TextBox.label, - }, - labelDisabled: { - // All TextStyle properties are allowed - ...TextBox.labelDisabled, - }, - value: { - // All TextStyle properties & placeholderTextColor are allowed - color: input.color, - fontSize: input.fontSize, - fontFamily: input.fontFamily, - overflow: "hidden", - placeholderTextColor: input.placeholderTextColor, - }, - validationMessage: { - // All TextStyle properties are allowed - ...TextBox.validationMessage, - }, - /* New dropdown styles start */ - valueFocused: { - // All TextStyle properties are allowed - }, - valueDisabled: { - // All TextStyle properties are allowed - ...TextBox.inputDisabled, - }, - valueContainer: { - // All ViewStyle properties & rippleColor are allowed - flexDirection: "row", - justifyContent: "space-between", - alignItems: "center", - borderWidth: input.borderWidth, - borderRadius: input.borderRadius, - borderColor: input.borderColor, - paddingHorizontal: input.paddingHorizontal, - paddingVertical: input.paddingVertical, - backgroundColor: input.backgroundColor, - }, - valueContainerFocused: { - // All ViewStyle properties are allowed - ...TextBox.inputFocused, - }, - valueContainerDisabled: { - // All ViewStyle properties are allowed - }, - menuWrapper: { - // All ViewStyle properties are allowed - borderRadius: border.radius, - shadowColor: "#000", - shadowOpacity: 0.2, - shadowRadius: 10, - elevation: 16, - backgroundColor: input.backgroundColor, - }, - itemContainer: { - // All ViewStyle properties & rippleColor & activeOpacity & underlayColor are allowed - maxWidth: 500, - paddingVertical: 6, - paddingHorizontal: 16, - backgroundColor: input.backgroundColor, - underlayColor: input.inputContainerUnderlayColor, - }, - iconStyle: { - // All TextStyle properties are allowed - color: input.color, - }, - item: { - // All TextStyle properties are allowed - color: input.color, - }, - selectedItem: { - // All TextStyle properties are allowed - fontWeight: font.weightBold, - }, - selectedItemContainer: { - // All ViewStyle properties are allowed - backgroundColor: contrast.lowest, - }, - /* New dropdown styles end */ - useUniformDesign: true, - /* Old dropdown styles start */ - pickerIOS: { - // All ViewStyle properties are allowed - backgroundColor: input.backgroundColor, - }, - pickerItemIOS: { - // All TextStyle properties are allowed - }, - pickerBackdropIOS: { - // All ViewStyle properties are allowed - }, - pickerTopIOS: { - // All ViewStyle properties are allowed - backgroundColor: input.backgroundColor, - }, -}; -export const ReferenceSelectorVertical = { - container: TextBoxVertical.container, - containerDisabled: TextBoxVertical.containerDisabled, - label: TextBoxVertical.label, - labelDisabled: TextBoxVertical.labelDisabled, - value: DropDownVertical.value, - valueFocused: DropDownVertical.valueFocused, - validationMessage: TextBoxVertical.validationMessage, - valueContainer: DropDownVertical.valueContainer, - valueContainerFocused: DropDownVertical.valueContainerFocused, - valueContainerDisabled: DropDownVertical.valueContainerDisabled, - menuWrapper: DropDownVertical.menuWrapper, - itemContainer: DropDownVertical.itemContainer, - item: DropDownVertical.item, - iconStyle: DropDownVertical.iconStyle, - useUniformDesign: DropDownVertical.useUniformDesign, - pickerIOS: DropDownVertical.pickerIOS, - pickerItemIOS: DropDownVertical.pickerItemIOS, - pickerBackdropIOS: DropDownVertical.pickerBackdropIOS, - pickerTopIOS: DropDownVertical.pickerTopIOS, -}; diff --git a/theme_old/styles/native/core/widgets/safeareaview.js b/theme_old/styles/native/core/widgets/safeareaview.js deleted file mode 100644 index dd81a25..0000000 --- a/theme_old/styles/native/core/widgets/safeareaview.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Container - - Default Class For Mendix Safe Area View Widget -========================================================================== */ -export const com_mendix_widget_native_safeareaview_SafeAreaView = { - container: { - // All ViewStyle properties are allowed - }, -}; diff --git a/theme_old/styles/native/core/widgets/slider.js b/theme_old/styles/native/core/widgets/slider.js deleted file mode 100644 index 65e3df4..0000000 --- a/theme_old/styles/native/core/widgets/slider.js +++ /dev/null @@ -1,96 +0,0 @@ -import { Platform } from "react-native"; -import { background, border, brand, contrast, font, input } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Slider - - Default Class For Mendix Slider Widget -========================================================================== */ -export const com_mendix_widget_native_slider_Slider = { - container: { - // All ViewStyle properties are allowed - alignSelf: "stretch", - }, - track: { - // All ViewStyle properties are allowed - backgroundColor: contrast.lower, - }, - trackDisabled: { - // All ViewStyle properties are allowed - backgroundColor: contrast.lower, - opacity: Platform.select({ ios: 0.4 }), - }, - highlight: { - // All ViewStyle properties are allowed - backgroundColor: brand.primary, - }, - highlightDisabled: { - // All ViewStyle properties are allowed - backgroundColor: Platform.select({ ios: brand.primary, android: contrast.low }), - }, - marker: { - // All ViewStyle properties are allowed - backgroundColor: background.secondary, - ...Platform.select({ - ios: { - width: 30, - height: 30, - shadowColor: "#000", - shadowOpacity: 0.2, - borderColor: contrast.lowest, - shadowOffset: { width: 0, height: 1 }, - }, - android: { - width: 20, - height: 20, - borderRadius: 10, - elevation: 3, - borderColor: border.color, - }, - }), - }, - markerActive: { - // All ViewStyle properties are allowed - ...Platform.select({ - android: { - borderWidth: 0, - width: 34, - height: 34, - borderRadius: 17, - }, - }), - }, - markerDisabled: { - // All ViewStyle properties are allowed - ...Platform.select({ - ios: { - borderColor: contrast.lowest, - backgroundColor: background.secondary, - shadowColor: "#000", - shadowOpacity: 0.2, - shadowOffset: { width: 0, height: 1 }, - }, - android: { - marginTop: 1, - borderColor: background.primary, - backgroundColor: contrast.low, - borderWidth: 3, - width: 14, - height: 14, - borderRadius: 7, - }, - }), - }, - validationMessage: { - // All TextStyle properties are allowed - color: input.errorColor, - fontSize: font.size, - fontFamily: font.family, - }, -}; diff --git a/theme_old/styles/native/core/widgets/tabcontainer.js b/theme_old/styles/native/core/widgets/tabcontainer.js deleted file mode 100644 index ec0f8f0..0000000 --- a/theme_old/styles/native/core/widgets/tabcontainer.js +++ /dev/null @@ -1,67 +0,0 @@ -import { font, spacing, tabContainer } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Tab Container - - Default Class For Mendix Tab Container Widget -========================================================================== */ -export const TabContainer = { - container: { - // All ViewStyle properties are allowed - flex: 1, - }, - tabBar: { - // bounces, pressColor, pressOpacity, scrollEnabled and all ViewStyle properties are allowed - bounces: true, - pressColor: tabContainer.tabBar.pressColor, - pressOpacity: 0.8, - backgroundColor: tabContainer.tabBar.backgroundColor, - scrollEnabled: false, - paddingVertical: spacing.smaller, - }, - indicator: { - // All ViewStyle properties are allowed - backgroundColor: tabContainer.indicator.backgroundColor, - height: tabContainer.indicator.height, - }, - tab: { - // All ViewStyle properties are allowed - paddingVertical: spacing.smaller, - }, - label: { - // All TextStyle properties are allowed - color: tabContainer.label.color, - fontFamily: font.family, - fontWeight: tabContainer.label.fontWeight, - textTransform: tabContainer.label.textTransform, - }, - activeLabel: { - // All TextStyle properties are allowed - color: tabContainer.activeLabel.color, - fontFamily: font.family, - fontWeight: tabContainer.activeLabel.fontWeight, - textTransform: tabContainer.activeLabel.textTransform, - }, - badgeContainer: { - // All ViewStyle properties are allowed - borderRadius: tabContainer.badgeContainer.borderRadius, - backgroundColor: tabContainer.badgeContainer.backgroundColor, - paddingVertical: tabContainer.badgeContainer.paddingVertical, - paddingHorizontal: tabContainer.badgeContainer.paddingHorizontal, - marginLeft: tabContainer.badgeContainer.marginLeft - }, - badgeCaption: { - // All TextStyle properties are allowed - fontSize: tabContainer.badgeCaption.fontSize, - color: tabContainer.badgeCaption.color, - fontFamily: font.family, - fontWeight: tabContainer.badgeCaption.fontWeight, - marginTop: -1, - } -}; diff --git a/theme_old/styles/native/core/widgets/textarea.js b/theme_old/styles/native/core/widgets/textarea.js deleted file mode 100644 index 452d63b..0000000 --- a/theme_old/styles/native/core/widgets/textarea.js +++ /dev/null @@ -1,73 +0,0 @@ -import { input } from "../variables"; -import { TextBox, TextBoxVertical } from "./textbox"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Text Area - - Default Class For Mendix Text Area Widget -========================================================================== */ -export const TextArea = { - container: { - // All ViewStyle properties are allowed - ...TextBox.container, - }, - containerDisabled: { - // All ViewStyle properties are allowed - ...TextBox.containerDisabled, - }, - label: { - // numberOfLines and all TextStyle properties are allowed - ...TextBox.label, - height: "100%", - textAlignVertical: "top", - paddingVertical: input.paddingVertical, - }, - labelDisabled: { - // All ViewStyle properties are allowed - ...TextBox.labelDisabled - }, - input: { - // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed - ...TextBox.input, - textAlignVertical: "top", - paddingTop: input.paddingVertical, - }, - inputDisabled: { - // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed - ...TextBox.inputDisabled - }, - inputError: { - // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed - ...TextBox.inputError, - }, - inputFocused: { - // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed - ...TextBox.inputFocused, - }, - validationMessage: { - // All TextStyle properties are allowed - ...TextBox.validationMessage, - }, -}; -export const TextAreaVertical = { - container: TextBoxVertical.container, - containerDisabled: TextBoxVertical.containerDisabled, - label: { - ...TextBoxVertical.label, - height: undefined, - paddingVertical: undefined, - textAlignVertical: undefined, - }, - labelDisabled: TextBoxVertical.labelDisabled, - input: TextBoxVertical.input, - inputDisabled: TextBoxVertical.inputDisabled, - inputError: TextBoxVertical.inputError, - inputFocused: TextBoxVertical.inputFocused, - validationMessage: TextBoxVertical.validationMessage, -}; diff --git a/theme_old/styles/native/core/widgets/textbox.js b/theme_old/styles/native/core/widgets/textbox.js deleted file mode 100644 index e410c62..0000000 --- a/theme_old/styles/native/core/widgets/textbox.js +++ /dev/null @@ -1,100 +0,0 @@ -import { font, input, spacing } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Text Box - - Default Class For Mendix Text Box Widget -========================================================================== */ -export const TextBox = { - container: { - // All ViewStyle properties are allowed - }, - containerDisabled: { - // All ViewStyle properties are allowed - }, - label: { - // numberOfLines and all TextStyle properties are allowed - numberOfLines: 1, - color: input.labelColor, - fontSize: input.fontSize, - fontFamily: font.family, - textAlign: input.textAlign, - marginRight: spacing.small, - }, - labelDisabled: { - // TextStyle properties are allowed - color: input.labelColorDisabled, - }, - input: { - // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed - color: input.color, - borderColor: input.borderColor, - backgroundColor: input.backgroundColor, - selectionColor: input.selectionColor, - placeholderTextColor: input.placeholderTextColor, - fontSize: input.fontSize, - fontFamily: input.fontFamily, - borderWidth: input.borderWidth, - borderRadius: input.borderRadius, - paddingHorizontal: input.paddingHorizontal, - paddingVertical: input.paddingVertical, - }, - inputDisabled: { - // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed - backgroundColor: input.backgroundColorDisabled, - color: input.colorDisabled, - }, - inputError: { - // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed - color: input.errorColor, - borderColor: input.errorColor, - placeholderTextColor: input.errorColor, - underlineColorAndroid: input.underlineColorAndroid, - }, - inputFocused: { - // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed - borderColor: input.borderColorFocused - }, - validationMessage: { - // All TextStyle properties are allowed - color: input.errorColor, - fontSize: font.size, - fontFamily: font.family, - }, -}; -export const TextBoxVertical = { - container: {}, - containerDisabled: TextBox.containerDisabled, - label: { - numberOfLines: 1, - color: input.labelColor, - fontSize: input.fontSize, - fontFamily: font.family, - textAlign: input.textAlign, - marginBottom: spacing.smallest, - }, - labelDisabled: TextBox.labelDisabled, - input: { - color: input.color, - borderColor: input.borderColor, - backgroundColor: input.backgroundColor, - selectionColor: input.selectionColor, - placeholderTextColor: input.placeholderTextColor, - fontSize: input.fontSize, - fontFamily: input.fontFamily, - borderRadius: input.borderRadius, - borderWidth: input.borderWidth, - paddingHorizontal: input.paddingHorizontal, - paddingVertical: input.paddingVertical, - }, - inputFocused: TextBox.inputFocused, - inputDisabled: TextBox.inputDisabled, - inputError: TextBox.inputError, - validationMessage: TextBox.validationMessage, -}; diff --git a/theme_old/styles/native/core/widgets/togglebuttons.js b/theme_old/styles/native/core/widgets/togglebuttons.js deleted file mode 100644 index 1a618e2..0000000 --- a/theme_old/styles/native/core/widgets/togglebuttons.js +++ /dev/null @@ -1,59 +0,0 @@ -import { Platform } from "react-native"; -import { background, brand, contrast, font, input } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Segmented Controls - - Default Class For Mendix Segmented Controls Widget -========================================================================== */ -export const com_mendix_widget_native_togglebuttons_ToggleButtons = { - container: { - // All ViewStyle properties are allowed - alignSelf: "stretch", - }, - containerDisabled: { - opacity: 0.6, - alignSelf: "stretch", - }, - button: { - // All ViewStyle properties are allowed - backgroundColor: background.primary, - borderColor: Platform.select({ ios: brand.primary, android: contrast.lower }), - }, - text: { - // All TextStyle properties are allowed - color: Platform.select({ ios: brand.primary, android: contrast.high }), - fontSize: font.size, - fontFamily: font.family, - }, - activeButton: { - // All ViewStyle properties are allowed - ...Platform.select({ - ios: { - backgroundColor: brand.primary, - borderColor: brand.primary, - }, - android: { - backgroundColor: brand.primary, - borderColor: brand.primary, - }, - }), - }, - activeButtonText: { - // All TextStyle properties are allowed - fontSize: font.size, - fontFamily: font.family, - }, - validationMessage: { - // All TextStyle properties are allowed - color: input.errorColor, - fontSize: font.size, - fontFamily: font.family, - }, -}; diff --git a/theme_old/styles/native/core/widgets/typography.js b/theme_old/styles/native/core/widgets/typography.js deleted file mode 100644 index 5dd872a..0000000 --- a/theme_old/styles/native/core/widgets/typography.js +++ /dev/null @@ -1,79 +0,0 @@ -import { font } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Text - - Default Class For Mendix Text Widget -========================================================================== */ -export const Text = { - container: { - // All ViewStyle properties are allowed - }, - text: { - // numberOfLines & All TextStyle properties are allowed - color: font.color, - fontSize: font.size, - fontFamily: font.family, - lineHeight: font.size + 2, - }, -}; -export const TextHeading1 = { - container: {}, - text: { - fontWeight: font.weightSemiBold, - fontSize: font.sizeH1, - fontFamily: font.family, - lineHeight: font.sizeH1, - }, -}; -export const TextHeading2 = { - container: {}, - text: { - fontWeight: font.weightSemiBold, - fontSize: font.sizeH2, - fontFamily: font.family, - lineHeight: font.sizeH2, - }, -}; -export const TextHeading3 = { - container: {}, - text: { - fontWeight: font.weightSemiBold, - fontSize: font.sizeH3, - fontFamily: font.family, - lineHeight: font.sizeH3, - }, -}; -export const TextHeading4 = { - container: {}, - text: { - fontWeight: font.weightSemiBold, - fontSize: font.sizeH4, - fontFamily: font.family, - lineHeight: font.sizeH4, - }, -}; -export const TextHeading5 = { - container: {}, - text: { - fontWeight: font.weightSemiBold, - fontSize: font.sizeH5, - fontFamily: font.family, - lineHeight: font.sizeH5, - }, -}; -export const TextHeading6 = { - container: {}, - text: { - fontWeight: font.weightSemiBold, - fontSize: font.sizeH6, - fontFamily: font.family, - lineHeight: font.sizeH6, - }, -}; diff --git a/theme_old/styles/native/core/widgets/videoplayer.js b/theme_old/styles/native/core/widgets/videoplayer.js deleted file mode 100644 index 3e47b5e..0000000 --- a/theme_old/styles/native/core/widgets/videoplayer.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Video Player - - Default Class For Mendix Video Player Widget -========================================================================== */ -export const com_mendix_widget_native_videoplayer_VideoPlayer = { - container: { - // All ViewStyle properties are allowed - }, - indicator: { - // Only the backgroundColor property is allowed - }, - video: { - // All ViewStyle properties are allowed - }, -}; diff --git a/theme_old/styles/native/core/widgets/webview.js b/theme_old/styles/native/core/widgets/webview.js deleted file mode 100644 index a8078f0..0000000 --- a/theme_old/styles/native/core/widgets/webview.js +++ /dev/null @@ -1,26 +0,0 @@ -import { font } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Web View - - Default Class For Mendix Web View Widget -========================================================================== */ -export const com_mendix_widget_native_webview_WebView = { - container: { - // All ViewStyle properties are allowed - }, - errorContainer: { - // All ViewStyle properties are allowed - }, - errorText: { - // All TextStyle properties are allowed - fontSize: font.size, - fontFamily: font.family, - }, -}; diff --git a/theme_old/styles/native/main.js b/theme_old/styles/native/main.js deleted file mode 100644 index 9cbc8fd..0000000 --- a/theme_old/styles/native/main.js +++ /dev/null @@ -1,84 +0,0 @@ -//================================== CORE ==================================\\ -// -// -// Base -export * from "./core/base/flex"; -export * from "./core/base/spacing"; -// -// -// Components -export * from "./core/widgets/activityindicator"; -export * from "./core/helpers/activityindicator"; -export * from "./core/widgets/animation"; -export * from "./core/widgets/backgroundimage"; -export * from "./core/widgets/badge"; -export * from "./core/helpers/badge"; -export * from "./core/widgets/bottomsheet"; -export * from "./core/widgets/buttons"; -export * from "./core/helpers/buttons"; -export * from "./core/widgets/carousel"; -export * from "./core/widgets/checkbox"; -export * from "./core/widgets/colorpicker"; -export * from "./core/widgets/container"; -export * from "./core/widgets/datepicker"; -export * from "./core/widgets/dropdown"; -export * from "./core/widgets/feedback"; -export * from "./core/widgets/floatingactionbutton"; -export * from "./core/helpers/floatingactionbutton"; -export * from "./core/widgets/images"; -export * from "./core/helpers/images"; -export * from "./core/widgets/introscreen"; -export * from "./core/widgets/layoutgrid"; -export * from "./core/widgets/linechart"; -export * from "./core/helpers/linechart"; -export * from "./core/widgets/barchart"; -export * from "./core/helpers/barchart"; -export * from "./core/widgets/listviews"; -export * from "./core/helpers/listviews"; -export * from "./core/widgets/listviewswipe"; -export * from "./core/helpers/listviewswipe"; -export * from "./core/widgets/maps"; -export * from "./core/helpers/maps"; -export * from "./core/widgets/navigation"; -export * from "./core/widgets/pagetitle"; -export * from "./core/widgets/progressbar"; -export * from "./core/helpers/progressbar"; -export * from "./core/widgets/progresscircle"; -export * from "./core/helpers/progresscircle"; -export * from "./core/widgets/popupmenu"; -export * from "./core/widgets/qrcode"; -export * from "./core/widgets/rangeslider"; -export * from "./core/helpers/rangeslider"; -export * from "./core/widgets/rating"; -export * from "./core/widgets/referenceselector"; -export * from "./core/widgets/safeareaview"; -export * from "./core/widgets/slider"; -export * from "./core/helpers/slider"; -export * from "./core/widgets/tabcontainer"; -export * from "./core/helpers/tabcontainer"; -export * from "./core/widgets/textarea"; -export * from "./core/widgets/textbox"; -export * from "./core/helpers/textbox"; -export * from "./core/widgets/togglebuttons"; -export * from "./core/widgets/typography"; -export * from "./core/helpers/typography"; -export * from "./core/widgets/videoplayer"; -export * from "./core/widgets/webview"; -export * from "./core/helpers/helperclasses"; -// -// -//================================= CUSTOM =================================\\ -// -// Layouts -export * from "./ui_resources/atlas_ui_resources/layouts/layout"; -// -// -// Page Templates -export * from "./ui_resources/atlas_ui_resources/pagetemplates/page"; -export * from "./ui_resources/atlas_ui_resources/pagetemplates/maps"; -export * from "./ui_resources/atlas_ui_resources/pagetemplates/inspectiondetails"; -// -// -// Building blocks -export * from "./ui_resources/atlas_ui_resources/buildingblocks/card"; -export * from "./ui_resources/atlas_ui_resources/buildingblocks/header"; diff --git a/theme_old/styles/native/ui_resources/atlas_ui_resources/buildingblocks/card.js b/theme_old/styles/native/ui_resources/atlas_ui_resources/buildingblocks/card.js deleted file mode 100644 index d025639..0000000 --- a/theme_old/styles/native/ui_resources/atlas_ui_resources/buildingblocks/card.js +++ /dev/null @@ -1,100 +0,0 @@ -import { Platform } from "react-native"; -import { background, border, contrast, spacing } from "../../../core/variables"; -/* -========================================================================== - Cards - -========================================================================== -*/ -export const card = { - container: { - borderRadius: border.radius, - backgroundColor: background.primary, - marginBottom: spacing.regular, - ...Platform.select({ - android: { - borderWidth: 1, - borderColor: contrast.lowest, - }, - }), - elevation: 1.5, - shadowColor: "#000", - shadowOpacity: 0.1, - shadowRadius: 10, - shadowOffset: { - width: 0, - height: 2, - }, - }, -}; -// -//== Elements -//-------------------------------------------------------------------------------------------------------------------// -export const cardImage = { - container: { - overflow: "hidden", - borderTopLeftRadius: border.radius, - borderTopRightRadius: border.radius, - }, - image: { - width: "100%", - height: 200, - resizeMode: "cover", - }, -}; -export const cardImageFull = { - container: { - ...cardImage.container, - borderBottomLeftRadius: border.radius, - borderBottomRightRadius: border.radius, - }, - image: { - width: "100%", - height: 300, - resizeMode: "cover", - }, -}; -export const cardBody = { - container: { - position: "absolute", - end: 0, - start: 0, - bottom: 0, - backgroundColor: "transparent", - }, -}; -// -//== Variations -//-------------------------------------------------------------------------------------------------------------------// -// Card Action -export const cardAction = { - container: { - maxWidth: "100%", - aspectRatio: 1, - borderWidth: 1, - borderColor: border.color, - borderRadius: border.radius, - padding: spacing.regular, - alignItems: "center", - }, -}; -export const cardActionImage = { - image: { - maxHeight: 70, - resizeMode: "contain", - }, -}; -// -//-------------------------------------------------------------------------------------------------------------------// -// Card Payment -export const cardPaymentImage = { - container: { - flex: -1, - maxHeight: 250, - }, - image: { - width: "100%", - maxHeight: 250, - resizeMode: "contain", - }, -}; diff --git a/theme_old/styles/native/ui_resources/atlas_ui_resources/buildingblocks/header.js b/theme_old/styles/native/ui_resources/atlas_ui_resources/buildingblocks/header.js deleted file mode 100644 index 8df718e..0000000 --- a/theme_old/styles/native/ui_resources/atlas_ui_resources/buildingblocks/header.js +++ /dev/null @@ -1,55 +0,0 @@ -import { Platform } from "react-native"; -import { background, border, contrast, spacing } from "../../../core/variables"; -/* -========================================================================== - Cards - -========================================================================== -*/ -export const header = { - container: { - borderRadius: border.radius, - backgroundColor: background.primary, - marginBottom: spacing.regular, - ...Platform.select({ - android: { - borderWidth: 1, - borderColor: contrast.lowest, - }, - }), - }, -}; -// -//== Elements -//-------------------------------------------------------------------------------------------------------------------// -export const headerImageFull = { - container: { - overflow: "hidden", - }, - image: { - width: "100%", - height: 250, - resizeMode: "cover", - }, -}; -export const headerImageOverlay = { - container: { - zIndex: 10, - width: "100%", - height: "100%", - position: "absolute", - backgroundColor: "rgba(0,0,0,0.4)", - }, -}; -export const headerBody = { - container: { - bottom: 0, - zIndex: 11, - width: "100%", - position: "absolute", - backgroundColor: "transparent", - }, -}; -// -//== Variations -//-------------------------------------------------------------------------------------------------------------------// diff --git a/theme_old/styles/native/ui_resources/atlas_ui_resources/layouts/layout.js b/theme_old/styles/native/ui_resources/atlas_ui_resources/layouts/layout.js deleted file mode 100644 index 1b53995..0000000 --- a/theme_old/styles/native/ui_resources/atlas_ui_resources/layouts/layout.js +++ /dev/null @@ -1,56 +0,0 @@ -import { NativeModules } from "react-native"; -import { darkMode } from "../../../app/custom-variables.js"; -import { background, font, navigation } from "../../../core/variables"; -/* -========================================================================== - TopBar / BottomBar / ProgressOverlay - - Default Class For Mendix TopBar, BottomBar and ProgressOverlay -========================================================================== -*/ -// backgroundColor of the native iOS statusbar can not be changed. -// To fix this we change the barStyle of the statusbar if OS theme is dark and app theme is light (And the other way around). -const isOSDarkMode = NativeModules && NativeModules.RNDarkMode && NativeModules.RNDarkMode.initialMode && NativeModules.RNDarkMode.initialMode === "dark"; -const statusBarStyle = !darkMode && isOSDarkMode ? - "dark-content" : - darkMode && !isOSDarkMode ? "light-content" : navigation.statusBar.barStyle; -// -export const Layout = { - sidebar: { - // All ViewStyle properties are allowed - }, - statusBar: { - // Only backgroundColor and barStyle are allowed - backgroundColor: navigation.statusBar.backgroundColor, - barStyle: statusBarStyle, - }, - header: { - container: { - // All ViewStyle properties are allowed - backgroundColor: navigation.topBar.backgroundColor, - borderBottomWidth: undefined, - }, - title: { - // All TextStyle properties are allowed - color: navigation.topBar.titleColor, - fontSize: navigation.topBar.titleFontSize, - fontFamily: font.family, - fontWeight: font.weightBold, - }, - backButtonText: { - // All TextStyle properties are allowed - color: navigation.topBar.backButtonColor, - fontFamily: font.family, - }, - backButtonIcon: { - // All ImageStyle properties are allowed - tintColor: navigation.topBar.backButtonColor, - }, - }, - container: { - // All ViewStyle properties are allowed - backgroundColor: background.primary, - }, -}; -// -export const Page = Layout; diff --git a/theme_old/styles/native/ui_resources/atlas_ui_resources/pagetemplates/inspectiondetails.js b/theme_old/styles/native/ui_resources/atlas_ui_resources/pagetemplates/inspectiondetails.js deleted file mode 100644 index 7878669..0000000 --- a/theme_old/styles/native/ui_resources/atlas_ui_resources/pagetemplates/inspectiondetails.js +++ /dev/null @@ -1,29 +0,0 @@ -/* -========================================================================== - Inspection details - -========================================================================== -*/ -//== Elements -//-------------------------------------------------------------------------------------------------------------------// -export const carouselCardImage = { - container: { - borderRadius: 10, - overflow: "hidden", - }, - image: { - width: "100%", - height: "100%", - }, -}; -export const carouselFullWidthImage = { - container: {}, - image: { - width: "100%", - height: "100%", - }, -}; -// -//== Variations -//-------------------------------------------------------------------------------------------------------------------// -// diff --git a/theme_old/styles/native/ui_resources/atlas_ui_resources/pagetemplates/maps.js b/theme_old/styles/native/ui_resources/atlas_ui_resources/pagetemplates/maps.js deleted file mode 100644 index c861db7..0000000 --- a/theme_old/styles/native/ui_resources/atlas_ui_resources/pagetemplates/maps.js +++ /dev/null @@ -1,71 +0,0 @@ -import { background, border, contrast, spacing } from "../../../core/variables.js"; -/* -========================================================================== - Maps - -========================================================================== -*/ -// -//== Elements -//-------------------------------------------------------------------------------------------------------------------// -export const mapsBackground = { - container: { - position: "absolute", - height: "100%", - width: "100%", - zIndex: 0, - }, -}; -export const mapsFooter = { - container: { - bottom: 0, - position: "absolute", - }, -}; -export const mapsFooterSendLocation = { - container: { - flex: 1, - alignSelf: "flex-end", - backgroundColor: background.primary, - padding: spacing.regular, - margin: spacing.regular, - borderRadius: border.radius, - elevation: 4, - shadowColor: contrast.lower, - shadowOpacity: 0.8, - shadowRadius: 8, - shadowOffset: { - width: 0, - height: 2, - }, - }, -}; -export const mapsList = { - container: { - paddingHorizontal: spacing.regular, - }, -}; -export const mapsListItemImage = { - container: { - backgroundColor: background.primary, - borderRadius: border.radius, - marginVertical: spacing.regular, - marginLeft: spacing.smallest, - marginRight: spacing.regular, - elevation: 4, - shadowColor: contrast.lower, - shadowOpacity: 0.8, - shadowRadius: 8, - shadowOffset: { - width: 0, - height: 2, - }, - }, - image: { - borderRadius: border.radius, - }, -}; -// -//== Variations -//-------------------------------------------------------------------------------------------------------------------// -// diff --git a/theme_old/styles/native/ui_resources/atlas_ui_resources/pagetemplates/page.js b/theme_old/styles/native/ui_resources/atlas_ui_resources/pagetemplates/page.js deleted file mode 100644 index 0e3bcc2..0000000 --- a/theme_old/styles/native/ui_resources/atlas_ui_resources/pagetemplates/page.js +++ /dev/null @@ -1,39 +0,0 @@ -/* -========================================================================== - Page - -========================================================================== -*/ -//== Elements -//-------------------------------------------------------------------------------------------------------------------// -// -//== Variations -//-------------------------------------------------------------------------------------------------------------------// -// -export const pageHeaderBorderNone = { - sidebar: { - // All ViewStyle properties are allowed - }, - statusBar: { - // Only backgroundColor and barStyle are allowed - }, - header: { - container: { - // All ViewStyle properties are allowed - elevation: 0, - borderBottomWidth: undefined, - }, - title: { - // All TextStyle properties are allowed - }, - backButtonText: { - // All TextStyle properties are allowed - }, - backButtonIcon: { - // All ImageStyle properties are allowed - }, - }, - container: { - // All ViewStyle properties are allowed - }, -}; diff --git a/theme_old/styles/web/css/fonts/glyphicons-halflings-regular.woff b/theme_old/styles/web/css/fonts/glyphicons-halflings-regular.woff deleted file mode 100644 index 9e61285..0000000 Binary files a/theme_old/styles/web/css/fonts/glyphicons-halflings-regular.woff and /dev/null differ diff --git a/theme_old/styles/web/css/fonts/glyphicons-halflings-regular.woff2 b/theme_old/styles/web/css/fonts/glyphicons-halflings-regular.woff2 deleted file mode 100644 index 64539b5..0000000 Binary files a/theme_old/styles/web/css/fonts/glyphicons-halflings-regular.woff2 and /dev/null differ diff --git a/theme_old/styles/web/css/main.css b/theme_old/styles/web/css/main.css deleted file mode 100644 index 66189f4..0000000 --- a/theme_old/styles/web/css/main.css +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap v3.3.4 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.2 | MIT License | git.io/normalize */@import url("https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700");@import url("https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700");@import url("https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700");html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{margin:0.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type='button'],input[type='reset'],input[type='submit']{-webkit-appearance:button;cursor:pointer}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type='checkbox'],input[type='radio']{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type='number']::-webkit-inner-spin-button,input[type='number']::-webkit-outer-spin-button{height:auto}input[type='search']{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type='search']::-webkit-search-cancel-button,input[type='search']::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:0.35em 0.625em 0.75em;margin:0 2px;border:1px solid #c0c0c0}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{color:#000 !important;text-shadow:none !important;background:transparent !important;-webkit-box-shadow:none !important;box-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^='#']:after,a[href^='javascript:']:after{content:''}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff !important}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url("./fonts/glyphicons-halflings-regular.woff2") format("woff2"),url("./fonts/glyphicons-halflings-regular.woff") format("woff")}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:'\2a'}.glyphicon-plus:before{content:'\2b'}.glyphicon-euro:before,.glyphicon-eur:before{content:'\20ac'}.glyphicon-minus:before{content:'\2212'}.glyphicon-cloud:before{content:'\2601'}.glyphicon-envelope:before{content:'\2709'}.glyphicon-pencil:before{content:'\270f'}.glyphicon-glass:before{content:'\e001'}.glyphicon-music:before{content:'\e002'}.glyphicon-search:before{content:'\e003'}.glyphicon-heart:before{content:'\e005'}.glyphicon-star:before{content:'\e006'}.glyphicon-star-empty:before{content:'\e007'}.glyphicon-user:before{content:'\e008'}.glyphicon-film:before{content:'\e009'}.glyphicon-th-large:before{content:'\e010'}.glyphicon-th:before{content:'\e011'}.glyphicon-th-list:before{content:'\e012'}.glyphicon-ok:before{content:'\e013'}.glyphicon-remove:before{content:'\e014'}.glyphicon-zoom-in:before{content:'\e015'}.glyphicon-zoom-out:before{content:'\e016'}.glyphicon-off:before{content:'\e017'}.glyphicon-signal:before{content:'\e018'}.glyphicon-cog:before{content:'\e019'}.glyphicon-trash:before{content:'\e020'}.glyphicon-home:before{content:'\e021'}.glyphicon-file:before{content:'\e022'}.glyphicon-time:before{content:'\e023'}.glyphicon-road:before{content:'\e024'}.glyphicon-download-alt:before{content:'\e025'}.glyphicon-download:before{content:'\e026'}.glyphicon-upload:before{content:'\e027'}.glyphicon-inbox:before{content:'\e028'}.glyphicon-play-circle:before{content:'\e029'}.glyphicon-repeat:before{content:'\e030'}.glyphicon-refresh:before{content:'\e031'}.glyphicon-list-alt:before{content:'\e032'}.glyphicon-lock:before{content:'\e033'}.glyphicon-flag:before{content:'\e034'}.glyphicon-headphones:before{content:'\e035'}.glyphicon-volume-off:before{content:'\e036'}.glyphicon-volume-down:before{content:'\e037'}.glyphicon-volume-up:before{content:'\e038'}.glyphicon-qrcode:before{content:'\e039'}.glyphicon-barcode:before{content:'\e040'}.glyphicon-tag:before{content:'\e041'}.glyphicon-tags:before{content:'\e042'}.glyphicon-book:before{content:'\e043'}.glyphicon-bookmark:before{content:'\e044'}.glyphicon-print:before{content:'\e045'}.glyphicon-camera:before{content:'\e046'}.glyphicon-font:before{content:'\e047'}.glyphicon-bold:before{content:'\e048'}.glyphicon-italic:before{content:'\e049'}.glyphicon-text-height:before{content:'\e050'}.glyphicon-text-width:before{content:'\e051'}.glyphicon-align-left:before{content:'\e052'}.glyphicon-align-center:before{content:'\e053'}.glyphicon-align-right:before{content:'\e054'}.glyphicon-align-justify:before{content:'\e055'}.glyphicon-list:before{content:'\e056'}.glyphicon-indent-left:before{content:'\e057'}.glyphicon-indent-right:before{content:'\e058'}.glyphicon-facetime-video:before{content:'\e059'}.glyphicon-picture:before{content:'\e060'}.glyphicon-map-marker:before{content:'\e062'}.glyphicon-adjust:before{content:'\e063'}.glyphicon-tint:before{content:'\e064'}.glyphicon-edit:before{content:'\e065'}.glyphicon-share:before{content:'\e066'}.glyphicon-check:before{content:'\e067'}.glyphicon-move:before{content:'\e068'}.glyphicon-step-backward:before{content:'\e069'}.glyphicon-fast-backward:before{content:'\e070'}.glyphicon-backward:before{content:'\e071'}.glyphicon-play:before{content:'\e072'}.glyphicon-pause:before{content:'\e073'}.glyphicon-stop:before{content:'\e074'}.glyphicon-forward:before{content:'\e075'}.glyphicon-fast-forward:before{content:'\e076'}.glyphicon-step-forward:before{content:'\e077'}.glyphicon-eject:before{content:'\e078'}.glyphicon-chevron-left:before{content:'\e079'}.glyphicon-chevron-right:before{content:'\e080'}.glyphicon-plus-sign:before{content:'\e081'}.glyphicon-minus-sign:before{content:'\e082'}.glyphicon-remove-sign:before{content:'\e083'}.glyphicon-ok-sign:before{content:'\e084'}.glyphicon-question-sign:before{content:'\e085'}.glyphicon-info-sign:before{content:'\e086'}.glyphicon-screenshot:before{content:'\e087'}.glyphicon-remove-circle:before{content:'\e088'}.glyphicon-ok-circle:before{content:'\e089'}.glyphicon-ban-circle:before{content:'\e090'}.glyphicon-arrow-left:before{content:'\e091'}.glyphicon-arrow-right:before{content:'\e092'}.glyphicon-arrow-up:before{content:'\e093'}.glyphicon-arrow-down:before{content:'\e094'}.glyphicon-share-alt:before{content:'\e095'}.glyphicon-resize-full:before{content:'\e096'}.glyphicon-resize-small:before{content:'\e097'}.glyphicon-exclamation-sign:before{content:'\e101'}.glyphicon-gift:before{content:'\e102'}.glyphicon-leaf:before{content:'\e103'}.glyphicon-fire:before{content:'\e104'}.glyphicon-eye-open:before{content:'\e105'}.glyphicon-eye-close:before{content:'\e106'}.glyphicon-warning-sign:before{content:'\e107'}.glyphicon-plane:before{content:'\e108'}.glyphicon-calendar:before{content:'\e109'}.glyphicon-random:before{content:'\e110'}.glyphicon-comment:before{content:'\e111'}.glyphicon-magnet:before{content:'\e112'}.glyphicon-chevron-up:before{content:'\e113'}.glyphicon-chevron-down:before{content:'\e114'}.glyphicon-retweet:before{content:'\e115'}.glyphicon-shopping-cart:before{content:'\e116'}.glyphicon-folder-close:before{content:'\e117'}.glyphicon-folder-open:before{content:'\e118'}.glyphicon-resize-vertical:before{content:'\e119'}.glyphicon-resize-horizontal:before{content:'\e120'}.glyphicon-hdd:before{content:'\e121'}.glyphicon-bullhorn:before{content:'\e122'}.glyphicon-bell:before{content:'\e123'}.glyphicon-certificate:before{content:'\e124'}.glyphicon-thumbs-up:before{content:'\e125'}.glyphicon-thumbs-down:before{content:'\e126'}.glyphicon-hand-right:before{content:'\e127'}.glyphicon-hand-left:before{content:'\e128'}.glyphicon-hand-up:before{content:'\e129'}.glyphicon-hand-down:before{content:'\e130'}.glyphicon-circle-arrow-right:before{content:'\e131'}.glyphicon-circle-arrow-left:before{content:'\e132'}.glyphicon-circle-arrow-up:before{content:'\e133'}.glyphicon-circle-arrow-down:before{content:'\e134'}.glyphicon-globe:before{content:'\e135'}.glyphicon-wrench:before{content:'\e136'}.glyphicon-tasks:before{content:'\e137'}.glyphicon-filter:before{content:'\e138'}.glyphicon-briefcase:before{content:'\e139'}.glyphicon-fullscreen:before{content:'\e140'}.glyphicon-dashboard:before{content:'\e141'}.glyphicon-paperclip:before{content:'\e142'}.glyphicon-heart-empty:before{content:'\e143'}.glyphicon-link:before{content:'\e144'}.glyphicon-phone:before{content:'\e145'}.glyphicon-pushpin:before{content:'\e146'}.glyphicon-usd:before{content:'\e148'}.glyphicon-gbp:before{content:'\e149'}.glyphicon-sort:before{content:'\e150'}.glyphicon-sort-by-alphabet:before{content:'\e151'}.glyphicon-sort-by-alphabet-alt:before{content:'\e152'}.glyphicon-sort-by-order:before{content:'\e153'}.glyphicon-sort-by-order-alt:before{content:'\e154'}.glyphicon-sort-by-attributes:before{content:'\e155'}.glyphicon-sort-by-attributes-alt:before{content:'\e156'}.glyphicon-unchecked:before{content:'\e157'}.glyphicon-expand:before{content:'\e158'}.glyphicon-collapse-down:before{content:'\e159'}.glyphicon-collapse-up:before{content:'\e160'}.glyphicon-log-in:before{content:'\e161'}.glyphicon-flash:before{content:'\e162'}.glyphicon-log-out:before{content:'\e163'}.glyphicon-new-window:before{content:'\e164'}.glyphicon-record:before{content:'\e165'}.glyphicon-save:before{content:'\e166'}.glyphicon-open:before{content:'\e167'}.glyphicon-saved:before{content:'\e168'}.glyphicon-import:before{content:'\e169'}.glyphicon-export:before{content:'\e170'}.glyphicon-send:before{content:'\e171'}.glyphicon-floppy-disk:before{content:'\e172'}.glyphicon-floppy-saved:before{content:'\e173'}.glyphicon-floppy-remove:before{content:'\e174'}.glyphicon-floppy-save:before{content:'\e175'}.glyphicon-floppy-open:before{content:'\e176'}.glyphicon-credit-card:before{content:'\e177'}.glyphicon-transfer:before{content:'\e178'}.glyphicon-cutlery:before{content:'\e179'}.glyphicon-header:before{content:'\e180'}.glyphicon-compressed:before{content:'\e181'}.glyphicon-earphone:before{content:'\e182'}.glyphicon-phone-alt:before{content:'\e183'}.glyphicon-tower:before{content:'\e184'}.glyphicon-stats:before{content:'\e185'}.glyphicon-sd-video:before{content:'\e186'}.glyphicon-hd-video:before{content:'\e187'}.glyphicon-subtitles:before{content:'\e188'}.glyphicon-sound-stereo:before{content:'\e189'}.glyphicon-sound-dolby:before{content:'\e190'}.glyphicon-sound-5-1:before{content:'\e191'}.glyphicon-sound-6-1:before{content:'\e192'}.glyphicon-sound-7-1:before{content:'\e193'}.glyphicon-copyright-mark:before{content:'\e194'}.glyphicon-registration-mark:before{content:'\e195'}.glyphicon-cloud-download:before{content:'\e197'}.glyphicon-cloud-upload:before{content:'\e198'}.glyphicon-tree-conifer:before{content:'\e199'}.glyphicon-tree-deciduous:before{content:'\e200'}.glyphicon-cd:before{content:'\e201'}.glyphicon-save-file:before{content:'\e202'}.glyphicon-open-file:before{content:'\e203'}.glyphicon-level-up:before{content:'\e204'}.glyphicon-copy:before{content:'\e205'}.glyphicon-paste:before{content:'\e206'}.glyphicon-alert:before{content:'\e209'}.glyphicon-equalizer:before{content:'\e210'}.glyphicon-king:before{content:'\e211'}.glyphicon-queen:before{content:'\e212'}.glyphicon-pawn:before{content:'\e213'}.glyphicon-bishop:before{content:'\e214'}.glyphicon-knight:before{content:'\e215'}.glyphicon-baby-formula:before{content:'\e216'}.glyphicon-tent:before{content:'\26fa'}.glyphicon-blackboard:before{content:'\e218'}.glyphicon-bed:before{content:'\e219'}.glyphicon-apple:before{content:'\f8ff'}.glyphicon-erase:before{content:'\e221'}.glyphicon-hourglass:before{content:'\231b'}.glyphicon-lamp:before{content:'\e223'}.glyphicon-duplicate:before{content:'\e224'}.glyphicon-piggy-bank:before{content:'\e225'}.glyphicon-scissors:before{content:'\e226'}.glyphicon-bitcoin:before{content:'\e227'}.glyphicon-btc:before{content:'\e227'}.glyphicon-xbt:before{content:'\e227'}.glyphicon-yen:before{content:'\00a5'}.glyphicon-jpy:before{content:'\00a5'}.glyphicon-ruble:before{content:'\20bd'}.glyphicon-rub:before{content:'\20bd'}.glyphicon-scale:before{content:'\e230'}.glyphicon-ice-lolly:before{content:'\e231'}.glyphicon-ice-lolly-tasted:before{content:'\e232'}.glyphicon-education:before{content:'\e233'}.glyphicon-option-horizontal:before{content:'\e234'}.glyphicon-option-vertical:before{content:'\e235'}.glyphicon-menu-hamburger:before{content:'\e236'}.glyphicon-modal-window:before{content:'\e237'}.glyphicon-oil:before{content:'\e238'}.glyphicon-grain:before{content:'\e239'}.glyphicon-sunglasses:before{content:'\e240'}.glyphicon-text-size:before{content:'\e241'}.glyphicon-text-color:before{content:'\e242'}.glyphicon-text-background:before{content:'\e243'}.glyphicon-object-align-top:before{content:'\e244'}.glyphicon-object-align-bottom:before{content:'\e245'}.glyphicon-object-align-horizontal:before{content:'\e246'}.glyphicon-object-align-left:before{content:'\e247'}.glyphicon-object-align-vertical:before{content:'\e248'}.glyphicon-object-align-right:before{content:'\e249'}.glyphicon-triangle-right:before{content:'\e250'}.glyphicon-triangle-left:before{content:'\e251'}.glyphicon-triangle-bottom:before{content:'\e252'}.glyphicon-triangle-top:before{content:'\e253'}.glyphicon-console:before{content:'\e254'}.glyphicon-superscript:before{content:'\e255'}.glyphicon-subscript:before{content:'\e256'}.glyphicon-menu-left:before{content:'\e257'}.glyphicon-menu-right:before{content:'\e258'}.glyphicon-menu-down:before{content:'\e259'}.glyphicon-menu-up:before{content:'\e260'}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:hover,a:focus{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role='button']{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#777}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width: 768px){.lead{font-size:21px}}small,.small{font-size:85%}mark,.mark{padding:0.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width: 768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo, Monaco, Consolas, 'Courier New', monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width: 768px){.container{width:750px}}@media (min-width: 992px){.container{width:970px}}@media (min-width: 1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*='col-']{position:static;display:table-column;float:none}table td[class*='col-'],table th[class*='col-']{position:static;display:table-cell;float:none}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{min-height:0.01%;overflow-x:auto}@media screen and (max-width: 767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type='search']{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type='radio'],input[type='checkbox']{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type='file']{display:block}input[type='range']{display:block;width:100%}select[multiple],select[size]{height:auto}input[type='file']:focus,input[type='radio']:focus,input[type='checkbox']:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type='radio'],.radio-inline input[type='radio'],.checkbox input[type='checkbox'],.checkbox-inline input[type='checkbox']{position:absolute;margin-top:4px \9;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:normal;vertical-align:middle;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type='radio'][disabled],input[type='checkbox'][disabled],input[type='radio'].disabled,input[type='checkbox'].disabled,fieldset[disabled] input[type='radio'],fieldset[disabled] input[type='checkbox']{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static,.form-group div[class*='textBox']>.control-label,.form-group div[class*='textArea']>.control-label,.form-group div[class*='datePicker']>.control-label{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-group div[class*='textBox']>.input-lg.control-label,.form-group div[class*='textArea']>.input-lg.control-label,.form-group div[class*='datePicker']>.input-lg.control-label,.form-control-static.input-sm,.form-group div[class*='textBox']>.input-sm.control-label,.form-group div[class*='textArea']>.input-sm.control-label,.form-group div[class*='datePicker']>.input-sm.control-label{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.form-group-sm .form-control{height:30px;line-height:30px}textarea.form-group-sm .form-control,select[multiple].form-group-sm .form-control{height:auto}.form-group-sm .form-control-static,.form-group-sm .form-group div[class*='textBox']>.control-label,.form-group .form-group-sm div[class*='textBox']>.control-label,.form-group-sm .form-group div[class*='textArea']>.control-label,.form-group .form-group-sm div[class*='textArea']>.control-label,.form-group-sm .form-group div[class*='datePicker']>.control-label,.form-group .form-group-sm div[class*='datePicker']>.control-label{height:30px;min-height:32px;padding:5px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.form-group-lg .form-control{height:46px;line-height:46px}textarea.form-group-lg .form-control,select[multiple].form-group-lg .form-control{height:auto}.form-group-lg .form-control-static,.form-group-lg .form-group div[class*='textBox']>.control-label,.form-group .form-group-lg div[class*='textBox']>.control-label,.form-group-lg .form-group div[class*='textArea']>.control-label,.form-group .form-group-lg div[class*='textArea']>.control-label,.form-group-lg .form-group div[class*='datePicker']>.control-label,.form-group .form-group-lg div[class*='datePicker']>.control-label{height:46px;min-height:38px;padding:10px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label ~ .form-control-feedback{top:25px}.has-feedback label.sr-only ~ .form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width: 768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static,.form-inline .form-group div[class*='textBox']>.control-label,.form-group .form-inline div[class*='textBox']>.control-label,.form-inline .form-group div[class*='textArea']>.control-label,.form-group .form-inline div[class*='textArea']>.control-label,.form-inline .form-group div[class*='datePicker']>.control-label,.form-group .form-inline div[class*='datePicker']>.control-label{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type='radio'],.form-inline .checkbox input[type='checkbox']{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width: 768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width: 768px){.form-horizontal .form-group-lg .control-label{padding-top:14.333333px}}@media (min-width: 768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:normal;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#333;text-decoration:none}.btn:active,.btn.active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:0.65}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default.focus,.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary,.datagrid-fullsearch.mx-grid .mx-grid-search-button{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary:hover,.datagrid-fullsearch.mx-grid .mx-grid-search-button:hover,.btn-primary:focus,.datagrid-fullsearch.mx-grid .mx-grid-search-button:focus,.btn-primary.focus,.datagrid-fullsearch.mx-grid .focus.mx-grid-search-button,.btn-primary:active,.datagrid-fullsearch.mx-grid .mx-grid-search-button:active,.btn-primary.active,.datagrid-fullsearch.mx-grid .active.mx-grid-search-button,.open>.dropdown-toggle.btn-primary,.datagrid-fullsearch.mx-grid .open>.dropdown-toggle.mx-grid-search-button{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary:active,.datagrid-fullsearch.mx-grid .mx-grid-search-button:active,.btn-primary.active,.datagrid-fullsearch.mx-grid .active.mx-grid-search-button,.open>.dropdown-toggle.btn-primary,.datagrid-fullsearch.mx-grid .open>.dropdown-toggle.mx-grid-search-button{background-image:none}.btn-primary.disabled,.datagrid-fullsearch.mx-grid .disabled.mx-grid-search-button,.btn-primary[disabled],.datagrid-fullsearch.mx-grid .mx-grid-search-button[disabled],fieldset[disabled] .btn-primary,fieldset[disabled] .datagrid-fullsearch.mx-grid .mx-grid-search-button,.datagrid-fullsearch.mx-grid fieldset[disabled] .mx-grid-search-button,.btn-primary.disabled:hover,.datagrid-fullsearch.mx-grid .disabled.mx-grid-search-button:hover,.btn-primary[disabled]:hover,.datagrid-fullsearch.mx-grid .mx-grid-search-button[disabled]:hover,fieldset[disabled] .btn-primary:hover,fieldset[disabled] .datagrid-fullsearch.mx-grid .mx-grid-search-button:hover,.datagrid-fullsearch.mx-grid fieldset[disabled] .mx-grid-search-button:hover,.btn-primary.disabled:focus,.datagrid-fullsearch.mx-grid .disabled.mx-grid-search-button:focus,.btn-primary[disabled]:focus,.datagrid-fullsearch.mx-grid .mx-grid-search-button[disabled]:focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .datagrid-fullsearch.mx-grid .mx-grid-search-button:focus,.datagrid-fullsearch.mx-grid fieldset[disabled] .mx-grid-search-button:focus,.btn-primary.disabled.focus,.datagrid-fullsearch.mx-grid .disabled.focus.mx-grid-search-button,.btn-primary[disabled].focus,.datagrid-fullsearch.mx-grid .mx-grid-search-button[disabled].focus,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .datagrid-fullsearch.mx-grid .focus.mx-grid-search-button,.datagrid-fullsearch.mx-grid fieldset[disabled] .focus.mx-grid-search-button,.btn-primary.disabled:active,.datagrid-fullsearch.mx-grid .disabled.mx-grid-search-button:active,.btn-primary[disabled]:active,.datagrid-fullsearch.mx-grid .mx-grid-search-button[disabled]:active,fieldset[disabled] .btn-primary:active,fieldset[disabled] .datagrid-fullsearch.mx-grid .mx-grid-search-button:active,.datagrid-fullsearch.mx-grid fieldset[disabled] .mx-grid-search-button:active,.btn-primary.disabled.active,.datagrid-fullsearch.mx-grid .disabled.active.mx-grid-search-button,.btn-primary[disabled].active,.datagrid-fullsearch.mx-grid .mx-grid-search-button[disabled].active,fieldset[disabled] .btn-primary.active,fieldset[disabled] .datagrid-fullsearch.mx-grid .active.mx-grid-search-button,.datagrid-fullsearch.mx-grid fieldset[disabled] .active.mx-grid-search-button{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge,.datagrid-fullsearch.mx-grid .mx-grid-search-button .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success.focus,.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info.focus,.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning.focus,.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger.focus,.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:normal;color:#337ab7;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#777;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type='submit'].btn-block,input[type='reset'].btn-block,input[type='button'].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:0.35s;-o-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-property:height, visibility;-o-transition-property:height, visibility;transition-property:height, visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.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;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#777}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:'';border-top:0;border-bottom:4px solid}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width: 768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:4px}.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-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle='buttons']>.btn input[type='radio'],[data-toggle='buttons']>.btn-group>.btn input[type='radio'],[data-toggle='buttons']>.btn input[type='checkbox'],[data-toggle='buttons']>.btn-group>.btn input[type='checkbox']{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*='col-']{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:normal;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type='radio'],.input-group-addon input[type='checkbox']{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-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-top-left-radius:0;border-bottom-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{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width: 768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width: 768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width: 768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width: 768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width: 768px){.navbar{border-radius:4px}}@media (min-width: 768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width: 768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;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-right:0;padding-left:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width: 480px) and (orientation: landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width: 768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width: 768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width: 768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width: 768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width: 768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width: 767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width: 768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}@media (min-width: 768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static,.navbar-form .form-group div[class*='textBox']>.control-label,.form-group .navbar-form div[class*='textBox']>.control-label,.navbar-form .form-group div[class*='textArea']>.control-label,.form-group .navbar-form div[class*='textArea']>.control-label,.navbar-form .form-group div[class*='datePicker']>.control-label,.form-group .navbar-form div[class*='datePicker']>.control-label{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type='radio'],.navbar-form .checkbox input[type='checkbox']{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width: 767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width: 768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width: 768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width: 768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right ~ .navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{color:#555;background-color:#e7e7e7}@media (max-width: 767px){.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:#333;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:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#333}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.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:#080808}.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{color:#fff;background-color:#080808}@media (max-width: 767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.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:#080808}.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:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#fff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:'/\00a0'}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:0.2em 0.6em 0.3em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:0.25em}a.label:hover,a.label:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:hover,.label-default[href]:focus{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.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}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px 15px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width: 768px){.jumbotron{padding:48px 0}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border 0.2s ease-in-out;-o-transition:border 0.2s ease-in-out;transition:border 0.2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-right:auto;margin-left:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-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{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-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;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{color:#555;text-decoration:none;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-right:15px;padding-left:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:0.2}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:0.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:transparent;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform 0.3s ease-out;-o-transition:-o-transform 0.3s ease-out;transition:transform 0.3s ease-out;-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%)}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:0.5}.modal-header{min-height:16.42857143px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width: 768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width: 992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:12px;font-weight:normal;line-height:1.4;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:0.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:14px;font-weight:normal;line-height:1.42857143;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;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)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:'';border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:' ';border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:' ';border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:' ';border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:' ';border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:0.6s ease-in-out left;-o-transition:0.6s ease-in-out left;transition:0.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d), (-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform 0.6s ease-in-out;-o-transition:-o-transform 0.6s ease-in-out;transition:transform 0.6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;perspective:1000}.carousel-inner>.item.next,.carousel-inner>.item.active.right{left:0;-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0)}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{left:0;-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0)}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{left:0;-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6);filter:alpha(opacity=50);opacity:0.5}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.0001) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.0001)));background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0%, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0%, rgba(0,0,0,0.5) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.0001)), to(rgba(0,0,0,0.5)));background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0%, rgba(0,0,0,0.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:0.9}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width: 768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{display:table;content:' '}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-right:auto;margin-left: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}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width: 767px){.visible-xs{display:block !important}table.visible-xs{display:table}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width: 767px){.visible-xs-block{display:block !important}}@media (max-width: 767px){.visible-xs-inline{display:inline !important}}@media (max-width: 767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm{display:block !important}table.visible-sm{display:table}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm-block{display:block !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm-inline{display:inline !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md{display:block !important}table.visible-md{display:table}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md-block{display:block !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md-inline{display:inline !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width: 1200px){.visible-lg{display:block !important}table.visible-lg{display:table}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width: 1200px){.visible-lg-block{display:block !important}}@media (min-width: 1200px){.visible-lg-inline{display:inline !important}}@media (min-width: 1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width: 767px){.hidden-xs{display:none !important}}@media (min-width: 768px) and (max-width: 991px){.hidden-sm{display:none !important}}@media (min-width: 992px) and (max-width: 1199px){.hidden-md{display:none !important}}@media (min-width: 1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}[dir='rtl'] .flip.text-left{text-align:right}[dir='rtl'] .flip.text-right{text-align:left}[dir='rtl'] .list-unstyled{padding-right:0;padding-left:initial}[dir='rtl'] .list-inline{padding-right:0;padding-left:initial;margin-right:-5px;margin-left:0}[dir='rtl'] dd{margin-right:0;margin-left:initial}@media (min-width: 768px){[dir='rtl'] .dl-horizontal dt{float:right;clear:right;text-align:left}[dir='rtl'] .dl-horizontal dd{margin-right:180px;margin-left:0}}[dir='rtl'] blockquote{border-right:5px solid #eeeeee;border-left:0}[dir='rtl'] .blockquote-reverse,[dir='rtl'] blockquote.pull-left{padding-left:15px;padding-right:0;border-left:5px solid #eeeeee;border-right:0;text-align:left}[dir='rtl'] .col-xs-1,[dir='rtl'] .col-sm-1,[dir='rtl'] .col-md-1,[dir='rtl'] .col-lg-1,[dir='rtl'] .col-xs-2,[dir='rtl'] .col-sm-2,[dir='rtl'] .col-md-2,[dir='rtl'] .col-lg-2,[dir='rtl'] .col-xs-3,[dir='rtl'] .col-sm-3,[dir='rtl'] .col-md-3,[dir='rtl'] .col-lg-3,[dir='rtl'] .col-xs-4,[dir='rtl'] .col-sm-4,[dir='rtl'] .col-md-4,[dir='rtl'] .col-lg-4,[dir='rtl'] .col-xs-5,[dir='rtl'] .col-sm-5,[dir='rtl'] .col-md-5,[dir='rtl'] .col-lg-5,[dir='rtl'] .col-xs-6,[dir='rtl'] .col-sm-6,[dir='rtl'] .col-md-6,[dir='rtl'] .col-lg-6,[dir='rtl'] .col-xs-7,[dir='rtl'] .col-sm-7,[dir='rtl'] .col-md-7,[dir='rtl'] .col-lg-7,[dir='rtl'] .col-xs-8,[dir='rtl'] .col-sm-8,[dir='rtl'] .col-md-8,[dir='rtl'] .col-lg-8,[dir='rtl'] .col-xs-9,[dir='rtl'] .col-sm-9,[dir='rtl'] .col-md-9,[dir='rtl'] .col-lg-9,[dir='rtl'] .col-xs-10,[dir='rtl'] .col-sm-10,[dir='rtl'] .col-md-10,[dir='rtl'] .col-lg-10,[dir='rtl'] .col-xs-11,[dir='rtl'] .col-sm-11,[dir='rtl'] .col-md-11,[dir='rtl'] .col-lg-11,[dir='rtl'] .col-xs-12,[dir='rtl'] .col-sm-12,[dir='rtl'] .col-md-12,[dir='rtl'] .col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}[dir='rtl'] .col-xs-1,[dir='rtl'] .col-xs-2,[dir='rtl'] .col-xs-3,[dir='rtl'] .col-xs-4,[dir='rtl'] .col-xs-5,[dir='rtl'] .col-xs-6,[dir='rtl'] .col-xs-7,[dir='rtl'] .col-xs-8,[dir='rtl'] .col-xs-9,[dir='rtl'] .col-xs-10,[dir='rtl'] .col-xs-11,[dir='rtl'] .col-xs-12{float:right}[dir='rtl'] .col-xs-12{width:100%}[dir='rtl'] .col-xs-11{width:91.66666667%}[dir='rtl'] .col-xs-10{width:83.33333333%}[dir='rtl'] .col-xs-9{width:75%}[dir='rtl'] .col-xs-8{width:66.66666667%}[dir='rtl'] .col-xs-7{width:58.33333333%}[dir='rtl'] .col-xs-6{width:50%}[dir='rtl'] .col-xs-5{width:41.66666667%}[dir='rtl'] .col-xs-4{width:33.33333333%}[dir='rtl'] .col-xs-3{width:25%}[dir='rtl'] .col-xs-2{width:16.66666667%}[dir='rtl'] .col-xs-1{width:8.33333333%}[dir='rtl'] .col-xs-pull-12{left:100%;right:auto}[dir='rtl'] .col-xs-pull-11{left:91.66666667%;right:auto}[dir='rtl'] .col-xs-pull-10{left:83.33333333%;right:auto}[dir='rtl'] .col-xs-pull-9{left:75%;right:auto}[dir='rtl'] .col-xs-pull-8{left:66.66666667%;right:auto}[dir='rtl'] .col-xs-pull-7{left:58.33333333%;right:auto}[dir='rtl'] .col-xs-pull-6{left:50%;right:auto}[dir='rtl'] .col-xs-pull-5{left:41.66666667%;right:auto}[dir='rtl'] .col-xs-pull-4{left:33.33333333%;right:auto}[dir='rtl'] .col-xs-pull-3{left:25%;right:auto}[dir='rtl'] .col-xs-pull-2{left:16.66666667%;right:auto}[dir='rtl'] .col-xs-pull-1{left:8.33333333%;right:auto}[dir='rtl'] .col-xs-pull-0{left:auto;right:auto}[dir='rtl'] .col-xs-push-12{right:100%;left:0}[dir='rtl'] .col-xs-push-11{right:91.66666667%;left:0}[dir='rtl'] .col-xs-push-10{right:83.33333333%;left:0}[dir='rtl'] .col-xs-push-9{right:75%;left:0}[dir='rtl'] .col-xs-push-8{right:66.66666667%;left:0}[dir='rtl'] .col-xs-push-7{right:58.33333333%;left:0}[dir='rtl'] .col-xs-push-6{right:50%;left:0}[dir='rtl'] .col-xs-push-5{right:41.66666667%;left:0}[dir='rtl'] .col-xs-push-4{right:33.33333333%;left:0}[dir='rtl'] .col-xs-push-3{right:25%;left:0}[dir='rtl'] .col-xs-push-2{right:16.66666667%;left:0}[dir='rtl'] .col-xs-push-1{right:8.33333333%;left:0}[dir='rtl'] .col-xs-push-0{right:auto;left:0}[dir='rtl'] .col-xs-offset-12{margin-right:100%;margin-left:0}[dir='rtl'] .col-xs-offset-11{margin-right:91.66666667%;margin-left:0}[dir='rtl'] .col-xs-offset-10{margin-right:83.33333333%;margin-left:0}[dir='rtl'] .col-xs-offset-9{margin-right:75%;margin-left:0}[dir='rtl'] .col-xs-offset-8{margin-right:66.66666667%;margin-left:0}[dir='rtl'] .col-xs-offset-7{margin-right:58.33333333%;margin-left:0}[dir='rtl'] .col-xs-offset-6{margin-right:50%;margin-left:0}[dir='rtl'] .col-xs-offset-5{margin-right:41.66666667%;margin-left:0}[dir='rtl'] .col-xs-offset-4{margin-right:33.33333333%;margin-left:0}[dir='rtl'] .col-xs-offset-3{margin-right:25%;margin-left:0}[dir='rtl'] .col-xs-offset-2{margin-right:16.66666667%;margin-left:0}[dir='rtl'] .col-xs-offset-1{margin-right:8.33333333%;margin-left:0}[dir='rtl'] .col-xs-offset-0{margin-right:0%;margin-left:0}@media (min-width: 768px){[dir='rtl'] .col-sm-1,[dir='rtl'] .col-sm-2,[dir='rtl'] .col-sm-3,[dir='rtl'] .col-sm-4,[dir='rtl'] .col-sm-5,[dir='rtl'] .col-sm-6,[dir='rtl'] .col-sm-7,[dir='rtl'] .col-sm-8,[dir='rtl'] .col-sm-9,[dir='rtl'] .col-sm-10,[dir='rtl'] .col-sm-11,[dir='rtl'] .col-sm-12{float:right}[dir='rtl'] .col-sm-12{width:100%}[dir='rtl'] .col-sm-11{width:91.66666667%}[dir='rtl'] .col-sm-10{width:83.33333333%}[dir='rtl'] .col-sm-9{width:75%}[dir='rtl'] .col-sm-8{width:66.66666667%}[dir='rtl'] .col-sm-7{width:58.33333333%}[dir='rtl'] .col-sm-6{width:50%}[dir='rtl'] .col-sm-5{width:41.66666667%}[dir='rtl'] .col-sm-4{width:33.33333333%}[dir='rtl'] .col-sm-3{width:25%}[dir='rtl'] .col-sm-2{width:16.66666667%}[dir='rtl'] .col-sm-1{width:8.33333333%}[dir='rtl'] .col-sm-pull-12{left:100%;right:auto}[dir='rtl'] .col-sm-pull-11{left:91.66666667%;right:auto}[dir='rtl'] .col-sm-pull-10{left:83.33333333%;right:auto}[dir='rtl'] .col-sm-pull-9{left:75%;right:auto}[dir='rtl'] .col-sm-pull-8{left:66.66666667%;right:auto}[dir='rtl'] .col-sm-pull-7{left:58.33333333%;right:auto}[dir='rtl'] .col-sm-pull-6{left:50%;right:auto}[dir='rtl'] .col-sm-pull-5{left:41.66666667%;right:auto}[dir='rtl'] .col-sm-pull-4{left:33.33333333%;right:auto}[dir='rtl'] .col-sm-pull-3{left:25%;right:auto}[dir='rtl'] .col-sm-pull-2{left:16.66666667%;right:auto}[dir='rtl'] .col-sm-pull-1{left:8.33333333%;right:auto}[dir='rtl'] .col-sm-pull-0{left:auto;right:auto}[dir='rtl'] .col-sm-push-12{right:100%;left:0}[dir='rtl'] .col-sm-push-11{right:91.66666667%;left:0}[dir='rtl'] .col-sm-push-10{right:83.33333333%;left:0}[dir='rtl'] .col-sm-push-9{right:75%;left:0}[dir='rtl'] .col-sm-push-8{right:66.66666667%;left:0}[dir='rtl'] .col-sm-push-7{right:58.33333333%;left:0}[dir='rtl'] .col-sm-push-6{right:50%;left:0}[dir='rtl'] .col-sm-push-5{right:41.66666667%;left:0}[dir='rtl'] .col-sm-push-4{right:33.33333333%;left:0}[dir='rtl'] .col-sm-push-3{right:25%;left:0}[dir='rtl'] .col-sm-push-2{right:16.66666667%;left:0}[dir='rtl'] .col-sm-push-1{right:8.33333333%;left:0}[dir='rtl'] .col-sm-push-0{right:auto;left:0}[dir='rtl'] .col-sm-offset-12{margin-right:100%;margin-left:0}[dir='rtl'] .col-sm-offset-11{margin-right:91.66666667%;margin-left:0}[dir='rtl'] .col-sm-offset-10{margin-right:83.33333333%;margin-left:0}[dir='rtl'] .col-sm-offset-9{margin-right:75%;margin-left:0}[dir='rtl'] .col-sm-offset-8{margin-right:66.66666667%;margin-left:0}[dir='rtl'] .col-sm-offset-7{margin-right:58.33333333%;margin-left:0}[dir='rtl'] .col-sm-offset-6{margin-right:50%;margin-left:0}[dir='rtl'] .col-sm-offset-5{margin-right:41.66666667%;margin-left:0}[dir='rtl'] .col-sm-offset-4{margin-right:33.33333333%;margin-left:0}[dir='rtl'] .col-sm-offset-3{margin-right:25%;margin-left:0}[dir='rtl'] .col-sm-offset-2{margin-right:16.66666667%;margin-left:0}[dir='rtl'] .col-sm-offset-1{margin-right:8.33333333%;margin-left:0}[dir='rtl'] .col-sm-offset-0{margin-right:0%;margin-left:0}}@media (min-width: 992px){[dir='rtl'] .col-md-1,[dir='rtl'] .col-md-2,[dir='rtl'] .col-md-3,[dir='rtl'] .col-md-4,[dir='rtl'] .col-md-5,[dir='rtl'] .col-md-6,[dir='rtl'] .col-md-7,[dir='rtl'] .col-md-8,[dir='rtl'] .col-md-9,[dir='rtl'] .col-md-10,[dir='rtl'] .col-md-11,[dir='rtl'] .col-md-12{float:right}[dir='rtl'] .col-md-12{width:100%}[dir='rtl'] .col-md-11{width:91.66666667%}[dir='rtl'] .col-md-10{width:83.33333333%}[dir='rtl'] .col-md-9{width:75%}[dir='rtl'] .col-md-8{width:66.66666667%}[dir='rtl'] .col-md-7{width:58.33333333%}[dir='rtl'] .col-md-6{width:50%}[dir='rtl'] .col-md-5{width:41.66666667%}[dir='rtl'] .col-md-4{width:33.33333333%}[dir='rtl'] .col-md-3{width:25%}[dir='rtl'] .col-md-2{width:16.66666667%}[dir='rtl'] .col-md-1{width:8.33333333%}[dir='rtl'] .col-md-pull-12{left:100%;right:auto}[dir='rtl'] .col-md-pull-11{left:91.66666667%;right:auto}[dir='rtl'] .col-md-pull-10{left:83.33333333%;right:auto}[dir='rtl'] .col-md-pull-9{left:75%;right:auto}[dir='rtl'] .col-md-pull-8{left:66.66666667%;right:auto}[dir='rtl'] .col-md-pull-7{left:58.33333333%;right:auto}[dir='rtl'] .col-md-pull-6{left:50%;right:auto}[dir='rtl'] .col-md-pull-5{left:41.66666667%;right:auto}[dir='rtl'] .col-md-pull-4{left:33.33333333%;right:auto}[dir='rtl'] .col-md-pull-3{left:25%;right:auto}[dir='rtl'] .col-md-pull-2{left:16.66666667%;right:auto}[dir='rtl'] .col-md-pull-1{left:8.33333333%;right:auto}[dir='rtl'] .col-md-pull-0{left:auto;right:auto}[dir='rtl'] .col-md-push-12{right:100%;left:0}[dir='rtl'] .col-md-push-11{right:91.66666667%;left:0}[dir='rtl'] .col-md-push-10{right:83.33333333%;left:0}[dir='rtl'] .col-md-push-9{right:75%;left:0}[dir='rtl'] .col-md-push-8{right:66.66666667%;left:0}[dir='rtl'] .col-md-push-7{right:58.33333333%;left:0}[dir='rtl'] .col-md-push-6{right:50%;left:0}[dir='rtl'] .col-md-push-5{right:41.66666667%;left:0}[dir='rtl'] .col-md-push-4{right:33.33333333%;left:0}[dir='rtl'] .col-md-push-3{right:25%;left:0}[dir='rtl'] .col-md-push-2{right:16.66666667%;left:0}[dir='rtl'] .col-md-push-1{right:8.33333333%;left:0}[dir='rtl'] .col-md-push-0{right:auto;left:0}[dir='rtl'] .col-md-offset-12{margin-right:100%;margin-left:0}[dir='rtl'] .col-md-offset-11{margin-right:91.66666667%;margin-left:0}[dir='rtl'] .col-md-offset-10{margin-right:83.33333333%;margin-left:0}[dir='rtl'] .col-md-offset-9{margin-right:75%;margin-left:0}[dir='rtl'] .col-md-offset-8{margin-right:66.66666667%;margin-left:0}[dir='rtl'] .col-md-offset-7{margin-right:58.33333333%;margin-left:0}[dir='rtl'] .col-md-offset-6{margin-right:50%;margin-left:0}[dir='rtl'] .col-md-offset-5{margin-right:41.66666667%;margin-left:0}[dir='rtl'] .col-md-offset-4{margin-right:33.33333333%;margin-left:0}[dir='rtl'] .col-md-offset-3{margin-right:25%;margin-left:0}[dir='rtl'] .col-md-offset-2{margin-right:16.66666667%;margin-left:0}[dir='rtl'] .col-md-offset-1{margin-right:8.33333333%;margin-left:0}[dir='rtl'] .col-md-offset-0{margin-right:0%;margin-left:0}}@media (min-width: 1200px){[dir='rtl'] .col-lg-1,[dir='rtl'] .col-lg-2,[dir='rtl'] .col-lg-3,[dir='rtl'] .col-lg-4,[dir='rtl'] .col-lg-5,[dir='rtl'] .col-lg-6,[dir='rtl'] .col-lg-7,[dir='rtl'] .col-lg-8,[dir='rtl'] .col-lg-9,[dir='rtl'] .col-lg-10,[dir='rtl'] .col-lg-11,[dir='rtl'] .col-lg-12{float:right}[dir='rtl'] .col-lg-12{width:100%}[dir='rtl'] .col-lg-11{width:91.66666667%}[dir='rtl'] .col-lg-10{width:83.33333333%}[dir='rtl'] .col-lg-9{width:75%}[dir='rtl'] .col-lg-8{width:66.66666667%}[dir='rtl'] .col-lg-7{width:58.33333333%}[dir='rtl'] .col-lg-6{width:50%}[dir='rtl'] .col-lg-5{width:41.66666667%}[dir='rtl'] .col-lg-4{width:33.33333333%}[dir='rtl'] .col-lg-3{width:25%}[dir='rtl'] .col-lg-2{width:16.66666667%}[dir='rtl'] .col-lg-1{width:8.33333333%}[dir='rtl'] .col-lg-pull-12{left:100%;right:auto}[dir='rtl'] .col-lg-pull-11{left:91.66666667%;right:auto}[dir='rtl'] .col-lg-pull-10{left:83.33333333%;right:auto}[dir='rtl'] .col-lg-pull-9{left:75%;right:auto}[dir='rtl'] .col-lg-pull-8{left:66.66666667%;right:auto}[dir='rtl'] .col-lg-pull-7{left:58.33333333%;right:auto}[dir='rtl'] .col-lg-pull-6{left:50%;right:auto}[dir='rtl'] .col-lg-pull-5{left:41.66666667%;right:auto}[dir='rtl'] .col-lg-pull-4{left:33.33333333%;right:auto}[dir='rtl'] .col-lg-pull-3{left:25%;right:auto}[dir='rtl'] .col-lg-pull-2{left:16.66666667%;right:auto}[dir='rtl'] .col-lg-pull-1{left:8.33333333%;right:auto}[dir='rtl'] .col-lg-pull-0{left:auto;right:auto}[dir='rtl'] .col-lg-push-12{right:100%;left:0}[dir='rtl'] .col-lg-push-11{right:91.66666667%;left:0}[dir='rtl'] .col-lg-push-10{right:83.33333333%;left:0}[dir='rtl'] .col-lg-push-9{right:75%;left:0}[dir='rtl'] .col-lg-push-8{right:66.66666667%;left:0}[dir='rtl'] .col-lg-push-7{right:58.33333333%;left:0}[dir='rtl'] .col-lg-push-6{right:50%;left:0}[dir='rtl'] .col-lg-push-5{right:41.66666667%;left:0}[dir='rtl'] .col-lg-push-4{right:33.33333333%;left:0}[dir='rtl'] .col-lg-push-3{right:25%;left:0}[dir='rtl'] .col-lg-push-2{right:16.66666667%;left:0}[dir='rtl'] .col-lg-push-1{right:8.33333333%;left:0}[dir='rtl'] .col-lg-push-0{right:auto;left:0}[dir='rtl'] .col-lg-offset-12{margin-right:100%;margin-left:0}[dir='rtl'] .col-lg-offset-11{margin-right:91.66666667%;margin-left:0}[dir='rtl'] .col-lg-offset-10{margin-right:83.33333333%;margin-left:0}[dir='rtl'] .col-lg-offset-9{margin-right:75%;margin-left:0}[dir='rtl'] .col-lg-offset-8{margin-right:66.66666667%;margin-left:0}[dir='rtl'] .col-lg-offset-7{margin-right:58.33333333%;margin-left:0}[dir='rtl'] .col-lg-offset-6{margin-right:50%;margin-left:0}[dir='rtl'] .col-lg-offset-5{margin-right:41.66666667%;margin-left:0}[dir='rtl'] .col-lg-offset-4{margin-right:33.33333333%;margin-left:0}[dir='rtl'] .col-lg-offset-3{margin-right:25%;margin-left:0}[dir='rtl'] .col-lg-offset-2{margin-right:16.66666667%;margin-left:0}[dir='rtl'] .col-lg-offset-1{margin-right:8.33333333%;margin-left:0}[dir='rtl'] .col-lg-offset-0{margin-right:0%;margin-left:0}}[dir='rtl'] caption{text-align:right}[dir='rtl'] th:not(.mx-left-aligned){text-align:right}@media screen and (max-width: 767px){[dir='rtl'] .table-responsive>.table-bordered{border:0}[dir='rtl'] .table-responsive>.table-bordered>thead>tr>th:first-child,[dir='rtl'] .table-responsive>.table-bordered>tbody>tr>th:first-child,[dir='rtl'] .table-responsive>.table-bordered>tfoot>tr>th:first-child,[dir='rtl'] .table-responsive>.table-bordered>thead>tr>td:first-child,[dir='rtl'] .table-responsive>.table-bordered>tbody>tr>td:first-child,[dir='rtl'] .table-responsive>.table-bordered>tfoot>tr>td:first-child{border-right:0;border-left:initial}[dir='rtl'] .table-responsive>.table-bordered>thead>tr>th:last-child,[dir='rtl'] .table-responsive>.table-bordered>tbody>tr>th:last-child,[dir='rtl'] .table-responsive>.table-bordered>tfoot>tr>th:last-child,[dir='rtl'] .table-responsive>.table-bordered>thead>tr>td:last-child,[dir='rtl'] .table-responsive>.table-bordered>tbody>tr>td:last-child,[dir='rtl'] .table-responsive>.table-bordered>tfoot>tr>td:last-child{border-left:0;border-right:initial}}[dir='rtl'] .radio label,[dir='rtl'] .checkbox label{padding-right:20px;padding-left:initial}[dir='rtl'] .radio input[type='radio'],[dir='rtl'] .radio-inline input[type='radio'],[dir='rtl'] .checkbox input[type='checkbox'],[dir='rtl'] .checkbox-inline input[type='checkbox']{margin-right:-20px;margin-left:auto}[dir='rtl'] .radio-inline,[dir='rtl'] .checkbox-inline{padding-right:20px;padding-left:0}[dir='rtl'] .radio-inline+.radio-inline,[dir='rtl'] .checkbox-inline+.checkbox-inline{margin-right:10px;margin-left:0}[dir='rtl'] .has-feedback .form-control{padding-left:42.5px;padding-right:12px}[dir='rtl'] .form-control-feedback{left:0;right:auto}@media (min-width: 768px){[dir='rtl'] .form-inline label{padding-right:0;padding-left:initial}[dir='rtl'] .form-inline .radio input[type='radio'],[dir='rtl'] .form-inline .checkbox input[type='checkbox']{margin-right:0;margin-left:auto}}@media (min-width: 768px){[dir='rtl'] .form-horizontal .control-label{text-align:left}}[dir='rtl'] .form-horizontal .has-feedback .form-control-feedback{left:15px;right:auto}[dir='rtl'] .caret{margin-right:2px;margin-left:0}[dir='rtl'] .dropdown-menu{right:0;left:auto;float:left;text-align:right}[dir='rtl'] .dropdown-menu.pull-right{left:0;right:auto;float:right}[dir='rtl'] .dropdown-menu-right{left:auto;right:0}[dir='rtl'] .dropdown-menu-left{left:0;right:auto}@media (min-width: 768px){[dir='rtl'] .navbar-right .dropdown-menu{left:auto;right:0}[dir='rtl'] .navbar-right .dropdown-menu-left{left:0;right:auto}}[dir='rtl'] .btn-group>.btn,[dir='rtl'] .btn-group-vertical>.btn{float:right}[dir='rtl'] .btn-group .btn+.btn,[dir='rtl'] .btn-group .btn+.btn-group,[dir='rtl'] .btn-group .btn-group+.btn,[dir='rtl'] .btn-group .btn-group+.btn-group{margin-right:-1px;margin-left:0px}[dir='rtl'] .btn-toolbar{margin-right:-5px;margin-left:0px}[dir='rtl'] .btn-toolbar .btn-group,[dir='rtl'] .btn-toolbar .input-group{float:right}[dir='rtl'] .btn-toolbar>.btn,[dir='rtl'] .btn-toolbar>.btn-group,[dir='rtl'] .btn-toolbar>.input-group{margin-right:5px;margin-left:0px}[dir='rtl'] .btn-group>.btn:first-child{margin-right:0}[dir='rtl'] .btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:0;border-top-left-radius:0}[dir='rtl'] .btn-group>.btn:last-child:not(:first-child),[dir='rtl'] .btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:4px;border-bottom-left-radius:4px;border-bottom-right-radius:0;border-top-right-radius:0}[dir='rtl'] .btn-group>.btn-group{float:right}[dir='rtl'] .btn-group.btn-group-justified>.btn,[dir='rtl'] .btn-group.btn-group-justified>.btn-group{float:none}[dir='rtl'] .btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}[dir='rtl'] .btn-group>.btn-group:first-child>.btn:last-child,[dir='rtl'] .btn-group>.btn-group:first-child>.dropdown-toggle{border-top-right-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:0;border-top-left-radius:0}[dir='rtl'] .btn-group>.btn-group:last-child>.btn:first-child{border-top-left-radius:4px;border-bottom-left-radius:4px;border-bottom-right-radius:0;border-top-right-radius:0}[dir='rtl'] .btn .caret{margin-right:0}[dir='rtl'] .btn-group-vertical>.btn+.btn,[dir='rtl'] .btn-group-vertical>.btn+.btn-group,[dir='rtl'] .btn-group-vertical>.btn-group+.btn,[dir='rtl'] .btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-right:0}[dir='rtl'] .input-group .form-control{float:right}[dir='rtl'] .input-group .form-control:first-child,[dir='rtl'] .input-group-addon:first-child,[dir='rtl'] .input-group-btn:first-child>.btn,[dir='rtl'] .input-group-btn:first-child>.btn-group>.btn,[dir='rtl'] .input-group-btn:first-child>.dropdown-toggle,[dir='rtl'] .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),[dir='rtl'] .input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:4px;border-top-right-radius:4px;border-bottom-left-radius:0;border-top-left-radius:0}[dir='rtl'] .input-group-addon:first-child{border-left:0px;border-right:1px solid}[dir='rtl'] .input-group .form-control:last-child,[dir='rtl'] .input-group-addon:last-child,[dir='rtl'] .input-group-btn:last-child>.btn,[dir='rtl'] .input-group-btn:last-child>.btn-group>.btn,[dir='rtl'] .input-group-btn:last-child>.dropdown-toggle,[dir='rtl'] .input-group-btn:first-child>.btn:not(:first-child),[dir='rtl'] .input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-top-right-radius:0}[dir='rtl'] .input-group-addon:last-child{border-left-width:1px;border-left-style:solid;border-right:0px}[dir='rtl'] .input-group-btn>.btn+.btn{margin-right:-1px;margin-left:auto}[dir='rtl'] .input-group-btn:first-child>.btn,[dir='rtl'] .input-group-btn:first-child>.btn-group{margin-left:-1px;margin-right:auto}[dir='rtl'] .input-group-btn:last-child>.btn,[dir='rtl'] .input-group-btn:last-child>.btn-group{margin-right:-1px;margin-left:auto}[dir='rtl'] .nav{padding-right:0;padding-left:initial}[dir='rtl'] .nav-tabs>li{float:right}[dir='rtl'] .nav-tabs>li>a{margin-left:auto;margin-right:-2px;border-radius:4px 4px 0 0}[dir='rtl'] .nav-pills>li{float:right}[dir='rtl'] .nav-pills>li>a{border-radius:4px}[dir='rtl'] .nav-pills>li+li{margin-right:2px;margin-left:auto}[dir='rtl'] .nav-stacked>li{float:none}[dir='rtl'] .nav-stacked>li+li{margin-right:0;margin-left:auto}[dir='rtl'] .nav-justified>.dropdown .dropdown-menu{right:auto}[dir='rtl'] .nav-tabs-justified>li>a{margin-left:0;margin-right:auto}@media (min-width: 768px){[dir='rtl'] .nav-tabs-justified>li>a{border-radius:4px 4px 0 0}}@media (min-width: 768px){[dir='rtl'] .navbar-header{float:right}}[dir='rtl'] .navbar-collapse{padding-right:15px;padding-left:15px}[dir='rtl'] .navbar-brand{float:right}@media (min-width: 768px){[dir='rtl'] .navbar>.container .navbar-brand,[dir='rtl'] .navbar>.container-fluid .navbar-brand{margin-right:-15px;margin-left:auto}}[dir='rtl'] .navbar-toggle{float:left;margin-left:15px;margin-right:auto}@media (max-width: 767px){[dir='rtl'] .navbar-nav .open .dropdown-menu>li>a,[dir='rtl'] .navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 25px 5px 15px}}@media (min-width: 768px){[dir='rtl'] .navbar-nav{float:right}[dir='rtl'] .navbar-nav>li{float:right}}@media (min-width: 768px){[dir='rtl'] .navbar-left.flip{float:right !important}[dir='rtl'] .navbar-right:last-child{margin-left:-15px;margin-right:auto}[dir='rtl'] .navbar-right.flip{float:left !important;margin-left:-15px;margin-right:auto}[dir='rtl'] .navbar-right .dropdown-menu{left:0;right:auto}}@media (min-width: 768px){[dir='rtl'] .navbar-text{float:right}[dir='rtl'] .navbar-text.navbar-right:last-child{margin-left:0;margin-right:auto}}[dir='rtl'] .pagination{padding-right:0}[dir='rtl'] .pagination>li>a,[dir='rtl'] .pagination>li>span{float:right;margin-right:-1px;margin-left:0px}[dir='rtl'] .pagination>li:first-child>a,[dir='rtl'] .pagination>li:first-child>span{margin-left:0;border-bottom-right-radius:4px;border-top-right-radius:4px;border-bottom-left-radius:0;border-top-left-radius:0}[dir='rtl'] .pagination>li:last-child>a,[dir='rtl'] .pagination>li:last-child>span{margin-right:-1px;border-bottom-left-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-top-right-radius:0}[dir='rtl'] .pager{padding-right:0;padding-left:initial}[dir='rtl'] .pager .next>a,[dir='rtl'] .pager .next>span{float:left}[dir='rtl'] .pager .previous>a,[dir='rtl'] .pager .previous>span{float:right}[dir='rtl'] .nav-pills>li>a>.badge{margin-left:0px;margin-right:3px}[dir='rtl'] .list-group-item>.badge{float:left}[dir='rtl'] .list-group-item>.badge+.badge{margin-left:5px;margin-right:auto}[dir='rtl'] .alert-dismissable,[dir='rtl'] .alert-dismissible{padding-left:35px;padding-right:15px}[dir='rtl'] .alert-dismissable .close,[dir='rtl'] .alert-dismissible .close{right:auto;left:-21px}[dir='rtl'] .progress-bar{float:right}[dir='rtl'] .media>.pull-left{margin-right:10px}[dir='rtl'] .media>.pull-left.flip{margin-right:0;margin-left:10px}[dir='rtl'] .media>.pull-right{margin-left:10px}[dir='rtl'] .media>.pull-right.flip{margin-left:0;margin-right:10px}[dir='rtl'] .media-right,[dir='rtl'] .media>.pull-right{padding-right:10px;padding-left:initial}[dir='rtl'] .media-left,[dir='rtl'] .media>.pull-left{padding-left:10px;padding-right:initial}[dir='rtl'] .media-list{padding-right:0;padding-left:initial;list-style:none}[dir='rtl'] .list-group{padding-right:0;padding-left:initial}[dir='rtl'] .panel>.table:first-child>thead:first-child>tr:first-child td:first-child,[dir='rtl'] .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,[dir='rtl'] .panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,[dir='rtl'] .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,[dir='rtl'] .panel>.table:first-child>thead:first-child>tr:first-child th:first-child,[dir='rtl'] .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,[dir='rtl'] .panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,[dir='rtl'] .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-right-radius:3px;border-top-left-radius:0}[dir='rtl'] .panel>.table:first-child>thead:first-child>tr:first-child td:last-child,[dir='rtl'] .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,[dir='rtl'] .panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,[dir='rtl'] .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,[dir='rtl'] .panel>.table:first-child>thead:first-child>tr:first-child th:last-child,[dir='rtl'] .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,[dir='rtl'] .panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,[dir='rtl'] .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-left-radius:3px;border-top-right-radius:0}[dir='rtl'] .panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,[dir='rtl'] .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,[dir='rtl'] .panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,[dir='rtl'] .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,[dir='rtl'] .panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,[dir='rtl'] .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,[dir='rtl'] .panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,[dir='rtl'] .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px;border-top-right-radius:0}[dir='rtl'] .panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,[dir='rtl'] .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,[dir='rtl'] .panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,[dir='rtl'] .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,[dir='rtl'] .panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,[dir='rtl'] .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,[dir='rtl'] .panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,[dir='rtl'] .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px;border-top-left-radius:0}[dir='rtl'] .panel>.table-bordered>thead>tr>th:first-child,[dir='rtl'] .panel>.table-responsive>.table-bordered>thead>tr>th:first-child,[dir='rtl'] .panel>.table-bordered>tbody>tr>th:first-child,[dir='rtl'] .panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,[dir='rtl'] .panel>.table-bordered>tfoot>tr>th:first-child,[dir='rtl'] .panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,[dir='rtl'] .panel>.table-bordered>thead>tr>td:first-child,[dir='rtl'] .panel>.table-responsive>.table-bordered>thead>tr>td:first-child,[dir='rtl'] .panel>.table-bordered>tbody>tr>td:first-child,[dir='rtl'] .panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,[dir='rtl'] .panel>.table-bordered>tfoot>tr>td:first-child,[dir='rtl'] .panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-right:0;border-left:none}[dir='rtl'] .panel>.table-bordered>thead>tr>th:last-child,[dir='rtl'] .panel>.table-responsive>.table-bordered>thead>tr>th:last-child,[dir='rtl'] .panel>.table-bordered>tbody>tr>th:last-child,[dir='rtl'] .panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,[dir='rtl'] .panel>.table-bordered>tfoot>tr>th:last-child,[dir='rtl'] .panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,[dir='rtl'] .panel>.table-bordered>thead>tr>td:last-child,[dir='rtl'] .panel>.table-responsive>.table-bordered>thead>tr>td:last-child,[dir='rtl'] .panel>.table-bordered>tbody>tr>td:last-child,[dir='rtl'] .panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,[dir='rtl'] .panel>.table-bordered>tfoot>tr>td:last-child,[dir='rtl'] .panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:none;border-left:0}[dir='rtl'] .embed-responsive .embed-responsive-item,[dir='rtl'] .embed-responsive iframe,[dir='rtl'] .embed-responsive embed,[dir='rtl'] .embed-responsive object{right:0;left:auto}[dir='rtl'] .close{float:left}[dir='rtl'] .modal-footer{text-align:left}[dir='rtl'] .modal-footer.flip{text-align:right}[dir='rtl'] .modal-footer .btn+.btn{margin-left:auto;margin-right:5px}[dir='rtl'] .modal-footer .btn-group .btn+.btn{margin-right:-1px;margin-left:auto}[dir='rtl'] .modal-footer .btn-block+.btn-block{margin-right:0;margin-left:auto}[dir='rtl'] .popover{left:auto;text-align:right}[dir='rtl'] .popover.top>.arrow{right:50%;left:auto;margin-right:-11px;margin-left:auto}[dir='rtl'] .popover.top>.arrow:after{margin-right:-10px;margin-left:auto}[dir='rtl'] .popover.bottom>.arrow{right:50%;left:auto;margin-right:-11px;margin-left:auto}[dir='rtl'] .popover.bottom>.arrow:after{margin-right:-10px;margin-left:auto}[dir='rtl'] .carousel-control{right:0;bottom:0}[dir='rtl'] .carousel-control.left{right:auto;left:0;background-image:-webkit-linear-gradient(left, color-stop(rgba(0,0,0,0.5) 0%), color-stop(rgba(0,0,0,0.0001) 100%));background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.0001) 100%);background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}[dir='rtl'] .carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, color-stop(rgba(0,0,0,0.0001) 0%), color-stop(rgba(0,0,0,0.5) 100%));background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0%, rgba(0,0,0,0.5) 100%);background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0%, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}[dir='rtl'] .carousel-control .icon-prev,[dir='rtl'] .carousel-control .glyphicon-chevron-left{left:50%;right:auto;margin-right:-10px}[dir='rtl'] .carousel-control .icon-next,[dir='rtl'] .carousel-control .glyphicon-chevron-right{right:50%;left:auto;margin-left:-10px}[dir='rtl'] .carousel-indicators{right:50%;left:0;margin-right:-30%;margin-left:0;padding-left:0}@media screen and (min-width: 768px){[dir='rtl'] .carousel-control .glyphicon-chevron-left,[dir='rtl'] .carousel-control .icon-prev{margin-left:0;margin-right:-15px}[dir='rtl'] .carousel-control .glyphicon-chevron-right,[dir='rtl'] .carousel-control .icon-next{margin-left:0;margin-right:-15px}[dir='rtl'] .carousel-caption{left:20%;right:20%;padding-bottom:30px}}[dir='rtl'] .pull-right.flip{float:left !important}[dir='rtl'] .pull-left.flip{float:right !important}.dijitReset{margin:0;border:0;padding:0;font:inherit;line-height:normal;color:inherit}.dj_a11y .dijitReset{-moz-appearance:none}.dijitInline{display:inline-block;border:0;padding:0;vertical-align:middle}table.dijitInline{display:inline-table;box-sizing:content-box;-moz-box-sizing:content-box}.dijitHidden{position:absolute;visibility:hidden}.dijitHidden *{visibility:hidden !important}.dijitVisible{display:block !important;position:relative;visibility:visible}.dj_ie6 .dijitComboBox .dijitInputContainer,.dijitInputContainer{overflow:hidden;float:none !important;position:relative}.dj_ie7 .dijitInputContainer{float:left !important;clear:left;display:inline-block !important}.dj_ie .dijitSelect input,.dj_ie input.dijitTextBox,.dj_ie .dijitTextBox input{font-size:100%}.dijitSelect .dijitButtonText{float:left;vertical-align:top}TABLE.dijitSelect{padding:0 !important;border-collapse:separate}.dijitTextBox .dijitSpinnerButtonContainer,.dijitTextBox .dijitArrowButtonContainer,.dijitValidationTextBox .dijitValidationContainer{float:right;text-align:center}.dijitSelect input.dijitInputField,.dijitTextBox input.dijitInputField{padding-left:0 !important;padding-right:0 !important}.dijitValidationTextBox .dijitValidationContainer{display:none}.dijitTeeny{font-size:1px;line-height:1px}.dijitOffScreen{position:absolute !important;left:-10000px !important;top:-10000px !important}.dijitPopup{position:absolute;background-color:transparent;margin:0;border:0;padding:0;-webkit-overflow-scrolling:touch}.dijitPositionOnly{padding:0 !important;border:0 !important;background-color:transparent !important;background-image:none !important;height:auto !important;width:auto !important}.dijitNonPositionOnly{float:none !important;position:static !important;margin:0 0 0 0 !important;vertical-align:middle !important}.dijitBackgroundIframe{position:absolute;left:0;top:0;width:100%;height:100%;z-index:-1;border:0;padding:0;margin:0}.dijitDisplayNone{display:none !important}.dijitContainer{overflow:hidden}.dj_a11y .dijitIcon,.dj_a11y div.dijitArrowButtonInner,.dj_a11y span.dijitArrowButtonInner,.dj_a11y img.dijitArrowButtonInner,.dj_a11y .dijitCalendarIncrementControl,.dj_a11y .dijitTreeExpando{display:none}.dijitSpinner div.dijitArrowButtonInner{display:block}.dj_a11y .dijitA11ySideArrow{display:inline !important;cursor:pointer}.dj_a11y .dijitCalendarDateLabel{padding:1px;border:0px !important}.dj_a11y .dijitCalendarSelectedDate .dijitCalendarDateLabel{border-style:solid !important;border-width:1px !important;padding:0}.dj_a11y .dijitCalendarDateTemplate{padding-bottom:0.1em !important;border:0px !important}.dj_a11y .dijitButtonNode{border:black outset medium !important;padding:0 !important}.dj_a11y .dijitArrowButton{padding:0 !important}.dj_a11y .dijitButtonContents{margin:0.15em}.dj_a11y .dijitTextBoxReadOnly .dijitInputField,.dj_a11y .dijitTextBoxReadOnly .dijitButtonNode{border-style:outset !important;border-width:medium !important;border-color:#999 !important;color:#999 !important}.dijitButtonNode *{vertical-align:middle}.dijitSelect .dijitArrowButtonInner,.dijitButtonNode .dijitArrowButtonInner{background:no-repeat center;width:12px;height:12px;direction:ltr}.dijitLeft{background-position:left top;background-repeat:no-repeat}.dijitStretch{white-space:nowrap;background-repeat:repeat-x}.dijitRight{background-position:right top;background-repeat:no-repeat}.dj_gecko .dj_a11y .dijitButtonDisabled .dijitButtonNode{opacity:0.5}.dijitToggleButton,.dijitButton,.dijitDropDownButton,.dijitComboButton{margin:0.2em;vertical-align:middle}.dijitButtonContents{display:block}td.dijitButtonContents{display:table-cell}.dijitButtonNode img{vertical-align:middle}.dijitToolbar .dijitComboButton{border-collapse:separate}.dijitToolbar .dijitToggleButton,.dijitToolbar .dijitButton,.dijitToolbar .dijitDropDownButton,.dijitToolbar .dijitComboButton{margin:0}.dijitToolbar .dijitButtonContents{padding:1px 2px}.dj_webkit .dijitToolbar .dijitDropDownButton{padding-left:0.3em}.dj_gecko .dijitToolbar .dijitButtonNode::-moz-focus-inner{padding:0}.dijitSelect{border:1px solid gray}.dijitButtonNode{border:1px solid gray;margin:0;line-height:normal;vertical-align:middle;text-align:center;white-space:nowrap}.dj_webkit .dijitSpinner .dijitSpinnerButtonContainer{line-height:inherit}.dijitTextBox .dijitButtonNode{border-width:0}.dijitSelect,.dijitSelect *,.dijitButtonNode,.dijitButtonNode *{cursor:pointer;-webkit-tap-highlight-color:transparent}.dj_ie .dijitButtonNode{zoom:1}.dj_ie .dijitButtonNode button{overflow:visible}div.dijitArrowButton{float:right}.dijitTextBox{border:solid black 1px;width:15em;vertical-align:middle}.dijitTextBoxReadOnly,.dijitTextBoxDisabled{color:gray}.dj_safari .dijitTextBoxDisabled input{color:#B0B0B0}.dj_safari textarea.dijitTextAreaDisabled{color:#333}.dj_gecko .dijitTextBoxReadOnly input.dijitInputField,.dj_gecko .dijitTextBoxDisabled input{-moz-user-input:none}.dijitPlaceHolder{color:#AAAAAA;font-style:italic;position:absolute;top:0;left:0;white-space:nowrap;pointer-events:none}.dijitTimeTextBox{width:8em}.dijitTextBox input:focus{outline:none}.dijitTextBoxFocused{outline:5px -webkit-focus-ring-color}.dijitSelect input,.dijitTextBox input{float:left}.dj_ie6 input.dijitTextBox,.dj_ie6 .dijitTextBox input{float:none}.dijitInputInner{border:0 !important;background-color:transparent !important;width:100% !important;padding-left:0 !important;padding-right:0 !important;margin-left:0 !important;margin-right:0 !important}.dj_a11y .dijitTextBox input{margin:0 !important}.dijitValidationTextBoxError input.dijitValidationInner,.dijitSelect input,.dijitTextBox input.dijitArrowButtonInner{text-indent:-2em !important;direction:ltr !important;text-align:left !important;height:auto !important}.dj_ie .dijitSelect input,.dj_ie .dijitTextBox input,.dj_ie input.dijitTextBox{overflow-y:visible;line-height:normal}.dijitSelect .dijitSelectLabel span{line-height:100%}.dj_ie .dijitSelect .dijitSelectLabel{line-height:normal}.dj_ie6 .dijitSelect .dijitSelectLabel,.dj_ie7 .dijitSelect .dijitSelectLabel,.dj_ie8 .dijitSelect .dijitSelectLabel,.dj_iequirks .dijitSelect .dijitSelectLabel,.dijitSelect td,.dj_ie6 .dijitSelect input,.dj_iequirks .dijitSelect input,.dj_ie6 .dijitSelect .dijitValidationContainer,.dj_ie6 .dijitTextBox input,.dj_ie6 input.dijitTextBox,.dj_iequirks .dijitTextBox input.dijitValidationInner,.dj_iequirks .dijitTextBox input.dijitArrowButtonInner,.dj_iequirks .dijitTextBox input.dijitSpinnerButtonInner,.dj_iequirks .dijitTextBox input.dijitInputInner,.dj_iequirks input.dijitTextBox{line-height:100%}.dj_a11y input.dijitValidationInner,.dj_a11y input.dijitArrowButtonInner{text-indent:0 !important;width:1em !important;color:black !important}.dijitValidationTextBoxError .dijitValidationContainer{display:inline;cursor:default}.dijitSpinner .dijitSpinnerButtonContainer,.dijitComboBox .dijitArrowButtonContainer{border-width:0 0 0 1px !important}.dj_a11y .dijitSelect .dijitArrowButtonContainer,.dijitToolbar .dijitComboBox .dijitArrowButtonContainer{border-width:0 !important}.dijitComboBoxMenu{list-style-type:none}.dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode{border-width:0}.dj_ie .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode{clear:both}.dj_ie .dijitToolbar .dijitComboBox{vertical-align:middle}.dijitTextBox .dijitSpinnerButtonContainer{width:1em;position:relative !important;overflow:hidden}.dijitSpinner .dijitSpinnerButtonInner{width:1em;visibility:hidden !important;overflow-x:hidden}.dijitComboBox .dijitButtonNode,.dijitSpinnerButtonContainer .dijitButtonNode{border-width:0}.dj_a11y .dijitSpinnerButtonContainer .dijitButtonNode{border-width:0px !important;border-style:solid !important}.dj_a11y .dijitTextBox .dijitSpinnerButtonContainer,.dj_a11y .dijitSpinner .dijitArrowButtonInner,.dj_a11y .dijitSpinnerButtonContainer input{width:1em !important}.dj_a11y .dijitSpinner .dijitArrowButtonInner{margin:0 auto !important}.dj_ie .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField{padding-left:0.3em !important;padding-right:0.3em !important;margin-left:0.3em !important;margin-right:0.3em !important;width:1.4em !important}.dj_ie7 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField{padding-left:0 !important;padding-right:0 !important;width:1em !important}.dj_ie6 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField{margin-left:0.1em !important;margin-right:0.1em !important;width:1em !important}.dj_iequirks .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField{margin-left:0 !important;margin-right:0 !important;width:2em !important}.dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton{padding:0;position:absolute !important;right:0;float:none;height:50%;width:100%;bottom:auto;left:0;right:auto}.dj_iequirks .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton{width:auto}.dj_a11y .dijitSpinnerButtonContainer .dijitArrowButton{overflow:visible !important}.dijitSpinner .dijitSpinnerButtonContainer .dijitDownArrowButton{top:50%;border-top-width:1px !important}.dijitSpinner .dijitSpinnerButtonContainer .dijitUpArrowButton{top:0}.dijitSpinner .dijitArrowButtonInner{margin:auto;overflow-x:hidden;height:100% !important}.dj_iequirks .dijitSpinner .dijitArrowButtonInner{height:auto !important}.dijitSpinner .dijitArrowButtonInner .dijitInputField{-moz-transform:scale(0.5);-moz-transform-origin:center top;-webkit-transform:scale(0.5);-webkit-transform-origin:center top;-o-transform:scale(0.5);-o-transform-origin:center top;transform:scale(0.5);transform-origin:left top;padding-top:0;padding-bottom:0;padding-left:0 !important;padding-right:0 !important;width:100%;visibility:hidden}.dj_ie .dijitSpinner .dijitArrowButtonInner .dijitInputField{zoom:50%}.dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButtonInner{overflow:hidden}.dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton{width:100%}.dj_iequirks .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton{width:1em}.dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField{vertical-align:top;visibility:visible}.dj_a11y .dijitSpinnerButtonContainer{width:1em}.dijitCheckBox,.dijitRadio,.dijitCheckBoxInput{padding:0;border:0;width:16px;height:16px;background-position:center center;background-repeat:no-repeat;overflow:hidden}.dijitCheckBox input,.dijitRadio input{margin:0;padding:0;display:block}.dijitCheckBoxInput{opacity:0}.dj_ie .dijitCheckBoxInput{filter:alpha(opacity=0)}.dj_a11y .dijitCheckBox,.dj_a11y .dijitRadio{width:auto !important;height:auto !important}.dj_a11y .dijitCheckBoxInput{opacity:1;filter:none;width:auto;height:auto}.dj_a11y .dijitFocusedLabel{border:1px dotted;outline:0px !important}.dijitProgressBar{z-index:0}.dijitProgressBarEmpty{position:relative;overflow:hidden;border:1px solid black;z-index:0}.dijitProgressBarFull{position:absolute;overflow:hidden;z-index:-1;top:0;width:100%}.dj_ie6 .dijitProgressBarFull{height:1.6em}.dijitProgressBarTile{position:absolute;overflow:hidden;top:0;left:0;bottom:0;right:0;margin:0;padding:0;width:100%;height:auto;background-color:#aaa;background-attachment:fixed}.dj_a11y .dijitProgressBarTile{border-width:2px;border-style:solid;background-color:transparent !important}.dj_ie6 .dijitProgressBarTile{position:static;height:1.6em}.dijitProgressBarIndeterminateHighContrastImage{display:none}.dj_a11y .dijitProgressBarIndeterminate .dijitProgressBarIndeterminateHighContrastImage{display:block;position:absolute;top:0;bottom:0;margin:0;padding:0;width:100%;height:auto}.dijitProgressBarLabel{display:block;position:static;width:100%;text-align:center;background-color:transparent !important}.dijitTooltip{position:absolute;z-index:2000;display:block;left:0;top:-10000px;overflow:visible}.dijitTooltipContainer{border:solid black 2px;background:#b8b5b5;color:black;font-size:small}.dijitTooltipFocusNode{padding:2px 2px 2px 2px}.dijitTooltipConnector{position:absolute}.dj_a11y .dijitTooltipConnector{display:none}.dijitTooltipData{display:none}.dijitLayoutContainer{position:relative;display:block;overflow:hidden}.dijitAlignTop,.dijitAlignBottom,.dijitAlignLeft,.dijitAlignRight{position:absolute;overflow:hidden}body .dijitAlignClient{position:absolute}.dijitBorderContainer,.dijitBorderContainerNoGutter{position:relative;overflow:hidden;z-index:0}.dijitBorderContainerPane,.dijitBorderContainerNoGutterPane{position:absolute !important;z-index:2}.dijitBorderContainer>.dijitTextArea{resize:none}.dijitGutter{position:absolute;font-size:1px}.dijitSplitter{position:absolute;overflow:hidden;z-index:10;background-color:#fff;border-color:gray;border-style:solid;border-width:0}.dj_ie .dijitSplitter{z-index:1}.dijitSplitterActive{z-index:11 !important}.dijitSplitterCover{position:absolute;z-index:-1;top:0;left:0;width:100%;height:100%}.dijitSplitterCoverActive{z-index:3 !important}.dj_ie .dijitSplitterCover{background:white;opacity:0}.dj_ie6 .dijitSplitterCover,.dj_ie7 .dijitSplitterCover,.dj_ie8 .dijitSplitterCover{filter:alpha(opacity=0)}.dijitSplitterH{height:7px;border-top:1px;border-bottom:1px;cursor:row-resize;-webkit-tap-highlight-color:transparent}.dijitSplitterV{width:7px;border-left:1px;border-right:1px;cursor:col-resize;-webkit-tap-highlight-color:transparent}.dijitSplitContainer{position:relative;overflow:hidden;display:block}.dijitSplitPane{position:absolute}.dijitSplitContainerSizerH,.dijitSplitContainerSizerV{position:absolute;font-size:1px;background-color:ThreeDFace;border:1px solid;border-color:ThreeDHighlight ThreeDShadow ThreeDShadow ThreeDHighlight;margin:0}.dijitSplitContainerSizerH .thumb,.dijitSplitterV .dijitSplitterThumb{overflow:hidden;position:absolute;top:49%}.dijitSplitContainerSizerV .thumb,.dijitSplitterH .dijitSplitterThumb{position:absolute;left:49%}.dijitSplitterShadow,.dijitSplitContainerVirtualSizerH,.dijitSplitContainerVirtualSizerV{font-size:1px;background-color:ThreeDShadow;-moz-opacity:0.5;opacity:0.5;filter:Alpha(Opacity=50);margin:0}.dijitSplitContainerSizerH,.dijitSplitContainerVirtualSizerH{cursor:col-resize}.dijitSplitContainerSizerV,.dijitSplitContainerVirtualSizerV{cursor:row-resize}.dj_a11y .dijitSplitterH{border-top:1px solid #d3d3d3 !important;border-bottom:1px solid #d3d3d3 !important}.dj_a11y .dijitSplitterV{border-left:1px solid #d3d3d3 !important;border-right:1px solid #d3d3d3 !important}.dijitContentPane{display:block;overflow:auto;-webkit-overflow-scrolling:touch}.dijitContentPaneSingleChild{overflow:hidden}.dijitContentPaneLoading .dijitIconLoading,.dijitContentPaneError .dijitIconError{margin-right:9px}.dijitTitlePane{display:block;overflow:hidden}.dijitFieldset{border:1px solid gray}.dijitTitlePaneTitle,.dijitFieldsetTitle{cursor:pointer;-webkit-tap-highlight-color:transparent}.dijitTitlePaneTitleFixedOpen,.dijitTitlePaneTitleFixedClosed,.dijitFieldsetTitleFixedOpen,.dijitFieldsetTitleFixedClosed{cursor:default}.dijitTitlePaneTitle *{vertical-align:middle}.dijitTitlePane .dijitArrowNodeInner,.dijitFieldset .dijitArrowNodeInner{display:none}.dj_a11y .dijitTitlePane .dijitArrowNodeInner,.dj_a11y .dijitFieldset .dijitArrowNodeInner{display:inline;font-family:monospace}.dj_a11y .dijitTitlePane .dijitArrowNode,.dj_a11y .dijitFieldset .dijitArrowNode{display:none}.dijitTitlePaneTitleFixedOpen .dijitArrowNode,.dijitTitlePaneTitleFixedOpen .dijitArrowNodeInner,.dijitTitlePaneTitleFixedClosed .dijitArrowNode,.dijitTitlePaneTitleFixedClosed .dijitArrowNodeInner,.dijitFieldsetTitleFixedOpen .dijitArrowNode,.dijitFieldsetTitleFixedOpen .dijitArrowNodeInner,.dijitFieldsetTitleFixedClosed .dijitArrowNode,.dijitFieldsetTitleFixedClosed .dijitArrowNodeInner{display:none !important}.dj_ie6 .dijitTitlePaneContentOuter,.dj_ie6 .dijitTitlePane .dijitTitlePaneTitle{zoom:1}.dijitColorPalette{border:1px solid #999;background:#fff;position:relative}.dijitColorPalette .dijitPaletteTable{padding:2px 3px 3px 3px;position:relative;overflow:hidden;outline:0;border-collapse:separate}.dj_ie6 .dijitColorPalette .dijitPaletteTable,.dj_ie7 .dijitColorPalette .dijitPaletteTable,.dj_iequirks .dijitColorPalette .dijitPaletteTable{padding:0;margin:2px 3px 3px 3px}.dijitColorPalette .dijitPaletteCell{font-size:1px;vertical-align:middle;text-align:center;background:none}.dijitColorPalette .dijitPaletteImg{padding:1px;border:1px solid #999;margin:2px 1px;cursor:default;font-size:1px}.dj_gecko .dijitColorPalette .dijitPaletteImg{padding-bottom:0}.dijitColorPalette .dijitColorPaletteSwatch{width:14px;height:12px}.dijitPaletteTable td{padding:0}.dijitColorPalette .dijitPaletteCell:hover .dijitPaletteImg{border:1px solid #000}.dijitColorPalette .dijitPaletteCell:active .dijitPaletteImg,.dijitColorPalette .dijitPaletteTable .dijitPaletteCellSelected .dijitPaletteImg{border:2px solid #000;margin:1px 0}.dj_a11y .dijitColorPalette .dijitPaletteTable,.dj_a11y .dijitColorPalette .dijitPaletteTable *{background-color:transparent !important}.dijitAccordionContainer{border:1px solid #b7b7b7;border-top:0 !important}.dijitAccordionTitle{cursor:pointer;-webkit-tap-highlight-color:transparent}.dijitAccordionTitleSelected{cursor:default}.dijitAccordionTitle .arrowTextUp,.dijitAccordionTitle .arrowTextDown{display:none;font-size:0.65em;font-weight:normal !important}.dj_a11y .dijitAccordionTitle .arrowTextUp,.dj_a11y .dijitAccordionTitleSelected .arrowTextDown{display:inline}.dj_a11y .dijitAccordionTitleSelected .arrowTextUp{display:none}.dijitAccordionChildWrapper{overflow:hidden}.dijitCalendarContainer table{width:auto;clear:both}.dijitCalendarContainer th,.dijitCalendarContainer td{padding:0;vertical-align:middle}.dijitCalendarMonthContainer{text-align:center}.dijitCalendarDecrementArrow{float:left}.dijitCalendarIncrementArrow{float:right}.dijitCalendarYearLabel{white-space:nowrap}.dijitCalendarNextYear{margin:0 0 0 0.55em}.dijitCalendarPreviousYear{margin:0 0.55em 0 0}.dijitCalendarIncrementControl{vertical-align:middle}.dijitCalendarIncrementControl,.dijitCalendarDateTemplate,.dijitCalendarMonthLabel,.dijitCalendarPreviousYear,.dijitCalendarNextYear{cursor:pointer;-webkit-tap-highlight-color:transparent}.dijitCalendarDisabledDate{color:gray;text-decoration:line-through;cursor:default}.dijitSpacer{position:relative;height:1px;overflow:hidden;visibility:hidden}.dijitCalendarMonthMenu .dijitCalendarMonthLabel{text-align:center}.dijitMenu{border:1px solid black;background-color:white}.dijitMenuTable{border-collapse:collapse;border-width:0;background-color:white}.dj_webkit .dijitMenuTable td[colspan="2"]{border-right:hidden}.dijitMenuItem{text-align:left;white-space:nowrap;padding:.1em .2em;cursor:pointer;-webkit-tap-highlight-color:transparent}.dijitMenuItem:focus{outline:none}.dijitMenuPassive .dijitMenuItemHover,.dijitMenuItemSelected{background-color:black;color:white}.dijitMenuItemIcon,.dijitMenuExpand{background-repeat:no-repeat}.dijitMenuItemDisabled *{opacity:0.5;cursor:default}.dj_ie .dj_a11y .dijitMenuItemDisabled,.dj_ie .dj_a11y .dijitMenuItemDisabled *,.dj_ie .dijitMenuItemDisabled *{color:gray;filter:alpha(opacity=35)}.dijitMenuItemLabel{vertical-align:middle}.dj_a11y .dijitMenuItemSelected{border:1px dotted black !important}.dj_a11y .dijitMenuItemSelected .dijitMenuItemLabel{border-width:1px;border-style:solid}.dj_ie8 .dj_a11y .dijitMenuItemLabel{position:static}.dijitMenuExpandA11y{display:none}.dj_a11y .dijitMenuExpandA11y{display:inline}.dijitMenuSeparator td{border:0;padding:0}.dijitMenuSeparatorTop{height:50%;margin:0;margin-top:3px;font-size:1px}.dijitMenuSeparatorBottom{height:50%;margin:0;margin-bottom:3px;font-size:1px}.dijitMenuItemIconChar{display:none;visibility:hidden}.dj_a11y .dijitMenuItemIconChar{display:inline}.dijitCheckedMenuItemChecked .dijitMenuItemIconChar,.dijitRadioMenuItemChecked .dijitMenuItemIconChar{visibility:visible}.dj_ie .dj_a11y .dijitMenuBar .dijitMenuItem{margin:0}.dijitStackController .dijitToggleButtonChecked *{cursor:default}.dijitTabContainer{z-index:0;overflow:visible}.dj_ie6 .dijitTabContainer{overflow:hidden}.dijitTabContainerNoLayout{width:100%}.dijitTabContainerBottom-tabs,.dijitTabContainerTop-tabs,.dijitTabContainerLeft-tabs,.dijitTabContainerRight-tabs{z-index:1;overflow:visible !important}.dijitTabController{z-index:1}.dijitTabContainerBottom-container,.dijitTabContainerTop-container,.dijitTabContainerLeft-container,.dijitTabContainerRight-container{z-index:0;overflow:hidden;border:1px solid black}.nowrapTabStrip{width:50000px;display:block;position:relative;text-align:left;z-index:1}.dijitTabListWrapper{overflow:hidden;z-index:1}.dj_a11y .tabStripButton img{display:none}.dijitTabContainerTop-tabs{border-bottom:1px solid black}.dijitTabContainerTop-container{border-top:0}.dijitTabContainerLeft-tabs{border-right:1px solid black;float:left}.dijitTabContainerLeft-container{border-left:0}.dijitTabContainerBottom-tabs{border-top:1px solid black}.dijitTabContainerBottom-container{border-bottom:0}.dijitTabContainerRight-tabs{border-left:1px solid black;float:left}.dijitTabContainerRight-container{border-right:0}div.dijitTabDisabled,.dj_ie div.dijitTabDisabled{cursor:auto}.dijitTab{position:relative;cursor:pointer;-webkit-tap-highlight-color:transparent;white-space:nowrap;z-index:3}.dijitTab *{vertical-align:middle}.dijitTabChecked{cursor:default}.dijitTabContainerTop-tabs .dijitTab{top:1px}.dijitTabContainerBottom-tabs .dijitTab{top:-1px}.dijitTabContainerLeft-tabs .dijitTab{left:1px}.dijitTabContainerRight-tabs .dijitTab{left:-1px}.dijitTabContainerTop-tabs .dijitTab,.dijitTabContainerBottom-tabs .dijitTab{display:inline-block}.tabStripButton{z-index:12}.dijitTabButtonDisabled .tabStripButton{display:none}.dijitTabCloseButton{margin-left:1em}.dijitTabCloseText{display:none}.dijitTab .tabLabel{min-height:15px;display:inline-block}.dijitNoIcon{display:none}.dj_ie6 .dijitTab .dijitNoIcon{display:inline;height:15px;width:1px}.dj_a11y .dijitTabCloseButton{background-image:none !important;width:auto !important;height:auto !important}.dj_a11y .dijitTabCloseText{display:inline}.dijitTabPane,.dijitStackContainer-child,.dijitAccordionContainer-child{border:none !important}.dijitInlineEditBoxDisplayMode{border:1px solid transparent;cursor:text}.dj_a11y .dijitInlineEditBoxDisplayMode,.dj_ie6 .dijitInlineEditBoxDisplayMode{border:none}.dijitInlineEditBoxDisplayModeHover,.dj_a11y .dijitInlineEditBoxDisplayModeHover,.dj_ie6 .dijitInlineEditBoxDisplayModeHover{background-color:#e2ebf2;border:solid 1px black}.dijitInlineEditBoxDisplayModeDisabled{cursor:default}.dijitTree{overflow:auto;-webkit-tap-highlight-color:transparent}.dijitTreeContainer{float:left}.dijitTreeIndent{width:19px}.dijitTreeRow,.dijitTreeContent{white-space:nowrap}.dj_ie .dijitTreeLabel:focus{outline:1px dotted black}.dijitTreeRow img{vertical-align:middle}.dijitTreeContent{cursor:default}.dijitExpandoText{display:none}.dj_a11y .dijitExpandoText{display:inline;padding-left:10px;padding-right:10px;font-family:monospace;border-style:solid;border-width:thin;cursor:pointer}.dijitTreeLabel{margin:0 4px}.dijitDialog{position:absolute;z-index:999;overflow:hidden}.dijitDialogTitleBar{cursor:move}.dijitDialogFixed .dijitDialogTitleBar{cursor:default}.dijitDialogCloseIcon{cursor:pointer;-webkit-tap-highlight-color:transparent}.dijitDialogPaneContent{-webkit-overflow-scrolling:touch}.dijitDialogUnderlayWrapper{position:absolute;left:0;top:0;z-index:998;display:none;background:transparent !important}.dijitDialogUnderlay{background:#eee;opacity:0.5}.dj_ie .dijitDialogUnderlay{filter:alpha(opacity=50)}.dj_a11y .dijitSpinnerButtonContainer,.dj_a11y .dijitDialog{opacity:1 !important;background-color:white !important}.dijitDialog .closeText{display:none;position:absolute}.dj_a11y .dijitDialog .closeText{display:inline}.dijitSliderMoveable{z-index:99;position:absolute !important;display:block;vertical-align:middle}.dijitSliderMoveableH{right:0}.dijitSliderMoveableV{right:50%}.dj_a11y div.dijitSliderImageHandle,.dijitSliderImageHandle{margin:0;padding:0;position:relative !important;border:8px solid gray;width:0;height:0;cursor:pointer;-webkit-tap-highlight-color:transparent}.dj_iequirks .dj_a11y .dijitSliderImageHandle{font-size:0}.dj_ie7 .dijitSliderImageHandle{overflow:hidden}.dj_ie7 .dj_a11y .dijitSliderImageHandle{overflow:visible}.dj_a11y .dijitSliderFocused .dijitSliderImageHandle{border:4px solid #000;height:8px;width:8px}.dijitSliderImageHandleV{top:-8px;right:-50%}.dijitSliderImageHandleH{left:50%;top:-5px;vertical-align:top}.dijitSliderBar{border-style:solid;border-color:black;cursor:pointer;-webkit-tap-highlight-color:transparent}.dijitSliderBarContainerV{position:relative;height:100%;z-index:1}.dijitSliderBarContainerH{position:relative;z-index:1}.dijitSliderBarH{height:4px;border-width:1px 0}.dijitSliderBarV{width:4px;border-width:0 1px}.dijitSliderProgressBar{background-color:red;z-index:1}.dijitSliderProgressBarV{position:static !important;height:0;vertical-align:top;text-align:left}.dijitSliderProgressBarH{position:absolute !important;width:0;vertical-align:middle;overflow:visible}.dijitSliderRemainingBar{overflow:hidden;background-color:transparent;z-index:1}.dijitSliderRemainingBarV{height:100%;text-align:left}.dijitSliderRemainingBarH{width:100% !important}.dijitSliderBumper{overflow:hidden;z-index:1}.dijitSliderBumperV{width:4px;height:8px;border-width:0 1px}.dijitSliderBumperH{width:8px;height:4px;border-width:1px 0}.dijitSliderBottomBumper,.dijitSliderLeftBumper{background-color:red}.dijitSliderTopBumper,.dijitSliderRightBumper{background-color:transparent}.dijitSliderDecoration{text-align:center}.dijitSliderDecorationC,.dijitSliderDecorationV{position:relative}.dijitSliderDecorationH{width:100%}.dijitSliderDecorationV{height:100%;white-space:nowrap}.dijitSliderButton{font-family:monospace;margin:0;padding:0;display:block}.dj_a11y .dijitSliderButtonInner{visibility:visible !important}.dijitSliderButtonContainer{text-align:center;height:0}.dijitSliderButtonContainer *{cursor:pointer;-webkit-tap-highlight-color:transparent}.dijitSlider .dijitButtonNode{padding:0;display:block}.dijitRuleContainer{position:relative;overflow:visible}.dijitRuleContainerV{height:100%;line-height:0;float:left;text-align:left}.dj_opera .dijitRuleContainerV{line-height:2%}.dj_ie .dijitRuleContainerV{line-height:normal}.dj_gecko .dijitRuleContainerV{margin:0 0 1px 0}.dijitRuleMark{position:absolute;border:1px solid black;line-height:0;height:100%}.dijitRuleMarkH{width:0;border-top-width:0 !important;border-bottom-width:0 !important;border-left-width:0 !important}.dijitRuleLabelContainer{position:absolute}.dijitRuleLabelContainerH{text-align:center;display:inline-block}.dijitRuleLabelH{position:relative;left:-50%}.dijitRuleLabelV{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dijitRuleMarkV{height:0;border-right-width:0 !important;border-bottom-width:0 !important;border-left-width:0 !important;width:100%;left:0}.dj_ie .dijitRuleLabelContainerV{margin-top:-.55em}.dj_a11y .dijitSliderReadOnly,.dj_a11y .dijitSliderDisabled{opacity:0.6}.dj_ie .dj_a11y .dijitSliderReadOnly .dijitSliderBar,.dj_ie .dj_a11y .dijitSliderDisabled .dijitSliderBar{filter:alpha(opacity=40)}.dj_a11y .dijitSlider .dijitSliderButtonContainer div{font-family:monospace;font-size:1em;line-height:1em;height:auto;width:auto;margin:0 4px}.dj_a11y .dijitButtonContents .dijitButtonText,.dj_a11y .dijitTab .tabLabel{display:inline !important}.dj_a11y .dijitSelect .dijitButtonText{display:inline-block !important}.dijitTextArea{width:100%;overflow-y:auto}.dijitTextArea[cols]{width:auto}.dj_ie .dijitTextAreaCols{width:auto}.dijitExpandingTextArea{resize:none}.dijitToolbarSeparator{height:18px;width:5px;padding:0 1px;margin:0}.dijitIEFixedToolbar{position:absolute;top:expression(eval((document.documentElement||document.body).scrollTop))}.dijitEditor{display:block}.dijitEditorDisabled,.dijitEditorReadOnly{color:gray}.dijitTimePicker{background-color:white}.dijitTimePickerItem{cursor:pointer;-webkit-tap-highlight-color:transparent}.dijitTimePickerItemHover{background-color:gray;color:white}.dijitTimePickerItemSelected{font-weight:bold;color:#333;background-color:#b7cdee}.dijitTimePickerItemDisabled{color:gray;text-decoration:line-through}.dijitTimePickerItemInner{text-align:center;border:0;padding:2px 8px 2px 8px}.dijitTimePickerTick,.dijitTimePickerMarker{border-bottom:1px solid gray}.dijitTimePicker .dijitDownArrowButton{border-top:none !important}.dijitTimePickerTick{color:#CCC}.dijitTimePickerMarker{color:black;background-color:#CCC}.dj_a11y .dijitTimePickerItemSelected .dijitTimePickerItemInner{border:solid 4px black}.dj_a11y .dijitTimePickerItemHover .dijitTimePickerItemInner{border:dashed 4px black}.dijitToggleButtonIconChar{display:none !important}.dj_a11y .dijitToggleButton .dijitToggleButtonIconChar{display:inline !important;visibility:hidden}.dj_ie6 .dijitToggleButtonIconChar,.dj_ie6 .tabStripButton .dijitButtonText{font-family:"Arial Unicode MS"}.dj_a11y .dijitToggleButtonChecked .dijitToggleButtonIconChar{display:inline !important;visibility:visible !important}.dijitArrowButtonChar{display:none !important}.dj_a11y .dijitArrowButtonChar{display:inline !important}.dj_a11y .dijitDropDownButton .dijitArrowButtonInner,.dj_a11y .dijitComboButton .dijitArrowButtonInner{display:none !important}.dj_a11y .dijitSelect{border-collapse:separate !important;border-width:1px;border-style:solid}.dj_ie .dijitSelect{vertical-align:middle}.dj_ie6 .dijitSelect .dijitValidationContainer,.dj_ie8 .dijitSelect .dijitButtonText{vertical-align:top}.dj_ie6 .dijitTextBox .dijitInputContainer,.dj_iequirks .dijitTextBox .dijitInputContainer,.dj_ie6 .dijitTextBox .dijitArrowButtonInner,.dj_ie6 .dijitSpinner .dijitSpinnerButtonInner,.dijitSelect .dijitSelectLabel{vertical-align:baseline}.dijitNumberTextBox{text-align:left;direction:ltr}.dijitNumberTextBox .dijitInputInner{text-align:inherit}.dijitNumberTextBox input.dijitInputInner,.dijitCurrencyTextBox input.dijitInputInner,.dijitSpinner input.dijitInputInner{text-align:right}.dj_ie8 .dijitNumberTextBox input.dijitInputInner,.dj_ie9 .dijitNumberTextBox input.dijitInputInner,.dj_ie8 .dijitCurrencyTextBox input.dijitInputInner,.dj_ie9 .dijitCurrencyTextBox input.dijitInputInner,.dj_ie8 .dijitSpinner input.dijitInputInner,.dj_ie9 .dijitSpinner input.dijitInputInner{padding-right:1px !important}.dijitToolbar .dijitSelect{margin:0}.dj_webkit .dijitToolbar .dijitSelect{padding-left:0.3em}.dijitSelect .dijitButtonContents{padding:0;white-space:nowrap;text-align:left;border-style:none solid none none;border-width:1px}.dijitSelectFixedWidth .dijitButtonContents{width:100%}.dijitSelectMenu .dijitMenuItemIcon{display:none}.dj_ie6 .dijitSelectMenu .dijitMenuItemLabel,.dj_ie7 .dijitSelectMenu .dijitMenuItemLabel{position:static}.dijitSelectLabel *{vertical-align:baseline}.dijitSelectSelectedOption *{font-weight:bold}.dijitSelectMenu{border-width:1px}.dijitForceStatic{position:static !important}.dijitReadOnly *,.dijitDisabled *,.dijitReadOnly,.dijitDisabled{cursor:default}.dojoDndItem{padding:2px;-webkit-touch-callout:none;-webkit-user-select:none}.dojoDndHorizontal .dojoDndItem{display:inline-block}.dojoDndItemBefore,.dojoDndItemAfter{border:0px solid #369}.dojoDndItemBefore{border-width:2px 0 0 0;padding:0 2px 2px 2px}.dojoDndItemAfter{border-width:0 0 2px 0;padding:2px 2px 0 2px}.dojoDndHorizontal .dojoDndItemBefore{border-width:0 0 0 2px;padding:2px 2px 2px 0}.dojoDndHorizontal .dojoDndItemAfter{border-width:0 2px 0 0;padding:2px 0 2px 2px}.dojoDndItemOver{cursor:pointer}.dj_gecko .dijitArrowButtonInner INPUT,.dj_gecko INPUT.dijitArrowButtonInner{-moz-user-focus:ignore}.dijitFocused .dijitMenuItemShortcutKey{text-decoration:underline}.dijitBorderContainer{height:350px}.dijitTooltipContainer{background:#fff;border:1px solid #ccc;border-radius:6px}.dijitContentPane{box-sizing:content-box;overflow:auto !important}.mx-dataview-content,.mx-scrollcontainer-wrapper:not(.mx-scrollcontainer-nested),.mx-tabcontainer-content,.mx-grid-content{-webkit-overflow-scrolling:touch}html,body,#content{height:100%}#content>.mx-page{width:100%;min-height:100%}.mx-left-aligned{text-align:left}.mx-right-aligned{text-align:right}.mx-center-aligned{text-align:center}.mx-table{width:100%}.mx-table th,.mx-table td{padding:8px;vertical-align:top}.mx-table th.nopadding,.mx-table td.nopadding{padding:0}.mx-offscreen{position:relative;height:0;overflow:hidden}.mx-ie-event-shield{position:absolute;top:0;left:0;width:100%;height:100%;z-index:-1}.mx-swipe-navigation-progress{position:absolute;height:54px;width:54px;top:calc(50% - 27px);left:calc(50% - 27px);background:url(data:image/gif;base64,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)}input[type="checkbox"]{margin:9px 0}.mx-checkbox input[type="checkbox"]{margin-left:0;margin-right:8px;position:static}.form-vertical .form-group.mx-checkbox input[type="checkbox"]{display:block}.form-vertical .form-group.mx-checkbox.label-after input[type="checkbox"]{display:inline-block}.form-horizontal .form-group.no-columns{padding-left:15px;padding-right:15px}.mx-radiobuttons.inline .radio{display:inline-block;margin-right:20px}.mx-radiobuttons .radio input[type="radio"]{position:static;margin-right:8px;margin-left:0}.mx-radiobuttons .radio label{padding-left:0}.alert{margin-top:8px;margin-bottom:10px;white-space:pre-line}.mx-compound-control{display:flex}.mx-compound-control button{margin-left:5px}[dir="rtl"] .mx-compound-control button{margin-left:0;margin-right:5px}.mx-tooltip{margin:10px}.mx-tooltip-content{width:400px;overflow-y:auto}.mx-tooltip-prepare{height:24px;padding:8px;background:transparent url(data:image/gif;base64,R0lGODlhGAAYAMQdAKXZ8nfF64TL7QuX3Fe45zaq4hOb3fL6/fr9/rri9dXt+ZrU8Cym4Umy5cHl9uPz+2K86Oj1/Nzw+rDd9M3q+JDQ72rA6iOi3+34/ECu48jo9x2f3gWV2////wAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQwIDc5LjE2MDQ1MSwgMjAxNy8wNS8wNi0wMTowODoyMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RUJFNkU4NEZCNEVDMTFFODk3MDBBNUU1RUM4Qjg3QTUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RUJFNkU4NTBCNEVDMTFFODk3MDBBNUU1RUM4Qjg3QTUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpFQkU2RTg0REI0RUMxMUU4OTcwMEE1RTVFQzhCODdBNSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpFQkU2RTg0RUI0RUMxMUU4OTcwMEE1RTVFQzhCODdBNSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6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) no-repeat scroll center center}.mx-tooltip-content .table th,.mx-tooltip-content .table td{padding:2px 8px}.mx-tabcontainer-pane{height:100%}.mx-tabcontainer-content.loading{min-height:48px;background:url(data:image/gif;base64,R0lGODlhNgA2APMAAP///wAAAHh4eBwcHA4ODtjY2FRUVNzc3MTExEhISIqKigAAAAAAAAAAAAAAAAAAACH5BAkKAAAAIf4aQ3JlYXRlZCB3aXRoIGFqYXhsb2FkLmluZm8AIf8LTkVUU0NBUEUyLjADAQAAACwAAAAANgA2AAAEyxDISau9OOvNu/9gKI5kySEJQSSI6UqKKhPKWyLz3NpimqsJnug3E4aIMiPI9wsqPTjiTlkwqAwFTCxXexYGs0H2ggJOLYLBQDCy5gwmwYx9JJrAssHQXsKr9CFuM3AlcjJ0IAd+BAMHLmlrJAduBo5Pl5iZmpucnZ6fcWqImJCjaHOZhiqmFIuAl64ZsZizF6oErEK3uROlm76gwcLDxMXGx8XAj6Iku4+oIrUk0h/U0WEjznHQIsqhkcjB3sncxdbC5+Llyczh7k8RACH5BAkKAAAALAAAAAA2ADYAAATMEMhJq7046827/2AojmRpnmVhEIRRoGcxsOzwwuRKswZO7jvfCEgTinS7nhF0mNEGhwsiwUoglpSDzhC1KIiKkWAwEJgQRNYVJNiZSdR0IuSsldJFUJ0wuOMJIW00byNxRHOBZIQjaGlrWBxfQGGQHlNVj5Wam5ydnp9LY2WboosWgiymQqgEqhN7fZCwGbOyO7EXrK44uhqlpIqgwsPExcbHyMe/KMsivSbPdLcntdJP1NPObifRiaPMwcnCzcrbyNXG6MXdxuTi7z4RACH5BAkKAAAALAAAAAA2ADYAAATOEMhJq7046827/2AojmRpnmiqAsIwCKspEDQBx+NQEwOe7z1faFa7CUGt11FYMNAMBVLSSCroaoPocEcVOXcEg+hKC5LAtTHQhKaJiLRu6LsTv13y0IHMOyw9B18Gfn+FhoeIiYoZCAk0CQiLFgpoChlTRwhtBJEWcDZCjm0JF3xmMZtuFqZCqQQXn3koomiksHiZm52SAJRglrwTjY+7wcbHyMnKE5gozW9cJ7E/WCesatUm11tF0tEjzzK4y4nhxtPI28bqwejI5uTxJhEAIfkECQoAAAAsAAAAADYANgAABMsQyEmrvTjrzbv/YCiOZGmeaKoCwjAIqykQNAHH41ATA57vPV9oVrsJQa3XcYlKGmWuJ3InFRFp1Y6uFixtaV3Ql3cahz9X2ymd7ThTb6Z8Tq/b7/i8vGCgGQoacUIFZoAXbEd9OwQGGGZHizWOQJCRBBiIQoo7jZhRSwdmB3oUB4oGo6Sqq6ytMQgJNAkIrAqRCiOCIwiWBLRTRSWxlgkhjyS9NMaUyMlDVMK9xUOfJbyWv3q2i7hLuhWwstlCmavH5syr5erVru44EQAh+QQJCgAAACwAAAAANgA2AAAEzBDISau9OOvNu/9gKI5kaZ5oqgLCMAirKRA0AcfjUBMDnu89X2hWuwlBrddxiUoaZa4ncicVEWnVjq4WLG1pXdCXdxqHP1fbKZ3tOFNvpnxOr9vv+LweE1/2L2x+VBlmS4UYh0KJFoFHjXxRcn97lJWWl5iZcgUGNAYFJJMiBWagQ4MlnTsEBiKLIqs1rkAmsTRWqCSqO61WkRkICTQJCBcHZgdHCrEKxqoGyUIItgTFesK2CXvUt3rcBHvYsdp607bWesurzZXBw+giEQAh+QQJCgAAACwAAAAANgA2AAAEzBDISau9OOvNu/9gKI5kaZ5oqgLCMAirKRA0AcfjUBMDnu89X2hWuwlBrddxiUoaZa4ncicVEWnVjq4WLG1pXdCXdxqHP1fbKZ3tOFNvpnxOr9vv+LweE1/2L2x+VBlmS4UYh0KJFoFHjXxRcn97lJWWl5gSCAk0CQiWCjs0CpQIojWfJZMdnKcECaqDIK41XkAhtDS2XCGtp7Akjx6mrqnBkSKhoqQXBQY0BgVLm53GFQVm0pTPogaVtN+uldw73pQHZgeWB9wG6pkoEQAh+QQJCgAAACwAAAAANgA2AAAEzBDISau9OOvNu/9gKI5kaZ5oqgLCMAirKRA0AcfjUBMDnu89X2hWuwlBrddxiUoaZa4ncicVEWnVjq4WLG1pXdCXdxqHP1fbKZ3tOFNvpnxOr9vvKUSClkDgLQo7NAp/EwiCNX5CcRZ7iAQJi1QXjzVCZpSVBJdAF46IkT5sF4ePiqJRGYGChIWGjn2usrO0tXYFBjQGBbQFZrxQSiK5ggYykyGVJpjJj8udIcQ7xiWjIQdmB2upIwfEBtq2Hoyz1rPM59DlyLTk4u8pEQAh+QQJCgAAACwAAAAANgA2AAAEzBDISau9OOvNu/9gKI5kaZ5oqgLCMAirKRA0AcfjUBMDnu89X2hWuwkRCVoCoWm9hBLFjqaAdhDTGrPkNH6SWUKCu/N2wrWSrhb8oGlqYAicHZOINDMHG97eXXodUlNVVldgS4aKi4yNjo8FBjQGBY8XBWs0A5VQXRmSUwadZRhoUJk8pWGnchegO6JCeDYYB6gDB1aeGQegBrmWwcLDxMXGx1yAKbsis4Egzj9sJ7fSmtStQ6Qy283KKMzIjeHE0cbV59nl3cXk4u8oEQA7) no-repeat center center;background-size:32px 32px}.mx-tabcontainer-tabs{margin-bottom:8px}.mx-tabcontainer-tabs li{position:relative}.mx-tabcontainer-indicator{position:absolute;background:#f2dede;border-radius:8px;color:#b94a48;top:0px;right:-5px;width:16px;height:16px;line-height:16px;text-align:center;vertical-align:middle;font-size:10px;font-weight:600;z-index:1}.mx-grid{padding:8px;overflow:hidden}.mx-grid-controlbar,.mx-grid-searchbar{display:flex;justify-content:space-between;flex-wrap:wrap}.mx-grid-controlbar .mx-button,.mx-grid-search-controls .mx-button{margin-bottom:8px}.mx-grid-search-controls .mx-button+.mx-button,.mx-grid-controlbar .mx-button+.mx-button{margin-left:0.3em}[dir="rtl"] .mx-grid-search-controls .mx-button+.mx-button,[dir="rtl"] .mx-grid-controlbar .mx-button+.mx-button{margin-left:0;margin-right:0.3em}.mx-grid-pagingbar,.mx-grid-search-controls{display:flex;white-space:nowrap;align-items:baseline;margin-left:auto}.mx-grid-toolbar,.mx-grid-search-inputs{margin-right:5px;flex:1}[dir="rtl"] .mx-grid-toolbar,[dir="rtl"] .mx-grid-search-inputs{margin-left:5px;margin-right:0px}[dir="rtl"] .mx-grid-pagingbar,[dir="rtl"] .mx-grid-search-controls{margin-left:0px;margin-right:auto}.mx-grid-paging-status{padding:0 8px 5px}.mx-grid-search-item{display:inline-block;vertical-align:top;margin-bottom:8px}.mx-grid-search-label{width:110px;padding:0 5px;text-align:right;display:inline-block;vertical-align:top;overflow:hidden}[dir="rtl"] .mx-grid-search-label{text-align:left}.mx-grid-search-input{width:150px;padding:0 5px;display:inline-block;vertical-align:top}.mx-grid-search-message{flex-basis:100%}.mx-dataview .mx-grid{border:1px solid #ddd;border-radius:3px}.mx-calendar{z-index:1000}.mx-calendar-month-dropdown-options{position:absolute}.mx-calendar,.mx-calendar-month-dropdown{user-select:none}.mx-calendar-month-current{display:inline-block}.mx-calendar-month-spacer{position:relative;height:0px;overflow:hidden;visibility:hidden}.mx-calendar,.mx-calendar-month-dropdown-options{border:1px solid lightgrey;background-color:white}.mx-datagrid tr{cursor:pointer}.mx-datagrid tr.mx-datagrid-row-empty{cursor:default}.mx-datagrid table{width:100%;max-width:100%;table-layout:fixed;margin-bottom:0}.mx-datagrid th,.mx-datagrid td{padding:8px;line-height:1.42857143;vertical-align:bottom;border:1px solid #ddd}.mx-datagrid th{position:relative;border-bottom-width:2px}.mx-datagrid-head-caption{overflow:hidden;white-space:nowrap}.mx-datagrid-sort-icon{float:right;padding-left:5px}[dir="rtl"] .mx-datagrid-sort-icon{float:left;padding:0 5px 0 0}.mx-datagrid-column-resizer{position:absolute;top:0;left:-6px;width:10px;height:100%;cursor:col-resize}[dir="rtl"] .mx-datagrid-column-resizer{left:auto;right:-6px}.mx-datagrid tbody tr:first-child td{border-top:none}.mx-datagrid tbody .selected td{background-color:#eee}.mx-datagrid-data-wrapper{overflow:hidden;white-space:nowrap}.mx-datagrid tbody img{max-width:16px;max-height:16px}.mx-datagrid input,.mx-datagrid select,.mx-datagrid textarea{cursor:auto}.mx-datagrid tfoot th,.mx-datagrid tfoot td{padding:3px 8px}.mx-datagrid tfoot th{border-top:1px solid #ddd}.mx-datagrid.mx-content-loading .mx-content-loader{display:inline-block;width:90%;animation:placeholderGradient 1s linear infinite;border-radius:4px;background:#F5F5F5;background:repeating-linear-gradient(to right, #f5f5f5 0%, #f5f5f5 5%, #F9F9F9 50%, #f5f5f5 95%, #f5f5f5 100%);background-size:200px 100px;animation-fill-mode:both}@keyframes placeholderGradient{0%{background-position:100px 0}100%{background-position:-100px 0}}.mx-datagrid-table-resizing th,.mx-datagrid-table-resizing td{cursor:col-resize !important}.mx-templategrid-content-wrapper{display:table;width:100%;border-collapse:collapse;box-sizing:border-box}.mx-templategrid-row{display:table-row}.mx-templategrid-item{padding:5px;display:table-cell;border:1px solid #ddd;cursor:pointer;box-sizing:border-box}.mx-templategrid-empty{display:table-cell}.mx-templategrid-item.selected{background-color:#f5f5f5}.mx-templategrid-item .mx-table th,.mx-templategrid-item .mx-table td{padding:2px 8px}.mx-scrollcontainer-horizontal{width:100%;display:table;table-layout:fixed}.mx-scrollcontainer-horizontal>div{display:table-cell;vertical-align:top}.mx-scrollcontainer-nested{padding:0}.mx-scrollcontainer-fixed>.mx-scrollcontainer-middle>.mx-scrollcontainer-wrapper,.mx-scrollcontainer-fixed>.mx-scrollcontainer-left>.mx-scrollcontainer-wrapper,.mx-scrollcontainer-fixed>.mx-scrollcontainer-center>.mx-scrollcontainer-wrapper,.mx-scrollcontainer-fixed>.mx-scrollcontainer-right>.mx-scrollcontainer-wrapper{overflow:auto}.mx-scrollcontainer-move-in{transition:left 250ms ease-out}.mx-scrollcontainer-move-out{transition:left 250ms ease-in}.mx-scrollcontainer-shrink .mx-scrollcontainer-toggleable{transition-property:width}.mx-scrollcontainer-toggleable{background-color:#fff}.mx-scrollcontainer-push{position:relative}.mx-scrollcontainer-shrink>.mx-scrollcontainer-toggleable{overflow:hidden}.mx-scrollcontainer-push.mx-scrollcontainer-open>div,.mx-scrollcontainer-slide.mx-scrollcontainer-open>div{pointer-events:none}.mx-scrollcontainer-push.mx-scrollcontainer-open>.mx-scrollcontainer-toggleable,.mx-scrollcontainer-slide.mx-scrollcontainer-open>.mx-scrollcontainer-toggleable{pointer-events:auto}.mx-navbar-item img,.mx-navbar-subitem img{height:16px}.mx-navigationtree .navbar-inner{padding-left:0;padding-right:0}.mx-navigationtree ul{list-style:none}.mx-navigationtree ul li{border-bottom:1px solid #dfe6ea}.mx-navigationtree li:last-child{border-style:none}.mx-navigationtree a{display:block;padding:5px 10px;color:#777;text-shadow:0 1px 0 #fff;text-decoration:none}.mx-navigationtree a.active{color:#FFF;text-shadow:none;background:#3498DB;border-radius:3px}.mx-navigationtree .mx-navigationtree-collapsed ul{display:none}.mx-navigationtree ul{margin:0;padding:0}.mx-navigationtree ul li{padding:5px 0}.mx-navigationtree ul li ul{padding:0;margin-left:10px}.mx-navigationtree ul li ul li{margin-left:8px;padding:5px 0}[dir="rtl"] .mx-navigationtree ul li ul li{margin-left:auto;margin-right:8px}.mx-navigationtree ul li ul li ul li{font-size:10px;padding-top:3px;padding-bottom:3px}.mx-navigationtree ul li ul li ul li img{vertical-align:top}.mx-link img,.mx-button img{height:16px}.mx-link{padding:6px 12px;display:inline-block}.mx-groupbox{margin-bottom:10px}.mx-groupbox-header{margin:0;padding:10px 15px;color:#eee;background:#333;font-size:inherit;line-height:inherit;border-radius:4px 4px 0 0}.mx-groupbox-collapsible>.mx-groupbox-header{cursor:pointer}.mx-groupbox.collapsed>.mx-groupbox-header{border-radius:4px}.mx-groupbox-body{padding:8px;border:1px solid #ddd;border-radius:4px}.mx-groupbox.collapsed>.mx-groupbox-body{display:none}.mx-groupbox-header+.mx-groupbox-body{border-top:none;border-radius:0 0 4px 4px}.mx-groupbox-collapse-icon{float:right}[dir="rtl"] .mx-groupbox-collapse-icon{float:left}.mx-dataview{position:relative}.mx-dataview-controls{padding:19px 20px 12px;background-color:#f5f5f5;border-top:1px solid #eee}.mx-dataview-controls .mx-button{margin-bottom:8px}.mx-dataview-controls .mx-button+.mx-button{margin-left:0.3em}.mx-dataview-message{background:#fff;position:absolute;top:0;right:0;bottom:0;left:0}.mx-dataview-message>div{display:table;width:100%;height:100%}.mx-dataview-message>div>p{display:table-cell;text-align:center;vertical-align:middle}.mx-window-view .mx-window-body{padding:0}.mx-window-view .mx-window-body>.mx-dataview>.mx-dataview-content,.mx-window-view .mx-window-body>.mx-placeholder>.mx-dataview>.mx-dataview-content{padding:15px}.mx-window-view .mx-window-body>.mx-dataview>.mx-dataview-controls,.mx-window-view .mx-window-body>.mx-placeholder>.mx-dataview>.mx-dataview-controls{border-radius:0px 0px 6px 6px}.mx-dialog{position:fixed;left:auto;right:auto;padding:0;width:500px;margin:0}.mx-dialog-header{cursor:move}.mx-dialog-body{overflow:auto}.mx-window{position:fixed;left:auto;right:auto;padding:0;width:600px;margin:0}.mx-window-content{height:100%;overflow:hidden}.mx-window-active .mx-window-header{background-color:#f5f5f5;border-radius:6px 6px 0 0}.mx-window-header{cursor:move}.mx-window-body{overflow:auto}.mx-dropdown-list *{cursor:pointer}.mx-dropdown-list img{width:35px;vertical-align:middle;margin-right:10px}[dir="rtl"] .mx-dropdown-list img{margin-left:10px;margin-right:auto}.mx-dropdown-list{padding:0;list-style:none}.mx-dropdown-list>li{padding:5px 10px 10px;border:1px #ddd;border-style:solid solid none;background-color:#fff}.mx-dropdown-list>li:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.mx-dropdown-list>li:last-child{border-bottom-style:solid;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.mx-dropdown-list-striped>li:nth-child(2n+1){background:#f9f9f9}.mx-dropdown-list>li:hover{background:#f5f5f5}.mx-header{position:relative;padding:9px;background:#333;text-align:center}.mx-header-center{display:inline-block;color:#eee;line-height:30px}body[dir="ltr"] .mx-header-left,body[dir="rtl"] .mx-header-right{position:absolute;top:9px;left:9px}body[dir="ltr"] .mx-header-right,body[dir="rtl"] .mx-header-left{position:absolute;top:9px;right:9px}.mx-title{margin-bottom:0px;margin-top:0px}.mx-listview{padding:8px}.mx-listview>ul{padding:0px;list-style:none}.mx-listview-clickable>ul>li{cursor:pointer}.mx-listview-empty{color:#999;text-align:center}.mx-listview .mx-listview-loading{padding:10px;line-height:0;text-align:center}.mx-listview-searchbar{display:flex;margin-bottom:10px}.mx-listview-searchbar>input{width:100%}.mx-listview-searchbar>button{margin-left:5px}[dir="rtl"] .mx-listview-searchbar>button{margin-left:0;margin-right:5px}.mx-listview-selection{display:table-cell;vertical-align:middle;padding:0 15px 0 5px}[dir="rtl"] .mx-listview-selection{padding:0 5px 0 15px}.mx-listview-selectable .mx-listview-content{display:table-cell;vertical-align:middle;width:100%}.mx-listview .selected{background:#def}.mx-listview .mx-table th,.mx-listview .mx-table td{padding:2px}.mx-login .form-control{margin-top:10px}.mx-menubar{padding:8px}.mx-menubar-icon{height:16px}.mx-menubar-more-icon{display:inline-block;width:16px;height:16px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAYAAAAe2bNZAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAKNJREFUeNpi/P//P8NgAUwMgwiMOmbUMaOOGXXMqGNGHTPYHMOCTfDs2bMeQKoOiI1BXCBuMjY23kFrdYzoTQigRm8gtQWLG0OBBqyhlTpc0dSOIxTraKwOq2PUcWhWp7E6rI65iUPzTRqrw+qYGhyam2isDtMxwES1CUgFAfFxqBCIDkJPbNRWhzU3jRZ6o44ZdcyoY0YdM+qYUccMUscABBgAUXpEjE/Bs/IAAAAASUVORK5CYII=) no-repeat center center;background-size:16px 16px;vertical-align:middle}.mx-navigationlist{padding:8px}.mx-navigationlist li:hover,.mx-navigationlist li:focus,.mx-navigationlist li.active{color:#FFF;background-color:#3498DB}.mx-navigationlist *{cursor:pointer}.mx-navigationlist .table th,.mx-navigationlist .table td{padding:2px}.mx-progress{position:fixed;top:30%;left:0;right:0;margin:auto;width:250px;max-width:90%;background:#333;opacity:0.8;z-index:5000;border-radius:4px;padding:20px 15px;transition:opacity 0.4s ease-in-out}.mx-progress-hidden{opacity:0}.mx-progress-message{color:#fff;text-align:center;margin-bottom:15px}.mx-progress-empty .mx-progress-message{display:none}.mx-progress-indicator{width:70px;height:10px;margin:auto;background:url(data:image/gif;base64,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)}.mx-reload-notification{position:fixed;z-index:1001;top:0;width:100%;padding:1rem;border:1px solid #048acd;background-color:#0494dc;box-shadow:0 5px 20px rgba(1,37,55,0.16);color:white;text-align:center;font-size:14px}.mx-resizer-n,.mx-resizer-s{position:absolute;left:0;width:100%;height:10px}.mx-resizer-n{top:-5px;cursor:n-resize}.mx-resizer-s{bottom:-5px;cursor:s-resize}.mx-resizer-e,.mx-resizer-w{position:absolute;top:0;width:10px;height:100%}.mx-resizer-e{right:-5px;cursor:e-resize}.mx-resizer-w{left:-5px;cursor:w-resize}.mx-resizer-nw,.mx-resizer-ne,.mx-resizer-sw,.mx-resizer-se{position:absolute;width:20px;height:20px}.mx-resizer-nw,.mx-resizer-ne{top:-5px}.mx-resizer-sw,.mx-resizer-se{bottom:-5px}.mx-resizer-nw,.mx-resizer-sw{left:-5px}.mx-resizer-ne,.mx-resizer-se{right:-5px}.mx-resizer-nw{cursor:nw-resize}.mx-resizer-ne{cursor:ne-resize}.mx-resizer-sw{cursor:sw-resize}.mx-resizer-se{cursor:se-resize}.mx-text{white-space:pre-line}.mx-textarea textarea{resize:none;overflow-y:hidden}.mx-textarea .mx-textarea-noresize{height:auto;resize:vertical;overflow-y:auto}.mx-textarea .mx-textarea-counter{font-size:smaller}.mx-textarea .form-control-static,.mx-textarea .form-group div[class*='textBox']>.control-label,.form-group .mx-textarea div[class*='textBox']>.control-label,.mx-textarea .form-group div[class*='textArea']>.control-label,.form-group .mx-textarea div[class*='textArea']>.control-label,.mx-textarea .form-group div[class*='datePicker']>.control-label,.form-group .mx-textarea div[class*='datePicker']>.control-label{white-space:pre-line}.mx-underlay{position:fixed;top:0;width:100%;height:100%;z-index:1000;opacity:0.5;background-color:#333}.mx-imagezoom{position:absolute;display:table;width:100%;height:100%;background-color:#999}.mx-imagezoom-wrapper{display:table-cell;text-align:center;vertical-align:middle}.mx-imagezoom-image{max-width:none}.mx-dropdown li{padding:3px 20px;cursor:pointer}.mx-dropdown label{padding:0;color:#333;white-space:nowrap;cursor:pointer}.mx-dropdown input{margin:0;vertical-align:middle;cursor:pointer}.mx-dropdown .selected{background:#f8f8f8}.mx-demouserswitcher{position:fixed;top:0;right:0;width:360px;height:100%;z-index:20000;box-shadow:-1px 0 5px rgba(28,59,86,0.2)}.mx-demouserswitcher-content{padding:80px 40px 20px;height:100%;color:#387ea2;font-size:14px;overflow:auto;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOgAAABgCAYAAAAXSj7NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0MzkwOTREMDQ2NEYxMUU0QTQ4MUI5NTNGMUQ3QzE5NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0MzkwOTREMTQ2NEYxMUU0QTQ4MUI5NTNGMUQ3QzE5NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc0REMyMUZGNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc0REMyMjAwNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+g1tRlwAAEFFJREFUeNrsnYl3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) top right no-repeat #1b3149;background-attachment:local}.mx-demouserswitcher ul{padding:0;margin-top:25px;list-style-type:none;border-top:1px solid #496076}.mx-demouserswitcher a{display:block;padding:10px 0;color:#387ea2;border-bottom:1px solid #496076}.mx-demouserswitcher h2{margin:20px 0 5px;color:#5bc4fe;font-size:28px}.mx-demouserswitcher h3{margin:0 0 2px;color:#5bc4fe;font-size:18px;font-weight:normal;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mx-demouserswitcher .active h3{color:#11efdb}.mx-demouserswitcher p{margin-bottom:0}.mx-demouserswitcher-toggle{position:absolute;top:25%;left:-35px;width:35px;height:38px;margin-top:-40px;cursor:pointer;border-top-left-radius:3px;border-bottom-left-radius:3px;box-shadow:-1px 0 5px rgba(28,59,86,0.2);background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3NERDMjFGRDQ2NEMxMUU0QTQ4MUI5NTNGMUQ3QzE5NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3NERDMjFGRTQ2NEMxMUU0QTQ4MUI5NTNGMUQ3QzE5NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc0REMyMUZCNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc0REMyMUZDNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+1ZovNAAAAWdJREFUeNqM1M0rRFEYx/E7Y5qIQpOUbIiymQWysBgvJVJK2VgryZQtKSULZelPsB0LZaNZjJUNK1FskJqUvCS3NAsZc3zP9NziOOfeeepTc8/c8+vc8xZTSnmOakEGKdzgDBXXy54OMsSwjpL6W9cYsrxfZWvcUu7y0VdLUCc+VXgd2oLixpfOIOmF17TtHTOozYuupCxAaNB9DUEfeDUbE8bzEXxZerP00l8hh3LUiHTIMr6N9j2ksYoihv/1deyLSVzKKm1jEW+WfZV2Lf8gskjIcwcWpOM++pHCFPLosgWtoCyd7jCPOjzhGHHLyDPY1achaJhDxRj6rBwJXUuoN0IG8IIv7OiGBjxadvAITuT3rex6c0SbKASflnUcBT3JTThAjyWkGUVsBEEFR5CerzXpNIacrFIrJnCBB3muBvkhB1TP27hM/Lvx3zl6gxHqu6c74kiU8IxGjKJdLrrT3xfdjwADAJaMxP2bvD2BAAAAAElFTkSuQmCC) center center no-repeat #1b3149}.mx-master-detail-screen{top:0;left:0;overflow:auto;width:100%;height:100%;position:absolute;background-color:white;will-change:transform}.mx-master-detail-screen .mx-master-detail-details{padding:15px}.mx-master-detail-screen-header{position:relative;overflow:auto;border-bottom:1px solid #ccc;background-color:#f7f7f7}.mx-master-detail-screen-header-caption{text-align:center;font-size:17px;line-height:24px;font-weight:600}.mx-master-detail-screen-header-close{position:absolute;left:0;top:0;height:100%;width:50px;border:none;background:transparent;color:#007aff}body[dir="rtl"] .mx-master-detail-screen-header-close{right:0;left:auto}.mx-master-detail-screen-header-close::before{content:"\2039";font-size:52px;line-height:24px}.mx-master-detail-content-fix{height:100vh;overflow:hidden}.mx-master-detail-content-hidden{transform:translateX(-200%)}body[dir="rtl"] .mx-master-detail-content-hidden{transform:translateX(200%)}.reportingReport{padding:5px;border:1px solid #ddd;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.reportingReportParameter th{text-align:right}.reportingDateRange table{width:100%;table-layout:fixed}.reportingDateRange th{padding:5px;text-align:right;background-color:#eee}.reportingDateRange td{padding:5px}.mx-reportmatrix table{width:100%;max-width:100%;table-layout:fixed;margin-bottom:0}.mx-reportmatrix th,.mx-reportmatrix td{padding:8px;line-height:1.42857143;vertical-align:bottom;border:1px solid #ddd}.mx-reportmatrix tbody tr:first-child td{border-top:none}.mx-reportmatrix tbody tr:nth-child(2n+1) td{background-color:#f9f9f9}.mx-reportmatrix tbody img{max-width:16px;max-height:16px}@media all and (-ms-high-contrast: none), (-ms-high-contrast: active){.dijitInline{zoom:1;display:inline;vertical-align:auto}.dj_ie6 .dijitComboBox .dijitInputContainer,.dijitInputContainer{zoom:1}.dijitRight{display:inline}.dijitButtonNode{vertical-align:auto}.dijitTextBox{overflow:hidden}.dijitPlaceHolder{filter:""}.dijitValidationTextBoxError input.dijitValidationInner,.dijitSelect input,.dijitTextBox input.dijitArrowButtonInner{text-indent:0 !important;letter-spacing:-5em !important;text-align:right !important}.dj_a11y input.dijitValidationInner,.dj_a11y input.dijitArrowButtonInner{text-align:left !important}.dijitSpinner .dijitSpinnerButtonContainer .dijitUpArrowButton{bottom:50%}.dijitTabContainerTop-tabs .dijitTab,.dijitTabContainerBottom-tabs .dijitTab{zoom:1;display:inline}.dojoDndHorizontal .dojoDndItem{display:inline}}@keyframes slideInUp{from{visibility:visible;transform:translate3d(0, 100%, 0)}to{transform:translate3d(0, 0, 0)}}.animated{animation-duration:0.4s;animation-fill-mode:both}.slideInUp{animation-name:slideInUp}@keyframes slideInDown{from{visibility:visible;transform:translate3d(0, -100%, 0)}to{transform:translate3d(0, 0, 0)}}.slideInDown{animation-name:slideInDown}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.fadeIn{animation-name:fadeIn}.flexcontainer{display:flex;overflow:hidden;flex:1;flex-direction:row}.flexcontainer .flexitem{margin-right:15px}.flexcontainer .flexitem:last-child{margin-right:0}.flexcontainer .flexitem-main{overflow:hidden;flex:1}.flex-row{flex-direction:row !important}.flex-column{flex-direction:column !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-center{align-items:center !important;justify-content:center !important}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.justify-content-around{justify-content:space-around !important}.justify-content-evenly{justify-content:space-evenly !important}.justify-content-stretch{justify-content:stretch !important}.align-children-start{align-items:flex-start !important}.align-children-end{align-items:flex-end !important}.align-children-center{align-items:center !important}.align-children-baseline{align-items:baseline !important}.align-children-stretch{align-items:stretch !important}.align-content-start{align-content:flex-start !important}.align-content-end{align-content:flex-end !important}.align-content-center{align-content:center !important}.align-content-between{align-content:space-between !important}.align-content-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-self-auto{align-self:auto !important}.align-self-start{align-self:flex-start !important}.align-self-end{align-self:flex-end !important}.align-self-center{align-self:center !important}.align-self-baseline{align-self:baseline !important}.align-self-stretch{align-self:stretch !important}.flexitem-1{flex:1 1 1%}.flexitem-2{flex:2 2 1%}.flexitem-3{flex:3 3 1%}.flexitem-4{flex:4 4 1%}.flexitem-5{flex:5 5 1%}.flexitem-6{flex:6 6 1%}.flexitem-7{flex:7 7 1%}.flexitem-8{flex:8 8 1%}.flexitem-9{flex:9 9 1%}.flexitem-10{flex:10 10 1%}.flexitem-11{flex:11 11 1%}.flexitem-12{flex:12 12 1%}.spacing-inner-none{padding:0 !important}.spacing-inner-top-none{padding-top:0 !important}.spacing-inner-right-none{padding-right:0 !important}.spacing-inner-bottom-none{padding-bottom:0 !important}.spacing-inner-left-none{padding-left:0 !important}.spacing-outer-none{margin:0 !important}.spacing-outer-top-none{margin-top:0 !important}.spacing-outer-right-none{margin-right:0 !important}.spacing-outer-bottom-none{margin-bottom:0 !important}.spacing-outer-left-none{margin-left:0 !important}.spacing-inner{padding:5px !important}.spacing-inner-top{padding-top:5px !important}.spacing-inner-right{padding-right:5px !important}.spacing-inner-bottom{padding-bottom:5px !important}.spacing-inner-left{padding-left:5px !important}.spacing-outer{margin:5px !important}.spacing-outer-top{margin-top:5px !important}.spacing-outer-right{margin-right:5px !important}.spacing-outer-bottom{margin-bottom:5px !important}.spacing-outer-left{margin-left:5px !important}@media (max-width: 767px){.spacing-inner-medium{padding:15px !important}}@media (min-width: 768px){.spacing-inner-medium{padding:15px !important}}@media (min-width: 992px){.spacing-inner-medium{padding:15px !important}}@media (max-width: 767px){.spacing-inner-top-medium{padding-top:15px !important}}@media (min-width: 768px){.spacing-inner-top-medium{padding-top:15px !important}}@media (min-width: 992px){.spacing-inner-top-medium{padding-top:15px !important}}@media (max-width: 767px){.spacing-inner-right-medium{padding-right:15px !important}}@media (min-width: 768px){.spacing-inner-right-medium{padding-right:15px !important}}@media (min-width: 992px){.spacing-inner-right-medium{padding-right:15px !important}}@media (max-width: 767px){.spacing-inner-bottom-medium{padding-bottom:15px !important}}@media (min-width: 768px){.spacing-inner-bottom-medium{padding-bottom:15px !important}}@media (min-width: 992px){.spacing-inner-bottom-medium{padding-bottom:15px !important}}@media (max-width: 767px){.spacing-inner-left-medium{padding-left:15px !important}}@media (min-width: 768px){.spacing-inner-left-medium{padding-left:15px !important}}@media (min-width: 992px){.spacing-inner-left-medium{padding-left:15px !important}}@media (max-width: 767px){.spacing-outer-medium{margin:15px !important}}@media (min-width: 768px){.spacing-outer-medium{margin:15px !important}}@media (min-width: 992px){.spacing-outer-medium{margin:15px !important}}@media (max-width: 767px){.spacing-outer-top-medium{margin-top:15px !important}}@media (min-width: 768px){.spacing-outer-top-medium{margin-top:15px !important}}@media (min-width: 992px){.spacing-outer-top-medium{margin-top:15px !important}}@media (max-width: 767px){.spacing-outer-right-medium{margin-right:15px !important}}@media (min-width: 768px){.spacing-outer-right-medium{margin-right:15px !important}}@media (min-width: 992px){.spacing-outer-right-medium{margin-right:15px !important}}@media (max-width: 767px){.spacing-outer-bottom-medium{margin-bottom:15px !important}}@media (min-width: 768px){.spacing-outer-bottom-medium{margin-bottom:15px !important}}@media (min-width: 992px){.spacing-outer-bottom-medium{margin-bottom:15px !important}}@media (max-width: 767px){.spacing-outer-left-medium{margin-left:15px !important}}@media (min-width: 768px){.spacing-outer-left-medium{margin-left:15px !important}}@media (min-width: 992px){.spacing-outer-left-medium{margin-left:15px !important}}@media (max-width: 767px){.spacing-inner-large{padding:15px !important}}@media (min-width: 768px){.spacing-inner-large{padding:30px !important}}@media (min-width: 992px){.spacing-inner-large{padding:30px !important}}@media (max-width: 767px){.spacing-inner-top-large{padding-top:15px !important}}@media (min-width: 768px){.spacing-inner-top-large{padding-top:30px !important}}@media (min-width: 992px){.spacing-inner-top-large{padding-top:30px !important}}@media (max-width: 767px){.spacing-inner-right-large{padding-right:15px !important}}@media (min-width: 768px){.spacing-inner-right-large{padding-right:30px !important}}@media (min-width: 992px){.spacing-inner-right-large{padding-right:30px !important}}@media (max-width: 767px){.spacing-inner-bottom-large{padding-bottom:15px !important}}@media (min-width: 768px){.spacing-inner-bottom-large{padding-bottom:30px !important}}@media (min-width: 992px){.spacing-inner-bottom-large{padding-bottom:30px !important}}@media (max-width: 767px){.spacing-inner-left-large{padding-left:15px !important}}@media (min-width: 768px){.spacing-inner-left-large{padding-left:30px !important}}@media (min-width: 992px){.spacing-inner-left-large{padding-left:30px !important}}@media (max-width: 767px){.spacing-outer-large{margin:15px !important}}@media (min-width: 768px){.spacing-outer-large{margin:30px !important}}@media (min-width: 992px){.spacing-outer-large{margin:30px !important}}@media (max-width: 767px){.spacing-outer-top-large{margin-top:15px !important}}@media (min-width: 768px){.spacing-outer-top-large{margin-top:30px !important}}@media (min-width: 992px){.spacing-outer-top-large{margin-top:30px !important}}@media (max-width: 767px){.spacing-outer-right-large{margin-right:15px !important}}@media (min-width: 768px){.spacing-outer-right-large{margin-right:30px !important}}@media (min-width: 992px){.spacing-outer-right-large{margin-right:30px !important}}@media (max-width: 767px){.spacing-outer-bottom-large{margin-bottom:15px !important}}@media (min-width: 768px){.spacing-outer-bottom-large{margin-bottom:30px !important}}@media (min-width: 992px){.spacing-outer-bottom-large{margin-bottom:30px !important}}@media (max-width: 767px){.spacing-outer-left-large{margin-left:15px !important}}@media (min-width: 768px){.spacing-outer-left-large{margin-left:30px !important}}@media (min-width: 992px){.spacing-outer-left-large{margin-left:30px !important}}@media (max-width: 767px){.spacing-inner-layout{padding:15px 15px 15px 15px !important}}@media (min-width: 768px){.spacing-inner-layout{padding:30px 30px 30px 30px !important}}@media (min-width: 992px){.spacing-inner-layout{padding:30px 30px 30px 30px !important}}@media (max-width: 767px){.spacing-inner-top-layout{padding-top:15px !important}}@media (min-width: 768px){.spacing-inner-top-layout{padding-top:30px !important}}@media (min-width: 992px){.spacing-inner-top-layout{padding-top:30px !important}}@media (max-width: 767px){.spacing-inner-right-layout{padding-right:15px !important}}@media (min-width: 768px){.spacing-inner-right-layout{padding-right:30px !important}}@media (min-width: 992px){.spacing-inner-right-layout{padding-right:30px !important}}@media (max-width: 767px){.spacing-inner-bottom-layout{padding-bottom:15px !important}}@media (min-width: 768px){.spacing-inner-bottom-layout{padding-bottom:30px !important}}@media (min-width: 992px){.spacing-inner-bottom-layout{padding-bottom:30px !important}}@media (max-width: 767px){.spacing-inner-left-layout{padding-left:15px !important}}@media (min-width: 768px){.spacing-inner-left-layout{padding-left:30px !important}}@media (min-width: 992px){.spacing-inner-left-layout{padding-left:30px !important}}@media (max-width: 767px){.spacing-outer-layout{margin:15px 15px 15px 15px !important}}@media (min-width: 768px){.spacing-outer-layout{margin:30px 30px 30px 30px !important}}@media (min-width: 992px){.spacing-outer-layout{margin:30px 30px 30px 30px !important}}@media (max-width: 767px){.spacing-outer-top-layout{margin-top:15px !important}}@media (min-width: 768px){.spacing-outer-top-layout{margin-top:30px !important}}@media (min-width: 992px){.spacing-outer-top-layout{margin-top:30px !important}}@media (max-width: 767px){.spacing-outer-right-layout{margin-right:15px !important}}@media (min-width: 768px){.spacing-outer-right-layout{margin-right:30px !important}}@media (min-width: 992px){.spacing-outer-right-layout{margin-right:30px !important}}@media (max-width: 767px){.spacing-outer-bottom-layout{margin-bottom:15px !important}}@media (min-width: 768px){.spacing-outer-bottom-layout{margin-bottom:30px !important}}@media (min-width: 992px){.spacing-outer-bottom-layout{margin-bottom:30px !important}}@media (max-width: 767px){.spacing-outer-left-layout{margin-left:15px !important}}@media (min-width: 768px){.spacing-outer-left-layout{margin-left:30px !important}}@media (min-width: 992px){.spacing-outer-left-layout{margin-left:30px !important}}.mx-scrollcontainer .mx-placeholder{width:100%;height:100%}@media (max-width: 767px){.mx-scrollcontainer .mx-placeholder .mx-layoutgrid,.mx-scrollcontainer .mx-placeholder .mx-layoutgrid-fluid{padding:15px 15px 15px 15px}}@media (min-width: 768px){.mx-scrollcontainer .mx-placeholder .mx-layoutgrid,.mx-scrollcontainer .mx-placeholder .mx-layoutgrid-fluid{padding:30px 30px 30px 30px}}@media (min-width: 992px){.mx-scrollcontainer .mx-placeholder .mx-layoutgrid,.mx-scrollcontainer .mx-placeholder .mx-layoutgrid-fluid{padding:30px 30px 30px 30px}}.mx-scrollcontainer .mx-placeholder .mx-layoutgrid .mx-layoutgrid,.mx-scrollcontainer .mx-placeholder .mx-layoutgrid .mx-layoutgrid-fluid,.mx-scrollcontainer .mx-placeholder .mx-layoutgrid-fluid .mx-layoutgrid,.mx-scrollcontainer .mx-placeholder .mx-layoutgrid-fluid .mx-layoutgrid-fluid{padding:0}html{height:100%}body{min-height:100%;color:#555;background-color:#fff;font-family:"Open Sans",sans-serif;font-size:14px;font-weight:normal;line-height:1.42857}a{-moz-transition:0.25s;-o-transition:0.25s;-webkit-transition:0.25s;transition:0.25s;color:#0595DB;-webkit-backface-visibility:hidden}a:hover{text-decoration:underline;color:#036290}a:focus{outline:thin dotted}a:active,a:hover{outline:0}input:focus,button:focus,.mx-link:focus{outline:0}div[tabindex]{outline:0}.disabled,[disabled]{cursor:not-allowed;-webkit-box-shadow:none;box-shadow:none;filter:alpha(opacity=65)}body{height:100%}.loginpage{display:flex;height:100%}.loginpage-logo{position:absolute;top:30px;right:30px;width:120px}.loginpage-left{display:none}.loginpage-right{display:flex;flex:1;flex-direction:column;justify-content:space-around}.loginpage-formwrapper{width:400px;margin:0 auto}.loginpage-form .alert{display:none}.loginpage-form .btn{border-radius:40px}.loginpage-form .form-group{width:100%;align-items:center}.loginpage-form .form-group .control-label{flex:4;margin-bottom:0;font-size:14px;font-weight:500}.loginpage-form .form-group .inputwrapper{flex:8;position:relative;width:100%}.loginpage-form .form-group .inputwrapper .glyphicon{position:absolute;top:50%;left:10px;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);-o-transform:translateY(-50%);transform:translateY(-50%)}.loginpage-form .form-group .inputwrapper .glyphicon:before{-webkit-transition:color 0.4s;-moz-transition:color 0.4s;-o-transition:color 0.4s;transition:color 0.4s}.loginpage-form .form-group .inputwrapper .glyphicon-eye-open:hover,.loginpage-form .form-group .inputwrapper .glyphicon-eye-close:hover{cursor:pointer;color:#0595DB}.loginpage-form .form-group .inputwrapper .form-control{padding:8px 10px 8px 45px}.loginpage-form .form-group .inputwrapper .form-control:focus ~ .glyphicon:before{color:#0595DB}.loginpage-alternativelabel{display:flex;align-items:center;flex-direction:row;flex-wrap:nowrap;justify-content:space-between;margin:25px 0px}.loginpage-alternativelabel hr{flex:1;margin:20px 0 20px 10px;border:0;border-color:#d8d8d8;border-top:1px solid #eeeeee}.loginpage-signin{color:#555555}@media screen and (min-width: 1200px){.loginpage-logo{width:150px}.loginpage-left{position:relative;display:block;flex:1;width:100%;height:100%}.loginpage-image{height:100%;animation:makePointer 1s ease-out both;background:left/cover no-repeat url("../../../resources/work-do-more.jpeg");background:left/cover no-repeat linear-gradient(to right, rgba(5,149,219,0.9) 0%, rgba(5,149,219,0.6) 100%),left/cover no-repeat url("../../../resources/work-do-more.jpeg");background:left/cover no-repeat -moz-linear-gradient(left, rgba(5,149,219,0.9) 0%, rgba(5,149,219,0.6) 100%),left/cover no-repeat url("../../../resources/work-do-more.jpeg");background:left/cover no-repeat -webkit-gradient(linear, left bottom, right bottom, color-stop(0%, rgba(5,149,219,0.9)), color-stop(100%, rgba(5,149,219,0.6))),left/cover no-repeat url("../../../resources/work-do-more.jpeg");background:left/cover no-repeat -webkit-linear-gradient(left, rgba(5,149,219,0.9) 0%, rgba(5,149,219,0.6) 100%),left/cover no-repeat url("../../../resources/work-do-more.jpeg");background:left/cover no-repeat -o-linear-gradient(left, rgba(5,149,219,0.9) 0%, rgba(5,149,219,0.6) 100%),left/cover no-repeat url("../../../resources/work-do-more.jpeg");background:left/cover no-repeat -ms-linear-gradient(left, rgba(5,149,219,0.9) 0%, rgba(5,149,219,0.6) 100%),left/cover no-repeat url("../../../resources/work-do-more.jpeg");-webkit-clip-path:polygon(0% 0%, 100% 0, 100% 50%, 100% 100%, 0% 100%);clip-path:polygon(0% 0%, 100% 0, 100% 50%, 100% 100%, 0% 100%)}.loginpage-formwrapper{width:400px}}@keyframes makePointer{100%{-webkit-clip-path:polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%);clip-path:polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%)}}@-webkit-keyframes makePointer{100%{-webkit-clip-path:polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%);clip-path:polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%)}}.form-control{display:flex;flex:1;min-width:50px;height:auto;padding:8px 10px;transition:border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;color:#555;border:1px solid #D7D7D7;border-radius:4px;background-color:#fff;background-image:none;box-shadow:none;font-size:14px;line-height:1.42857;appearance:none;-moz-appearance:none;-webkit-appearance:none}.form-control:not([readonly]):focus{border-color:#0595DB;outline:0;background-color:#fff;box-shadow:none}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{opacity:1;background-color:#EEEEEE}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}.form-control-lined{border:0;border-bottom:1px solid #D7D7D7;border-radius:0;background-color:transparent}.form-control-lined:focus{background-color:transparent}.form-control-static,.form-group div[class*='textBox']>.control-label,.form-group div[class*='textArea']>.control-label,.form-group div[class*='datePicker']>.control-label{overflow:hidden;flex:1;min-height:auto;padding:8px 10px;border-bottom:1px solid #F0F0EE;font-size:14px;line-height:1.42857}.form-control-static+.control-label,.form-group div[class*='textBox']>.control-label+.control-label,.form-group div[class*='textArea']>.control-label+.control-label,.form-group div[class*='datePicker']>.control-label+.control-label{margin-left:8px}select.form-control{padding-right:30px;background-image:url("data:image/svg+xml;utf8,");background-repeat:no-repeat;background-position:calc(100% - 10px) center;appearance:none;-moz-appearance:none;-webkit-appearance:none}.form-control.mx-selectbox{align-items:center;flex-direction:row-reverse;justify-content:space-between}.mx-textarea .control-label{height:auto}textarea.form-control{flex-basis:auto}.mx-compound-control{display:flex;flex:1;flex-wrap:wrap;max-width:100%}.mx-compound-control .mx-validation-message{flex-basis:100%;margin-top:5px}.form-group{display:flex;flex-direction:row;margin-bottom:15px}.form-group>div[class*='col-']{display:flex;align-items:center;flex-wrap:wrap}.form-group>[class*='col-']{padding-right:15px;padding-left:15px}.form-group .control-label{overflow:hidden;margin-bottom:5px;text-overflow:ellipsis;color:#666;font-size:14px;font-weight:600}.form-group .mx-validation-message{flex-basis:100%}.form-group.no-columns:not(.label-after){flex-direction:column}.form-group.label-after .form-control-static,.form-group.label-after div[class*='textBox']>.control-label,.form-group.label-after div[class*='textArea']>.control-label,.form-group.label-after div[class*='datePicker']>.control-label{flex:unset}.form-group.label-after .control-label{margin-bottom:0}.mx-dateinput,.mx-referenceselector,.mx-referencesetselector{flex:1}.dj_webkit.dj_ios .form-control{transform:translateZ(0)}@media only screen and (min-width: 768px){.form-horizontal .control-label{margin-bottom:0;padding-top:8px;padding-bottom:8px;line-height:1.42857}}@media only screen and (max-width: 767px){.form-group{flex-direction:column}}@media only screen and (max-device-width: 1024px) and (-webkit-min-device-pixel-ratio: 0){input[type='date'],input[type='time'],input[type='datetime-local'],input[type='month']{line-height:1}input[type='time']:not(.has-value):before,input[type='date']:not(.has-value):before,input[type='month']:not(.has-value):before,input[type='datetime-local']:not(.has-value):before{margin-right:0.5em;content:attr(placeholder) !important;color:#AAAAAA}input[type='time'].has-value:before,input[type='date'].has-value:before,input[type='month'].has-value:before,input[type='datetime-local'].has-value:before{content:'' !important}}@media (-ms-high-contrast: none), (-ms-high-contrast: active){.form-group{display:block}}[dir='rtl'] select.form-control{padding-right:30px;padding-left:0;background-position:10px center}.alert{margin-top:0;padding:15px;border:0;border-radius:4px}.alert-bordered{border:1px solid}.alert-success{color:#477901;border-color:#538d01;background-color:#e4f4cc}.alert-info{color:#2b6a94;border-color:#327bad;background-color:#daeffd}.alert-warning{color:#955d11;border-color:#ae6d14;background-color:#feebd2}.alert-danger{color:#8e1116;border-color:#a61419;background-color:#fbd2d3}.has-error .alert{margin-top:8px;margin-bottom:0}.background-main{background-color:#fff !important}.background-secondary{background-color:#F5F8FD !important}.background-default{background-color:#ddd !important}.background-default-darker{background-color:#858585 !important}.background-default-dark{background-color:#9b9b9b !important}.background-default-light{background-color:#ebebeb !important}.background-default-lighter{background-color:#f8f8f8 !important}.background-inverse{background-color:#252C36 !important}.background-inverse-darker{background-color:#161a20 !important}.background-inverse-dark{background-color:#1a1f26 !important}.background-inverse-light{background-color:#7c8086 !important}.background-inverse-lighter{background-color:#d3d5d7 !important}.background-primary{background-color:#0595DB !important}.background-primary-darker{background-color:#035983 !important}.background-primary-dark{background-color:#046899 !important}.background-primary-light{background-color:#69bfe9 !important}.background-primary-lighter{background-color:#cdeaf8 !important}.background-info{background-color:#48B0F7 !important}.background-info-darker{background-color:#2b6a94 !important}.background-info-dark{background-color:#327bad !important}.background-info-light{background-color:#91d0fa !important}.background-info-lighter{background-color:#daeffd !important}.background-success{background-color:#76CA02 !important}.background-success-darker{background-color:#477901 !important}.background-success-dark{background-color:#538d01 !important}.background-success-light{background-color:#addf67 !important}.background-success-lighter{background-color:#e4f4cc !important}.background-warning{background-color:#F99B1D !important}.background-warning-darker{background-color:#955d11 !important}.background-warning-dark{background-color:#ae6d14 !important}.background-warning-light{background-color:#fbc377 !important}.background-warning-lighter{background-color:#feebd2 !important}.background-danger{background-color:#ED1C24 !important}.background-danger-darker{background-color:#8e1116 !important}.background-danger-dark{background-color:#a61419 !important}.background-danger-light{background-color:#f4777c !important}.background-danger-lighter{background-color:#fbd2d3 !important}.background-brand-gradient{background-image:linear-gradient(152deg, #0CC7F0 0%, #087ECC 51%, #077AC9 55%, #0659B9 78%) !important}.btn,.mx-button{display:inline-block;margin-bottom:0;padding:0.6em 1em;cursor:pointer;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none;-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;text-align:center;vertical-align:middle;white-space:nowrap;color:#0595DB;border:1px solid #ddd;border-radius:4px;background-color:#fff;background-image:none;box-shadow:none;text-shadow:none;font-size:14px;line-height:1.42857}.btn:hover,.btn:focus,.btn:active,.btn:active:focus,.mx-button:hover,.mx-button:focus,.mx-button:active,.mx-button:active:focus{outline:none;box-shadow:none}.btn[aria-disabled],.mx-button[aria-disabled]{cursor:not-allowed;pointer-events:none;opacity:0.65;filter:alpha(opacity=65)}.mx-link{padding:0;color:#0595DB}.mx-link[aria-disabled='true']{cursor:not-allowed;pointer-events:none;opacity:0.65;filter:alpha(opacity=65)}.btn img,.mx-button img,.mx-link img{height:18px;margin-right:5px;vertical-align:text-top}.profile-phone .btn:active,.profile-phone .mx-link:active{-webkit-transform:translateY(1px);transform:translateY(1px)}.btn,.btn-default{color:#0595DB;border-color:#ddd;background-color:#fff}.btn:hover,.btn:focus,.btn:active,.btn.active,.open>.btn.dropdown-toggle,.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open>.btn-default.dropdown-toggle{color:#0595DB;border-color:#ddd;background-color:#ddd}.btn:active,.btn.active,.open>.btn.dropdown-toggle,.btn-default:active,.btn-default.active,.open>.btn-default.dropdown-toggle{background-image:none}.btn.disabled,.btn.disabled:hover,.btn.disabled:focus,.btn.disabled:active,.btn.disabled.active,.btn[disabled],.btn[disabled]:hover,.btn[disabled]:focus,.btn[disabled]:active,.btn[disabled].active,.btn[aria-disabled],.btn[aria-disabled]:hover,.btn[aria-disabled]:focus,.btn[aria-disabled]:active,.btn[aria-disabled].active,.btn fieldset[disabled],.btn fieldset[disabled]:hover,.btn fieldset[disabled]:focus,.btn fieldset[disabled]:active,.btn fieldset[disabled].active,.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,.btn-default[aria-disabled],.btn-default[aria-disabled]:hover,.btn-default[aria-disabled]:focus,.btn-default[aria-disabled]:active,.btn-default[aria-disabled].active,.btn-default fieldset[disabled],.btn-default fieldset[disabled]:hover,.btn-default fieldset[disabled]:focus,.btn-default fieldset[disabled]:active,.btn-default fieldset[disabled].active{border-color:#ddd;background-color:#fff}.btn.btn-bordered,.btn-default.btn-bordered{background-color:transparent}.btn.btn-bordered:hover,.btn.btn-bordered:focus,.btn.btn-bordered:active,.btn.btn-bordered.active,.open>.btn.btn-bordered.dropdown-toggle,.btn-default.btn-bordered:hover,.btn-default.btn-bordered:focus,.btn-default.btn-bordered:active,.btn-default.btn-bordered.active,.open>.btn-default.btn-bordered.dropdown-toggle{color:#0595DB;border-color:#ddd;background-color:#ddd}.btn.btn-link,.btn-default.btn-link{text-decoration:none;border-color:transparent;background-color:transparent}.btn.btn-link:hover,.btn-default.btn-link:hover{border-color:#eee;background-color:#eee}.btn-primary,.datagrid-fullsearch.mx-grid .mx-grid-search-button{color:#fff;border-color:#0595DB;background-color:#0595DB}.btn-primary:hover,.datagrid-fullsearch.mx-grid .mx-grid-search-button:hover,.btn-primary:focus,.datagrid-fullsearch.mx-grid .mx-grid-search-button:focus,.btn-primary:active,.datagrid-fullsearch.mx-grid .mx-grid-search-button:active,.btn-primary.active,.datagrid-fullsearch.mx-grid .active.mx-grid-search-button,.open>.btn-primary.dropdown-toggle,.datagrid-fullsearch.mx-grid .open>.dropdown-toggle.mx-grid-search-button{color:#fff;border-color:#0477af;background-color:#0477af}.btn-primary:active,.datagrid-fullsearch.mx-grid .mx-grid-search-button:active,.btn-primary.active,.datagrid-fullsearch.mx-grid .active.mx-grid-search-button,.open>.btn-primary.dropdown-toggle,.datagrid-fullsearch.mx-grid .open>.dropdown-toggle.mx-grid-search-button{background-image:none}.btn-primary.disabled,.datagrid-fullsearch.mx-grid .disabled.mx-grid-search-button,.btn-primary.disabled:hover,.datagrid-fullsearch.mx-grid .disabled.mx-grid-search-button:hover,.btn-primary.disabled:focus,.datagrid-fullsearch.mx-grid .disabled.mx-grid-search-button:focus,.btn-primary.disabled:active,.datagrid-fullsearch.mx-grid .disabled.mx-grid-search-button:active,.btn-primary.disabled.active,.datagrid-fullsearch.mx-grid .disabled.active.mx-grid-search-button,.btn-primary[disabled],.datagrid-fullsearch.mx-grid .mx-grid-search-button[disabled],.btn-primary[disabled]:hover,.datagrid-fullsearch.mx-grid .mx-grid-search-button[disabled]:hover,.btn-primary[disabled]:focus,.datagrid-fullsearch.mx-grid .mx-grid-search-button[disabled]:focus,.btn-primary[disabled]:active,.datagrid-fullsearch.mx-grid .mx-grid-search-button[disabled]:active,.btn-primary[disabled].active,.datagrid-fullsearch.mx-grid .mx-grid-search-button[disabled].active,.btn-primary[aria-disabled],.datagrid-fullsearch.mx-grid .mx-grid-search-button[aria-disabled],.btn-primary[aria-disabled]:hover,.datagrid-fullsearch.mx-grid .mx-grid-search-button[aria-disabled]:hover,.btn-primary[aria-disabled]:focus,.datagrid-fullsearch.mx-grid .mx-grid-search-button[aria-disabled]:focus,.btn-primary[aria-disabled]:active,.datagrid-fullsearch.mx-grid .mx-grid-search-button[aria-disabled]:active,.btn-primary[aria-disabled].active,.datagrid-fullsearch.mx-grid .mx-grid-search-button[aria-disabled].active,.btn-primary fieldset[disabled],.datagrid-fullsearch.mx-grid .mx-grid-search-button fieldset[disabled],.btn-primary fieldset[disabled]:hover,.datagrid-fullsearch.mx-grid .mx-grid-search-button fieldset[disabled]:hover,.btn-primary fieldset[disabled]:focus,.datagrid-fullsearch.mx-grid .mx-grid-search-button fieldset[disabled]:focus,.btn-primary fieldset[disabled]:active,.datagrid-fullsearch.mx-grid .mx-grid-search-button fieldset[disabled]:active,.btn-primary fieldset[disabled].active,.datagrid-fullsearch.mx-grid .mx-grid-search-button fieldset[disabled].active{border-color:#0595DB;background-color:#0595DB}.btn-primary.btn-bordered,.datagrid-fullsearch.mx-grid .btn-bordered.mx-grid-search-button{background-color:transparent;color:#0595DB}.btn-primary.btn-bordered:hover,.datagrid-fullsearch.mx-grid .btn-bordered.mx-grid-search-button:hover,.btn-primary.btn-bordered:focus,.datagrid-fullsearch.mx-grid .btn-bordered.mx-grid-search-button:focus,.btn-primary.btn-bordered:active,.datagrid-fullsearch.mx-grid .btn-bordered.mx-grid-search-button:active,.btn-primary.btn-bordered.active,.datagrid-fullsearch.mx-grid .btn-bordered.active.mx-grid-search-button,.open>.btn-primary.btn-bordered.dropdown-toggle,.datagrid-fullsearch.mx-grid .open>.btn-bordered.dropdown-toggle.mx-grid-search-button{color:#fff;border-color:#0595DB;background-color:#0595DB}.btn-primary.btn-link,.datagrid-fullsearch.mx-grid .btn-link.mx-grid-search-button{text-decoration:none;border-color:transparent;background-color:transparent;color:#0595DB}.btn-primary.btn-link:hover,.datagrid-fullsearch.mx-grid .btn-link.mx-grid-search-button:hover{border-color:#eee;background-color:#eee}.btn-inverse{color:#fff;border-color:#252C36;background-color:#252C36}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.open>.btn-inverse.dropdown-toggle{color:#fff;border-color:#51565e;background-color:#51565e}.btn-inverse:active,.btn-inverse.active,.open>.btn-inverse.dropdown-toggle{background-image:none}.btn-inverse.disabled,.btn-inverse.disabled:hover,.btn-inverse.disabled:focus,.btn-inverse.disabled:active,.btn-inverse.disabled.active,.btn-inverse[disabled],.btn-inverse[disabled]:hover,.btn-inverse[disabled]:focus,.btn-inverse[disabled]:active,.btn-inverse[disabled].active,.btn-inverse[aria-disabled],.btn-inverse[aria-disabled]:hover,.btn-inverse[aria-disabled]:focus,.btn-inverse[aria-disabled]:active,.btn-inverse[aria-disabled].active,.btn-inverse fieldset[disabled],.btn-inverse fieldset[disabled]:hover,.btn-inverse fieldset[disabled]:focus,.btn-inverse fieldset[disabled]:active,.btn-inverse fieldset[disabled].active{border-color:#252C36;background-color:#252C36}.btn-inverse.btn-bordered{background-color:transparent;color:#252C36}.btn-inverse.btn-bordered:hover,.btn-inverse.btn-bordered:focus,.btn-inverse.btn-bordered:active,.btn-inverse.btn-bordered.active,.open>.btn-inverse.btn-bordered.dropdown-toggle{color:#fff;border-color:#252C36;background-color:#252C36}.btn-inverse.btn-link{text-decoration:none;border-color:transparent;background-color:transparent;color:#252C36}.btn-inverse.btn-link:hover{border-color:#eee;background-color:#eee}.btn-success{color:#fff;border-color:#76CA02;background-color:#76CA02}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open>.btn-success.dropdown-toggle{color:#fff;border-color:#5ea202;background-color:#5ea202}.btn-success:active,.btn-success.active,.open>.btn-success.dropdown-toggle{background-image:none}.btn-success.disabled,.btn-success.disabled:hover,.btn-success.disabled:focus,.btn-success.disabled:active,.btn-success.disabled.active,.btn-success[disabled],.btn-success[disabled]:hover,.btn-success[disabled]:focus,.btn-success[disabled]:active,.btn-success[disabled].active,.btn-success[aria-disabled],.btn-success[aria-disabled]:hover,.btn-success[aria-disabled]:focus,.btn-success[aria-disabled]:active,.btn-success[aria-disabled].active,.btn-success fieldset[disabled],.btn-success fieldset[disabled]:hover,.btn-success fieldset[disabled]:focus,.btn-success fieldset[disabled]:active,.btn-success fieldset[disabled].active{border-color:#76CA02;background-color:#76CA02}.btn-success.btn-bordered{background-color:transparent;color:#76CA02}.btn-success.btn-bordered:hover,.btn-success.btn-bordered:focus,.btn-success.btn-bordered:active,.btn-success.btn-bordered.active,.open>.btn-success.btn-bordered.dropdown-toggle{color:#fff;border-color:#76CA02;background-color:#76CA02}.btn-success.btn-link{text-decoration:none;border-color:transparent;background-color:transparent;color:#76CA02}.btn-success.btn-link:hover{border-color:#eee;background-color:#eee}.btn-info{color:#fff;border-color:#48B0F7;background-color:#48B0F7}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open>.btn-info.dropdown-toggle{color:#fff;border-color:#3a8dc6;background-color:#3a8dc6}.btn-info:active,.btn-info.active,.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,.btn-info[aria-disabled],.btn-info[aria-disabled]:hover,.btn-info[aria-disabled]:focus,.btn-info[aria-disabled]:active,.btn-info[aria-disabled].active,.btn-info fieldset[disabled],.btn-info fieldset[disabled]:hover,.btn-info fieldset[disabled]:focus,.btn-info fieldset[disabled]:active,.btn-info fieldset[disabled].active{border-color:#48B0F7;background-color:#48B0F7}.btn-info.btn-bordered{background-color:transparent;color:#48B0F7}.btn-info.btn-bordered:hover,.btn-info.btn-bordered:focus,.btn-info.btn-bordered:active,.btn-info.btn-bordered.active,.open>.btn-info.btn-bordered.dropdown-toggle{color:#fff;border-color:#48B0F7;background-color:#48B0F7}.btn-info.btn-link{text-decoration:none;border-color:transparent;background-color:transparent;color:#48B0F7}.btn-info.btn-link:hover{border-color:#eee;background-color:#eee}.btn-warning{color:#fff;border-color:#F99B1D;background-color:#F99B1D}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open>.btn-warning.dropdown-toggle{color:#fff;border-color:#c77c17;background-color:#c77c17}.btn-warning:active,.btn-warning.active,.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,.btn-warning[aria-disabled],.btn-warning[aria-disabled]:hover,.btn-warning[aria-disabled]:focus,.btn-warning[aria-disabled]:active,.btn-warning[aria-disabled].active,.btn-warning fieldset[disabled],.btn-warning fieldset[disabled]:hover,.btn-warning fieldset[disabled]:focus,.btn-warning fieldset[disabled]:active,.btn-warning fieldset[disabled].active{border-color:#F99B1D;background-color:#F99B1D}.btn-warning.btn-bordered{background-color:transparent;color:#F99B1D}.btn-warning.btn-bordered:hover,.btn-warning.btn-bordered:focus,.btn-warning.btn-bordered:active,.btn-warning.btn-bordered.active,.open>.btn-warning.btn-bordered.dropdown-toggle{color:#fff;border-color:#F99B1D;background-color:#F99B1D}.btn-warning.btn-link{text-decoration:none;border-color:transparent;background-color:transparent;color:#F99B1D}.btn-warning.btn-link:hover{border-color:#eee;background-color:#eee}.btn-danger{color:#fff;border-color:#ED1C24;background-color:#ED1C24}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open>.btn-danger.dropdown-toggle{color:#fff;border-color:#be161d;background-color:#be161d}.btn-danger:active,.btn-danger.active,.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,.btn-danger[aria-disabled],.btn-danger[aria-disabled]:hover,.btn-danger[aria-disabled]:focus,.btn-danger[aria-disabled]:active,.btn-danger[aria-disabled].active,.btn-danger fieldset[disabled],.btn-danger fieldset[disabled]:hover,.btn-danger fieldset[disabled]:focus,.btn-danger fieldset[disabled]:active,.btn-danger fieldset[disabled].active{border-color:#ED1C24;background-color:#ED1C24}.btn-danger.btn-bordered{background-color:transparent;color:#ED1C24}.btn-danger.btn-bordered:hover,.btn-danger.btn-bordered:focus,.btn-danger.btn-bordered:active,.btn-danger.btn-bordered.active,.open>.btn-danger.btn-bordered.dropdown-toggle{color:#fff;border-color:#ED1C24;background-color:#ED1C24}.btn-danger.btn-link{text-decoration:none;border-color:transparent;background-color:transparent;color:#ED1C24}.btn-danger.btn-link:hover{border-color:#eee;background-color:#eee}.btn-lg{font-size:16px}.btn-lg img{height:calc(12px + 4px)}.btn-sm{font-size:12px}.btn-sm img{height:calc(12px + 4px)}.btn-image{padding:0;vertical-align:middle;border-style:none;background-color:transparent}.btn-image img{display:block;height:auto}.btn-image:hover,.btn-image:focus{background-color:transparent}.btn-icon>img,.btn-icon>.glyphicon{margin:0}.btn-icon-right>img,.btn-icon-right>.glyphicon{float:right;margin-left:5px}.btn-icon-top{padding-right:0;padding-left:0}.btn-icon-top>img,.btn-icon-top>.glyphicon{display:block;margin:0 0 5px 0}.mx-checkbox.label-after{flex-wrap:wrap}.mx-checkbox.label-after .control-label{padding:0}input[type="checkbox"]{position:relative !important;width:16px;height:16px;margin:0 !important;cursor:pointer;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;-webkit-user-select:none;user-select:none;appearance:none;-moz-appearance:none;-webkit-appearance:none}input[type='checkbox']::-ms-check{color:#D7D7D7;border-color:#D7D7D7;border-radius:4px;background-color:#fff}input[type='checkbox']:focus::-ms-check,input[type='checkbox']:checked::-ms-check{color:#0595DB;border-color:#0595DB;background-color:#fff}input[type='checkbox']:before,input[type='checkbox']:after{position:absolute;display:block;transition:all 0.3s ease}input[type='checkbox']:before{width:100%;height:100%;content:'';border:1px solid #D7D7D7;border-radius:4px;background-color:transparent}input[type='checkbox']:after{width:8px;height:4px;margin:5px 4px;transform:rotate(-45deg);pointer-events:none;border:2px solid #FFFFFF;border-top:0;border-right:0}input[type='checkbox']:not(:disabled):not(:checked):hover:after{content:'';border-color:#D7D7D7}input[type='checkbox']:checked:before{border-color:#0595DB;background-color:#0595DB}input[type='checkbox']:checked:after{content:''}input[type='checkbox']:disabled:before{background-color:#eee}input[type='checkbox']:checked:disabled:before{border-color:transparent;background-color:rgba(5,149,219,0.4)}input[type='checkbox']:disabled:after,input[type='checkbox']:checked:disabled:after{border-color:#eee}input[type='checkbox']+.control-label{margin-left:8px}.mx-grid{padding:0px;border:0;border-radius:0}.mx-grid .mx-grid-controlbar{margin:10px 0}.mx-grid .mx-grid-controlbar .mx-grid-pagingbar .mx-button{padding:6px;color:#888;border-color:rgba(0,0,0,0);background-color:rgba(0,0,0,0)}.mx-grid .mx-grid-controlbar .mx-grid-pagingbar .mx-button:hover{color:#0595DB;border-color:rgba(0,0,0,0);background-color:rgba(0,0,0,0)}.mx-grid .mx-grid-controlbar .mx-grid-pagingbar .mx-grid-paging-status{padding:0 8px 8px}.mx-grid .mx-grid-searchbar{margin:10px 0}.mx-grid .mx-grid-searchbar .mx-grid-search-item .mx-grid-search-label{vertical-align:middle}.mx-grid .mx-grid-searchbar .mx-grid-search-item .mx-grid-search-label label{padding-top:5px}.mx-grid .mx-grid-searchbar .mx-grid-search-item .mx-grid-search-input{display:inline-flex}.mx-grid .mx-grid-searchbar .mx-grid-search-item .mx-grid-search-input .form-control{height:28px;font-size:11px}.mx-grid .mx-grid-searchbar .mx-grid-search-item .mx-grid-search-input select.form-control{padding:3px;vertical-align:middle}.mx-grid .mx-grid-searchbar .mx-grid-search-item .mx-grid-search-input .mx-button{height:28px;padding-top:2px;padding-bottom:2px}.mx-dataview .mx-grid{border:0}.mx-datagrid table{border-width:0;background-color:transparent}.mx-datagrid table th{border-style:solid;border-color:#D7D7D7;border-top-width:0;border-right:0;border-bottom-width:1px;border-left:0;background-color:rgba(0,0,0,0);padding:15px 15px 15px 15px;vertical-align:middle}.mx-datagrid table th .mx-datagrid-head-caption{white-space:normal}.mx-datagrid table tbody tr td{-webkit-transition:all .3s 0s cubic-bezier(0.4, 0, 0.2, 1);-moz-transition:all .3s 0s cubic-bezier(0.4, 0, 0.2, 1);-o-transition:all .3s 0s cubic-bezier(0.4, 0, 0.2, 1);transition:all .3s 0s cubic-bezier(0.4, 0, 0.2, 1);transform-style:initial;padding:15px 15px 15px 15px;vertical-align:middle;border-width:0;border-color:#D7D7D7;border-bottom-width:1px;border-bottom-style:solid;background-color:#fff}.mx-datagrid table tbody tr td:focus{outline:none}.mx-datagrid table tbody tr td .mx-datagrid-data-wrapper{text-overflow:ellipsis}.mx-datagrid table tbody tr.selected td,.mx-datagrid table tbody tr.selected:hover td{color:#555;background-color:#f3f3f3 !important}.mx-datagrid table tfoot>tr>th{padding:15px 15px 15px 15px;border-width:0;background-color:#D7D7D7}.mx-datagrid table tfoot>tr>td{padding:15px 15px 15px 15px;border-width:0;background-color:#fff;font-weight:bold}.mx-datagrid table *:focus{outline:0}.datagrid-striped.mx-datagrid table th{border-width:0}.datagrid-striped.mx-datagrid table tbody tr td{border-top-width:0}.datagrid-striped.mx-datagrid table tbody tr:nth-child(odd) td{background-color:#fbfbfb}.datagrid-bordered.mx-datagrid table{border:1px solid}.datagrid-bordered.mx-datagrid table th{border:1px solid #D7D7D7}.datagrid-bordered.mx-datagrid table tbody tr td{border:1px solid #D7D7D7}.datagrid-bordered.mx-datagrid tfoot>tr>th{border-width:0;background-color:#D7D7D7}.datagrid-bordered.mx-datagrid tfoot>tr>td{border-width:1px}.datagrid-transparent.mx-datagrid table{background-color:transparent}.datagrid-transparent.mx-datagrid table tbody tr:nth-of-type(odd){background-color:transparent}.datagrid-transparent.mx-datagrid table tbody tr td{background-color:transparent}.datagrid-hover.mx-datagrid table tbody tr:hover td{background-color:#f7f7f7 !important}.datagrid-hover.mx-datagrid table tbody tr.selected:hover td{background-color:#ebebeb !important}.datagrid-lg.mx-datagrid table th{padding:30px 30px 30px 30px}.datagrid-lg.mx-datagrid table tbody tr td{padding:30px 30px 30px 30px}.datagrid-sm.mx-datagrid table th{padding:7.5px 7.5px 7.5px 7.5px}.datagrid-sm.mx-datagrid table tbody tr td{padding:7.5px 7.5px 7.5px 7.5px}.datagrid-fullsearch.mx-grid .mx-grid-reset-button{display:none}.datagrid-fullsearch.mx-grid .mx-grid-search-item{display:block}.datagrid-fullsearch.mx-grid .mx-grid-search-label{display:none}.datagrid-fullsearch.mx-grid .mx-grid-searchbar .mx-grid-search-controls{position:absolute;right:0}.datagrid-fullsearch.mx-grid .mx-grid-searchbar .mx-grid-search-input{width:80%;padding-left:0}.datagrid-fullsearch.mx-grid .mx-grid-searchbar .mx-grid-search-input .btn,.datagrid-fullsearch.mx-grid .mx-grid-searchbar .mx-grid-search-input .form-control{height:35px;font-size:12px}.mx-dataview .mx-dataview-controls{clear:both;margin-top:10px;padding:8px 0;border-top:1px solid #D7D7D7;border-radius:0;background-color:rgba(0,0,0,0)}.mx-dataview .mx-dataview-controls .mx-button{margin-right:0.3em;margin-bottom:0}.mx-dataview .mx-dataview-controls .mx-button:last-child{margin-right:0}.mx-dataview>.mx-dataview-content>.mx-container-nested>.row{margin-right:0;margin-left:0}.mx-dataview .mx-dataview-message{color:#555;background:#fff}.mx-calendar{z-index:10010 !important;padding:10px;font-size:12px;background:#fff;border-radius:4px;border:1px solid #D7D7D7;box-shadow:0 2px 10px 0 rgba(0,0,0,0.06)}.mx-calendar .mx-calendar-month-header{display:flex;flex-direction:row;justify-content:space-between;margin:0 3px 10px 3px}.mx-calendar .mx-calendar-month-next,.mx-calendar .mx-calendar-month-previous,.mx-calendar .mx-calendar-month-dropdown{border:0;cursor:pointer;background:transparent}.mx-calendar .mx-calendar-month-next:hover,.mx-calendar .mx-calendar-month-previous:hover{color:#0595DB}.mx-calendar .mx-calendar-month-dropdown{display:flex;align-items:center;justify-content:center;position:relative}.mx-calendar .mx-calendar-month-dropdown .mx-calendar-month-current:first-child{margin-right:10px}.mx-calendar th{color:#0595DB}.mx-calendar th,.mx-calendar td{width:35px;height:35px;text-align:center}.mx-calendar td{color:#555}.mx-calendar td:hover{cursor:pointer;border-radius:50%;color:#0595DB;background-color:#ddd}.mx-calendar .mx-calendar-day-month-next,.mx-calendar .mx-calendar-day-month-previous{color:#c8c8c8}.mx-calendar .mx-calendar-day-selected,.mx-calendar .mx-calendar-day-selected:hover{color:#fff;border-radius:50%;background:#0595DB}.mx-calendar .mx-calendar-year-switcher{text-align:center;margin-top:10px;color:#7dd2fc}.mx-calendar .mx-calendar-year-switcher span.mx-calendar-year-selected{color:#0595DB;margin-left:10px;margin-right:10px}.mx-calendar .mx-calendar-year-switcher span:hover{cursor:pointer;text-decoration:underline;background-color:transparent}.mx-calendar-month-dropdown-options{z-index:10020 !important;position:absolute;top:25px;padding:2px 10px;border-radius:4px;background-color:#fff}.mx-calendar-month-dropdown-options div{cursor:pointer;font-size:12px;padding:2px 0}.mx-calendar-month-dropdown-options div:hover,.mx-calendar-month-dropdown-options div:focus{color:#0595DB}.mx-header{z-index:100;display:flex;width:100%;height:45px;padding:0;text-align:initial;color:#555;border-bottom:1px solid #D7D7D7;background-color:#fff;box-shadow:0 1px 4px 0 rgba(0,0,0,0.14)}.mx-header div.mx-header-left,.mx-header div.mx-header-right{position:relative;top:initial;right:initial;left:initial;display:flex;align-items:center;width:25%;height:100%}.mx-header div.mx-header-left .mx-placeholder,.mx-header div.mx-header-right .mx-placeholder{display:flex;align-items:center;height:100%}.mx-header div.mx-header-left .mx-placeholder{order:1}.mx-header div.mx-header-left .mx-placeholder .mx-placeholder{justify-content:flex-start}.mx-header div.mx-header-center{overflow:hidden;flex:1;order:2;text-align:center}.mx-header div.mx-header-center .mx-title{overflow:hidden;width:100%;margin:0;text-overflow:ellipsis;color:#555;font-size:17px;line-height:45px}.mx-header div.mx-header-right{order:3}.mx-header div.mx-header-right .mx-placeholder{justify-content:flex-end}.mx-header .mx-link{display:flex;align-items:center;height:100%;-webkit-transition:all 0.2s;-moz-transition:all 0.2s;transition:all 0.2s;text-decoration:none}.mx-header .mx-link .glyphicon{top:0;font-size:23px}.mx-header .mx-link:active{-webkit-transform:translateY(1px);transform:translateY(1px);color:#036290}.mx-header .mx-link,.mx-header .btn,.mx-header img{padding:0 8px}.mx-header .mx-sidebartoggle{font-size:24px;line-height:45px}.mx-header .mx-sidebartoggle img{height:20px}body[dir='rtl'] .mx-header-left{order:3}body[dir='rtl'] .mx-header-right{order:1}.mx-glyphicon:before{display:inline-block;margin-top:-0.2em;margin-right:0.4555555em;vertical-align:middle;font-family:"Glyphicons Halflings";font-weight:normal;font-style:normal;line-height:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.mx-groupbox{margin:0}.mx-groupbox>.mx-groupbox-header{margin:0;color:#555;border-width:1px 1px 0 1px;border-style:solid;border-color:#ddd;background:#ddd;font-size:14px}.mx-groupbox>.mx-groupbox-header .mx-groupbox-collapse-icon{margin-top:0.1em}.mx-groupbox>.mx-groupbox-body{padding:10px 15px;border-width:1px;border-style:solid;border-color:#ddd;background-color:#FFFFFF}.mx-groupbox .mx-groupbox-header+.mx-groupbox-body{border-top:none}.groupbox-default>.mx-groupbox-header{color:#555;border-color:#ddd;background:#ddd}.groupbox-default>.mx-groupbox-body{border-color:#ddd}.groupbox-primary>.mx-groupbox-header{color:#fff;border-color:#0595DB;background:#0595DB}.groupbox-primary>.mx-groupbox-body{border-color:#0595DB}.groupbox-inverse>.mx-groupbox-header{color:#fff;border-color:#252C36;background:#252C36}.groupbox-inverse>.mx-groupbox-body{border-color:#252C36}.groupbox-success>.mx-groupbox-header{color:#fff;border-color:#76CA02;background:#76CA02}.groupbox-success>.mx-groupbox-body{border-color:#76CA02}.groupbox-info>.mx-groupbox-header{color:#fff;border-color:#48B0F7;background:#48B0F7}.groupbox-info>.mx-groupbox-body{border-color:#48B0F7}.groupbox-warning>.mx-groupbox-header{color:#fff;border-color:#F99B1D;background:#F99B1D}.groupbox-warning>.mx-groupbox-body{border-color:#F99B1D}.groupbox-danger>.mx-groupbox-header{color:#fff;border-color:#ED1C24;background:#ED1C24}.groupbox-danger>.mx-groupbox-body{border-color:#ED1C24}.groupbox-white>.mx-groupbox-header{color:#555;border-color:#fff;background:#fff}.groupbox-white>.mx-groupbox-body{border-color:#fff}.groupbox-transparent{border-bottom:1px solid #D7D7D7}.groupbox-transparent>.mx-groupbox-header{padding:15px 0;color:#222;border-style:none;background:transparent;font-size:16px;font-weight:600}.groupbox-transparent .mx-groupbox-body{padding:15px 0;border-style:none;background-color:transparent}.groupbox-transparent .mx-groupbox-collapse-icon{color:#0595DB}.groupbox-h1>.mx-groupbox-header{font-size:31px}.groupbox-h2>.mx-groupbox-header{font-size:26px}.groupbox-h3>.mx-groupbox-header{font-size:24px}.groupbox-h4>.mx-groupbox-header{font-size:18px}.groupbox-h5>.mx-groupbox-header{font-size:14px}.groupbox-h6>.mx-groupbox-header{font-size:12px}.groupbox-callout>.mx-groupbox-header,.groupbox-callout>.mx-groupbox-body{border:0;background-color:#daeffd}.groupbox-callout .mx-groupbox-header+.mx-groupbox-body{padding-top:0}.groupbox-info.groupbox-callout>.mx-groupbox-header,.groupbox-info.groupbox-callout>.mx-groupbox-body{background-color:#daeffd}.groupbox-info.groupbox-callout>.mx-groupbox-header{color:#48B0F7}.groupbox-success.groupbox-callout>.mx-groupbox-header,.groupbox-success.groupbox-callout>.mx-groupbox-body{background-color:#e4f4cc}.groupbox-success.groupbox-callout>.mx-groupbox-header{color:#76CA02}.groupbox-warning.groupbox-callout>.mx-groupbox-header,.groupbox-warning.groupbox-callout>.mx-groupbox-body{background-color:#feebd2}.groupbox-warning.groupbox-callout>.mx-groupbox-header{color:#F99B1D}.groupbox-danger.groupbox-callout>.mx-groupbox-header,.groupbox-danger.groupbox-callout>.mx-groupbox-body{background-color:#fbd2d3}.groupbox-danger.groupbox-callout>.mx-groupbox-header{color:#ED1C24}img.img-rounded,.img-rounded img{border-radius:6px}img.img-thumbnail,.img-thumbnail img{display:inline-block;max-width:100%;height:auto;padding:4px;-webkit-transition:all 0.2s ease-in-out;-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;border:1px solid #ddd;border-radius:4px;background-color:#FFFFFF;line-height:1.42857}img.img-circle,.img-circle img{border-radius:50%}img.img-auto,.img-auto img{width:auto !important;max-width:100% !important;height:auto !important;max-height:100% !important}img.img-center,.img-center img{margin-right:auto !important;margin-left:auto !important}.label{display:inline-block;padding:0.2em 0.6em 0.3em;text-align:center;vertical-align:baseline;white-space:nowrap;color:#ffffff;border-radius:0.25em;font-size:100%;line-height:1;margin:0}.label .form-control-static,.label .form-group div[class*='textBox']>.control-label,.form-group .label div[class*='textBox']>.control-label,.label .form-group div[class*='textArea']>.control-label,.form-group .label div[class*='textArea']>.control-label,.label .form-group div[class*='datePicker']>.control-label,.form-group .label div[class*='datePicker']>.control-label{all:unset;font-weight:normal}.label-default{color:#555;background-color:#ddd}.label-primary{color:#fff;background-color:#0595DB}.label-success{color:#fff;background-color:#76CA02}.label-inverse{color:#fff;background-color:#252C36}.label-info{color:#fff;background-color:#48B0F7}.label-warning{color:#fff;background-color:#F99B1D}.label-danger{color:#fff;background-color:#ED1C24}.mx-listview{padding:0}.mx-listview .mx-listview-searchbar{margin-bottom:15px}.mx-listview .mx-listview-searchbar .btn{width:auto}.mx-listview>.btn{width:100%;margin:10px auto}.mx-listview>ul{margin:0}.mx-listview>ul .mx-listview-empty{border-style:none;background-color:transparent}.mx-listview>ul>li{-webkit-transition:all .3s 0s cubic-bezier(0.4, 0, 0.2, 1);-moz-transition:all .3s 0s cubic-bezier(0.4, 0, 0.2, 1);-o-transition:all .3s 0s cubic-bezier(0.4, 0, 0.2, 1);transition:all .3s 0s cubic-bezier(0.4, 0, 0.2, 1);transform-style:initial;padding:15px 15px 15px 15px;border-width:1px 0 0 0;border-style:solid;border-color:#D7D7D7;background-color:#fff}.mx-listview>ul>li:first-child{border-radius:0}.mx-listview>ul>li:last-child{border-bottom:1px solid #D7D7D7;border-radius:0}.mx-listview>ul>li:focus,.mx-listview>ul>li:active{outline:0;background-color:#f7f7f7}.mx-listview>ul>li.selected{background-color:#f3f3f3}.mx-listview .mx-layoutgrid{padding-top:0 !important;padding-bottom:0 !important}.profile-phone .mx-listview .mx-listview-searchbar{margin-bottom:3px;background:#FFFFFF;box-shadow:0 1px 4px 0 rgba(0,0,0,0.14)}.profile-phone .mx-listview .mx-listview-searchbar input{padding:14px 15px;color:#555555;border-style:none;border-radius:0;box-shadow:none}.profile-phone .mx-listview .mx-listview-searchbar .btn{padding:14px 15px;color:inherit;border-style:none}.profile-phone .mx-listview>ul>li:first-child{border-top:none}.listview-bordered.mx-listview>ul>li{border:1px solid #D7D7D7;border-top:0}.listview-bordered.mx-listview>ul>li:first-child{border-top:1px solid #D7D7D7;border-radius:0}.listview-bordered.mx-listview>ul>li:last-child{border-radius:0}.listview-striped.mx-listview>ul>li:nth-child(2n+1){background-color:#fbfbfb}.listview-seperated.mx-listview>ul>li{margin-bottom:15px;border-width:1px;border-style:solid;border-radius:4px}.listview-stylingless.mx-listview>ul>li{padding:0;cursor:default;border:0;background-color:transparent}.listview-stylingless.mx-listview>ul>li:hover,.listview-stylingless.mx-listview>ul>li:focus,.listview-stylingless.mx-listview>ul>li:active{background-color:transparent}.listview-stylingless.mx-listview>ul>li.selected{background-color:transparent !important}.listview-stylingless.mx-listview>ul>li.selected:hover,.listview-stylingless.mx-listview>ul>li.selected:focus,.listview-stylingless.mx-listview>ul>li.selected:active{background-color:transparent !important}.listview-hover.mx-listview>ul>li:hover,.listview-hover.mx-listview>ul>li:focus,.listview-hover.mx-listview>ul>li:active{background-color:#f7f7f7 !important}.listview-hover.mx-listview>ul>li.selected:hover,.listview-hover.mx-listview>ul>li.selected:focus,.listview-hover.mx-listview>ul>li.selected:active{background-color:#ebebeb !important}.listview-lg.mx-listview>ul>li{padding:30px 30px 30px 30px}.listview-sm.mx-listview>ul>li{padding:7.5px 7.5px 7.5px 7.5px}.mx-listview[class*='lv-col']{overflow:hidden}.mx-listview[class*='lv-col']>ul{display:block;margin-right:-15px;margin-left:-15px}.mx-listview[class*='lv-col']>ul::before,.mx-listview[class*='lv-col']>ul::after{display:table;clear:both;content:' '}.mx-listview[class*='lv-col']>ul>li{position:relative;display:block;float:left;min-height:1px;padding-right:15px;padding-left:15px;border:0}@media (max-width: 991px){.mx-listview[class*='lv-col']>ul>li{width:100% !important}}.mx-listview[class*='lv-col']>ul>li>.mx-dataview{overflow:hidden}.mx-listview[class*='lv-col'].lv-col-xs-12>ul>li{width:100% !important}.mx-listview[class*='lv-col'].lv-col-xs-11>ul>li{width:91.66666667% !important}.mx-listview[class*='lv-col'].lv-col-xs-10>ul>li{width:83.33333333% !important}.mx-listview[class*='lv-col'].lv-col-xs-9>ul>li{width:75% !important}.mx-listview[class*='lv-col'].lv-col-xs-8>ul>li{width:66.66666667% !important}.mx-listview[class*='lv-col'].lv-col-xs-7>ul>li{width:58.33333333% !important}.mx-listview[class*='lv-col'].lv-col-xs-6>ul>li{width:50% !important}.mx-listview[class*='lv-col'].lv-col-xs-5>ul>li{width:41.66666667% !important}.mx-listview[class*='lv-col'].lv-col-xs-4>ul>li{width:33.33333333% !important}.mx-listview[class*='lv-col'].lv-col-xs-3>ul>li{width:25% !important}.mx-listview[class*='lv-col'].lv-col-xs-2>ul>li{width:16.66666667% !important}.mx-listview[class*='lv-col'].lv-col-xs-1>ul>li{width:8.33333333% !important}@media (min-width: 768px){.mx-listview[class*='lv-col'].lv-col-sm-12>ul>li{width:100% !important}.mx-listview[class*='lv-col'].lv-col-sm-11>ul>li{width:91.66666667% !important}.mx-listview[class*='lv-col'].lv-col-sm-10>ul>li{width:83.33333333% !important}.mx-listview[class*='lv-col'].lv-col-sm-9>ul>li{width:75% !important}.mx-listview[class*='lv-col'].lv-col-sm-8>ul>li{width:66.66666667% !important}.mx-listview[class*='lv-col'].lv-col-sm-7>ul>li{width:58.33333333% !important}.mx-listview[class*='lv-col'].lv-col-sm-6>ul>li{width:50% !important}.mx-listview[class*='lv-col'].lv-col-sm-5>ul>li{width:41.66666667% !important}.mx-listview[class*='lv-col'].lv-col-sm-4>ul>li{width:33.33333333% !important}.mx-listview[class*='lv-col'].lv-col-sm-3>ul>li{width:25% !important}.mx-listview[class*='lv-col'].lv-col-sm-2>ul>li{width:16.66666667% !important}.mx-listview[class*='lv-col'].lv-col-sm-1>ul>li{width:8.33333333% !important}}@media (min-width: 992px){.mx-listview[class*='lv-col'].lv-col-md-12>ul>li{width:100% !important}.mx-listview[class*='lv-col'].lv-col-md-11>ul>li{width:91.66666667% !important}.mx-listview[class*='lv-col'].lv-col-md-10>ul>li{width:83.33333333% !important}.mx-listview[class*='lv-col'].lv-col-md-9>ul>li{width:75% !important}.mx-listview[class*='lv-col'].lv-col-md-8>ul>li{width:66.66666667% !important}.mx-listview[class*='lv-col'].lv-col-md-7>ul>li{width:58.33333333% !important}.mx-listview[class*='lv-col'].lv-col-md-6>ul>li{width:50% !important}.mx-listview[class*='lv-col'].lv-col-md-5>ul>li{width:41.66666667% !important}.mx-listview[class*='lv-col'].lv-col-md-4>ul>li{width:33.33333333% !important}.mx-listview[class*='lv-col'].lv-col-md-3>ul>li{width:25% !important}.mx-listview[class*='lv-col'].lv-col-md-2>ul>li{width:16.66666667% !important}.mx-listview[class*='lv-col'].lv-col-md-1>ul>li{width:16.66666667% !important}}@media (min-width: 1200px){.mx-listview[class*='lv-col'].lv-col-lg-12>ul>li{width:100% !important}.mx-listview[class*='lv-col'].lv-col-lg-11>ul>li{width:91.66666667% !important}.mx-listview[class*='lv-col'].lv-col-lg-10>ul>li{width:83.33333333% !important}.mx-listview[class*='lv-col'].lv-col-lg-9>ul>li{width:75% !important}.mx-listview[class*='lv-col'].lv-col-lg-8>ul>li{width:66.66666667% !important}.mx-listview[class*='lv-col'].lv-col-lg-7>ul>li{width:58.33333333% !important}.mx-listview[class*='lv-col'].lv-col-lg-6>ul>li{width:50% !important}.mx-listview[class*='lv-col'].lv-col-lg-5>ul>li{width:41.66666667% !important}.mx-listview[class*='lv-col'].lv-col-lg-4>ul>li{width:33.33333333% !important}.mx-listview[class*='lv-col'].lv-col-lg-3>ul>li{width:25% !important}.mx-listview[class*='lv-col'].lv-col-lg-2>ul>li{width:16.66666667% !important}.mx-listview[class*='lv-col'].lv-col-lg-1>ul>li{width:8.33333333% !important}}.modal-dialog .modal-content{border:1px solid #D7D7D7;border-radius:4px;box-shadow:0 2px 4px rgba(0,0,0,0.2)}.modal-dialog .modal-content .modal-header{padding:15px 20px;border-bottom-color:#D7D7D7;border-radius:0;background-color:rgba(0,0,0,0)}.modal-dialog .modal-content .modal-header h4{margin:0;color:#555;font-size:16px;font-weight:bold}.modal-dialog .modal-content .modal-header .close{margin-top:-3px;opacity:1;color:#555;text-shadow:none;filter:alpha(opacity=100)}.modal-dialog .modal-content .modal-body{padding:20px}.modal-dialog .modal-content .modal-footer{display:flex;justify-content:flex-end;margin-top:0;padding:20px;border-style:none}.mx-window.mx-window-view .mx-window-body{overflow:hidden;padding:0}.mx-window.mx-window-view .mx-window-body>.mx-dataview>.mx-dataview-content,.mx-window.mx-window-view .mx-window-body>.mx-placeholder>.mx-dataview>.mx-dataview-content{padding:20px}.mx-window.mx-window-view .mx-window-body>.mx-dataview>.mx-dataview-controls,.mx-window.mx-window-view .mx-window-body>.mx-placeholder>.mx-dataview>.mx-dataview-controls{display:flex;justify-content:flex-end;margin:0;padding:20px;text-align:left;border-top:1px solid #D7D7D7}.mx-window .mx-dataview-controls{padding-bottom:0}.mx-window .mx-layoutgrid{padding-right:0;padding-left:0}.mx-login .modal-body{padding:0 15px}.mx-login .modal-content input{height:56px;padding:12px 12px;border:1px solid #EEEEEE;background:#EEEEEE;box-shadow:none;font-size:16px}.mx-login .modal-content input:focus{border-color:#66AFE9}.mx-login .modal-header,.mx-login .modal-footer{border:0}.mx-login button{font-size:16px}.mx-login h4{color:#AAAAAA;font-size:20px;font-weight:bold}.mx-navbar{margin:0;border-style:none;border-radius:0;background-color:#252C36}.mx-navbar ul.nav{margin:0}.mx-navbar ul.nav>li.mx-navbar-item>a{display:flex;align-items:center;min-height:60px;padding:5px 15px;vertical-align:middle;color:#fff;border-radius:0;font-size:14px;font-weight:normal}.mx-navbar ul.nav>li.mx-navbar-item>a .caret{border-top-color:#fff;border-bottom-color:#fff}.mx-navbar ul.nav>li.mx-navbar-item>a:hover,.mx-navbar ul.nav>li.mx-navbar-item>a:focus,.mx-navbar ul.nav>li.mx-navbar-item>a.active{text-decoration:none;color:#fff;background-color:#2d3642}.mx-navbar ul.nav>li.mx-navbar-item>a:hover .caret,.mx-navbar ul.nav>li.mx-navbar-item>a:focus .caret,.mx-navbar ul.nav>li.mx-navbar-item>a.active .caret{border-top-color:#fff;border-bottom-color:#fff}.mx-navbar ul.nav>li.mx-navbar-item>a.active{color:#fff;background-color:#36404e}.mx-navbar ul.nav>li.mx-navbar-item>a .mx-navbar-submenu::before{position:absolute;top:-9px;left:15px;width:0;height:0;content:'';-webkit-transform:rotate(360deg);transform:rotate(360deg);border-width:0 9px 9px 9px;border-style:solid;border-color:transparent transparent #2d3642 transparent}.mx-navbar ul.nav>li.mx-navbar-item>a img{width:20px;height:auto;margin-right:0.5em}.mx-navbar ul.nav>li.mx-navbar-item>a .glyphicon{top:0;margin-right:0.5em;vertical-align:middle;font-size:20px}.mx-navbar ul.nav>.mx-navbar-item.active a{color:#fff}.mx-navbar ul.nav>.mx-navbar-item>a:hover,.mx-navbar ul.nav>.mx-navbar-item>a:focus,.mx-navbar ul.nav>.mx-navbar-item.open>a,.mx-navbar ul.nav>.mx-navbar-item.open>a:hover,.mx-navbar ul.nav>.mx-navbar-item.open>a:focus{text-decoration:none;color:#fff;background-color:#2d3642}.mx-navbar ul.nav>.mx-navbar-item>a:hover .caret,.mx-navbar ul.nav>.mx-navbar-item>a:focus .caret,.mx-navbar ul.nav>.mx-navbar-item.open>a .caret,.mx-navbar ul.nav>.mx-navbar-item.open>a:hover .caret,.mx-navbar ul.nav>.mx-navbar-item.open>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.mx-navbar ul.nav>.mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem.active a{color:#0595DB;background-color:#1d222a}.mx-navbar ul.nav>.mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem.active a .caret{border-top-color:#0595DB;border-bottom-color:#0595DB}@media (max-width: 768px){.mx-navbar ul.nav>li.mx-navbar-item>a{padding:10px 20px}.mx-navbar .mx-navbar-item.open .dropdown-menu{padding:0;border-radius:0;background-color:#1d222a}.mx-navbar .mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem>a{padding:10px 20px;color:#AAA;border-radius:0;font-size:12px;font-weight:normal}.mx-navbar .mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem>a:hover,.mx-navbar .mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem>a:focus{color:#0595DB;background-color:#1d222a}.mx-navbar .mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem>a.active{color:#0595DB;background-color:#1d222a}}.mx-navbar:focus{outline:0}.region-topbar .mx-navbar{background-color:#fff}.region-topbar .mx-navbar ul.nav>li.mx-navbar-item>a{color:#555;font-size:14px}.region-topbar .mx-navbar ul.nav>li.mx-navbar-item>a .caret{border-top-color:#555;border-bottom-color:#555}.region-topbar .mx-navbar ul.nav>li.mx-navbar-item>a:hover,.region-topbar .mx-navbar ul.nav>li.mx-navbar-item>a:focus,.region-topbar .mx-navbar ul.nav>li.mx-navbar-item>a.active{color:#555;background-color:#f5f5f5}.region-topbar .mx-navbar ul.nav>li.mx-navbar-item>a:hover .caret,.region-topbar .mx-navbar ul.nav>li.mx-navbar-item>a:focus .caret,.region-topbar .mx-navbar ul.nav>li.mx-navbar-item>a.active .caret{border-top-color:#555;border-bottom-color:#555}.region-topbar .mx-navbar ul.nav>li.mx-navbar-item>a.active{color:#555;background-color:#ebebeb}.region-topbar .mx-navbar ul.nav>li.mx-navbar-item>a .mx-navbar-submenu::before{border-color:transparent transparent #D7D7D7 transparent}.region-topbar .mx-navbar ul.nav>li.mx-navbar-item>a .glyphicon{font-size:1.2em}.region-topbar .mx-navbar ul.nav>.mx-navbar-item>a:hover,.region-topbar .mx-navbar ul.nav>.mx-navbar-item>a:focus,.region-topbar .mx-navbar ul.nav>.mx-navbar-item.active a,.region-topbar .mx-navbar ul.nav>.mx-navbar-item.open>a,.region-topbar .mx-navbar ul.nav>.mx-navbar-item.open>a:hover,.region-topbar .mx-navbar ul.nav>.mx-navbar-item.open>a:focus{color:#555;background-color:#f5f5f5}.region-topbar .mx-navbar ul.nav>.mx-navbar-item>a:hover .caret,.region-topbar .mx-navbar ul.nav>.mx-navbar-item>a:focus .caret,.region-topbar .mx-navbar ul.nav>.mx-navbar-item.active a .caret,.region-topbar .mx-navbar ul.nav>.mx-navbar-item.open>a .caret,.region-topbar .mx-navbar ul.nav>.mx-navbar-item.open>a:hover .caret,.region-topbar .mx-navbar ul.nav>.mx-navbar-item.open>a:focus .caret{border-top-color:#555;border-bottom-color:#555}.region-topbar .mx-navbar ul.nav>.mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem.active a{color:#0595DB;background-color:#fff}.region-topbar .mx-navbar ul.nav>.mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem.active a .caret{border-top-color:#0595DB;border-bottom-color:#0595DB}@media (max-width: 768px){.region-topbar .mx-navbar .mx-navbar-item.open .dropdown-menu{background-color:#fff}.region-topbar .mx-navbar .mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem>a{color:#AAA;font-size:12px}.region-topbar .mx-navbar .mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem>a:hover,.region-topbar .mx-navbar .mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem>a:focus{color:#0595DB;background-color:#fff}.region-topbar .mx-navbar .mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem>a.active{color:#0595DB;background-color:#fff}}.region-sidebar .mx-navbar{background-color:#252C36}.region-sidebar .mx-navbar ul.nav>li.mx-navbar-item>a{color:#fff;font-size:14px}.region-sidebar .mx-navbar ul.nav>li.mx-navbar-item>a .caret{border-top-color:#fff;border-bottom-color:#fff}.region-sidebar .mx-navbar ul.nav>li.mx-navbar-item>a:hover,.region-sidebar .mx-navbar ul.nav>li.mx-navbar-item>a:focus,.region-sidebar .mx-navbar ul.nav>li.mx-navbar-item>a.active{color:#fff;background-color:#2d3642}.region-sidebar .mx-navbar ul.nav>li.mx-navbar-item>a:hover .caret,.region-sidebar .mx-navbar ul.nav>li.mx-navbar-item>a:focus .caret,.region-sidebar .mx-navbar ul.nav>li.mx-navbar-item>a.active .caret{border-top-color:#fff;border-bottom-color:#fff}.region-sidebar .mx-navbar ul.nav>li.mx-navbar-item>a.active{color:#fff;background-color:#36404e}.region-sidebar .mx-navbar ul.nav>li.mx-navbar-item>a .mx-navbar-submenu::before{border-color:transparent transparent #2d3642 transparent}.region-sidebar .mx-navbar ul.nav>li.mx-navbar-item>a .glyphicon{font-size:20px}.region-sidebar .mx-navbar ul.nav>.mx-navbar-item>a:hover,.region-sidebar .mx-navbar ul.nav>.mx-navbar-item>a:focus,.region-sidebar .mx-navbar ul.nav>.mx-navbar-item.active a,.region-sidebar .mx-navbar ul.nav>.mx-navbar-item.open>a,.region-sidebar .mx-navbar ul.nav>.mx-navbar-item.open>a:hover,.region-sidebar .mx-navbar ul.nav>.mx-navbar-item.open>a:focus{color:#fff;background-color:#2d3642}.region-sidebar .mx-navbar ul.nav>.mx-navbar-item>a:hover .caret,.region-sidebar .mx-navbar ul.nav>.mx-navbar-item>a:focus .caret,.region-sidebar .mx-navbar ul.nav>.mx-navbar-item.active a .caret,.region-sidebar .mx-navbar ul.nav>.mx-navbar-item.open>a .caret,.region-sidebar .mx-navbar ul.nav>.mx-navbar-item.open>a:hover .caret,.region-sidebar .mx-navbar ul.nav>.mx-navbar-item.open>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.region-sidebar .mx-navbar ul.nav>.mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem.active a{color:#0595DB;background-color:#1d222a}.region-sidebar .mx-navbar ul.nav>.mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem.active a .caret{border-top-color:#0595DB;border-bottom-color:#0595DB}@media (max-width: 768px){.region-sidebar .mx-navbar .mx-navbar-item.open .dropdown-menu{background-color:#fff}.region-sidebar .mx-navbar .mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem>a{color:#AAA;font-size:12px}.region-sidebar .mx-navbar .mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem>a:hover,.region-sidebar .mx-navbar .mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem>a:focus{color:#0595DB;background-color:#1d222a}.region-sidebar .mx-navbar .mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem>a.active{color:#0595DB;background-color:#1d222a}}.mx-navigationlist{margin:0;padding:0;list-style:none}.mx-navigationlist li.mx-navigationlist-item{-webkit-transition:all .3s 0s cubic-bezier(0.4, 0, 0.2, 1);-moz-transition:all .3s 0s cubic-bezier(0.4, 0, 0.2, 1);-o-transition:all .3s 0s cubic-bezier(0.4, 0, 0.2, 1);transition:all .3s 0s cubic-bezier(0.4, 0, 0.2, 1);transform-style:initial;padding:15px 15px 15px 15px;border-width:1px;border-style:none none solid none;border-color:#D7D7D7;border-radius:0;background-color:#fff}.mx-navigationlist li.mx-navigationlist-item:hover,.mx-navigationlist li.mx-navigationlist-item:focus{color:inherit;background-color:#f7f7f7}.mx-navigationlist li.mx-navigationlist-item.active{color:inherit;background-color:#f3f3f3}.mx-navigationtree{background-color:#252C36}.mx-navigationtree .navbar-inner>ul{margin:0;padding-left:0}.mx-navigationtree .navbar-inner>ul>li{padding:0;border-style:none}.mx-navigationtree .navbar-inner>ul>li>a{display:flex;align-items:center;height:60px;padding:5px 15px;color:#fff;border-bottom:1px solid #2d3642;border-radius:0;background-color:#252C36;text-shadow:none;font-size:14px;font-weight:normal}.mx-navigationtree .navbar-inner>ul>li>a .caret{border-top-color:#fff;border-bottom-color:#fff}.mx-navigationtree .navbar-inner>ul>li>a img{width:20px;height:auto;margin-right:0.5em}.mx-navigationtree .navbar-inner>ul>li>a .glyphicon{top:0;margin-right:0.5em;vertical-align:middle;font-size:20px}.mx-navigationtree .navbar-inner>ul>li a:hover,.mx-navigationtree .navbar-inner>ul>li a:focus,.mx-navigationtree .navbar-inner>ul>li a.active{text-decoration:none;color:#fff;background-color:#2d3642}.mx-navigationtree .navbar-inner>ul>li a:hover .caret,.mx-navigationtree .navbar-inner>ul>li a:focus .caret,.mx-navigationtree .navbar-inner>ul>li a.active .caret{border-top-color:#fff;border-bottom-color:#fff}.mx-navigationtree .navbar-inner>ul>li a.active{color:#fff;border-left-color:#fff;background-color:#36404e}.mx-navigationtree li.mx-navigationtree-has-items>ul{margin:0;padding-left:0;background-color:#1d222a}.mx-navigationtree li.mx-navigationtree-has-items>ul li{margin:0;padding:0;border:0}.mx-navigationtree li.mx-navigationtree-has-items>ul li a{padding:12px 20px 12px 25px;text-decoration:none;color:#AAA;border:0;background-color:#1d222a;text-shadow:none;font-size:12px;font-weight:normal}.mx-navigationtree li.mx-navigationtree-has-items>ul li a:hover,.mx-navigationtree li.mx-navigationtree-has-items>ul li a:focus,.mx-navigationtree li.mx-navigationtree-has-items>ul li a.active{color:#0595DB;outline:0;background-color:#1d222a}.mx-navigationtree li.mx-navigationtree-has-items>ul li a.active{color:#0595DB;border:0;background-color:#1d222a}.mx-navigationtree:focus{outline:0}.region-topbar .mx-navigationtree{background-color:#fff}.region-topbar .mx-navigationtree .navbar-inner>ul>li>a{color:#555;border-color:#D7D7D7;background-color:#fff;font-size:14px}.region-topbar .mx-navigationtree .navbar-inner>ul>li>a .caret{border-top-color:#555;border-bottom-color:#555}.region-topbar .mx-navigationtree .navbar-inner>ul>li>a .glyphicon{font-size:1.2em}.region-topbar .mx-navigationtree .navbar-inner>ul>li a:hover,.region-topbar .mx-navigationtree .navbar-inner>ul>li a:focus,.region-topbar .mx-navigationtree .navbar-inner>ul>li a.active{color:#555;background-color:#f5f5f5}.region-topbar .mx-navigationtree .navbar-inner>ul>li a:hover .caret,.region-topbar .mx-navigationtree .navbar-inner>ul>li a:focus .caret,.region-topbar .mx-navigationtree .navbar-inner>ul>li a.active .caret{border-top-color:#555;border-bottom-color:#555}.region-topbar .mx-navigationtree .navbar-inner>ul>li a.active{color:#555;border-left-color:#555;background-color:#ebebeb}.region-topbar .mx-navigationtree li.mx-navigationtree-has-items>ul{background-color:#fff}.region-topbar .mx-navigationtree li.mx-navigationtree-has-items>ul li a{color:#AAA;background-color:#fff;font-size:12px}.region-topbar .mx-navigationtree li.mx-navigationtree-has-items>ul li a:hover,.region-topbar .mx-navigationtree li.mx-navigationtree-has-items>ul li a:focus,.region-topbar .mx-navigationtree li.mx-navigationtree-has-items>ul li a.active{color:#0595DB;background-color:#fff}.region-topbar .mx-navigationtree li.mx-navigationtree-has-items>ul li a.active{color:#0595DB;background-color:#fff}.region-sidebar .mx-navigationtree{background-color:#252C36}.region-sidebar .mx-navigationtree .navbar-inner>ul>li>a{color:#fff;border-color:#2d3642;background-color:#252C36;font-size:14px}.region-sidebar .mx-navigationtree .navbar-inner>ul>li>a .caret{border-top-color:#fff;border-bottom-color:#fff}.region-sidebar .mx-navigationtree .navbar-inner>ul>li>a .glyphicon{font-size:20px}.region-sidebar .mx-navigationtree .navbar-inner>ul>li a:hover,.region-sidebar .mx-navigationtree .navbar-inner>ul>li a:focus,.region-sidebar .mx-navigationtree .navbar-inner>ul>li a.active{color:#fff;background-color:#2d3642}.region-sidebar .mx-navigationtree .navbar-inner>ul>li a:hover .caret,.region-sidebar .mx-navigationtree .navbar-inner>ul>li a:focus .caret,.region-sidebar .mx-navigationtree .navbar-inner>ul>li a.active .caret{border-top-color:#fff;border-bottom-color:#fff}.region-sidebar .mx-navigationtree .navbar-inner>ul>li a.active{color:#fff;border-left-color:#fff;background-color:#36404e}.region-sidebar .mx-navigationtree li.mx-navigationtree-has-items>ul{background-color:#1d222a}.region-sidebar .mx-navigationtree li.mx-navigationtree-has-items>ul li a{color:#AAA;background-color:#1d222a;font-size:12px}.region-sidebar .mx-navigationtree li.mx-navigationtree-has-items>ul li a:hover,.region-sidebar .mx-navigationtree li.mx-navigationtree-has-items>ul li a:focus,.region-sidebar .mx-navigationtree li.mx-navigationtree-has-items>ul li a.active{color:#0595DB;background-color:#1d222a}.region-sidebar .mx-navigationtree li.mx-navigationtree-has-items>ul li a.active{color:#0595DB;background-color:#1d222a}.nav-content-center-text-icons.mx-navigationtree .navbar-inner ul a{flex-direction:column;justify-content:center}.nav-content-center-text-icons.mx-navigationtree .navbar-inner ul a .glyphicon{margin:0 0 5px 0}.nav-content-center.mx-navigationtree .navbar-inner ul a{justify-content:center}.popupmenu{position:relative;display:inline-flex}.popupmenu-trigger{cursor:pointer}.popupmenu-menu{position:absolute;z-index:999;display:none;flex-direction:column;width:max-content;border-radius:8px;background-color:#fff;box-shadow:0 2px 20px 1px rgba(5,15,129,0.05),0 2px 16px 0 rgba(33,43,54,0.08)}.popupmenu-menu.popupmenu-position-left{top:0;left:0;transform:translateX(-100%)}.popupmenu-menu.popupmenu-position-right{top:0;right:0;transform:translateX(100%)}.popupmenu-menu.popupmenu-position-top{top:0;transform:translateY(-100%)}.popupmenu-menu.popupmenu-position-bottom{bottom:0;transform:translateY(100%)}.popupmenu-menu .popupmenu-basic-item:first-child,.popupmenu-menu .popupmenu-custom-item:first-child{border-top-left-radius:8px;border-top-right-radius:8px}.popupmenu-menu .popupmenu-basic-item:last-child,.popupmenu-menu .popupmenu-custom-item:last-child{border-bottom-right-radius:8px;border-bottom-left-radius:8px}.popupmenu-basic-divider{width:100%;height:1px;background-color:#ddd}.popupmenu-basic-item{padding:12px 16px;color:#555;font-size:14px}.popupmenu-basic-item:hover,.popupmenu-basic-item:focus,.popupmenu-basic-item:active{cursor:pointer;border-color:#F5F8FD;background-color:#F5F8FD}.popupmenu-basic-item-inverse{color:#252C36}.popupmenu-basic-item-primary{color:#0595DB}.popupmenu-basic-item-info{color:#48B0F7}.popupmenu-basic-item-success{color:#76CA02}.popupmenu-basic-item-warning{color:#F99B1D}.popupmenu-basic-item-danger{color:#ED1C24}.popupmenu-custom-item:hover,.popupmenu-custom-item:focus,.popupmenu-custom-item:active{cursor:pointer;border-color:#F5F8FD;background-color:#F5F8FD}.mx-menubar{padding:0;background-color:#252C36}.mx-menubar ul.mx-menubar-list{display:flex;width:100%;min-height:50px}.mx-menubar ul.mx-menubar-list li.mx-menubar-item{margin:0}.mx-menubar ul.mx-menubar-list li.mx-menubar-item>a{display:flex;overflow:hidden;align-items:center;justify-content:center;height:100%;padding:5px 15px;white-space:nowrap;color:#fff;border-radius:0;font-size:14px;font-weight:normal}.mx-menubar ul.mx-menubar-list li.mx-menubar-item>a img{margin-right:0.5em}.mx-menubar ul.mx-menubar-list li.mx-menubar-item>a .glyphicon{top:-1px;margin-right:0.5em;vertical-align:middle;font-size:20px}.mx-menubar ul.mx-menubar-list li.mx-menubar-item a:hover,.mx-menubar ul.mx-menubar-list li.mx-menubar-item a:focus,.mx-menubar ul.mx-menubar-list li.mx-menubar-item:hover a,.mx-menubar ul.mx-menubar-list li.mx-menubar-item:focus a,.mx-menubar ul.mx-menubar-list li.mx-menubar-item.active a{text-decoration:none;color:#fff;background-color:#2d3642}.mx-menubar ul.mx-menubar-list li.mx-menubar-item.active a{color:#fff;background-color:#36404e}.mx-menubar:focus{outline:0}.mx-menubar-vertical{background-color:#252C36}.mx-menubar-vertical ul.mx-menubar-list{display:flex}.mx-menubar-vertical ul.mx-menubar-list li.mx-menubar-item{display:block}.mx-menubar-vertical ul.mx-menubar-list li.mx-menubar-item a{border-bottom:1px solid #2d3642}.mx-menubar-horizontal{box-shadow:2px 0 4px 0 rgba(0,0,0,0.14)}.mx-menubar-horizontal ul.mx-menubar-list li.mx-menubar-item{width:auto}.mx-menubar-horizontal ul.mx-menubar-list li.mx-menubar-item a{width:100%}.mx-menubar-horizontal.menubar-col-6 ul.mx-menubar-list li.mx-menubar-item{width:50%}.mx-menubar-horizontal.menubar-col-4 ul.mx-menubar-list li.mx-menubar-item{width:33.33333333%}.mx-menubar-horizontal.menubar-col-3 ul.mx-menubar-list li.mx-menubar-item{width:25%}.mx-menubar-horizontal.menubar-col-2 ul.mx-menubar-list li.mx-menubar-item{width:20%}.region-topbar .mx-menubar{background-color:#fff}.region-topbar .mx-menubar ul.mx-menubar-list li.mx-menubar-item a{color:#555;font-size:14px}.region-topbar .mx-menubar ul.mx-menubar-list li.mx-menubar-item a .glyphicon{font-size:1.2em}.region-topbar .mx-menubar ul.mx-menubar-list li.mx-menubar-item a:hover,.region-topbar .mx-menubar ul.mx-menubar-list li.mx-menubar-item a:focus,.region-topbar .mx-menubar ul.mx-menubar-list li.mx-menubar-item:hover a,.region-topbar .mx-menubar ul.mx-menubar-list li.mx-menubar-item:focus a,.region-topbar .mx-menubar ul.mx-menubar-list li.mx-menubar-item.active a{color:#555;background-color:#f5f5f5}.region-topbar .mx-menubar ul.mx-menubar-list li.mx-menubar-item.active a{color:#555;background-color:#ebebeb}.region-topbar .mx-menubar-vertical{background-color:#fff}.region-topbar .mx-menubar-vertical ul.mx-menubar-list li.mx-menubar-item a{height:60px;border-color:#D7D7D7}.region-sidebar .mx-menubar{background-color:#252C36}.region-sidebar .mx-menubar ul.mx-menubar-list li.mx-menubar-item a{color:#fff;font-size:14px}.region-sidebar .mx-menubar ul.mx-menubar-list li.mx-menubar-item a .glyphicon{font-size:20px}.region-sidebar .mx-menubar ul.mx-menubar-list li.mx-menubar-item a:hover,.region-sidebar .mx-menubar ul.mx-menubar-list li.mx-menubar-item a:focus,.region-sidebar .mx-menubar ul.mx-menubar-list li.mx-menubar-item:hover a,.region-sidebar .mx-menubar ul.mx-menubar-list li.mx-menubar-item:focus a,.region-sidebar .mx-menubar ul.mx-menubar-list li.mx-menubar-item.active a{color:#fff;background-color:#2d3642}.region-sidebar .mx-menubar ul.mx-menubar-list li.mx-menubar-item.active a{color:#fff;background-color:#36404e}.region-sidebar .mx-menubar-vertical{background-color:#252C36}.region-sidebar .mx-menubar-vertical ul.mx-menubar-list li.mx-menubar-item a{border-color:#2d3642}@supports (padding-bottom: env(safe-area-inset-bottom)){.mx-menubar{padding-bottom:env(safe-area-inset-bottom)}}.bottom-nav-text-icons.mx-menubar ul.mx-menubar-list li.mx-menubar-item a{flex-direction:column;padding:8px 8px 6px 8px;line-height:normal;font-size:11px}.bottom-nav-text-icons.mx-menubar ul.mx-menubar-list li.mx-menubar-item a .glyphicon{display:block;margin:0 0 5px 0;font-size:18px}.bottom-nav-text-icons.mx-menubar ul.mx-menubar-list li.mx-menubar-item a img{display:block;height:18px;margin:0 0 5px 0}.mx-radiobuttons.inline .mx-radiogroup{display:flex;flex-direction:row}.mx-radiobuttons.inline .mx-radiogroup .radio{margin:0 20px 0 0}.mx-radiobuttons .radio:last-child{margin-bottom:0}.radio{display:flex !important;align-items:center;margin-top:0}input[type='radio']{position:relative !important;width:16px;height:16px;margin:0;cursor:pointer;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;-webkit-user-select:none;user-select:none;appearance:none;-moz-appearance:none;-webkit-appearance:none}input[type='radio']::-ms-check{color:#D7D7D7;border-color:#D7D7D7;background-color:#fff}input[type='radio']:focus::-ms-check,input[type='radio']:checked::-ms-check{color:#0595DB;border-color:#0595DB;background-color:#fff}input[type='radio']:before,input[type='radio']:after{position:absolute;display:block;transition:all 0.3s ease-in-out;border-radius:50%}input[type='radio']:before{width:100%;height:100%;content:'';border:1px solid #D7D7D7;background-color:transparent}input[type='radio']:after{top:50%;left:50%;width:50%;height:50%;transform:translate(-50%, -50%);pointer-events:none;background-color:#0595DB}input[type='radio']:not(:checked):after{transform:translate(-50%, -50%) scale(0);opacity:0}input[type='radio']:not(:disabled):not(:checked):hover:after{background-color:#D7D7D7}input[type='radio']:checked:after,input[type='radio']:not(:disabled):not(:checked):hover:after{content:'';transform:translate(-50%, -50%) scale(1);opacity:1}input[type='radio']:checked:before{border-color:#0595DB;background-color:#fff}input[type='radio']:disabled:before{background-color:#eee}input[type='radio']:checked:disabled:before{border-color:rgba(5,149,219,0.4)}input[type='radio']:checked:disabled:after{background-color:rgba(5,149,219,0.4)}input[type='radio']+label{margin-left:8px}.mx-tabcontainer .mx-tabcontainer-tabs{margin-bottom:20px;border-color:#D7D7D7}.mx-tabcontainer .mx-tabcontainer-tabs>li>a{margin-right:0;-webkit-transition:all 0.2s ease-in-out;-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;color:#888;font-weight:normal}.mx-tabcontainer .mx-tabcontainer-tabs>li>a:hover,.mx-tabcontainer .mx-tabcontainer-tabs>li>a:focus{background-color:#e4e4e4}.mx-tabcontainer .mx-tabcontainer-tabs>li.active>a,.mx-tabcontainer .mx-tabcontainer-tabs>li.active>a:hover,.mx-tabcontainer .mx-tabcontainer-tabs>li.active>a:focus{color:#555;border:1px solid #D7D7D7;border-bottom-color:transparent;background-color:#fff}.tab-mobile.mx-tabcontainer>.mx-tabcontainer-tabs{margin:0;text-align:center;border-style:none;background-color:#0595DB}.tab-mobile.mx-tabcontainer>.mx-tabcontainer-tabs li{display:table-cell;float:none;width:1%;margin:0;text-align:center;border-style:none;border-radius:0}.tab-mobile.mx-tabcontainer>.mx-tabcontainer-tabs li a{padding:15px;text-transform:uppercase;color:#FFFFFF;border-width:0 1px 0 0;border-style:solid;border-color:rgba(255,255,255,0.3);border-radius:0;font-size:12px;font-weight:normal}.tab-mobile.mx-tabcontainer>.mx-tabcontainer-tabs li a:hover,.tab-mobile.mx-tabcontainer>.mx-tabcontainer-tabs li a:focus{background-color:inherit}.tab-mobile.mx-tabcontainer>.mx-tabcontainer-tabs li:last-child a{border-right:none}.tab-mobile.mx-tabcontainer>.mx-tabcontainer-tabs li.active>a,.tab-mobile.mx-tabcontainer>.mx-tabcontainer-tabs li.active>a:hover,.tab-mobile.mx-tabcontainer>.mx-tabcontainer-tabs li.active>a:focus{color:#FFFFFF;border-style:none;border-radius:0;background-color:#0477af}.mx-tabcontainer-badge{margin-left:8px;border-radius:12px;background-color:#0595DB;color:#fff;font-size:12px;font-weight:bold;line-height:1;padding:3px 7px}.tab-pills.mx-tabcontainer>.mx-tabcontainer-tabs{border:0}.tab-pills.mx-tabcontainer>.mx-tabcontainer-tabs>li>a{margin-right:2px;color:#888;border:1px solid #D7D7D7;border-radius:4px}.tab-pills.mx-tabcontainer>.mx-tabcontainer-tabs>li>a:hover,.tab-pills.mx-tabcontainer>.mx-tabcontainer-tabs>li>a:focus{background-color:#e4e4e4}.tab-pills.mx-tabcontainer>.mx-tabcontainer-tabs>li.active>a,.tab-pills.mx-tabcontainer>.mx-tabcontainer-tabs>li.active>a:hover,.tab-pills.mx-tabcontainer>.mx-tabcontainer-tabs>li.active>a:focus{color:#FFFFFF;border-color:#0595DB;background-color:#0595DB}.tab-lined.mx-tabcontainer>.mx-tabcontainer-tabs{border-width:3px}.tab-lined.mx-tabcontainer>.mx-tabcontainer-tabs li{margin-right:30px;margin-bottom:-3px}.tab-lined.mx-tabcontainer>.mx-tabcontainer-tabs li>a{padding:10px 0;color:#888;border:0;border-style:solid;border-color:transparent;border-bottom-width:3px;border-radius:0}.tab-lined.mx-tabcontainer>.mx-tabcontainer-tabs li>a:hover,.tab-lined.mx-tabcontainer>.mx-tabcontainer-tabs li>a:focus{color:#888;border:0;border-color:transparent;background:transparent}.tab-lined.mx-tabcontainer>.mx-tabcontainer-tabs li.active>a,.tab-lined.mx-tabcontainer>.mx-tabcontainer-tabs li.active>a:hover,.tab-lined.mx-tabcontainer>.mx-tabcontainer-tabs li.active>a:focus{color:#0595DB;border:0;border-bottom:3px solid #0595DB;background-color:transparent}.tab-justified.mx-tabcontainer>.mx-tabcontainer-tabs{width:100%;border-bottom:0}.tab-justified.mx-tabcontainer>.mx-tabcontainer-tabs>li{display:table-cell;float:none;width:1%;margin:0}@media (max-width: 767px){.tab-justified.mx-tabcontainer>.mx-tabcontainer-tabs>li{display:block;width:100%}}.tab-justified.mx-tabcontainer>.mx-tabcontainer-tabs>li>a{text-align:center;border-bottom:1px solid #D7D7D7}.tab-justified.mx-tabcontainer>.mx-tabcontainer-tabs>li.active>a{border-bottom-color:transparent;border-radius:4px}@media (max-width: 767px){.tab-justified.mx-tabcontainer>.mx-tabcontainer-tabs>li.active>a{border-bottom-color:#D7D7D7}}.tab-bordered.mx-tabcontainer>.mx-tabcontainer-tabs{margin:0}.tab-bordered.mx-tabcontainer>.mx-tabcontainer-content{padding:10px;border-width:0 1px 1px 1px;border-style:solid;border-color:#D7D7D7;background-color:#FFFFFF}.tab-wizard.mx-tabcontainer>.mx-tabcontainer-tabs{position:relative;display:flex;justify-content:space-between;border-style:none}.tab-wizard.mx-tabcontainer>.mx-tabcontainer-tabs::before{position:absolute;top:16px;display:block;width:100%;height:1px;content:"";background-color:#D7D7D7}.tab-wizard.mx-tabcontainer>.mx-tabcontainer-tabs>li{position:relative;float:none;width:100%;text-align:center}.tab-wizard.mx-tabcontainer>.mx-tabcontainer-tabs>li>a{width:33px;height:33px;margin:auto;padding:0;text-align:center;color:#ddd;border:1px solid #D7D7D7;border-radius:100%;background-color:#FFFFFF;font-size:18px;font-weight:bold;line-height:33px}.tab-wizard.mx-tabcontainer>.mx-tabcontainer-tabs>li.active>a,.tab-wizard.mx-tabcontainer>.mx-tabcontainer-tabs>li.active>a:hover,.tab-wizard.mx-tabcontainer>.mx-tabcontainer-tabs>li.active>a:focus{color:#FFFFFF;border-color:#0595DB;background-color:#0595DB}th{font-weight:bold}html body .mx-page table.mx-table th.nopadding,html body .mx-page table.mx-table td.nopadding{padding:0}table.mx-table>tbody>tr>th{padding:8px 8px 8px 8px}table.mx-table>tbody>tr>th s *{color:#666;font-weight:bold;font-weight:600}table.mx-table>tbody>tr>th>label{padding-top:7px;padding-bottom:6px}table.mx-table>tbody>tr>td{padding:8px 8px 8px 8px}table.mx-table>tbody>tr>td>div>label,table.mx-table>tbody>tr>td .mx-referenceselector-input-wrapper label{padding-top:7px;padding-bottom:6px}.mx-templategrid table.mx-table>tbody>tr>th,.mx-templategrid table.mx-table>tbody>tr>td{padding:8px 8px 8px 8px}.mx-list table.mx-table>tbody>tr>th,.mx-list table.mx-table>tbody>tr>td{padding:8px 8px 8px 8px}table.table-lined.mx-table>tbody>tr>td{border-width:1px 0;border-style:solid;border-color:#D7D7D7}table.table-bordered.mx-table>tbody>tr>th,table.table-bordered.mx-table>tbody>tr>td{border-width:1px;border-style:solid;border-color:#D7D7D7}table.table-compact.mx-table>tbody>tr>th,table.table-compact.mx-table>tbody>tr>td{padding-top:2px;padding-bottom:2px}table.table-sideless.mx-table>tbody>tr>td,table.table-sideless.mx-table>tbody>tr>th{padding-right:0}table.table-sideless.mx-table>tbody>tr>th:first-child,table.table-sideless.mx-table>tbody>tr>td:first-child{padding-left:0}table.table-spaceless.mx-table>tbody>tr>th,table.table-spaceless.mx-table>tbody>tr>td{padding:0}table.table-vertical.mx-table>tbody>tr>th{padding-bottom:0}table.table-vertical.mx-table>tbody>tr>th>label{padding:0}table.table-vertical.mx-table>tbody>tr>th>div>label{padding:0}table.table-align-vertical-middle.mx-table>tbody>tr>th,table.table-align-vertical-middle.mx-table>tbody>tr>td{vertical-align:middle}table.table-label-compact.mx-table>tbody>tr>th>label,table.table-label-compact.mx-table>tbody>tr>td>label{margin:0;padding:0}table.table-label-compact.mx-table>tbody>tr>th>div>label,table.table-label-compact.mx-table>tbody>tr>th .mx-referenceselector-input-wrapper label,table.table-label-compact.mx-table>tbody>tr>td>div>label,table.table-label-compact.mx-table>tbody>tr>td .mx-referenceselector-input-wrapper label{margin:0;padding:0}table.table-row-s.mx-table>tbody>tr>th,table.table-row-s.mx-table>tbody>tr>td{height:55px}table.table-row-m.mx-table>tbody>tr>th,table.table-row-m.mx-table>tbody>tr>td{height:70px}table.table-row-l.mx-table>tbody>tr>th,table.table-row-l.mx-table>tbody>tr>td{height:120px}table.table-fixed{table-layout:fixed}.mx-templategrid .mx-templategrid-content-wrapper{table-layout:fixed}.mx-templategrid .mx-templategrid-item{padding:15px 15px 15px 15px;cursor:default;background-color:#fff}.mx-templategrid .mx-templategrid-item:hover{background-color:transparent}.mx-templategrid .mx-templategrid-item.selected{background-color:#f3f3f3 !important}.mx-templategrid .mx-layoutgrid{padding-top:0 !important;padding-bottom:0 !important}.templategrid-selectable.mx-templategrid .mx-templategrid-item{cursor:pointer}.templategrid-lined.mx-templategrid .mx-grid-content{border-top-width:2px;border-top-style:solid;border-top-color:#D7D7D7}.templategrid-lined.mx-templategrid .mx-templategrid-item{border-top:1px solid #D7D7D7;border-right:none;border-bottom:1px solid #D7D7D7;border-left:none}.templategrid-striped.mx-templategrid .mx-templategrid-row:nth-child(odd) .mx-templategrid-item{background-color:#F9F9F9}.templategrid-stylingless.mx-templategrid .mx-templategrid-item{padding:0;cursor:default;border:0;background-color:transparent}.templategrid-stylingless.mx-templategrid .mx-templategrid-item:hover{background-color:transparent}.templategrid-stylingless.mx-templategrid .mx-templategrid-item.selected{background-color:transparent !important}.templategrid-stylingless.mx-templategrid .mx-templategrid-item.selected:hover{background-color:transparent !important}.templategrid-transparent.mx-templategrid .mx-templategrid-item{border:0;background-color:transparent}.templategrid-hover.mx-templategrid .mx-templategrid-item:hover{background-color:#f7f7f7 !important}.templategrid-hover.mx-templategrid .mx-templategrid-item.selected{background-color:#f3f3f3 !important}.templategrid-hover.mx-templategrid .mx-templategrid-item.selected:hover{background-color:#ebebeb !important}.templategrid-lg.mx-templategrid .mx-templategrid-item{padding:30px 30px 30px 30px}.templategrid-sm.mx-templategrid .mx-templategrid-item{padding:7.5px 7.5px 7.5px 7.5px}.mx-templategrid[class*="tg-col"]{overflow:hidden}.mx-templategrid[class*="tg-col"] .mx-templategrid-content-wrapper{display:block}.mx-templategrid[class*="tg-col"] .mx-templategrid-row{display:block;margin-right:-15px;margin-left:-15px}.mx-templategrid[class*="tg-col"] .mx-templategrid-row::before,.mx-templategrid[class*="tg-col"] .mx-templategrid-row::after{display:table;clear:both;content:" "}.mx-templategrid[class*="tg-col"] .mx-templategrid-item{position:relative;display:block;float:left;min-height:1px;padding-right:15px;padding-left:15px;border:0}@media (max-width: 992px){.mx-templategrid[class*="tg-col"] .mx-templategrid-item{width:100% !important}}.mx-templategrid[class*="tg-col"] .mx-templategrid-item .mx-dataview{overflow:hidden}.mx-templategrid[class*="tg-col"].tg-col-xs-12 .mx-templategrid-item{width:100% !important}.mx-templategrid[class*="tg-col"].tg-col-xs-11 .mx-templategrid-item{width:91.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-xs-10 .mx-templategrid-item{width:83.33333333% !important}.mx-templategrid[class*="tg-col"].tg-col-xs-9 .mx-templategrid-item{width:75% !important}.mx-templategrid[class*="tg-col"].tg-col-xs-8 .mx-templategrid-item{width:66.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-xs-7 .mx-templategrid-item{width:58.33333333% !important}.mx-templategrid[class*="tg-col"].tg-col-xs-6 .mx-templategrid-item{width:50% !important}.mx-templategrid[class*="tg-col"].tg-col-xs-5 .mx-templategrid-item{width:41.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-xs-4 .mx-templategrid-item{width:33.33333333% !important}.mx-templategrid[class*="tg-col"].tg-col-xs-3 .mx-templategrid-item{width:25% !important}.mx-templategrid[class*="tg-col"].tg-col-xs-2 .mx-templategrid-item{width:16.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-xs-1 .mx-templategrid-item{width:8.33333333% !important}@media (min-width: 768px){.mx-templategrid[class*="tg-col"].tg-col-sm-12 .mx-templategrid-item{width:100% !important}.mx-templategrid[class*="tg-col"].tg-col-sm-11 .mx-templategrid-item{width:91.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-sm-10 .mx-templategrid-item{width:83.33333333% !important}.mx-templategrid[class*="tg-col"].tg-col-sm-9 .mx-templategrid-item{width:75% !important}.mx-templategrid[class*="tg-col"].tg-col-sm-8 .mx-templategrid-item{width:66.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-sm-7 .mx-templategrid-item{width:58.33333333% !important}.mx-templategrid[class*="tg-col"].tg-col-sm-6 .mx-templategrid-item{width:50% !important}.mx-templategrid[class*="tg-col"].tg-col-sm-5 .mx-templategrid-item{width:41.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-sm-4 .mx-templategrid-item{width:33.33333333% !important}.mx-templategrid[class*="tg-col"].tg-col-sm-3 .mx-templategrid-item{width:25% !important}.mx-templategrid[class*="tg-col"].tg-col-sm-2 .mx-templategrid-item{width:16.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-sm-1 .mx-templategrid-item{width:8.33333333% !important}}@media (min-width: 992px){.mx-templategrid[class*="tg-col"].tg-col-md-12 .mx-templategrid-item{width:100% !important}.mx-templategrid[class*="tg-col"].tg-col-md-11 .mx-templategrid-item{width:91.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-md-10 .mx-templategrid-item{width:83.33333333% !important}.mx-templategrid[class*="tg-col"].tg-col-md-9 .mx-templategrid-item{width:75% !important}.mx-templategrid[class*="tg-col"].tg-col-md-8 .mx-templategrid-item{width:66.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-md-7 .mx-templategrid-item{width:58.33333333% !important}.mx-templategrid[class*="tg-col"].tg-col-md-6 .mx-templategrid-item{width:50% !important}.mx-templategrid[class*="tg-col"].tg-col-md-5 .mx-templategrid-item{width:41.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-md-4 .mx-templategrid-item{width:33.33333333% !important}.mx-templategrid[class*="tg-col"].tg-col-md-3 .mx-templategrid-item{width:25% !important}.mx-templategrid[class*="tg-col"].tg-col-md-2 .mx-templategrid-item{width:16.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-md-1 .mx-templategrid-item{width:8.33333333% !important}}@media (min-width: 1200px){.mx-templategrid[class*="tg-col"].tg-col-lg-12 .mx-templategrid-item{width:100% !important}.mx-templategrid[class*="tg-col"].tg-col-lg-11 .mx-templategrid-item{width:91.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-lg-10 .mx-templategrid-item{width:83.33333333% !important}.mx-templategrid[class*="tg-col"].tg-col-lg-9 .mx-templategrid-item{width:75% !important}.mx-templategrid[class*="tg-col"].tg-col-lg-8 .mx-templategrid-item{width:66.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-lg-7 .mx-templategrid-item{width:58.33333333% !important}.mx-templategrid[class*="tg-col"].tg-col-lg-6 .mx-templategrid-item{width:50% !important}.mx-templategrid[class*="tg-col"].tg-col-lg-5 .mx-templategrid-item{width:41.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-lg-4 .mx-templategrid-item{width:33.33333333% !important}.mx-templategrid[class*="tg-col"].tg-col-lg-3 .mx-templategrid-item{width:25% !important}.mx-templategrid[class*="tg-col"].tg-col-lg-2 .mx-templategrid-item{width:16.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-lg-1 .mx-templategrid-item{width:8.33333333% !important}}p{line-height:1.78571}label{padding-top:0}.mx-title{margin:15px 0 30px 0;color:#17347B;font-size:31px;font-weight:normal}h1,.h1,.h1>*{font-size:31px}h2,.h2,.h2>*{font-size:26px}h3,.h3,.h3>*{font-size:24px}h4,.h4,.h4>*{font-size:18px}h5,.h5,.h5>*{font-size:14px}h6,.h6,.h6>*{font-size:12px}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{margin:15px 0 30px 0;color:#17347B;font-weight:normal;line-height:1.3}.text-small{font-size:12px !important}.text-large{font-size:16px !important}.text-light,.text-light>*,.text-light label{font-weight:100 !important}.text-normal,.text-normal>*,.text-normal label{font-weight:normal !important}.text-semibold,.text-semibold>*,.text-semibold label{font-weight:600 !important}.text-bold,.text-bold>*,.text-bold label{font-weight:bold !important}.text-default,.text-default:hover{color:#555 !important}.text-primary,.text-primary:hover{color:#0595DB !important}.text-info,.text-info:hover{color:#48B0F7 !important}.text-success,.text-success:hover{color:#76CA02 !important}.text-warning,.text-warning:hover{color:#F99B1D !important}.text-danger,.text-danger:hover{color:#ED1C24 !important}.text-header{color:#17347B !important}.text-detail{color:#888 !important}.text-white{color:#ffffff}.text-left{text-align:left !important}.text-center{text-align:center !important}.text-right{text-align:right !important}.text-justify{text-align:justify !important}.text-lowercase{text-transform:lowercase !important}.text-uppercase{text-transform:uppercase !important}.text-capitalize{text-transform:capitalize !important}.text-break{word-break:break-all !important;word-break:break-word !important;-ms-word-break:break-all !important;-webkit-hyphens:auto !important;-moz-hyphens:auto !important;hyphens:auto !important}.text-nowrap{white-space:nowrap !important}.text-nowrap{overflow:hidden !important;max-width:100% !important;white-space:nowrap !important;text-overflow:ellipsis !important}.mx-layoutgrid{width:100%;margin-right:auto;margin-left:auto;padding-right:15px;padding-left:15px}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.row::before,.row::after{content:normal}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*="col-"]{padding-right:0;padding-left:0}.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col,.col-auto,.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,.col-sm,.col-sm-auto,.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,.col-md,.col-md-auto,.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,.col-lg,.col-lg-auto,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;max-width:100%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1,.col-offset-1{margin-left:8.333333%}.offset-2,.col-offset-2{margin-left:16.666667%}.offset-3,.col-offset-3{margin-left:25%}.offset-4,.col-offset-4{margin-left:33.333333%}.offset-5,.col-offset-5{margin-left:41.666667%}.offset-6,.col-offset-6{margin-left:50%}.offset-7,.col-offset-7{margin-left:58.333333%}.offset-8,.col-offset-8{margin-left:66.666667%}.offset-9,.col-offset-9{margin-left:75%}.offset-10,.col-offset-10{margin-left:83.333333%}.offset-11,.col-offset-11{margin-left:91.666667%}@media (min-width: 576px){.mx-layoutgrid-fixed{max-width:540px}}@media (min-width: 768px){.mx-layoutgrid-fixed{max-width:720px}}@media (min-width: 992px){.mx-layoutgrid-fixed{max-width:960px}}@media (min-width: 1200px){.mx-layoutgrid-fixed{max-width:1140px}}@media (min-width: 576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0,.col-sm-offset-0{margin-left:0}.offset-sm-1,.col-sm-offset-1{margin-left:8.333333%}.offset-sm-2,.col-sm-offset-2{margin-left:16.666667%}.offset-sm-3,.col-sm-offset-3{margin-left:25%}.offset-sm-4,.col-sm-offset-4{margin-left:33.333333%}.offset-sm-5,.col-sm-offset-5{margin-left:41.666667%}.offset-sm-6,.col-sm-offset-6{margin-left:50%}.offset-sm-7,.col-sm-offset-7{margin-left:58.333333%}.offset-sm-8,.col-sm-offset-8{margin-left:66.666667%}.offset-sm-9,.col-sm-offset-9{margin-left:75%}.offset-sm-10,.col-sm-offset-10{margin-left:83.333333%}.offset-sm-11,.col-sm-offset-11{margin-left:91.666667%}}@media (min-width: 768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0,.col-md-offset-0{margin-left:0}.offset-md-1,.col-md-offset-1{margin-left:8.333333%}.offset-md-2,.col-md-offset-2{margin-left:16.666667%}.offset-md-3,.col-md-offset-3{margin-left:25%}.offset-md-4,.col-md-offset-4{margin-left:33.333333%}.offset-md-5,.col-md-offset-5{margin-left:41.666667%}.offset-md-6,.col-md-offset-6{margin-left:50%}.offset-md-7,.col-md-offset-7{margin-left:58.333333%}.offset-md-8,.col-md-offset-8{margin-left:66.666667%}.offset-md-9,.col-md-offset-9{margin-left:75%}.offset-md-10,.col-md-offset-10{margin-left:83.333333%}.offset-md-11,.col-md-offset-11{margin-left:91.666667%}}@media (min-width: 992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0,.col-lg-offset-0{margin-left:0}.offset-lg-1,.col-lg-offset-1{margin-left:8.333333%}.offset-lg-2,.col-lg-offset-2{margin-left:16.666667%}.offset-lg-3,.col-lg-offset-3{margin-left:25%}.offset-lg-4,.col-lg-offset-4{margin-left:33.333333%}.offset-lg-5,.col-lg-offset-5{margin-left:41.666667%}.offset-lg-6,.col-lg-offset-6{margin-left:50%}.offset-lg-7,.col-lg-offset-7{margin-left:58.333333%}.offset-lg-8,.col-lg-offset-8{margin-left:66.666667%}.offset-lg-9,.col-lg-offset-9{margin-left:75%}.offset-lg-10,.col-lg-offset-10{margin-left:83.333333%}.offset-lg-11,.col-lg-offset-11{margin-left:91.666667%}}@media (min-width: 1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0,.col-xl-offset-0{margin-left:0}.offset-xl-1,.col-xl-offset-1{margin-left:8.333333%}.offset-xl-2,.col-xl-offset-2{margin-left:16.666667%}.offset-xl-3,.col-xl-offset-3{margin-left:25%}.offset-xl-4,.col-xl-offset-4{margin-left:33.333333%}.offset-xl-5,.col-xl-offset-5{margin-left:41.666667%}.offset-xl-6,.col-xl-offset-6{margin-left:50%}.offset-xl-7,.col-xl-offset-7{margin-left:58.333333%}.offset-xl-8,.col-xl-offset-8{margin-left:66.666667%}.offset-xl-9,.col-xl-offset-9{margin-left:75%}.offset-xl-10,.col-xl-offset-10{margin-left:83.333333%}.offset-xl-11,.col-xl-offset-11{margin-left:91.666667%}}.mx-progress{color:#555;background:#F5F8FD}.mx-progress .mx-progress-message{color:#555}.mx-progress .mx-progress-indicator{position:relative;overflow:hidden;width:100%;max-width:100%;height:2px;margin:auto;padding:0;border-radius:0;background:#eee}.mx-progress .mx-progress-indicator:before,.mx-progress .mx-progress-indicator:after{position:absolute;top:0;left:0;display:block;width:50%;height:2px;content:"";transform:translate3d(-100%, 0, 0);background:#0595DB}.mx-progress .mx-progress-indicator::before{animation:loader 2s infinite}.mx-progress .mx-progress-indicator::after{animation:loader 2s -2s infinite}@keyframes loader{0%{transform:translate3d(-100%, 0, 0)}100%{transform:translate3d(200%, 0, 0)}}.widget-timeline-date-header{display:inline-block;width:110px;overflow-wrap:break-word;padding:8px;text-align:center;border:1px solid #D7D7D7;border-radius:30px}.widget-timeline-events-wrapper{display:flex;flex:1;margin-left:55px;padding-top:35px}.widget-timeline-events-wrapper ul{padding:0;list-style:none;margin-bottom:0}.widget-timeline-title{color:#17347B;font-weight:600;margin:0 0 10px 0}.widget-timeline-description{color:#888}.widget-timeline-event{position:relative;margin-left:9px;padding-left:30px;padding-bottom:20px}.widget-timeline-event:not(:last-of-type){border-left:1px solid #D7D7D7}.widget-timeline-event.clickable{cursor:pointer;transition:background 0.8s}.widget-timeline-event.clickable:hover .widget-timeline-title{color:#dadcde}.widget-timeline-icon-wrapper{position:absolute;top:0;left:0;display:flex;justify-content:center;align-items:center;width:18px;height:18px;transform:translateX(-50%)}.widget-timeline-icon-wrapper .glyphicon{font-size:18px}.widget-timeline-icon-wrapper img{max-width:18px;max-height:18px}.widget-timeline-content-wrapper .widget-timeline-date-time-wrapper{margin-right:15px}.widget-timeline-content-wrapper .widget-timeline-info-wrapper{flex-direction:column}.widget-timeline-icon-circle{width:18px;height:18px;border-radius:50%;background-color:#0595DB}.widget-timeline-no-divider{padding-bottom:0;padding-top:0;margin-left:0}.widget-timeline-flex-container{display:flex}.d-none{display:none !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.show,.d-block{display:block !important}.table,.d-table{display:table !important}.table-row,.d-table-row{display:table-row !important}.table-cell,.d-table-cell{display:table-cell !important}.hide,.hidden{display:none !important;visibility:hidden !important}.invisible{visibility:hidden !important}.display-ie8-only:not([attr*=""]){display:none !important;padding:0 !important}.list-nostyle ul{margin:0 !important;padding:0 !important}.list-nostyle ul li{list-style-type:none !important}.nowrap,.nowrap *{overflow:hidden !important;white-space:nowrap !important;text-overflow:ellipsis !important}.table{display:table !important}.table-row{display:table-row !important}.table-cell{display:table-cell !important}.pull-left{float:left !important}.pull-right{float:right !important}.align-top{vertical-align:top !important}.align-middle{vertical-align:middle !important}.align-bottom{vertical-align:bottom !important}.row-left{display:flex !important;align-items:center !important;flex-flow:row !important;justify-content:flex-start !important}.row-center{display:flex !important;align-items:center !important;flex-flow:row !important;justify-content:center !important}.row-right{display:flex !important;align-items:center !important;flex-flow:row !important;justify-content:flex-end !important}.col-left{display:flex !important;align-items:flex-start !important;flex-direction:column !important;justify-content:center !important}.col-center{display:flex !important;align-items:center !important;flex-direction:column !important;justify-content:center !important}.col-right{display:flex !important;align-items:flex-end !important;flex-direction:column !important;justify-content:center !important}@media (max-width: 767px){.hide-phone{display:none !important}}@media (min-width: 768px) and (max-width: 991px){.hide-tablet{display:none !important}}@media (min-width: 992px){.hide-desktop{display:none !important}}@media (max-width: 575px){.hide-xs,.hidden-xs,.d-xs-none{display:none !important}.d-xs-flex{display:flex !important}.d-xs-inline-flex{display:inline-flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-block{display:block !important}.d-xs-table{display:table !important}.d-xs-table-row{display:table-row !important}.d-xs-table-cell{display:table-cell !important}}@media (min-width: 576px) and (max-width: 767px){.hide-sm,.hidden-sm,.d-sm-none{display:none !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}}@media (min-width: 768px) and (max-width: 991px){.hide-md,.hidden-md,.d-md-none{display:none !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}}@media (min-width: 992px) and (max-width: 1200px){.hide-lg,.hidden-lg,.d-lg-none{display:none !important}.d-lg-flex{display:flex !important}.d-lg-inline-flex{display:inline-flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}}@media (min-width: 1200px){.hide-xl,.hidden-xl,.d-xl-none{display:none !important}.d-xl-flex{display:flex !important}.d-xl-inline-flex{display:inline-flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}}.mx-tooltip .dijitTooltipContainer{border-width:1px;border-color:#888;border-radius:4px;background:#ffffff;box-shadow:0 6px 12px rgba(0,0,0,0.175)}.mx-tooltip .dijitTooltipContainer .mx-tooltip-content{padding:10px}.mx-tooltip .dijitTooltipContainer .form-group{margin-bottom:5px}.mx-tooltip .dijitTooltipConnector{width:0;height:0;margin-left:-10px;border-width:10px 10px 10px 0;border-style:solid;border-color:transparent;border-right-color:#888}.dijitBorderContainer{padding:5px;background-color:#fcfcfc}.dijitBorderContainer .dijitSplitterV,.dijitBorderContainer .dijitGutterV{width:5px;border:0;background:#fcfcfc}.dijitBorderContainer .dijitSplitterH,.dijitBorderContainer .dijitGutterH{height:5px;border:0;background:#fcfcfc}.dijitBorderContainer .dijitSplitterH .dijitSplitterThumb{top:2px;width:19px;height:1px;background:#b0b0b0}.dijitBorderContainer .dijitSplitterV .dijitSplitterThumb{left:2px;width:1px;height:19px;background:#b0b0b0}.dijitBorderContainer .dijitSplitContainer-child,.dijitBorderContainer .dijitBorderContainer-child{border:1px solid #cccccc}.dijitBorderContainer .dijitBorderContainer-dijitTabContainerTop,.dijitBorderContainer .dijitBorderContainer-dijitTabContainerBottom,.dijitBorderContainer .dijitBorderContainer-dijitTabContainerLeft,.dijitBorderContainer .dijitBorderContainer-dijitTabContainerRight{border:none}.dijitBorderContainer .dijitBorderContainer-dijitBorderContainer{padding:0;border:none}.dijitBorderContainer .dijitSplitterActive{margin:0;opacity:0.6;background-color:#aaaaaa;background-image:none;font-size:1px;filter:alpha(opacity=60)}.dijitBorderContainer .dijitSplitContainer-dijitContentPane,.dijitBorderContainer .dijitBorderContainer-dijitContentPane{padding:5px;background-color:#ffffff}.dijitMenuPopup{margin-top:10px}.dijitMenuPopup .dijitMenu{display:block;width:200px !important;margin-top:0;padding:12px 10px;border-radius:3px;background:#252C36}.dijitMenuPopup .dijitMenu:after{position:absolute;bottom:100%;left:20px;width:0;height:0;margin-left:-10px;content:' ';pointer-events:none;border:medium solid transparent;border-width:10px;border-bottom-color:#252C36}.dijitMenuPopup .dijitMenu .dijitMenuItem{background:transparent}.dijitMenuPopup .dijitMenu .dijitMenuItem .dijitMenuItemLabel{display:block;overflow:hidden;width:180px !important;padding:10px;text-overflow:ellipsis;color:#ffffff;border-radius:3px}.dijitMenuPopup .dijitMenu .dijitMenuItem.dijitMenuItemHover{background:none}.dijitMenuPopup .dijitMenu .dijitMenuItem.dijitMenuItemHover .dijitMenuItemLabel{background:#0595DB}.dijitMenuPopup .dijitMenu .tg_newlabelmenuitem .dijitMenuItemLabel{font-weight:bold}.dijitMenuPopup .dijitMenu .dijitMenuSeparator td{padding:0;border-bottom-width:3px}.dijitMenuPopup .dijitMenu .dijitMenuSeparator .dijitMenuSeparatorIconCell>div{margin:0}div.widget-progress-bar .progress-bar-default{background-color:#ddd}div.widget-progress-bar .progress-bar-primary{background-color:#0595DB}div.widget-progress-bar .progress-bar-success{background-color:#76CA02}div.widget-progress-bar .progress-bar-info{background-color:#48B0F7}div.widget-progress-bar .progress-bar-warning{background-color:#F99B1D}div.widget-progress-bar .progress-bar-danger{background-color:#ED1C24}div.widget-progress-bar .progress-bar-inverse{background-color:#252C36}div.widget-progress-bar-alert.widget-progress-bar-text-contrast .progress-bar{color:#8e1116}div.widget-progress-bar-text-contrast .progress-bar{color:#555}path.widget-progress-circle-path{stroke:#0595DB}.widget-progress-circle-primary path.widget-progress-circle-path{stroke:#0595DB}.widget-progress-circle-primary .progressbar-text{color:#0595DB !important}.widget-progress-circle-info path.widget-progress-circle-path{stroke:#48B0F7}.widget-progress-circle-info .progressbar-text{color:#48B0F7 !important}.widget-progress-circle-success path.widget-progress-circle-path{stroke:#76CA02}.widget-progress-circle-success .progressbar-text{color:#76CA02 !important}.widget-progress-circle-warning path.widget-progress-circle-path{stroke:#F99B1D}.widget-progress-circle-warning .progressbar-text{color:#F99B1D !important}.widget-progress-circle-danger path.widget-progress-circle-path{stroke:#ED1C24}.widget-progress-circle-danger .progressbar-text{color:#ED1C24 !important}.widget-progress-circle-inverse path.widget-progress-circle-path{stroke:#252C36}.widget-progress-circle-inverse .progressbar-text{color:#252C36 !important}div.widget-range-slider .rc-slider-handle,div.widget-range-slider .rc-slider-dot-active{border-color:#ddd}div.widget-range-slider .rc-slider-handle:active,div.widget-range-slider .rc-slider-dot-active:active{border-color:#ddd;box-shadow:none}div.widget-range-slider .rc-slider-handle:hover,div.widget-range-slider .rc-slider-dot-active:hover{border-color:#ddd}div.widget-range-slider.has-error .rc-slider-track,div.widget-range-slider.has-error .rc-slider-rail{background-color:#ED1C24}div.widget-range-slider-primary .rc-slider-track{background-color:#0595DB}div.widget-range-slider-info .rc-slider-track{background-color:#48B0F7}div.widget-range-slider-success .rc-slider-track{background-color:#76CA02}div.widget-range-slider-warning .rc-slider-track{background-color:#F99B1D}div.widget-range-slider-danger .rc-slider-track{background-color:#ED1C24}div.widget-range-slider-inverse .rc-slider-track{background-color:#252C36}.rc-slider-tooltip{z-index:999}div.widget-slider .rc-slider-handle,div.widget-slider .rc-slider-dot-active{border-color:#ddd}div.widget-slider .rc-slider-handle:active,div.widget-slider .rc-slider-dot-active:active{border-color:#ddd}div.widget-slider .rc-slider-handle:hover,div.widget-slider .rc-slider-dot-active:hover{border-color:#ddd}div.widget-slider.has-error .rc-slider-track,div.widget-slider.has-error .rc-slider-rail{background-color:#ED1C24}div.widget-slider-primary .rc-slider-track{background-color:#0595DB}div.widget-slider-info .rc-slider-track{background-color:#48B0F7}div.widget-slider-success .rc-slider-track{background-color:#76CA02}div.widget-slider-warning .rc-slider-track{background-color:#F99B1D}div.widget-slider-danger .rc-slider-track{background-color:#ED1C24}div.widget-slider-inverse .rc-slider-track{background-color:#252C36}span.widget-star-rating-full-default{color:#ddd}span.widget-star-rating-full-primary{color:#0595DB}span.widget-star-rating-full-success{color:#76CA02}span.widget-star-rating-full-info{color:#48B0F7}span.widget-star-rating-full-warning{color:#F99B1D}span.widget-star-rating-full-danger{color:#ED1C24}span.widget-star-rating-full-inverse{color:#252C36}.widget-switch-btn-wrapper:focus{outline:1px solid #0595DB}div.widget-switch.iOS .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-default{border-color:#64bd63;background-color:#64bd63;box-shadow:#64bd63 0 0 0 16px inset}div.widget-switch.iOS .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-success{border-color:#76CA02;background-color:#76CA02;box-shadow:#76CA02 0 0 0 16px inset}div.widget-switch.iOS .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-info{border-color:#48B0F7;background-color:#48B0F7;box-shadow:#48B0F7 0 0 0 16px inset}div.widget-switch.iOS .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-primary{border-color:#0595DB;background-color:#0595DB;box-shadow:#0595DB 0 0 0 16px inset}div.widget-switch.iOS .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-warning{border-color:#F99B1D;background-color:#F99B1D;box-shadow:#F99B1D 0 0 0 16px inset}div.widget-switch.iOS .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-danger{border-color:#ED1C24;background-color:#ED1C24;box-shadow:#ED1C24 0 0 0 16px inset}div.widget-switch.iOS .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-inverse{border-color:#252C36;background-color:#252C36;box-shadow:#252C36 0 0 0 16px inset}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-default{background-color:#92cec7}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-default .widget-switch-btn{background:#6FBEB5}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-success{background-color:#94fd03}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-success .widget-switch-btn{background:#76CA02}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-info{background-color:#79c5f9}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-info .widget-switch-btn{background:#48B0F7}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-primary{background-color:#19b0fa}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-primary .widget-switch-btn{background:#0595DB}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-warning{background-color:#fab14f}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-warning .widget-switch-btn{background:#F99B1D}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-danger{background-color:#f14b52}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-danger .widget-switch-btn{background:#ED1C24}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-inverse{background-color:#3a4554}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-inverse .widget-switch-btn{background:#252C36}div.widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-default{border-color:#64bd63;background-color:#64bd63;box-shadow:#64bd63 0 0 0 16px inset}div.widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-success{border-color:#76CA02;background-color:#76CA02;box-shadow:#76CA02 0 0 0 16px inset}div.widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-info{border-color:#48B0F7;background-color:#48B0F7;box-shadow:#48B0F7 0 0 0 16px inset}div.widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-primary{border-color:#0595DB;background-color:#0595DB;box-shadow:#0595DB 0 0 0 16px inset}div.widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-warning{border-color:#F99B1D;background-color:#F99B1D;box-shadow:#F99B1D 0 0 0 16px inset}div.widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-danger{border-color:#ED1C24;background-color:#ED1C24;box-shadow:#ED1C24 0 0 0 16px inset}div.widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-inverse{border-color:#252C36;background-color:#252C36;box-shadow:#252C36 0 0 0 16px inset}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-default{background-color:#92cec7}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-default .widget-switch-btn{background:#6FBEB5}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-success{background-color:#94fd03}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-success .widget-switch-btn{background:#76CA02}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-info{background-color:#79c5f9}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-info .widget-switch-btn{background:#48B0F7}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-primary{background-color:#19b0fa}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-primary .widget-switch-btn{background:#0595DB}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-warning{background-color:#fab14f}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-warning .widget-switch-btn{background:#F99B1D}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-danger{background-color:#f14b52}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-danger .widget-switch-btn{background:#ED1C24}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-inverse{background-color:#3a4554}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-inverse .widget-switch-btn{background:#252C36}html div.dj_ios .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-default{border-color:#64bd63;background-color:#64bd63;box-shadow:#64bd63 0 0 0 16px inset}html div.dj_ios .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-success{border-color:#76CA02;background-color:#76CA02;box-shadow:#76CA02 0 0 0 16px inset}html div.dj_ios .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-info{border-color:#48B0F7;background-color:#48B0F7;box-shadow:#48B0F7 0 0 0 16px inset}html div.dj_ios .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-primary{border-color:#0595DB;background-color:#0595DB;box-shadow:#0595DB 0 0 0 16px inset}html div.dj_ios .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-warning{border-color:#F99B1D;background-color:#F99B1D;box-shadow:#F99B1D 0 0 0 16px inset}html div.dj_ios .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-danger{border-color:#ED1C24;background-color:#ED1C24;box-shadow:#ED1C24 0 0 0 16px inset}html div.dj_ios .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-inverse{border-color:#252C36;background-color:#252C36;box-shadow:#252C36 0 0 0 16px inset}.breadcrumb{margin:0;padding:0;border-radius:0;background-color:transparent;font-size:14px}.breadcrumb-item{display:inline-block;margin:0}.breadcrumb-item:last-child{color:#555}.breadcrumb-item:last-child a{text-decoration:none}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:10px;padding-left:10px;content:"/";color:#888}.breadcrumb-large{font-size:24px}.breadcrumb-underline{padding-bottom:15px;border-bottom:1px solid #D7D7D7}.card{padding:30px;border:1px solid #D7D7D7;border-radius:4px;background-color:#FFFFFF}.card-title{margin-top:0}.cardaction .card-image .glyphicon{font-size:58px}.cardmetrics .card-title{margin-bottom:0}.cardmetrics .card-image{width:100px;height:auto}.cardmetrics .card-image.btn{width:100px;height:100px;padding:0;cursor:default;pointer-events:none;font-size:40px}.cardmetrics .card-counter{margin:0;font-size:64px}.cardinfo .card-text{margin-bottom:30px}.textwithicon{overflow:hidden;max-width:100%;margin-bottom:15px;text-overflow:ellipsis}.textwithicon .textwithicon-icon,.textwithicon .textwithicon-text{display:inline-block;vertical-align:middle}.textwithicon .textwithicon-icon{margin-right:15px;padding:0;color:#0595DB;border:0;background:transparent;font-size:23px}.socialprofiles .socialprofiles-title{display:block;margin-bottom:10px;font-weight:bold}.socialprofiles .socialprofiles-button{width:24px;height:24px;margin-right:15px;padding:0;border-radius:24px}.socialprofiles .socialprofiles-button .glyphicon{margin:0}.cardtabs{padding:0}.cardtabs-tabs{margin:0}.cardtabs-tabs ul.mx-tabcontainer-tabs{display:flex;margin:0;background-color:#f7f7f7}.cardtabs-tabs ul.mx-tabcontainer-tabs li{flex:1 1 auto;text-align:center}.cardtabs-tabs ul.mx-tabcontainer-tabs li a,.cardtabs-tabs ul.mx-tabcontainer-tabs li a:hover,.cardtabs-tabs ul.mx-tabcontainer-tabs li a:focus{border-top-width:0;border-right-width:1px;border-left-width:0}.cardtabs-tabs ul.mx-tabcontainer-tabs li:first-child a{border-radius:4px 0 0 0}.cardtabs-tabs ul.mx-tabcontainer-tabs li:last-child a{border-radius:0 4px 0 0}@media (max-width: 767px){.cardtabs-tabs .mx-tabcontainer-pane{padding:15px}}@media (min-width: 768px){.cardtabs-tabs .mx-tabcontainer-pane{padding:30px}}@media (min-width: 992px){.cardtabs-tabs .mx-tabcontainer-pane{padding:30px}}.cardproduct,.cardproduct2,.cardproduct3{padding:0}.cardproduct-header{position:relative;overflow:hidden;height:200px}.cardproduct-header .card-image{position:absolute;top:0;left:0;width:100%;height:auto}.cardproduct-overlay{position:absolute;bottom:0;left:0;width:100%;padding:20px 30px;background:rgba(0,0,0,0.6)}.cardproduct-overlay-category,.cardproduct-overlay-title{margin:0;color:#FFFFFF}.cardproduct-footer .col{padding:20px 30px}.cardproduct-footer .col .widget-star-rating-font{font-size:20px}.cardproduct-name{margin:0}.cardproduct-btn{display:flex;align-items:center;height:100%;padding:30px;border-left:1px solid #D7D7D7}.cardproduct2 .cardproduct-header::after{position:absolute;bottom:0;left:0;display:block;width:100%;padding:20px 30px;content:"";background:rgba(0,0,0,0.6);background:-moz-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(250,250,250,0) 2%, rgba(0,0,0,0.99) 99%, #000 100%);background:-webkit-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(250,250,250,0) 2%, rgba(0,0,0,0.99) 99%, #000 100%);background:linear-gradient(to bottom, rgba(255,255,255,0) 0%, rgba(250,250,250,0) 2%, rgba(0,0,0,0.99) 99%, #000 100%)}.cardproduct3 .cardproduct-header{height:320px}.cardproduct3 .cardproduct-header img{width:100%;height:100%;object-fit:cover}.cardproduct3 .cardproduct-overlay{min-height:100px;padding:30px;background:-moz-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(250,250,250,0) 8%, rgba(0,0,0,0.99) 121%, #000 100%);background:-webkit-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(250,250,250,0) 8%, rgba(0,0,0,0.99) 121%, #000 100%);background:linear-gradient(to bottom, rgba(255,255,255,0) 0%, rgba(250,250,250,0) 8%, rgba(0,0,0,0.99) 121%, #000 100%);font-size:14px}.cardstatus{padding:20px}.cardstatus .card-linkicon{font-size:30px}.cardstatus .cardstatus-status{margin-bottom:5px}.cardprogress-state{width:80px;height:80px;padding:0;cursor:default;pointer-events:none;border-radius:100%;font-size:28px}.cardhighlight{border-top:4px solid #0595DB}.cardchat{overflow:hidden;padding:0}.cardchat .chat{height:400px}@media screen and (max-width: 991px){.widget-charts:not([height]),.widget-charts-line:not([height]){padding-bottom:80% !important}}@media screen and (max-width: 1199px){.cardprogress .cardprogress-state{width:60px;height:60px;font-size:24px}}.chat{display:flex;flex-direction:column;height:100%;background-color:#F5F8FD}.chat-content{display:flex;overflow:auto;flex:1;flex-direction:column;justify-content:flex-end}.chat-content .chat-list{position:relative;overflow:auto}.chat-content .chat-list ul{display:flex;flex-direction:column-reverse;margin-bottom:15px}.chat-content .chat-list li{padding:15px 30px;animation:fadeIn 0.2s;background-color:transparent;animation-fill-mode:both}.chat-content .chat-list li,.chat-content .chat-list li:last-child{border:0}.chat-content .chat-list .mx-listview-loadMore{position:absolute;top:0;right:0;left:0;display:block;width:50%;margin:15px auto;color:#FFFFFF;background-color:#0595DB;box-shadow:0 2px 20px 0 rgba(0,0,0,0.05)}.chat-message{display:flex}.chat-avatar{margin:0 20px 0 0;border-radius:50%}.chat-message-content{display:inline-flex;flex-direction:column}.chat-message-balloon{position:relative;display:flex;flex-direction:column;padding:10px 15px;border-radius:5px;background-color:#fff}.chat-message-balloon::after{position:absolute;top:10px;right:100%;width:0;height:0;content:'';border:10px solid transparent;border-top:0;border-right-color:#fff;border-left:0}.chat-message-time{padding-top:2px}.chat-message-time .form-control-static,.chat-message-time .form-group div[class*='textBox']>.control-label,.form-group .chat-message-time div[class*='textBox']>.control-label,.chat-message-time .form-group div[class*='textArea']>.control-label,.form-group .chat-message-time div[class*='textArea']>.control-label,.chat-message-time .form-group div[class*='datePicker']>.control-label,.form-group .chat-message-time div[class*='datePicker']>.control-label{border:0}.chat-footer{z-index:1;padding:15px;background-color:#fff;box-shadow:0 2px 20px 0 rgba(0,0,0,0.05)}.chat-input{display:flex}.chat-input .chat-textbox{flex:1;margin-right:30px;margin-bottom:0}.chat-input .chat-textbox .form-control{border:0}.chat-message-self{justify-content:flex-end}.chat-message-self .chat-avatar{margin:0 0 0 20px}.chat-message-self .chat-message-balloon{background-color:#cdeaf8}.chat-message-self .chat-message-balloon::after{left:100%;border:10px solid transparent;border-top:0;border-right:0;border-left-color:#cdeaf8}.chat-message-self .chat-message-time{text-align:right}.controlgroup .btn,.controlgroup .btn-group{margin-right:5px;margin-bottom:5px}.controlgroup .btn:last-child,.controlgroup .btn-group:last-child{margin-right:0}.controlgroup .btn .btn,.controlgroup .btn-group .btn{margin-right:0;margin-bottom:0}.controlgroup .btn-group .btn+.btn{margin-left:-1px}.fullpageblock{position:relative;height:100%;min-height:100%}.fullpageblock .fullheight{height:100% !important}.fullpageblock .fullheight>.mx-dataview-content{height:inherit !important}.fullpageblock .fullpage-overlay{position:absolute;z-index:10;bottom:0;left:0;width:100%}.pageheader{border-bottom:1px solid #D7D7D7;background:#F5F8FD}.mx-scrollcontainer .mx-placeholder .mx-layoutgrid .pageheader{background:transparent}@media (max-width: 767px){.mx-scrollcontainer .mx-placeholder .mx-layoutgrid .pageheader{margin-bottom:15px}}@media (min-width: 768px){.mx-scrollcontainer .mx-placeholder .mx-layoutgrid .pageheader{margin-bottom:30px}}@media (min-width: 992px){.mx-scrollcontainer .mx-placeholder .mx-layoutgrid .pageheader{margin-bottom:30px}}@media (max-width: 767px){.mx-scrollcontainer .mx-placeholder .mx-layoutgrid .pageheader{padding-bottom:15px}}@media (min-width: 768px){.mx-scrollcontainer .mx-placeholder .mx-layoutgrid .pageheader{padding-bottom:30px}}@media (min-width: 992px){.mx-scrollcontainer .mx-placeholder .mx-layoutgrid .pageheader{padding-bottom:30px}}.pageheader-type{margin:0}.pageheader-title{margin:0}.pageheader-subtitle{margin:0}.pageheaderwithsearch .pageheader-title{margin-bottom:1em}.heroheader{border-bottom:1px solid #D7D7D7;background:#F5F8FD}.heroheader-title{margin:0 0 10px 0}.heroheader-subtitle{margin:0;padding:0 15px}.heroheader-subtitle::before{display:block;max-width:330px;height:1px;margin:auto auto 10px auto;content:"";background-color:#e1e1e1}.heroheader1{background-image:linear-gradient(152deg, #0CC7F0 0%, #087ECC 51%, #077AC9 55%, #0659B9 78%)}.heroheader1 .heroheader-title{margin-bottom:10px;color:#FFFFFF}.heroheader1 .heroheader-subtitle{padding:0;color:#FFFFFF}.heroheader1 .heroheader-subtitle::before{display:none}.heroheadermap{padding:0 !important}.heroheadermap-controls{padding:30px;background:#F5F8FD}.heroheaderproduct{position:relative;overflow:hidden;height:300px;background-color:#000000}.heroheaderproduct .heroheaderproduct-backgroundimage{position:absolute;z-index:0;top:0;width:100%;opacity:0.7;filter:blur(5px)}.heroheaderproduct .heroheaderproduct-overlay{position:absolute;z-index:1;top:50%;left:50%;transform:translate(-50%, -50%)}.heroheaderexpense .heroheaderexpense-title{font-size:72px}.heroheaderexpense .heroheaderexpense-type{align-items:center}.heroheaderexpense .heroheaderexpense-type::before{flex-grow:1;height:1px;margin-right:10px;content:"";background-color:#D2D2D2}.formblock-title{margin-bottom:15px;padding-bottom:15px;border-bottom:1px solid #D7D7D7}.masterdetail .masterdetail-master .controlgroup{margin-bottom:15px}@media (max-width: 992px) and (max-width: 767px){.masterdetail .masterdetail-master{margin-bottom:15px}}@media (max-width: 992px) and (min-width: 768px){.masterdetail .masterdetail-master{margin-bottom:30px}}@media (max-width: 992px) and (min-width: 992px){.masterdetail .masterdetail-master{margin-bottom:30px}}@media (min-width: 992px){.masterdetail .masterdetail-master{border-right:1px solid #D7D7D7}.masterdetail .masterdetail-master .mx-listview-searchbar{margin:15px}.masterdetail .masterdetail-master .controlgroup{padding:15px;border-bottom:1px solid #D7D7D7}}@media (min-width: 992px) and (max-width: 767px){.masterdetail .masterdetail-detail{padding:15px 15px 15px 15px}}@media (min-width: 992px) and (min-width: 768px){.masterdetail .masterdetail-detail{padding:30px 30px 30px 30px}}@media (min-width: 992px) and (min-width: 992px){.masterdetail .masterdetail-detail{padding:30px 30px 30px 30px}}@media (max-width: 767px){.masterdetailvertical .masterdetail-master{margin-bottom:15px}}@media (min-width: 768px){.masterdetailvertical .masterdetail-master{margin-bottom:30px}}@media (min-width: 992px){.masterdetailvertical .masterdetail-master{margin-bottom:30px}}@media (max-width: 767px){.masterdetailvertical .masterdetail-detail{padding-top:15px}}@media (min-width: 768px){.masterdetailvertical .masterdetail-detail{padding-top:30px}}@media (min-width: 992px){.masterdetailvertical .masterdetail-detail{padding-top:30px}}.wizard{display:flex;justify-content:space-between}.wizard .wizard-step{position:relative;width:100%;text-align:center}.wizard .wizard-step::before{position:absolute;z-index:-1;top:30px;display:block;width:100%;height:2px;content:"";background-color:#D7D7D7}.wizard .wizard-step .wizard-step-number{width:60px;height:60px;border-color:#D7D7D7;border-radius:50%;background-color:#FFFFFF;font-size:20px}.wizard .wizard-step .wizard-step-text{display:block;margin-top:15px}.wizard .wizard-step-active .wizard-step-number{color:#FFFFFF;border-color:#0595DB;background-color:#0595DB}.wizard .wizard-step-active .wizard-step-text{color:#0595DB}.wizard .wizard-step-visited .wizard-step-number{color:#FFFFFF;border-color:#76CA02;background-color:#76CA02}.wizardprogress{display:flex;justify-content:space-between}.wizardprogress .wizard-step-text{width:100%}.wizardprogress .wizard-step{position:relative;width:100%;height:50px;margin-left:-25px;padding-left:25px;border:1px solid #D7D7D7;background:#FFFFFF}.wizardprogress .wizard-step a{display:block;overflow:hidden;width:100%;height:100%;padding:14px;white-space:nowrap;text-decoration:none;text-overflow:ellipsis;color:#555}.wizardprogress .wizard-step::before,.wizardprogress .wizard-step::after{position:absolute;z-index:1;left:100%;margin-left:-25px;content:" ";border-style:solid;border-color:transparent}.wizardprogress .wizard-step::after{top:1px;border-width:24px;border-left-color:#FFFFFF}.wizardprogress .wizard-step::before{top:0;border-width:25px;border-left-color:#D7D7D7}.wizardprogress .wizard-step:first-child{margin-left:0;padding-left:0;border-radius:5px 0 0 5px}.wizardprogress .wizard-step:last-child{border-radius:0 5px 5px 0}.wizardprogress .wizard-step:last-child::before,.wizardprogress .wizard-step:last-child::after{display:none}.wizardprogress .wizard-step-active{background:#0595DB}.wizardprogress .wizard-step-active a{text-decoration:none;color:#FFFFFF}.wizardprogress .wizard-step-active::after{border-left-color:#0595DB}.wizardprogress .wizard-step-visited a{color:#0595DB}.timeline .timeline-header{display:inline-block;width:110px;padding:8px;text-align:center;border:1px solid #D7D7D7;border-radius:30px}.timeline-itemwrapper.mx-listview{margin-bottom:0;margin-left:55px;padding:30px 0;border-left:1px solid #D7D7D7}.timeline-itemwrapper.mx-listview>ul>li{position:relative;padding-left:30px}.timeline-itemwrapper.mx-listview>ul>li::before{position:absolute;top:5px;left:-5px;display:block;width:10px;height:10px;content:'';border-radius:50%;background-color:#0595DB}.timeline-itemwrapper.mx-listview li+li{margin-top:30px}.timeline2 .timeline-itemwrapper.mx-listview>ul>li{padding-left:15px}.layout-atlas .toggle-btn>.glyphicon{margin:0}.layout-atlas .region-sidebar{background-color:#252C36}.layout-atlas .region-sidebar .mx-navigationtree .navbar-inner>ul>li>a{padding:0 15px}.layout-atlas .region-sidebar .mx-navigationtree .navbar-inner>ul>li>a .glyphicon{margin-right:10px}.layout-atlas .region-sidebar .toggle-btn{border-color:transparent;border-radius:0;background:transparent}.layout-atlas .region-topbar{position:relative;z-index:1;min-height:60px;border-bottom:1px solid #D7D7D7;background-color:#fff;box-shadow:0 1px 4px 0 rgba(0,0,0,0.14)}.layout-atlas .region-topbar::before{z-index:1;display:block;width:100%;height:4px;content:"";background-color:#0595DB}.layout-atlas .region-topbar .topbar-content{display:flex;align-items:center;min-height:60px}.layout-atlas .region-topbar .toggle-btn{margin-right:15px;padding:5px}.layout-atlas .region-topbar .navbar-brand{display:inline-block;float:none;height:auto;padding:0;line-height:inherit}.layout-atlas .region-topbar .navbar-brand img{display:inline-block;width:auto;height:30px}.layout-atlas .region-topbar .navbar-brand a{margin-left:5px;color:#D7D7D7;font-size:20px}.layout-atlas .region-topbar .navbar-brand a:hover,.layout-atlas .region-topbar .navbar-brand a:focus{text-decoration:none}.layout-atlas .region-topbar .mx-navbar{display:inline-block;margin-left:15px;vertical-align:middle;background:transparent}.layout-atlas .region-topbar .mx-navbar>.mx-navbar-item>a{margin-top:5px;padding:0 20px}.layout-atlas-phone .region-topbar{min-height:45px;border-style:none;background-color:#fff}.layout-atlas-phone .region-topbar::before{display:none}@media (min-width: 768px){.layout-atlas-responsive-default .mx-scrollcontainer:not(.mx-scrollcontainer-open)>.region-sidebar{width:60px !important}.layout-atlas-responsive-default .mx-scrollcontainer:not(.mx-scrollcontainer-open)>.region-sidebar .mx-scrollcontainer-wrapper>.mx-navigationtree ul li.mx-navigationtree-has-items:hover a{background-color:#1d222a}.layout-atlas-responsive-default .mx-scrollcontainer:not(.mx-scrollcontainer-open)>.region-sidebar .mx-scrollcontainer-wrapper>.mx-navigationtree ul li.mx-navigationtree-has-items:hover ul{position:absolute;z-index:100;top:0;bottom:0;left:60px;display:block;overflow-y:auto;min-width:200px;padding-top:10px}.layout-atlas-responsive-default .mx-scrollcontainer:not(.mx-scrollcontainer-open)>.region-sidebar .mx-scrollcontainer-wrapper>.mx-navigationtree ul li.mx-navigationtree-collapsed ul,.layout-atlas-responsive-default .mx-scrollcontainer:not(.mx-scrollcontainer-open)>.region-sidebar .mx-scrollcontainer-wrapper>.mx-navigationtree ul li.mx-navigationtree-has-items ul{display:none}}.layout-atlas-responsive-default .mx-scrollcontainer-slide.mx-scrollcontainer-open>.region-sidebar{width:60px !important}@media (max-width: 767px){.layout-atlas-responsive-default .mx-scrollcontainer-open:not(.mx-scrollcontainer-slide){width:1100px}.layout-atlas-responsive-default .mx-scrollcontainer-slide .toggle-btn{display:inline-block !important}}.layout-atlas-responsive-default .region-sidebar .toggle-btn{width:60px;height:60px;border-color:transparent;border-radius:0;background:transparent}.layout-atlas-responsive-default .region-sidebar .mx-scrollcontainer-wrapper>.mx-navigationtree .navbar-inner>ul>li>a{height:60px}.layout-atlas-responsive-default .region-sidebar .mx-scrollcontainer-wrapper>.mx-navigationtree .navbar-inner>ul>li>a .glyphicon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;margin-left:-5px;padding:10px;border-radius:3px}.layout-atlas-responsive-default .region-sidebar .mx-scrollcontainer-wrapper>.mx-navigationtree .navbar-inner>ul>li>a.active .glyphicon{background:#0595DB}.layout-atlas-responsive-topbar .mx-scrollcontainer-slide:not(.mx-scrollcontainer-open)>.region-sidebar,.layout-atlas-responsive-topbar .mx-scrollcontainer-push:not(.mx-scrollcontainer-open)>.region-sidebar{visibility:hidden}.layout-atlas-responsive-default .region-topbar .toggle-btn,.layout-atlas-responsive-topbar .region-topbar .toggle-btn{display:none}@media (max-width: 767px){.layout-atlas-responsive-default .region-topbar .toggle-btn,.layout-atlas-responsive-topbar .region-topbar .toggle-btn{display:inline-block}}.layout-atlas-responsive-default .mx-scrollcontainer-slide:not(.mx-scrollcontainer-open)>.region-sidebar,.layout-atlas-responsive-topbar .mx-scrollcontainer-slide:not(.mx-scrollcontainer-open)>.region-sidebar{overflow:hidden}.layout-atlas-responsive-default .mx-scrollcontainer-slide.mx-scrollcontainer-open>.region-sidebar>.mx-scrollcontainer-wrapper,.layout-atlas-responsive-topbar .mx-scrollcontainer-slide.mx-scrollcontainer-open>.region-sidebar>.mx-scrollcontainer-wrapper{position:relative}.layout-atlas-responsive-default .mx-scrollcontainer-slide .region-sidebar>.mx-scrollcontainer-wrapper,.layout-atlas-responsive-topbar .mx-scrollcontainer-slide .region-sidebar>.mx-scrollcontainer-wrapper{z-index:2;background-color:inherit}.profile-tablet .mx-scrollcontainer:not(.mx-scrollcontainer-open)>.region-sidebar{overflow-y:hidden}.profile-tablet .mx-scrollcontainer:not(.mx-scrollcontainer-open)>.region-sidebar .mx-scrollcontainer-wrapper{overflow:visible} - -/*# sourceMappingURL=main.css.map */ diff --git a/theme_old/styles/web/css/main.css.map b/theme_old/styles/web/css/main.css.map deleted file mode 100644 index 2f6d31b..0000000 --- a/theme_old/styles/web/css/main.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"main.css","sources":["main.scss","core/_legacy/bootstrap/_bootstrap.scss","core/_legacy/bootstrap/_bootstrap-rtl.scss","core/_legacy/_mxui.scss","app/_custom-variables.scss","core/_variables.scss","core/base/mixins/_animations.scss","core/base/mixins/_spacing.scss","core/base/mixins/_layout-spacing.scss","core/base/mixins/_buttons.scss","core/base/mixins/_groupbox.scss","core/base/_animation.scss","core/base/_flex.scss","core/base/_spacing.scss","core/base/_reset.scss","core/base/_base.scss","core/base/_login.scss","core/widgets/_inputs.scss","core/widgets/_alerts.scss","core/helpers/_alerts.scss","core/helpers/_backgrounds.scss","core/widgets/_buttons.scss","core/helpers/_buttons.scss","core/widgets/_checkbox.scss","core/widgets/_grid.scss","core/widgets/_datagrids.scss","core/helpers/_datagrids.scss","core/widgets/_dataview.scss","core/widgets/_datepicker.scss","core/widgets/_header.scss","core/widgets/_glyphicons.scss","core/widgets/_groupbox.scss","core/helpers/_groupbox.scss","core/helpers/_images.scss","core/widgets/_labels.scss","core/helpers/_labels.scss","core/widgets/_listview.scss","core/helpers/_listview.scss","core/widgets/_modals.scss","core/widgets/_navigationbar.scss","core/helpers/_navigationbar.scss","core/widgets/_navigationlist.scss","core/widgets/_navigationtree.scss","core/helpers/_navigationtree.scss","core/widgets/_popupmenu.scss","core/widgets/_simplemenubar.scss","core/helpers/_simplemenubar.scss","core/widgets/_radiobuttons.scss","core/widgets/_tabcontainer.scss","core/helpers/_tabcontainer.scss","core/widgets/_tables.scss","core/helpers/_tables.scss","core/widgets/_templategrids.scss","core/helpers/_templategrids.scss","core/widgets/_typography.scss","core/helpers/_typography.scss","core/widgets/_layoutgrid.scss","core/widgets/_progress.scss","core/widgets/_timeline.scss","core/helpers/_helperclasses.scss","core/widgetscustom/_dijit-widgets.scss","core/widgetscustom/_progress-bar-theme.scss","core/widgetscustom/_progress-circle-theme.scss","core/widgetscustom/_range-slider-theme.scss","core/widgetscustom/_slider-theme.scss","core/widgetscustom/_star-rating-theme.scss","core/widgetscustom/_switchwidget.scss","ui_resources/atlas_ui_resources/buildingblocks/_breadcrumb.scss","ui_resources/atlas_ui_resources/buildingblocks/_card.scss","ui_resources/atlas_ui_resources/buildingblocks/_chat.scss","ui_resources/atlas_ui_resources/buildingblocks/_controlgroup.scss","ui_resources/atlas_ui_resources/buildingblocks/_pageblocks.scss","ui_resources/atlas_ui_resources/buildingblocks/_pageheader.scss","ui_resources/atlas_ui_resources/buildingblocks/_heroheader.scss","ui_resources/atlas_ui_resources/buildingblocks/_formblock.scss","ui_resources/atlas_ui_resources/buildingblocks/_master-detail.scss","ui_resources/atlas_ui_resources/buildingblocks/_userprofile.scss","ui_resources/atlas_ui_resources/buildingblocks/_wizard.scss","ui_resources/atlas_ui_resources/buildingblocks/_timeline.scss","ui_resources/atlas_ui_resources/layouts/_layout-atlas.scss","ui_resources/atlas_ui_resources/layouts/_layout-atlas-phone.scss","ui_resources/atlas_ui_resources/layouts/_layout-atlas-responsive.scss","ui_resources/atlas_ui_resources/layouts/_layout-atlas-tablet.scss","app/_custom.scss"],"sourcesContent":["// Utilities\n@import 'core/_legacy/bootstrap/bootstrap';\n@import 'core/_legacy/bootstrap/bootstrap-rtl';\n@import 'core/_legacy/mxui';\n\n// Custom variables\n@import 'app/custom-variables';\n\n//================================== CORE ==================================\\\\\n\n// Default variables\n@import 'core/variables';\n\n// Base\n@import 'core/base/mixins/animations';\n@import 'core/base/mixins/spacing';\n@import 'core/base/mixins/layout-spacing';\n@import 'core/base/mixins/buttons';\n@import 'core/base/mixins/groupbox';\n@import 'core/base/animation';\n@import 'core/base/flex';\n@import 'core/base/spacing';\n@import 'core/base/reset';\n@import 'core/base/base';\n@import 'core/base/login';\n\n// Widgets\n@import 'core/widgets/inputs';\n@import 'core/widgets/alerts';\n@import 'core/helpers/alerts';\n@import 'core/helpers/backgrounds';\n@import 'core/widgets/buttons';\n@import 'core/helpers/buttons';\n@import 'core/widgets/checkbox';\n@import 'core/widgets/grid';\n@import 'core/widgets/datagrids';\n@import 'core/helpers/datagrids';\n@import 'core/widgets/dataview';\n@import 'core/widgets/datepicker';\n@import 'core/widgets/header';\n@import 'core/widgets/glyphicons';\n@import 'core/widgets/groupbox';\n@import 'core/helpers/groupbox';\n@import 'core/helpers/images';\n@import 'core/widgets/labels';\n@import 'core/helpers/labels';\n@import 'core/widgets/listview';\n@import 'core/helpers/listview';\n@import 'core/widgets/modals';\n@import 'core/widgets/navigationbar';\n@import 'core/helpers/navigationbar';\n@import 'core/widgets/navigationlist';\n@import 'core/widgets/navigationtree';\n@import 'core/helpers/navigationtree';\n@import 'core/widgets/popupmenu';\n@import 'core/widgets/simplemenubar';\n@import 'core/helpers/simplemenubar';\n@import 'core/widgets/radiobuttons';\n@import 'core/widgets/tabcontainer';\n@import 'core/helpers/tabcontainer';\n@import 'core/widgets/tables';\n@import 'core/helpers/tables';\n@import 'core/widgets/templategrids';\n@import 'core/helpers/templategrids';\n@import 'core/widgets/typography';\n@import 'core/helpers/typography';\n@import 'core/widgets/layoutgrid';\n@import 'core/widgets/progress';\n@import 'core/widgets/timeline';\n@import 'core/helpers/helperclasses';\n\n// Custom widgets\n@import 'core/widgetscustom/dijit-widgets';\n@import 'core/widgetscustom/progress-bar-theme';\n@import 'core/widgetscustom/progress-circle-theme';\n@import 'core/widgetscustom/range-slider-theme';\n@import 'core/widgetscustom/slider-theme';\n@import 'core/widgetscustom/star-rating-theme';\n@import 'core/widgetscustom/switchwidget';\n\n//================================= CUSTOM =================================\\\\\n\n// Building blocks\n@import 'ui_resources/atlas_ui_resources/buildingblocks/breadcrumb';\n@import 'ui_resources/atlas_ui_resources/buildingblocks/card';\n@import 'ui_resources/atlas_ui_resources/buildingblocks/chat';\n@import 'ui_resources/atlas_ui_resources/buildingblocks/controlgroup';\n@import 'ui_resources/atlas_ui_resources/buildingblocks/pageblocks';\n@import 'ui_resources/atlas_ui_resources/buildingblocks/pageheader';\n@import 'ui_resources/atlas_ui_resources/buildingblocks/heroheader';\n@import 'ui_resources/atlas_ui_resources/buildingblocks/formblock';\n@import 'ui_resources/atlas_ui_resources/buildingblocks/master-detail';\n@import 'ui_resources/atlas_ui_resources/buildingblocks/userprofile';\n@import 'ui_resources/atlas_ui_resources/buildingblocks/wizard';\n@import 'ui_resources/atlas_ui_resources/buildingblocks/timeline';\n\n// Layouts\n@import 'ui_resources/atlas_ui_resources/layouts/layout-atlas';\n@import 'ui_resources/atlas_ui_resources/layouts/layout-atlas-phone';\n@import 'ui_resources/atlas_ui_resources/layouts/layout-atlas-responsive';\n@import 'ui_resources/atlas_ui_resources/layouts/layout-atlas-tablet';\n\n// Custom\n@import 'app/custom';\n","/*!\n * Bootstrap v3.3.4 (http://getbootstrap.com)\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n/*! normalize.css v3.0.2 | MIT License | git.io/normalize */\nhtml {\n font-family: sans-serif;\n -webkit-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n}\nbody {\n margin: 0;\n}\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block;\n vertical-align: baseline;\n}\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n[hidden],\ntemplate {\n display: none;\n}\na {\n background-color: transparent;\n}\na:active,\na:hover {\n outline: 0;\n}\nabbr[title] {\n border-bottom: 1px dotted;\n}\nb,\nstrong {\n font-weight: bold;\n}\ndfn {\n font-style: italic;\n}\nh1 {\n margin: 0.67em 0;\n font-size: 2em;\n}\nmark {\n color: #000;\n background: #ff0;\n}\nsmall {\n font-size: 80%;\n}\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\nsup {\n top: -0.5em;\n}\nsub {\n bottom: -0.25em;\n}\nimg {\n border: 0;\n}\nsvg:not(:root) {\n overflow: hidden;\n}\nfigure {\n margin: 1em 40px;\n}\nhr {\n height: 0;\n -webkit-box-sizing: content-box;\n -moz-box-sizing: content-box;\n box-sizing: content-box;\n}\npre {\n overflow: auto;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n margin: 0;\n font: inherit;\n color: inherit;\n}\nbutton {\n overflow: visible;\n}\nbutton,\nselect {\n text-transform: none;\n}\nbutton,\nhtml input[type='button'],\ninput[type='reset'],\ninput[type='submit'] {\n -webkit-appearance: button;\n cursor: pointer;\n}\n//button[disabled],\n//html input[disabled] {\n// cursor: default;\n//}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n padding: 0;\n border: 0;\n}\ninput {\n line-height: normal;\n}\ninput[type='checkbox'],\ninput[type='radio'] {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n padding: 0;\n}\ninput[type='number']::-webkit-inner-spin-button,\ninput[type='number']::-webkit-outer-spin-button {\n height: auto;\n}\ninput[type='search'] {\n -webkit-box-sizing: content-box;\n -moz-box-sizing: content-box;\n box-sizing: content-box;\n -webkit-appearance: textfield;\n}\ninput[type='search']::-webkit-search-cancel-button,\ninput[type='search']::-webkit-search-decoration {\n -webkit-appearance: none;\n}\nfieldset {\n padding: 0.35em 0.625em 0.75em;\n margin: 0 2px;\n border: 1px solid #c0c0c0;\n}\nlegend {\n padding: 0;\n border: 0;\n}\ntextarea {\n overflow: auto;\n}\noptgroup {\n font-weight: bold;\n}\ntable {\n border-spacing: 0;\n border-collapse: collapse;\n}\ntd,\nth {\n padding: 0;\n}\n/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n@media print {\n *,\n *:before,\n *:after {\n color: #000 !important;\n text-shadow: none !important;\n background: transparent !important;\n -webkit-box-shadow: none !important;\n box-shadow: none !important;\n }\n a,\n a:visited {\n text-decoration: underline;\n }\n a[href]:after {\n content: ' (' attr(href) ')';\n }\n abbr[title]:after {\n content: ' (' attr(title) ')';\n }\n a[href^='#']:after,\n a[href^='javascript:']:after {\n content: '';\n }\n pre,\n blockquote {\n border: 1px solid #999;\n\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n img {\n max-width: 100% !important;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n select {\n background: #fff !important;\n }\n .navbar {\n display: none;\n }\n .btn > .caret,\n .dropup > .btn > .caret {\n border-top-color: #000 !important;\n }\n .label {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #ddd !important;\n }\n}\n@font-face {\n font-family: 'Glyphicons Halflings';\n src: url('./fonts/glyphicons-halflings-regular.woff2') format('woff2'),\n url('./fonts/glyphicons-halflings-regular.woff') format('woff');\n}\n.glyphicon {\n position: relative;\n top: 1px;\n display: inline-block;\n font-family: 'Glyphicons Halflings';\n font-style: normal;\n font-weight: normal;\n line-height: 1;\n\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n.glyphicon-asterisk:before {\n content: '\\2a';\n}\n.glyphicon-plus:before {\n content: '\\2b';\n}\n.glyphicon-euro:before,\n.glyphicon-eur:before {\n content: '\\20ac';\n}\n.glyphicon-minus:before {\n content: '\\2212';\n}\n.glyphicon-cloud:before {\n content: '\\2601';\n}\n.glyphicon-envelope:before {\n content: '\\2709';\n}\n.glyphicon-pencil:before {\n content: '\\270f';\n}\n.glyphicon-glass:before {\n content: '\\e001';\n}\n.glyphicon-music:before {\n content: '\\e002';\n}\n.glyphicon-search:before {\n content: '\\e003';\n}\n.glyphicon-heart:before {\n content: '\\e005';\n}\n.glyphicon-star:before {\n content: '\\e006';\n}\n.glyphicon-star-empty:before {\n content: '\\e007';\n}\n.glyphicon-user:before {\n content: '\\e008';\n}\n.glyphicon-film:before {\n content: '\\e009';\n}\n.glyphicon-th-large:before {\n content: '\\e010';\n}\n.glyphicon-th:before {\n content: '\\e011';\n}\n.glyphicon-th-list:before {\n content: '\\e012';\n}\n.glyphicon-ok:before {\n content: '\\e013';\n}\n.glyphicon-remove:before {\n content: '\\e014';\n}\n.glyphicon-zoom-in:before {\n content: '\\e015';\n}\n.glyphicon-zoom-out:before {\n content: '\\e016';\n}\n.glyphicon-off:before {\n content: '\\e017';\n}\n.glyphicon-signal:before {\n content: '\\e018';\n}\n.glyphicon-cog:before {\n content: '\\e019';\n}\n.glyphicon-trash:before {\n content: '\\e020';\n}\n.glyphicon-home:before {\n content: '\\e021';\n}\n.glyphicon-file:before {\n content: '\\e022';\n}\n.glyphicon-time:before {\n content: '\\e023';\n}\n.glyphicon-road:before {\n content: '\\e024';\n}\n.glyphicon-download-alt:before {\n content: '\\e025';\n}\n.glyphicon-download:before {\n content: '\\e026';\n}\n.glyphicon-upload:before {\n content: '\\e027';\n}\n.glyphicon-inbox:before {\n content: '\\e028';\n}\n.glyphicon-play-circle:before {\n content: '\\e029';\n}\n.glyphicon-repeat:before {\n content: '\\e030';\n}\n.glyphicon-refresh:before {\n content: '\\e031';\n}\n.glyphicon-list-alt:before {\n content: '\\e032';\n}\n.glyphicon-lock:before {\n content: '\\e033';\n}\n.glyphicon-flag:before {\n content: '\\e034';\n}\n.glyphicon-headphones:before {\n content: '\\e035';\n}\n.glyphicon-volume-off:before {\n content: '\\e036';\n}\n.glyphicon-volume-down:before {\n content: '\\e037';\n}\n.glyphicon-volume-up:before {\n content: '\\e038';\n}\n.glyphicon-qrcode:before {\n content: '\\e039';\n}\n.glyphicon-barcode:before {\n content: '\\e040';\n}\n.glyphicon-tag:before {\n content: '\\e041';\n}\n.glyphicon-tags:before {\n content: '\\e042';\n}\n.glyphicon-book:before {\n content: '\\e043';\n}\n.glyphicon-bookmark:before {\n content: '\\e044';\n}\n.glyphicon-print:before {\n content: '\\e045';\n}\n.glyphicon-camera:before {\n content: '\\e046';\n}\n.glyphicon-font:before {\n content: '\\e047';\n}\n.glyphicon-bold:before {\n content: '\\e048';\n}\n.glyphicon-italic:before {\n content: '\\e049';\n}\n.glyphicon-text-height:before {\n content: '\\e050';\n}\n.glyphicon-text-width:before {\n content: '\\e051';\n}\n.glyphicon-align-left:before {\n content: '\\e052';\n}\n.glyphicon-align-center:before {\n content: '\\e053';\n}\n.glyphicon-align-right:before {\n content: '\\e054';\n}\n.glyphicon-align-justify:before {\n content: '\\e055';\n}\n.glyphicon-list:before {\n content: '\\e056';\n}\n.glyphicon-indent-left:before {\n content: '\\e057';\n}\n.glyphicon-indent-right:before {\n content: '\\e058';\n}\n.glyphicon-facetime-video:before {\n content: '\\e059';\n}\n.glyphicon-picture:before {\n content: '\\e060';\n}\n.glyphicon-map-marker:before {\n content: '\\e062';\n}\n.glyphicon-adjust:before {\n content: '\\e063';\n}\n.glyphicon-tint:before {\n content: '\\e064';\n}\n.glyphicon-edit:before {\n content: '\\e065';\n}\n.glyphicon-share:before {\n content: '\\e066';\n}\n.glyphicon-check:before {\n content: '\\e067';\n}\n.glyphicon-move:before {\n content: '\\e068';\n}\n.glyphicon-step-backward:before {\n content: '\\e069';\n}\n.glyphicon-fast-backward:before {\n content: '\\e070';\n}\n.glyphicon-backward:before {\n content: '\\e071';\n}\n.glyphicon-play:before {\n content: '\\e072';\n}\n.glyphicon-pause:before {\n content: '\\e073';\n}\n.glyphicon-stop:before {\n content: '\\e074';\n}\n.glyphicon-forward:before {\n content: '\\e075';\n}\n.glyphicon-fast-forward:before {\n content: '\\e076';\n}\n.glyphicon-step-forward:before {\n content: '\\e077';\n}\n.glyphicon-eject:before {\n content: '\\e078';\n}\n.glyphicon-chevron-left:before {\n content: '\\e079';\n}\n.glyphicon-chevron-right:before {\n content: '\\e080';\n}\n.glyphicon-plus-sign:before {\n content: '\\e081';\n}\n.glyphicon-minus-sign:before {\n content: '\\e082';\n}\n.glyphicon-remove-sign:before {\n content: '\\e083';\n}\n.glyphicon-ok-sign:before {\n content: '\\e084';\n}\n.glyphicon-question-sign:before {\n content: '\\e085';\n}\n.glyphicon-info-sign:before {\n content: '\\e086';\n}\n.glyphicon-screenshot:before {\n content: '\\e087';\n}\n.glyphicon-remove-circle:before {\n content: '\\e088';\n}\n.glyphicon-ok-circle:before {\n content: '\\e089';\n}\n.glyphicon-ban-circle:before {\n content: '\\e090';\n}\n.glyphicon-arrow-left:before {\n content: '\\e091';\n}\n.glyphicon-arrow-right:before {\n content: '\\e092';\n}\n.glyphicon-arrow-up:before {\n content: '\\e093';\n}\n.glyphicon-arrow-down:before {\n content: '\\e094';\n}\n.glyphicon-share-alt:before {\n content: '\\e095';\n}\n.glyphicon-resize-full:before {\n content: '\\e096';\n}\n.glyphicon-resize-small:before {\n content: '\\e097';\n}\n.glyphicon-exclamation-sign:before {\n content: '\\e101';\n}\n.glyphicon-gift:before {\n content: '\\e102';\n}\n.glyphicon-leaf:before {\n content: '\\e103';\n}\n.glyphicon-fire:before {\n content: '\\e104';\n}\n.glyphicon-eye-open:before {\n content: '\\e105';\n}\n.glyphicon-eye-close:before {\n content: '\\e106';\n}\n.glyphicon-warning-sign:before {\n content: '\\e107';\n}\n.glyphicon-plane:before {\n content: '\\e108';\n}\n.glyphicon-calendar:before {\n content: '\\e109';\n}\n.glyphicon-random:before {\n content: '\\e110';\n}\n.glyphicon-comment:before {\n content: '\\e111';\n}\n.glyphicon-magnet:before {\n content: '\\e112';\n}\n.glyphicon-chevron-up:before {\n content: '\\e113';\n}\n.glyphicon-chevron-down:before {\n content: '\\e114';\n}\n.glyphicon-retweet:before {\n content: '\\e115';\n}\n.glyphicon-shopping-cart:before {\n content: '\\e116';\n}\n.glyphicon-folder-close:before {\n content: '\\e117';\n}\n.glyphicon-folder-open:before {\n content: '\\e118';\n}\n.glyphicon-resize-vertical:before {\n content: '\\e119';\n}\n.glyphicon-resize-horizontal:before {\n content: '\\e120';\n}\n.glyphicon-hdd:before {\n content: '\\e121';\n}\n.glyphicon-bullhorn:before {\n content: '\\e122';\n}\n.glyphicon-bell:before {\n content: '\\e123';\n}\n.glyphicon-certificate:before {\n content: '\\e124';\n}\n.glyphicon-thumbs-up:before {\n content: '\\e125';\n}\n.glyphicon-thumbs-down:before {\n content: '\\e126';\n}\n.glyphicon-hand-right:before {\n content: '\\e127';\n}\n.glyphicon-hand-left:before {\n content: '\\e128';\n}\n.glyphicon-hand-up:before {\n content: '\\e129';\n}\n.glyphicon-hand-down:before {\n content: '\\e130';\n}\n.glyphicon-circle-arrow-right:before {\n content: '\\e131';\n}\n.glyphicon-circle-arrow-left:before {\n content: '\\e132';\n}\n.glyphicon-circle-arrow-up:before {\n content: '\\e133';\n}\n.glyphicon-circle-arrow-down:before {\n content: '\\e134';\n}\n.glyphicon-globe:before {\n content: '\\e135';\n}\n.glyphicon-wrench:before {\n content: '\\e136';\n}\n.glyphicon-tasks:before {\n content: '\\e137';\n}\n.glyphicon-filter:before {\n content: '\\e138';\n}\n.glyphicon-briefcase:before {\n content: '\\e139';\n}\n.glyphicon-fullscreen:before {\n content: '\\e140';\n}\n.glyphicon-dashboard:before {\n content: '\\e141';\n}\n.glyphicon-paperclip:before {\n content: '\\e142';\n}\n.glyphicon-heart-empty:before {\n content: '\\e143';\n}\n.glyphicon-link:before {\n content: '\\e144';\n}\n.glyphicon-phone:before {\n content: '\\e145';\n}\n.glyphicon-pushpin:before {\n content: '\\e146';\n}\n.glyphicon-usd:before {\n content: '\\e148';\n}\n.glyphicon-gbp:before {\n content: '\\e149';\n}\n.glyphicon-sort:before {\n content: '\\e150';\n}\n.glyphicon-sort-by-alphabet:before {\n content: '\\e151';\n}\n.glyphicon-sort-by-alphabet-alt:before {\n content: '\\e152';\n}\n.glyphicon-sort-by-order:before {\n content: '\\e153';\n}\n.glyphicon-sort-by-order-alt:before {\n content: '\\e154';\n}\n.glyphicon-sort-by-attributes:before {\n content: '\\e155';\n}\n.glyphicon-sort-by-attributes-alt:before {\n content: '\\e156';\n}\n.glyphicon-unchecked:before {\n content: '\\e157';\n}\n.glyphicon-expand:before {\n content: '\\e158';\n}\n.glyphicon-collapse-down:before {\n content: '\\e159';\n}\n.glyphicon-collapse-up:before {\n content: '\\e160';\n}\n.glyphicon-log-in:before {\n content: '\\e161';\n}\n.glyphicon-flash:before {\n content: '\\e162';\n}\n.glyphicon-log-out:before {\n content: '\\e163';\n}\n.glyphicon-new-window:before {\n content: '\\e164';\n}\n.glyphicon-record:before {\n content: '\\e165';\n}\n.glyphicon-save:before {\n content: '\\e166';\n}\n.glyphicon-open:before {\n content: '\\e167';\n}\n.glyphicon-saved:before {\n content: '\\e168';\n}\n.glyphicon-import:before {\n content: '\\e169';\n}\n.glyphicon-export:before {\n content: '\\e170';\n}\n.glyphicon-send:before {\n content: '\\e171';\n}\n.glyphicon-floppy-disk:before {\n content: '\\e172';\n}\n.glyphicon-floppy-saved:before {\n content: '\\e173';\n}\n.glyphicon-floppy-remove:before {\n content: '\\e174';\n}\n.glyphicon-floppy-save:before {\n content: '\\e175';\n}\n.glyphicon-floppy-open:before {\n content: '\\e176';\n}\n.glyphicon-credit-card:before {\n content: '\\e177';\n}\n.glyphicon-transfer:before {\n content: '\\e178';\n}\n.glyphicon-cutlery:before {\n content: '\\e179';\n}\n.glyphicon-header:before {\n content: '\\e180';\n}\n.glyphicon-compressed:before {\n content: '\\e181';\n}\n.glyphicon-earphone:before {\n content: '\\e182';\n}\n.glyphicon-phone-alt:before {\n content: '\\e183';\n}\n.glyphicon-tower:before {\n content: '\\e184';\n}\n.glyphicon-stats:before {\n content: '\\e185';\n}\n.glyphicon-sd-video:before {\n content: '\\e186';\n}\n.glyphicon-hd-video:before {\n content: '\\e187';\n}\n.glyphicon-subtitles:before {\n content: '\\e188';\n}\n.glyphicon-sound-stereo:before {\n content: '\\e189';\n}\n.glyphicon-sound-dolby:before {\n content: '\\e190';\n}\n.glyphicon-sound-5-1:before {\n content: '\\e191';\n}\n.glyphicon-sound-6-1:before {\n content: '\\e192';\n}\n.glyphicon-sound-7-1:before {\n content: '\\e193';\n}\n.glyphicon-copyright-mark:before {\n content: '\\e194';\n}\n.glyphicon-registration-mark:before {\n content: '\\e195';\n}\n.glyphicon-cloud-download:before {\n content: '\\e197';\n}\n.glyphicon-cloud-upload:before {\n content: '\\e198';\n}\n.glyphicon-tree-conifer:before {\n content: '\\e199';\n}\n.glyphicon-tree-deciduous:before {\n content: '\\e200';\n}\n.glyphicon-cd:before {\n content: '\\e201';\n}\n.glyphicon-save-file:before {\n content: '\\e202';\n}\n.glyphicon-open-file:before {\n content: '\\e203';\n}\n.glyphicon-level-up:before {\n content: '\\e204';\n}\n.glyphicon-copy:before {\n content: '\\e205';\n}\n.glyphicon-paste:before {\n content: '\\e206';\n}\n.glyphicon-alert:before {\n content: '\\e209';\n}\n.glyphicon-equalizer:before {\n content: '\\e210';\n}\n.glyphicon-king:before {\n content: '\\e211';\n}\n.glyphicon-queen:before {\n content: '\\e212';\n}\n.glyphicon-pawn:before {\n content: '\\e213';\n}\n.glyphicon-bishop:before {\n content: '\\e214';\n}\n.glyphicon-knight:before {\n content: '\\e215';\n}\n.glyphicon-baby-formula:before {\n content: '\\e216';\n}\n.glyphicon-tent:before {\n content: '\\26fa';\n}\n.glyphicon-blackboard:before {\n content: '\\e218';\n}\n.glyphicon-bed:before {\n content: '\\e219';\n}\n.glyphicon-apple:before {\n content: '\\f8ff';\n}\n.glyphicon-erase:before {\n content: '\\e221';\n}\n.glyphicon-hourglass:before {\n content: '\\231b';\n}\n.glyphicon-lamp:before {\n content: '\\e223';\n}\n.glyphicon-duplicate:before {\n content: '\\e224';\n}\n.glyphicon-piggy-bank:before {\n content: '\\e225';\n}\n.glyphicon-scissors:before {\n content: '\\e226';\n}\n.glyphicon-bitcoin:before {\n content: '\\e227';\n}\n.glyphicon-btc:before {\n content: '\\e227';\n}\n.glyphicon-xbt:before {\n content: '\\e227';\n}\n.glyphicon-yen:before {\n content: '\\00a5';\n}\n.glyphicon-jpy:before {\n content: '\\00a5';\n}\n.glyphicon-ruble:before {\n content: '\\20bd';\n}\n.glyphicon-rub:before {\n content: '\\20bd';\n}\n.glyphicon-scale:before {\n content: '\\e230';\n}\n.glyphicon-ice-lolly:before {\n content: '\\e231';\n}\n.glyphicon-ice-lolly-tasted:before {\n content: '\\e232';\n}\n.glyphicon-education:before {\n content: '\\e233';\n}\n.glyphicon-option-horizontal:before {\n content: '\\e234';\n}\n.glyphicon-option-vertical:before {\n content: '\\e235';\n}\n.glyphicon-menu-hamburger:before {\n content: '\\e236';\n}\n.glyphicon-modal-window:before {\n content: '\\e237';\n}\n.glyphicon-oil:before {\n content: '\\e238';\n}\n.glyphicon-grain:before {\n content: '\\e239';\n}\n.glyphicon-sunglasses:before {\n content: '\\e240';\n}\n.glyphicon-text-size:before {\n content: '\\e241';\n}\n.glyphicon-text-color:before {\n content: '\\e242';\n}\n.glyphicon-text-background:before {\n content: '\\e243';\n}\n.glyphicon-object-align-top:before {\n content: '\\e244';\n}\n.glyphicon-object-align-bottom:before {\n content: '\\e245';\n}\n.glyphicon-object-align-horizontal:before {\n content: '\\e246';\n}\n.glyphicon-object-align-left:before {\n content: '\\e247';\n}\n.glyphicon-object-align-vertical:before {\n content: '\\e248';\n}\n.glyphicon-object-align-right:before {\n content: '\\e249';\n}\n.glyphicon-triangle-right:before {\n content: '\\e250';\n}\n.glyphicon-triangle-left:before {\n content: '\\e251';\n}\n.glyphicon-triangle-bottom:before {\n content: '\\e252';\n}\n.glyphicon-triangle-top:before {\n content: '\\e253';\n}\n.glyphicon-console:before {\n content: '\\e254';\n}\n.glyphicon-superscript:before {\n content: '\\e255';\n}\n.glyphicon-subscript:before {\n content: '\\e256';\n}\n.glyphicon-menu-left:before {\n content: '\\e257';\n}\n.glyphicon-menu-right:before {\n content: '\\e258';\n}\n.glyphicon-menu-down:before {\n content: '\\e259';\n}\n.glyphicon-menu-up:before {\n content: '\\e260';\n}\n* {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n*:before,\n*:after {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\nhtml {\n font-size: 10px;\n\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\nbody {\n font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;\n font-size: 14px;\n line-height: 1.42857143;\n color: #333;\n background-color: #fff;\n}\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\na {\n color: #337ab7;\n text-decoration: none;\n}\na:hover,\na:focus {\n color: #23527c;\n text-decoration: underline;\n}\na:focus {\n outline: thin dotted;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\nfigure {\n margin: 0;\n}\nimg {\n vertical-align: middle;\n}\n.img-responsive,\n.thumbnail > img,\n.thumbnail a > img,\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n display: block;\n max-width: 100%;\n height: auto;\n}\n.img-rounded {\n border-radius: 6px;\n}\n.img-thumbnail {\n display: inline-block;\n max-width: 100%;\n height: auto;\n padding: 4px;\n line-height: 1.42857143;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n -webkit-transition: all 0.2s ease-in-out;\n -o-transition: all 0.2s ease-in-out;\n transition: all 0.2s ease-in-out;\n}\n.img-circle {\n border-radius: 50%;\n}\nhr {\n margin-top: 20px;\n margin-bottom: 20px;\n border: 0;\n border-top: 1px solid #eee;\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n[role='button'] {\n cursor: pointer;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6 {\n font-family: inherit;\n font-weight: 500;\n line-height: 1.1;\n color: inherit;\n}\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small,\n.h1 small,\n.h2 small,\n.h3 small,\n.h4 small,\n.h5 small,\n.h6 small,\nh1 .small,\nh2 .small,\nh3 .small,\nh4 .small,\nh5 .small,\nh6 .small,\n.h1 .small,\n.h2 .small,\n.h3 .small,\n.h4 .small,\n.h5 .small,\n.h6 .small {\n font-weight: normal;\n line-height: 1;\n color: #777;\n}\nh1,\n.h1,\nh2,\n.h2,\nh3,\n.h3 {\n margin-top: 20px;\n margin-bottom: 10px;\n}\nh1 small,\n.h1 small,\nh2 small,\n.h2 small,\nh3 small,\n.h3 small,\nh1 .small,\n.h1 .small,\nh2 .small,\n.h2 .small,\nh3 .small,\n.h3 .small {\n font-size: 65%;\n}\nh4,\n.h4,\nh5,\n.h5,\nh6,\n.h6 {\n margin-top: 10px;\n margin-bottom: 10px;\n}\nh4 small,\n.h4 small,\nh5 small,\n.h5 small,\nh6 small,\n.h6 small,\nh4 .small,\n.h4 .small,\nh5 .small,\n.h5 .small,\nh6 .small,\n.h6 .small {\n font-size: 75%;\n}\nh1,\n.h1 {\n font-size: 36px;\n}\nh2,\n.h2 {\n font-size: 30px;\n}\nh3,\n.h3 {\n font-size: 24px;\n}\nh4,\n.h4 {\n font-size: 18px;\n}\nh5,\n.h5 {\n font-size: 14px;\n}\nh6,\n.h6 {\n font-size: 12px;\n}\np {\n margin: 0 0 10px;\n}\n.lead {\n margin-bottom: 20px;\n font-size: 16px;\n font-weight: 300;\n line-height: 1.4;\n}\n@media (min-width: 768px) {\n .lead {\n font-size: 21px;\n }\n}\nsmall,\n.small {\n font-size: 85%;\n}\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n.text-left {\n text-align: left;\n}\n.text-right {\n text-align: right;\n}\n.text-center {\n text-align: center;\n}\n.text-justify {\n text-align: justify;\n}\n.text-nowrap {\n white-space: nowrap;\n}\n.text-lowercase {\n text-transform: lowercase;\n}\n.text-uppercase {\n text-transform: uppercase;\n}\n.text-capitalize {\n text-transform: capitalize;\n}\n.text-muted {\n color: #777;\n}\n.text-primary {\n color: #337ab7;\n}\na.text-primary:hover {\n color: #286090;\n}\n.text-success {\n color: #3c763d;\n}\na.text-success:hover {\n color: #2b542c;\n}\n.text-info {\n color: #31708f;\n}\na.text-info:hover {\n color: #245269;\n}\n.text-warning {\n color: #8a6d3b;\n}\na.text-warning:hover {\n color: #66512c;\n}\n.text-danger {\n color: #a94442;\n}\na.text-danger:hover {\n color: #843534;\n}\n.bg-primary {\n color: #fff;\n background-color: #337ab7;\n}\na.bg-primary:hover {\n background-color: #286090;\n}\n.bg-success {\n background-color: #dff0d8;\n}\na.bg-success:hover {\n background-color: #c1e2b3;\n}\n.bg-info {\n background-color: #d9edf7;\n}\na.bg-info:hover {\n background-color: #afd9ee;\n}\n.bg-warning {\n background-color: #fcf8e3;\n}\na.bg-warning:hover {\n background-color: #f7ecb5;\n}\n.bg-danger {\n background-color: #f2dede;\n}\na.bg-danger:hover {\n background-color: #e4b9b9;\n}\n.page-header {\n padding-bottom: 9px;\n margin: 40px 0 20px;\n border-bottom: 1px solid #eee;\n}\nul,\nol {\n margin-top: 0;\n margin-bottom: 10px;\n}\nul ul,\nol ul,\nul ol,\nol ol {\n margin-bottom: 0;\n}\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n.list-inline {\n padding-left: 0;\n margin-left: -5px;\n list-style: none;\n}\n.list-inline > li {\n display: inline-block;\n padding-right: 5px;\n padding-left: 5px;\n}\ndl {\n margin-top: 0;\n margin-bottom: 20px;\n}\ndt,\ndd {\n line-height: 1.42857143;\n}\ndt {\n font-weight: bold;\n}\ndd {\n margin-left: 0;\n}\n@media (min-width: 768px) {\n .dl-horizontal dt {\n float: left;\n width: 160px;\n overflow: hidden;\n clear: left;\n text-align: right;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .dl-horizontal dd {\n margin-left: 180px;\n }\n}\nabbr[title],\nabbr[data-original-title] {\n cursor: help;\n border-bottom: 1px dotted #777;\n}\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\nblockquote {\n padding: 10px 20px;\n margin: 0 0 20px;\n font-size: 17.5px;\n border-left: 5px solid #eee;\n}\nblockquote p:last-child,\nblockquote ul:last-child,\nblockquote ol:last-child {\n margin-bottom: 0;\n}\nblockquote footer,\nblockquote small,\nblockquote .small {\n display: block;\n font-size: 80%;\n line-height: 1.42857143;\n color: #777;\n}\nblockquote footer:before,\nblockquote small:before,\nblockquote .small:before {\n content: '\\2014 \\00A0';\n}\n.blockquote-reverse,\nblockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n text-align: right;\n border-right: 5px solid #eee;\n border-left: 0;\n}\n.blockquote-reverse footer:before,\nblockquote.pull-right footer:before,\n.blockquote-reverse small:before,\nblockquote.pull-right small:before,\n.blockquote-reverse .small:before,\nblockquote.pull-right .small:before {\n content: '';\n}\n.blockquote-reverse footer:after,\nblockquote.pull-right footer:after,\n.blockquote-reverse small:after,\nblockquote.pull-right small:after,\n.blockquote-reverse .small:after,\nblockquote.pull-right .small:after {\n content: '\\00A0 \\2014';\n}\naddress {\n margin-bottom: 20px;\n font-style: normal;\n line-height: 1.42857143;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;\n}\ncode {\n padding: 2px 4px;\n font-size: 90%;\n color: #c7254e;\n background-color: #f9f2f4;\n border-radius: 4px;\n}\nkbd {\n padding: 2px 4px;\n font-size: 90%;\n color: #fff;\n background-color: #333;\n border-radius: 3px;\n -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: bold;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\npre {\n display: block;\n padding: 9.5px;\n margin: 0 0 10px;\n font-size: 13px;\n line-height: 1.42857143;\n color: #333;\n word-break: break-all;\n word-wrap: break-word;\n background-color: #f5f5f5;\n border: 1px solid #ccc;\n border-radius: 4px;\n}\npre code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border-radius: 0;\n}\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n.container {\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n@media (min-width: 768px) {\n .container {\n width: 750px;\n }\n}\n@media (min-width: 992px) {\n .container {\n width: 970px;\n }\n}\n@media (min-width: 1200px) {\n .container {\n width: 1170px;\n }\n}\n.container-fluid {\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n.row {\n margin-right: -15px;\n margin-left: -15px;\n}\n//.col-xs-1,\n//.col-sm-1,\n//.col-md-1,\n//.col-lg-1,\n//.col-xs-2,\n//.col-sm-2,\n//.col-md-2,\n//.col-lg-2,\n//.col-xs-3,\n//.col-sm-3,\n//.col-md-3,\n//.col-lg-3,\n//.col-xs-4,\n//.col-sm-4,\n//.col-md-4,\n//.col-lg-4,\n//.col-xs-5,\n//.col-sm-5,\n//.col-md-5,\n//.col-lg-5,\n//.col-xs-6,\n//.col-sm-6,\n//.col-md-6,\n//.col-lg-6,\n//.col-xs-7,\n//.col-sm-7,\n//.col-md-7,\n//.col-lg-7,\n//.col-xs-8,\n//.col-sm-8,\n//.col-md-8,\n//.col-lg-8,\n//.col-xs-9,\n//.col-sm-9,\n//.col-md-9,\n//.col-lg-9,\n//.col-xs-10,\n//.col-sm-10,\n//.col-md-10,\n//.col-lg-10,\n//.col-xs-11,\n//.col-sm-11,\n//.col-md-11,\n//.col-lg-11,\n//.col-xs-12,\n//.col-sm-12,\n//.col-md-12,\n//.col-lg-12 {\n// position: relative;\n// min-height: 1px;\n// padding-right: 15px;\n// padding-left: 15px;\n//}\n//.col-xs-1,\n//.col-xs-2,\n//.col-xs-3,\n//.col-xs-4,\n//.col-xs-5,\n//.col-xs-6,\n//.col-xs-7,\n//.col-xs-8,\n//.col-xs-9,\n//.col-xs-10,\n//.col-xs-11,\n//.col-xs-12 {\n// float: left;\n//}\n//.col-xs-12 {\n// width: 100%;\n//}\n//.col-xs-11 {\n// width: 91.66666667%;\n//}\n//.col-xs-10 {\n// width: 83.33333333%;\n//}\n//.col-xs-9 {\n// width: 75%;\n//}\n//.col-xs-8 {\n// width: 66.66666667%;\n//}\n//.col-xs-7 {\n// width: 58.33333333%;\n//}\n//.col-xs-6 {\n// width: 50%;\n//}\n//.col-xs-5 {\n// width: 41.66666667%;\n//}\n//.col-xs-4 {\n// width: 33.33333333%;\n//}\n//.col-xs-3 {\n// width: 25%;\n//}\n//.col-xs-2 {\n// width: 16.66666667%;\n//}\n//.col-xs-1 {\n// width: 8.33333333%;\n//}\n//.col-xs-pull-12 {\n// right: 100%;\n//}\n//.col-xs-pull-11 {\n// right: 91.66666667%;\n//}\n//.col-xs-pull-10 {\n// right: 83.33333333%;\n//}\n//.col-xs-pull-9 {\n// right: 75%;\n//}\n//.col-xs-pull-8 {\n// right: 66.66666667%;\n//}\n//.col-xs-pull-7 {\n// right: 58.33333333%;\n//}\n//.col-xs-pull-6 {\n// right: 50%;\n//}\n//.col-xs-pull-5 {\n// right: 41.66666667%;\n//}\n//.col-xs-pull-4 {\n// right: 33.33333333%;\n//}\n//.col-xs-pull-3 {\n// right: 25%;\n//}\n//.col-xs-pull-2 {\n// right: 16.66666667%;\n//}\n//.col-xs-pull-1 {\n// right: 8.33333333%;\n//}\n//.col-xs-pull-0 {\n// right: auto;\n//}\n//.col-xs-push-12 {\n// left: 100%;\n//}\n//.col-xs-push-11 {\n// left: 91.66666667%;\n//}\n//.col-xs-push-10 {\n// left: 83.33333333%;\n//}\n//.col-xs-push-9 {\n// left: 75%;\n//}\n//.col-xs-push-8 {\n// left: 66.66666667%;\n//}\n//.col-xs-push-7 {\n// left: 58.33333333%;\n//}\n//.col-xs-push-6 {\n// left: 50%;\n//}\n//.col-xs-push-5 {\n// left: 41.66666667%;\n//}\n//.col-xs-push-4 {\n// left: 33.33333333%;\n//}\n//.col-xs-push-3 {\n// left: 25%;\n//}\n//.col-xs-push-2 {\n// left: 16.66666667%;\n//}\n//.col-xs-push-1 {\n// left: 8.33333333%;\n//}\n//.col-xs-push-0 {\n// left: auto;\n//}\n//.col-xs-offset-12 {\n// margin-left: 100%;\n//}\n//.col-xs-offset-11 {\n// margin-left: 91.66666667%;\n//}\n//.col-xs-offset-10 {\n// margin-left: 83.33333333%;\n//}\n//.col-xs-offset-9 {\n// margin-left: 75%;\n//}\n//.col-xs-offset-8 {\n// margin-left: 66.66666667%;\n//}\n//.col-xs-offset-7 {\n// margin-left: 58.33333333%;\n//}\n//.col-xs-offset-6 {\n// margin-left: 50%;\n//}\n//.col-xs-offset-5 {\n// margin-left: 41.66666667%;\n//}\n//.col-xs-offset-4 {\n// margin-left: 33.33333333%;\n//}\n//.col-xs-offset-3 {\n// margin-left: 25%;\n//}\n//.col-xs-offset-2 {\n// margin-left: 16.66666667%;\n//}\n//.col-xs-offset-1 {\n// margin-left: 8.33333333%;\n//}\n//.col-xs-offset-0 {\n// margin-left: 0;\n//}\n//@media (min-width: 768px) {\n// .col-sm-1,\n// .col-sm-2,\n// .col-sm-3,\n// .col-sm-4,\n// .col-sm-5,\n// .col-sm-6,\n// .col-sm-7,\n// .col-sm-8,\n// .col-sm-9,\n// .col-sm-10,\n// .col-sm-11,\n// .col-sm-12 {\n// float: left;\n// }\n// .col-sm-12 {\n// width: 100%;\n// }\n// .col-sm-11 {\n// width: 91.66666667%;\n// }\n// .col-sm-10 {\n// width: 83.33333333%;\n// }\n// .col-sm-9 {\n// width: 75%;\n// }\n// .col-sm-8 {\n// width: 66.66666667%;\n// }\n// .col-sm-7 {\n// width: 58.33333333%;\n// }\n// .col-sm-6 {\n// width: 50%;\n// }\n// .col-sm-5 {\n// width: 41.66666667%;\n// }\n// .col-sm-4 {\n// width: 33.33333333%;\n// }\n// .col-sm-3 {\n// width: 25%;\n// }\n// .col-sm-2 {\n// width: 16.66666667%;\n// }\n// .col-sm-1 {\n// width: 8.33333333%;\n// }\n// .col-sm-pull-12 {\n// right: 100%;\n// }\n// .col-sm-pull-11 {\n// right: 91.66666667%;\n// }\n// .col-sm-pull-10 {\n// right: 83.33333333%;\n// }\n// .col-sm-pull-9 {\n// right: 75%;\n// }\n// .col-sm-pull-8 {\n// right: 66.66666667%;\n// }\n// .col-sm-pull-7 {\n// right: 58.33333333%;\n// }\n// .col-sm-pull-6 {\n// right: 50%;\n// }\n// .col-sm-pull-5 {\n// right: 41.66666667%;\n// }\n// .col-sm-pull-4 {\n// right: 33.33333333%;\n// }\n// .col-sm-pull-3 {\n// right: 25%;\n// }\n// .col-sm-pull-2 {\n// right: 16.66666667%;\n// }\n// .col-sm-pull-1 {\n// right: 8.33333333%;\n// }\n// .col-sm-pull-0 {\n// right: auto;\n// }\n// .col-sm-push-12 {\n// left: 100%;\n// }\n// .col-sm-push-11 {\n// left: 91.66666667%;\n// }\n// .col-sm-push-10 {\n// left: 83.33333333%;\n// }\n// .col-sm-push-9 {\n// left: 75%;\n// }\n// .col-sm-push-8 {\n// left: 66.66666667%;\n// }\n// .col-sm-push-7 {\n// left: 58.33333333%;\n// }\n// .col-sm-push-6 {\n// left: 50%;\n// }\n// .col-sm-push-5 {\n// left: 41.66666667%;\n// }\n// .col-sm-push-4 {\n// left: 33.33333333%;\n// }\n// .col-sm-push-3 {\n// left: 25%;\n// }\n// .col-sm-push-2 {\n// left: 16.66666667%;\n// }\n// .col-sm-push-1 {\n// left: 8.33333333%;\n// }\n// .col-sm-push-0 {\n// left: auto;\n// }\n// .col-sm-offset-12 {\n// margin-left: 100%;\n// }\n// .col-sm-offset-11 {\n// margin-left: 91.66666667%;\n// }\n// .col-sm-offset-10 {\n// margin-left: 83.33333333%;\n// }\n// .col-sm-offset-9 {\n// margin-left: 75%;\n// }\n// .col-sm-offset-8 {\n// margin-left: 66.66666667%;\n// }\n// .col-sm-offset-7 {\n// margin-left: 58.33333333%;\n// }\n// .col-sm-offset-6 {\n// margin-left: 50%;\n// }\n// .col-sm-offset-5 {\n// margin-left: 41.66666667%;\n// }\n// .col-sm-offset-4 {\n// margin-left: 33.33333333%;\n// }\n// .col-sm-offset-3 {\n// margin-left: 25%;\n// }\n// .col-sm-offset-2 {\n// margin-left: 16.66666667%;\n// }\n// .col-sm-offset-1 {\n// margin-left: 8.33333333%;\n// }\n// .col-sm-offset-0 {\n// margin-left: 0;\n// }\n//}\n//@media (min-width: 992px) {\n// .col-md-1,\n// .col-md-2,\n// .col-md-3,\n// .col-md-4,\n// .col-md-5,\n// .col-md-6,\n// .col-md-7,\n// .col-md-8,\n// .col-md-9,\n// .col-md-10,\n// .col-md-11,\n// .col-md-12 {\n// float: left;\n// }\n// .col-md-12 {\n// width: 100%;\n// }\n// .col-md-11 {\n// width: 91.66666667%;\n// }\n// .col-md-10 {\n// width: 83.33333333%;\n// }\n// .col-md-9 {\n// width: 75%;\n// }\n// .col-md-8 {\n// width: 66.66666667%;\n// }\n// .col-md-7 {\n// width: 58.33333333%;\n// }\n// .col-md-6 {\n// width: 50%;\n// }\n// .col-md-5 {\n// width: 41.66666667%;\n// }\n// .col-md-4 {\n// width: 33.33333333%;\n// }\n// .col-md-3 {\n// width: 25%;\n// }\n// .col-md-2 {\n// width: 16.66666667%;\n// }\n// .col-md-1 {\n// width: 8.33333333%;\n// }\n// .col-md-pull-12 {\n// right: 100%;\n// }\n// .col-md-pull-11 {\n// right: 91.66666667%;\n// }\n// .col-md-pull-10 {\n// right: 83.33333333%;\n// }\n// .col-md-pull-9 {\n// right: 75%;\n// }\n// .col-md-pull-8 {\n// right: 66.66666667%;\n// }\n// .col-md-pull-7 {\n// right: 58.33333333%;\n// }\n// .col-md-pull-6 {\n// right: 50%;\n// }\n// .col-md-pull-5 {\n// right: 41.66666667%;\n// }\n// .col-md-pull-4 {\n// right: 33.33333333%;\n// }\n// .col-md-pull-3 {\n// right: 25%;\n// }\n// .col-md-pull-2 {\n// right: 16.66666667%;\n// }\n// .col-md-pull-1 {\n// right: 8.33333333%;\n// }\n// .col-md-pull-0 {\n// right: auto;\n// }\n// .col-md-push-12 {\n// left: 100%;\n// }\n// .col-md-push-11 {\n// left: 91.66666667%;\n// }\n// .col-md-push-10 {\n// left: 83.33333333%;\n// }\n// .col-md-push-9 {\n// left: 75%;\n// }\n// .col-md-push-8 {\n// left: 66.66666667%;\n// }\n// .col-md-push-7 {\n// left: 58.33333333%;\n// }\n// .col-md-push-6 {\n// left: 50%;\n// }\n// .col-md-push-5 {\n// left: 41.66666667%;\n// }\n// .col-md-push-4 {\n// left: 33.33333333%;\n// }\n// .col-md-push-3 {\n// left: 25%;\n// }\n// .col-md-push-2 {\n// left: 16.66666667%;\n// }\n// .col-md-push-1 {\n// left: 8.33333333%;\n// }\n// .col-md-push-0 {\n// left: auto;\n// }\n// .col-md-offset-12 {\n// margin-left: 100%;\n// }\n// .col-md-offset-11 {\n// margin-left: 91.66666667%;\n// }\n// .col-md-offset-10 {\n// margin-left: 83.33333333%;\n// }\n// .col-md-offset-9 {\n// margin-left: 75%;\n// }\n// .col-md-offset-8 {\n// margin-left: 66.66666667%;\n// }\n// .col-md-offset-7 {\n// margin-left: 58.33333333%;\n// }\n// .col-md-offset-6 {\n// margin-left: 50%;\n// }\n// .col-md-offset-5 {\n// margin-left: 41.66666667%;\n// }\n// .col-md-offset-4 {\n// margin-left: 33.33333333%;\n// }\n// .col-md-offset-3 {\n// margin-left: 25%;\n// }\n// .col-md-offset-2 {\n// margin-left: 16.66666667%;\n// }\n// .col-md-offset-1 {\n// margin-left: 8.33333333%;\n// }\n// .col-md-offset-0 {\n// margin-left: 0;\n// }\n//}\n//@media (min-width: 1200px) {\n// .col-lg-1,\n// .col-lg-2,\n// .col-lg-3,\n// .col-lg-4,\n// .col-lg-5,\n// .col-lg-6,\n// .col-lg-7,\n// .col-lg-8,\n// .col-lg-9,\n// .col-lg-10,\n// .col-lg-11,\n// .col-lg-12 {\n// float: left;\n// }\n// .col-lg-12 {\n// width: 100%;\n// }\n// .col-lg-11 {\n// width: 91.66666667%;\n// }\n// .col-lg-10 {\n// width: 83.33333333%;\n// }\n// .col-lg-9 {\n// width: 75%;\n// }\n// .col-lg-8 {\n// width: 66.66666667%;\n// }\n// .col-lg-7 {\n// width: 58.33333333%;\n// }\n// .col-lg-6 {\n// width: 50%;\n// }\n// .col-lg-5 {\n// width: 41.66666667%;\n// }\n// .col-lg-4 {\n// width: 33.33333333%;\n// }\n// .col-lg-3 {\n// width: 25%;\n// }\n// .col-lg-2 {\n// width: 16.66666667%;\n// }\n// .col-lg-1 {\n// width: 8.33333333%;\n// }\n// .col-lg-pull-12 {\n// right: 100%;\n// }\n// .col-lg-pull-11 {\n// right: 91.66666667%;\n// }\n// .col-lg-pull-10 {\n// right: 83.33333333%;\n// }\n// .col-lg-pull-9 {\n// right: 75%;\n// }\n// .col-lg-pull-8 {\n// right: 66.66666667%;\n// }\n// .col-lg-pull-7 {\n// right: 58.33333333%;\n// }\n// .col-lg-pull-6 {\n// right: 50%;\n// }\n// .col-lg-pull-5 {\n// right: 41.66666667%;\n// }\n// .col-lg-pull-4 {\n// right: 33.33333333%;\n// }\n// .col-lg-pull-3 {\n// right: 25%;\n// }\n// .col-lg-pull-2 {\n// right: 16.66666667%;\n// }\n// .col-lg-pull-1 {\n// right: 8.33333333%;\n// }\n// .col-lg-pull-0 {\n// right: auto;\n// }\n// .col-lg-push-12 {\n// left: 100%;\n// }\n// .col-lg-push-11 {\n// left: 91.66666667%;\n// }\n// .col-lg-push-10 {\n// left: 83.33333333%;\n// }\n// .col-lg-push-9 {\n// left: 75%;\n// }\n// .col-lg-push-8 {\n// left: 66.66666667%;\n// }\n// .col-lg-push-7 {\n// left: 58.33333333%;\n// }\n// .col-lg-push-6 {\n// left: 50%;\n// }\n// .col-lg-push-5 {\n// left: 41.66666667%;\n// }\n// .col-lg-push-4 {\n// left: 33.33333333%;\n// }\n// .col-lg-push-3 {\n// left: 25%;\n// }\n// .col-lg-push-2 {\n// left: 16.66666667%;\n// }\n// .col-lg-push-1 {\n// left: 8.33333333%;\n// }\n// .col-lg-push-0 {\n// left: auto;\n// }\n// .col-lg-offset-12 {\n// margin-left: 100%;\n// }\n// .col-lg-offset-11 {\n// margin-left: 91.66666667%;\n// }\n// .col-lg-offset-10 {\n// margin-left: 83.33333333%;\n// }\n// .col-lg-offset-9 {\n// margin-left: 75%;\n// }\n// .col-lg-offset-8 {\n// margin-left: 66.66666667%;\n// }\n// .col-lg-offset-7 {\n// margin-left: 58.33333333%;\n// }\n// .col-lg-offset-6 {\n// margin-left: 50%;\n// }\n// .col-lg-offset-5 {\n// margin-left: 41.66666667%;\n// }\n// .col-lg-offset-4 {\n// margin-left: 33.33333333%;\n// }\n// .col-lg-offset-3 {\n// margin-left: 25%;\n// }\n// .col-lg-offset-2 {\n// margin-left: 16.66666667%;\n// }\n// .col-lg-offset-1 {\n// margin-left: 8.33333333%;\n// }\n// .col-lg-offset-0 {\n// margin-left: 0;\n// }\n//}\ntable {\n background-color: transparent;\n}\ncaption {\n padding-top: 8px;\n padding-bottom: 8px;\n color: #777;\n text-align: left;\n}\nth {\n text-align: left;\n}\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: 20px;\n}\n.table > thead > tr > th,\n.table > tbody > tr > th,\n.table > tfoot > tr > th,\n.table > thead > tr > td,\n.table > tbody > tr > td,\n.table > tfoot > tr > td {\n padding: 8px;\n line-height: 1.42857143;\n vertical-align: top;\n border-top: 1px solid #ddd;\n}\n.table > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid #ddd;\n}\n.table > caption + thead > tr:first-child > th,\n.table > colgroup + thead > tr:first-child > th,\n.table > thead:first-child > tr:first-child > th,\n.table > caption + thead > tr:first-child > td,\n.table > colgroup + thead > tr:first-child > td,\n.table > thead:first-child > tr:first-child > td {\n border-top: 0;\n}\n.table > tbody + tbody {\n border-top: 2px solid #ddd;\n}\n.table .table {\n background-color: #fff;\n}\n.table-condensed > thead > tr > th,\n.table-condensed > tbody > tr > th,\n.table-condensed > tfoot > tr > th,\n.table-condensed > thead > tr > td,\n.table-condensed > tbody > tr > td,\n.table-condensed > tfoot > tr > td {\n padding: 5px;\n}\n.table-bordered {\n border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > tbody > tr > th,\n.table-bordered > tfoot > tr > th,\n.table-bordered > thead > tr > td,\n.table-bordered > tbody > tr > td,\n.table-bordered > tfoot > tr > td {\n border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > thead > tr > td {\n border-bottom-width: 2px;\n}\n.table-striped > tbody > tr:nth-of-type(odd) {\n background-color: #f9f9f9;\n}\n.table-hover > tbody > tr:hover {\n background-color: #f5f5f5;\n}\ntable col[class*='col-'] {\n position: static;\n display: table-column;\n float: none;\n}\ntable td[class*='col-'],\ntable th[class*='col-'] {\n position: static;\n display: table-cell;\n float: none;\n}\n.table > thead > tr > td.active,\n.table > tbody > tr > td.active,\n.table > tfoot > tr > td.active,\n.table > thead > tr > th.active,\n.table > tbody > tr > th.active,\n.table > tfoot > tr > th.active,\n.table > thead > tr.active > td,\n.table > tbody > tr.active > td,\n.table > tfoot > tr.active > td,\n.table > thead > tr.active > th,\n.table > tbody > tr.active > th,\n.table > tfoot > tr.active > th {\n background-color: #f5f5f5;\n}\n.table-hover > tbody > tr > td.active:hover,\n.table-hover > tbody > tr > th.active:hover,\n.table-hover > tbody > tr.active:hover > td,\n.table-hover > tbody > tr:hover > .active,\n.table-hover > tbody > tr.active:hover > th {\n background-color: #e8e8e8;\n}\n.table > thead > tr > td.success,\n.table > tbody > tr > td.success,\n.table > tfoot > tr > td.success,\n.table > thead > tr > th.success,\n.table > tbody > tr > th.success,\n.table > tfoot > tr > th.success,\n.table > thead > tr.success > td,\n.table > tbody > tr.success > td,\n.table > tfoot > tr.success > td,\n.table > thead > tr.success > th,\n.table > tbody > tr.success > th,\n.table > tfoot > tr.success > th {\n background-color: #dff0d8;\n}\n.table-hover > tbody > tr > td.success:hover,\n.table-hover > tbody > tr > th.success:hover,\n.table-hover > tbody > tr.success:hover > td,\n.table-hover > tbody > tr:hover > .success,\n.table-hover > tbody > tr.success:hover > th {\n background-color: #d0e9c6;\n}\n.table > thead > tr > td.info,\n.table > tbody > tr > td.info,\n.table > tfoot > tr > td.info,\n.table > thead > tr > th.info,\n.table > tbody > tr > th.info,\n.table > tfoot > tr > th.info,\n.table > thead > tr.info > td,\n.table > tbody > tr.info > td,\n.table > tfoot > tr.info > td,\n.table > thead > tr.info > th,\n.table > tbody > tr.info > th,\n.table > tfoot > tr.info > th {\n background-color: #d9edf7;\n}\n.table-hover > tbody > tr > td.info:hover,\n.table-hover > tbody > tr > th.info:hover,\n.table-hover > tbody > tr.info:hover > td,\n.table-hover > tbody > tr:hover > .info,\n.table-hover > tbody > tr.info:hover > th {\n background-color: #c4e3f3;\n}\n.table > thead > tr > td.warning,\n.table > tbody > tr > td.warning,\n.table > tfoot > tr > td.warning,\n.table > thead > tr > th.warning,\n.table > tbody > tr > th.warning,\n.table > tfoot > tr > th.warning,\n.table > thead > tr.warning > td,\n.table > tbody > tr.warning > td,\n.table > tfoot > tr.warning > td,\n.table > thead > tr.warning > th,\n.table > tbody > tr.warning > th,\n.table > tfoot > tr.warning > th {\n background-color: #fcf8e3;\n}\n.table-hover > tbody > tr > td.warning:hover,\n.table-hover > tbody > tr > th.warning:hover,\n.table-hover > tbody > tr.warning:hover > td,\n.table-hover > tbody > tr:hover > .warning,\n.table-hover > tbody > tr.warning:hover > th {\n background-color: #faf2cc;\n}\n.table > thead > tr > td.danger,\n.table > tbody > tr > td.danger,\n.table > tfoot > tr > td.danger,\n.table > thead > tr > th.danger,\n.table > tbody > tr > th.danger,\n.table > tfoot > tr > th.danger,\n.table > thead > tr.danger > td,\n.table > tbody > tr.danger > td,\n.table > tfoot > tr.danger > td,\n.table > thead > tr.danger > th,\n.table > tbody > tr.danger > th,\n.table > tfoot > tr.danger > th {\n background-color: #f2dede;\n}\n.table-hover > tbody > tr > td.danger:hover,\n.table-hover > tbody > tr > th.danger:hover,\n.table-hover > tbody > tr.danger:hover > td,\n.table-hover > tbody > tr:hover > .danger,\n.table-hover > tbody > tr.danger:hover > th {\n background-color: #ebcccc;\n}\n.table-responsive {\n min-height: 0.01%;\n overflow-x: auto;\n}\n@media screen and (max-width: 767px) {\n .table-responsive {\n width: 100%;\n margin-bottom: 15px;\n overflow-y: hidden;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n border: 1px solid #ddd;\n }\n .table-responsive > .table {\n margin-bottom: 0;\n }\n .table-responsive > .table > thead > tr > th,\n .table-responsive > .table > tbody > tr > th,\n .table-responsive > .table > tfoot > tr > th,\n .table-responsive > .table > thead > tr > td,\n .table-responsive > .table > tbody > tr > td,\n .table-responsive > .table > tfoot > tr > td {\n white-space: nowrap;\n }\n .table-responsive > .table-bordered {\n border: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:first-child,\n .table-responsive > .table-bordered > tbody > tr > th:first-child,\n .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n .table-responsive > .table-bordered > thead > tr > td:first-child,\n .table-responsive > .table-bordered > tbody > tr > td:first-child,\n .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:last-child,\n .table-responsive > .table-bordered > tbody > tr > th:last-child,\n .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n .table-responsive > .table-bordered > thead > tr > td:last-child,\n .table-responsive > .table-bordered > tbody > tr > td:last-child,\n .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n }\n .table-responsive > .table-bordered > tbody > tr:last-child > th,\n .table-responsive > .table-bordered > tfoot > tr:last-child > th,\n .table-responsive > .table-bordered > tbody > tr:last-child > td,\n .table-responsive > .table-bordered > tfoot > tr:last-child > td {\n border-bottom: 0;\n }\n}\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: 20px;\n font-size: 21px;\n line-height: inherit;\n color: #333;\n border: 0;\n border-bottom: 1px solid #e5e5e5;\n}\nlabel {\n display: inline-block;\n max-width: 100%;\n margin-bottom: 5px;\n font-weight: bold;\n}\ninput[type='search'] {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\ninput[type='radio'],\ninput[type='checkbox'] {\n margin: 4px 0 0;\n margin-top: 1px \\9;\n line-height: normal;\n}\ninput[type='file'] {\n display: block;\n}\ninput[type='range'] {\n display: block;\n width: 100%;\n}\nselect[multiple],\nselect[size] {\n height: auto;\n}\ninput[type='file']:focus,\ninput[type='radio']:focus,\ninput[type='checkbox']:focus {\n outline: thin dotted;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\noutput {\n display: block;\n padding-top: 7px;\n font-size: 14px;\n line-height: 1.42857143;\n color: #555;\n}\n//.form-control {\n// display: block;\n// width: 100%;\n// height: 34px;\n// padding: 6px 12px;\n// font-size: 14px;\n// line-height: 1.42857143;\n// color: #555;\n// background-color: #fff;\n// background-image: none;\n// border: 1px solid #ccc;\n// border-radius: 4px;\n// -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n// box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n// -webkit-transition: border-color ease-in-out 0.15s, -webkit-box-shadow ease-in-out 0.15s;\n// -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n// transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n//}\n//.form-control:focus {\n// border-color: #66afe9;\n// outline: 0;\n// -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);\n// box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);\n//}\n//.form-control::-moz-placeholder {\n// color: #999;\n// opacity: 1;\n//}\n//.form-control:-ms-input-placeholder {\n// color: #999;\n//}\n//.form-control::-webkit-input-placeholder {\n// color: #999;\n//}\n//.form-control[disabled],\n//.form-control[readonly],\n//fieldset[disabled] .form-control {\n// background-color: #eee;\n// opacity: 1;\n//}\n//.form-control[disabled],\n//fieldset[disabled] .form-control {\n// cursor: not-allowed;\n//}\n//textarea.form-control {\n// height: auto;\n//}\n//input[type='search'] {\n// -webkit-appearance: none;\n//}\n// @media screen and (-webkit-min-device-pixel-ratio: 0) {\n// input[type='date'],\n// input[type='time'],\n// input[type='datetime-local'],\n// input[type='month'] {\n// line-height: 34px;\n// }\n// input[type='date'].input-sm,\n// input[type='time'].input-sm,\n// input[type='datetime-local'].input-sm,\n// input[type='month'].input-sm,\n// .input-group-sm input[type='date'],\n// .input-group-sm input[type='time'],\n// .input-group-sm input[type='datetime-local'],\n// .input-group-sm input[type='month'] {\n// line-height: 30px;\n// }\n// input[type='date'].input-lg,\n// input[type='time'].input-lg,\n// input[type='datetime-local'].input-lg,\n// input[type='month'].input-lg,\n// .input-group-lg input[type='date'],\n// .input-group-lg input[type='time'],\n// .input-group-lg input[type='datetime-local'],\n// .input-group-lg input[type='month'] {\n// line-height: 46px;\n// }\n// }\n//.form-group {\n// margin-bottom: 15px;\n//}\n.radio,\n.checkbox {\n position: relative;\n display: block;\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.radio label,\n.checkbox label {\n min-height: 20px;\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: normal;\n cursor: pointer;\n}\n.radio input[type='radio'],\n.radio-inline input[type='radio'],\n.checkbox input[type='checkbox'],\n.checkbox-inline input[type='checkbox'] {\n position: absolute;\n margin-top: 4px \\9;\n margin-left: -20px;\n}\n.radio + .radio,\n.checkbox + .checkbox {\n margin-top: -5px;\n}\n.radio-inline,\n.checkbox-inline {\n position: relative;\n display: inline-block;\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: normal;\n vertical-align: middle;\n cursor: pointer;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n margin-top: 0;\n margin-left: 10px;\n}\ninput[type='radio'][disabled],\ninput[type='checkbox'][disabled],\ninput[type='radio'].disabled,\ninput[type='checkbox'].disabled,\nfieldset[disabled] input[type='radio'],\nfieldset[disabled] input[type='checkbox'] {\n cursor: not-allowed;\n}\n.radio-inline.disabled,\n.checkbox-inline.disabled,\nfieldset[disabled] .radio-inline,\nfieldset[disabled] .checkbox-inline {\n cursor: not-allowed;\n}\n.radio.disabled label,\n.checkbox.disabled label,\nfieldset[disabled] .radio label,\nfieldset[disabled] .checkbox label {\n cursor: not-allowed;\n}\n.form-control-static {\n min-height: 34px;\n padding-top: 7px;\n padding-bottom: 7px;\n margin-bottom: 0;\n}\n.form-control-static.input-lg,\n.form-control-static.input-sm {\n padding-right: 0;\n padding-left: 0;\n}\n.input-sm {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-sm {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-sm,\nselect[multiple].input-sm {\n height: auto;\n}\n.form-group-sm .form-control {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.form-group-sm .form-control {\n height: 30px;\n line-height: 30px;\n}\ntextarea.form-group-sm .form-control,\nselect[multiple].form-group-sm .form-control {\n height: auto;\n}\n.form-group-sm .form-control-static {\n height: 30px;\n min-height: 32px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n.input-lg {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-lg {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-lg,\nselect[multiple].input-lg {\n height: auto;\n}\n.form-group-lg .form-control {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.form-group-lg .form-control {\n height: 46px;\n line-height: 46px;\n}\ntextarea.form-group-lg .form-control,\nselect[multiple].form-group-lg .form-control {\n height: auto;\n}\n.form-group-lg .form-control-static {\n height: 46px;\n min-height: 38px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n}\n.has-feedback {\n position: relative;\n}\n.has-feedback .form-control {\n padding-right: 42.5px;\n}\n.form-control-feedback {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n display: block;\n width: 34px;\n height: 34px;\n line-height: 34px;\n text-align: center;\n pointer-events: none;\n}\n.input-lg + .form-control-feedback {\n width: 46px;\n height: 46px;\n line-height: 46px;\n}\n.input-sm + .form-control-feedback {\n width: 30px;\n height: 30px;\n line-height: 30px;\n}\n.has-success .help-block,\n.has-success .control-label,\n.has-success .radio,\n.has-success .checkbox,\n.has-success .radio-inline,\n.has-success .checkbox-inline,\n.has-success.radio label,\n.has-success.checkbox label,\n.has-success.radio-inline label,\n.has-success.checkbox-inline label {\n color: #3c763d;\n}\n.has-success .form-control {\n border-color: #3c763d;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-success .form-control:focus {\n border-color: #2b542c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n}\n.has-success .input-group-addon {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #3c763d;\n}\n.has-success .form-control-feedback {\n color: #3c763d;\n}\n.has-warning .help-block,\n.has-warning .control-label,\n.has-warning .radio,\n.has-warning .checkbox,\n.has-warning .radio-inline,\n.has-warning .checkbox-inline,\n.has-warning.radio label,\n.has-warning.checkbox label,\n.has-warning.radio-inline label,\n.has-warning.checkbox-inline label {\n color: #8a6d3b;\n}\n.has-warning .form-control {\n border-color: #8a6d3b;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-warning .form-control:focus {\n border-color: #66512c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n}\n.has-warning .input-group-addon {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #8a6d3b;\n}\n.has-warning .form-control-feedback {\n color: #8a6d3b;\n}\n.has-error .help-block,\n.has-error .control-label,\n.has-error .radio,\n.has-error .checkbox,\n.has-error .radio-inline,\n.has-error .checkbox-inline,\n.has-error.radio label,\n.has-error.checkbox label,\n.has-error.radio-inline label,\n.has-error.checkbox-inline label {\n color: #a94442;\n}\n.has-error .form-control {\n border-color: #a94442;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-error .form-control:focus {\n border-color: #843534;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n}\n.has-error .input-group-addon {\n color: #a94442;\n background-color: #f2dede;\n border-color: #a94442;\n}\n.has-error .form-control-feedback {\n color: #a94442;\n}\n.has-feedback label ~ .form-control-feedback {\n top: 25px;\n}\n.has-feedback label.sr-only ~ .form-control-feedback {\n top: 0;\n}\n.help-block {\n display: block;\n margin-top: 5px;\n margin-bottom: 10px;\n color: #737373;\n}\n@media (min-width: 768px) {\n .form-inline .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-static {\n display: inline-block;\n }\n .form-inline .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .form-inline .input-group .input-group-addon,\n .form-inline .input-group .input-group-btn,\n .form-inline .input-group .form-control {\n width: auto;\n }\n .form-inline .input-group > .form-control {\n width: 100%;\n }\n .form-inline .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio,\n .form-inline .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio label,\n .form-inline .checkbox label {\n padding-left: 0;\n }\n .form-inline .radio input[type='radio'],\n .form-inline .checkbox input[type='checkbox'] {\n position: relative;\n margin-left: 0;\n }\n .form-inline .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox,\n.form-horizontal .radio-inline,\n.form-horizontal .checkbox-inline {\n padding-top: 7px;\n margin-top: 0;\n margin-bottom: 0;\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox {\n min-height: 27px;\n}\n.form-horizontal .form-group {\n margin-right: -15px;\n margin-left: -15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .control-label {\n padding-top: 7px;\n margin-bottom: 0;\n text-align: right;\n }\n}\n.form-horizontal .has-feedback .form-control-feedback {\n right: 15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-lg .control-label {\n padding-top: 14.333333px;\n }\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-sm .control-label {\n padding-top: 6px;\n }\n}\n.btn {\n display: inline-block;\n padding: 6px 12px;\n margin-bottom: 0;\n font-size: 14px;\n font-weight: normal;\n line-height: 1.42857143;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n -ms-touch-action: manipulation;\n touch-action: manipulation;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n background-image: none;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.btn:focus,\n.btn:active:focus,\n.btn.active:focus,\n.btn.focus,\n.btn:active.focus,\n.btn.active.focus {\n outline: thin dotted;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n.btn:hover,\n.btn:focus,\n.btn.focus {\n color: #333;\n text-decoration: none;\n}\n.btn:active,\n.btn.active {\n background-image: none;\n outline: 0;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn.disabled,\n.btn[disabled],\nfieldset[disabled] .btn {\n pointer-events: none;\n cursor: not-allowed;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none;\n opacity: 0.65;\n}\n.btn-default {\n color: #333;\n background-color: #fff;\n border-color: #ccc;\n}\n.btn-default:hover,\n.btn-default:focus,\n.btn-default.focus,\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n color: #333;\n background-color: #e6e6e6;\n border-color: #adadad;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n background-image: none;\n}\n.btn-default.disabled,\n.btn-default[disabled],\nfieldset[disabled] .btn-default,\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus,\n.btn-default.disabled:active,\n.btn-default[disabled]:active,\nfieldset[disabled] .btn-default:active,\n.btn-default.disabled.active,\n.btn-default[disabled].active,\nfieldset[disabled] .btn-default.active {\n background-color: #fff;\n border-color: #ccc;\n}\n.btn-default .badge {\n color: #fff;\n background-color: #333;\n}\n.btn-primary {\n color: #fff;\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary:hover,\n.btn-primary:focus,\n.btn-primary.focus,\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n color: #fff;\n background-color: #286090;\n border-color: #204d74;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n background-image: none;\n}\n.btn-primary.disabled,\n.btn-primary[disabled],\nfieldset[disabled] .btn-primary,\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus,\n.btn-primary.disabled:active,\n.btn-primary[disabled]:active,\nfieldset[disabled] .btn-primary:active,\n.btn-primary.disabled.active,\n.btn-primary[disabled].active,\nfieldset[disabled] .btn-primary.active {\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.btn-success {\n color: #fff;\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success:hover,\n.btn-success:focus,\n.btn-success.focus,\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n color: #fff;\n background-color: #449d44;\n border-color: #398439;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n background-image: none;\n}\n.btn-success.disabled,\n.btn-success[disabled],\nfieldset[disabled] .btn-success,\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus,\n.btn-success.disabled:active,\n.btn-success[disabled]:active,\nfieldset[disabled] .btn-success:active,\n.btn-success.disabled.active,\n.btn-success[disabled].active,\nfieldset[disabled] .btn-success.active {\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success .badge {\n color: #5cb85c;\n background-color: #fff;\n}\n.btn-info {\n color: #fff;\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info:hover,\n.btn-info:focus,\n.btn-info.focus,\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n color: #fff;\n background-color: #31b0d5;\n border-color: #269abc;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n background-image: none;\n}\n.btn-info.disabled,\n.btn-info[disabled],\nfieldset[disabled] .btn-info,\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus,\n.btn-info.disabled:active,\n.btn-info[disabled]:active,\nfieldset[disabled] .btn-info:active,\n.btn-info.disabled.active,\n.btn-info[disabled].active,\nfieldset[disabled] .btn-info.active {\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info .badge {\n color: #5bc0de;\n background-color: #fff;\n}\n.btn-warning {\n color: #fff;\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning:hover,\n.btn-warning:focus,\n.btn-warning.focus,\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n color: #fff;\n background-color: #ec971f;\n border-color: #d58512;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n background-image: none;\n}\n.btn-warning.disabled,\n.btn-warning[disabled],\nfieldset[disabled] .btn-warning,\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus,\n.btn-warning.disabled:active,\n.btn-warning[disabled]:active,\nfieldset[disabled] .btn-warning:active,\n.btn-warning.disabled.active,\n.btn-warning[disabled].active,\nfieldset[disabled] .btn-warning.active {\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning .badge {\n color: #f0ad4e;\n background-color: #fff;\n}\n.btn-danger {\n color: #fff;\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger:hover,\n.btn-danger:focus,\n.btn-danger.focus,\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n color: #fff;\n background-color: #c9302c;\n border-color: #ac2925;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n background-image: none;\n}\n.btn-danger.disabled,\n.btn-danger[disabled],\nfieldset[disabled] .btn-danger,\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus,\n.btn-danger.disabled:active,\n.btn-danger[disabled]:active,\nfieldset[disabled] .btn-danger:active,\n.btn-danger.disabled.active,\n.btn-danger[disabled].active,\nfieldset[disabled] .btn-danger.active {\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger .badge {\n color: #d9534f;\n background-color: #fff;\n}\n.btn-link {\n font-weight: normal;\n color: #337ab7;\n border-radius: 0;\n}\n.btn-link,\n.btn-link:active,\n.btn-link.active,\n.btn-link[disabled],\nfieldset[disabled] .btn-link {\n background-color: transparent;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-link,\n.btn-link:hover,\n.btn-link:focus,\n.btn-link:active {\n border-color: transparent;\n}\n.btn-link:hover,\n.btn-link:focus {\n color: #23527c;\n text-decoration: underline;\n background-color: transparent;\n}\n.btn-link[disabled]:hover,\nfieldset[disabled] .btn-link:hover,\n.btn-link[disabled]:focus,\nfieldset[disabled] .btn-link:focus {\n color: #777;\n text-decoration: none;\n}\n.btn-lg,\n.btn-group-lg > .btn {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\n.btn-sm,\n.btn-group-sm > .btn {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-xs,\n.btn-group-xs > .btn {\n padding: 1px 5px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-block {\n display: block;\n width: 100%;\n}\n.btn-block + .btn-block {\n margin-top: 5px;\n}\ninput[type='submit'].btn-block,\ninput[type='reset'].btn-block,\ninput[type='button'].btn-block {\n width: 100%;\n}\n.fade {\n opacity: 0;\n -webkit-transition: opacity 0.15s linear;\n -o-transition: opacity 0.15s linear;\n transition: opacity 0.15s linear;\n}\n.fade.in {\n opacity: 1;\n}\n.collapse {\n display: none;\n}\n.collapse.in {\n display: block;\n}\ntr.collapse.in {\n display: table-row;\n}\ntbody.collapse.in {\n display: table-row-group;\n}\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n -webkit-transition-timing-function: ease;\n -o-transition-timing-function: ease;\n transition-timing-function: ease;\n -webkit-transition-duration: 0.35s;\n -o-transition-duration: 0.35s;\n transition-duration: 0.35s;\n -webkit-transition-property: height, visibility;\n -o-transition-property: height, visibility;\n transition-property: height, visibility;\n}\n.caret {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 2px;\n vertical-align: middle;\n border-top: 4px dashed;\n border-right: 4px solid transparent;\n border-left: 4px solid transparent;\n}\n.dropup,\n.dropdown {\n position: relative;\n}\n.dropdown-toggle:focus {\n outline: 0;\n}\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 160px;\n padding: 5px 0;\n margin: 2px 0 0;\n font-size: 14px;\n text-align: left;\n list-style: none;\n background-color: #fff;\n -webkit-background-clip: padding-box;\n background-clip: padding-box;\n border: 1px solid #ccc;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n}\n.dropdown-menu.pull-right {\n right: 0;\n left: auto;\n}\n.dropdown-menu .divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.dropdown-menu > li > a {\n display: block;\n padding: 3px 20px;\n clear: both;\n font-weight: normal;\n line-height: 1.42857143;\n color: #333;\n white-space: nowrap;\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n color: #262626;\n text-decoration: none;\n background-color: #f5f5f5;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n color: #fff;\n text-decoration: none;\n background-color: #337ab7;\n outline: 0;\n}\n.dropdown-menu > .disabled > a,\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n color: #777;\n}\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n text-decoration: none;\n cursor: not-allowed;\n background-color: transparent;\n background-image: none;\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n}\n.open > .dropdown-menu {\n display: block;\n}\n.open > a {\n outline: 0;\n}\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n.dropdown-header {\n display: block;\n padding: 3px 20px;\n font-size: 12px;\n line-height: 1.42857143;\n color: #777;\n white-space: nowrap;\n}\n.dropdown-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 990;\n}\n.pull-right > .dropdown-menu {\n right: 0;\n left: auto;\n}\n.dropup .caret,\n.navbar-fixed-bottom .dropdown .caret {\n content: '';\n border-top: 0;\n border-bottom: 4px solid;\n}\n.dropup .dropdown-menu,\n.navbar-fixed-bottom .dropdown .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-bottom: 2px;\n}\n@media (min-width: 768px) {\n .navbar-right .dropdown-menu {\n right: 0;\n left: auto;\n }\n .navbar-right .dropdown-menu-left {\n right: auto;\n left: 0;\n }\n}\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n}\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n float: left;\n}\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover,\n.btn-group > .btn:focus,\n.btn-group-vertical > .btn:focus,\n.btn-group > .btn:active,\n.btn-group-vertical > .btn:active,\n.btn-group > .btn.active,\n.btn-group-vertical > .btn.active {\n z-index: 2;\n}\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group {\n margin-left: -1px;\n}\n.btn-toolbar {\n margin-left: -5px;\n}\n.btn-toolbar .btn-group,\n.btn-toolbar .input-group {\n float: left;\n}\n.btn-toolbar > .btn,\n.btn-toolbar > .btn-group,\n.btn-toolbar > .input-group {\n margin-left: 5px;\n}\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n border-radius: 0;\n}\n.btn-group > .btn:first-child {\n margin-left: 0;\n}\n.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group > .btn-group {\n float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n outline: 0;\n}\n.btn-group > .btn + .dropdown-toggle {\n padding-right: 8px;\n padding-left: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n padding-right: 12px;\n padding-left: 12px;\n}\n.btn-group.open .dropdown-toggle {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-group.open .dropdown-toggle.btn-link {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn .caret {\n margin-left: 0;\n}\n.btn-lg .caret {\n border-width: 5px 5px 0;\n border-bottom-width: 0;\n}\n.dropup .btn-lg .caret {\n border-width: 0 5px 5px;\n}\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group,\n.btn-group-vertical > .btn-group > .btn {\n display: block;\n float: none;\n width: 100%;\n max-width: 100%;\n}\n.btn-group-vertical > .btn-group > .btn {\n float: none;\n}\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n}\n.btn-group-vertical > .btn:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.btn-group-vertical > .btn:first-child:not(:last-child) {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn:last-child:not(:first-child) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n border-bottom-left-radius: 4px;\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.btn-group-justified {\n display: table;\n width: 100%;\n table-layout: fixed;\n border-collapse: separate;\n}\n.btn-group-justified > .btn,\n.btn-group-justified > .btn-group {\n display: table-cell;\n float: none;\n width: 1%;\n}\n.btn-group-justified > .btn-group .btn {\n width: 100%;\n}\n.btn-group-justified > .btn-group .dropdown-menu {\n left: auto;\n}\n[data-toggle='buttons'] > .btn input[type='radio'],\n[data-toggle='buttons'] > .btn-group > .btn input[type='radio'],\n[data-toggle='buttons'] > .btn input[type='checkbox'],\n[data-toggle='buttons'] > .btn-group > .btn input[type='checkbox'] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n.input-group {\n position: relative;\n display: table;\n border-collapse: separate;\n}\n.input-group[class*='col-'] {\n float: none;\n padding-right: 0;\n padding-left: 0;\n}\n.input-group .form-control {\n position: relative;\n z-index: 2;\n float: left;\n width: 100%;\n margin-bottom: 0;\n}\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-group-lg > .form-control,\nselect.input-group-lg > .input-group-addon,\nselect.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-group-lg > .form-control,\ntextarea.input-group-lg > .input-group-addon,\ntextarea.input-group-lg > .input-group-btn > .btn,\nselect[multiple].input-group-lg > .form-control,\nselect[multiple].input-group-lg > .input-group-addon,\nselect[multiple].input-group-lg > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-group-sm > .form-control,\nselect.input-group-sm > .input-group-addon,\nselect.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-group-sm > .form-control,\ntextarea.input-group-sm > .input-group-addon,\ntextarea.input-group-sm > .input-group-btn > .btn,\nselect[multiple].input-group-sm > .form-control,\nselect[multiple].input-group-sm > .input-group-addon,\nselect[multiple].input-group-sm > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n display: table-cell;\n}\n.input-group-addon:not(:first-child):not(:last-child),\n.input-group-btn:not(:first-child):not(:last-child),\n.input-group .form-control:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.input-group-addon,\n.input-group-btn {\n width: 1%;\n white-space: nowrap;\n vertical-align: middle;\n}\n.input-group-addon {\n padding: 6px 12px;\n font-size: 14px;\n font-weight: normal;\n line-height: 1;\n color: #555;\n text-align: center;\n background-color: #eee;\n border: 1px solid #ccc;\n border-radius: 4px;\n}\n.input-group-addon.input-sm {\n padding: 5px 10px;\n font-size: 12px;\n border-radius: 3px;\n}\n.input-group-addon.input-lg {\n padding: 10px 16px;\n font-size: 18px;\n border-radius: 6px;\n}\n.input-group-addon input[type='radio'],\n.input-group-addon input[type='checkbox'] {\n margin-top: 0;\n}\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.input-group-addon:first-child {\n border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.input-group-addon:last-child {\n border-left: 0;\n}\n.input-group-btn {\n position: relative;\n font-size: 0;\n white-space: nowrap;\n}\n.input-group-btn > .btn {\n position: relative;\n}\n.input-group-btn > .btn + .btn {\n margin-left: -1px;\n}\n.input-group-btn > .btn:hover,\n.input-group-btn > .btn:focus,\n.input-group-btn > .btn:active {\n z-index: 2;\n}\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group {\n margin-right: -1px;\n}\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group {\n margin-left: -1px;\n}\n.nav {\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n.nav > li {\n position: relative;\n display: block;\n}\n.nav > li > a {\n position: relative;\n display: block;\n padding: 10px 15px;\n}\n.nav > li > a:hover,\n.nav > li > a:focus {\n text-decoration: none;\n background-color: #eee;\n}\n.nav > li.disabled > a {\n color: #777;\n}\n.nav > li.disabled > a:hover,\n.nav > li.disabled > a:focus {\n color: #777;\n text-decoration: none;\n cursor: not-allowed;\n background-color: transparent;\n}\n.nav .open > a,\n.nav .open > a:hover,\n.nav .open > a:focus {\n background-color: #eee;\n border-color: #337ab7;\n}\n.nav .nav-divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.nav > li > a > img {\n max-width: none;\n}\n.nav-tabs {\n border-bottom: 1px solid #ddd;\n}\n.nav-tabs > li {\n float: left;\n margin-bottom: -1px;\n}\n.nav-tabs > li > a {\n margin-right: 2px;\n line-height: 1.42857143;\n border: 1px solid transparent;\n border-radius: 4px 4px 0 0;\n}\n.nav-tabs > li > a:hover {\n border-color: #eee #eee #ddd;\n}\n.nav-tabs > li.active > a,\n.nav-tabs > li.active > a:hover,\n.nav-tabs > li.active > a:focus {\n color: #555;\n cursor: default;\n background-color: #fff;\n border: 1px solid #ddd;\n border-bottom-color: transparent;\n}\n.nav-tabs.nav-justified {\n width: 100%;\n border-bottom: 0;\n}\n.nav-tabs.nav-justified > li {\n float: none;\n}\n.nav-tabs.nav-justified > li > a {\n margin-bottom: 5px;\n text-align: center;\n}\n.nav-tabs.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-tabs.nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs.nav-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs.nav-justified > .active > a,\n.nav-tabs.nav-justified > .active > a:hover,\n.nav-tabs.nav-justified > .active > a:focus {\n border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li > a {\n border-bottom: 1px solid #ddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs.nav-justified > .active > a,\n .nav-tabs.nav-justified > .active > a:hover,\n .nav-tabs.nav-justified > .active > a:focus {\n border-bottom-color: #fff;\n }\n}\n.nav-pills > li {\n float: left;\n}\n.nav-pills > li > a {\n border-radius: 4px;\n}\n.nav-pills > li + li {\n margin-left: 2px;\n}\n.nav-pills > li.active > a,\n.nav-pills > li.active > a:hover,\n.nav-pills > li.active > a:focus {\n color: #fff;\n background-color: #337ab7;\n}\n.nav-stacked > li {\n float: none;\n}\n.nav-stacked > li + li {\n margin-top: 2px;\n margin-left: 0;\n}\n.nav-justified {\n width: 100%;\n}\n.nav-justified > li {\n float: none;\n}\n.nav-justified > li > a {\n margin-bottom: 5px;\n text-align: center;\n}\n.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs-justified {\n border-bottom: 0;\n}\n.nav-tabs-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs-justified > .active > a,\n.nav-tabs-justified > .active > a:hover,\n.nav-tabs-justified > .active > a:focus {\n border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n .nav-tabs-justified > li > a {\n border-bottom: 1px solid #ddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs-justified > .active > a,\n .nav-tabs-justified > .active > a:hover,\n .nav-tabs-justified > .active > a:focus {\n border-bottom-color: #fff;\n }\n}\n.tab-content > .tab-pane {\n display: none;\n}\n.tab-content > .active {\n display: block;\n}\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.navbar {\n position: relative;\n min-height: 50px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n}\n@media (min-width: 768px) {\n .navbar {\n border-radius: 4px;\n }\n}\n@media (min-width: 768px) {\n .navbar-header {\n float: left;\n }\n}\n.navbar-collapse {\n padding-right: 15px;\n padding-left: 15px;\n overflow-x: visible;\n -webkit-overflow-scrolling: touch;\n border-top: 1px solid transparent;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);\n}\n.navbar-collapse.in {\n overflow-y: auto;\n}\n@media (min-width: 768px) {\n .navbar-collapse {\n width: auto;\n border-top: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n .navbar-collapse.collapse {\n display: block !important;\n height: auto !important;\n padding-bottom: 0;\n overflow: visible !important;\n }\n .navbar-collapse.in {\n overflow-y: visible;\n }\n .navbar-fixed-top .navbar-collapse,\n .navbar-static-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n padding-right: 0;\n padding-left: 0;\n }\n}\n.navbar-fixed-top .navbar-collapse,\n.navbar-fixed-bottom .navbar-collapse {\n max-height: 340px;\n}\n@media (max-device-width: 480px) and (orientation: landscape) {\n .navbar-fixed-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n max-height: 200px;\n }\n}\n.container > .navbar-header,\n.container-fluid > .navbar-header,\n.container > .navbar-collapse,\n.container-fluid > .navbar-collapse {\n margin-right: -15px;\n margin-left: -15px;\n}\n@media (min-width: 768px) {\n .container > .navbar-header,\n .container-fluid > .navbar-header,\n .container > .navbar-collapse,\n .container-fluid > .navbar-collapse {\n margin-right: 0;\n margin-left: 0;\n }\n}\n.navbar-static-top {\n z-index: 1000;\n border-width: 0 0 1px;\n}\n@media (min-width: 768px) {\n .navbar-static-top {\n border-radius: 0;\n }\n}\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n position: fixed;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n@media (min-width: 768px) {\n .navbar-fixed-top,\n .navbar-fixed-bottom {\n border-radius: 0;\n }\n}\n.navbar-fixed-top {\n top: 0;\n border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n bottom: 0;\n margin-bottom: 0;\n border-width: 1px 0 0;\n}\n.navbar-brand {\n float: left;\n height: 50px;\n padding: 15px 15px;\n font-size: 18px;\n line-height: 20px;\n}\n.navbar-brand:hover,\n.navbar-brand:focus {\n text-decoration: none;\n}\n.navbar-brand > img {\n display: block;\n}\n@media (min-width: 768px) {\n .navbar > .container .navbar-brand,\n .navbar > .container-fluid .navbar-brand {\n margin-left: -15px;\n }\n}\n.navbar-toggle {\n position: relative;\n float: right;\n padding: 9px 10px;\n margin-top: 8px;\n margin-right: 15px;\n margin-bottom: 8px;\n background-color: transparent;\n background-image: none;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.navbar-toggle:focus {\n outline: 0;\n}\n.navbar-toggle .icon-bar {\n display: block;\n width: 22px;\n height: 2px;\n border-radius: 1px;\n}\n.navbar-toggle .icon-bar + .icon-bar {\n margin-top: 4px;\n}\n@media (min-width: 768px) {\n .navbar-toggle {\n display: none;\n }\n}\n.navbar-nav {\n margin: 7.5px -15px;\n}\n.navbar-nav > li > a {\n padding-top: 10px;\n padding-bottom: 10px;\n line-height: 20px;\n}\n@media (max-width: 767px) {\n .navbar-nav .open .dropdown-menu {\n position: static;\n float: none;\n width: auto;\n margin-top: 0;\n background-color: transparent;\n border: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n .navbar-nav .open .dropdown-menu > li > a,\n .navbar-nav .open .dropdown-menu .dropdown-header {\n padding: 5px 15px 5px 25px;\n }\n .navbar-nav .open .dropdown-menu > li > a {\n line-height: 20px;\n }\n .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-nav .open .dropdown-menu > li > a:focus {\n background-image: none;\n }\n}\n@media (min-width: 768px) {\n .navbar-nav {\n float: left;\n margin: 0;\n }\n .navbar-nav > li {\n float: left;\n }\n .navbar-nav > li > a {\n padding-top: 15px;\n padding-bottom: 15px;\n }\n}\n.navbar-form {\n padding: 10px 15px;\n margin-top: 8px;\n margin-right: -15px;\n margin-bottom: 8px;\n margin-left: -15px;\n border-top: 1px solid transparent;\n border-bottom: 1px solid transparent;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n}\n@media (min-width: 768px) {\n .navbar-form .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .navbar-form .form-control-static {\n display: inline-block;\n }\n .navbar-form .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .navbar-form .input-group .input-group-addon,\n .navbar-form .input-group .input-group-btn,\n .navbar-form .input-group .form-control {\n width: auto;\n }\n .navbar-form .input-group > .form-control {\n width: 100%;\n }\n .navbar-form .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio,\n .navbar-form .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio label,\n .navbar-form .checkbox label {\n padding-left: 0;\n }\n .navbar-form .radio input[type='radio'],\n .navbar-form .checkbox input[type='checkbox'] {\n position: relative;\n margin-left: 0;\n }\n .navbar-form .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n@media (max-width: 767px) {\n .navbar-form .form-group {\n margin-bottom: 5px;\n }\n .navbar-form .form-group:last-child {\n margin-bottom: 0;\n }\n}\n@media (min-width: 768px) {\n .navbar-form {\n width: auto;\n padding-top: 0;\n padding-bottom: 0;\n margin-right: 0;\n margin-left: 0;\n border: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n}\n.navbar-nav > li > .dropdown-menu {\n margin-top: 0;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n margin-bottom: 0;\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.navbar-btn {\n margin-top: 8px;\n margin-bottom: 8px;\n}\n.navbar-btn.btn-sm {\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.navbar-btn.btn-xs {\n margin-top: 14px;\n margin-bottom: 14px;\n}\n.navbar-text {\n margin-top: 15px;\n margin-bottom: 15px;\n}\n@media (min-width: 768px) {\n .navbar-text {\n float: left;\n margin-right: 15px;\n margin-left: 15px;\n }\n}\n@media (min-width: 768px) {\n .navbar-left {\n float: left !important;\n }\n .navbar-right {\n float: right !important;\n margin-right: -15px;\n }\n .navbar-right ~ .navbar-right {\n margin-right: 0;\n }\n}\n.navbar-default {\n background-color: #f8f8f8;\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-brand {\n color: #777;\n}\n.navbar-default .navbar-brand:hover,\n.navbar-default .navbar-brand:focus {\n color: #5e5e5e;\n background-color: transparent;\n}\n.navbar-default .navbar-text {\n color: #777;\n}\n.navbar-default .navbar-nav > li > a {\n color: #777;\n}\n.navbar-default .navbar-nav > li > a:hover,\n.navbar-default .navbar-nav > li > a:focus {\n color: #333;\n background-color: transparent;\n}\n.navbar-default .navbar-nav > .active > a,\n.navbar-default .navbar-nav > .active > a:hover,\n.navbar-default .navbar-nav > .active > a:focus {\n color: #555;\n background-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .disabled > a,\n.navbar-default .navbar-nav > .disabled > a:hover,\n.navbar-default .navbar-nav > .disabled > a:focus {\n color: #ccc;\n background-color: transparent;\n}\n.navbar-default .navbar-toggle {\n border-color: #ddd;\n}\n.navbar-default .navbar-toggle:hover,\n.navbar-default .navbar-toggle:focus {\n background-color: #ddd;\n}\n.navbar-default .navbar-toggle .icon-bar {\n background-color: #888;\n}\n.navbar-default .navbar-collapse,\n.navbar-default .navbar-form {\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .open > a:hover,\n.navbar-default .navbar-nav > .open > a:focus {\n color: #555;\n background-color: #e7e7e7;\n}\n@media (max-width: 767px) {\n .navbar-default .navbar-nav .open .dropdown-menu > li > a {\n color: #777;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #333;\n background-color: transparent;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #555;\n background-color: #e7e7e7;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #ccc;\n background-color: transparent;\n }\n}\n.navbar-default .navbar-link {\n color: #777;\n}\n.navbar-default .navbar-link:hover {\n color: #333;\n}\n.navbar-default .btn-link {\n color: #777;\n}\n.navbar-default .btn-link:hover,\n.navbar-default .btn-link:focus {\n color: #333;\n}\n.navbar-default .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-default .btn-link:hover,\n.navbar-default .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-default .btn-link:focus {\n color: #ccc;\n}\n.navbar-inverse {\n background-color: #222;\n border-color: #080808;\n}\n.navbar-inverse .navbar-brand {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-brand:hover,\n.navbar-inverse .navbar-brand:focus {\n color: #fff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-text {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a:hover,\n.navbar-inverse .navbar-nav > li > a:focus {\n color: #fff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-nav > .active > a,\n.navbar-inverse .navbar-nav > .active > a:hover,\n.navbar-inverse .navbar-nav > .active > a:focus {\n color: #fff;\n background-color: #080808;\n}\n.navbar-inverse .navbar-nav > .disabled > a,\n.navbar-inverse .navbar-nav > .disabled > a:hover,\n.navbar-inverse .navbar-nav > .disabled > a:focus {\n color: #444;\n background-color: transparent;\n}\n.navbar-inverse .navbar-toggle {\n border-color: #333;\n}\n.navbar-inverse .navbar-toggle:hover,\n.navbar-inverse .navbar-toggle:focus {\n background-color: #333;\n}\n.navbar-inverse .navbar-toggle .icon-bar {\n background-color: #fff;\n}\n.navbar-inverse .navbar-collapse,\n.navbar-inverse .navbar-form {\n border-color: #101010;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .open > a:hover,\n.navbar-inverse .navbar-nav > .open > a:focus {\n color: #fff;\n background-color: #080808;\n}\n@media (max-width: 767px) {\n .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {\n border-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu .divider {\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {\n color: #9d9d9d;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #fff;\n background-color: transparent;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #fff;\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #444;\n background-color: transparent;\n }\n}\n.navbar-inverse .navbar-link {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-link:hover {\n color: #fff;\n}\n.navbar-inverse .btn-link {\n color: #9d9d9d;\n}\n.navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link:focus {\n color: #fff;\n}\n.navbar-inverse .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-inverse .btn-link:focus {\n color: #444;\n}\n.breadcrumb {\n padding: 8px 15px;\n margin-bottom: 20px;\n list-style: none;\n background-color: #f5f5f5;\n border-radius: 4px;\n}\n.breadcrumb > li {\n display: inline-block;\n}\n.breadcrumb > li + li:before {\n padding: 0 5px;\n color: #ccc;\n content: '/\\00a0';\n}\n.breadcrumb > .active {\n color: #777;\n}\n.pagination {\n display: inline-block;\n padding-left: 0;\n margin: 20px 0;\n border-radius: 4px;\n}\n.pagination > li {\n display: inline;\n}\n.pagination > li > a,\n.pagination > li > span {\n position: relative;\n float: left;\n padding: 6px 12px;\n margin-left: -1px;\n line-height: 1.42857143;\n color: #337ab7;\n text-decoration: none;\n background-color: #fff;\n border: 1px solid #ddd;\n}\n.pagination > li:first-child > a,\n.pagination > li:first-child > span {\n margin-left: 0;\n border-top-left-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n.pagination > li:last-child > a,\n.pagination > li:last-child > span {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 4px;\n}\n.pagination > li > a:hover,\n.pagination > li > span:hover,\n.pagination > li > a:focus,\n.pagination > li > span:focus {\n color: #23527c;\n background-color: #eee;\n border-color: #ddd;\n}\n.pagination > .active > a,\n.pagination > .active > span,\n.pagination > .active > a:hover,\n.pagination > .active > span:hover,\n.pagination > .active > a:focus,\n.pagination > .active > span:focus {\n z-index: 2;\n color: #fff;\n cursor: default;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.pagination > .disabled > span,\n.pagination > .disabled > span:hover,\n.pagination > .disabled > span:focus,\n.pagination > .disabled > a,\n.pagination > .disabled > a:hover,\n.pagination > .disabled > a:focus {\n color: #777;\n cursor: not-allowed;\n background-color: #fff;\n border-color: #ddd;\n}\n.pagination-lg > li > a,\n.pagination-lg > li > span {\n padding: 10px 16px;\n font-size: 18px;\n}\n.pagination-lg > li:first-child > a,\n.pagination-lg > li:first-child > span {\n border-top-left-radius: 6px;\n border-bottom-left-radius: 6px;\n}\n.pagination-lg > li:last-child > a,\n.pagination-lg > li:last-child > span {\n border-top-right-radius: 6px;\n border-bottom-right-radius: 6px;\n}\n.pagination-sm > li > a,\n.pagination-sm > li > span {\n padding: 5px 10px;\n font-size: 12px;\n}\n.pagination-sm > li:first-child > a,\n.pagination-sm > li:first-child > span {\n border-top-left-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.pagination-sm > li:last-child > a,\n.pagination-sm > li:last-child > span {\n border-top-right-radius: 3px;\n border-bottom-right-radius: 3px;\n}\n.pager {\n padding-left: 0;\n margin: 20px 0;\n text-align: center;\n list-style: none;\n}\n.pager li {\n display: inline;\n}\n.pager li > a,\n.pager li > span {\n display: inline-block;\n padding: 5px 14px;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 15px;\n}\n.pager li > a:hover,\n.pager li > a:focus {\n text-decoration: none;\n background-color: #eee;\n}\n.pager .next > a,\n.pager .next > span {\n float: right;\n}\n.pager .previous > a,\n.pager .previous > span {\n float: left;\n}\n.pager .disabled > a,\n.pager .disabled > a:hover,\n.pager .disabled > a:focus,\n.pager .disabled > span {\n color: #777;\n cursor: not-allowed;\n background-color: #fff;\n}\n.label {\n display: inline;\n padding: 0.2em 0.6em 0.3em;\n font-size: 75%;\n font-weight: bold;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25em;\n}\na.label:hover,\na.label:focus {\n color: #fff;\n text-decoration: none;\n cursor: pointer;\n}\n.label:empty {\n display: none;\n}\n.btn .label {\n position: relative;\n top: -1px;\n}\n.label-default {\n background-color: #777;\n}\n.label-default[href]:hover,\n.label-default[href]:focus {\n background-color: #5e5e5e;\n}\n.label-primary {\n background-color: #337ab7;\n}\n.label-primary[href]:hover,\n.label-primary[href]:focus {\n background-color: #286090;\n}\n.label-success {\n background-color: #5cb85c;\n}\n.label-success[href]:hover,\n.label-success[href]:focus {\n background-color: #449d44;\n}\n.label-info {\n background-color: #5bc0de;\n}\n.label-info[href]:hover,\n.label-info[href]:focus {\n background-color: #31b0d5;\n}\n.label-warning {\n background-color: #f0ad4e;\n}\n.label-warning[href]:hover,\n.label-warning[href]:focus {\n background-color: #ec971f;\n}\n.label-danger {\n background-color: #d9534f;\n}\n.label-danger[href]:hover,\n.label-danger[href]:focus {\n background-color: #c9302c;\n}\n.badge {\n display: inline-block;\n min-width: 10px;\n padding: 3px 7px;\n font-size: 12px;\n font-weight: bold;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n background-color: #777;\n border-radius: 10px;\n}\n.badge:empty {\n display: none;\n}\n.btn .badge {\n position: relative;\n top: -1px;\n}\n.btn-xs .badge,\n.btn-group-xs > .btn .badge {\n top: 0;\n padding: 1px 5px;\n}\na.badge:hover,\na.badge:focus {\n color: #fff;\n text-decoration: none;\n cursor: pointer;\n}\n.list-group-item.active > .badge,\n.nav-pills > .active > a > .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.list-group-item > .badge {\n float: right;\n}\n.list-group-item > .badge + .badge {\n margin-right: 5px;\n}\n.nav-pills > li > a > .badge {\n margin-left: 3px;\n}\n.jumbotron {\n padding: 30px 15px;\n margin-bottom: 30px;\n color: inherit;\n background-color: #eee;\n}\n.jumbotron h1,\n.jumbotron .h1 {\n color: inherit;\n}\n.jumbotron p {\n margin-bottom: 15px;\n font-size: 21px;\n font-weight: 200;\n}\n.jumbotron > hr {\n border-top-color: #d5d5d5;\n}\n.container .jumbotron,\n.container-fluid .jumbotron {\n border-radius: 6px;\n}\n.jumbotron .container {\n max-width: 100%;\n}\n@media screen and (min-width: 768px) {\n .jumbotron {\n padding: 48px 0;\n }\n .container .jumbotron,\n .container-fluid .jumbotron {\n padding-right: 60px;\n padding-left: 60px;\n }\n .jumbotron h1,\n .jumbotron .h1 {\n font-size: 63px;\n }\n}\n.thumbnail {\n display: block;\n padding: 4px;\n margin-bottom: 20px;\n line-height: 1.42857143;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n -webkit-transition: border 0.2s ease-in-out;\n -o-transition: border 0.2s ease-in-out;\n transition: border 0.2s ease-in-out;\n}\n.thumbnail > img,\n.thumbnail a > img {\n margin-right: auto;\n margin-left: auto;\n}\na.thumbnail:hover,\na.thumbnail:focus,\na.thumbnail.active {\n border-color: #337ab7;\n}\n.thumbnail .caption {\n padding: 9px;\n color: #333;\n}\n.alert {\n padding: 15px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.alert h4 {\n margin-top: 0;\n color: inherit;\n}\n.alert .alert-link {\n font-weight: bold;\n}\n.alert > p,\n.alert > ul {\n margin-bottom: 0;\n}\n.alert > p + p {\n margin-top: 5px;\n}\n.alert-dismissable,\n.alert-dismissible {\n padding-right: 35px;\n}\n.alert-dismissable .close,\n.alert-dismissible .close {\n position: relative;\n top: -2px;\n right: -21px;\n color: inherit;\n}\n.alert-success {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #d6e9c6;\n}\n.alert-success hr {\n border-top-color: #c9e2b3;\n}\n.alert-success .alert-link {\n color: #2b542c;\n}\n.alert-info {\n color: #31708f;\n background-color: #d9edf7;\n border-color: #bce8f1;\n}\n.alert-info hr {\n border-top-color: #a6e1ec;\n}\n.alert-info .alert-link {\n color: #245269;\n}\n.alert-warning {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #faebcc;\n}\n.alert-warning hr {\n border-top-color: #f7e1b5;\n}\n.alert-warning .alert-link {\n color: #66512c;\n}\n.alert-danger {\n color: #a94442;\n background-color: #f2dede;\n border-color: #ebccd1;\n}\n.alert-danger hr {\n border-top-color: #e4b9c0;\n}\n.alert-danger .alert-link {\n color: #843534;\n}\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n@-o-keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n@keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n.progress {\n height: 20px;\n margin-bottom: 20px;\n overflow: hidden;\n background-color: #f5f5f5;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n.progress-bar {\n float: left;\n width: 0;\n height: 100%;\n font-size: 12px;\n line-height: 20px;\n color: #fff;\n text-align: center;\n background-color: #337ab7;\n -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n -webkit-transition: width 0.6s ease;\n -o-transition: width 0.6s ease;\n transition: width 0.6s ease;\n}\n.progress-striped .progress-bar,\n.progress-bar-striped {\n background-image: -webkit-linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n background-image: -o-linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n background-image: linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n -webkit-background-size: 40px 40px;\n background-size: 40px 40px;\n}\n.progress.active .progress-bar,\n.progress-bar.active {\n -webkit-animation: progress-bar-stripes 2s linear infinite;\n -o-animation: progress-bar-stripes 2s linear infinite;\n animation: progress-bar-stripes 2s linear infinite;\n}\n.progress-bar-success {\n background-color: #5cb85c;\n}\n.progress-striped .progress-bar-success {\n background-image: -webkit-linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n background-image: -o-linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n background-image: linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n}\n.progress-bar-info {\n background-color: #5bc0de;\n}\n.progress-striped .progress-bar-info {\n background-image: -webkit-linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n background-image: -o-linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n background-image: linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n}\n.progress-bar-warning {\n background-color: #f0ad4e;\n}\n.progress-striped .progress-bar-warning {\n background-image: -webkit-linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n background-image: -o-linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n background-image: linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n}\n.progress-bar-danger {\n background-color: #d9534f;\n}\n.progress-striped .progress-bar-danger {\n background-image: -webkit-linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n background-image: -o-linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n background-image: linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n}\n.media {\n margin-top: 15px;\n}\n.media:first-child {\n margin-top: 0;\n}\n.media,\n.media-body {\n overflow: hidden;\n zoom: 1;\n}\n.media-body {\n width: 10000px;\n}\n.media-object {\n display: block;\n}\n.media-right,\n.media > .pull-right {\n padding-left: 10px;\n}\n.media-left,\n.media > .pull-left {\n padding-right: 10px;\n}\n.media-left,\n.media-right,\n.media-body {\n display: table-cell;\n vertical-align: top;\n}\n.media-middle {\n vertical-align: middle;\n}\n.media-bottom {\n vertical-align: bottom;\n}\n.media-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.media-list {\n padding-left: 0;\n list-style: none;\n}\n.list-group {\n padding-left: 0;\n margin-bottom: 20px;\n}\n.list-group-item {\n position: relative;\n display: block;\n padding: 10px 15px;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid #ddd;\n}\n.list-group-item:first-child {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n}\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\na.list-group-item {\n color: #555;\n}\na.list-group-item .list-group-item-heading {\n color: #333;\n}\na.list-group-item:hover,\na.list-group-item:focus {\n color: #555;\n text-decoration: none;\n background-color: #f5f5f5;\n}\n.list-group-item.disabled,\n.list-group-item.disabled:hover,\n.list-group-item.disabled:focus {\n color: #777;\n cursor: not-allowed;\n background-color: #eee;\n}\n.list-group-item.disabled .list-group-item-heading,\n.list-group-item.disabled:hover .list-group-item-heading,\n.list-group-item.disabled:focus .list-group-item-heading {\n color: inherit;\n}\n.list-group-item.disabled .list-group-item-text,\n.list-group-item.disabled:hover .list-group-item-text,\n.list-group-item.disabled:focus .list-group-item-text {\n color: #777;\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n z-index: 2;\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.list-group-item.active .list-group-item-heading,\n.list-group-item.active:hover .list-group-item-heading,\n.list-group-item.active:focus .list-group-item-heading,\n.list-group-item.active .list-group-item-heading > small,\n.list-group-item.active:hover .list-group-item-heading > small,\n.list-group-item.active:focus .list-group-item-heading > small,\n.list-group-item.active .list-group-item-heading > .small,\n.list-group-item.active:hover .list-group-item-heading > .small,\n.list-group-item.active:focus .list-group-item-heading > .small {\n color: inherit;\n}\n.list-group-item.active .list-group-item-text,\n.list-group-item.active:hover .list-group-item-text,\n.list-group-item.active:focus .list-group-item-text {\n color: #c7ddef;\n}\n.list-group-item-success {\n color: #3c763d;\n background-color: #dff0d8;\n}\na.list-group-item-success {\n color: #3c763d;\n}\na.list-group-item-success .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-success:hover,\na.list-group-item-success:focus {\n color: #3c763d;\n background-color: #d0e9c6;\n}\na.list-group-item-success.active,\na.list-group-item-success.active:hover,\na.list-group-item-success.active:focus {\n color: #fff;\n background-color: #3c763d;\n border-color: #3c763d;\n}\n.list-group-item-info {\n color: #31708f;\n background-color: #d9edf7;\n}\na.list-group-item-info {\n color: #31708f;\n}\na.list-group-item-info .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-info:hover,\na.list-group-item-info:focus {\n color: #31708f;\n background-color: #c4e3f3;\n}\na.list-group-item-info.active,\na.list-group-item-info.active:hover,\na.list-group-item-info.active:focus {\n color: #fff;\n background-color: #31708f;\n border-color: #31708f;\n}\n.list-group-item-warning {\n color: #8a6d3b;\n background-color: #fcf8e3;\n}\na.list-group-item-warning {\n color: #8a6d3b;\n}\na.list-group-item-warning .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-warning:hover,\na.list-group-item-warning:focus {\n color: #8a6d3b;\n background-color: #faf2cc;\n}\na.list-group-item-warning.active,\na.list-group-item-warning.active:hover,\na.list-group-item-warning.active:focus {\n color: #fff;\n background-color: #8a6d3b;\n border-color: #8a6d3b;\n}\n.list-group-item-danger {\n color: #a94442;\n background-color: #f2dede;\n}\na.list-group-item-danger {\n color: #a94442;\n}\na.list-group-item-danger .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-danger:hover,\na.list-group-item-danger:focus {\n color: #a94442;\n background-color: #ebcccc;\n}\na.list-group-item-danger.active,\na.list-group-item-danger.active:hover,\na.list-group-item-danger.active:focus {\n color: #fff;\n background-color: #a94442;\n border-color: #a94442;\n}\n.list-group-item-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.list-group-item-text {\n margin-bottom: 0;\n line-height: 1.3;\n}\n.panel {\n margin-bottom: 20px;\n background-color: #fff;\n border: 1px solid transparent;\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.panel-body {\n padding: 15px;\n}\n.panel-heading {\n padding: 10px 15px;\n border-bottom: 1px solid transparent;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel-heading > .dropdown .dropdown-toggle {\n color: inherit;\n}\n.panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: 16px;\n color: inherit;\n}\n.panel-title > a,\n.panel-title > small,\n.panel-title > .small,\n.panel-title > small > a,\n.panel-title > .small > a {\n color: inherit;\n}\n.panel-footer {\n padding: 10px 15px;\n background-color: #f5f5f5;\n border-top: 1px solid #ddd;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .list-group,\n.panel > .panel-collapse > .list-group {\n margin-bottom: 0;\n}\n.panel > .list-group .list-group-item,\n.panel > .panel-collapse > .list-group .list-group-item {\n border-width: 1px 0;\n border-radius: 0;\n}\n.panel > .list-group:first-child .list-group-item:first-child,\n.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {\n border-top: 0;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .list-group:last-child .list-group-item:last-child,\n.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {\n border-bottom: 0;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel-heading + .list-group .list-group-item:first-child {\n border-top-width: 0;\n}\n.list-group + .panel-footer {\n border-top-width: 0;\n}\n.panel > .table,\n.panel > .table-responsive > .table,\n.panel > .panel-collapse > .table {\n margin-bottom: 0;\n}\n.panel > .table caption,\n.panel > .table-responsive > .table caption,\n.panel > .panel-collapse > .table caption {\n padding-right: 15px;\n padding-left: 15px;\n}\n.panel > .table:first-child,\n.panel > .table-responsive:first-child > .table:first-child {\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {\n border-top-left-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {\n border-top-right-radius: 3px;\n}\n.panel > .table:last-child,\n.panel > .table-responsive:last-child > .table:last-child {\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {\n border-bottom-right-radius: 3px;\n}\n.panel > .panel-body + .table,\n.panel > .panel-body + .table-responsive,\n.panel > .table + .panel-body,\n.panel > .table-responsive + .panel-body {\n border-top: 1px solid #ddd;\n}\n.panel > .table > tbody:first-child > tr:first-child th,\n.panel > .table > tbody:first-child > tr:first-child td {\n border-top: 0;\n}\n.panel > .table-bordered,\n.panel > .table-responsive > .table-bordered {\n border: 0;\n}\n.panel > .table-bordered > thead > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\n.panel > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-bordered > thead > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\n.panel > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-bordered > tfoot > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n}\n.panel > .table-bordered > thead > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\n.panel > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-bordered > thead > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\n.panel > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-bordered > tfoot > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n}\n.panel > .table-bordered > thead > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,\n.panel > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-bordered > thead > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,\n.panel > .table-bordered > tbody > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {\n border-bottom: 0;\n}\n.panel > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-bordered > tfoot > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {\n border-bottom: 0;\n}\n.panel > .table-responsive {\n margin-bottom: 0;\n border: 0;\n}\n.panel-group {\n margin-bottom: 20px;\n}\n.panel-group .panel {\n margin-bottom: 0;\n border-radius: 4px;\n}\n.panel-group .panel + .panel {\n margin-top: 5px;\n}\n.panel-group .panel-heading {\n border-bottom: 0;\n}\n.panel-group .panel-heading + .panel-collapse > .panel-body,\n.panel-group .panel-heading + .panel-collapse > .list-group {\n border-top: 1px solid #ddd;\n}\n.panel-group .panel-footer {\n border-top: 0;\n}\n.panel-group .panel-footer + .panel-collapse .panel-body {\n border-bottom: 1px solid #ddd;\n}\n.panel-default {\n border-color: #ddd;\n}\n.panel-default > .panel-heading {\n color: #333;\n background-color: #f5f5f5;\n border-color: #ddd;\n}\n.panel-default > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ddd;\n}\n.panel-default > .panel-heading .badge {\n color: #f5f5f5;\n background-color: #333;\n}\n.panel-default > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ddd;\n}\n.panel-primary {\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading {\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #337ab7;\n}\n.panel-primary > .panel-heading .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.panel-primary > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #337ab7;\n}\n.panel-success {\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #d6e9c6;\n}\n.panel-success > .panel-heading .badge {\n color: #dff0d8;\n background-color: #3c763d;\n}\n.panel-success > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #d6e9c6;\n}\n.panel-info {\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading {\n color: #31708f;\n background-color: #d9edf7;\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #bce8f1;\n}\n.panel-info > .panel-heading .badge {\n color: #d9edf7;\n background-color: #31708f;\n}\n.panel-info > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #bce8f1;\n}\n.panel-warning {\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #faebcc;\n}\n.panel-warning > .panel-heading .badge {\n color: #fcf8e3;\n background-color: #8a6d3b;\n}\n.panel-warning > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #faebcc;\n}\n.panel-danger {\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading {\n color: #a94442;\n background-color: #f2dede;\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ebccd1;\n}\n.panel-danger > .panel-heading .badge {\n color: #f2dede;\n background-color: #a94442;\n}\n.panel-danger > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ebccd1;\n}\n.embed-responsive {\n position: relative;\n display: block;\n height: 0;\n padding: 0;\n overflow: hidden;\n}\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n.embed-responsive-16by9 {\n padding-bottom: 56.25%;\n}\n.embed-responsive-4by3 {\n padding-bottom: 75%;\n}\n.well {\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border: 1px solid #e3e3e3;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.well blockquote {\n border-color: #ddd;\n border-color: rgba(0, 0, 0, 0.15);\n}\n.well-lg {\n padding: 24px;\n border-radius: 6px;\n}\n.well-sm {\n padding: 9px;\n border-radius: 3px;\n}\n.close {\n float: right;\n font-size: 21px;\n font-weight: bold;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n filter: alpha(opacity=20);\n opacity: 0.2;\n}\n.close:hover,\n.close:focus {\n color: #000;\n text-decoration: none;\n cursor: pointer;\n filter: alpha(opacity=50);\n opacity: 0.5;\n}\nbutton.close {\n -webkit-appearance: none;\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n}\n.modal-open {\n overflow: hidden;\n}\n.modal {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1050;\n display: none;\n overflow: hidden;\n -webkit-overflow-scrolling: touch;\n outline: 0;\n}\n.modal.fade .modal-dialog {\n -webkit-transition: -webkit-transform 0.3s ease-out;\n -o-transition: -o-transform 0.3s ease-out;\n transition: transform 0.3s ease-out;\n -webkit-transform: translate(0, -25%);\n -ms-transform: translate(0, -25%);\n -o-transform: translate(0, -25%);\n transform: translate(0, -25%);\n}\n.modal.in .modal-dialog {\n -webkit-transform: translate(0, 0);\n -ms-transform: translate(0, 0);\n -o-transform: translate(0, 0);\n transform: translate(0, 0);\n}\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 10px;\n}\n.modal-content {\n position: relative;\n background-color: #fff;\n -webkit-background-clip: padding-box;\n background-clip: padding-box;\n border: 1px solid #999;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n outline: 0;\n -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n}\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1040;\n background-color: #000;\n}\n.modal-backdrop.fade {\n filter: alpha(opacity=0);\n opacity: 0;\n}\n.modal-backdrop.in {\n filter: alpha(opacity=50);\n opacity: 0.5;\n}\n.modal-header {\n min-height: 16.42857143px;\n padding: 15px;\n border-bottom: 1px solid #e5e5e5;\n}\n.modal-header .close {\n margin-top: -2px;\n}\n.modal-title {\n margin: 0;\n line-height: 1.42857143;\n}\n.modal-body {\n position: relative;\n padding: 15px;\n}\n.modal-footer {\n padding: 15px;\n text-align: right;\n border-top: 1px solid #e5e5e5;\n}\n.modal-footer .btn + .btn {\n margin-bottom: 0;\n margin-left: 5px;\n}\n.modal-footer .btn-group .btn + .btn {\n margin-left: -1px;\n}\n.modal-footer .btn-block + .btn-block {\n margin-left: 0;\n}\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n@media (min-width: 768px) {\n .modal-dialog {\n width: 600px;\n margin: 30px auto;\n }\n .modal-content {\n -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n }\n .modal-sm {\n width: 300px;\n }\n}\n@media (min-width: 992px) {\n .modal-lg {\n width: 900px;\n }\n}\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;\n font-size: 12px;\n font-weight: normal;\n line-height: 1.4;\n filter: alpha(opacity=0);\n opacity: 0;\n}\n.tooltip.in {\n filter: alpha(opacity=90);\n opacity: 0.9;\n}\n.tooltip.top {\n padding: 5px 0;\n margin-top: -3px;\n}\n.tooltip.right {\n padding: 0 5px;\n margin-left: 3px;\n}\n.tooltip.bottom {\n padding: 5px 0;\n margin-top: 3px;\n}\n.tooltip.left {\n padding: 0 5px;\n margin-left: -3px;\n}\n.tooltip-inner {\n max-width: 200px;\n padding: 3px 8px;\n color: #fff;\n text-align: center;\n text-decoration: none;\n background-color: #000;\n border-radius: 4px;\n}\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.tooltip.top .tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.top-left .tooltip-arrow {\n right: 5px;\n bottom: 0;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.top-right .tooltip-arrow {\n bottom: 0;\n left: 5px;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.right .tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: #000;\n}\n.tooltip.left .tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: #000;\n}\n.tooltip.bottom .tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.tooltip.bottom-left .tooltip-arrow {\n top: 0;\n right: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.tooltip.bottom-right .tooltip-arrow {\n top: 0;\n left: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: none;\n max-width: 276px;\n padding: 1px;\n font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;\n font-size: 14px;\n font-weight: normal;\n line-height: 1.42857143;\n text-align: left;\n white-space: normal;\n background-color: #fff;\n -webkit-background-clip: padding-box;\n background-clip: padding-box;\n border: 1px solid #ccc;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n}\n.popover.top {\n margin-top: -10px;\n}\n.popover.right {\n margin-left: 10px;\n}\n.popover.bottom {\n margin-top: 10px;\n}\n.popover.left {\n margin-left: -10px;\n}\n.popover-title {\n padding: 8px 14px;\n margin: 0;\n font-size: 14px;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-radius: 5px 5px 0 0;\n}\n.popover-content {\n padding: 9px 14px;\n}\n.popover > .arrow,\n.popover > .arrow:after {\n position: absolute;\n display: block;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.popover > .arrow {\n border-width: 11px;\n}\n.popover > .arrow:after {\n content: '';\n border-width: 10px;\n}\n.popover.top > .arrow {\n bottom: -11px;\n left: 50%;\n margin-left: -11px;\n border-top-color: #999;\n border-top-color: rgba(0, 0, 0, 0.25);\n border-bottom-width: 0;\n}\n.popover.top > .arrow:after {\n bottom: 1px;\n margin-left: -10px;\n content: ' ';\n border-top-color: #fff;\n border-bottom-width: 0;\n}\n.popover.right > .arrow {\n top: 50%;\n left: -11px;\n margin-top: -11px;\n border-right-color: #999;\n border-right-color: rgba(0, 0, 0, 0.25);\n border-left-width: 0;\n}\n.popover.right > .arrow:after {\n bottom: -10px;\n left: 1px;\n content: ' ';\n border-right-color: #fff;\n border-left-width: 0;\n}\n.popover.bottom > .arrow {\n top: -11px;\n left: 50%;\n margin-left: -11px;\n border-top-width: 0;\n border-bottom-color: #999;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n.popover.bottom > .arrow:after {\n top: 1px;\n margin-left: -10px;\n content: ' ';\n border-top-width: 0;\n border-bottom-color: #fff;\n}\n.popover.left > .arrow {\n top: 50%;\n right: -11px;\n margin-top: -11px;\n border-right-width: 0;\n border-left-color: #999;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n.popover.left > .arrow:after {\n right: 1px;\n bottom: -10px;\n content: ' ';\n border-right-width: 0;\n border-left-color: #fff;\n}\n.carousel {\n position: relative;\n}\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n.carousel-inner > .item {\n position: relative;\n display: none;\n -webkit-transition: 0.6s ease-in-out left;\n -o-transition: 0.6s ease-in-out left;\n transition: 0.6s ease-in-out left;\n}\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n line-height: 1;\n}\n@media all and (transform-3d), (-webkit-transform-3d) {\n .carousel-inner > .item {\n -webkit-transition: -webkit-transform 0.6s ease-in-out;\n -o-transition: -o-transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out;\n\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n -webkit-perspective: 1000;\n perspective: 1000;\n }\n .carousel-inner > .item.next,\n .carousel-inner > .item.active.right {\n left: 0;\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n }\n .carousel-inner > .item.prev,\n .carousel-inner > .item.active.left {\n left: 0;\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n }\n .carousel-inner > .item.next.left,\n .carousel-inner > .item.prev.right,\n .carousel-inner > .item.active {\n left: 0;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}\n.carousel-inner > .active,\n.carousel-inner > .next,\n.carousel-inner > .prev {\n display: block;\n}\n.carousel-inner > .active {\n left: 0;\n}\n.carousel-inner > .next,\n.carousel-inner > .prev {\n position: absolute;\n top: 0;\n width: 100%;\n}\n.carousel-inner > .next {\n left: 100%;\n}\n.carousel-inner > .prev {\n left: -100%;\n}\n.carousel-inner > .next.left,\n.carousel-inner > .prev.right {\n left: 0;\n}\n.carousel-inner > .active.left {\n left: -100%;\n}\n.carousel-inner > .active.right {\n left: 100%;\n}\n.carousel-control {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 15%;\n font-size: 20px;\n color: #fff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n filter: alpha(opacity=50);\n opacity: 0.5;\n}\n.carousel-control.left {\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: -webkit-gradient(\n linear,\n left top,\n right top,\n from(rgba(0, 0, 0, 0.5)),\n to(rgba(0, 0, 0, 0.0001))\n );\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);\n background-repeat: repeat-x;\n}\n.carousel-control.right {\n right: 0;\n left: auto;\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: -webkit-gradient(\n linear,\n left top,\n right top,\n from(rgba(0, 0, 0, 0.0001)),\n to(rgba(0, 0, 0, 0.5))\n );\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);\n background-repeat: repeat-x;\n}\n.carousel-control:hover,\n.carousel-control:focus {\n color: #fff;\n text-decoration: none;\n filter: alpha(opacity=90);\n outline: 0;\n opacity: 0.9;\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-left,\n.carousel-control .glyphicon-chevron-right {\n position: absolute;\n top: 50%;\n z-index: 5;\n display: inline-block;\n}\n.carousel-control .icon-prev,\n.carousel-control .glyphicon-chevron-left {\n left: 50%;\n margin-left: -10px;\n}\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-right {\n right: 50%;\n margin-right: -10px;\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next {\n width: 20px;\n height: 20px;\n margin-top: -10px;\n font-family: serif;\n line-height: 1;\n}\n.carousel-control .icon-prev:before {\n content: '\\2039';\n}\n.carousel-control .icon-next:before {\n content: '\\203a';\n}\n.carousel-indicators {\n position: absolute;\n bottom: 10px;\n left: 50%;\n z-index: 15;\n width: 60%;\n padding-left: 0;\n margin-left: -30%;\n text-align: center;\n list-style: none;\n}\n.carousel-indicators li {\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 1px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #000 \\9;\n background-color: rgba(0, 0, 0, 0);\n border: 1px solid #fff;\n border-radius: 10px;\n}\n.carousel-indicators .active {\n width: 12px;\n height: 12px;\n margin: 0;\n background-color: #fff;\n}\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n}\n.carousel-caption .btn {\n text-shadow: none;\n}\n@media screen and (min-width: 768px) {\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-prev,\n .carousel-control .icon-next {\n width: 30px;\n height: 30px;\n margin-top: -15px;\n font-size: 30px;\n }\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .icon-prev {\n margin-left: -15px;\n }\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-next {\n margin-right: -15px;\n }\n .carousel-caption {\n right: 20%;\n left: 20%;\n padding-bottom: 30px;\n }\n .carousel-indicators {\n bottom: 20px;\n }\n}\n.clearfix:before,\n.clearfix:after,\n.dl-horizontal dd:before,\n.dl-horizontal dd:after,\n.container:before,\n.container:after,\n.container-fluid:before,\n.container-fluid:after,\n.row:before,\n.row:after,\n.form-horizontal .form-group:before,\n.form-horizontal .form-group:after,\n.btn-toolbar:before,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:before,\n.btn-group-vertical > .btn-group:after,\n.nav:before,\n.nav:after,\n.navbar:before,\n.navbar:after,\n.navbar-header:before,\n.navbar-header:after,\n.navbar-collapse:before,\n.navbar-collapse:after,\n.pager:before,\n.pager:after,\n.panel-body:before,\n.panel-body:after,\n.modal-footer:before,\n.modal-footer:after {\n display: table;\n content: ' ';\n}\n.clearfix:after,\n.dl-horizontal dd:after,\n.container:after,\n.container-fluid:after,\n.row:after,\n.form-horizontal .form-group:after,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:after,\n.nav:after,\n.navbar:after,\n.navbar-header:after,\n.navbar-collapse:after,\n.pager:after,\n.panel-body:after,\n.modal-footer:after {\n clear: both;\n}\n.center-block {\n display: block;\n margin-right: auto;\n margin-left: auto;\n}\n.pull-right {\n float: right !important;\n}\n.pull-left {\n float: left !important;\n}\n.hide {\n display: none !important;\n}\n.show {\n display: block !important;\n}\n.invisible {\n visibility: hidden;\n}\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n.hidden {\n display: none !important;\n}\n.affix {\n position: fixed;\n}\n@-ms-viewport {\n width: device-width;\n}\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n display: none !important;\n}\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n display: none !important;\n}\n@media (max-width: 767px) {\n .visible-xs {\n display: block !important;\n }\n table.visible-xs {\n display: table;\n }\n tr.visible-xs {\n display: table-row !important;\n }\n th.visible-xs,\n td.visible-xs {\n display: table-cell !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-block {\n display: block !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline {\n display: inline !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm {\n display: block !important;\n }\n table.visible-sm {\n display: table;\n }\n tr.visible-sm {\n display: table-row !important;\n }\n th.visible-sm,\n td.visible-sm {\n display: table-cell !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-block {\n display: block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline {\n display: inline !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md {\n display: block !important;\n }\n table.visible-md {\n display: table;\n }\n tr.visible-md {\n display: table-row !important;\n }\n th.visible-md,\n td.visible-md {\n display: table-cell !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-block {\n display: block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline {\n display: inline !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg {\n display: block !important;\n }\n table.visible-lg {\n display: table;\n }\n tr.visible-lg {\n display: table-row !important;\n }\n th.visible-lg,\n td.visible-lg {\n display: table-cell !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-block {\n display: block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline {\n display: inline !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline-block {\n display: inline-block !important;\n }\n}\n@media (max-width: 767px) {\n .hidden-xs {\n display: none !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .hidden-sm {\n display: none !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .hidden-md {\n display: none !important;\n }\n}\n@media (min-width: 1200px) {\n .hidden-lg {\n display: none !important;\n }\n}\n.visible-print {\n display: none !important;\n}\n@media print {\n .visible-print {\n display: block !important;\n }\n table.visible-print {\n display: table;\n }\n tr.visible-print {\n display: table-row !important;\n }\n th.visible-print,\n td.visible-print {\n display: table-cell !important;\n }\n}\n.visible-print-block {\n display: none !important;\n}\n@media print {\n .visible-print-block {\n display: block !important;\n }\n}\n.visible-print-inline {\n display: none !important;\n}\n@media print {\n .visible-print-inline {\n display: inline !important;\n }\n}\n.visible-print-inline-block {\n display: none !important;\n}\n@media print {\n .visible-print-inline-block {\n display: inline-block !important;\n }\n}\n@media print {\n .hidden-print {\n display: none !important;\n }\n}\n","/*******************************************************************************\n * bootstrap-rtl (version 3.3.4)\n * Author: Morteza Ansarinia (http://github.com/morteza)\n * Created on: August 13,2015\n * Project: bootstrap-rtl\n * Copyright: Unlicensed Public Domain\n *******************************************************************************/\n\n[dir='rtl'] {\n .flip.text-left {\n text-align: right;\n }\n .flip.text-right {\n text-align: left;\n }\n .list-unstyled {\n padding-right: 0;\n padding-left: initial;\n }\n .list-inline {\n padding-right: 0;\n padding-left: initial;\n margin-right: -5px;\n margin-left: 0;\n }\n dd {\n margin-right: 0;\n margin-left: initial;\n }\n @media (min-width: 768px) {\n .dl-horizontal dt {\n float: right;\n clear: right;\n text-align: left;\n }\n .dl-horizontal dd {\n margin-right: 180px;\n margin-left: 0;\n }\n }\n blockquote {\n border-right: 5px solid #eeeeee;\n border-left: 0;\n }\n .blockquote-reverse,\n blockquote.pull-left {\n padding-left: 15px;\n padding-right: 0;\n border-left: 5px solid #eeeeee;\n border-right: 0;\n text-align: left;\n }\n .col-xs-1,\n .col-sm-1,\n .col-md-1,\n .col-lg-1,\n .col-xs-2,\n .col-sm-2,\n .col-md-2,\n .col-lg-2,\n .col-xs-3,\n .col-sm-3,\n .col-md-3,\n .col-lg-3,\n .col-xs-4,\n .col-sm-4,\n .col-md-4,\n .col-lg-4,\n .col-xs-5,\n .col-sm-5,\n .col-md-5,\n .col-lg-5,\n .col-xs-6,\n .col-sm-6,\n .col-md-6,\n .col-lg-6,\n .col-xs-7,\n .col-sm-7,\n .col-md-7,\n .col-lg-7,\n .col-xs-8,\n .col-sm-8,\n .col-md-8,\n .col-lg-8,\n .col-xs-9,\n .col-sm-9,\n .col-md-9,\n .col-lg-9,\n .col-xs-10,\n .col-sm-10,\n .col-md-10,\n .col-lg-10,\n .col-xs-11,\n .col-sm-11,\n .col-md-11,\n .col-lg-11,\n .col-xs-12,\n .col-sm-12,\n .col-md-12,\n .col-lg-12 {\n position: relative;\n min-height: 1px;\n padding-left: 15px;\n padding-right: 15px;\n }\n .col-xs-1,\n .col-xs-2,\n .col-xs-3,\n .col-xs-4,\n .col-xs-5,\n .col-xs-6,\n .col-xs-7,\n .col-xs-8,\n .col-xs-9,\n .col-xs-10,\n .col-xs-11,\n .col-xs-12 {\n float: right;\n }\n .col-xs-12 {\n width: 100%;\n }\n .col-xs-11 {\n width: 91.66666667%;\n }\n .col-xs-10 {\n width: 83.33333333%;\n }\n .col-xs-9 {\n width: 75%;\n }\n .col-xs-8 {\n width: 66.66666667%;\n }\n .col-xs-7 {\n width: 58.33333333%;\n }\n .col-xs-6 {\n width: 50%;\n }\n .col-xs-5 {\n width: 41.66666667%;\n }\n .col-xs-4 {\n width: 33.33333333%;\n }\n .col-xs-3 {\n width: 25%;\n }\n .col-xs-2 {\n width: 16.66666667%;\n }\n .col-xs-1 {\n width: 8.33333333%;\n }\n .col-xs-pull-12 {\n left: 100%;\n right: auto;\n }\n .col-xs-pull-11 {\n left: 91.66666667%;\n right: auto;\n }\n .col-xs-pull-10 {\n left: 83.33333333%;\n right: auto;\n }\n .col-xs-pull-9 {\n left: 75%;\n right: auto;\n }\n .col-xs-pull-8 {\n left: 66.66666667%;\n right: auto;\n }\n .col-xs-pull-7 {\n left: 58.33333333%;\n right: auto;\n }\n .col-xs-pull-6 {\n left: 50%;\n right: auto;\n }\n .col-xs-pull-5 {\n left: 41.66666667%;\n right: auto;\n }\n .col-xs-pull-4 {\n left: 33.33333333%;\n right: auto;\n }\n .col-xs-pull-3 {\n left: 25%;\n right: auto;\n }\n .col-xs-pull-2 {\n left: 16.66666667%;\n right: auto;\n }\n .col-xs-pull-1 {\n left: 8.33333333%;\n right: auto;\n }\n .col-xs-pull-0 {\n left: auto;\n right: auto;\n }\n .col-xs-push-12 {\n right: 100%;\n left: 0;\n }\n .col-xs-push-11 {\n right: 91.66666667%;\n left: 0;\n }\n .col-xs-push-10 {\n right: 83.33333333%;\n left: 0;\n }\n .col-xs-push-9 {\n right: 75%;\n left: 0;\n }\n .col-xs-push-8 {\n right: 66.66666667%;\n left: 0;\n }\n .col-xs-push-7 {\n right: 58.33333333%;\n left: 0;\n }\n .col-xs-push-6 {\n right: 50%;\n left: 0;\n }\n .col-xs-push-5 {\n right: 41.66666667%;\n left: 0;\n }\n .col-xs-push-4 {\n right: 33.33333333%;\n left: 0;\n }\n .col-xs-push-3 {\n right: 25%;\n left: 0;\n }\n .col-xs-push-2 {\n right: 16.66666667%;\n left: 0;\n }\n .col-xs-push-1 {\n right: 8.33333333%;\n left: 0;\n }\n .col-xs-push-0 {\n right: auto;\n left: 0;\n }\n .col-xs-offset-12 {\n margin-right: 100%;\n margin-left: 0;\n }\n .col-xs-offset-11 {\n margin-right: 91.66666667%;\n margin-left: 0;\n }\n .col-xs-offset-10 {\n margin-right: 83.33333333%;\n margin-left: 0;\n }\n .col-xs-offset-9 {\n margin-right: 75%;\n margin-left: 0;\n }\n .col-xs-offset-8 {\n margin-right: 66.66666667%;\n margin-left: 0;\n }\n .col-xs-offset-7 {\n margin-right: 58.33333333%;\n margin-left: 0;\n }\n .col-xs-offset-6 {\n margin-right: 50%;\n margin-left: 0;\n }\n .col-xs-offset-5 {\n margin-right: 41.66666667%;\n margin-left: 0;\n }\n .col-xs-offset-4 {\n margin-right: 33.33333333%;\n margin-left: 0;\n }\n .col-xs-offset-3 {\n margin-right: 25%;\n margin-left: 0;\n }\n .col-xs-offset-2 {\n margin-right: 16.66666667%;\n margin-left: 0;\n }\n .col-xs-offset-1 {\n margin-right: 8.33333333%;\n margin-left: 0;\n }\n .col-xs-offset-0 {\n margin-right: 0%;\n margin-left: 0;\n }\n @media (min-width: 768px) {\n .col-sm-1,\n .col-sm-2,\n .col-sm-3,\n .col-sm-4,\n .col-sm-5,\n .col-sm-6,\n .col-sm-7,\n .col-sm-8,\n .col-sm-9,\n .col-sm-10,\n .col-sm-11,\n .col-sm-12 {\n float: right;\n }\n .col-sm-12 {\n width: 100%;\n }\n .col-sm-11 {\n width: 91.66666667%;\n }\n .col-sm-10 {\n width: 83.33333333%;\n }\n .col-sm-9 {\n width: 75%;\n }\n .col-sm-8 {\n width: 66.66666667%;\n }\n .col-sm-7 {\n width: 58.33333333%;\n }\n .col-sm-6 {\n width: 50%;\n }\n .col-sm-5 {\n width: 41.66666667%;\n }\n .col-sm-4 {\n width: 33.33333333%;\n }\n .col-sm-3 {\n width: 25%;\n }\n .col-sm-2 {\n width: 16.66666667%;\n }\n .col-sm-1 {\n width: 8.33333333%;\n }\n .col-sm-pull-12 {\n left: 100%;\n right: auto;\n }\n .col-sm-pull-11 {\n left: 91.66666667%;\n right: auto;\n }\n .col-sm-pull-10 {\n left: 83.33333333%;\n right: auto;\n }\n .col-sm-pull-9 {\n left: 75%;\n right: auto;\n }\n .col-sm-pull-8 {\n left: 66.66666667%;\n right: auto;\n }\n .col-sm-pull-7 {\n left: 58.33333333%;\n right: auto;\n }\n .col-sm-pull-6 {\n left: 50%;\n right: auto;\n }\n .col-sm-pull-5 {\n left: 41.66666667%;\n right: auto;\n }\n .col-sm-pull-4 {\n left: 33.33333333%;\n right: auto;\n }\n .col-sm-pull-3 {\n left: 25%;\n right: auto;\n }\n .col-sm-pull-2 {\n left: 16.66666667%;\n right: auto;\n }\n .col-sm-pull-1 {\n left: 8.33333333%;\n right: auto;\n }\n .col-sm-pull-0 {\n left: auto;\n right: auto;\n }\n .col-sm-push-12 {\n right: 100%;\n left: 0;\n }\n .col-sm-push-11 {\n right: 91.66666667%;\n left: 0;\n }\n .col-sm-push-10 {\n right: 83.33333333%;\n left: 0;\n }\n .col-sm-push-9 {\n right: 75%;\n left: 0;\n }\n .col-sm-push-8 {\n right: 66.66666667%;\n left: 0;\n }\n .col-sm-push-7 {\n right: 58.33333333%;\n left: 0;\n }\n .col-sm-push-6 {\n right: 50%;\n left: 0;\n }\n .col-sm-push-5 {\n right: 41.66666667%;\n left: 0;\n }\n .col-sm-push-4 {\n right: 33.33333333%;\n left: 0;\n }\n .col-sm-push-3 {\n right: 25%;\n left: 0;\n }\n .col-sm-push-2 {\n right: 16.66666667%;\n left: 0;\n }\n .col-sm-push-1 {\n right: 8.33333333%;\n left: 0;\n }\n .col-sm-push-0 {\n right: auto;\n left: 0;\n }\n .col-sm-offset-12 {\n margin-right: 100%;\n margin-left: 0;\n }\n .col-sm-offset-11 {\n margin-right: 91.66666667%;\n margin-left: 0;\n }\n .col-sm-offset-10 {\n margin-right: 83.33333333%;\n margin-left: 0;\n }\n .col-sm-offset-9 {\n margin-right: 75%;\n margin-left: 0;\n }\n .col-sm-offset-8 {\n margin-right: 66.66666667%;\n margin-left: 0;\n }\n .col-sm-offset-7 {\n margin-right: 58.33333333%;\n margin-left: 0;\n }\n .col-sm-offset-6 {\n margin-right: 50%;\n margin-left: 0;\n }\n .col-sm-offset-5 {\n margin-right: 41.66666667%;\n margin-left: 0;\n }\n .col-sm-offset-4 {\n margin-right: 33.33333333%;\n margin-left: 0;\n }\n .col-sm-offset-3 {\n margin-right: 25%;\n margin-left: 0;\n }\n .col-sm-offset-2 {\n margin-right: 16.66666667%;\n margin-left: 0;\n }\n .col-sm-offset-1 {\n margin-right: 8.33333333%;\n margin-left: 0;\n }\n .col-sm-offset-0 {\n margin-right: 0%;\n margin-left: 0;\n }\n }\n @media (min-width: 992px) {\n .col-md-1,\n .col-md-2,\n .col-md-3,\n .col-md-4,\n .col-md-5,\n .col-md-6,\n .col-md-7,\n .col-md-8,\n .col-md-9,\n .col-md-10,\n .col-md-11,\n .col-md-12 {\n float: right;\n }\n .col-md-12 {\n width: 100%;\n }\n .col-md-11 {\n width: 91.66666667%;\n }\n .col-md-10 {\n width: 83.33333333%;\n }\n .col-md-9 {\n width: 75%;\n }\n .col-md-8 {\n width: 66.66666667%;\n }\n .col-md-7 {\n width: 58.33333333%;\n }\n .col-md-6 {\n width: 50%;\n }\n .col-md-5 {\n width: 41.66666667%;\n }\n .col-md-4 {\n width: 33.33333333%;\n }\n .col-md-3 {\n width: 25%;\n }\n .col-md-2 {\n width: 16.66666667%;\n }\n .col-md-1 {\n width: 8.33333333%;\n }\n .col-md-pull-12 {\n left: 100%;\n right: auto;\n }\n .col-md-pull-11 {\n left: 91.66666667%;\n right: auto;\n }\n .col-md-pull-10 {\n left: 83.33333333%;\n right: auto;\n }\n .col-md-pull-9 {\n left: 75%;\n right: auto;\n }\n .col-md-pull-8 {\n left: 66.66666667%;\n right: auto;\n }\n .col-md-pull-7 {\n left: 58.33333333%;\n right: auto;\n }\n .col-md-pull-6 {\n left: 50%;\n right: auto;\n }\n .col-md-pull-5 {\n left: 41.66666667%;\n right: auto;\n }\n .col-md-pull-4 {\n left: 33.33333333%;\n right: auto;\n }\n .col-md-pull-3 {\n left: 25%;\n right: auto;\n }\n .col-md-pull-2 {\n left: 16.66666667%;\n right: auto;\n }\n .col-md-pull-1 {\n left: 8.33333333%;\n right: auto;\n }\n .col-md-pull-0 {\n left: auto;\n right: auto;\n }\n .col-md-push-12 {\n right: 100%;\n left: 0;\n }\n .col-md-push-11 {\n right: 91.66666667%;\n left: 0;\n }\n .col-md-push-10 {\n right: 83.33333333%;\n left: 0;\n }\n .col-md-push-9 {\n right: 75%;\n left: 0;\n }\n .col-md-push-8 {\n right: 66.66666667%;\n left: 0;\n }\n .col-md-push-7 {\n right: 58.33333333%;\n left: 0;\n }\n .col-md-push-6 {\n right: 50%;\n left: 0;\n }\n .col-md-push-5 {\n right: 41.66666667%;\n left: 0;\n }\n .col-md-push-4 {\n right: 33.33333333%;\n left: 0;\n }\n .col-md-push-3 {\n right: 25%;\n left: 0;\n }\n .col-md-push-2 {\n right: 16.66666667%;\n left: 0;\n }\n .col-md-push-1 {\n right: 8.33333333%;\n left: 0;\n }\n .col-md-push-0 {\n right: auto;\n left: 0;\n }\n .col-md-offset-12 {\n margin-right: 100%;\n margin-left: 0;\n }\n .col-md-offset-11 {\n margin-right: 91.66666667%;\n margin-left: 0;\n }\n .col-md-offset-10 {\n margin-right: 83.33333333%;\n margin-left: 0;\n }\n .col-md-offset-9 {\n margin-right: 75%;\n margin-left: 0;\n }\n .col-md-offset-8 {\n margin-right: 66.66666667%;\n margin-left: 0;\n }\n .col-md-offset-7 {\n margin-right: 58.33333333%;\n margin-left: 0;\n }\n .col-md-offset-6 {\n margin-right: 50%;\n margin-left: 0;\n }\n .col-md-offset-5 {\n margin-right: 41.66666667%;\n margin-left: 0;\n }\n .col-md-offset-4 {\n margin-right: 33.33333333%;\n margin-left: 0;\n }\n .col-md-offset-3 {\n margin-right: 25%;\n margin-left: 0;\n }\n .col-md-offset-2 {\n margin-right: 16.66666667%;\n margin-left: 0;\n }\n .col-md-offset-1 {\n margin-right: 8.33333333%;\n margin-left: 0;\n }\n .col-md-offset-0 {\n margin-right: 0%;\n margin-left: 0;\n }\n }\n @media (min-width: 1200px) {\n .col-lg-1,\n .col-lg-2,\n .col-lg-3,\n .col-lg-4,\n .col-lg-5,\n .col-lg-6,\n .col-lg-7,\n .col-lg-8,\n .col-lg-9,\n .col-lg-10,\n .col-lg-11,\n .col-lg-12 {\n float: right;\n }\n .col-lg-12 {\n width: 100%;\n }\n .col-lg-11 {\n width: 91.66666667%;\n }\n .col-lg-10 {\n width: 83.33333333%;\n }\n .col-lg-9 {\n width: 75%;\n }\n .col-lg-8 {\n width: 66.66666667%;\n }\n .col-lg-7 {\n width: 58.33333333%;\n }\n .col-lg-6 {\n width: 50%;\n }\n .col-lg-5 {\n width: 41.66666667%;\n }\n .col-lg-4 {\n width: 33.33333333%;\n }\n .col-lg-3 {\n width: 25%;\n }\n .col-lg-2 {\n width: 16.66666667%;\n }\n .col-lg-1 {\n width: 8.33333333%;\n }\n .col-lg-pull-12 {\n left: 100%;\n right: auto;\n }\n .col-lg-pull-11 {\n left: 91.66666667%;\n right: auto;\n }\n .col-lg-pull-10 {\n left: 83.33333333%;\n right: auto;\n }\n .col-lg-pull-9 {\n left: 75%;\n right: auto;\n }\n .col-lg-pull-8 {\n left: 66.66666667%;\n right: auto;\n }\n .col-lg-pull-7 {\n left: 58.33333333%;\n right: auto;\n }\n .col-lg-pull-6 {\n left: 50%;\n right: auto;\n }\n .col-lg-pull-5 {\n left: 41.66666667%;\n right: auto;\n }\n .col-lg-pull-4 {\n left: 33.33333333%;\n right: auto;\n }\n .col-lg-pull-3 {\n left: 25%;\n right: auto;\n }\n .col-lg-pull-2 {\n left: 16.66666667%;\n right: auto;\n }\n .col-lg-pull-1 {\n left: 8.33333333%;\n right: auto;\n }\n .col-lg-pull-0 {\n left: auto;\n right: auto;\n }\n .col-lg-push-12 {\n right: 100%;\n left: 0;\n }\n .col-lg-push-11 {\n right: 91.66666667%;\n left: 0;\n }\n .col-lg-push-10 {\n right: 83.33333333%;\n left: 0;\n }\n .col-lg-push-9 {\n right: 75%;\n left: 0;\n }\n .col-lg-push-8 {\n right: 66.66666667%;\n left: 0;\n }\n .col-lg-push-7 {\n right: 58.33333333%;\n left: 0;\n }\n .col-lg-push-6 {\n right: 50%;\n left: 0;\n }\n .col-lg-push-5 {\n right: 41.66666667%;\n left: 0;\n }\n .col-lg-push-4 {\n right: 33.33333333%;\n left: 0;\n }\n .col-lg-push-3 {\n right: 25%;\n left: 0;\n }\n .col-lg-push-2 {\n right: 16.66666667%;\n left: 0;\n }\n .col-lg-push-1 {\n right: 8.33333333%;\n left: 0;\n }\n .col-lg-push-0 {\n right: auto;\n left: 0;\n }\n .col-lg-offset-12 {\n margin-right: 100%;\n margin-left: 0;\n }\n .col-lg-offset-11 {\n margin-right: 91.66666667%;\n margin-left: 0;\n }\n .col-lg-offset-10 {\n margin-right: 83.33333333%;\n margin-left: 0;\n }\n .col-lg-offset-9 {\n margin-right: 75%;\n margin-left: 0;\n }\n .col-lg-offset-8 {\n margin-right: 66.66666667%;\n margin-left: 0;\n }\n .col-lg-offset-7 {\n margin-right: 58.33333333%;\n margin-left: 0;\n }\n .col-lg-offset-6 {\n margin-right: 50%;\n margin-left: 0;\n }\n .col-lg-offset-5 {\n margin-right: 41.66666667%;\n margin-left: 0;\n }\n .col-lg-offset-4 {\n margin-right: 33.33333333%;\n margin-left: 0;\n }\n .col-lg-offset-3 {\n margin-right: 25%;\n margin-left: 0;\n }\n .col-lg-offset-2 {\n margin-right: 16.66666667%;\n margin-left: 0;\n }\n .col-lg-offset-1 {\n margin-right: 8.33333333%;\n margin-left: 0;\n }\n .col-lg-offset-0 {\n margin-right: 0%;\n margin-left: 0;\n }\n }\n caption {\n text-align: right;\n }\n th:not(.mx-left-aligned) {\n text-align: right;\n }\n @media screen and (max-width: 767px) {\n .table-responsive > .table-bordered {\n border: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:first-child,\n .table-responsive > .table-bordered > tbody > tr > th:first-child,\n .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n .table-responsive > .table-bordered > thead > tr > td:first-child,\n .table-responsive > .table-bordered > tbody > tr > td:first-child,\n .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-right: 0;\n border-left: initial;\n }\n .table-responsive > .table-bordered > thead > tr > th:last-child,\n .table-responsive > .table-bordered > tbody > tr > th:last-child,\n .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n .table-responsive > .table-bordered > thead > tr > td:last-child,\n .table-responsive > .table-bordered > tbody > tr > td:last-child,\n .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-left: 0;\n border-right: initial;\n }\n }\n .radio label,\n .checkbox label {\n padding-right: 20px;\n padding-left: initial;\n }\n .radio input[type='radio'],\n .radio-inline input[type='radio'],\n .checkbox input[type='checkbox'],\n .checkbox-inline input[type='checkbox'] {\n margin-right: -20px;\n margin-left: auto;\n }\n .radio-inline,\n .checkbox-inline {\n padding-right: 20px;\n padding-left: 0;\n }\n .radio-inline + .radio-inline,\n .checkbox-inline + .checkbox-inline {\n margin-right: 10px;\n margin-left: 0;\n }\n .has-feedback .form-control {\n padding-left: 42.5px;\n padding-right: 12px;\n }\n .form-control-feedback {\n left: 0;\n right: auto;\n }\n @media (min-width: 768px) {\n .form-inline label {\n padding-right: 0;\n padding-left: initial;\n }\n .form-inline .radio input[type='radio'],\n .form-inline .checkbox input[type='checkbox'] {\n margin-right: 0;\n margin-left: auto;\n }\n }\n @media (min-width: 768px) {\n .form-horizontal .control-label {\n text-align: left;\n }\n }\n .form-horizontal .has-feedback .form-control-feedback {\n left: 15px;\n right: auto;\n }\n .caret {\n margin-right: 2px;\n margin-left: 0;\n }\n .dropdown-menu {\n right: 0;\n left: auto;\n float: left;\n text-align: right;\n }\n .dropdown-menu.pull-right {\n left: 0;\n right: auto;\n float: right;\n }\n .dropdown-menu-right {\n left: auto;\n right: 0;\n }\n .dropdown-menu-left {\n left: 0;\n right: auto;\n }\n @media (min-width: 768px) {\n .navbar-right .dropdown-menu {\n left: auto;\n right: 0;\n }\n .navbar-right .dropdown-menu-left {\n left: 0;\n right: auto;\n }\n }\n .btn-group > .btn,\n .btn-group-vertical > .btn {\n float: right;\n }\n .btn-group .btn + .btn,\n .btn-group .btn + .btn-group,\n .btn-group .btn-group + .btn,\n .btn-group .btn-group + .btn-group {\n margin-right: -1px;\n margin-left: 0px;\n }\n .btn-toolbar {\n margin-right: -5px;\n margin-left: 0px;\n }\n .btn-toolbar .btn-group,\n .btn-toolbar .input-group {\n float: right;\n }\n .btn-toolbar > .btn,\n .btn-toolbar > .btn-group,\n .btn-toolbar > .input-group {\n margin-right: 5px;\n margin-left: 0px;\n }\n .btn-group > .btn:first-child {\n margin-right: 0;\n }\n .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n }\n .btn-group > .btn:last-child:not(:first-child),\n .btn-group > .dropdown-toggle:not(:first-child) {\n border-top-left-radius: 4px;\n border-bottom-left-radius: 4px;\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n }\n .btn-group > .btn-group {\n float: right;\n }\n .btn-group.btn-group-justified > .btn,\n .btn-group.btn-group-justified > .btn-group {\n float: none;\n }\n .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n }\n .btn-group > .btn-group:first-child > .btn:last-child,\n .btn-group > .btn-group:first-child > .dropdown-toggle {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n }\n .btn-group > .btn-group:last-child > .btn:first-child {\n border-top-left-radius: 4px;\n border-bottom-left-radius: 4px;\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n }\n .btn .caret {\n margin-right: 0;\n }\n .btn-group-vertical > .btn + .btn,\n .btn-group-vertical > .btn + .btn-group,\n .btn-group-vertical > .btn-group + .btn,\n .btn-group-vertical > .btn-group + .btn-group {\n margin-top: -1px;\n margin-right: 0;\n }\n .input-group .form-control {\n float: right;\n }\n .input-group .form-control:first-child,\n .input-group-addon:first-child,\n .input-group-btn:first-child > .btn,\n .input-group-btn:first-child > .btn-group > .btn,\n .input-group-btn:first-child > .dropdown-toggle,\n .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n .input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 4px;\n border-top-right-radius: 4px;\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n }\n .input-group-addon:first-child {\n border-left: 0px;\n border-right: 1px solid;\n }\n .input-group .form-control:last-child,\n .input-group-addon:last-child,\n .input-group-btn:last-child > .btn,\n .input-group-btn:last-child > .btn-group > .btn,\n .input-group-btn:last-child > .dropdown-toggle,\n .input-group-btn:first-child > .btn:not(:first-child),\n .input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n border-bottom-left-radius: 4px;\n border-top-left-radius: 4px;\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n }\n .input-group-addon:last-child {\n border-left-width: 1px;\n border-left-style: solid;\n border-right: 0px;\n }\n .input-group-btn > .btn + .btn {\n margin-right: -1px;\n margin-left: auto;\n }\n .input-group-btn:first-child > .btn,\n .input-group-btn:first-child > .btn-group {\n margin-left: -1px;\n margin-right: auto;\n }\n .input-group-btn:last-child > .btn,\n .input-group-btn:last-child > .btn-group {\n margin-right: -1px;\n margin-left: auto;\n }\n .nav {\n padding-right: 0;\n padding-left: initial;\n }\n .nav-tabs > li {\n float: right;\n }\n .nav-tabs > li > a {\n margin-left: auto;\n margin-right: -2px;\n border-radius: 4px 4px 0 0;\n }\n .nav-pills > li {\n float: right;\n }\n .nav-pills > li > a {\n border-radius: 4px;\n }\n .nav-pills > li + li {\n margin-right: 2px;\n margin-left: auto;\n }\n .nav-stacked > li {\n float: none;\n }\n .nav-stacked > li + li {\n margin-right: 0;\n margin-left: auto;\n }\n .nav-justified > .dropdown .dropdown-menu {\n right: auto;\n }\n .nav-tabs-justified > li > a {\n margin-left: 0;\n margin-right: auto;\n }\n @media (min-width: 768px) {\n .nav-tabs-justified > li > a {\n border-radius: 4px 4px 0 0;\n }\n }\n @media (min-width: 768px) {\n .navbar-header {\n float: right;\n }\n }\n .navbar-collapse {\n padding-right: 15px;\n padding-left: 15px;\n }\n .navbar-brand {\n float: right;\n }\n @media (min-width: 768px) {\n .navbar > .container .navbar-brand,\n .navbar > .container-fluid .navbar-brand {\n margin-right: -15px;\n margin-left: auto;\n }\n }\n .navbar-toggle {\n float: left;\n margin-left: 15px;\n margin-right: auto;\n }\n @media (max-width: 767px) {\n .navbar-nav .open .dropdown-menu > li > a,\n .navbar-nav .open .dropdown-menu .dropdown-header {\n padding: 5px 25px 5px 15px;\n }\n }\n @media (min-width: 768px) {\n .navbar-nav {\n float: right;\n }\n .navbar-nav > li {\n float: right;\n }\n }\n @media (min-width: 768px) {\n .navbar-left.flip {\n float: right !important;\n }\n .navbar-right:last-child {\n margin-left: -15px;\n margin-right: auto;\n }\n .navbar-right.flip {\n float: left !important;\n margin-left: -15px;\n margin-right: auto;\n }\n .navbar-right .dropdown-menu {\n left: 0;\n right: auto;\n }\n }\n @media (min-width: 768px) {\n .navbar-text {\n float: right;\n }\n .navbar-text.navbar-right:last-child {\n margin-left: 0;\n margin-right: auto;\n }\n }\n .pagination {\n padding-right: 0;\n }\n .pagination > li > a,\n .pagination > li > span {\n float: right;\n margin-right: -1px;\n margin-left: 0px;\n }\n .pagination > li:first-child > a,\n .pagination > li:first-child > span {\n margin-left: 0;\n border-bottom-right-radius: 4px;\n border-top-right-radius: 4px;\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n }\n .pagination > li:last-child > a,\n .pagination > li:last-child > span {\n margin-right: -1px;\n border-bottom-left-radius: 4px;\n border-top-left-radius: 4px;\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n }\n .pager {\n padding-right: 0;\n padding-left: initial;\n }\n .pager .next > a,\n .pager .next > span {\n float: left;\n }\n .pager .previous > a,\n .pager .previous > span {\n float: right;\n }\n .nav-pills > li > a > .badge {\n margin-left: 0px;\n margin-right: 3px;\n }\n .list-group-item > .badge {\n float: left;\n }\n .list-group-item > .badge + .badge {\n margin-left: 5px;\n margin-right: auto;\n }\n .alert-dismissable,\n .alert-dismissible {\n padding-left: 35px;\n padding-right: 15px;\n }\n .alert-dismissable .close,\n .alert-dismissible .close {\n right: auto;\n left: -21px;\n }\n .progress-bar {\n float: right;\n }\n .media > .pull-left {\n margin-right: 10px;\n }\n .media > .pull-left.flip {\n margin-right: 0;\n margin-left: 10px;\n }\n .media > .pull-right {\n margin-left: 10px;\n }\n .media > .pull-right.flip {\n margin-left: 0;\n margin-right: 10px;\n }\n .media-right,\n .media > .pull-right {\n padding-right: 10px;\n padding-left: initial;\n }\n .media-left,\n .media > .pull-left {\n padding-left: 10px;\n padding-right: initial;\n }\n .media-list {\n padding-right: 0;\n padding-left: initial;\n list-style: none;\n }\n .list-group {\n padding-right: 0;\n padding-left: initial;\n }\n .panel > .table:first-child > thead:first-child > tr:first-child td:first-child,\n .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,\n .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n .panel > .table:first-child > thead:first-child > tr:first-child th:first-child,\n .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,\n .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,\n .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {\n border-top-right-radius: 3px;\n border-top-left-radius: 0;\n }\n .panel > .table:first-child > thead:first-child > tr:first-child td:last-child,\n .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,\n .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n .panel > .table:first-child > thead:first-child > tr:first-child th:last-child,\n .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,\n .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,\n .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {\n border-top-left-radius: 3px;\n border-top-right-radius: 0;\n }\n .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,\n .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {\n border-bottom-left-radius: 3px;\n border-top-right-radius: 0;\n }\n .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,\n .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {\n border-bottom-right-radius: 3px;\n border-top-left-radius: 0;\n }\n .panel > .table-bordered > thead > tr > th:first-child,\n .panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\n .panel > .table-bordered > tbody > tr > th:first-child,\n .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\n .panel > .table-bordered > tfoot > tr > th:first-child,\n .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n .panel > .table-bordered > thead > tr > td:first-child,\n .panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\n .panel > .table-bordered > tbody > tr > td:first-child,\n .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\n .panel > .table-bordered > tfoot > tr > td:first-child,\n .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-right: 0;\n border-left: none;\n }\n .panel > .table-bordered > thead > tr > th:last-child,\n .panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\n .panel > .table-bordered > tbody > tr > th:last-child,\n .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\n .panel > .table-bordered > tfoot > tr > th:last-child,\n .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n .panel > .table-bordered > thead > tr > td:last-child,\n .panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\n .panel > .table-bordered > tbody > tr > td:last-child,\n .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\n .panel > .table-bordered > tfoot > tr > td:last-child,\n .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: none;\n border-left: 0;\n }\n .embed-responsive .embed-responsive-item,\n .embed-responsive iframe,\n .embed-responsive embed,\n .embed-responsive object {\n right: 0;\n left: auto;\n }\n .close {\n float: left;\n }\n .modal-footer {\n text-align: left;\n }\n .modal-footer.flip {\n text-align: right;\n }\n .modal-footer .btn + .btn {\n margin-left: auto;\n margin-right: 5px;\n }\n .modal-footer .btn-group .btn + .btn {\n margin-right: -1px;\n margin-left: auto;\n }\n .modal-footer .btn-block + .btn-block {\n margin-right: 0;\n margin-left: auto;\n }\n .popover {\n left: auto;\n text-align: right;\n }\n .popover.top > .arrow {\n right: 50%;\n left: auto;\n margin-right: -11px;\n margin-left: auto;\n }\n .popover.top > .arrow:after {\n margin-right: -10px;\n margin-left: auto;\n }\n .popover.bottom > .arrow {\n right: 50%;\n left: auto;\n margin-right: -11px;\n margin-left: auto;\n }\n .popover.bottom > .arrow:after {\n margin-right: -10px;\n margin-left: auto;\n }\n .carousel-control {\n right: 0;\n bottom: 0;\n }\n .carousel-control.left {\n right: auto;\n left: 0;\n background-image: -webkit-linear-gradient(\n left,\n color-stop(rgba(0, 0, 0, 0.5) 0%),\n color-stop(rgba(0, 0, 0, 0.0001) 100%)\n );\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);\n }\n .carousel-control.right {\n left: auto;\n right: 0;\n background-image: -webkit-linear-gradient(\n left,\n color-stop(rgba(0, 0, 0, 0.0001) 0%),\n color-stop(rgba(0, 0, 0, 0.5) 100%)\n );\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);\n }\n .carousel-control .icon-prev,\n .carousel-control .glyphicon-chevron-left {\n left: 50%;\n right: auto;\n margin-right: -10px;\n }\n .carousel-control .icon-next,\n .carousel-control .glyphicon-chevron-right {\n right: 50%;\n left: auto;\n margin-left: -10px;\n }\n .carousel-indicators {\n right: 50%;\n left: 0;\n margin-right: -30%;\n margin-left: 0;\n padding-left: 0;\n }\n @media screen and (min-width: 768px) {\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .icon-prev {\n margin-left: 0;\n margin-right: -15px;\n }\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-next {\n margin-left: 0;\n margin-right: -15px;\n }\n .carousel-caption {\n left: 20%;\n right: 20%;\n padding-bottom: 30px;\n }\n }\n .pull-right.flip {\n float: left !important;\n }\n .pull-left.flip {\n float: right !important;\n }\n}\n","/* @preserve\n Copyright (c) 2005-2016, Mendix bv. All rights reserved.\n See mxclientsystem/licenses.txt for third party licenses that apply.\n*/\n\n\n/*\n\tEssential styles that themes can inherit.\n\tIn other words, works but doesn't look great.\n*/\n\n\n\n/****\n\t\tGENERIC PIECES\n ****/\n\n .dijitReset {\n\t/* Use this style to null out padding, margin, border in your template elements\n\t\tso that page specific styles don't break them.\n\t\t- Use in all TABLE, TR and TD tags.\n\t*/\n\tmargin:0;\n\tborder:0;\n\tpadding:0;\n\tfont: inherit;\n\tline-height:normal;\n\tcolor: inherit;\n}\n.dj_a11y .dijitReset {\n\t-moz-appearance: none; /* remove predefined high-contrast styling in Firefox */\n}\n\n.dijitInline {\n\t/* To inline block elements.\n\t\tSimilar to InlineBox below, but this has fewer side-effects in Moz.\n\t\tAlso, apparently works on a DIV as well as a FIELDSET.\n\t*/\n\tdisplay:inline-block;\t\t\t/* webkit and FF3 */\n\tborder:0;\n\tpadding:0;\n\tvertical-align:middle;\n}\n\ntable.dijitInline {\n\t/* To inline tables with a given width set */\n\tdisplay:inline-table;\n\tbox-sizing: content-box; -moz-box-sizing: content-box;\n}\n\n.dijitHidden {\n\t/* To hide unselected panes in StackContainer etc. */\n\tposition: absolute; /* remove from normal document flow to simulate display: none */\n\tvisibility: hidden; /* hide element from view, but don't break scrolling, see #18612 */\n}\n.dijitHidden * {\n\tvisibility: hidden !important; /* hide visibility:visible descendants of class=dijitHidden nodes, see #18799 */\n}\n\n.dijitVisible {\n\t/* To show selected pane in StackContainer etc. */\n\tdisplay: block !important;\t/* override user's display:none setting via style setting or indirectly via class */\n\tposition: relative;\t\t\t/* to support setting width/height, see #2033 */\n\tvisibility: visible;\n}\n\n.dj_ie6 .dijitComboBox .dijitInputContainer,\n.dijitInputContainer {\n\t/* for positioning of placeHolder */\n\toverflow: hidden;\n\tfloat: none !important; /* needed to squeeze the INPUT in */\n\tposition: relative;\n}\n.dj_ie7 .dijitInputContainer {\n\tfloat: left !important; /* needed by IE to squeeze the INPUT in */\n\tclear: left;\n\tdisplay: inline-block !important; /* to fix wrong text alignment in textdir=rtl text box */\n}\n\n.dj_ie .dijitSelect input,\n.dj_ie input.dijitTextBox,\n.dj_ie .dijitTextBox input {\n\tfont-size: 100%;\n}\n.dijitSelect .dijitButtonText {\n\tfloat: left;\n\tvertical-align: top;\n}\nTABLE.dijitSelect {\n\tpadding: 0 !important; /* messes up border alignment */\n\tborder-collapse: separate; /* so jsfiddle works with Normalized CSS checked */\n}\n.dijitTextBox .dijitSpinnerButtonContainer,\n.dijitTextBox .dijitArrowButtonContainer,\n.dijitValidationTextBox .dijitValidationContainer {\n\tfloat: right;\n\ttext-align: center;\n}\n.dijitSelect input.dijitInputField,\n.dijitTextBox input.dijitInputField {\n\t/* override unreasonable user styling of buttons and icons */\n\tpadding-left: 0 !important;\n\tpadding-right: 0 !important;\n}\n.dijitValidationTextBox .dijitValidationContainer {\n\tdisplay: none;\n}\n\n.dijitTeeny {\n\tfont-size:1px;\n\tline-height:1px;\n}\n\n.dijitOffScreen { /* these class attributes should supersede any inline positioning style */\n\tposition: absolute !important;\n\tleft: -10000px !important;\n\ttop: -10000px !important;\n}\n\n/*\n * Popup items have a wrapper div (dijitPopup)\n * with the real popup inside, and maybe an iframe too\n */\n.dijitPopup {\n\tposition: absolute;\n\tbackground-color: transparent;\n\tmargin: 0;\n\tborder: 0;\n\tpadding: 0;\n\t-webkit-overflow-scrolling: touch;\n}\n\n.dijitPositionOnly {\n\t/* Null out all position-related properties */\n\tpadding: 0 !important;\n\tborder: 0 !important;\n\tbackground-color: transparent !important;\n\tbackground-image: none !important;\n\theight: auto !important;\n\twidth: auto !important;\n}\n\n.dijitNonPositionOnly {\n\t/* Null position-related properties */\n\tfloat: none !important;\n\tposition: static !important;\n\tmargin: 0 0 0 0 !important;\n\tvertical-align: middle !important;\n}\n\n.dijitBackgroundIframe {\n\t/* iframe used to prevent problems with PDF or other applets overlaying menus etc */\n\tposition: absolute;\n\tleft: 0;\n\ttop: 0;\n\twidth: 100%;\n\theight: 100%;\n\tz-index: -1;\n\tborder: 0;\n\tpadding: 0;\n\tmargin: 0;\n}\n\n.dijitDisplayNone {\n\t/* hide something. Use this as a class rather than element.style so another class can override */\n\tdisplay:none !important;\n}\n\n.dijitContainer {\n\t/* for all layout containers */\n\toverflow: hidden;\t/* need on IE so something can be reduced in size, and so scrollbars aren't temporarily displayed when resizing */\n}\n\n/****\n\t\tA11Y\n ****/\n.dj_a11y .dijitIcon,\n.dj_a11y div.dijitArrowButtonInner, /* is this only for Spinner? if so, it should be deleted */\n.dj_a11y span.dijitArrowButtonInner,\n.dj_a11y img.dijitArrowButtonInner,\n.dj_a11y .dijitCalendarIncrementControl,\n.dj_a11y .dijitTreeExpando {\n\t/* hide icon nodes in high contrast mode; when necessary they will be replaced by character equivalents\n\t * exception for input.dijitArrowButtonInner, because the icon and character are controlled by the same node */\n\tdisplay: none;\n}\n.dijitSpinner div.dijitArrowButtonInner {\n\tdisplay: block; /* override previous rule */\n}\n\n.dj_a11y .dijitA11ySideArrow {\n\tdisplay: inline !important; /* display text instead */\n\tcursor: pointer;\n}\n\n/*\n * Since we can't use shading in a11y mode, and since the underline indicates today's date,\n * use a border to show the selected date.\n * Avoid screen jitter when switching selected date by compensating for the selected node's\n * border w/padding on other nodes.\n */\n.dj_a11y .dijitCalendarDateLabel {\n\tpadding: 1px;\n\tborder: 0px !important;\n}\n.dj_a11y .dijitCalendarSelectedDate .dijitCalendarDateLabel {\n\tborder-style: solid !important;\n\tborder-width: 1px !important;\n\tpadding: 0;\n}\n.dj_a11y .dijitCalendarDateTemplate {\n\tpadding-bottom: 0.1em !important;\t/* otherwise bottom border doesn't appear on IE */\n\tborder: 0px !important;\n}\n.dj_a11y .dijitButtonNode {\n\tborder: black outset medium !important;\n\n\t/* In claro, hovering a toolbar button reduces padding and adds a border.\n\t * Not needed in a11y mode since Toolbar buttons always have a border.\n\t */\n\tpadding: 0 !important;\n}\n.dj_a11y .dijitArrowButton {\n\tpadding: 0 !important;\n}\n\n.dj_a11y .dijitButtonContents {\n\tmargin: 0.15em; /* Margin needed to make focus outline visible */\n}\n\n.dj_a11y .dijitTextBoxReadOnly .dijitInputField,\n.dj_a11y .dijitTextBoxReadOnly .dijitButtonNode {\n\tborder-style: outset!important;\n\tborder-width: medium!important;\n\tborder-color: #999 !important;\n\tcolor:#999 !important;\n}\n\n/* button inner contents - labels, icons etc. */\n.dijitButtonNode * {\n\tvertical-align: middle;\n}\n.dijitSelect .dijitArrowButtonInner,\n.dijitButtonNode .dijitArrowButtonInner {\n\t/* the arrow icon node */\n\tbackground: no-repeat center;\n\twidth: 12px;\n\theight: 12px;\n\tdirection: ltr; /* needed by IE/RTL */\n}\n\n/****\n\t3-element borders: ( dijitLeft + dijitStretch + dijitRight )\n\tThese were added for rounded corners on dijit.form.*Button but never actually used.\n ****/\n\n.dijitLeft {\n\t/* Left part of a 3-element border */\n\tbackground-position:left top;\n\tbackground-repeat:no-repeat;\n}\n\n.dijitStretch {\n\t/* Middle (stretchy) part of a 3-element border */\n\twhite-space:nowrap;\t\t\t/* MOW: move somewhere else */\n\tbackground-repeat:repeat-x;\n}\n\n.dijitRight {\n\t/* Right part of a 3-element border */\n\tbackground-position:right top;\n\tbackground-repeat:no-repeat;\n}\n\n/* Buttons */\n.dj_gecko .dj_a11y .dijitButtonDisabled .dijitButtonNode {\n\topacity: 0.5;\n}\n\n.dijitToggleButton,\n.dijitButton,\n.dijitDropDownButton,\n.dijitComboButton {\n\t/* outside of button */\n\tmargin: 0.2em;\n\tvertical-align: middle;\n}\n\n.dijitButtonContents {\n\tdisplay: block;\t\t/* to make focus border rectangular */\n}\ntd.dijitButtonContents {\n\tdisplay: table-cell;\t/* but don't affect Select, ComboButton */\n}\n\n.dijitButtonNode img {\n\t/* make text and images line up cleanly */\n\tvertical-align:middle;\n\t/*margin-bottom:.2em;*/\n}\n\n.dijitToolbar .dijitComboButton {\n\t/* because Toolbar only draws a border around the hovered thing */\n\tborder-collapse: separate;\n}\n\n.dijitToolbar .dijitToggleButton,\n.dijitToolbar .dijitButton,\n.dijitToolbar .dijitDropDownButton,\n.dijitToolbar .dijitComboButton {\n\tmargin: 0;\n}\n\n.dijitToolbar .dijitButtonContents {\n\t/* just because it used to be this way */\n\tpadding: 1px 2px;\n}\n\n\n.dj_webkit .dijitToolbar .dijitDropDownButton {\n\tpadding-left: 0.3em;\n}\n.dj_gecko .dijitToolbar .dijitButtonNode::-moz-focus-inner {\n\tpadding:0;\n}\n\n.dijitSelect {\n\tborder:1px solid gray;\n}\n.dijitButtonNode {\n\t/* Node that is acting as a button -- may or may not be a BUTTON element */\n\tborder:1px solid gray;\n\tmargin:0;\n\tline-height:normal;\n\tvertical-align: middle;\n\ttext-align:center;\n\twhite-space: nowrap;\n}\n.dj_webkit .dijitSpinner .dijitSpinnerButtonContainer {\n\t/* apparent WebKit bug where messing with the font coupled with line-height:normal X 2 (dijitReset & dijitButtonNode)\n\tcan be different than just a single line-height:normal, visible in InlineEditBox/Spinner */\n\tline-height:inherit;\n}\n.dijitTextBox .dijitButtonNode {\n\tborder-width: 0;\n}\n\n.dijitSelect,\n.dijitSelect *,\n.dijitButtonNode,\n.dijitButtonNode * {\n\tcursor: pointer;\n\t-webkit-tap-highlight-color: transparent;\n}\n\n.dj_ie .dijitButtonNode {\n\t/* ensure hasLayout */\n\tzoom: 1;\n}\n\n.dj_ie .dijitButtonNode button {\n\t/*\n\t\tdisgusting hack to get rid of spurious padding around button elements\n\t\ton IE. MSIE is truly the web's boat anchor.\n\t*/\n\toverflow: visible;\n}\n\ndiv.dijitArrowButton {\n\tfloat: right;\n}\n\n/******\n\tTextBox related.\n\tEverything that has an \n*******/\n\n.dijitTextBox {\n\tborder: solid black 1px;\n\twidth: 15em;\t/* need to set default size on outer node since inner nodes say and
    . user can override */\n\tvertical-align: middle;\n}\n\n.dijitTextBoxReadOnly,\n.dijitTextBoxDisabled {\n\tcolor: gray;\n}\n.dj_safari .dijitTextBoxDisabled input {\n\tcolor: #B0B0B0; /* because Safari lightens disabled input/textarea no matter what color you specify */\n}\n.dj_safari textarea.dijitTextAreaDisabled {\n\tcolor: #333; /* because Safari lightens disabled input/textarea no matter what color you specify */\n}\n.dj_gecko .dijitTextBoxReadOnly input.dijitInputField, /* disable arrow and validation presentation inputs but allow real input for text selection */\n.dj_gecko .dijitTextBoxDisabled input {\n\t-moz-user-input: none; /* prevent focus of disabled textbox buttons */\n}\n\n.dijitPlaceHolder {\n\t/* hint text that appears in a textbox until user starts typing */\n\tcolor: #AAAAAA;\n\tfont-style: italic;\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\twhite-space: nowrap;\n\tpointer-events: none; /* so cut/paste context menu shows up when right clicking */\n}\n\n.dijitTimeTextBox {\n\twidth: 8em;\n}\n\n/* rules for webkit to deal with fuzzy blue focus border */\n.dijitTextBox input:focus {\n\toutline: none;\t/* blue fuzzy line looks wrong on combobox or something w/validation icon showing */\n}\n.dijitTextBoxFocused {\n\toutline: 5px -webkit-focus-ring-color;\n}\n\n.dijitSelect input,\n.dijitTextBox input {\n\tfloat: left; /* needed by IE to remove secret margin */\n}\n.dj_ie6 input.dijitTextBox,\n.dj_ie6 .dijitTextBox input {\n\tfloat: none;\n}\n.dijitInputInner {\n\t/* for when an is embedded inside an inline-block
    with a size and border */\n\tborder:0 !important;\n\tbackground-color:transparent !important;\n\twidth:100% !important;\n\t/* IE dislikes horizontal tweaking combined with width:100% so punish everyone for consistency */\n\tpadding-left: 0 !important;\n\tpadding-right: 0 !important;\n\tmargin-left: 0 !important;\n\tmargin-right: 0 !important;\n}\n.dj_a11y .dijitTextBox input {\n\tmargin: 0 !important;\n}\n.dijitValidationTextBoxError input.dijitValidationInner,\n.dijitSelect input,\n.dijitTextBox input.dijitArrowButtonInner {\n\t/* used to display arrow icon/validation icon, or in arrow character in high contrast mode.\n\t * The css below is a trick to hide the character in non-high-contrast mode\n\t */\n\ttext-indent: -2em !important;\n\tdirection: ltr !important;\n\ttext-align: left !important;\n\theight: auto !important;\n}\n.dj_ie .dijitSelect input,\n.dj_ie .dijitTextBox input,\n.dj_ie input.dijitTextBox {\n\toverflow-y: visible; /* inputs need help expanding when padding is added or line-height is adjusted */\n\tline-height: normal; /* strict mode */\n}\n.dijitSelect .dijitSelectLabel span {\n\tline-height: 100%;\n}\n.dj_ie .dijitSelect .dijitSelectLabel {\n\tline-height: normal;\n}\n.dj_ie6 .dijitSelect .dijitSelectLabel,\n.dj_ie7 .dijitSelect .dijitSelectLabel,\n.dj_ie8 .dijitSelect .dijitSelectLabel,\n.dj_iequirks .dijitSelect .dijitSelectLabel,\n.dijitSelect td,\n.dj_ie6 .dijitSelect input,\n.dj_iequirks .dijitSelect input,\n.dj_ie6 .dijitSelect .dijitValidationContainer,\n.dj_ie6 .dijitTextBox input,\n.dj_ie6 input.dijitTextBox,\n.dj_iequirks .dijitTextBox input.dijitValidationInner,\n.dj_iequirks .dijitTextBox input.dijitArrowButtonInner,\n.dj_iequirks .dijitTextBox input.dijitSpinnerButtonInner,\n.dj_iequirks .dijitTextBox input.dijitInputInner,\n.dj_iequirks input.dijitTextBox {\n\tline-height: 100%; /* IE7 problem where the icon is vertically way too low w/o this */\n}\n.dj_a11y input.dijitValidationInner,\n.dj_a11y input.dijitArrowButtonInner {\n\t/* (in high contrast mode) revert rules from above so character displays */\n\ttext-indent: 0 !important;\n\twidth: 1em !important;\n\tcolor: black !important;\n}\n.dijitValidationTextBoxError .dijitValidationContainer {\n\tdisplay: inline;\n\tcursor: default;\n}\n\n/* ComboBox & Spinner */\n\n.dijitSpinner .dijitSpinnerButtonContainer,\n.dijitComboBox .dijitArrowButtonContainer {\n\t/* dividing line between input area and up/down button(s) for ComboBox and Spinner */\n\tborder-width: 0 0 0 1px !important; /* !important needed due to wayward \".theme .dijitButtonNode\" rules */\n}\n.dj_a11y .dijitSelect .dijitArrowButtonContainer,\n.dijitToolbar .dijitComboBox .dijitArrowButtonContainer {\n\t/* overrides above rule plus mirror-image rule in dijit_rtl.css to have no divider when ComboBox in Toolbar */\n\tborder-width: 0 !important;\n}\n\n.dijitComboBoxMenu {\n\t/* Drop down menu is implemented as
    • ... but we don't want circles before each item */\n\tlist-style-type: none;\n}\n.dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode {\n\t/* dividing line between input area and up/down button(s) for ComboBox and Spinner */\n\tborder-width: 0;\n}\n.dj_ie .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode {\n\tclear: both; /* IE workaround */\n}\n\n.dj_ie .dijitToolbar .dijitComboBox {\n\t/* make combobox buttons align properly with other buttons in a toolbar */\n\tvertical-align: middle;\n}\n\n/* Spinner */\n\n.dijitTextBox .dijitSpinnerButtonContainer {\n\twidth: 1em;\n\tposition: relative !important;\n\toverflow: hidden;\n}\n.dijitSpinner .dijitSpinnerButtonInner {\n\twidth:1em;\n\tvisibility:hidden !important; /* just a sizing element */\n\toverflow-x:hidden;\n}\n.dijitComboBox .dijitButtonNode,\n.dijitSpinnerButtonContainer .dijitButtonNode {\n\tborder-width: 0;\n}\n.dj_a11y .dijitSpinnerButtonContainer .dijitButtonNode {\n\tborder-width: 0px !important;\n\tborder-style: solid !important;\n}\n.dj_a11y .dijitTextBox .dijitSpinnerButtonContainer,\n.dj_a11y .dijitSpinner .dijitArrowButtonInner,\n.dj_a11y .dijitSpinnerButtonContainer input {\n\twidth: 1em !important;\n}\n.dj_a11y .dijitSpinner .dijitArrowButtonInner {\n\tmargin: 0 auto !important; /* should auto-center */\n}\n.dj_ie .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {\n\tpadding-left: 0.3em !important;\n\tpadding-right: 0.3em !important;\n\tmargin-left: 0.3em !important;\n\tmargin-right: 0.3em !important;\n\twidth: 1.4em !important;\n}\n.dj_ie7 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {\n\tpadding-left: 0 !important; /* manually center INPUT: character is .5em and total width = 1em */\n\tpadding-right: 0 !important;\n\twidth: 1em !important;\n}\n.dj_ie6 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {\n\tmargin-left: 0.1em !important;\n\tmargin-right: 0.1em !important;\n\twidth: 1em !important;\n}\n.dj_iequirks .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {\n\tmargin-left: 0 !important;\n\tmargin-right: 0 !important;\n\twidth: 2em !important;\n}\n.dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {\n\t/* note: .dijitInputLayoutContainer makes this rule override .dijitArrowButton settings\n\t * for dijit.form.Button\n\t */\n\tpadding: 0;\n\tposition: absolute !important;\n\tright: 0;\n\tfloat: none;\n\theight: 50%;\n\twidth: 100%;\n\tbottom: auto;\n\tleft: 0;\n\tright: auto;\n}\n.dj_iequirks .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {\n\twidth: auto;\n}\n.dj_a11y .dijitSpinnerButtonContainer .dijitArrowButton {\n\toverflow: visible !important;\n}\n.dijitSpinner .dijitSpinnerButtonContainer .dijitDownArrowButton {\n\ttop: 50%;\n\tborder-top-width: 1px !important;\n}\n.dijitSpinner .dijitSpinnerButtonContainer .dijitUpArrowButton {\n\ttop: 0;\n}\n.dijitSpinner .dijitArrowButtonInner {\n\tmargin: auto;\n\toverflow-x: hidden;\n\theight: 100% !important;\n}\n.dj_iequirks .dijitSpinner .dijitArrowButtonInner {\n\theight: auto !important;\n}\n.dijitSpinner .dijitArrowButtonInner .dijitInputField {\n\t-moz-transform: scale(0.5);\n\t-moz-transform-origin: center top;\n\t-webkit-transform: scale(0.5);\n\t-webkit-transform-origin: center top;\n\t-o-transform: scale(0.5);\n\t-o-transform-origin: center top;\n\ttransform: scale(0.5);\n\ttransform-origin: left top;\n\tpadding-top: 0;\n\tpadding-bottom: 0;\n\tpadding-left: 0 !important;\n\tpadding-right: 0 !important;\n\twidth: 100%;\n\tvisibility: hidden;\n}\n.dj_ie .dijitSpinner .dijitArrowButtonInner .dijitInputField {\n\tzoom: 50%; /* emulate transform: scale(0.5) */\n}\n.dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButtonInner {\n\toverflow: hidden;\n}\n\n.dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {\n\twidth: 100%;\n}\n.dj_iequirks .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {\n\twidth: 1em; /* matches .dj_a11y .dijitTextBox .dijitSpinnerButtonContainer rule - 100% is the whole screen width in quirks */\n}\n.dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {\n\tvertical-align:top;\n\tvisibility: visible;\n}\n.dj_a11y .dijitSpinnerButtonContainer {\n\twidth: 1em;\n}\n\n/****\n\t\tdijit.form.CheckBox\n \t &\n \t\tdijit.form.RadioButton\n ****/\n\n.dijitCheckBox,\n.dijitRadio,\n.dijitCheckBoxInput {\n\tpadding: 0;\n\tborder: 0;\n\twidth: 16px;\n\theight: 16px;\n\tbackground-position:center center;\n\tbackground-repeat:no-repeat;\n\toverflow: hidden;\n}\n\n.dijitCheckBox input,\n.dijitRadio input {\n\tmargin: 0;\n\tpadding: 0;\n\tdisplay: block;\n}\n\n.dijitCheckBoxInput {\n\t/* place the actual input on top, but invisible */\n\topacity: 0;\n}\n\n.dj_ie .dijitCheckBoxInput {\n\tfilter: alpha(opacity=0);\n}\n\n.dj_a11y .dijitCheckBox,\n.dj_a11y .dijitRadio {\n\t/* in a11y mode we display the native checkbox (not the icon), so don't restrict the size */\n\twidth: auto !important;\n\theight: auto !important;\n}\n.dj_a11y .dijitCheckBoxInput {\n\topacity: 1;\n\tfilter: none;\n\twidth: auto;\n\theight: auto;\n}\n\n.dj_a11y .dijitFocusedLabel {\n\t/* for checkboxes or radio buttons in high contrast mode, use border rather than outline to indicate focus (outline does not work in FF)*/\n\tborder: 1px dotted;\n\toutline: 0px !important;\n}\n\n/****\n\t\tdijit.ProgressBar\n ****/\n\n.dijitProgressBar {\n z-index: 0; /* so z-index settings below have no effect outside of the ProgressBar */\n}\n.dijitProgressBarEmpty {\n\t/* outer container and background of the bar that's not finished yet*/\n\tposition:relative;overflow:hidden;\n\tborder:1px solid black; \t/* a11y: border necessary for high-contrast mode */\n\tz-index:0;\t\t\t/* establish a stacking context for this progress bar */\n}\n\n.dijitProgressBarFull {\n\t/* outer container for background of bar that is finished */\n\tposition:absolute;\n\toverflow:hidden;\n\tz-index:-1;\n\ttop:0;\n\twidth:100%;\n}\n.dj_ie6 .dijitProgressBarFull {\n\theight:1.6em;\n}\n\n.dijitProgressBarTile {\n\t/* inner container for finished portion */\n\tposition:absolute;\n\toverflow:hidden;\n\ttop:0;\n\tleft:0;\n\tbottom:0;\n\tright:0;\n\tmargin:0;\n\tpadding:0;\n\twidth: 100%; /* needed for IE/quirks */\n\theight:auto;\n\tbackground-color:#aaa;\n\tbackground-attachment: fixed;\n}\n\n.dj_a11y .dijitProgressBarTile {\n\t/* a11y: The border provides visibility in high-contrast mode */\n\tborder-width:2px;\n\tborder-style:solid;\n\tbackground-color:transparent !important;\n}\n\n.dj_ie6 .dijitProgressBarTile {\n\t/* width:auto works in IE6 with position:static but not position:absolute */\n\tposition:static;\n\t/* height:auto or 100% does not work in IE6 */\n\theight:1.6em;\n}\n\n.dijitProgressBarIndeterminate .dijitProgressBarTile {\n\t/* animated gif for 'indeterminate' mode */\n}\n\n.dijitProgressBarIndeterminateHighContrastImage {\n\tdisplay:none;\n}\n\n.dj_a11y .dijitProgressBarIndeterminate .dijitProgressBarIndeterminateHighContrastImage {\n\tdisplay:block;\n\tposition:absolute;\n\ttop:0;\n\tbottom:0;\n\tmargin:0;\n\tpadding:0;\n\twidth:100%;\n\theight:auto;\n}\n\n.dijitProgressBarLabel {\n\tdisplay:block;\n\tposition:static;\n\twidth:100%;\n\ttext-align:center;\n\tbackground-color:transparent !important;\n}\n\n/****\n\t\tdijit.Tooltip\n ****/\n\n.dijitTooltip {\n\tposition: absolute;\n\tz-index: 2000;\n\tdisplay: block;\n\t/* make visible but off screen */\n\tleft: 0;\n\ttop: -10000px;\n\toverflow: visible;\n}\n\n.dijitTooltipContainer {\n\tborder: solid black 2px;\n\tbackground: #b8b5b5;\n\tcolor: black;\n\tfont-size: small;\n}\n\n.dijitTooltipFocusNode {\n\tpadding: 2px 2px 2px 2px;\n}\n\n.dijitTooltipConnector {\n\tposition: absolute;\n}\n.dj_a11y .dijitTooltipConnector {\n\tdisplay: none;\t/* won't show b/c it's background-image; hide to avoid border gap */\n}\n\n.dijitTooltipData {\n\tdisplay:none;\n}\n\n/* Layout widgets. This is essential CSS to make layout work (it isn't \"styling\" CSS)\n make sure that the position:absolute in dijitAlign* overrides other classes */\n\n.dijitLayoutContainer {\n\tposition: relative;\n\tdisplay: block;\n\toverflow: hidden;\n}\n\n.dijitAlignTop,\n.dijitAlignBottom,\n.dijitAlignLeft,\n.dijitAlignRight {\n\tposition: absolute;\n\toverflow: hidden;\n}\n\nbody .dijitAlignClient { position: absolute; }\n\n/*\n * BorderContainer\n *\n * .dijitBorderContainer is a stylized layout where panes have border and margin.\n * .dijitBorderContainerNoGutter is a raw layout.\n */\n.dijitBorderContainer, .dijitBorderContainerNoGutter {\n\tposition:relative;\n\toverflow: hidden;\n z-index: 0; /* so z-index settings below have no effect outside of the BorderContainer */\n}\n\n.dijitBorderContainerPane,\n.dijitBorderContainerNoGutterPane {\n\tposition: absolute !important;\t/* !important to override position:relative in dijitTabContainer etc. */\n\tz-index: 2;\t\t/* above the splitters so that off-by-one browser errors don't cover up border of pane */\n}\n\n.dijitBorderContainer > .dijitTextArea {\n\t/* On Safari, for SimpleTextArea inside a BorderContainer,\n\t\tdon't want to display the grip to resize */\n\tresize: none;\n}\n\n.dijitGutter {\n\t/* gutter is just a place holder for empty space between panes in BorderContainer */\n\tposition: absolute;\n\tfont-size: 1px;\t\t/* needed by IE6 even though div is empty, otherwise goes to 15px */\n}\n\n/* SplitContainer\n\n\t'V' == container that splits vertically (up/down)\n\t'H' = horizontal (left/right)\n*/\n\n.dijitSplitter {\n\tposition: absolute;\n\toverflow: hidden;\n\tz-index: 10;\t\t/* above the panes so that splitter focus is visible on FF, see #7583*/\n\tbackground-color: #fff;\n\tborder-color: gray;\n\tborder-style: solid;\n\tborder-width: 0;\n}\n.dj_ie .dijitSplitter {\n\tz-index: 1;\t/* behind the panes so that pane borders aren't obscured see test_Gui.html/[14392] */\n}\n\n.dijitSplitterActive {\n\tz-index: 11 !important;\n}\n\n.dijitSplitterCover {\n\tposition:absolute;\n\tz-index:-1;\n\ttop:0;\n\tleft:0;\n\twidth:100%;\n\theight:100%;\n}\n\n.dijitSplitterCoverActive {\n\tz-index:3 !important;\n}\n\n/* #6945: stop mouse events */\n.dj_ie .dijitSplitterCover {\n\tbackground: white;\n\topacity: 0;\n}\n.dj_ie6 .dijitSplitterCover,\n.dj_ie7 .dijitSplitterCover,\n.dj_ie8 .dijitSplitterCover {\n\tfilter: alpha(opacity=0);\n}\n\n.dijitSplitterH {\n\theight: 7px;\n\tborder-top:1px;\n\tborder-bottom:1px;\n\tcursor: row-resize;\n\t-webkit-tap-highlight-color: transparent;\n}\n.dijitSplitterV {\n\twidth: 7px;\n\tborder-left:1px;\n\tborder-right:1px;\n\tcursor: col-resize;\n\t-webkit-tap-highlight-color: transparent;\n}\n.dijitSplitContainer {\n\tposition: relative;\n\toverflow: hidden;\n\tdisplay: block;\n}\n\n.dijitSplitPane {\n\tposition: absolute;\n}\n\n.dijitSplitContainerSizerH,\n.dijitSplitContainerSizerV {\n\tposition:absolute;\n\tfont-size: 1px;\n\tbackground-color: ThreeDFace;\n\tborder: 1px solid;\n\tborder-color: ThreeDHighlight ThreeDShadow ThreeDShadow ThreeDHighlight;\n\tmargin: 0;\n}\n\n.dijitSplitContainerSizerH .thumb, .dijitSplitterV .dijitSplitterThumb {\n\toverflow:hidden;\n\tposition:absolute;\n\ttop:49%;\n}\n\n.dijitSplitContainerSizerV .thumb, .dijitSplitterH .dijitSplitterThumb {\n\tposition:absolute;\n\tleft:49%;\n}\n\n.dijitSplitterShadow,\n.dijitSplitContainerVirtualSizerH,\n.dijitSplitContainerVirtualSizerV {\n\tfont-size: 1px;\n\tbackground-color: ThreeDShadow;\n\t-moz-opacity: 0.5;\n\topacity: 0.5;\n\tfilter: Alpha(Opacity=50);\n\tmargin: 0;\n}\n\n.dijitSplitContainerSizerH, .dijitSplitContainerVirtualSizerH {\n\tcursor: col-resize;\n}\n\n.dijitSplitContainerSizerV, .dijitSplitContainerVirtualSizerV {\n\tcursor: row-resize;\n}\n\n.dj_a11y .dijitSplitterH {\n\tborder-top:1px solid #d3d3d3 !important;\n\tborder-bottom:1px solid #d3d3d3 !important;\n}\n.dj_a11y .dijitSplitterV {\n\tborder-left:1px solid #d3d3d3 !important;\n\tborder-right:1px solid #d3d3d3 !important;\n}\n\n/* ContentPane */\n\n.dijitContentPane {\n\tdisplay: block;\n\toverflow: auto;\t/* if we don't have this (or overflow:hidden), then Widget.resizeTo() doesn't make sense for ContentPane */\n\t-webkit-overflow-scrolling: touch;\n}\n\n.dijitContentPaneSingleChild {\n\t/*\n\t * if the ContentPane holds a single layout widget child which is being sized to match the content pane,\n\t * then the ContentPane should never get a scrollbar (but it does due to browser bugs, see #9449\n\t */\n\toverflow: hidden;\n}\n\n.dijitContentPaneLoading .dijitIconLoading,\n.dijitContentPaneError .dijitIconError {\n\tmargin-right: 9px;\n}\n\n/* TitlePane and Fieldset */\n\n.dijitTitlePane {\n\tdisplay: block;\n\toverflow: hidden;\n}\n.dijitFieldset {\n\tborder: 1px solid gray;\n}\n.dijitTitlePaneTitle, .dijitFieldsetTitle {\n\tcursor: pointer;\n\t-webkit-tap-highlight-color: transparent;\n}\n.dijitTitlePaneTitleFixedOpen, .dijitTitlePaneTitleFixedClosed,\n.dijitFieldsetTitleFixedOpen, .dijitFieldsetTitleFixedClosed {\n\t/* TitlePane or Fieldset that cannot be toggled */\n\tcursor: default;\n}\n.dijitTitlePaneTitle * {\n\tvertical-align: middle;\n}\n.dijitTitlePane .dijitArrowNodeInner, .dijitFieldset .dijitArrowNodeInner {\n\t/* normally, hide arrow text in favor of icon */\n\tdisplay: none;\n}\n.dj_a11y .dijitTitlePane .dijitArrowNodeInner, .dj_a11y .dijitFieldset .dijitArrowNodeInner {\n\t/* ... except in a11y mode, then show text arrow */\n\tdisplay: inline;\n\tfont-family: monospace;\t\t/* because - and + are different widths */\n}\n.dj_a11y .dijitTitlePane .dijitArrowNode, .dj_a11y .dijitFieldset .dijitArrowNode {\n\t/* ... and hide icon (TODO: just point dijitIcon class on the icon, and it hides automatically) */\n\tdisplay: none;\n}\n.dijitTitlePaneTitleFixedOpen .dijitArrowNode, .dijitTitlePaneTitleFixedOpen .dijitArrowNodeInner,\n.dijitTitlePaneTitleFixedClosed .dijitArrowNode, .dijitTitlePaneTitleFixedClosed .dijitArrowNodeInner,\n.dijitFieldsetTitleFixedOpen .dijitArrowNode, .dijitFieldsetTitleFixedOpen .dijitArrowNodeInner,\n.dijitFieldsetTitleFixedClosed .dijitArrowNode, .dijitFieldsetTitleFixedClosed .dijitArrowNodeInner {\n\t/* don't show the open close icon or text arrow; it makes the user think the pane is closable */\n\tdisplay: none !important;\t/* !important to override above a11y rules to show text arrow */\n}\n\n.dj_ie6 .dijitTitlePaneContentOuter,\n.dj_ie6 .dijitTitlePane .dijitTitlePaneTitle {\n\t/* force hasLayout to ensure borders etc, show up */\n\tzoom: 1;\n}\n\n/* Color Palette\n * Sizes designed so that table cell positions match icons in underlying image,\n * which appear at 20x20 intervals.\n */\n\n.dijitColorPalette {\n\tborder: 1px solid #999;\n\tbackground: #fff;\n\tposition: relative;\n}\n\n.dijitColorPalette .dijitPaletteTable {\n\t/* Table that holds the palette cells, and overlays image file with color swatches.\n\t * padding/margin to align table with image.\n\t */\n\tpadding: 2px 3px 3px 3px;\n\tposition: relative;\n\toverflow: hidden;\n\toutline: 0;\n\tborder-collapse: separate;\n}\n.dj_ie6 .dijitColorPalette .dijitPaletteTable,\n.dj_ie7 .dijitColorPalette .dijitPaletteTable,\n.dj_iequirks .dijitColorPalette .dijitPaletteTable {\n\t/* using padding above so that focus border isn't cutoff on moz/webkit,\n\t * but using margin on IE because padding doesn't seem to work\n\t */\n\tpadding: 0;\n\tmargin: 2px 3px 3px 3px;\n}\n\n.dijitColorPalette .dijitPaletteCell {\n\t/*
    in the */\n\tfont-size: 1px;\n\tvertical-align: middle;\n\ttext-align: center;\n\tbackground: none;\n}\n.dijitColorPalette .dijitPaletteImg {\n\t/* Called dijitPaletteImg for back-compat, this actually wraps the color swatch with a border and padding */\n\tpadding: 1px;\t\t/* white area between gray border and color swatch */\n\tborder: 1px solid #999;\n\tmargin: 2px 1px;\n\tcursor: default;\n\tfont-size: 1px;\t\t/* prevent from getting bigger just to hold a character */\n}\n.dj_gecko .dijitColorPalette .dijitPaletteImg {\n\tpadding-bottom: 0;\t/* workaround rendering glitch on FF, it adds an extra pixel at the bottom */\n}\n.dijitColorPalette .dijitColorPaletteSwatch {\n\t/* the actual part where the color is */\n\twidth: 14px;\n\theight: 12px;\n}\n.dijitPaletteTable td {\n\t\tpadding: 0;\n}\n.dijitColorPalette .dijitPaletteCell:hover .dijitPaletteImg {\n\t/* hovered color swatch */\n\tborder: 1px solid #000;\n}\n\n.dijitColorPalette .dijitPaletteCell:active .dijitPaletteImg,\n.dijitColorPalette .dijitPaletteTable .dijitPaletteCellSelected .dijitPaletteImg {\n\tborder: 2px solid #000;\n\tmargin: 1px 0;\t/* reduce margin to compensate for increased border */\n}\n\n\n.dj_a11y .dijitColorPalette .dijitPaletteTable,\n.dj_a11y .dijitColorPalette .dijitPaletteTable * {\n\t/* table cells are to catch events, but the swatches are in the PaletteImg behind the table */\n\tbackground-color: transparent !important;\n}\n\n/* AccordionContainer */\n\n.dijitAccordionContainer {\n\tborder:1px solid #b7b7b7;\n\tborder-top:0 !important;\n}\n.dijitAccordionTitle {\n\tcursor: pointer;\n\t-webkit-tap-highlight-color: transparent;\n}\n.dijitAccordionTitleSelected {\n\tcursor: default;\n}\n\n/* images off, high-contrast mode styles */\n.dijitAccordionTitle .arrowTextUp,\n.dijitAccordionTitle .arrowTextDown {\n\tdisplay: none;\n\tfont-size: 0.65em;\n\tfont-weight: normal !important;\n}\n\n.dj_a11y .dijitAccordionTitle .arrowTextUp,\n.dj_a11y .dijitAccordionTitleSelected .arrowTextDown {\n\tdisplay: inline;\n}\n\n.dj_a11y .dijitAccordionTitleSelected .arrowTextUp {\n\tdisplay: none;\n}\n\n.dijitAccordionChildWrapper {\n\t/* this is the node whose height is adjusted */\n\toverflow: hidden;\n}\n\n/* Calendar */\n\n.dijitCalendarContainer table {\n\twidth: auto;\t/* in case user has specified a width for the TABLE nodes, see #10553 */\n\tclear: both; /* clear margin created for left/right month arrows; needed on IE10 for CalendarLite */\n}\n.dijitCalendarContainer th, .dijitCalendarContainer td {\n\tpadding: 0;\n\tvertical-align: middle;\n}\n\n.dijitCalendarMonthContainer {\n\ttext-align: center;\n}\n.dijitCalendarDecrementArrow {\n\tfloat: left;\n}\n.dijitCalendarIncrementArrow {\n\tfloat: right;\n}\n\n.dijitCalendarYearLabel {\n white-space: nowrap; /* make sure previous, current, and next year appear on same row */\n}\n\n.dijitCalendarNextYear {\n\tmargin:0 0 0 0.55em;\n}\n\n.dijitCalendarPreviousYear {\n\tmargin:0 0.55em 0 0;\n}\n\n.dijitCalendarIncrementControl {\n\tvertical-align: middle;\n}\n\n.dijitCalendarIncrementControl,\n.dijitCalendarDateTemplate,\n.dijitCalendarMonthLabel,\n.dijitCalendarPreviousYear,\n.dijitCalendarNextYear {\n\tcursor: pointer;\n\t-webkit-tap-highlight-color: transparent;\n}\n\n.dijitCalendarDisabledDate {\n\tcolor: gray;\n\ttext-decoration: line-through;\n\tcursor: default;\n}\n\n.dijitSpacer {\n\t/* don't display it, but make it affect the width */\n \tposition: relative;\n \theight: 1px;\n \toverflow: hidden;\n \tvisibility: hidden;\n}\n\n/* Styling for month drop down list */\n\n.dijitCalendarMonthMenu .dijitCalendarMonthLabel {\n\ttext-align:center;\n}\n\n/* Menu */\n\n.dijitMenu {\n\tborder:1px solid black;\n\tbackground-color:white;\n}\n.dijitMenuTable {\n\tborder-collapse:collapse;\n\tborder-width:0;\n\tbackground-color:white;\n}\n\n/* workaround for webkit bug #8427, remove this when it is fixed upstream */\n.dj_webkit .dijitMenuTable td[colspan=\"2\"]{\n\tborder-right:hidden;\n}\n\n.dijitMenuItem {\n\ttext-align: left;\n\twhite-space: nowrap;\n\tpadding:.1em .2em;\n\tcursor:pointer;\n\t-webkit-tap-highlight-color: transparent;\n}\n\n/*\nNo need to show a focus border since it's obvious from the shading, and there's a .dj_a11y .dijitMenuItemSelected\nrule below that handles the high contrast case when there's no shading.\nHiding the focus border also works around webkit bug https://code.google.com/p/chromium/issues/detail?id=125779.\n*/\n.dijitMenuItem:focus {\n\toutline: none\n}\n\n.dijitMenuPassive .dijitMenuItemHover,\n.dijitMenuItemSelected {\n\t/*\n\t * dijitMenuItemHover refers to actual mouse over\n\t * dijitMenuItemSelected is used after a menu has been \"activated\" by\n\t * clicking it, tabbing into it, or being opened from a parent menu,\n\t * and denotes that the menu item has focus or that focus is on a child\n\t * menu\n\t */\n\tbackground-color:black;\n\tcolor:white;\n}\n\n.dijitMenuItemIcon, .dijitMenuExpand {\n\tbackground-repeat: no-repeat;\n}\n\n.dijitMenuItemDisabled * {\n\t/* for a disabled menu item, just set it to mostly transparent */\n\topacity:0.5;\n\tcursor:default;\n}\n.dj_ie .dj_a11y .dijitMenuItemDisabled,\n.dj_ie .dj_a11y .dijitMenuItemDisabled *,\n.dj_ie .dijitMenuItemDisabled * {\n\tcolor: gray;\n\tfilter: alpha(opacity=35);\n}\n\n.dijitMenuItemLabel {\n\tvertical-align: middle;\n}\n\n.dj_a11y .dijitMenuItemSelected {\n\tborder: 1px dotted black !important;\t/* for 2.0 use outline instead, to prevent jitter */\n}\n\n.dj_a11y .dijitMenuItemSelected .dijitMenuItemLabel {\n\tborder-width: 1px;\n\tborder-style: solid;\n}\n.dj_ie8 .dj_a11y .dijitMenuItemLabel {\n\tposition:static;\n}\n\n.dijitMenuExpandA11y {\n\tdisplay: none;\n}\n.dj_a11y .dijitMenuExpandA11y {\n\tdisplay: inline;\n}\n\n.dijitMenuSeparator td {\n\tborder: 0;\n\tpadding: 0;\n}\n\n/* separator can be two pixels -- set border of either one to 0 to have only one */\n.dijitMenuSeparatorTop {\n\theight: 50%;\n\tmargin: 0;\n\tmargin-top:3px;\n\tfont-size: 1px;\n}\n\n.dijitMenuSeparatorBottom {\n\theight: 50%;\n\tmargin: 0;\n\tmargin-bottom:3px;\n\tfont-size: 1px;\n}\n\n/* CheckedMenuItem and RadioMenuItem */\n.dijitMenuItemIconChar {\n\tdisplay: none;\t\t/* don't display except in high contrast mode */\n\tvisibility: hidden;\t/* for high contrast mode when menuitem is unchecked: leave space for when it is checked */\n}\n.dj_a11y .dijitMenuItemIconChar {\n\tdisplay: inline;\t/* display character in high contrast mode, since icon doesn't show */\n}\n.dijitCheckedMenuItemChecked .dijitMenuItemIconChar,\n.dijitRadioMenuItemChecked .dijitMenuItemIconChar {\n\tvisibility: visible; /* menuitem is checked */\n}\n.dj_ie .dj_a11y .dijitMenuBar .dijitMenuItem {\n\t/* so bottom border of MenuBar appears on IE7 in high-contrast mode */\n\tmargin: 0;\n}\n\n/* StackContainer */\n\n.dijitStackController .dijitToggleButtonChecked * {\n\tcursor: default;\t/* because pressing it has no effect */\n}\n\n/***\nTabContainer\n\nMain class hierarchy:\n\n.dijitTabContainer - the whole TabContainer\n .dijitTabController / .dijitTabListContainer-top - wrapper for tab buttons, scroll buttons\n\t .dijitTabListWrapper / .dijitTabContainerTopStrip - outer wrapper for tab buttons (normal width)\n\t\t.nowrapTabStrip / .dijitTabContainerTop-tabs - inner wrapper for tab buttons (50K width)\n .dijitTabPaneWrapper - wrapper for content panes, has all borders except the one between content and tabs\n***/\n\n.dijitTabContainer {\n z-index: 0; /* so z-index settings below have no effect outside of the TabContainer */\n overflow: visible; /* prevent off-by-one-pixel errors from hiding bottom border (opposite tab labels) */\n}\n.dj_ie6 .dijitTabContainer {\n /* workaround IE6 problem when tall content overflows TabContainer, see editor/test_FullScreen.html */\n overflow: hidden;\n\n}\n.dijitTabContainerNoLayout {\n\twidth: 100%;\t/* otherwise ScrollingTabController goes to 50K pixels wide */\n}\n\n.dijitTabContainerBottom-tabs,\n.dijitTabContainerTop-tabs,\n.dijitTabContainerLeft-tabs,\n.dijitTabContainerRight-tabs {\n z-index: 1;\n\toverflow: visible !important; /* so tabs can cover up border adjacent to container */\n}\n\n.dijitTabController {\n z-index: 1;\n}\n.dijitTabContainerBottom-container,\n.dijitTabContainerTop-container,\n.dijitTabContainerLeft-container,\n.dijitTabContainerRight-container {\n\tz-index:0;\n\toverflow: hidden;\n\tborder: 1px solid black;\n}\n.nowrapTabStrip {\n\twidth: 50000px;\n\tdisplay: block;\n\tposition: relative;\n text-align: left; /* just in case ancestor has non-standard setting */\n z-index: 1;\n}\n.dijitTabListWrapper {\n\toverflow: hidden;\n z-index: 1;\n}\n\n.dj_a11y .tabStripButton img {\n\t/* hide the icons (or rather the empty space where they normally appear) because text will appear instead */\n\tdisplay: none;\n}\n\n.dijitTabContainerTop-tabs {\n\tborder-bottom: 1px solid black;\n}\n.dijitTabContainerTop-container {\n\tborder-top: 0;\n}\n\n.dijitTabContainerLeft-tabs {\n\tborder-right: 1px solid black;\n\tfloat: left; /* needed for IE7 RTL mode */\n}\n.dijitTabContainerLeft-container {\n\tborder-left: 0;\n}\n\n.dijitTabContainerBottom-tabs {\n\tborder-top: 1px solid black;\n}\n.dijitTabContainerBottom-container {\n\tborder-bottom: 0;\n}\n\n.dijitTabContainerRight-tabs {\n\tborder-left: 1px solid black;\n\tfloat: left; /* needed for IE7 RTL mode */\n}\n.dijitTabContainerRight-container {\n\tborder-right: 0;\n}\n\ndiv.dijitTabDisabled, .dj_ie div.dijitTabDisabled {\n\tcursor: auto;\n}\n\n.dijitTab {\n\tposition:relative;\n\tcursor:pointer;\n\t-webkit-tap-highlight-color: transparent;\n\twhite-space:nowrap;\n\tz-index:3;\n}\n.dijitTab * {\n\t/* make tab icons and close icon line up w/text */\n\tvertical-align: middle;\n}\n.dijitTabChecked {\n\tcursor: default;\t/* because clicking will have no effect */\n}\n\n.dijitTabContainerTop-tabs .dijitTab {\n\ttop: 1px;\t/* to overlap border on .dijitTabContainerTop-tabs */\n}\n.dijitTabContainerBottom-tabs .dijitTab {\n\ttop: -1px;\t/* to overlap border on .dijitTabContainerBottom-tabs */\n}\n.dijitTabContainerLeft-tabs .dijitTab {\n\tleft: 1px;\t/* to overlap border on .dijitTabContainerLeft-tabs */\n}\n.dijitTabContainerRight-tabs .dijitTab {\n\tleft: -1px;\t/* to overlap border on .dijitTabContainerRight-tabs */\n}\n\n\n.dijitTabContainerTop-tabs .dijitTab,\n.dijitTabContainerBottom-tabs .dijitTab {\n\t/* Inline-block */\n\tdisplay:inline-block;\t\t\t/* webkit and FF3 */\n}\n\n.tabStripButton {\n\tz-index: 12;\n}\n\n.dijitTabButtonDisabled .tabStripButton {\n\tdisplay: none;\n}\n\n\n.dijitTabCloseButton {\n\tmargin-left: 1em;\n}\n\n.dijitTabCloseText {\n\tdisplay:none;\n}\n\n.dijitTab .tabLabel {\n\t/* make sure tabs w/close button and w/out close button are same height, even w/small (<15px) font.\n\t * assumes <=15px height for close button icon.\n\t */\n\tmin-height: 15px;\n\tdisplay: inline-block;\n}\n.dijitNoIcon {\n\t/* applied to / node when there is no icon specified */\n\tdisplay: none;\n}\n.dj_ie6 .dijitTab .dijitNoIcon {\n\t/* because min-height (on .tabLabel, above) doesn't work on IE6 */\n\tdisplay: inline;\n\theight: 15px;\n\twidth: 1px;\n}\n\n/* images off, high-contrast mode styles */\n\n.dj_a11y .dijitTabCloseButton {\n\tbackground-image: none !important;\n\twidth: auto !important;\n\theight: auto !important;\n}\n\n.dj_a11y .dijitTabCloseText {\n\tdisplay: inline;\n}\n\n.dijitTabPane,\n.dijitStackContainer-child,\n.dijitAccordionContainer-child {\n\t/* children of TabContainer, StackContainer, and AccordionContainer shouldn't have borders\n\t * b/c a border is already there from the TabContainer/StackContainer/AccordionContainer itself.\n\t */\n border: none !important;\n}\n\n/* InlineEditBox */\n.dijitInlineEditBoxDisplayMode {\n\tborder: 1px solid transparent;\t/* so keyline (border) on hover can appear without screen jump */\n\tcursor: text;\n}\n\n.dj_a11y .dijitInlineEditBoxDisplayMode,\n.dj_ie6 .dijitInlineEditBoxDisplayMode {\n\t/* except that IE6 doesn't support transparent borders, nor does high contrast mode */\n\tborder: none;\n}\n\n.dijitInlineEditBoxDisplayModeHover,\n.dj_a11y .dijitInlineEditBoxDisplayModeHover,\n.dj_ie6 .dijitInlineEditBoxDisplayModeHover {\n\t/* An InlineEditBox in view mode (click this to edit the text) */\n\tbackground-color: #e2ebf2;\n\tborder: solid 1px black;\n}\n\n.dijitInlineEditBoxDisplayModeDisabled {\n\tcursor: default;\n}\n\n/* Tree */\n.dijitTree {\n\toverflow: auto;\t/* for scrollbars when Tree has a height setting, and to prevent wrapping around float elements, see #11491 */\n\t-webkit-tap-highlight-color: transparent;\n}\n\n.dijitTreeContainer {\n\tfloat: left;\t/* for correct highlighting during horizontal scroll, see #16132 */\n}\n\n.dijitTreeIndent {\n\t/* amount to indent each tree node (relative to parent node) */\n\twidth: 19px;\n}\n\n.dijitTreeRow, .dijitTreeContent {\n\twhite-space: nowrap;\n}\n\n.dj_ie .dijitTreeLabel:focus {\n\t/* workaround IE9 behavior where down arrowing through TreeNodes doesn't show focus outline */\n\toutline: 1px dotted black;\n}\n\n.dijitTreeRow img {\n\t/* make the expando and folder icons line up with the label */\n\tvertical-align: middle;\n}\n\n.dijitTreeContent {\n cursor: default;\n}\n\n.dijitExpandoText {\n\tdisplay: none;\n}\n\n.dj_a11y .dijitExpandoText {\n\tdisplay: inline;\n\tpadding-left: 10px;\n\tpadding-right: 10px;\n\tfont-family: monospace;\n\tborder-style: solid;\n\tborder-width: thin;\n\tcursor: pointer;\n}\n\n.dijitTreeLabel {\n\tmargin: 0 4px;\n}\n\n/* Dialog */\n\n.dijitDialog {\n\tposition: absolute;\n\tz-index: 999;\n\toverflow: hidden;\t/* override overflow: auto; from ContentPane to make dragging smoother */\n}\n\n.dijitDialogTitleBar {\n\tcursor: move;\n}\n.dijitDialogFixed .dijitDialogTitleBar {\n\tcursor:default;\n}\n.dijitDialogCloseIcon {\n\tcursor: pointer;\n\t-webkit-tap-highlight-color: transparent;\n}\n.dijitDialogPaneContent {\n\t-webkit-overflow-scrolling: touch;\n}\n.dijitDialogUnderlayWrapper {\n\tposition: absolute;\n\tleft: 0;\n\ttop: 0;\n\tz-index: 998;\n\tdisplay: none;\n\tbackground: transparent !important;\n}\n\n.dijitDialogUnderlay {\n\tbackground: #eee;\n\topacity: 0.5;\n}\n\n.dj_ie .dijitDialogUnderlay {\n\tfilter: alpha(opacity=50);\n}\n\n/* images off, high-contrast mode styles */\n.dj_a11y .dijitSpinnerButtonContainer,\n.dj_a11y .dijitDialog {\n\topacity: 1 !important;\n\tbackground-color: white !important;\n}\n\n.dijitDialog .closeText {\n\tdisplay:none;\n\t/* for the onhover border in high contrast on IE: */\n\tposition:absolute;\n}\n\n.dj_a11y .dijitDialog .closeText {\n\tdisplay:inline;\n}\n\n/* Slider */\n\n.dijitSliderMoveable {\n\tz-index:99;\n\tposition:absolute !important;\n\tdisplay:block;\n\tvertical-align:middle;\n}\n\n.dijitSliderMoveableH {\n\tright:0;\n}\n.dijitSliderMoveableV {\n\tright:50%;\n}\n\n.dj_a11y div.dijitSliderImageHandle,\n.dijitSliderImageHandle {\n\tmargin:0;\n\tpadding:0;\n\tposition:relative !important;\n\tborder:8px solid gray;\n\twidth:0;\n\theight:0;\n\tcursor: pointer;\n\t-webkit-tap-highlight-color: transparent;\n}\n.dj_iequirks .dj_a11y .dijitSliderImageHandle {\n\tfont-size: 0;\n}\n.dj_ie7 .dijitSliderImageHandle {\n\toverflow: hidden; /* IE7 workaround to make slider handle VISIBLE in non-a11y mode */\n}\n.dj_ie7 .dj_a11y .dijitSliderImageHandle {\n\toverflow: visible; /* IE7 workaround to make slider handle VISIBLE in a11y mode */\n}\n.dj_a11y .dijitSliderFocused .dijitSliderImageHandle {\n\tborder:4px solid #000;\n\theight:8px;\n\twidth:8px;\n}\n\n.dijitSliderImageHandleV {\n\ttop:-8px;\n\tright: -50%;\n}\n\n.dijitSliderImageHandleH {\n\tleft:50%;\n\ttop:-5px;\n\tvertical-align:top;\n}\n\n.dijitSliderBar {\n\tborder-style:solid;\n\tborder-color:black;\n\tcursor: pointer;\n\t-webkit-tap-highlight-color: transparent;\n}\n\n.dijitSliderBarContainerV {\n\tposition:relative;\n\theight:100%;\n\tz-index:1;\n}\n\n.dijitSliderBarContainerH {\n\tposition:relative;\n\tz-index:1;\n}\n\n.dijitSliderBarH {\n\theight:4px;\n\tborder-width:1px 0;\n}\n\n.dijitSliderBarV {\n\twidth:4px;\n\tborder-width:0 1px;\n}\n\n.dijitSliderProgressBar {\n\tbackground-color:red;\n\tz-index:1;\n}\n\n.dijitSliderProgressBarV {\n\tposition:static !important;\n\theight:0;\n\tvertical-align:top;\n\ttext-align:left;\n}\n\n.dijitSliderProgressBarH {\n\tposition:absolute !important;\n\twidth:0;\n\tvertical-align:middle;\n\toverflow:visible;\n}\n\n.dijitSliderRemainingBar {\n\toverflow:hidden;\n\tbackground-color:transparent;\n\tz-index:1;\n}\n\n.dijitSliderRemainingBarV {\n\theight:100%;\n\ttext-align:left;\n}\n\n.dijitSliderRemainingBarH {\n\twidth:100% !important;\n}\n\n/* the slider bumper is the space consumed by the slider handle when it hangs over an edge */\n.dijitSliderBumper {\n\toverflow:hidden;\n\tz-index:1;\n}\n\n.dijitSliderBumperV {\n\twidth:4px;\n\theight:8px;\n\tborder-width:0 1px;\n}\n\n.dijitSliderBumperH {\n\twidth:8px;\n\theight:4px;\n\tborder-width:1px 0;\n}\n\n.dijitSliderBottomBumper,\n.dijitSliderLeftBumper {\n\tbackground-color:red;\n}\n\n.dijitSliderTopBumper,\n.dijitSliderRightBumper {\n\tbackground-color:transparent;\n}\n\n.dijitSliderDecoration {\n\ttext-align:center;\n}\n\n.dijitSliderDecorationC,\n.dijitSliderDecorationV {\n\tposition: relative; /* needed for IE+quirks+RTL+vertical (rendering bug) but add everywhere for custom styling consistency but this messes up IE horizontal sliders */\n}\n\n.dijitSliderDecorationH {\n\twidth: 100%;\n}\n\n.dijitSliderDecorationV {\n\theight: 100%;\n\twhite-space: nowrap;\n}\n\n.dijitSliderButton {\n\tfont-family:monospace;\n\tmargin:0;\n\tpadding:0;\n\tdisplay:block;\n}\n\n.dj_a11y .dijitSliderButtonInner {\n\tvisibility:visible !important;\n}\n\n.dijitSliderButtonContainer {\n\ttext-align:center;\n\theight:0;\t/* ??? */\n}\n.dijitSliderButtonContainer * {\n\tcursor: pointer;\n\t-webkit-tap-highlight-color: transparent;\n}\n\n.dijitSlider .dijitButtonNode {\n\tpadding:0;\n\tdisplay:block;\n}\n\n.dijitRuleContainer {\n\tposition:relative;\n\toverflow:visible;\n}\n\n.dijitRuleContainerV {\n\theight:100%;\n\tline-height:0;\n\tfloat:left;\n\ttext-align:left;\n}\n\n.dj_opera .dijitRuleContainerV {\n\tline-height:2%;\n}\n\n.dj_ie .dijitRuleContainerV {\n\tline-height:normal;\n}\n\n.dj_gecko .dijitRuleContainerV {\n\tmargin:0 0 1px 0; /* mozilla bug workaround for float:left,height:100% block elements */\n}\n\n.dijitRuleMark {\n\tposition:absolute;\n\tborder:1px solid black;\n\tline-height:0;\n\theight:100%;\n}\n\n.dijitRuleMarkH {\n\twidth:0;\n\tborder-top-width:0 !important;\n\tborder-bottom-width:0 !important;\n\tborder-left-width:0 !important;\n}\n\n.dijitRuleLabelContainer {\n\tposition:absolute;\n}\n\n.dijitRuleLabelContainerH {\n\ttext-align:center;\n\tdisplay:inline-block;\n}\n\n.dijitRuleLabelH {\n\tposition:relative;\n\tleft:-50%;\n}\n\n.dijitRuleLabelV {\n\t/* so that long labels don't overflow to multiple rows, or overwrite slider itself */\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n\toverflow: hidden;\n}\n\n.dijitRuleMarkV {\n\theight:0;\n\tborder-right-width:0 !important;\n\tborder-bottom-width:0 !important;\n\tborder-left-width:0 !important;\n\twidth:100%;\n\tleft:0;\n}\n\n.dj_ie .dijitRuleLabelContainerV {\n\tmargin-top:-.55em;\n}\n\n.dj_a11y .dijitSliderReadOnly,\n.dj_a11y .dijitSliderDisabled {\n\topacity:0.6;\n}\n.dj_ie .dj_a11y .dijitSliderReadOnly .dijitSliderBar,\n.dj_ie .dj_a11y .dijitSliderDisabled .dijitSliderBar {\n\tfilter: alpha(opacity=40);\n}\n\n/* + and - Slider buttons: override theme settings to display icons */\n.dj_a11y .dijitSlider .dijitSliderButtonContainer div {\n\tfont-family: monospace; /* otherwise hyphen is larger and more vertically centered */\n\tfont-size: 1em;\n\tline-height: 1em;\n\theight: auto;\n\twidth: auto;\n\tmargin: 0 4px;\n}\n\n/* Icon-only buttons (often in toolbars) still display the text in high-contrast mode */\n.dj_a11y .dijitButtonContents .dijitButtonText,\n.dj_a11y .dijitTab .tabLabel {\n\tdisplay: inline !important;\n}\n.dj_a11y .dijitSelect .dijitButtonText {\n\tdisplay: inline-block !important;\n}\n\n/* TextArea, SimpleTextArea */\n.dijitTextArea {\n\twidth:100%;\n\toverflow-y: auto;\t/* w/out this IE's SimpleTextArea goes to overflow: scroll */\n}\n.dijitTextArea[cols] {\n\twidth:auto; /* SimpleTextArea cols */\n}\n.dj_ie .dijitTextAreaCols {\n\twidth:auto;\n}\n\n.dijitExpandingTextArea {\n\t/* for auto exanding textarea (called Textarea currently, rename for 2.0) don't want to display the grip to resize */\n\tresize: none;\n}\n\n\n/* Toolbar\n * Note that other toolbar rules (for objects in toolbars) are scattered throughout this file.\n */\n\n.dijitToolbarSeparator {\n\theight: 18px;\n\twidth: 5px;\n\tpadding: 0 1px;\n\tmargin: 0;\n}\n\n/* Editor */\n.dijitIEFixedToolbar {\n\tposition:absolute;\n\t/* top:0; */\n\ttop: expression(eval((document.documentElement||document.body).scrollTop));\n}\n\n.dijitEditor {\n\tdisplay: block;\t/* prevents glitch on FF with InlineEditBox, see #8404 */\n}\n\n.dijitEditorDisabled,\n.dijitEditorReadOnly {\n\tcolor: gray;\n}\n\n/* TimePicker */\n\n.dijitTimePicker {\n\tbackground-color: white;\n}\n.dijitTimePickerItem {\n\tcursor:pointer;\n\t-webkit-tap-highlight-color: transparent;\n}\n.dijitTimePickerItemHover {\n\tbackground-color:gray;\n\tcolor:white;\n}\n.dijitTimePickerItemSelected {\n\tfont-weight:bold;\n\tcolor:#333;\n\tbackground-color:#b7cdee;\n}\n.dijitTimePickerItemDisabled {\n\tcolor:gray;\n\ttext-decoration:line-through;\n}\n\n.dijitTimePickerItemInner {\n\ttext-align:center;\n\tborder:0;\n\tpadding:2px 8px 2px 8px;\n}\n\n.dijitTimePickerTick,\n.dijitTimePickerMarker {\n\tborder-bottom:1px solid gray;\n}\n\n.dijitTimePicker .dijitDownArrowButton {\n\tborder-top: none !important;\n}\n\n.dijitTimePickerTick {\n\tcolor:#CCC;\n}\n\n.dijitTimePickerMarker {\n\tcolor:black;\n\tbackground-color:#CCC;\n}\n\n.dj_a11y .dijitTimePickerItemSelected .dijitTimePickerItemInner {\n\tborder: solid 4px black;\n}\n.dj_a11y .dijitTimePickerItemHover .dijitTimePickerItemInner {\n\tborder: dashed 4px black;\n}\n\n\n.dijitToggleButtonIconChar {\n\t/* character (instead of icon) to show that ToggleButton is checked */\n\tdisplay:none !important;\n}\n.dj_a11y .dijitToggleButton .dijitToggleButtonIconChar {\n\tdisplay:inline !important;\n\tvisibility:hidden;\n}\n.dj_ie6 .dijitToggleButtonIconChar, .dj_ie6 .tabStripButton .dijitButtonText {\n\tfont-family: \"Arial Unicode MS\";\t/* otherwise the a11y character (checkmark, arrow, etc.) appears as a box */\n}\n.dj_a11y .dijitToggleButtonChecked .dijitToggleButtonIconChar {\n\tdisplay: inline !important; /* In high contrast mode, display the check symbol */\n\tvisibility:visible !important;\n}\n\n.dijitArrowButtonChar {\n\tdisplay:none !important;\n}\n.dj_a11y .dijitArrowButtonChar {\n\tdisplay:inline !important;\n}\n\n.dj_a11y .dijitDropDownButton .dijitArrowButtonInner,\n.dj_a11y .dijitComboButton .dijitArrowButtonInner {\n\tdisplay:none !important;\n}\n\n/* Select */\n.dj_a11y .dijitSelect {\n\tborder-collapse: separate !important;\n\tborder-width: 1px;\n\tborder-style: solid;\n}\n.dj_ie .dijitSelect {\n\tvertical-align: middle; /* Set this back for what we hack in dijit inline */\n}\n.dj_ie6 .dijitSelect .dijitValidationContainer,\n.dj_ie8 .dijitSelect .dijitButtonText {\n\tvertical-align: top;\n}\n.dj_ie6 .dijitTextBox .dijitInputContainer,\n.dj_iequirks .dijitTextBox .dijitInputContainer,\n.dj_ie6 .dijitTextBox .dijitArrowButtonInner,\n.dj_ie6 .dijitSpinner .dijitSpinnerButtonInner,\n.dijitSelect .dijitSelectLabel {\n\tvertical-align: baseline;\n}\n\n.dijitNumberTextBox {\n\ttext-align: left;\n\tdirection: ltr;\n}\n\n.dijitNumberTextBox .dijitInputInner {\n\ttext-align: inherit; /* input */\n}\n\n.dijitNumberTextBox input.dijitInputInner,\n.dijitCurrencyTextBox input.dijitInputInner,\n.dijitSpinner input.dijitInputInner {\n\ttext-align: right;\n}\n\n.dj_ie8 .dijitNumberTextBox input.dijitInputInner, .dj_ie9 .dijitNumberTextBox input.dijitInputInner,\n.dj_ie8 .dijitCurrencyTextBox input.dijitInputInner, .dj_ie9 .dijitCurrencyTextBox input.dijitInputInner,\n.dj_ie8 .dijitSpinner input.dijitInputInner, .dj_ie9 .dijitSpinner input.dijitInputInner {\n\t/* workaround bug where caret invisible in empty textboxes */\n\tpadding-right: 1px !important;\n}\n\n.dijitToolbar .dijitSelect {\n\tmargin: 0;\n}\n.dj_webkit .dijitToolbar .dijitSelect {\n\tpadding-left: 0.3em;\n}\n.dijitSelect .dijitButtonContents {\n\tpadding: 0;\n\twhite-space: nowrap;\n\ttext-align: left;\n\tborder-style: none solid none none;\n\tborder-width: 1px;\n}\n.dijitSelectFixedWidth .dijitButtonContents {\n\twidth: 100%;\n}\n\n.dijitSelectMenu .dijitMenuItemIcon {\n\t/* avoid blank area in left side of menu (since we have no icons) */\n\tdisplay:none;\n}\n.dj_ie6 .dijitSelectMenu .dijitMenuItemLabel,\n.dj_ie7 .dijitSelectMenu .dijitMenuItemLabel {\n\t/* Set back to static due to bug in ie6/ie7 - See Bug #9651 */\n\tposition: static;\n}\n\n/* Fix the baseline of our label (for multi-size font elements) */\n.dijitSelectLabel *\n{\n\tvertical-align: baseline;\n}\n\n/* Styling for the currently-selected option (rich text can mess this up) */\n.dijitSelectSelectedOption * {\n\tfont-weight: bold;\n}\n\n/* Fix the styling of the dropdown menu to be more combobox-like */\n.dijitSelectMenu {\n\tborder-width: 1px;\n}\n\n/* Used in cases, such as FullScreen plugin, when we need to force stuff to static positioning. */\n.dijitForceStatic {\n\tposition: static !important;\n}\n\n/**** Disabled cursor *****/\n.dijitReadOnly *,\n.dijitDisabled *,\n.dijitReadOnly,\n.dijitDisabled {\n\t/* a region the user would be able to click on, but it's disabled */\n\tcursor: default;\n}\n\n/* Drag and Drop */\n.dojoDndItem {\n padding: 2px; /* will be replaced by border during drag over (dojoDndItemBefore, dojoDndItemAfter) */\n\n\t/* Prevent magnifying-glass text selection icon to appear on mobile webkit as it causes a touchout event */\n\t-webkit-touch-callout: none;\n\t-webkit-user-select: none; /* Disable selection/Copy of UIWebView */\n}\n.dojoDndHorizontal .dojoDndItem {\n /* make contents of horizontal container be side by side, rather than vertical */\n display: inline-block;\n}\n\n.dojoDndItemBefore,\n.dojoDndItemAfter {\n\tborder: 0px solid #369;\n}\n.dojoDndItemBefore {\n border-width: 2px 0 0 0;\n padding: 0 2px 2px 2px;\n}\n.dojoDndItemAfter {\n border-width: 0 0 2px 0;\n padding: 2px 2px 0 2px;\n}\n.dojoDndHorizontal .dojoDndItemBefore {\n border-width: 0 0 0 2px;\n padding: 2px 2px 2px 0;\n}\n.dojoDndHorizontal .dojoDndItemAfter {\n border-width: 0 2px 0 0;\n padding: 2px 0 2px 2px;\n}\n\n.dojoDndItemOver {\n\tcursor:pointer;\n}\n.dj_gecko .dijitArrowButtonInner INPUT,\n.dj_gecko INPUT.dijitArrowButtonInner {\n\t-moz-user-focus:ignore;\n}\n.dijitFocused .dijitMenuItemShortcutKey {\n\ttext-decoration: underline;\n}\n\n/* Dijit custom styling */\n.dijitBorderContainer {\n height: 350px;\n}\n.dijitTooltipContainer {\n background: #fff;\n border: 1px solid #ccc;\n border-radius: 6px;\n}\n.dijitContentPane {\n box-sizing: content-box;\n overflow: auto !important; /* Widgets like the data grid pass their scroll\n offset to the parent if there is not enough room to display a scroll bar\n in the widget itself, so do not hide the overflow. */\n}\n\n/* Global Bootstrap changes */\n\n/* Client defaults and helpers */\n.mx-dataview-content, .mx-scrollcontainer-wrapper:not(.mx-scrollcontainer-nested), .mx-tabcontainer-content, .mx-grid-content {\n -webkit-overflow-scrolling: touch;\n}\nhtml, body, #content {\n height: 100%;\n}\n#content > .mx-page {\n width: 100%;\n min-height: 100%;\n}\n\n.mx-left-aligned {\n text-align: left;\n}\n.mx-right-aligned {\n text-align: right;\n}\n.mx-center-aligned {\n text-align: center;\n}\n\n.mx-table {\n width: 100%;\n}\n.mx-table th,\n.mx-table td {\n padding: 8px;\n vertical-align: top;\n}\n.mx-table th.nopadding,\n.mx-table td.nopadding {\n\tpadding: 0;\n}\n\n.mx-offscreen {\n /* When position relative is not set IE doesn't properly render when this class is removed\n * with the effect that elements are not displayed or are not clickable.\n */\n position: relative;\n height: 0;\n overflow: hidden;\n}\n\n.mx-ie-event-shield {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: -1;\n}\n\n.mx-swipe-navigation-progress {\n position: absolute;\n height: 54px;\n width: 54px;\n top: calc(50% - 27px);\n left: calc(50% - 27px);\n background: url(data:image/gif;base64,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);\n}\n\n\n/* Bacause we use checkboxes without labels, align them with other widgets. */\ninput[type=\"checkbox\"] {\n margin: 9px 0;\n}\n\n.mx-checkbox input[type=\"checkbox\"] {\n margin-left: 0;\n margin-right: 8px;\n position: static;\n}\n\n.form-vertical .form-group.mx-checkbox input[type=\"checkbox\"] {\n display: block;\n}\n\n.form-vertical .form-group.mx-checkbox.label-after input[type=\"checkbox\"] {\n display: inline-block;\n}\n\n.form-horizontal .form-group.no-columns {\n padding-left: 15px;\n padding-right: 15px;\n}\n\n.mx-radiobuttons.inline .radio {\n display: inline-block;\n margin-right: 20px;\n}\n\n.mx-radiobuttons .radio input[type=\"radio\"] {\n /* Reset bootstrap rules */\n position: static;\n margin-right: 8px;\n margin-left: 0;\n}\n\n.mx-radiobuttons .radio label {\n /* Reset bootstrap rules */\n padding-left: 0;\n}\n\n.alert {\n margin-top: 8px;\n margin-bottom: 10px;\n white-space: pre-line;\n}\n\n.mx-compound-control {\n display: flex;\n}\n\n.mx-compound-control button {\n margin-left: 5px;\n}\n\n[dir=\"rtl\"] .mx-compound-control button {\n margin-left: 0;\n margin-right: 5px;\n}\n\n.mx-tooltip {\n margin: 10px;\n}\n.mx-tooltip-content {\n width: 400px;\n overflow-y: auto;\n}\n.mx-tooltip-prepare {\n height: 24px;\n padding: 8px;\n background: transparent url(data:image/gif;base64,R0lGODlhGAAYAMQdAKXZ8nfF64TL7QuX3Fe45zaq4hOb3fL6/fr9/rri9dXt+ZrU8Cym4Umy5cHl9uPz+2K86Oj1/Nzw+rDd9M3q+JDQ72rA6iOi3+34/ECu48jo9x2f3gWV2////wAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQwIDc5LjE2MDQ1MSwgMjAxNy8wNS8wNi0wMTowODoyMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RUJFNkU4NEZCNEVDMTFFODk3MDBBNUU1RUM4Qjg3QTUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RUJFNkU4NTBCNEVDMTFFODk3MDBBNUU1RUM4Qjg3QTUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpFQkU2RTg0REI0RUMxMUU4OTcwMEE1RTVFQzhCODdBNSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpFQkU2RTg0RUI0RUMxMUU4OTcwMEE1RTVFQzhCODdBNSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6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) no-repeat scroll center center;\n}\n.mx-tooltip-content .table th,\n.mx-tooltip-content .table td {\n padding: 2px 8px;\n}\n\n.mx-tabcontainer-pane {\n height: 100%;\n}\n.mx-tabcontainer-content.loading {\n min-height: 48px;\n background: url(data:image/gif;base64,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) no-repeat center center;\n background-size: 32px 32px;\n}\n.mx-tabcontainer-tabs {\n margin-bottom: 8px;\n}\n.mx-tabcontainer-tabs li {\n position: relative;\n}\n.mx-tabcontainer-indicator {\n position: absolute;\n background: #f2dede;\n border-radius: 8px;\n color: #b94a48;\n top: 0px;\n right: -5px;\n width: 16px;\n height: 16px;\n line-height: 16px;\n text-align: center;\n vertical-align: middle;\n font-size: 10px;\n font-weight: 600;\n z-index: 1; /* indicator should not hide behind other tab */\n}\n\n/* base structure */\n.mx-grid {\n padding: 8px;\n overflow: hidden; /* to prevent any margin from escaping grid and foobaring our size calculations */\n}\n.mx-grid-controlbar, .mx-grid-searchbar {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n}\n.mx-grid-controlbar .mx-button,\n.mx-grid-search-controls .mx-button {\n margin-bottom: 8px;\n}\n\n.mx-grid-search-controls .mx-button + .mx-button,\n.mx-grid-controlbar .mx-button + .mx-button {\n margin-left: 0.3em;\n}\n\n[dir=\"rtl\"] .mx-grid-search-controls .mx-button + .mx-button,\n[dir=\"rtl\"] .mx-grid-controlbar .mx-button + .mx-button {\n margin-left: 0;\n margin-right: 0.3em;\n}\n\n.mx-grid-pagingbar,\n.mx-grid-search-controls {\n display: flex;\n white-space: nowrap;\n align-items: baseline;\n margin-left: auto;\n}\n\n.mx-grid-toolbar, .mx-grid-search-inputs {\n margin-right: 5px;\n flex: 1;\n}\n\n[dir=\"rtl\"] .mx-grid-toolbar,\n[dir=\"rtl\"] .mx-grid-search-inputs {\n margin-left: 5px;\n margin-right: 0px;\n}\n[dir=\"rtl\"] .mx-grid-pagingbar,\n[dir=\"rtl\"] .mx-grid-search-controls {\n margin-left: 0px;\n margin-right: auto;\n}\n\n.mx-grid-paging-status {\n padding: 0 8px 5px;\n}\n\n/* search fields */\n.mx-grid-search-item {\n display: inline-block;\n vertical-align: top;\n margin-bottom: 8px;\n}\n.mx-grid-search-label {\n width: 110px;\n padding: 0 5px;\n text-align: right;\n display: inline-block;\n vertical-align: top;\n overflow: hidden;\n}\n[dir=\"rtl\"] .mx-grid-search-label {\n text-align: left;\n}\n.mx-grid-search-input {\n width: 150px;\n padding: 0 5px;\n display: inline-block;\n vertical-align: top;\n}\n.mx-grid-search-message {\n flex-basis: 100%;\n}\n\n/* widget combinations */\n.mx-dataview .mx-grid {\n border: 1px solid #ddd;\n border-radius: 3px;\n}\n\n.mx-calendar {\n z-index: 1000;\n}\n\n.mx-calendar-month-dropdown-options {\n position: absolute;\n}\n\n.mx-calendar, .mx-calendar-month-dropdown {\n user-select: none;\n}\n\n.mx-calendar-month-current {\n display: inline-block;\n}\n\n.mx-calendar-month-spacer {\n position: relative;\n height: 0px;\n overflow: hidden;\n visibility: hidden;\n}\n\n.mx-calendar, .mx-calendar-month-dropdown-options {\n border: 1px solid lightgrey;\n background-color: white;\n}\n\n.mx-datagrid tr {\n cursor: pointer;\n}\n\n.mx-datagrid tr.mx-datagrid-row-empty {\n cursor: default;\n}\n\n.mx-datagrid table {\n width: 100%;\n max-width: 100%;\n table-layout: fixed;\n margin-bottom: 0;\n}\n\n.mx-datagrid th, .mx-datagrid td {\n padding: 8px;\n line-height: 1.42857143;\n vertical-align: bottom;\n border: 1px solid #ddd;\n}\n\n/* head */\n.mx-datagrid th {\n position: relative; /* Required for the positioning of the column resizers */\n border-bottom-width: 2px;\n}\n.mx-datagrid-head-caption {\n overflow: hidden;\n white-space: nowrap;\n}\n.mx-datagrid-sort-icon {\n float: right;\n padding-left: 5px;\n}\n[dir=\"rtl\"] .mx-datagrid-sort-icon {\n float: left;\n padding: 0 5px 0 0;\n}\n.mx-datagrid-column-resizer {\n position: absolute;\n top: 0;\n left: -6px;\n width: 10px;\n height: 100%;\n cursor: col-resize;\n}\n[dir=\"rtl\"] .mx-datagrid-column-resizer {\n left: auto;\n right: -6px;\n}\n\n/* body */\n.mx-datagrid tbody tr:first-child td {\n border-top: none;\n}\n//.mx-datagrid tbody tr:nth-child(2n+1) td {\n// background-color: #f9f9f9;\n//}\n.mx-datagrid tbody .selected td {\n background-color: #eee;\n}\n.mx-datagrid-data-wrapper {\n overflow: hidden;\n white-space: nowrap;\n}\n.mx-datagrid tbody img {\n max-width: 16px;\n max-height: 16px;\n}\n.mx-datagrid input,\n.mx-datagrid select,\n.mx-datagrid textarea {\n cursor: auto;\n}\n\n/* foot */\n.mx-datagrid tfoot th,\n.mx-datagrid tfoot td {\n padding: 3px 8px;\n}\n.mx-datagrid tfoot th {\n border-top: 1px solid #ddd;\n}\n.mx-datagrid.mx-content-loading .mx-content-loader {\n display: inline-block;\n width: 90%;\n animation: placeholderGradient 1s linear infinite;\n border-radius: 4px;\n background: #F5F5F5;\n background: repeating-linear-gradient(to right, #F5F5F5 0%, #F5F5F5 5%, #F9F9F9 50%, #F5F5F5 95%, #F5F5F5 100%);\n background-size: 200px 100px;\n animation-fill-mode: both;\n}\n@keyframes placeholderGradient {\n 0% { background-position: 100px 0; }\n 100% { background-position: -100px 0; }\n}\n\n.mx-datagrid-table-resizing th,\n.mx-datagrid-table-resizing td {\n cursor: col-resize !important;\n}\n\n.mx-templategrid-content-wrapper {\n display: table;\n width: 100%;\n border-collapse: collapse;\n box-sizing: border-box;\n}\n.mx-templategrid-row {\n display: table-row;\n}\n.mx-templategrid-item {\n padding: 5px;\n display: table-cell;\n border: 1px solid #ddd;\n cursor: pointer;\n box-sizing: border-box;\n}\n.mx-templategrid-empty {\n display: table-cell;\n}\n.mx-templategrid-item.selected {\n background-color: #f5f5f5;\n}\n.mx-templategrid-item .mx-table th,\n.mx-templategrid-item .mx-table td {\n padding: 2px 8px;\n}\n\n.mx-scrollcontainer-horizontal {\n width: 100%;\n display: table;\n table-layout: fixed;\n}\n.mx-scrollcontainer-horizontal > div {\n display: table-cell;\n vertical-align: top;\n}\n//.mx-scrollcontainer-wrapper {\n// padding: 10px;\n//}\n.mx-scrollcontainer-nested {\n padding: 0;\n}\n.mx-scrollcontainer-fixed > .mx-scrollcontainer-middle > .mx-scrollcontainer-wrapper,\n.mx-scrollcontainer-fixed > .mx-scrollcontainer-left > .mx-scrollcontainer-wrapper,\n.mx-scrollcontainer-fixed > .mx-scrollcontainer-center > .mx-scrollcontainer-wrapper,\n.mx-scrollcontainer-fixed > .mx-scrollcontainer-right > .mx-scrollcontainer-wrapper {\n overflow: auto;\n}\n\n.mx-scrollcontainer-move-in {\n transition: left 250ms ease-out;\n}\n.mx-scrollcontainer-move-out {\n transition: left 250ms ease-in;\n}\n.mx-scrollcontainer-shrink .mx-scrollcontainer-toggleable {\n transition-property: width;\n}\n\n.mx-scrollcontainer-toggleable {\n background-color: #fff;\n}\n//.mx-scrollcontainer-slide > .mx-scrollcontainer-toggleable > .mx-scrollcontainer-wrapper {\n// position: relative;\n// z-index: 1;\n// background-color: inherit;\n//}\n.mx-scrollcontainer-push {\n position: relative;\n}\n.mx-scrollcontainer-shrink > .mx-scrollcontainer-toggleable {\n overflow: hidden;\n}\n.mx-scrollcontainer-push.mx-scrollcontainer-open > div,\n.mx-scrollcontainer-slide.mx-scrollcontainer-open > div {\n pointer-events: none;\n}\n.mx-scrollcontainer-push.mx-scrollcontainer-open > .mx-scrollcontainer-toggleable,\n.mx-scrollcontainer-slide.mx-scrollcontainer-open > .mx-scrollcontainer-toggleable {\n pointer-events: auto;\n}\n\n.mx-navbar-item img,\n.mx-navbar-subitem img {\n height: 16px;\n}\n\n\n.mx-navigationtree .navbar-inner {\n padding-left: 0;\n padding-right: 0;\n}\n.mx-navigationtree ul {\n list-style: none;\n}\n.mx-navigationtree ul li {\n border-bottom: 1px solid #dfe6ea;\n}\n.mx-navigationtree li:last-child {\n border-style: none;\n}\n.mx-navigationtree a {\n display: block;\n padding: 5px 10px;\n color: #777;\n text-shadow: 0 1px 0 #fff;\n text-decoration: none;\n}\n.mx-navigationtree a.active {\n color: #FFF;\n text-shadow: none;\n background: #3498DB;\n border-radius: 3px;\n}\n.mx-navigationtree .mx-navigationtree-collapsed ul {\n display: none;\n}\n.mx-navigationtree ul {\n margin: 0;\n padding: 0;\n}\n.mx-navigationtree ul li {\n padding: 5px 0;\n}\n.mx-navigationtree ul li ul {\n padding: 0;\n margin-left: 10px;\n}\n.mx-navigationtree ul li ul li {\n margin-left: 8px;\n padding: 5px 0;\n}\n[dir=\"rtl\"] .mx-navigationtree ul li ul li {\n margin-left: auto;\n margin-right: 8px;\n}\n.mx-navigationtree ul li ul li ul li {\n font-size: 10px;\n padding-top: 3px;\n padding-bottom: 3px;\n}\n.mx-navigationtree ul li ul li ul li img {\n vertical-align: top;\n}\n\n.mx-link img,\n.mx-button img {\n height: 16px;\n}\n.mx-link {\n padding: 6px 12px;\n display: inline-block;\n}\n\n.mx-groupbox {\n margin-bottom: 10px;\n}\n.mx-groupbox-header {\n margin: 0;\n padding: 10px 15px;\n color: #eee;\n background: #333;\n font-size: inherit;\n line-height: inherit;\n border-radius: 4px 4px 0 0;\n}\n.mx-groupbox-collapsible > .mx-groupbox-header {\n cursor: pointer;\n}\n.mx-groupbox.collapsed > .mx-groupbox-header {\n border-radius: 4px;\n}\n.mx-groupbox-body {\n padding: 8px;\n border: 1px solid #ddd;\n border-radius: 4px;\n}\n.mx-groupbox.collapsed > .mx-groupbox-body {\n display: none;\n}\n.mx-groupbox-header + .mx-groupbox-body {\n border-top: none;\n border-radius: 0 0 4px 4px;\n}\n.mx-groupbox-collapse-icon {\n float: right;\n}\n[dir=\"rtl\"] .mx-groupbox-collapse-icon {\n float: left;\n}\n\n.mx-dataview {\n position: relative;\n}\n.mx-dataview-controls {\n padding: 19px 20px 12px;\n background-color: #f5f5f5;\n border-top: 1px solid #eee;\n}\n\n.mx-dataview-controls .mx-button {\n margin-bottom: 8px;\n}\n\n.mx-dataview-controls .mx-button + .mx-button {\n margin-left: 0.3em;\n}\n\n.mx-dataview-message {\n background: #fff;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n}\n.mx-dataview-message > div {\n display: table;\n width: 100%;\n height: 100%;\n}\n.mx-dataview-message > div > p {\n display: table-cell;\n text-align: center;\n vertical-align: middle;\n}\n\n/* Top-level data view in window is a special case, handle it as such. */\n.mx-window-view .mx-window-body {\n padding: 0;\n}\n.mx-window-view .mx-window-body > .mx-dataview > .mx-dataview-content,\n.mx-window-view .mx-window-body > .mx-placeholder > .mx-dataview > .mx-dataview-content {\n padding: 15px;\n}\n.mx-window-view .mx-window-body > .mx-dataview > .mx-dataview-controls,\n.mx-window-view .mx-window-body > .mx-placeholder > .mx-dataview > .mx-dataview-controls {\n border-radius: 0px 0px 6px 6px;\n}\n\n.mx-dialog {\n position: fixed;\n left: auto;\n right: auto;\n padding: 0;\n width: 500px;\n /* If the margin is set to auto, IE9 reports the calculated value of the\n * margin as the actual value. Other browsers will just report 0. Eliminate\n * this difference by setting margin to 0 for every browser. */\n margin: 0;\n}\n.mx-dialog-header {\n cursor: move;\n}\n.mx-dialog-body {\n overflow: auto;\n}\n\n.mx-window {\n position: fixed;\n left: auto;\n right: auto;\n padding: 0;\n width: 600px;\n /* If the margin is set to auto, IE9 reports the calculated value of the\n * margin as the actual value. Other browsers will just report 0. Eliminate\n * this difference by setting margin to 0 for every browser. */\n margin: 0;\n}\n.mx-window-content {\n height: 100%;\n overflow: hidden;\n}\n.mx-window-active .mx-window-header {\n background-color: #f5f5f5;\n border-radius: 6px 6px 0 0;\n}\n.mx-window-header {\n cursor: move;\n}\n.mx-window-body {\n overflow: auto;\n}\n\n.mx-dropdown-list * {\n cursor: pointer;\n}\n.mx-dropdown-list img {\n width: 35px;\n vertical-align: middle;\n margin-right: 10px;\n}\n[dir=\"rtl\"] .mx-dropdown-list img {\n margin-left: 10px;\n margin-right: auto;\n}\n\n.mx-dropdown-list {\n padding: 0;\n list-style: none;\n}\n.mx-dropdown-list > li {\n padding: 5px 10px 10px;\n border: 1px #ddd;\n border-style: solid solid none;\n background-color: #fff;\n}\n.mx-dropdown-list > li:first-child {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n}\n.mx-dropdown-list > li:last-child {\n border-bottom-style: solid;\n border-bottom-left-radius: 4px;\n border-bottom-right-radius: 4px;\n}\n.mx-dropdown-list-striped > li:nth-child(2n+1) {\n background: #f9f9f9;\n}\n.mx-dropdown-list > li:hover {\n background: #f5f5f5;\n}\n\n.mx-header {\n position: relative;\n padding: 9px;\n background: #333;\n text-align: center;\n}\n.mx-header-center {\n display: inline-block;\n color: #eee;\n line-height: 30px; /* height of buttons */\n}\nbody[dir=\"ltr\"] .mx-header-left,\nbody[dir=\"rtl\"] .mx-header-right {\n position: absolute;\n top: 9px;\n left: 9px;\n}\nbody[dir=\"ltr\"] .mx-header-right,\nbody[dir=\"rtl\"] .mx-header-left {\n position: absolute;\n top: 9px;\n right: 9px;\n}\n\n.mx-title {\n margin-bottom: 0px;\n margin-top: 0px;\n}\n\n.mx-listview {\n padding: 8px;\n}\n.mx-listview > ul {\n padding: 0px;\n list-style: none;\n}\n// .mx-listview > ul > li {\n// padding: 5px 10px 10px;\n// border: 1px #ddd;\n// border-style: solid solid none;\n// background-color: #fff;\n// outline: none;\n// }\n// .mx-listview > ul > li:first-child {\n// border-top-left-radius: 4px;\n// border-top-right-radius: 4px;\n// }\n// .mx-listview > ul > li:last-child {\n// border-bottom-style: solid;\n// border-bottom-left-radius: 4px;\n// border-bottom-right-radius: 4px;\n// }\n//.mx-listview li:nth-child(2n+1) {\n// background: #f9f9f9;\n//}\n//.mx-listview li:nth-child(2n+1):hover {\n// background: #f5f5f5;\n//}\n.mx-listview > ul > li.selected {\n// background: #eee;\n}\n.mx-listview-clickable > ul > li {\n cursor: pointer;\n}\n.mx-listview-empty {\n color: #999;\n text-align: center;\n}\n.mx-listview .mx-listview-loading {\n padding: 10px;\n line-height: 0;\n text-align: center;\n}\n.mx-listview-searchbar {\n display: flex;\n margin-bottom: 10px;\n}\n.mx-listview-searchbar > input {\n width: 100%;\n}\n.mx-listview-searchbar > button {\n margin-left: 5px;\n}\n[dir=\"rtl\"] .mx-listview-searchbar > button {\n margin-left: 0;\n margin-right: 5px;\n}\n.mx-listview-selection {\n display: table-cell;\n vertical-align: middle;\n padding: 0 15px 0 5px;\n}\n[dir=\"rtl\"] .mx-listview-selection {\n padding: 0 5px 0 15px;\n}\n.mx-listview-selectable .mx-listview-content {\n display: table-cell;\n vertical-align: middle;\n width: 100%;\n}\n.mx-listview .selected {\n background: #def;\n}\n.mx-listview .mx-table th,\n.mx-listview .mx-table td {\n padding: 2px;\n}\n\n.mx-login .form-control {\n margin-top: 10px;\n}\n\n.mx-menubar {\n padding: 8px;\n}\n.mx-menubar-icon {\n height: 16px;\n}\n.mx-menubar-more-icon {\n display: inline-block;\n width: 16px;\n height: 16px;\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAYAAAAe2bNZAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAKNJREFUeNpi/P//P8NgAUwMgwiMOmbUMaOOGXXMqGNGHTPYHMOCTfDs2bMeQKoOiI1BXCBuMjY23kFrdYzoTQigRm8gtQWLG0OBBqyhlTpc0dSOIxTraKwOq2PUcWhWp7E6rI65iUPzTRqrw+qYGhyam2isDtMxwES1CUgFAfFxqBCIDkJPbNRWhzU3jRZ6o44ZdcyoY0YdM+qYUccMUscABBgAUXpEjE/Bs/IAAAAASUVORK5CYII=) no-repeat center center;\n background-size: 16px 16px;\n vertical-align: middle;\n}\n\n.mx-navigationlist {\n padding: 8px;\n}\n.mx-navigationlist li:hover,\n.mx-navigationlist li:focus,\n.mx-navigationlist li.active {\n color: #FFF;\n background-color: #3498DB;\n}\n.mx-navigationlist * {\n cursor: pointer;\n}\n.mx-navigationlist .table th,\n.mx-navigationlist .table td {\n padding: 2px;\n}\n\n.mx-progress {\n position: fixed;\n top: 30%;\n left: 0;\n right: 0;\n margin: auto;\n width: 250px;\n max-width: 90%;\n background: #333;\n opacity: 0.8;\n z-index: 5000;\n border-radius: 4px;\n padding: 20px 15px;\n transition: opacity 0.4s ease-in-out;\n}\n.mx-progress-hidden {\n opacity: 0;\n}\n.mx-progress-message {\n color: #fff;\n text-align: center;\n margin-bottom: 15px;\n}\n.mx-progress-empty .mx-progress-message {\n display: none;\n}\n.mx-progress-indicator {\n width: 70px;\n height: 10px;\n margin: auto;\n background: url(data:image/gif;base64,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);\n}\n\n.mx-reload-notification {\n position: fixed;\n z-index: 1001;\n top: 0;\n width: 100%;\n padding: 1rem;\n\n border: 1px solid hsl(200, 96%, 41%);\n background-color: hsl(200, 96%, 44%);\n\n box-shadow: 0 5px 20px rgba(1, 37, 55, 0.16);\n color: white;\n\n text-align: center;\n font-size: 14px;\n}\n\n.mx-resizer-n,\n.mx-resizer-s {\n position: absolute;\n left: 0;\n width: 100%;\n height: 10px;\n}\n.mx-resizer-n {\n top: -5px;\n cursor: n-resize;\n}\n.mx-resizer-s {\n bottom: -5px;\n cursor: s-resize;\n}\n\n.mx-resizer-e,\n.mx-resizer-w {\n position: absolute;\n top: 0;\n width: 10px;\n height: 100%;\n}\n.mx-resizer-e {\n right: -5px;\n cursor: e-resize;\n}\n.mx-resizer-w {\n left: -5px;\n cursor: w-resize;\n}\n\n.mx-resizer-nw,\n.mx-resizer-ne,\n.mx-resizer-sw,\n.mx-resizer-se {\n position: absolute;\n width: 20px;\n height: 20px;\n}\n\n.mx-resizer-nw,\n.mx-resizer-ne {\n top: -5px;\n}\n.mx-resizer-sw,\n.mx-resizer-se {\n bottom: -5px;\n}\n.mx-resizer-nw,\n.mx-resizer-sw {\n left: -5px;\n}\n.mx-resizer-ne,\n.mx-resizer-se {\n right: -5px;\n}\n\n.mx-resizer-nw {\n cursor: nw-resize;\n}\n.mx-resizer-ne {\n cursor: ne-resize;\n}\n.mx-resizer-sw {\n cursor: sw-resize;\n}\n.mx-resizer-se {\n cursor: se-resize;\n}\n\n.mx-text {\n white-space: pre-line;\n}\n\n.mx-textarea textarea {\n resize: none;\n overflow-y: hidden;\n}\n.mx-textarea .mx-textarea-noresize {\n height: auto;\n resize: vertical;\n overflow-y: auto;\n}\n.mx-textarea .mx-textarea-counter {\n font-size: smaller;\n}\n.mx-textarea .form-control-static {\n white-space: pre-line;\n}\n\n.mx-underlay {\n position: fixed;\n top: 0;\n width: 100%;\n height: 100%;\n z-index: 1000;\n opacity: 0.5;\n background-color: #333;\n}\n\n.mx-imagezoom {\n position: absolute;\n display: table;\n width: 100%;\n height: 100%;\n background-color: #999;\n}\n.mx-imagezoom-wrapper {\n display: table-cell;\n text-align: center;\n vertical-align: middle;\n}\n.mx-imagezoom-image {\n max-width: none;\n}\n\n.mx-dropdown li {\n padding: 3px 20px;\n cursor: pointer;\n}\n.mx-dropdown label {\n padding: 0;\n color: #333;\n white-space: nowrap;\n cursor: pointer;\n}\n.mx-dropdown input {\n margin: 0;\n vertical-align: middle;\n cursor: pointer;\n}\n.mx-dropdown .selected {\n background: #f8f8f8;\n}\n//.mx-selectbox {\n// text-align: left;\n//}\n//.mx-selectbox-caret-wrapper {\n// float: right;\n// height: 100%;\n//}\n\n.mx-demouserswitcher {\n position: fixed;\n top: 0;\n right: 0;\n width: 360px;\n height: 100%;\n z-index: 20000;\n box-shadow: -1px 0 5px rgba(28,59,86,.2);\n}\n.mx-demouserswitcher-content {\n padding: 80px 40px 20px;\n height: 100%;\n color: #387ea2;\n font-size: 14px;\n overflow: auto;\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOgAAABgCAYAAAAXSj7NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0MzkwOTREMDQ2NEYxMUU0QTQ4MUI5NTNGMUQ3QzE5NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0MzkwOTREMTQ2NEYxMUU0QTQ4MUI5NTNGMUQ3QzE5NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc0REMyMUZGNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc0REMyMjAwNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+g1tRlwAAEFFJREFUeNrsnYl3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) top right no-repeat #1b3149;\n /* background-attachement local is not supported on IE8\n * when this is part of background the complete background is ignored */\n background-attachment: local;\n}\n.mx-demouserswitcher ul {\n padding: 0;\n margin-top: 25px;\n list-style-type: none;\n border-top: 1px solid #496076;\n}\n.mx-demouserswitcher a {\n display: block;\n padding: 10px 0;\n color: #387ea2;\n border-bottom: 1px solid #496076;\n}\n.mx-demouserswitcher h2 {\n margin: 20px 0 5px;\n color: #5bc4fe;\n font-size: 28px;\n}\n.mx-demouserswitcher h3 {\n margin: 0 0 2px;\n color: #5bc4fe;\n font-size: 18px;\n font-weight: normal;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.mx-demouserswitcher .active h3 {\n color: #11efdb;\n}\n.mx-demouserswitcher p {\n margin-bottom: 0;\n}\n.mx-demouserswitcher-toggle {\n position: absolute;\n top: 25%;\n left: -35px;\n width: 35px;\n height: 38px;\n margin-top: -40px;\n cursor: pointer;\n border-top-left-radius: 3px;\n border-bottom-left-radius: 3px;\n box-shadow: -1px 0 5px rgba(28,59,86,.2);\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3NERDMjFGRDQ2NEMxMUU0QTQ4MUI5NTNGMUQ3QzE5NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3NERDMjFGRTQ2NEMxMUU0QTQ4MUI5NTNGMUQ3QzE5NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc0REMyMUZCNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc0REMyMUZDNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+1ZovNAAAAWdJREFUeNqM1M0rRFEYx/E7Y5qIQpOUbIiymQWysBgvJVJK2VgryZQtKSULZelPsB0LZaNZjJUNK1FskJqUvCS3NAsZc3zP9NziOOfeeepTc8/c8+vc8xZTSnmOakEGKdzgDBXXy54OMsSwjpL6W9cYsrxfZWvcUu7y0VdLUCc+VXgd2oLixpfOIOmF17TtHTOozYuupCxAaNB9DUEfeDUbE8bzEXxZerP00l8hh3LUiHTIMr6N9j2ksYoihv/1deyLSVzKKm1jEW+WfZV2Lf8gskjIcwcWpOM++pHCFPLosgWtoCyd7jCPOjzhGHHLyDPY1achaJhDxRj6rBwJXUuoN0IG8IIv7OiGBjxadvAITuT3rex6c0SbKASflnUcBT3JTThAjyWkGUVsBEEFR5CerzXpNIacrFIrJnCBB3muBvkhB1TP27hM/Lvx3zl6gxHqu6c74kiU8IxGjKJdLrrT3xfdjwADAJaMxP2bvD2BAAAAAElFTkSuQmCC) center center no-repeat #1b3149;\n}\n\n/* master details screen for mobile */\n.mx-master-detail-screen {\n top: 0;\n left: 0;\n overflow: auto;\n width: 100%;\n height: 100%;\n position: absolute;\n background-color: white;\n will-change: transform;\n}\n\n.mx-master-detail-screen .mx-master-detail-details {\n padding: 15px;\n}\n\n.mx-master-detail-screen-header {\n position: relative;\n overflow: auto;\n border-bottom: 1px solid #ccc;\n background-color: #f7f7f7;\n}\n\n.mx-master-detail-screen-header-caption {\n text-align: center;\n font-size: 17px;\n line-height: 24px;\n font-weight: 600;\n}\n\n.mx-master-detail-screen-header-close {\n position: absolute;\n left: 0;\n top: 0;\n height: 100%;\n width: 50px;\n border: none;\n background: transparent;\n color: #007aff;\n}\n\nbody[dir=\"rtl\"] .mx-master-detail-screen-header-close {\n right: 0;\n left: auto;\n}\n\n.mx-master-detail-screen-header-close::before {\n content: \"\\2039\";\n font-size: 52px;\n line-height: 24px;\n}\n\n/* classes for content page */\n.mx-master-detail-content-fix {\n height: 100vh;\n overflow: hidden;\n}\n\n.mx-master-detail-content-hidden {\n transform: translateX(-200%);\n}\n\nbody[dir=\"rtl\"] .mx-master-detail-content-hidden {\n transform: translateX(200%);\n}\n.reportingReport {\n padding: 5px;\n border: 1px solid #ddd;\n -webkit-border-radius: 3px;\n -moz-border-radius: 3px;\n border-radius: 3px;\n}\n\n.reportingReportParameter th {\n text-align: right;\n}\n\n.reportingDateRange table {\n width: 100%;\n table-layout: fixed;\n}\n.reportingDateRange th {\n padding: 5px;\n text-align: right;\n background-color: #eee;\n}\n.reportingDateRange td {\n padding: 5px;\n}\n\n.mx-reportmatrix table {\n width: 100%;\n max-width: 100%;\n table-layout: fixed;\n margin-bottom: 0;\n}\n\n.mx-reportmatrix th, .mx-reportmatrix td {\n padding: 8px;\n line-height: 1.42857143;\n vertical-align: bottom;\n border: 1px solid #ddd;\n}\n\n.mx-reportmatrix tbody tr:first-child td {\n border-top: none;\n}\n\n.mx-reportmatrix tbody tr:nth-child(2n+1) td {\n background-color: #f9f9f9;\n}\n\n.mx-reportmatrix tbody img {\n max-width: 16px;\n max-height: 16px;\n}\n\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n .dijitInline {\n zoom: 1; /* set hasLayout:true to mimic inline-block */\n display:inline; /* don't use .dj_ie since that increases the priority */\n vertical-align: auto;\t/* makes TextBox,Button line up w/native counterparts on IE6 */\n }\n\n .dj_ie6 .dijitComboBox .dijitInputContainer,\n .dijitInputContainer {\n zoom: 1;\n }\n\n .dijitRight {\n /* Right part of a 3-element border */\n display:inline;\t\t\t\t/* IE7 sizes to outer size w/o this */\n }\n\n .dijitButtonNode {\n vertical-align: auto;\n }\n\n .dijitTextBox {\n overflow: hidden; /* #6027, #6067 */\n }\n\n .dijitPlaceHolder {\n filter: \"\"; /* make this show up in IE6 after the rendering of the widget */\n }\n\n .dijitValidationTextBoxError input.dijitValidationInner,\n .dijitSelect input,\n .dijitTextBox input.dijitArrowButtonInner {\n text-indent: 0 !important;\n letter-spacing: -5em !important;\n text-align: right !important;\n }\n\n .dj_a11y input.dijitValidationInner,\n .dj_a11y input.dijitArrowButtonInner {\n text-align: left !important;\n }\n\n .dijitSpinner .dijitSpinnerButtonContainer .dijitUpArrowButton {\n bottom: 50%;\t/* otherwise (on some machines) top arrow icon too close to splitter border (IE6/7) */\n }\n\n .dijitTabContainerTop-tabs .dijitTab,\n .dijitTabContainerBottom-tabs .dijitTab {\n zoom: 1; /* set hasLayout:true to mimic inline-block */\n display:inline; /* don't use .dj_ie since that increases the priority */\n }\n\n .dojoDndHorizontal .dojoDndItem {\n /* make contents of horizontal container be side by side, rather than vertical */\n display: inline;\n }\n}\n\n\n\n/* WARNING: IE9 limits nested imports to three levels deep: http://jorgealbaladejo.com/2011/05/28/internet-explorer-limits-nested-import-css-statements */\n\n/* dijit base */\n\n/* mendix base */\n\n/* widgets */\n\n/* reporting */\n\n\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9kb2pvL2Rpaml0L3RoZW1lcy9kaWppdC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS9iYXNlLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL2Zvcm1zLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9Ub29sdGlwLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9UYWJDb250YWluZXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L19HcmlkLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9DYWxlbmRhci5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvRGF0YUdyaWQuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RlbXBsYXRlR3JpZC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvU2Nyb2xsQ29udGFpbmVyLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9OYXZiYXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L05hdmlnYXRpb25UcmVlLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9CdXR0b24uY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L0dyb3VwQm94LmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9EYXRhVmlldy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvRGlhbG9nLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9XaW5kb3cuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L0Ryb3BEb3duLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9IZWFkZXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RpdGxlLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9MaXN0Vmlldy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvTG9naW5EaWFsb2cuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L01lbnVCYXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L05hdmlnYXRpb25MaXN0LmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9Qcm9ncmVzcy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvUmVsb2FkTm90aWZpY2F0aW9uLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9SZXNpemFibGUuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RleHQuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RleHRBcmVhLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9VbmRlcmxheS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvSW1hZ2Vab29tLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9TZWxlY3RCb3guY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L0RlbW9Vc2VyU3dpdGNoZXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L01hc3RlckRldGFpbC5jc3MiLCJ3ZWJwYWNrOi8vLy4vcmVwb3J0aW5nL3VpL3dpZGdldC9SZXBvcnQuY3NzIiwid2VicGFjazovLy8uL3JlcG9ydGluZy91aS93aWRnZXQvUmVwb3J0UGFyYW1ldGVyLmNzcyIsIndlYnBhY2s6Ly8vLi9yZXBvcnRpbmcvdWkvd2lkZ2V0L0RhdGVSYW5nZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vcmVwb3J0aW5nL3VpL3dpZGdldC9SZXBvcnRNYXRyaXguY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvbXh1aS5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7Ozs7QUFJQTtBQUNBO0FBQ0E7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QUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QjtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkIsd0JBQXdCO0FBQ3hCLFdBQVc7QUFDWDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLHlDQUF5QztBQUN4RDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLHdCQUF3QixvQkFBb0I7O0FBRTVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZjs7QUFFQTtBQUNBO0FBQ0EsK0JBQStCO0FBQy9CLFlBQVk7QUFDWjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQ7QUFDakQsMEJBQTBCO0FBQzFCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0EsYUFBYTtBQUNiLGFBQWEsd0RBQXdEO0FBQ3JFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0Esd0JBQXdCO0FBQ3hCOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtB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QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxrQkFBa0I7QUFDbEI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7QUFFQTtBQUNBLGdCQUFnQjtBQUNoQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQztBQUNqQztBQUNBO0FBQ0EsNEJBQTRCO0FBQzVCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHFCQUFxQjtBQUNyQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxpQkFBaUI7O0FBRWpCO0FBQ0E7QUFDQSwyQkFBMkI7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdnNFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQzs7O0FDOUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUN6REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0M7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmOztBQzdCQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JGQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQzFCQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLDhCQUE4QjtBQUN0QyxVQUFVLCtCQUErQjtBQUN6Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUN0R0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyREE7QUFDQTtBQUNBO0FBQ0E7OztBQ0hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RCQTtBQUNBO0FBQ0E7QUFDQTs7QUNIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN0VBO0FBQ0E7QUFDQTs7QUNGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQztBQUNBO0FBQ0E7O0FDYkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDZkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DO0FBQ25DOztBQy9CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JFQTtBQUNBO0FBQ0E7O0FDRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDZEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUM7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQzs7QUMvREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxDO0FDaEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ05BO0FBQ0E7QUFDQTs7QUNGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDWEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDekJBOztBQUVBOztBQUVBOztBQUVBOztBQUVBIiwiZmlsZSI6Im14dWkvdWkvbXh1aS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuXHRFc3NlbnRpYWwgc3R5bGVzIHRoYXQgdGhlbWVzIGNhbiBpbmhlcml0LlxuXHRJbiBvdGhlciB3b3Jkcywgd29ya3MgYnV0IGRvZXNuJ3QgbG9vayBncmVhdC5cbiovXG5cblxuXG4vKioqKlxuXHRcdEdFTkVSSUMgUElFQ0VTXG4gKioqKi9cblxuLmRpaml0UmVzZXQge1xuXHQvKiBVc2UgdGhpcyBzdHlsZSB0byBudWxsIG91dCBwYWRkaW5nLCBtYXJnaW4sIGJvcmRlciBpbiB5b3VyIHRlbXBsYXRlIGVsZW1lbnRzXG5cdFx0c28gdGhhdCBwYWdlIHNwZWNpZmljIHN0eWxlcyBkb24ndCBicmVhayB0aGVtLlxuXHRcdC0gVXNlIGluIGFsbCBUQUJMRSwgVFIgYW5kIFREIHRhZ3MuXG5cdCovXG5cdG1hcmdpbjowO1xuXHRib3JkZXI6MDtcblx0cGFkZGluZzowO1xuXHRmb250OiBpbmhlcml0O1xuXHRsaW5lLWhlaWdodDpub3JtYWw7XG5cdGNvbG9yOiBpbmhlcml0O1xufVxuLmRqX2ExMXkgLmRpaml0UmVzZXQge1xuXHQtbW96LWFwcGVhcmFuY2U6IG5vbmU7IC8qIHJlbW92ZSBwcmVkZWZpbmVkIGhpZ2gtY29udHJhc3Qgc3R5bGluZyBpbiBGaXJlZm94ICovXG59XG5cbi5kaWppdElubGluZSB7XG5cdC8qICBUbyBpbmxpbmUgYmxvY2sgZWxlbWVudHMuXG5cdFx0U2ltaWxhciB0byBJbmxpbmVCb3ggYmVsb3csIGJ1dCB0aGlzIGhhcyBmZXdlciBzaWRlLWVmZmVjdHMgaW4gTW96LlxuXHRcdEFsc28sIGFwcGFyZW50bHkgd29ya3Mgb24gYSBESVYgYXMgd2VsbCBhcyBhIEZJRUxEU0VULlxuXHQqL1xuXHRkaXNwbGF5OmlubGluZS1ibG9jaztcdFx0XHQvKiB3ZWJraXQgYW5kIEZGMyAqL1xuXHQjem9vbTogMTsgLyogc2V0IGhhc0xheW91dDp0cnVlIHRvIG1pbWljIGlubGluZS1ibG9jayAqL1xuXHQjZGlzcGxheTppbmxpbmU7IC8qIGRvbid0IHVzZSAuZGpfaWUgc2luY2UgdGhhdCBpbmNyZWFzZXMgdGhlIHByaW9yaXR5ICovXG5cdGJvcmRlcjowO1xuXHRwYWRkaW5nOjA7XG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0I3ZlcnRpY2FsLWFsaWduOiBhdXRvO1x0LyogbWFrZXMgVGV4dEJveCxCdXR0b24gbGluZSB1cCB3L25hdGl2ZSBjb3VudGVycGFydHMgb24gSUU2ICovXG59XG5cbnRhYmxlLmRpaml0SW5saW5lIHtcblx0LyogVG8gaW5saW5lIHRhYmxlcyB3aXRoIGEgZ2l2ZW4gd2lkdGggc2V0ICovXG5cdGRpc3BsYXk6aW5saW5lLXRhYmxlO1xuXHRib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cblxuLmRpaml0SGlkZGVuIHtcblx0LyogVG8gaGlkZSB1bnNlbGVjdGVkIHBhbmVzIGluIFN0YWNrQ29udGFpbmVyIGV0Yy4gKi9cblx0cG9zaXRpb246IGFic29sdXRlOyAvKiByZW1vdmUgZnJvbSBub3JtYWwgZG9jdW1lbnQgZmxvdyB0byBzaW11bGF0ZSBkaXNwbGF5OiBub25lICovXG5cdHZpc2liaWxpdHk6IGhpZGRlbjsgLyogaGlkZSBlbGVtZW50IGZyb20gdmlldywgYnV0IGRvbid0IGJyZWFrIHNjcm9sbGluZywgc2VlICMxODYxMiAqL1xufVxuLmRpaml0SGlkZGVuICoge1xuXHR2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDsgLyogaGlkZSB2aXNpYmlsaXR5OnZpc2libGUgZGVzY2VuZGFudHMgb2YgY2xhc3M9ZGlqaXRIaWRkZW4gbm9kZXMsIHNlZSAjMTg3OTkgKi9cbn1cblxuLmRpaml0VmlzaWJsZSB7XG5cdC8qIFRvIHNob3cgc2VsZWN0ZWQgcGFuZSBpbiBTdGFja0NvbnRhaW5lciBldGMuICovXG5cdGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHQvKiBvdmVycmlkZSB1c2VyJ3MgZGlzcGxheTpub25lIHNldHRpbmcgdmlhIHN0eWxlIHNldHRpbmcgb3IgaW5kaXJlY3RseSB2aWEgY2xhc3MgKi9cblx0cG9zaXRpb246IHJlbGF0aXZlO1x0XHRcdC8qIHRvIHN1cHBvcnQgc2V0dGluZyB3aWR0aC9oZWlnaHQsIHNlZSAjMjAzMyAqL1xuXHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuXG4uZGpfaWU2IC5kaWppdENvbWJvQm94IC5kaWppdElucHV0Q29udGFpbmVyLFxuLmRpaml0SW5wdXRDb250YWluZXIge1xuXHQvKiBmb3IgcG9zaXRpb25pbmcgb2YgcGxhY2VIb2xkZXIgKi9cblx0I3pvb206IDE7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGZsb2F0OiBub25lICFpbXBvcnRhbnQ7IC8qIG5lZWRlZCB0byBzcXVlZXplIHRoZSBJTlBVVCBpbiAqL1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uZGpfaWU3IC5kaWppdElucHV0Q29udGFpbmVyIHtcblx0ZmxvYXQ6IGxlZnQgIWltcG9ydGFudDsgLyogbmVlZGVkIGJ5IElFIHRvIHNxdWVlemUgdGhlIElOUFVUIGluICovXG5cdGNsZWFyOiBsZWZ0O1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgLyogdG8gZml4IHdyb25nIHRleHQgYWxpZ25tZW50IGluIHRleHRkaXI9cnRsIHRleHQgYm94ICovXG59XG5cbi5kal9pZSAuZGlqaXRTZWxlY3QgaW5wdXQsXG4uZGpfaWUgaW5wdXQuZGlqaXRUZXh0Qm94LFxuLmRqX2llIC5kaWppdFRleHRCb3ggaW5wdXQge1xuXHRmb250LXNpemU6IDEwMCU7XG59XG4uZGlqaXRTZWxlY3QgLmRpaml0QnV0dG9uVGV4dCB7XG5cdGZsb2F0OiBsZWZ0O1xuXHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuVEFCTEUuZGlqaXRTZWxlY3Qge1xuXHRwYWRkaW5nOiAwICFpbXBvcnRhbnQ7IC8qIG1lc3NlcyB1cCBib3JkZXIgYWxpZ25tZW50ICovXG5cdGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7IC8qIHNvIGpzZmlkZGxlIHdvcmtzIHdpdGggTm9ybWFsaXplZCBDU1MgY2hlY2tlZCAqL1xufVxuLmRpaml0VGV4dEJveCAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyLFxuLmRpaml0VGV4dEJveCAuZGlqaXRBcnJvd0J1dHRvbkNvbnRhaW5lcixcbi5kaWppdFZhbGlkYXRpb25UZXh0Qm94IC5kaWppdFZhbGlkYXRpb25Db250YWluZXIge1xuXHRmbG9hdDogcmlnaHQ7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5kaWppdFNlbGVjdCBpbnB1dC5kaWppdElucHV0RmllbGQsXG4uZGlqaXRUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRGaWVsZCB7XG5cdC8qIG92ZXJyaWRlIHVucmVhc29uYWJsZSB1c2VyIHN0eWxpbmcgb2YgYnV0dG9ucyBhbmQgaWNvbnMgKi9cblx0cGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbn1cbi5kaWppdFZhbGlkYXRpb25UZXh0Qm94IC5kaWppdFZhbGlkYXRpb25Db250YWluZXIge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uZGlqaXRUZWVueSB7XG5cdGZvbnQtc2l6ZToxcHg7XG5cdGxpbmUtaGVpZ2h0OjFweDtcbn1cblxuLmRpaml0T2ZmU2NyZWVuIHsgLyogdGhlc2UgY2xhc3MgYXR0cmlidXRlcyBzaG91bGQgc3VwZXJzZWRlIGFueSBpbmxpbmUgcG9zaXRpb25pbmcgc3R5bGUgKi9cblx0cG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG5cdGxlZnQ6IC0xMDAwMHB4ICFpbXBvcnRhbnQ7XG5cdHRvcDogLTEwMDAwcHggIWltcG9ydGFudDtcbn1cblxuLypcbiAqIFBvcHVwIGl0ZW1zIGhhdmUgYSB3cmFwcGVyIGRpdiAoZGlqaXRQb3B1cClcbiAqIHdpdGggdGhlIHJlYWwgcG9wdXAgaW5zaWRlLCBhbmQgbWF5YmUgYW4gaWZyYW1lIHRvb1xuICovXG4uZGlqaXRQb3B1cCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdG1hcmdpbjogMDtcblx0Ym9yZGVyOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHQtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG5cbi5kaWppdFBvc2l0aW9uT25seSB7XG5cdC8qIE51bGwgb3V0IGFsbCBwb3NpdGlvbi1yZWxhdGVkIHByb3BlcnRpZXMgKi9cblx0cGFkZGluZzogMCAhaW1wb3J0YW50O1xuXHRib3JkZXI6IDAgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcblx0d2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLmRpaml0Tm9uUG9zaXRpb25Pbmx5IHtcblx0LyogTnVsbCBwb3NpdGlvbi1yZWxhdGVkIHByb3BlcnRpZXMgKi9cblx0ZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcblx0cG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuXHRtYXJnaW46IDAgMCAwIDAgIWltcG9ydGFudDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50O1xufVxuXG4uZGlqaXRCYWNrZ3JvdW5kSWZyYW1lIHtcblx0LyogaWZyYW1lIHVzZWQgdG8gcHJldmVudCBwcm9ibGVtcyB3aXRoIFBERiBvciBvdGhlciBhcHBsZXRzIG92ZXJsYXlpbmcgbWVudXMgZXRjICovXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogMDtcblx0dG9wOiAwO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHR6LWluZGV4OiAtMTtcblx0Ym9yZGVyOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHRtYXJnaW46IDA7XG59XG5cbi5kaWppdERpc3BsYXlOb25lIHtcblx0LyogaGlkZSBzb21ldGhpbmcuICBVc2UgdGhpcyBhcyBhIGNsYXNzIHJhdGhlciB0aGFuIGVsZW1lbnQuc3R5bGUgc28gYW5vdGhlciBjbGFzcyBjYW4gb3ZlcnJpZGUgKi9cblx0ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdENvbnRhaW5lciB7XG5cdC8qIGZvciBhbGwgbGF5b3V0IGNvbnRhaW5lcnMgKi9cblx0b3ZlcmZsb3c6IGhpZGRlbjtcdC8qIG5lZWQgb24gSUUgc28gc29tZXRoaW5nIGNhbiBiZSByZWR1Y2VkIGluIHNpemUsIGFuZCBzbyBzY3JvbGxiYXJzIGFyZW4ndCB0ZW1wb3JhcmlseSBkaXNwbGF5ZWQgd2hlbiByZXNpemluZyAqL1xufVxuXG4vKioqKlxuXHRcdEExMVlcbiAqKioqL1xuLmRqX2ExMXkgLmRpaml0SWNvbixcbi5kal9hMTF5IGRpdi5kaWppdEFycm93QnV0dG9uSW5uZXIsIC8qIGlzIHRoaXMgb25seSBmb3IgU3Bpbm5lcj8gIGlmIHNvLCBpdCBzaG91bGQgYmUgZGVsZXRlZCAqL1xuLmRqX2ExMXkgc3Bhbi5kaWppdEFycm93QnV0dG9uSW5uZXIsXG4uZGpfYTExeSBpbWcuZGlqaXRBcnJvd0J1dHRvbklubmVyLFxuLmRqX2ExMXkgLmRpaml0Q2FsZW5kYXJJbmNyZW1lbnRDb250cm9sLFxuLmRqX2ExMXkgLmRpaml0VHJlZUV4cGFuZG8ge1xuXHQvKiBoaWRlIGljb24gbm9kZXMgaW4gaGlnaCBjb250cmFzdCBtb2RlOyB3aGVuIG5lY2Vzc2FyeSB0aGV5IHdpbGwgYmUgcmVwbGFjZWQgYnkgY2hhcmFjdGVyIGVxdWl2YWxlbnRzXG5cdCAqIGV4Y2VwdGlvbiBmb3IgaW5wdXQuZGlqaXRBcnJvd0J1dHRvbklubmVyLCBiZWNhdXNlIHRoZSBpY29uIGFuZCBjaGFyYWN0ZXIgYXJlIGNvbnRyb2xsZWQgYnkgdGhlIHNhbWUgbm9kZSAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuLmRpaml0U3Bpbm5lciBkaXYuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0ZGlzcGxheTogYmxvY2s7IC8qIG92ZXJyaWRlIHByZXZpb3VzIHJ1bGUgKi9cbn1cblxuLmRqX2ExMXkgLmRpaml0QTExeVNpZGVBcnJvdyB7XG5cdGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyAvKiBkaXNwbGF5IHRleHQgaW5zdGVhZCAqL1xuXHRjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8qXG4gKiBTaW5jZSB3ZSBjYW4ndCB1c2Ugc2hhZGluZyBpbiBhMTF5IG1vZGUsIGFuZCBzaW5jZSB0aGUgdW5kZXJsaW5lIGluZGljYXRlcyB0b2RheSdzIGRhdGUsXG4gKiB1c2UgYSBib3JkZXIgdG8gc2hvdyB0aGUgc2VsZWN0ZWQgZGF0ZS5cbiAqIEF2b2lkIHNjcmVlbiBqaXR0ZXIgd2hlbiBzd2l0Y2hpbmcgc2VsZWN0ZWQgZGF0ZSBieSBjb21wZW5zYXRpbmcgZm9yIHRoZSBzZWxlY3RlZCBub2RlJ3NcbiAqIGJvcmRlciB3L3BhZGRpbmcgb24gb3RoZXIgbm9kZXMuXG4gKi9cbi5kal9hMTF5IC5kaWppdENhbGVuZGFyRGF0ZUxhYmVsIHtcblx0cGFkZGluZzogMXB4O1xuXHRib3JkZXI6IDBweCAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0Q2FsZW5kYXJTZWxlY3RlZERhdGUgLmRpaml0Q2FsZW5kYXJEYXRlTGFiZWwge1xuXHRib3JkZXItc3R5bGU6IHNvbGlkICFpbXBvcnRhbnQ7XG5cdGJvcmRlci13aWR0aDogMXB4ICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmc6IDA7XG59XG4uZGpfYTExeSAuZGlqaXRDYWxlbmRhckRhdGVUZW1wbGF0ZSB7XG5cdHBhZGRpbmctYm90dG9tOiAwLjFlbSAhaW1wb3J0YW50O1x0Lyogb3RoZXJ3aXNlIGJvdHRvbSBib3JkZXIgZG9lc24ndCBhcHBlYXIgb24gSUUgKi9cblx0Ym9yZGVyOiAwcHggIWltcG9ydGFudDtcbn1cbi5kal9hMTF5IC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXI6IGJsYWNrIG91dHNldCBtZWRpdW0gIWltcG9ydGFudDtcblxuXHQvKiBJbiBjbGFybywgaG92ZXJpbmcgYSB0b29sYmFyIGJ1dHRvbiByZWR1Y2VzIHBhZGRpbmcgYW5kIGFkZHMgYSBib3JkZXIuXG5cdCAqIE5vdCBuZWVkZWQgaW4gYTExeSBtb2RlIHNpbmNlIFRvb2xiYXIgYnV0dG9ucyBhbHdheXMgaGF2ZSBhIGJvcmRlci5cblx0ICovXG5cdHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbn1cbi5kal9hMTF5IC5kaWppdEFycm93QnV0dG9uIHtcblx0cGFkZGluZzogMCAhaW1wb3J0YW50O1xufVxuXG4uZGpfYTExeSAuZGlqaXRCdXR0b25Db250ZW50cyB7XG5cdG1hcmdpbjogMC4xNWVtOyAvKiBNYXJnaW4gbmVlZGVkIHRvIG1ha2UgZm9jdXMgb3V0bGluZSB2aXNpYmxlICovXG59XG5cbi5kal9hMTF5IC5kaWppdFRleHRCb3hSZWFkT25seSAuZGlqaXRJbnB1dEZpZWxkLFxuLmRqX2ExMXkgLmRpaml0VGV4dEJveFJlYWRPbmx5IC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXItc3R5bGU6IG91dHNldCFpbXBvcnRhbnQ7XG5cdGJvcmRlci13aWR0aDogbWVkaXVtIWltcG9ydGFudDtcblx0Ym9yZGVyLWNvbG9yOiAjOTk5ICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiM5OTkgIWltcG9ydGFudDtcbn1cblxuLyogYnV0dG9uIGlubmVyIGNvbnRlbnRzIC0gbGFiZWxzLCBpY29ucyBldGMuICovXG4uZGlqaXRCdXR0b25Ob2RlICoge1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmRpaml0U2VsZWN0IC5kaWppdEFycm93QnV0dG9uSW5uZXIsXG4uZGlqaXRCdXR0b25Ob2RlIC5kaWppdEFycm93QnV0dG9uSW5uZXIge1xuXHQvKiB0aGUgYXJyb3cgaWNvbiBub2RlICovXG5cdGJhY2tncm91bmQ6IG5vLXJlcGVhdCBjZW50ZXI7XG5cdHdpZHRoOiAxMnB4O1xuXHRoZWlnaHQ6IDEycHg7XG5cdGRpcmVjdGlvbjogbHRyOyAvKiBuZWVkZWQgYnkgSUUvUlRMICovXG59XG5cbi8qKioqXG5cdDMtZWxlbWVudCBib3JkZXJzOiAgKCBkaWppdExlZnQgKyBkaWppdFN0cmV0Y2ggKyBkaWppdFJpZ2h0IClcblx0VGhlc2Ugd2VyZSBhZGRlZCBmb3Igcm91bmRlZCBjb3JuZXJzIG9uIGRpaml0LmZvcm0uKkJ1dHRvbiBidXQgbmV2ZXIgYWN0dWFsbHkgdXNlZC5cbiAqKioqL1xuXG4uZGlqaXRMZWZ0IHtcblx0LyogTGVmdCBwYXJ0IG9mIGEgMy1lbGVtZW50IGJvcmRlciAqL1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgdG9wO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XG59XG5cbi5kaWppdFN0cmV0Y2gge1xuXHQvKiBNaWRkbGUgKHN0cmV0Y2h5KSBwYXJ0IG9mIGEgMy1lbGVtZW50IGJvcmRlciAqL1xuXHR3aGl0ZS1zcGFjZTpub3dyYXA7XHRcdFx0LyogTU9XOiBtb3ZlIHNvbWV3aGVyZSBlbHNlICovXG5cdGJhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14O1xufVxuXG4uZGlqaXRSaWdodCB7XG5cdC8qIFJpZ2h0IHBhcnQgb2YgYSAzLWVsZW1lbnQgYm9yZGVyICovXG5cdCNkaXNwbGF5OmlubGluZTtcdFx0XHRcdC8qIElFNyBzaXplcyB0byBvdXRlciBzaXplIHcvbyB0aGlzICovXG5cdGJhY2tncm91bmQtcG9zaXRpb246cmlnaHQgdG9wO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XG59XG5cbi8qIEJ1dHRvbnMgKi9cbi5kal9nZWNrbyAuZGpfYTExeSAuZGlqaXRCdXR0b25EaXNhYmxlZCAuZGlqaXRCdXR0b25Ob2RlIHtcblx0b3BhY2l0eTogMC41O1xufVxuXG4uZGlqaXRUb2dnbGVCdXR0b24sXG4uZGlqaXRCdXR0b24sXG4uZGlqaXREcm9wRG93bkJ1dHRvbixcbi5kaWppdENvbWJvQnV0dG9uIHtcblx0Lyogb3V0c2lkZSBvZiBidXR0b24gKi9cblx0bWFyZ2luOiAwLjJlbTtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHRkaXNwbGF5OiBibG9jaztcdFx0LyogdG8gbWFrZSBmb2N1cyBib3JkZXIgcmVjdGFuZ3VsYXIgKi9cbn1cbnRkLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHRkaXNwbGF5OiB0YWJsZS1jZWxsO1x0LyogYnV0IGRvbid0IGFmZmVjdCBTZWxlY3QsIENvbWJvQnV0dG9uICovXG59XG5cbi5kaWppdEJ1dHRvbk5vZGUgaW1nIHtcblx0LyogbWFrZSB0ZXh0IGFuZCBpbWFnZXMgbGluZSB1cCBjbGVhbmx5ICovXG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0LyptYXJnaW4tYm90dG9tOi4yZW07Ki9cbn1cblxuLmRpaml0VG9vbGJhciAuZGlqaXRDb21ib0J1dHRvbiB7XG5cdC8qIGJlY2F1c2UgVG9vbGJhciBvbmx5IGRyYXdzIGEgYm9yZGVyIGFyb3VuZCB0aGUgaG92ZXJlZCB0aGluZyAqL1xuXHRib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xufVxuXG4uZGlqaXRUb29sYmFyIC5kaWppdFRvZ2dsZUJ1dHRvbixcbi5kaWppdFRvb2xiYXIgLmRpaml0QnV0dG9uLFxuLmRpaml0VG9vbGJhciAuZGlqaXREcm9wRG93bkJ1dHRvbixcbi5kaWppdFRvb2xiYXIgLmRpaml0Q29tYm9CdXR0b24ge1xuXHRtYXJnaW46IDA7XG59XG5cbi5kaWppdFRvb2xiYXIgLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHQvKiBqdXN0IGJlY2F1c2UgaXQgdXNlZCB0byBiZSB0aGlzIHdheSAqL1xuXHRwYWRkaW5nOiAxcHggMnB4O1xufVxuXG5cbi5kal93ZWJraXQgLmRpaml0VG9vbGJhciAuZGlqaXREcm9wRG93bkJ1dHRvbiB7XG5cdHBhZGRpbmctbGVmdDogMC4zZW07XG59XG4uZGpfZ2Vja28gLmRpaml0VG9vbGJhciAuZGlqaXRCdXR0b25Ob2RlOjotbW96LWZvY3VzLWlubmVyIHtcblx0cGFkZGluZzowO1xufVxuXG4uZGlqaXRTZWxlY3Qge1xuXHRib3JkZXI6MXB4IHNvbGlkIGdyYXk7XG59XG4uZGlqaXRCdXR0b25Ob2RlIHtcblx0LyogTm9kZSB0aGF0IGlzIGFjdGluZyBhcyBhIGJ1dHRvbiAtLSBtYXkgb3IgbWF5IG5vdCBiZSBhIEJVVFRPTiBlbGVtZW50ICovXG5cdGJvcmRlcjoxcHggc29saWQgZ3JheTtcblx0bWFyZ2luOjA7XG5cdGxpbmUtaGVpZ2h0Om5vcm1hbDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0I3ZlcnRpY2FsLWFsaWduOiBhdXRvO1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5kal93ZWJraXQgLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIHtcblx0LyogYXBwYXJlbnQgV2ViS2l0IGJ1ZyB3aGVyZSBtZXNzaW5nIHdpdGggdGhlIGZvbnQgY291cGxlZCB3aXRoIGxpbmUtaGVpZ2h0Om5vcm1hbCBYIDIgKGRpaml0UmVzZXQgJiBkaWppdEJ1dHRvbk5vZGUpXG5cdGNhbiBiZSBkaWZmZXJlbnQgdGhhbiBqdXN0IGEgc2luZ2xlIGxpbmUtaGVpZ2h0Om5vcm1hbCwgdmlzaWJsZSBpbiBJbmxpbmVFZGl0Qm94L1NwaW5uZXIgKi9cblx0bGluZS1oZWlnaHQ6aW5oZXJpdDtcbn1cbi5kaWppdFRleHRCb3ggLmRpaml0QnV0dG9uTm9kZSB7XG5cdGJvcmRlci13aWR0aDogMDtcbn1cblxuLmRpaml0U2VsZWN0LFxuLmRpaml0U2VsZWN0ICosXG4uZGlqaXRCdXR0b25Ob2RlLFxuLmRpaml0QnV0dG9uTm9kZSAqIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uZGpfaWUgLmRpaml0QnV0dG9uTm9kZSB7XG5cdC8qIGVuc3VyZSBoYXNMYXlvdXQgKi9cblx0em9vbTogMTtcbn1cblxuLmRqX2llIC5kaWppdEJ1dHRvbk5vZGUgYnV0dG9uIHtcblx0Lypcblx0XHRkaXNndXN0aW5nIGhhY2sgdG8gZ2V0IHJpZCBvZiBzcHVyaW91cyBwYWRkaW5nIGFyb3VuZCBidXR0b24gZWxlbWVudHNcblx0XHRvbiBJRS4gTVNJRSBpcyB0cnVseSB0aGUgd2ViJ3MgYm9hdCBhbmNob3IuXG5cdCovXG5cdG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG5kaXYuZGlqaXRBcnJvd0J1dHRvbiB7XG5cdGZsb2F0OiByaWdodDtcbn1cblxuLyoqKioqKlxuXHRUZXh0Qm94IHJlbGF0ZWQuXG5cdEV2ZXJ5dGhpbmcgdGhhdCBoYXMgYW4gPGlucHV0PlxuKioqKioqKi9cblxuLmRpaml0VGV4dEJveCB7XG5cdGJvcmRlcjogc29saWQgYmxhY2sgMXB4O1xuXHQjb3ZlcmZsb3c6IGhpZGRlbjsgLyogIzYwMjcsICM2MDY3ICovXG5cdHdpZHRoOiAxNWVtO1x0LyogbmVlZCB0byBzZXQgZGVmYXVsdCBzaXplIG9uIG91dGVyIG5vZGUgc2luY2UgaW5uZXIgbm9kZXMgc2F5IDxpbnB1dCBzdHlsZT1cIndpZHRoOjEwMCVcIj4gYW5kIDx0ZCB3aWR0aD0xMDAlPi4gIHVzZXIgY2FuIG92ZXJyaWRlICovXG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5kaWppdFRleHRCb3hSZWFkT25seSxcbi5kaWppdFRleHRCb3hEaXNhYmxlZCB7XG5cdGNvbG9yOiBncmF5O1xufVxuLmRqX3NhZmFyaSAuZGlqaXRUZXh0Qm94RGlzYWJsZWQgaW5wdXQge1xuXHRjb2xvcjogI0IwQjBCMDsgLyogYmVjYXVzZSBTYWZhcmkgbGlnaHRlbnMgZGlzYWJsZWQgaW5wdXQvdGV4dGFyZWEgbm8gbWF0dGVyIHdoYXQgY29sb3IgeW91IHNwZWNpZnkgKi9cbn1cbi5kal9zYWZhcmkgdGV4dGFyZWEuZGlqaXRUZXh0QXJlYURpc2FibGVkIHtcblx0Y29sb3I6ICMzMzM7IC8qIGJlY2F1c2UgU2FmYXJpIGxpZ2h0ZW5zIGRpc2FibGVkIGlucHV0L3RleHRhcmVhIG5vIG1hdHRlciB3aGF0IGNvbG9yIHlvdSBzcGVjaWZ5ICovXG59XG4uZGpfZ2Vja28gLmRpaml0VGV4dEJveFJlYWRPbmx5IGlucHV0LmRpaml0SW5wdXRGaWVsZCwgLyogZGlzYWJsZSBhcnJvdyBhbmQgdmFsaWRhdGlvbiBwcmVzZW50YXRpb24gaW5wdXRzIGJ1dCBhbGxvdyByZWFsIGlucHV0IGZvciB0ZXh0IHNlbGVjdGlvbiAqL1xuLmRqX2dlY2tvIC5kaWppdFRleHRCb3hEaXNhYmxlZCBpbnB1dCB7XG5cdC1tb3otdXNlci1pbnB1dDogbm9uZTsgLyogcHJldmVudCBmb2N1cyBvZiBkaXNhYmxlZCB0ZXh0Ym94IGJ1dHRvbnMgKi9cbn1cblxuLmRpaml0UGxhY2VIb2xkZXIge1xuXHQvKiBoaW50IHRleHQgdGhhdCBhcHBlYXJzIGluIGEgdGV4dGJveCB1bnRpbCB1c2VyIHN0YXJ0cyB0eXBpbmcgKi9cblx0Y29sb3I6ICNBQUFBQUE7XG5cdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdCNmaWx0ZXI6IFwiXCI7IC8qIG1ha2UgdGhpcyBzaG93IHVwIGluIElFNiBhZnRlciB0aGUgcmVuZGVyaW5nIG9mIHRoZSB3aWRnZXQgKi9cblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7ICAgLyogc28gY3V0L3Bhc3RlIGNvbnRleHQgbWVudSBzaG93cyB1cCB3aGVuIHJpZ2h0IGNsaWNraW5nICovXG59XG5cbi5kaWppdFRpbWVUZXh0Qm94IHtcblx0d2lkdGg6IDhlbTtcbn1cblxuLyogcnVsZXMgZm9yIHdlYmtpdCB0byBkZWFsIHdpdGggZnV6enkgYmx1ZSBmb2N1cyBib3JkZXIgKi9cbi5kaWppdFRleHRCb3ggaW5wdXQ6Zm9jdXMge1xuXHRvdXRsaW5lOiBub25lO1x0LyogYmx1ZSBmdXp6eSBsaW5lIGxvb2tzIHdyb25nIG9uIGNvbWJvYm94IG9yIHNvbWV0aGluZyB3L3ZhbGlkYXRpb24gaWNvbiBzaG93aW5nICovXG59XG4uZGlqaXRUZXh0Qm94Rm9jdXNlZCB7XG5cdG91dGxpbmU6IDVweCAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XG59XG5cbi5kaWppdFNlbGVjdCBpbnB1dCxcbi5kaWppdFRleHRCb3ggaW5wdXQge1xuXHRmbG9hdDogbGVmdDsgLyogbmVlZGVkIGJ5IElFIHRvIHJlbW92ZSBzZWNyZXQgbWFyZ2luICovXG59XG4uZGpfaWU2IGlucHV0LmRpaml0VGV4dEJveCxcbi5kal9pZTYgLmRpaml0VGV4dEJveCBpbnB1dCB7XG5cdGZsb2F0OiBub25lO1xufVxuLmRpaml0SW5wdXRJbm5lciB7XG5cdC8qIGZvciB3aGVuIGFuIDxpbnB1dD4gaXMgZW1iZWRkZWQgaW5zaWRlIGFuIGlubGluZS1ibG9jayA8ZGl2PiB3aXRoIGEgc2l6ZSBhbmQgYm9yZGVyICovXG5cdGJvcmRlcjowICFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblx0d2lkdGg6MTAwJSAhaW1wb3J0YW50O1xuXHQvKiBJRSBkaXNsaWtlcyBob3Jpem9udGFsIHR3ZWFraW5nIGNvbWJpbmVkIHdpdGggd2lkdGg6MTAwJSBzbyBwdW5pc2ggZXZlcnlvbmUgZm9yIGNvbnNpc3RlbmN5ICovXG5cdHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0VGV4dEJveCBpbnB1dCB7XG5cdG1hcmdpbjogMCAhaW1wb3J0YW50O1xufVxuLmRpaml0VmFsaWRhdGlvblRleHRCb3hFcnJvciBpbnB1dC5kaWppdFZhbGlkYXRpb25Jbm5lcixcbi5kaWppdFNlbGVjdCBpbnB1dCxcbi5kaWppdFRleHRCb3ggaW5wdXQuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0LyogPGlucHV0PiB1c2VkIHRvIGRpc3BsYXkgYXJyb3cgaWNvbi92YWxpZGF0aW9uIGljb24sIG9yIGluIGFycm93IGNoYXJhY3RlciBpbiBoaWdoIGNvbnRyYXN0IG1vZGUuXG5cdCAqIFRoZSBjc3MgYmVsb3cgaXMgYSB0cmljayB0byBoaWRlIHRoZSBjaGFyYWN0ZXIgaW4gbm9uLWhpZ2gtY29udHJhc3QgbW9kZVxuXHQgKi9cblx0dGV4dC1pbmRlbnQ6IC0yZW0gIWltcG9ydGFudDtcblx0ZGlyZWN0aW9uOiBsdHIgIWltcG9ydGFudDtcblx0dGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcblx0I3RleHQtaW5kZW50OiAwICFpbXBvcnRhbnQ7XG5cdCNsZXR0ZXItc3BhY2luZzogLTVlbSAhaW1wb3J0YW50O1xuXHQjdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDtcbn1cbi5kal9pZSAuZGlqaXRTZWxlY3QgaW5wdXQsXG4uZGpfaWUgLmRpaml0VGV4dEJveCBpbnB1dCxcbi5kal9pZSBpbnB1dC5kaWppdFRleHRCb3gge1xuXHRvdmVyZmxvdy15OiB2aXNpYmxlOyAvKiBpbnB1dHMgbmVlZCBoZWxwIGV4cGFuZGluZyB3aGVuIHBhZGRpbmcgaXMgYWRkZWQgb3IgbGluZS1oZWlnaHQgaXMgYWRqdXN0ZWQgKi9cblx0bGluZS1oZWlnaHQ6IG5vcm1hbDsgLyogc3RyaWN0IG1vZGUgKi9cbn1cbi5kaWppdFNlbGVjdCAuZGlqaXRTZWxlY3RMYWJlbCBzcGFuIHtcblx0bGluZS1oZWlnaHQ6IDEwMCU7XG59XG4uZGpfaWUgLmRpaml0U2VsZWN0IC5kaWppdFNlbGVjdExhYmVsIHtcblx0bGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cbi5kal9pZTYgLmRpaml0U2VsZWN0IC5kaWppdFNlbGVjdExhYmVsLFxuLmRqX2llNyAuZGlqaXRTZWxlY3QgLmRpaml0U2VsZWN0TGFiZWwsXG4uZGpfaWU4IC5kaWppdFNlbGVjdCAuZGlqaXRTZWxlY3RMYWJlbCxcbi5kal9pZXF1aXJrcyAuZGlqaXRTZWxlY3QgLmRpaml0U2VsZWN0TGFiZWwsXG4uZGlqaXRTZWxlY3QgdGQsXG4uZGpfaWU2IC5kaWppdFNlbGVjdCBpbnB1dCxcbi5kal9pZXF1aXJrcyAuZGlqaXRTZWxlY3QgaW5wdXQsXG4uZGpfaWU2IC5kaWppdFNlbGVjdCAuZGlqaXRWYWxpZGF0aW9uQ29udGFpbmVyLFxuLmRqX2llNiAuZGlqaXRUZXh0Qm94IGlucHV0LFxuLmRqX2llNiBpbnB1dC5kaWppdFRleHRCb3gsXG4uZGpfaWVxdWlya3MgLmRpaml0VGV4dEJveCBpbnB1dC5kaWppdFZhbGlkYXRpb25Jbm5lcixcbi5kal9pZXF1aXJrcyAuZGlqaXRUZXh0Qm94IGlucHV0LmRpaml0QXJyb3dCdXR0b25Jbm5lcixcbi5kal9pZXF1aXJrcyAuZGlqaXRUZXh0Qm94IGlucHV0LmRpaml0U3Bpbm5lckJ1dHRvbklubmVyLFxuLmRqX2llcXVpcmtzIC5kaWppdFRleHRCb3ggaW5wdXQuZGlqaXRJbnB1dElubmVyLFxuLmRqX2llcXVpcmtzIGlucHV0LmRpaml0VGV4dEJveCB7XG5cdGxpbmUtaGVpZ2h0OiAxMDAlOyAvKiBJRTcgcHJvYmxlbSB3aGVyZSB0aGUgaWNvbiBpcyB2ZXJ0aWNhbGx5IHdheSB0b28gbG93IHcvbyB0aGlzICovXG59XG4uZGpfYTExeSBpbnB1dC5kaWppdFZhbGlkYXRpb25Jbm5lcixcbi5kal9hMTF5IGlucHV0LmRpaml0QXJyb3dCdXR0b25Jbm5lciB7XG5cdC8qIChpbiBoaWdoIGNvbnRyYXN0IG1vZGUpIHJldmVydCBydWxlcyBmcm9tIGFib3ZlIHNvIGNoYXJhY3RlciBkaXNwbGF5cyAqL1xuXHR0ZXh0LWluZGVudDogMCAhaW1wb3J0YW50O1xuXHR3aWR0aDogMWVtICFpbXBvcnRhbnQ7XG5cdCN0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiBibGFjayAhaW1wb3J0YW50O1xufVxuLmRpaml0VmFsaWRhdGlvblRleHRCb3hFcnJvciAuZGlqaXRWYWxpZGF0aW9uQ29udGFpbmVyIHtcblx0ZGlzcGxheTogaW5saW5lO1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qIENvbWJvQm94ICYgU3Bpbm5lciAqL1xuXG4uZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIsXG4uZGlqaXRDb21ib0JveCAuZGlqaXRBcnJvd0J1dHRvbkNvbnRhaW5lciB7XG5cdC8qIGRpdmlkaW5nIGxpbmUgYmV0d2VlbiBpbnB1dCBhcmVhIGFuZCB1cC9kb3duIGJ1dHRvbihzKSBmb3IgQ29tYm9Cb3ggYW5kIFNwaW5uZXIgKi9cblx0Ym9yZGVyLXdpZHRoOiAwIDAgMCAxcHggIWltcG9ydGFudDsgLyogIWltcG9ydGFudCBuZWVkZWQgZHVlIHRvIHdheXdhcmQgXCIudGhlbWUgLmRpaml0QnV0dG9uTm9kZVwiIHJ1bGVzICovXG59XG4uZGpfYTExeSAuZGlqaXRTZWxlY3QgLmRpaml0QXJyb3dCdXR0b25Db250YWluZXIsXG4uZGlqaXRUb29sYmFyIC5kaWppdENvbWJvQm94IC5kaWppdEFycm93QnV0dG9uQ29udGFpbmVyIHtcblx0Lyogb3ZlcnJpZGVzIGFib3ZlIHJ1bGUgcGx1cyBtaXJyb3ItaW1hZ2UgcnVsZSBpbiBkaWppdF9ydGwuY3NzIHRvIGhhdmUgbm8gZGl2aWRlciB3aGVuIENvbWJvQm94IGluIFRvb2xiYXIgKi9cblx0Ym9yZGVyLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdENvbWJvQm94TWVudSB7XG5cdC8qIERyb3AgZG93biBtZW51IGlzIGltcGxlbWVudGVkIGFzIDx1bD4gPGxpLz4gPGxpLz4gLi4uIGJ1dCB3ZSBkb24ndCB3YW50IGNpcmNsZXMgYmVmb3JlIGVhY2ggaXRlbSAqL1xuXHRsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0QnV0dG9uTm9kZSB7XG5cdC8qIGRpdmlkaW5nIGxpbmUgYmV0d2VlbiBpbnB1dCBhcmVhIGFuZCB1cC9kb3duIGJ1dHRvbihzKSBmb3IgQ29tYm9Cb3ggYW5kIFNwaW5uZXIgKi9cblx0Ym9yZGVyLXdpZHRoOiAwO1xufVxuLmRqX2llIC5kal9hMTF5IC5kaWppdFNwaW5uZXIgLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciAuZGlqaXRCdXR0b25Ob2RlIHtcblx0Y2xlYXI6IGJvdGg7IC8qIElFIHdvcmthcm91bmQgKi9cbn1cblxuLmRqX2llIC5kaWppdFRvb2xiYXIgLmRpaml0Q29tYm9Cb3gge1xuXHQvKiBtYWtlIGNvbWJvYm94IGJ1dHRvbnMgYWxpZ24gcHJvcGVybHkgd2l0aCBvdGhlciBidXR0b25zIGluIGEgdG9vbGJhciAqL1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4vKiBTcGlubmVyICovXG5cbi5kaWppdFRleHRCb3ggLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciB7XG5cdHdpZHRoOiAxZW07XG5cdHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uSW5uZXIge1xuXHR3aWR0aDoxZW07XG5cdHZpc2liaWxpdHk6aGlkZGVuICFpbXBvcnRhbnQ7IC8qIGp1c3QgYSBzaXppbmcgZWxlbWVudCAqL1xuXHRvdmVyZmxvdy14OmhpZGRlbjtcbn1cbi5kaWppdENvbWJvQm94IC5kaWppdEJ1dHRvbk5vZGUsXG4uZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXItd2lkdGg6IDA7XG59XG4uZGpfYTExeSAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXItd2lkdGg6IDBweCAhaW1wb3J0YW50O1xuXHRib3JkZXItc3R5bGU6IHNvbGlkICFpbXBvcnRhbnQ7XG59XG4uZGpfYTExeSAuZGlqaXRUZXh0Qm94IC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIsXG4uZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIsXG4uZGpfYTExeSAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIGlucHV0IHtcblx0d2lkdGg6IDFlbSAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0bWFyZ2luOiAwIGF1dG8gIWltcG9ydGFudDsgLyogc2hvdWxkIGF1dG8tY2VudGVyICovXG59XG4uZGpfaWUgLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHRwYWRkaW5nLWxlZnQ6IDAuM2VtICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctcmlnaHQ6IDAuM2VtICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1sZWZ0OiAwLjNlbSAhaW1wb3J0YW50O1xuXHRtYXJnaW4tcmlnaHQ6IDAuM2VtICFpbXBvcnRhbnQ7XG5cdHdpZHRoOiAxLjRlbSAhaW1wb3J0YW50O1xufVxuLmRqX2llNyAuZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIgLmRpaml0SW5wdXRGaWVsZCB7XG5cdHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50OyAvKiBtYW51YWxseSBjZW50ZXIgSU5QVVQ6IGNoYXJhY3RlciBpcyAuNWVtIGFuZCB0b3RhbCB3aWR0aCA9IDFlbSAqL1xuXHRwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG5cdHdpZHRoOiAxZW0gIWltcG9ydGFudDtcbn1cbi5kal9pZTYgLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHRtYXJnaW4tbGVmdDogMC4xZW0gIWltcG9ydGFudDtcblx0bWFyZ2luLXJpZ2h0OiAwLjFlbSAhaW1wb3J0YW50O1xuXHR3aWR0aDogMWVtICFpbXBvcnRhbnQ7XG59XG4uZGpfaWVxdWlya3MgLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHRtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuXHRtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcblx0d2lkdGg6IDJlbSAhaW1wb3J0YW50O1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEFycm93QnV0dG9uIHtcblx0Lyogbm90ZTogLmRpaml0SW5wdXRMYXlvdXRDb250YWluZXIgbWFrZXMgdGhpcyBydWxlIG92ZXJyaWRlIC5kaWppdEFycm93QnV0dG9uIHNldHRpbmdzXG5cdCAqIGZvciBkaWppdC5mb3JtLkJ1dHRvblxuXHQgKi9cblx0cGFkZGluZzogMDtcblx0cG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG5cdHJpZ2h0OiAwO1xuXHRmbG9hdDogbm9uZTtcblx0aGVpZ2h0OiA1MCU7XG5cdHdpZHRoOiAxMDAlO1xuXHRib3R0b206IGF1dG87XG5cdGxlZnQ6IDA7XG5cdHJpZ2h0OiBhdXRvO1xufVxuLmRqX2llcXVpcmtzIC5kaWppdFNwaW5uZXIgLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciAuZGlqaXRBcnJvd0J1dHRvbiB7XG5cdHdpZHRoOiBhdXRvO1xufVxuLmRqX2ExMXkgLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciAuZGlqaXRBcnJvd0J1dHRvbiB7XG5cdG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0RG93bkFycm93QnV0dG9uIHtcblx0dG9wOiA1MCU7XG5cdGJvcmRlci10b3Atd2lkdGg6IDFweCAhaW1wb3J0YW50O1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdFVwQXJyb3dCdXR0b24ge1xuXHQjYm90dG9tOiA1MCU7XHQvKiBvdGhlcndpc2UgKG9uIHNvbWUgbWFjaGluZXMpIHRvcCBhcnJvdyBpY29uIHRvbyBjbG9zZSB0byBzcGxpdHRlciBib3JkZXIgKElFNi83KSAqL1xuXHR0b3A6IDA7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIge1xuXHRtYXJnaW46IGF1dG87XG5cdG92ZXJmbG93LXg6IGhpZGRlbjtcblx0aGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG59XG4uZGpfaWVxdWlya3MgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0aGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIgLmRpaml0SW5wdXRGaWVsZCB7XG5cdC1tb3otdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuXHQtbW96LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciB0b3A7XG5cdC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuXHQtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciB0b3A7XG5cdC1vLXRyYW5zZm9ybTogc2NhbGUoMC41KTtcblx0LW8tdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIHRvcDtcblx0dHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuXHR0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDtcblx0cGFkZGluZy10b3A6IDA7XG5cdHBhZGRpbmctYm90dG9tOiAwO1xuXHRwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcblx0cGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuXHR3aWR0aDogMTAwJTtcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLmRqX2llIC5kaWppdFNwaW5uZXIgLmRpaml0QXJyb3dCdXR0b25Jbm5lciAuZGlqaXRJbnB1dEZpZWxkIHtcblx0em9vbTogNTAlOyAvKiBlbXVsYXRlIHRyYW5zZm9ybTogc2NhbGUoMC41KSAqL1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIge1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0QXJyb3dCdXR0b24ge1xuXHR3aWR0aDogMTAwJTtcbn1cbi5kal9pZXF1aXJrcyAuZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0QXJyb3dCdXR0b24ge1xuXHR3aWR0aDogMWVtOyAvKiBtYXRjaGVzIC5kal9hMTF5IC5kaWppdFRleHRCb3ggLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciBydWxlIC0gMTAwJSBpcyB0aGUgd2hvbGUgc2NyZWVuIHdpZHRoIGluIHF1aXJrcyAqL1xufVxuLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHR2ZXJ0aWNhbC1hbGlnbjp0b3A7XG5cdHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4uZGpfYTExeSAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIHtcblx0d2lkdGg6IDFlbTtcbn1cblxuLyoqKipcblx0XHRkaWppdC5mb3JtLkNoZWNrQm94XG4gXHQgJlxuICBcdFx0ZGlqaXQuZm9ybS5SYWRpb0J1dHRvblxuICoqKiovXG5cbi5kaWppdENoZWNrQm94LFxuLmRpaml0UmFkaW8sXG4uZGlqaXRDaGVja0JveElucHV0IHtcblx0cGFkZGluZzogMDtcblx0Ym9yZGVyOiAwO1xuXHR3aWR0aDogMTZweDtcblx0aGVpZ2h0OiAxNnB4O1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciBjZW50ZXI7XG5cdGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmRpaml0Q2hlY2tCb3ggaW5wdXQsXG4uZGlqaXRSYWRpbyBpbnB1dCB7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbi5kaWppdENoZWNrQm94SW5wdXQge1xuXHQvKiBwbGFjZSB0aGUgYWN0dWFsIGlucHV0IG9uIHRvcCwgYnV0IGludmlzaWJsZSAqL1xuXHRvcGFjaXR5OiAwO1xufVxuXG4uZGpfaWUgLmRpaml0Q2hlY2tCb3hJbnB1dCB7XG5cdGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTtcbn1cblxuLmRqX2ExMXkgLmRpaml0Q2hlY2tCb3gsXG4uZGpfYTExeSAuZGlqaXRSYWRpbyB7XG5cdC8qIGluIGExMXkgbW9kZSB3ZSBkaXNwbGF5IHRoZSBuYXRpdmUgY2hlY2tib3ggKG5vdCB0aGUgaWNvbiksIHNvIGRvbid0IHJlc3RyaWN0IHRoZSBzaXplICovXG5cdHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG5cdGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0Q2hlY2tCb3hJbnB1dCB7XG5cdG9wYWNpdHk6IDE7XG5cdGZpbHRlcjogbm9uZTtcblx0d2lkdGg6IGF1dG87XG5cdGhlaWdodDogYXV0bztcbn1cblxuLmRqX2ExMXkgLmRpaml0Rm9jdXNlZExhYmVsIHtcblx0LyogZm9yIGNoZWNrYm94ZXMgb3IgcmFkaW8gYnV0dG9ucyBpbiBoaWdoIGNvbnRyYXN0IG1vZGUsIHVzZSBib3JkZXIgcmF0aGVyIHRoYW4gb3V0bGluZSB0byBpbmRpY2F0ZSBmb2N1cyAob3V0bGluZSBkb2VzIG5vdCB3b3JrIGluIEZGKSovXG5cdGJvcmRlcjogMXB4IGRvdHRlZDtcblx0b3V0bGluZTogMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi8qKioqXG5cdFx0ZGlqaXQuUHJvZ3Jlc3NCYXJcbiAqKioqL1xuXG4uZGlqaXRQcm9ncmVzc0JhciB7XG4gICAgei1pbmRleDogMDsgLyogc28gei1pbmRleCBzZXR0aW5ncyBiZWxvdyBoYXZlIG5vIGVmZmVjdCBvdXRzaWRlIG9mIHRoZSBQcm9ncmVzc0JhciAqL1xufVxuLmRpaml0UHJvZ3Jlc3NCYXJFbXB0eSB7XG5cdC8qIG91dGVyIGNvbnRhaW5lciBhbmQgYmFja2dyb3VuZCBvZiB0aGUgYmFyIHRoYXQncyBub3QgZmluaXNoZWQgeWV0Ki9cblx0cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuO1xuXHRib3JkZXI6MXB4IHNvbGlkIGJsYWNrOyBcdC8qIGExMXk6IGJvcmRlciBuZWNlc3NhcnkgZm9yIGhpZ2gtY29udHJhc3QgbW9kZSAqL1xuXHR6LWluZGV4OjA7XHRcdFx0LyogZXN0YWJsaXNoIGEgc3RhY2tpbmcgY29udGV4dCBmb3IgdGhpcyBwcm9ncmVzcyBiYXIgKi9cbn1cblxuLmRpaml0UHJvZ3Jlc3NCYXJGdWxsIHtcblx0Lyogb3V0ZXIgY29udGFpbmVyIGZvciBiYWNrZ3JvdW5kIG9mIGJhciB0aGF0IGlzIGZpbmlzaGVkICovXG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHRvdmVyZmxvdzpoaWRkZW47XG5cdHotaW5kZXg6LTE7XG5cdHRvcDowO1xuXHR3aWR0aDoxMDAlO1xufVxuLmRqX2llNiAuZGlqaXRQcm9ncmVzc0JhckZ1bGwge1xuXHRoZWlnaHQ6MS42ZW07XG59XG5cbi5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIGlubmVyIGNvbnRhaW5lciBmb3IgZmluaXNoZWQgcG9ydGlvbiAqL1xuXHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0b3ZlcmZsb3c6aGlkZGVuO1xuXHR0b3A6MDtcblx0bGVmdDowO1xuXHRib3R0b206MDtcblx0cmlnaHQ6MDtcblx0bWFyZ2luOjA7XG5cdHBhZGRpbmc6MDtcblx0d2lkdGg6IDEwMCU7ICAgIC8qIG5lZWRlZCBmb3IgSUUvcXVpcmtzICovXG5cdGhlaWdodDphdXRvO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiNhYWE7XG5cdGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG59XG5cbi5kal9hMTF5IC5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIGExMXk6ICBUaGUgYm9yZGVyIHByb3ZpZGVzIHZpc2liaWxpdHkgaW4gaGlnaC1jb250cmFzdCBtb2RlICovXG5cdGJvcmRlci13aWR0aDoycHg7XG5cdGJvcmRlci1zdHlsZTpzb2xpZDtcblx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4uZGpfaWU2IC5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIHdpZHRoOmF1dG8gd29ya3MgaW4gSUU2IHdpdGggcG9zaXRpb246c3RhdGljIGJ1dCBub3QgcG9zaXRpb246YWJzb2x1dGUgKi9cblx0cG9zaXRpb246c3RhdGljO1xuXHQvKiBoZWlnaHQ6YXV0byBvciAxMDAlIGRvZXMgbm90IHdvcmsgaW4gSUU2ICovXG5cdGhlaWdodDoxLjZlbTtcbn1cblxuLmRpaml0UHJvZ3Jlc3NCYXJJbmRldGVybWluYXRlIC5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIGFuaW1hdGVkIGdpZiBmb3IgJ2luZGV0ZXJtaW5hdGUnIG1vZGUgKi9cbn1cblxuLmRpaml0UHJvZ3Jlc3NCYXJJbmRldGVybWluYXRlSGlnaENvbnRyYXN0SW1hZ2Uge1xuXHRkaXNwbGF5Om5vbmU7XG59XG5cbi5kal9hMTF5IC5kaWppdFByb2dyZXNzQmFySW5kZXRlcm1pbmF0ZSAuZGlqaXRQcm9ncmVzc0JhckluZGV0ZXJtaW5hdGVIaWdoQ29udHJhc3RJbWFnZSB7XG5cdGRpc3BsYXk6YmxvY2s7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHR0b3A6MDtcblx0Ym90dG9tOjA7XG5cdG1hcmdpbjowO1xuXHRwYWRkaW5nOjA7XG5cdHdpZHRoOjEwMCU7XG5cdGhlaWdodDphdXRvO1xufVxuXG4uZGlqaXRQcm9ncmVzc0JhckxhYmVsIHtcblx0ZGlzcGxheTpibG9jaztcblx0cG9zaXRpb246c3RhdGljO1xuXHR3aWR0aDoxMDAlO1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4vKioqKlxuXHRcdGRpaml0LlRvb2x0aXBcbiAqKioqL1xuXG4uZGlqaXRUb29sdGlwIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiAyMDAwO1xuXHRkaXNwbGF5OiBibG9jaztcblx0LyogbWFrZSB2aXNpYmxlIGJ1dCBvZmYgc2NyZWVuICovXG5cdGxlZnQ6IDA7XG5cdHRvcDogLTEwMDAwcHg7XG5cdG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4uZGlqaXRUb29sdGlwQ29udGFpbmVyIHtcblx0Ym9yZGVyOiBzb2xpZCBibGFjayAycHg7XG5cdGJhY2tncm91bmQ6ICNiOGI1YjU7XG5cdGNvbG9yOiBibGFjaztcblx0Zm9udC1zaXplOiBzbWFsbDtcbn1cblxuLmRpaml0VG9vbHRpcEZvY3VzTm9kZSB7XG5cdHBhZGRpbmc6IDJweCAycHggMnB4IDJweDtcbn1cblxuLmRpaml0VG9vbHRpcENvbm5lY3RvciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5kal9hMTF5IC5kaWppdFRvb2x0aXBDb25uZWN0b3Ige1xuXHRkaXNwbGF5OiBub25lO1x0Lyogd29uJ3Qgc2hvdyBiL2MgaXQncyBiYWNrZ3JvdW5kLWltYWdlOyBoaWRlIHRvIGF2b2lkIGJvcmRlciBnYXAgKi9cbn1cblxuLmRpaml0VG9vbHRpcERhdGEge1xuXHRkaXNwbGF5Om5vbmU7XG59XG5cbi8qIExheW91dCB3aWRnZXRzLiBUaGlzIGlzIGVzc2VudGlhbCBDU1MgdG8gbWFrZSBsYXlvdXQgd29yayAoaXQgaXNuJ3QgXCJzdHlsaW5nXCIgQ1NTKVxuICAgbWFrZSBzdXJlIHRoYXQgdGhlIHBvc2l0aW9uOmFic29sdXRlIGluIGRpaml0QWxpZ24qIG92ZXJyaWRlcyBvdGhlciBjbGFzc2VzICovXG5cbi5kaWppdExheW91dENvbnRhaW5lciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5kaWppdEFsaWduVG9wLFxuLmRpaml0QWxpZ25Cb3R0b20sXG4uZGlqaXRBbGlnbkxlZnQsXG4uZGlqaXRBbGlnblJpZ2h0IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5ib2R5IC5kaWppdEFsaWduQ2xpZW50IHsgcG9zaXRpb246IGFic29sdXRlOyB9XG5cbi8qXG4gKiBCb3JkZXJDb250YWluZXJcbiAqXG4gKiAuZGlqaXRCb3JkZXJDb250YWluZXIgaXMgYSBzdHlsaXplZCBsYXlvdXQgd2hlcmUgcGFuZXMgaGF2ZSBib3JkZXIgYW5kIG1hcmdpbi5cbiAqIC5kaWppdEJvcmRlckNvbnRhaW5lck5vR3V0dGVyIGlzIGEgcmF3IGxheW91dC5cbiAqL1xuLmRpaml0Qm9yZGVyQ29udGFpbmVyLCAuZGlqaXRCb3JkZXJDb250YWluZXJOb0d1dHRlciB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuICAgIHotaW5kZXg6IDA7IC8qIHNvIHotaW5kZXggc2V0dGluZ3MgYmVsb3cgaGF2ZSBubyBlZmZlY3Qgb3V0c2lkZSBvZiB0aGUgQm9yZGVyQ29udGFpbmVyICovXG59XG5cbi5kaWppdEJvcmRlckNvbnRhaW5lclBhbmUsXG4uZGlqaXRCb3JkZXJDb250YWluZXJOb0d1dHRlclBhbmUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcdC8qICFpbXBvcnRhbnQgdG8gb3ZlcnJpZGUgcG9zaXRpb246cmVsYXRpdmUgaW4gZGlqaXRUYWJDb250YWluZXIgZXRjLiAqL1xuXHR6LWluZGV4OiAyO1x0XHQvKiBhYm92ZSB0aGUgc3BsaXR0ZXJzIHNvIHRoYXQgb2ZmLWJ5LW9uZSBicm93c2VyIGVycm9ycyBkb24ndCBjb3ZlciB1cCBib3JkZXIgb2YgcGFuZSAqL1xufVxuXG4uZGlqaXRCb3JkZXJDb250YWluZXIgPiAuZGlqaXRUZXh0QXJlYSB7XG5cdC8qIE9uIFNhZmFyaSwgZm9yIFNpbXBsZVRleHRBcmVhIGluc2lkZSBhIEJvcmRlckNvbnRhaW5lcixcblx0XHRkb24ndCB3YW50IHRvIGRpc3BsYXkgdGhlIGdyaXAgdG8gcmVzaXplICovXG5cdHJlc2l6ZTogbm9uZTtcbn1cblxuLmRpaml0R3V0dGVyIHtcblx0LyogZ3V0dGVyIGlzIGp1c3QgYSBwbGFjZSBob2xkZXIgZm9yIGVtcHR5IHNwYWNlIGJldHdlZW4gcGFuZXMgaW4gQm9yZGVyQ29udGFpbmVyICovXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0Zm9udC1zaXplOiAxcHg7XHRcdC8qIG5lZWRlZCBieSBJRTYgZXZlbiB0aG91Z2ggZGl2IGlzIGVtcHR5LCBvdGhlcndpc2UgZ29lcyB0byAxNXB4ICovXG59XG5cbi8qIFNwbGl0Q29udGFpbmVyXG5cblx0J1YnID09IGNvbnRhaW5lciB0aGF0IHNwbGl0cyB2ZXJ0aWNhbGx5ICh1cC9kb3duKVxuXHQnSCcgPSBob3Jpem9udGFsIChsZWZ0L3JpZ2h0KVxuKi9cblxuLmRpaml0U3BsaXR0ZXIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHotaW5kZXg6IDEwO1x0XHQvKiBhYm92ZSB0aGUgcGFuZXMgc28gdGhhdCBzcGxpdHRlciBmb2N1cyBpcyB2aXNpYmxlIG9uIEZGLCBzZWUgIzc1ODMqL1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRib3JkZXItY29sb3I6IGdyYXk7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci13aWR0aDogMDtcbn1cbi5kal9pZSAuZGlqaXRTcGxpdHRlciB7XG5cdHotaW5kZXg6IDE7XHQvKiBiZWhpbmQgdGhlIHBhbmVzIHNvIHRoYXQgcGFuZSBib3JkZXJzIGFyZW4ndCBvYnNjdXJlZCBzZWUgdGVzdF9HdWkuaHRtbC9bMTQzOTJdICovXG59XG5cbi5kaWppdFNwbGl0dGVyQWN0aXZlIHtcblx0ei1pbmRleDogMTEgIWltcG9ydGFudDtcbn1cblxuLmRpaml0U3BsaXR0ZXJDb3ZlciB7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHR6LWluZGV4Oi0xO1xuXHR0b3A6MDtcblx0bGVmdDowO1xuXHR3aWR0aDoxMDAlO1xuXHRoZWlnaHQ6MTAwJTtcbn1cblxuLmRpaml0U3BsaXR0ZXJDb3ZlckFjdGl2ZSB7XG5cdHotaW5kZXg6MyAhaW1wb3J0YW50O1xufVxuXG4vKiAjNjk0NTogc3RvcCBtb3VzZSBldmVudHMgKi9cbi5kal9pZSAuZGlqaXRTcGxpdHRlckNvdmVyIHtcblx0YmFja2dyb3VuZDogd2hpdGU7XG5cdG9wYWNpdHk6IDA7XG59XG4uZGpfaWU2IC5kaWppdFNwbGl0dGVyQ292ZXIsXG4uZGpfaWU3IC5kaWppdFNwbGl0dGVyQ292ZXIsXG4uZGpfaWU4IC5kaWppdFNwbGl0dGVyQ292ZXIge1xuXHRmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MCk7XG59XG5cbi5kaWppdFNwbGl0dGVySCB7XG5cdGhlaWdodDogN3B4O1xuXHRib3JkZXItdG9wOjFweDtcblx0Ym9yZGVyLWJvdHRvbToxcHg7XG5cdGN1cnNvcjogcm93LXJlc2l6ZTtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5kaWppdFNwbGl0dGVyViB7XG5cdHdpZHRoOiA3cHg7XG5cdGJvcmRlci1sZWZ0OjFweDtcblx0Ym9yZGVyLXJpZ2h0OjFweDtcblx0Y3Vyc29yOiBjb2wtcmVzaXplO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmRpaml0U3BsaXRDb250YWluZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uZGlqaXRTcGxpdFBhbmUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbi5kaWppdFNwbGl0Q29udGFpbmVyU2l6ZXJILFxuLmRpaml0U3BsaXRDb250YWluZXJTaXplclYge1xuXHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0Zm9udC1zaXplOiAxcHg7XG5cdGJhY2tncm91bmQtY29sb3I6IFRocmVlREZhY2U7XG5cdGJvcmRlcjogMXB4IHNvbGlkO1xuXHRib3JkZXItY29sb3I6IFRocmVlREhpZ2hsaWdodCBUaHJlZURTaGFkb3cgVGhyZWVEU2hhZG93IFRocmVlREhpZ2hsaWdodDtcblx0bWFyZ2luOiAwO1xufVxuXG4uZGlqaXRTcGxpdENvbnRhaW5lclNpemVySCAudGh1bWIsIC5kaWppdFNwbGl0dGVyViAuZGlqaXRTcGxpdHRlclRodW1iIHtcblx0b3ZlcmZsb3c6aGlkZGVuO1xuXHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0dG9wOjQ5JTtcbn1cblxuLmRpaml0U3BsaXRDb250YWluZXJTaXplclYgLnRodW1iLCAuZGlqaXRTcGxpdHRlckggLmRpaml0U3BsaXR0ZXJUaHVtYiB7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHRsZWZ0OjQ5JTtcbn1cblxuLmRpaml0U3BsaXR0ZXJTaGFkb3csXG4uZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplckgsXG4uZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplclYge1xuXHRmb250LXNpemU6IDFweDtcblx0YmFja2dyb3VuZC1jb2xvcjogVGhyZWVEU2hhZG93O1xuXHQtbW96LW9wYWNpdHk6IDAuNTtcblx0b3BhY2l0eTogMC41O1xuXHRmaWx0ZXI6IEFscGhhKE9wYWNpdHk9NTApO1xuXHRtYXJnaW46IDA7XG59XG5cbi5kaWppdFNwbGl0Q29udGFpbmVyU2l6ZXJILCAuZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplckgge1xuXHRjdXJzb3I6IGNvbC1yZXNpemU7XG59XG5cbi5kaWppdFNwbGl0Q29udGFpbmVyU2l6ZXJWLCAuZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplclYge1xuXHRjdXJzb3I6IHJvdy1yZXNpemU7XG59XG5cbi5kal9hMTF5IC5kaWppdFNwbGl0dGVySCB7XG5cdGJvcmRlci10b3A6MXB4IHNvbGlkICNkM2QzZDMgIWltcG9ydGFudDtcblx0Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2QzZDNkMyAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0U3BsaXR0ZXJWIHtcblx0Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNkM2QzZDMgIWltcG9ydGFudDtcblx0Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjZDNkM2QzICFpbXBvcnRhbnQ7XG59XG5cbi8qIENvbnRlbnRQYW5lICovXG5cbi5kaWppdENvbnRlbnRQYW5lIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG92ZXJmbG93OiBhdXRvO1x0LyogaWYgd2UgZG9uJ3QgaGF2ZSB0aGlzIChvciBvdmVyZmxvdzpoaWRkZW4pLCB0aGVuIFdpZGdldC5yZXNpemVUbygpIGRvZXNuJ3QgbWFrZSBzZW5zZSBmb3IgQ29udGVudFBhbmUgKi9cblx0LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuXG4uZGlqaXRDb250ZW50UGFuZVNpbmdsZUNoaWxkIHtcblx0Lypcblx0ICogaWYgdGhlIENvbnRlbnRQYW5lIGhvbGRzIGEgc2luZ2xlIGxheW91dCB3aWRnZXQgY2hpbGQgd2hpY2ggaXMgYmVpbmcgc2l6ZWQgdG8gbWF0Y2ggdGhlIGNvbnRlbnQgcGFuZSxcblx0ICogdGhlbiB0aGUgQ29udGVudFBhbmUgc2hvdWxkIG5ldmVyIGdldCBhIHNjcm9sbGJhciAoYnV0IGl0IGRvZXMgZHVlIHRvIGJyb3dzZXIgYnVncywgc2VlICM5NDQ5XG5cdCAqL1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZGlqaXRDb250ZW50UGFuZUxvYWRpbmcgLmRpaml0SWNvbkxvYWRpbmcsXG4uZGlqaXRDb250ZW50UGFuZUVycm9yIC5kaWppdEljb25FcnJvciB7XG5cdG1hcmdpbi1yaWdodDogOXB4O1xufVxuXG4vKiBUaXRsZVBhbmUgYW5kIEZpZWxkc2V0ICovXG5cbi5kaWppdFRpdGxlUGFuZSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuLmRpaml0RmllbGRzZXQge1xuXHRib3JkZXI6IDFweCBzb2xpZCBncmF5O1xufVxuLmRpaml0VGl0bGVQYW5lVGl0bGUsIC5kaWppdEZpZWxkc2V0VGl0bGUge1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZGlqaXRUaXRsZVBhbmVUaXRsZUZpeGVkT3BlbiwgLmRpaml0VGl0bGVQYW5lVGl0bGVGaXhlZENsb3NlZCxcbi5kaWppdEZpZWxkc2V0VGl0bGVGaXhlZE9wZW4sIC5kaWppdEZpZWxkc2V0VGl0bGVGaXhlZENsb3NlZCB7XG5cdC8qIFRpdGxlUGFuZSBvciBGaWVsZHNldCB0aGF0IGNhbm5vdCBiZSB0b2dnbGVkICovXG5cdGN1cnNvcjogZGVmYXVsdDtcbn1cbi5kaWppdFRpdGxlUGFuZVRpdGxlICoge1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmRpaml0VGl0bGVQYW5lIC5kaWppdEFycm93Tm9kZUlubmVyLCAuZGlqaXRGaWVsZHNldCAuZGlqaXRBcnJvd05vZGVJbm5lciB7XG5cdC8qIG5vcm1hbGx5LCBoaWRlIGFycm93IHRleHQgaW4gZmF2b3Igb2YgaWNvbiAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuLmRqX2ExMXkgLmRpaml0VGl0bGVQYW5lIC5kaWppdEFycm93Tm9kZUlubmVyLCAuZGpfYTExeSAuZGlqaXRGaWVsZHNldCAuZGlqaXRBcnJvd05vZGVJbm5lciB7XG5cdC8qIC4uLiBleGNlcHQgaW4gYTExeSBtb2RlLCB0aGVuIHNob3cgdGV4dCBhcnJvdyAqL1xuXHRkaXNwbGF5OiBpbmxpbmU7XG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XHRcdC8qIGJlY2F1c2UgLSBhbmQgKyBhcmUgZGlmZmVyZW50IHdpZHRocyAqL1xufVxuLmRqX2ExMXkgLmRpaml0VGl0bGVQYW5lIC5kaWppdEFycm93Tm9kZSwgLmRqX2ExMXkgLmRpaml0RmllbGRzZXQgLmRpaml0QXJyb3dOb2RlIHtcblx0LyogLi4uIGFuZCBoaWRlIGljb24gKFRPRE86IGp1c3QgcG9pbnQgZGlqaXRJY29uIGNsYXNzIG9uIHRoZSBpY29uLCBhbmQgaXQgaGlkZXMgYXV0b21hdGljYWxseSkgKi9cblx0ZGlzcGxheTogbm9uZTtcbn1cbi5kaWppdFRpdGxlUGFuZVRpdGxlRml4ZWRPcGVuIC5kaWppdEFycm93Tm9kZSwgLmRpaml0VGl0bGVQYW5lVGl0bGVGaXhlZE9wZW4gLmRpaml0QXJyb3dOb2RlSW5uZXIsXG4uZGlqaXRUaXRsZVBhbmVUaXRsZUZpeGVkQ2xvc2VkIC5kaWppdEFycm93Tm9kZSwgLmRpaml0VGl0bGVQYW5lVGl0bGVGaXhlZENsb3NlZCAuZGlqaXRBcnJvd05vZGVJbm5lcixcbi5kaWppdEZpZWxkc2V0VGl0bGVGaXhlZE9wZW4gLmRpaml0QXJyb3dOb2RlLCAuZGlqaXRGaWVsZHNldFRpdGxlRml4ZWRPcGVuIC5kaWppdEFycm93Tm9kZUlubmVyLFxuLmRpaml0RmllbGRzZXRUaXRsZUZpeGVkQ2xvc2VkIC5kaWppdEFycm93Tm9kZSwgLmRpaml0RmllbGRzZXRUaXRsZUZpeGVkQ2xvc2VkIC5kaWppdEFycm93Tm9kZUlubmVyIHtcblx0LyogZG9uJ3Qgc2hvdyB0aGUgb3BlbiBjbG9zZSBpY29uIG9yIHRleHQgYXJyb3c7IGl0IG1ha2VzIHRoZSB1c2VyIHRoaW5rIHRoZSBwYW5lIGlzIGNsb3NhYmxlICovXG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcdC8qICFpbXBvcnRhbnQgdG8gb3ZlcnJpZGUgYWJvdmUgYTExeSBydWxlcyB0byBzaG93IHRleHQgYXJyb3cgKi9cbn1cblxuLmRqX2llNiAuZGlqaXRUaXRsZVBhbmVDb250ZW50T3V0ZXIsXG4uZGpfaWU2IC5kaWppdFRpdGxlUGFuZSAuZGlqaXRUaXRsZVBhbmVUaXRsZSB7XG5cdC8qIGZvcmNlIGhhc0xheW91dCB0byBlbnN1cmUgYm9yZGVycyBldGMsIHNob3cgdXAgKi9cblx0em9vbTogMTtcbn1cblxuLyogQ29sb3IgUGFsZXR0ZVxuICogU2l6ZXMgZGVzaWduZWQgc28gdGhhdCB0YWJsZSBjZWxsIHBvc2l0aW9ucyBtYXRjaCBpY29ucyBpbiB1bmRlcmx5aW5nIGltYWdlLFxuICogd2hpY2ggYXBwZWFyIGF0IDIweDIwIGludGVydmFscy5cbiAqL1xuXG4uZGlqaXRDb2xvclBhbGV0dGUge1xuXHRib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuXHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5kaWppdENvbG9yUGFsZXR0ZSAuZGlqaXRQYWxldHRlVGFibGUge1xuXHQvKiBUYWJsZSB0aGF0IGhvbGRzIHRoZSBwYWxldHRlIGNlbGxzLCBhbmQgb3ZlcmxheXMgaW1hZ2UgZmlsZSB3aXRoIGNvbG9yIHN3YXRjaGVzLlxuXHQgKiBwYWRkaW5nL21hcmdpbiB0byBhbGlnbiB0YWJsZSB3aXRoIGltYWdlLlxuXHQgKi9cblx0cGFkZGluZzogMnB4IDNweCAzcHggM3B4O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdG91dGxpbmU6IDA7XG5cdGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG59XG4uZGpfaWU2IC5kaWppdENvbG9yUGFsZXR0ZSAuZGlqaXRQYWxldHRlVGFibGUsXG4uZGpfaWU3IC5kaWppdENvbG9yUGFsZXR0ZSAuZGlqaXRQYWxldHRlVGFibGUsXG4uZGpfaWVxdWlya3MgLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVUYWJsZSB7XG5cdC8qIHVzaW5nIHBhZGRpbmcgYWJvdmUgc28gdGhhdCBmb2N1cyBib3JkZXIgaXNuJ3QgY3V0b2ZmIG9uIG1vei93ZWJraXQsXG5cdCAqIGJ1dCB1c2luZyBtYXJnaW4gb24gSUUgYmVjYXVzZSBwYWRkaW5nIGRvZXNuJ3Qgc2VlbSB0byB3b3JrXG5cdCAqL1xuXHRwYWRkaW5nOiAwO1xuXHRtYXJnaW46IDJweCAzcHggM3B4IDNweDtcbn1cblxuLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVDZWxsIHtcblx0LyogPHRkPiBpbiB0aGUgPHRhYmxlPiAqL1xuXHRmb250LXNpemU6IDFweDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRiYWNrZ3JvdW5kOiBub25lO1xufVxuLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVJbWcge1xuXHQvKiBDYWxsZWQgZGlqaXRQYWxldHRlSW1nIGZvciBiYWNrLWNvbXBhdCwgdGhpcyBhY3R1YWxseSB3cmFwcyB0aGUgY29sb3Igc3dhdGNoIHdpdGggYSBib3JkZXIgYW5kIHBhZGRpbmcgKi9cblx0cGFkZGluZzogMXB4O1x0XHQvKiB3aGl0ZSBhcmVhIGJldHdlZW4gZ3JheSBib3JkZXIgYW5kIGNvbG9yIHN3YXRjaCAqL1xuXHRib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuXHRtYXJnaW46IDJweCAxcHg7XG5cdGN1cnNvcjogZGVmYXVsdDtcblx0Zm9udC1zaXplOiAxcHg7XHRcdC8qIHByZXZlbnQgPHNwYW4+IGZyb20gZ2V0dGluZyBiaWdnZXIganVzdCB0byBob2xkIGEgY2hhcmFjdGVyICovXG59XG4uZGpfZ2Vja28gLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVJbWcge1xuXHRwYWRkaW5nLWJvdHRvbTogMDtcdC8qIHdvcmthcm91bmQgcmVuZGVyaW5nIGdsaXRjaCBvbiBGRiwgaXQgYWRkcyBhbiBleHRyYSBwaXhlbCBhdCB0aGUgYm90dG9tICovXG59XG4uZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0Q29sb3JQYWxldHRlU3dhdGNoIHtcblx0LyogdGhlIGFjdHVhbCBwYXJ0IHdoZXJlIHRoZSBjb2xvciBpcyAqL1xuXHR3aWR0aDogMTRweDtcblx0aGVpZ2h0OiAxMnB4O1xufVxuLmRpaml0UGFsZXR0ZVRhYmxlIHRkIHtcblx0XHRwYWRkaW5nOiAwO1xufVxuLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVDZWxsOmhvdmVyIC5kaWppdFBhbGV0dGVJbWcge1xuXHQvKiBob3ZlcmVkIGNvbG9yIHN3YXRjaCAqL1xuXHRib3JkZXI6IDFweCBzb2xpZCAjMDAwO1xufVxuXG4uZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0UGFsZXR0ZUNlbGw6YWN0aXZlIC5kaWppdFBhbGV0dGVJbWcsXG4uZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0UGFsZXR0ZVRhYmxlIC5kaWppdFBhbGV0dGVDZWxsU2VsZWN0ZWQgLmRpaml0UGFsZXR0ZUltZyB7XG5cdGJvcmRlcjogMnB4IHNvbGlkICMwMDA7XG5cdG1hcmdpbjogMXB4IDA7XHQvKiByZWR1Y2UgbWFyZ2luIHRvIGNvbXBlbnNhdGUgZm9yIGluY3JlYXNlZCBib3JkZXIgKi9cbn1cblxuXG4uZGpfYTExeSAuZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0UGFsZXR0ZVRhYmxlLFxuLmRqX2ExMXkgLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVUYWJsZSAqIHtcblx0LyogdGFibGUgY2VsbHMgYXJlIHRvIGNhdGNoIGV2ZW50cywgYnV0IHRoZSBzd2F0Y2hlcyBhcmUgaW4gdGhlIFBhbGV0dGVJbWcgYmVoaW5kIHRoZSB0YWJsZSAqL1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4vKiBBY2NvcmRpb25Db250YWluZXIgKi9cblxuLmRpaml0QWNjb3JkaW9uQ29udGFpbmVyIHtcblx0Ym9yZGVyOjFweCBzb2xpZCAjYjdiN2I3O1xuXHRib3JkZXItdG9wOjAgIWltcG9ydGFudDtcbn1cbi5kaWppdEFjY29yZGlvblRpdGxlIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmRpaml0QWNjb3JkaW9uVGl0bGVTZWxlY3RlZCB7XG5cdGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLyogaW1hZ2VzIG9mZiwgaGlnaC1jb250cmFzdCBtb2RlIHN0eWxlcyAqL1xuLmRpaml0QWNjb3JkaW9uVGl0bGUgLmFycm93VGV4dFVwLFxuLmRpaml0QWNjb3JkaW9uVGl0bGUgLmFycm93VGV4dERvd24ge1xuXHRkaXNwbGF5OiBub25lO1xuXHRmb250LXNpemU6IDAuNjVlbTtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbCAhaW1wb3J0YW50O1xufVxuXG4uZGpfYTExeSAuZGlqaXRBY2NvcmRpb25UaXRsZSAuYXJyb3dUZXh0VXAsXG4uZGpfYTExeSAuZGlqaXRBY2NvcmRpb25UaXRsZVNlbGVjdGVkIC5hcnJvd1RleHREb3duIHtcblx0ZGlzcGxheTogaW5saW5lO1xufVxuXG4uZGpfYTExeSAuZGlqaXRBY2NvcmRpb25UaXRsZVNlbGVjdGVkIC5hcnJvd1RleHRVcCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kaWppdEFjY29yZGlvbkNoaWxkV3JhcHBlciB7XG5cdC8qIHRoaXMgaXMgdGhlIG5vZGUgd2hvc2UgaGVpZ2h0IGlzIGFkanVzdGVkICovXG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIENhbGVuZGFyICovXG5cbi5kaWppdENhbGVuZGFyQ29udGFpbmVyIHRhYmxlIHtcblx0d2lkdGg6IGF1dG87XHQvKiBpbiBjYXNlIHVzZXIgaGFzIHNwZWNpZmllZCBhIHdpZHRoIGZvciB0aGUgVEFCTEUgbm9kZXMsIHNlZSAjMTA1NTMgKi9cblx0Y2xlYXI6IGJvdGg7ICAgIC8qIGNsZWFyIG1hcmdpbiBjcmVhdGVkIGZvciBsZWZ0L3JpZ2h0IG1vbnRoIGFycm93czsgbmVlZGVkIG9uIElFMTAgZm9yIENhbGVuZGFyTGl0ZSAqL1xufVxuLmRpaml0Q2FsZW5kYXJDb250YWluZXIgdGgsIC5kaWppdENhbGVuZGFyQ29udGFpbmVyIHRkIHtcblx0cGFkZGluZzogMDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmRpaml0Q2FsZW5kYXJNb250aENvbnRhaW5lciB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5kaWppdENhbGVuZGFyRGVjcmVtZW50QXJyb3cge1xuXHRmbG9hdDogbGVmdDtcbn1cbi5kaWppdENhbGVuZGFySW5jcmVtZW50QXJyb3cge1xuXHRmbG9hdDogcmlnaHQ7XG59XG5cbi5kaWppdENhbGVuZGFyWWVhckxhYmVsIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyAgICAvKiBtYWtlIHN1cmUgcHJldmlvdXMsIGN1cnJlbnQsIGFuZCBuZXh0IHllYXIgYXBwZWFyIG9uIHNhbWUgcm93ICovXG59XG5cbi5kaWppdENhbGVuZGFyTmV4dFllYXIge1xuXHRtYXJnaW46MCAwIDAgMC41NWVtO1xufVxuXG4uZGlqaXRDYWxlbmRhclByZXZpb3VzWWVhciB7XG5cdG1hcmdpbjowIDAuNTVlbSAwIDA7XG59XG5cbi5kaWppdENhbGVuZGFySW5jcmVtZW50Q29udHJvbCB7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5kaWppdENhbGVuZGFySW5jcmVtZW50Q29udHJvbCxcbi5kaWppdENhbGVuZGFyRGF0ZVRlbXBsYXRlLFxuLmRpaml0Q2FsZW5kYXJNb250aExhYmVsLFxuLmRpaml0Q2FsZW5kYXJQcmV2aW91c1llYXIsXG4uZGlqaXRDYWxlbmRhck5leHRZZWFyIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uZGlqaXRDYWxlbmRhckRpc2FibGVkRGF0ZSB7XG5cdGNvbG9yOiBncmF5O1xuXHR0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcblx0Y3Vyc29yOiBkZWZhdWx0O1xufVxuXG4uZGlqaXRTcGFjZXIge1xuXHQvKiBkb24ndCBkaXNwbGF5IGl0LCBidXQgbWFrZSBpdCBhZmZlY3QgdGhlIHdpZHRoICovXG4gIFx0cG9zaXRpb246IHJlbGF0aXZlO1xuICBcdGhlaWdodDogMXB4O1xuICBcdG92ZXJmbG93OiBoaWRkZW47XG4gIFx0dmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4vKiBTdHlsaW5nIGZvciBtb250aCBkcm9wIGRvd24gbGlzdCAqL1xuXG4uZGlqaXRDYWxlbmRhck1vbnRoTWVudSAuZGlqaXRDYWxlbmRhck1vbnRoTGFiZWwge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcbn1cblxuLyogTWVudSAqL1xuXG4uZGlqaXRNZW51IHtcblx0Ym9yZGVyOjFweCBzb2xpZCBibGFjaztcblx0YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtcbn1cbi5kaWppdE1lbnVUYWJsZSB7XG5cdGJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtcblx0Ym9yZGVyLXdpZHRoOjA7XG5cdGJhY2tncm91bmQtY29sb3I6d2hpdGU7XG59XG5cbi8qIHdvcmthcm91bmQgZm9yIHdlYmtpdCBidWcgIzg0MjcsIHJlbW92ZSB0aGlzIHdoZW4gaXQgaXMgZml4ZWQgdXBzdHJlYW0gKi9cbi5kal93ZWJraXQgLmRpaml0TWVudVRhYmxlIHRkW2NvbHNwYW49XCIyXCJde1xuXHRib3JkZXItcmlnaHQ6aGlkZGVuO1xufVxuXG4uZGlqaXRNZW51SXRlbSB7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdHBhZGRpbmc6LjFlbSAuMmVtO1xuXHRjdXJzb3I6cG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLypcbk5vIG5lZWQgdG8gc2hvdyBhIGZvY3VzIGJvcmRlciBzaW5jZSBpdCdzIG9idmlvdXMgZnJvbSB0aGUgc2hhZGluZywgYW5kIHRoZXJlJ3MgYSAuZGpfYTExeSAuZGlqaXRNZW51SXRlbVNlbGVjdGVkXG5ydWxlIGJlbG93IHRoYXQgaGFuZGxlcyB0aGUgaGlnaCBjb250cmFzdCBjYXNlIHdoZW4gdGhlcmUncyBubyBzaGFkaW5nLlxuSGlkaW5nIHRoZSBmb2N1cyBib3JkZXIgYWxzbyB3b3JrcyBhcm91bmQgd2Via2l0IGJ1ZyBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9MTI1Nzc5LlxuKi9cbi5kaWppdE1lbnVJdGVtOmZvY3VzIHtcblx0b3V0bGluZTogbm9uZVxufVxuXG4uZGlqaXRNZW51UGFzc2l2ZSAuZGlqaXRNZW51SXRlbUhvdmVyLFxuLmRpaml0TWVudUl0ZW1TZWxlY3RlZCB7XG5cdC8qXG5cdCAqIGRpaml0TWVudUl0ZW1Ib3ZlciByZWZlcnMgdG8gYWN0dWFsIG1vdXNlIG92ZXJcblx0ICogZGlqaXRNZW51SXRlbVNlbGVjdGVkIGlzIHVzZWQgYWZ0ZXIgYSBtZW51IGhhcyBiZWVuIFwiYWN0aXZhdGVkXCIgYnlcblx0ICogY2xpY2tpbmcgaXQsIHRhYmJpbmcgaW50byBpdCwgb3IgYmVpbmcgb3BlbmVkIGZyb20gYSBwYXJlbnQgbWVudSxcblx0ICogYW5kIGRlbm90ZXMgdGhhdCB0aGUgbWVudSBpdGVtIGhhcyBmb2N1cyBvciB0aGF0IGZvY3VzIGlzIG9uIGEgY2hpbGRcblx0ICogbWVudVxuXHQgKi9cblx0YmFja2dyb3VuZC1jb2xvcjpibGFjaztcblx0Y29sb3I6d2hpdGU7XG59XG5cbi5kaWppdE1lbnVJdGVtSWNvbiwgLmRpaml0TWVudUV4cGFuZCB7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG5cbi5kaWppdE1lbnVJdGVtRGlzYWJsZWQgKiB7XG5cdC8qIGZvciBhIGRpc2FibGVkIG1lbnUgaXRlbSwganVzdCBzZXQgaXQgdG8gbW9zdGx5IHRyYW5zcGFyZW50ICovXG5cdG9wYWNpdHk6MC41O1xuXHRjdXJzb3I6ZGVmYXVsdDtcbn1cbi5kal9pZSAuZGpfYTExeSAuZGlqaXRNZW51SXRlbURpc2FibGVkLFxuLmRqX2llIC5kal9hMTF5IC5kaWppdE1lbnVJdGVtRGlzYWJsZWQgKixcbi5kal9pZSAuZGlqaXRNZW51SXRlbURpc2FibGVkICoge1xuXHRjb2xvcjogZ3JheTtcblx0ZmlsdGVyOiBhbHBoYShvcGFjaXR5PTM1KTtcbn1cblxuLmRpaml0TWVudUl0ZW1MYWJlbCB7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5kal9hMTF5IC5kaWppdE1lbnVJdGVtU2VsZWN0ZWQge1xuXHRib3JkZXI6IDFweCBkb3R0ZWQgYmxhY2sgIWltcG9ydGFudDtcdC8qIGZvciAyLjAgdXNlIG91dGxpbmUgaW5zdGVhZCwgdG8gcHJldmVudCBqaXR0ZXIgKi9cbn1cblxuLmRqX2ExMXkgLmRpaml0TWVudUl0ZW1TZWxlY3RlZCAuZGlqaXRNZW51SXRlbUxhYmVsIHtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG59XG4uZGpfaWU4IC5kal9hMTF5IC5kaWppdE1lbnVJdGVtTGFiZWwge1xuXHRwb3NpdGlvbjpzdGF0aWM7XG59XG5cbi5kaWppdE1lbnVFeHBhbmRBMTF5IHtcblx0ZGlzcGxheTogbm9uZTtcbn1cbi5kal9hMTF5IC5kaWppdE1lbnVFeHBhbmRBMTF5IHtcblx0ZGlzcGxheTogaW5saW5lO1xufVxuXG4uZGlqaXRNZW51U2VwYXJhdG9yIHRkIHtcblx0Ym9yZGVyOiAwO1xuXHRwYWRkaW5nOiAwO1xufVxuXG4vKiBzZXBhcmF0b3IgY2FuIGJlIHR3byBwaXhlbHMgLS0gc2V0IGJvcmRlciBvZiBlaXRoZXIgb25lIHRvIDAgdG8gaGF2ZSBvbmx5IG9uZSAqL1xuLmRpaml0TWVudVNlcGFyYXRvclRvcCB7XG5cdGhlaWdodDogNTAlO1xuXHRtYXJnaW46IDA7XG5cdG1hcmdpbi10b3A6M3B4O1xuXHRmb250LXNpemU6IDFweDtcbn1cblxuLmRpaml0TWVudVNlcGFyYXRvckJvdHRvbSB7XG5cdGhlaWdodDogNTAlO1xuXHRtYXJnaW46IDA7XG5cdG1hcmdpbi1ib3R0b206M3B4O1xuXHRmb250LXNpemU6IDFweDtcbn1cblxuLyogQ2hlY2tlZE1lbnVJdGVtIGFuZCBSYWRpb01lbnVJdGVtICovXG4uZGlqaXRNZW51SXRlbUljb25DaGFyIHtcblx0ZGlzcGxheTogbm9uZTtcdFx0LyogZG9uJ3QgZGlzcGxheSBleGNlcHQgaW4gaGlnaCBjb250cmFzdCBtb2RlICovXG5cdHZpc2liaWxpdHk6IGhpZGRlbjtcdC8qIGZvciBoaWdoIGNvbnRyYXN0IG1vZGUgd2hlbiBtZW51aXRlbSBpcyB1bmNoZWNrZWQ6IGxlYXZlIHNwYWNlIGZvciB3aGVuIGl0IGlzIGNoZWNrZWQgKi9cbn1cbi5kal9hMTF5IC5kaWppdE1lbnVJdGVtSWNvbkNoYXIge1xuXHRkaXNwbGF5OiBpbmxpbmU7XHQvKiBkaXNwbGF5IGNoYXJhY3RlciBpbiBoaWdoIGNvbnRyYXN0IG1vZGUsIHNpbmNlIGljb24gZG9lc24ndCBzaG93ICovXG59XG4uZGlqaXRDaGVja2VkTWVudUl0ZW1DaGVja2VkIC5kaWppdE1lbnVJdGVtSWNvbkNoYXIsXG4uZGlqaXRSYWRpb01lbnVJdGVtQ2hlY2tlZCAuZGlqaXRNZW51SXRlbUljb25DaGFyIHtcblx0dmlzaWJpbGl0eTogdmlzaWJsZTsgLyogbWVudWl0ZW0gaXMgY2hlY2tlZCAqL1xufVxuLmRqX2llIC5kal9hMTF5IC5kaWppdE1lbnVCYXIgLmRpaml0TWVudUl0ZW0ge1xuXHQvKiBzbyBib3R0b20gYm9yZGVyIG9mIE1lbnVCYXIgYXBwZWFycyBvbiBJRTcgaW4gaGlnaC1jb250cmFzdCBtb2RlICovXG5cdG1hcmdpbjogMDtcbn1cblxuLyogU3RhY2tDb250YWluZXIgKi9cblxuLmRpaml0U3RhY2tDb250cm9sbGVyIC5kaWppdFRvZ2dsZUJ1dHRvbkNoZWNrZWQgKiB7XG5cdGN1cnNvcjogZGVmYXVsdDtcdC8qIGJlY2F1c2UgcHJlc3NpbmcgaXQgaGFzIG5vIGVmZmVjdCAqL1xufVxuXG4vKioqXG5UYWJDb250YWluZXJcblxuTWFpbiBjbGFzcyBoaWVyYXJjaHk6XG5cbi5kaWppdFRhYkNvbnRhaW5lciAtIHRoZSB3aG9sZSBUYWJDb250YWluZXJcbiAgIC5kaWppdFRhYkNvbnRyb2xsZXIgLyAuZGlqaXRUYWJMaXN0Q29udGFpbmVyLXRvcCAtIHdyYXBwZXIgZm9yIHRhYiBidXR0b25zLCBzY3JvbGwgYnV0dG9uc1xuXHQgLmRpaml0VGFiTGlzdFdyYXBwZXIgLyAuZGlqaXRUYWJDb250YWluZXJUb3BTdHJpcCAtIG91dGVyIHdyYXBwZXIgZm9yIHRhYiBidXR0b25zIChub3JtYWwgd2lkdGgpXG5cdFx0Lm5vd3JhcFRhYlN0cmlwIC8gLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMgLSBpbm5lciB3cmFwcGVyIGZvciB0YWIgYnV0dG9ucyAoNTBLIHdpZHRoKVxuICAgLmRpaml0VGFiUGFuZVdyYXBwZXIgLSB3cmFwcGVyIGZvciBjb250ZW50IHBhbmVzLCBoYXMgYWxsIGJvcmRlcnMgZXhjZXB0IHRoZSBvbmUgYmV0d2VlbiBjb250ZW50IGFuZCB0YWJzXG4qKiovXG5cbi5kaWppdFRhYkNvbnRhaW5lciB7XG4gICAgei1pbmRleDogMDsgLyogc28gei1pbmRleCBzZXR0aW5ncyBiZWxvdyBoYXZlIG5vIGVmZmVjdCBvdXRzaWRlIG9mIHRoZSBUYWJDb250YWluZXIgKi9cbiAgICBvdmVyZmxvdzogdmlzaWJsZTsgLyogcHJldmVudCBvZmYtYnktb25lLXBpeGVsIGVycm9ycyBmcm9tIGhpZGluZyBib3R0b20gYm9yZGVyIChvcHBvc2l0ZSB0YWIgbGFiZWxzKSAqL1xufVxuLmRqX2llNiAuZGlqaXRUYWJDb250YWluZXIge1xuICAgIC8qIHdvcmthcm91bmQgSUU2IHByb2JsZW0gd2hlbiB0YWxsIGNvbnRlbnQgb3ZlcmZsb3dzIFRhYkNvbnRhaW5lciwgc2VlIGVkaXRvci90ZXN0X0Z1bGxTY3JlZW4uaHRtbCAqL1xuICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxufVxuLmRpaml0VGFiQ29udGFpbmVyTm9MYXlvdXQge1xuXHR3aWR0aDogMTAwJTtcdC8qIG90aGVyd2lzZSBTY3JvbGxpbmdUYWJDb250cm9sbGVyIGdvZXMgdG8gNTBLIHBpeGVscyB3aWRlICovXG59XG5cbi5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS10YWJzLFxuLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMsXG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LXRhYnMsXG4uZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzIHtcbiAgICB6LWluZGV4OiAxO1xuXHRvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50OyAgLyogc28gdGFicyBjYW4gY292ZXIgdXAgYm9yZGVyIGFkamFjZW50IHRvIGNvbnRhaW5lciAqL1xufVxuXG4uZGlqaXRUYWJDb250cm9sbGVyIHtcbiAgICB6LWluZGV4OiAxO1xufVxuLmRpaml0VGFiQ29udGFpbmVyQm90dG9tLWNvbnRhaW5lcixcbi5kaWppdFRhYkNvbnRhaW5lclRvcC1jb250YWluZXIsXG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LWNvbnRhaW5lcixcbi5kaWppdFRhYkNvbnRhaW5lclJpZ2h0LWNvbnRhaW5lciB7XG5cdHotaW5kZXg6MDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0Ym9yZGVyOiAxcHggc29saWQgYmxhY2s7XG59XG4ubm93cmFwVGFiU3RyaXAge1xuXHR3aWR0aDogNTAwMDBweDtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyAgLyoganVzdCBpbiBjYXNlIGFuY2VzdG9yIGhhcyBub24tc3RhbmRhcmQgc2V0dGluZyAqL1xuICAgIHotaW5kZXg6IDE7XG59XG4uZGlqaXRUYWJMaXN0V3JhcHBlciB7XG5cdG92ZXJmbG93OiBoaWRkZW47XG4gICAgei1pbmRleDogMTtcbn1cblxuLmRqX2ExMXkgLnRhYlN0cmlwQnV0dG9uIGltZyB7XG5cdC8qIGhpZGUgdGhlIGljb25zIChvciByYXRoZXIgdGhlIGVtcHR5IHNwYWNlIHdoZXJlIHRoZXkgbm9ybWFsbHkgYXBwZWFyKSBiZWNhdXNlIHRleHQgd2lsbCBhcHBlYXIgaW5zdGVhZCAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJUb3AtdGFicyB7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBibGFjaztcbn1cbi5kaWppdFRhYkNvbnRhaW5lclRvcC1jb250YWluZXIge1xuXHRib3JkZXItdG9wOiAwO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LXRhYnMge1xuXHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCBibGFjaztcblx0ZmxvYXQ6IGxlZnQ7ICAgIC8qIG5lZWRlZCBmb3IgSUU3IFJUTCBtb2RlICovXG59XG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LWNvbnRhaW5lciB7XG5cdGJvcmRlci1sZWZ0OiAwO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJCb3R0b20tdGFicyB7XG5cdGJvcmRlci10b3A6IDFweCBzb2xpZCBibGFjaztcbn1cbi5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS1jb250YWluZXIge1xuXHRib3JkZXItYm90dG9tOiAwO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzIHtcblx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCBibGFjaztcblx0ZmxvYXQ6IGxlZnQ7ICAgIC8qIG5lZWRlZCBmb3IgSUU3IFJUTCBtb2RlICovXG59XG4uZGlqaXRUYWJDb250YWluZXJSaWdodC1jb250YWluZXIge1xuXHRib3JkZXItcmlnaHQ6IDA7XG59XG5cbmRpdi5kaWppdFRhYkRpc2FibGVkLCAuZGpfaWUgZGl2LmRpaml0VGFiRGlzYWJsZWQge1xuXHRjdXJzb3I6IGF1dG87XG59XG5cbi5kaWppdFRhYiB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRjdXJzb3I6cG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcblx0d2hpdGUtc3BhY2U6bm93cmFwO1xuXHR6LWluZGV4OjM7XG59XG4uZGlqaXRUYWIgKiB7XG5cdC8qIG1ha2UgdGFiIGljb25zIGFuZCBjbG9zZSBpY29uIGxpbmUgdXAgdy90ZXh0ICovXG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4uZGlqaXRUYWJDaGVja2VkIHtcblx0Y3Vyc29yOiBkZWZhdWx0O1x0LyogYmVjYXVzZSBjbGlja2luZyB3aWxsIGhhdmUgbm8gZWZmZWN0ICovXG59XG5cbi5kaWppdFRhYkNvbnRhaW5lclRvcC10YWJzIC5kaWppdFRhYiB7XG5cdHRvcDogMXB4O1x0LyogdG8gb3ZlcmxhcCBib3JkZXIgb24gLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMgKi9cbn1cbi5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS10YWJzIC5kaWppdFRhYiB7XG5cdHRvcDogLTFweDtcdC8qIHRvIG92ZXJsYXAgYm9yZGVyIG9uIC5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS10YWJzICovXG59XG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LXRhYnMgLmRpaml0VGFiIHtcblx0bGVmdDogMXB4O1x0LyogdG8gb3ZlcmxhcCBib3JkZXIgb24gLmRpaml0VGFiQ29udGFpbmVyTGVmdC10YWJzICovXG59XG4uZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzIC5kaWppdFRhYiB7XG5cdGxlZnQ6IC0xcHg7XHQvKiB0byBvdmVybGFwIGJvcmRlciBvbiAuZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzICovXG59XG5cblxuLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMgLmRpaml0VGFiLFxuLmRpaml0VGFiQ29udGFpbmVyQm90dG9tLXRhYnMgLmRpaml0VGFiIHtcblx0LyogSW5saW5lLWJsb2NrICovXG5cdGRpc3BsYXk6aW5saW5lLWJsb2NrO1x0XHRcdC8qIHdlYmtpdCBhbmQgRkYzICovXG5cdCN6b29tOiAxOyAvKiBzZXQgaGFzTGF5b3V0OnRydWUgdG8gbWltaWMgaW5saW5lLWJsb2NrICovXG5cdCNkaXNwbGF5OmlubGluZTsgLyogZG9uJ3QgdXNlIC5kal9pZSBzaW5jZSB0aGF0IGluY3JlYXNlcyB0aGUgcHJpb3JpdHkgKi9cbn1cblxuLnRhYlN0cmlwQnV0dG9uIHtcblx0ei1pbmRleDogMTI7XG59XG5cbi5kaWppdFRhYkJ1dHRvbkRpc2FibGVkIC50YWJTdHJpcEJ1dHRvbiB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cblxuLmRpaml0VGFiQ2xvc2VCdXR0b24ge1xuXHRtYXJnaW4tbGVmdDogMWVtO1xufVxuXG4uZGlqaXRUYWJDbG9zZVRleHQge1xuXHRkaXNwbGF5Om5vbmU7XG59XG5cbi5kaWppdFRhYiAudGFiTGFiZWwge1xuXHQvKiBtYWtlIHN1cmUgdGFicyB3L2Nsb3NlIGJ1dHRvbiBhbmQgdy9vdXQgY2xvc2UgYnV0dG9uIGFyZSBzYW1lIGhlaWdodCwgZXZlbiB3L3NtYWxsICg8MTVweCkgZm9udC5cblx0ICogYXNzdW1lcyA8PTE1cHggaGVpZ2h0IGZvciBjbG9zZSBidXR0b24gaWNvbi5cblx0ICovXG5cdG1pbi1oZWlnaHQ6IDE1cHg7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5kaWppdE5vSWNvbiB7XG5cdC8qIGFwcGxpZWQgdG8gPGltZz4vPHNwYW4+IG5vZGUgd2hlbiB0aGVyZSBpcyBubyBpY29uIHNwZWNpZmllZCAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuLmRqX2llNiAuZGlqaXRUYWIgLmRpaml0Tm9JY29uIHtcblx0LyogYmVjYXVzZSBtaW4taGVpZ2h0IChvbiAudGFiTGFiZWwsIGFib3ZlKSBkb2Vzbid0IHdvcmsgb24gSUU2ICovXG5cdGRpc3BsYXk6IGlubGluZTtcblx0aGVpZ2h0OiAxNXB4O1xuXHR3aWR0aDogMXB4O1xufVxuXG4vKiBpbWFnZXMgb2ZmLCBoaWdoLWNvbnRyYXN0IG1vZGUgc3R5bGVzICovXG5cbi5kal9hMTF5IC5kaWppdFRhYkNsb3NlQnV0dG9uIHtcblx0YmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuXHR3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLmRqX2ExMXkgLmRpaml0VGFiQ2xvc2VUZXh0IHtcblx0ZGlzcGxheTogaW5saW5lO1xufVxuXG4uZGlqaXRUYWJQYW5lLFxuLmRpaml0U3RhY2tDb250YWluZXItY2hpbGQsXG4uZGlqaXRBY2NvcmRpb25Db250YWluZXItY2hpbGQge1xuXHQvKiBjaGlsZHJlbiBvZiBUYWJDb250YWluZXIsIFN0YWNrQ29udGFpbmVyLCBhbmQgQWNjb3JkaW9uQ29udGFpbmVyIHNob3VsZG4ndCBoYXZlIGJvcmRlcnNcblx0ICogYi9jIGEgYm9yZGVyIGlzIGFscmVhZHkgdGhlcmUgZnJvbSB0aGUgVGFiQ29udGFpbmVyL1N0YWNrQ29udGFpbmVyL0FjY29yZGlvbkNvbnRhaW5lciBpdHNlbGYuXG5cdCAqL1xuICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiBJbmxpbmVFZGl0Qm94ICovXG4uZGlqaXRJbmxpbmVFZGl0Qm94RGlzcGxheU1vZGUge1xuXHRib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcdC8qIHNvIGtleWxpbmUgKGJvcmRlcikgb24gaG92ZXIgY2FuIGFwcGVhciB3aXRob3V0IHNjcmVlbiBqdW1wICovXG5cdGN1cnNvcjogdGV4dDtcbn1cblxuLmRqX2ExMXkgLmRpaml0SW5saW5lRWRpdEJveERpc3BsYXlNb2RlLFxuLmRqX2llNiAuZGlqaXRJbmxpbmVFZGl0Qm94RGlzcGxheU1vZGUge1xuXHQvKiBleGNlcHQgdGhhdCBJRTYgZG9lc24ndCBzdXBwb3J0IHRyYW5zcGFyZW50IGJvcmRlcnMsIG5vciBkb2VzIGhpZ2ggY29udHJhc3QgbW9kZSAqL1xuXHRib3JkZXI6IG5vbmU7XG59XG5cbi5kaWppdElubGluZUVkaXRCb3hEaXNwbGF5TW9kZUhvdmVyLFxuLmRqX2ExMXkgLmRpaml0SW5saW5lRWRpdEJveERpc3BsYXlNb2RlSG92ZXIsXG4uZGpfaWU2IC5kaWppdElubGluZUVkaXRCb3hEaXNwbGF5TW9kZUhvdmVyIHtcblx0LyogQW4gSW5saW5lRWRpdEJveCBpbiB2aWV3IG1vZGUgKGNsaWNrIHRoaXMgdG8gZWRpdCB0aGUgdGV4dCkgKi9cblx0YmFja2dyb3VuZC1jb2xvcjogI2UyZWJmMjtcblx0Ym9yZGVyOiBzb2xpZCAxcHggYmxhY2s7XG59XG5cbi5kaWppdElubGluZUVkaXRCb3hEaXNwbGF5TW9kZURpc2FibGVkIHtcblx0Y3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKiBUcmVlICovXG4uZGlqaXRUcmVlIHtcblx0b3ZlcmZsb3c6IGF1dG87XHQvKiBmb3Igc2Nyb2xsYmFycyB3aGVuIFRyZWUgaGFzIGEgaGVpZ2h0IHNldHRpbmcsIGFuZCB0byBwcmV2ZW50IHdyYXBwaW5nIGFyb3VuZCBmbG9hdCBlbGVtZW50cywgc2VlICMxMTQ5MSAqL1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uZGlqaXRUcmVlQ29udGFpbmVyIHtcblx0ZmxvYXQ6IGxlZnQ7XHQvKiBmb3IgY29ycmVjdCBoaWdobGlnaHRpbmcgZHVyaW5nIGhvcml6b250YWwgc2Nyb2xsLCBzZWUgIzE2MTMyICovXG59XG5cbi5kaWppdFRyZWVJbmRlbnQge1xuXHQvKiBhbW91bnQgdG8gaW5kZW50IGVhY2ggdHJlZSBub2RlIChyZWxhdGl2ZSB0byBwYXJlbnQgbm9kZSkgKi9cblx0d2lkdGg6IDE5cHg7XG59XG5cbi5kaWppdFRyZWVSb3csIC5kaWppdFRyZWVDb250ZW50IHtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmRqX2llIC5kaWppdFRyZWVMYWJlbDpmb2N1cyB7XG5cdC8qIHdvcmthcm91bmQgSUU5IGJlaGF2aW9yIHdoZXJlIGRvd24gYXJyb3dpbmcgdGhyb3VnaCBUcmVlTm9kZXMgZG9lc24ndCBzaG93IGZvY3VzIG91dGxpbmUgKi9cblx0b3V0bGluZTogMXB4IGRvdHRlZCBibGFjaztcbn1cblxuLmRpaml0VHJlZVJvdyBpbWcge1xuXHQvKiBtYWtlIHRoZSBleHBhbmRvIGFuZCBmb2xkZXIgaWNvbnMgbGluZSB1cCB3aXRoIHRoZSBsYWJlbCAqL1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uZGlqaXRUcmVlQ29udGVudCB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4uZGlqaXRFeHBhbmRvVGV4dCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kal9hMTF5IC5kaWppdEV4cGFuZG9UZXh0IHtcblx0ZGlzcGxheTogaW5saW5lO1xuXHRwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cdHBhZGRpbmctcmlnaHQ6IDEwcHg7XG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci13aWR0aDogdGhpbjtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZGlqaXRUcmVlTGFiZWwge1xuXHRtYXJnaW46IDAgNHB4O1xufVxuXG4vKiBEaWFsb2cgKi9cblxuLmRpaml0RGlhbG9nIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiA5OTk7XG5cdG92ZXJmbG93OiBoaWRkZW47XHQvKiBvdmVycmlkZSBvdmVyZmxvdzogYXV0bzsgZnJvbSBDb250ZW50UGFuZSB0byBtYWtlIGRyYWdnaW5nIHNtb290aGVyICovXG59XG5cbi5kaWppdERpYWxvZ1RpdGxlQmFyIHtcblx0Y3Vyc29yOiBtb3ZlO1xufVxuLmRpaml0RGlhbG9nRml4ZWQgLmRpaml0RGlhbG9nVGl0bGVCYXIge1xuXHRjdXJzb3I6ZGVmYXVsdDtcbn1cbi5kaWppdERpYWxvZ0Nsb3NlSWNvbiB7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5kaWppdERpYWxvZ1BhbmVDb250ZW50IHtcblx0LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuLmRpaml0RGlhbG9nVW5kZXJsYXlXcmFwcGVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAwO1xuXHR0b3A6IDA7XG5cdHotaW5kZXg6IDk5ODtcblx0ZGlzcGxheTogbm9uZTtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cblxuLmRpaml0RGlhbG9nVW5kZXJsYXkge1xuXHRiYWNrZ3JvdW5kOiAjZWVlO1xuXHRvcGFjaXR5OiAwLjU7XG59XG5cbi5kal9pZSAuZGlqaXREaWFsb2dVbmRlcmxheSB7XG5cdGZpbHRlcjogYWxwaGEob3BhY2l0eT01MCk7XG59XG5cbi8qIGltYWdlcyBvZmYsIGhpZ2gtY29udHJhc3QgbW9kZSBzdHlsZXMgKi9cbi5kal9hMTF5IC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIsXG4uZGpfYTExeSAuZGlqaXREaWFsb2cge1xuXHRvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdERpYWxvZyAuY2xvc2VUZXh0IHtcblx0ZGlzcGxheTpub25lO1xuXHQvKiBmb3IgdGhlIG9uaG92ZXIgYm9yZGVyIGluIGhpZ2ggY29udHJhc3Qgb24gSUU6ICovXG5cdHBvc2l0aW9uOmFic29sdXRlO1xufVxuXG4uZGpfYTExeSAuZGlqaXREaWFsb2cgLmNsb3NlVGV4dCB7XG5cdGRpc3BsYXk6aW5saW5lO1xufVxuXG4vKiBTbGlkZXIgKi9cblxuLmRpaml0U2xpZGVyTW92ZWFibGUge1xuXHR6LWluZGV4Ojk5O1xuXHRwb3NpdGlvbjphYnNvbHV0ZSAhaW1wb3J0YW50O1xuXHRkaXNwbGF5OmJsb2NrO1xuXHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XG59XG5cbi5kaWppdFNsaWRlck1vdmVhYmxlSCB7XG5cdHJpZ2h0OjA7XG59XG4uZGlqaXRTbGlkZXJNb3ZlYWJsZVYge1xuXHRyaWdodDo1MCU7XG59XG5cbi5kal9hMTF5IGRpdi5kaWppdFNsaWRlckltYWdlSGFuZGxlLFxuLmRpaml0U2xpZGVySW1hZ2VIYW5kbGUge1xuXHRtYXJnaW46MDtcblx0cGFkZGluZzowO1xuXHRwb3NpdGlvbjpyZWxhdGl2ZSAhaW1wb3J0YW50O1xuXHRib3JkZXI6OHB4IHNvbGlkIGdyYXk7XG5cdHdpZHRoOjA7XG5cdGhlaWdodDowO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZGpfaWVxdWlya3MgLmRqX2ExMXkgLmRpaml0U2xpZGVySW1hZ2VIYW5kbGUge1xuXHRmb250LXNpemU6IDA7XG59XG4uZGpfaWU3IC5kaWppdFNsaWRlckltYWdlSGFuZGxlIHtcblx0b3ZlcmZsb3c6IGhpZGRlbjsgLyogSUU3IHdvcmthcm91bmQgdG8gbWFrZSBzbGlkZXIgaGFuZGxlIFZJU0lCTEUgaW4gbm9uLWExMXkgbW9kZSAqL1xufVxuLmRqX2llNyAuZGpfYTExeSAuZGlqaXRTbGlkZXJJbWFnZUhhbmRsZSB7XG5cdG92ZXJmbG93OiB2aXNpYmxlOyAvKiBJRTcgd29ya2Fyb3VuZCB0byBtYWtlIHNsaWRlciBoYW5kbGUgVklTSUJMRSBpbiBhMTF5IG1vZGUgKi9cbn1cbi5kal9hMTF5IC5kaWppdFNsaWRlckZvY3VzZWQgLmRpaml0U2xpZGVySW1hZ2VIYW5kbGUge1xuXHRib3JkZXI6NHB4IHNvbGlkICMwMDA7XG5cdGhlaWdodDo4cHg7XG5cdHdpZHRoOjhweDtcbn1cblxuLmRpaml0U2xpZGVySW1hZ2VIYW5kbGVWIHtcblx0dG9wOi04cHg7XG5cdHJpZ2h0OiAtNTAlO1xufVxuXG4uZGlqaXRTbGlkZXJJbWFnZUhhbmRsZUgge1xuXHRsZWZ0OjUwJTtcblx0dG9wOi01cHg7XG5cdHZlcnRpY2FsLWFsaWduOnRvcDtcbn1cblxuLmRpaml0U2xpZGVyQmFyIHtcblx0Ym9yZGVyLXN0eWxlOnNvbGlkO1xuXHRib3JkZXItY29sb3I6YmxhY2s7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmRpaml0U2xpZGVyQmFyQ29udGFpbmVyViB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRoZWlnaHQ6MTAwJTtcblx0ei1pbmRleDoxO1xufVxuXG4uZGlqaXRTbGlkZXJCYXJDb250YWluZXJIIHtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdHotaW5kZXg6MTtcbn1cblxuLmRpaml0U2xpZGVyQmFySCB7XG5cdGhlaWdodDo0cHg7XG5cdGJvcmRlci13aWR0aDoxcHggMDtcbn1cblxuLmRpaml0U2xpZGVyQmFyViB7XG5cdHdpZHRoOjRweDtcblx0Ym9yZGVyLXdpZHRoOjAgMXB4O1xufVxuXG4uZGlqaXRTbGlkZXJQcm9ncmVzc0JhciB7XG5cdGJhY2tncm91bmQtY29sb3I6cmVkO1xuXHR6LWluZGV4OjE7XG59XG5cbi5kaWppdFNsaWRlclByb2dyZXNzQmFyViB7XG5cdHBvc2l0aW9uOnN0YXRpYyAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6MDtcblx0dmVydGljYWwtYWxpZ246dG9wO1xuXHR0ZXh0LWFsaWduOmxlZnQ7XG59XG5cbi5kaWppdFNsaWRlclByb2dyZXNzQmFySCB7XG5cdHBvc2l0aW9uOmFic29sdXRlICFpbXBvcnRhbnQ7XG5cdHdpZHRoOjA7XG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0b3ZlcmZsb3c6dmlzaWJsZTtcbn1cblxuLmRpaml0U2xpZGVyUmVtYWluaW5nQmFyIHtcblx0b3ZlcmZsb3c6aGlkZGVuO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O1xuXHR6LWluZGV4OjE7XG59XG5cbi5kaWppdFNsaWRlclJlbWFpbmluZ0JhclYge1xuXHRoZWlnaHQ6MTAwJTtcblx0dGV4dC1hbGlnbjpsZWZ0O1xufVxuXG4uZGlqaXRTbGlkZXJSZW1haW5pbmdCYXJIIHtcblx0d2lkdGg6MTAwJSAhaW1wb3J0YW50O1xufVxuXG4vKiB0aGUgc2xpZGVyIGJ1bXBlciBpcyB0aGUgc3BhY2UgY29uc3VtZWQgYnkgdGhlIHNsaWRlciBoYW5kbGUgd2hlbiBpdCBoYW5ncyBvdmVyIGFuIGVkZ2UgKi9cbi5kaWppdFNsaWRlckJ1bXBlciB7XG5cdG92ZXJmbG93OmhpZGRlbjtcblx0ei1pbmRleDoxO1xufVxuXG4uZGlqaXRTbGlkZXJCdW1wZXJWIHtcblx0d2lkdGg6NHB4O1xuXHRoZWlnaHQ6OHB4O1xuXHRib3JkZXItd2lkdGg6MCAxcHg7XG59XG5cbi5kaWppdFNsaWRlckJ1bXBlckgge1xuXHR3aWR0aDo4cHg7XG5cdGhlaWdodDo0cHg7XG5cdGJvcmRlci13aWR0aDoxcHggMDtcbn1cblxuLmRpaml0U2xpZGVyQm90dG9tQnVtcGVyLFxuLmRpaml0U2xpZGVyTGVmdEJ1bXBlciB7XG5cdGJhY2tncm91bmQtY29sb3I6cmVkO1xufVxuXG4uZGlqaXRTbGlkZXJUb3BCdW1wZXIsXG4uZGlqaXRTbGlkZXJSaWdodEJ1bXBlciB7XG5cdGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7XG59XG5cbi5kaWppdFNsaWRlckRlY29yYXRpb24ge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcbn1cblxuLmRpaml0U2xpZGVyRGVjb3JhdGlvbkMsXG4uZGlqaXRTbGlkZXJEZWNvcmF0aW9uViB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogbmVlZGVkIGZvciBJRStxdWlya3MrUlRMK3ZlcnRpY2FsIChyZW5kZXJpbmcgYnVnKSBidXQgYWRkIGV2ZXJ5d2hlcmUgZm9yIGN1c3RvbSBzdHlsaW5nIGNvbnNpc3RlbmN5IGJ1dCB0aGlzIG1lc3NlcyB1cCBJRSBob3Jpem9udGFsIHNsaWRlcnMgKi9cbn1cblxuLmRpaml0U2xpZGVyRGVjb3JhdGlvbkgge1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLmRpaml0U2xpZGVyRGVjb3JhdGlvblYge1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5kaWppdFNsaWRlckJ1dHRvbiB7XG5cdGZvbnQtZmFtaWx5Om1vbm9zcGFjZTtcblx0bWFyZ2luOjA7XG5cdHBhZGRpbmc6MDtcblx0ZGlzcGxheTpibG9jaztcbn1cblxuLmRqX2ExMXkgLmRpaml0U2xpZGVyQnV0dG9uSW5uZXIge1xuXHR2aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDtcbn1cblxuLmRpaml0U2xpZGVyQnV0dG9uQ29udGFpbmVyIHtcblx0dGV4dC1hbGlnbjpjZW50ZXI7XG5cdGhlaWdodDowO1x0LyogPz8/ICovXG59XG4uZGlqaXRTbGlkZXJCdXR0b25Db250YWluZXIgKiB7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmRpaml0U2xpZGVyIC5kaWppdEJ1dHRvbk5vZGUge1xuXHRwYWRkaW5nOjA7XG5cdGRpc3BsYXk6YmxvY2s7XG59XG5cbi5kaWppdFJ1bGVDb250YWluZXIge1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0b3ZlcmZsb3c6dmlzaWJsZTtcbn1cblxuLmRpaml0UnVsZUNvbnRhaW5lclYge1xuXHRoZWlnaHQ6MTAwJTtcblx0bGluZS1oZWlnaHQ6MDtcblx0ZmxvYXQ6bGVmdDtcblx0dGV4dC1hbGlnbjpsZWZ0O1xufVxuXG4uZGpfb3BlcmEgLmRpaml0UnVsZUNvbnRhaW5lclYge1xuXHRsaW5lLWhlaWdodDoyJTtcbn1cblxuLmRqX2llIC5kaWppdFJ1bGVDb250YWluZXJWIHtcblx0bGluZS1oZWlnaHQ6bm9ybWFsO1xufVxuXG4uZGpfZ2Vja28gLmRpaml0UnVsZUNvbnRhaW5lclYge1xuXHRtYXJnaW46MCAwIDFweCAwOyAvKiBtb3ppbGxhIGJ1ZyB3b3JrYXJvdW5kIGZvciBmbG9hdDpsZWZ0LGhlaWdodDoxMDAlIGJsb2NrIGVsZW1lbnRzICovXG59XG5cbi5kaWppdFJ1bGVNYXJrIHtcblx0cG9zaXRpb246YWJzb2x1dGU7XG5cdGJvcmRlcjoxcHggc29saWQgYmxhY2s7XG5cdGxpbmUtaGVpZ2h0OjA7XG5cdGhlaWdodDoxMDAlO1xufVxuXG4uZGlqaXRSdWxlTWFya0gge1xuXHR3aWR0aDowO1xuXHRib3JkZXItdG9wLXdpZHRoOjAgIWltcG9ydGFudDtcblx0Ym9yZGVyLWJvdHRvbS13aWR0aDowICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1sZWZ0LXdpZHRoOjAgIWltcG9ydGFudDtcbn1cblxuLmRpaml0UnVsZUxhYmVsQ29udGFpbmVyIHtcblx0cG9zaXRpb246YWJzb2x1dGU7XG59XG5cbi5kaWppdFJ1bGVMYWJlbENvbnRhaW5lckgge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG59XG5cbi5kaWppdFJ1bGVMYWJlbEgge1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0bGVmdDotNTAlO1xufVxuXG4uZGlqaXRSdWxlTGFiZWxWIHtcblx0Lyogc28gdGhhdCBsb25nIGxhYmVscyBkb24ndCBvdmVyZmxvdyB0byBtdWx0aXBsZSByb3dzLCBvciBvdmVyd3JpdGUgc2xpZGVyIGl0c2VsZiAqL1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmRpaml0UnVsZU1hcmtWIHtcblx0aGVpZ2h0OjA7XG5cdGJvcmRlci1yaWdodC13aWR0aDowICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1ib3R0b20td2lkdGg6MCAhaW1wb3J0YW50O1xuXHRib3JkZXItbGVmdC13aWR0aDowICFpbXBvcnRhbnQ7XG5cdHdpZHRoOjEwMCU7XG5cdGxlZnQ6MDtcbn1cblxuLmRqX2llIC5kaWppdFJ1bGVMYWJlbENvbnRhaW5lclYge1xuXHRtYXJnaW4tdG9wOi0uNTVlbTtcbn1cblxuLmRqX2ExMXkgLmRpaml0U2xpZGVyUmVhZE9ubHksXG4uZGpfYTExeSAuZGlqaXRTbGlkZXJEaXNhYmxlZCB7XG5cdG9wYWNpdHk6MC42O1xufVxuLmRqX2llIC5kal9hMTF5IC5kaWppdFNsaWRlclJlYWRPbmx5IC5kaWppdFNsaWRlckJhcixcbi5kal9pZSAuZGpfYTExeSAuZGlqaXRTbGlkZXJEaXNhYmxlZCAuZGlqaXRTbGlkZXJCYXIge1xuXHRmaWx0ZXI6IGFscGhhKG9wYWNpdHk9NDApO1xufVxuXG4vKiArIGFuZCAtIFNsaWRlciBidXR0b25zOiBvdmVycmlkZSB0aGVtZSBzZXR0aW5ncyB0byBkaXNwbGF5IGljb25zICovXG4uZGpfYTExeSAuZGlqaXRTbGlkZXIgLmRpaml0U2xpZGVyQnV0dG9uQ29udGFpbmVyIGRpdiB7XG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7IC8qIG90aGVyd2lzZSBoeXBoZW4gaXMgbGFyZ2VyIGFuZCBtb3JlIHZlcnRpY2FsbHkgY2VudGVyZWQgKi9cblx0Zm9udC1zaXplOiAxZW07XG5cdGxpbmUtaGVpZ2h0OiAxZW07XG5cdGhlaWdodDogYXV0bztcblx0d2lkdGg6IGF1dG87XG5cdG1hcmdpbjogMCA0cHg7XG59XG5cbi8qIEljb24tb25seSBidXR0b25zIChvZnRlbiBpbiB0b29sYmFycykgc3RpbGwgZGlzcGxheSB0aGUgdGV4dCBpbiBoaWdoLWNvbnRyYXN0IG1vZGUgKi9cbi5kal9hMTF5IC5kaWppdEJ1dHRvbkNvbnRlbnRzIC5kaWppdEJ1dHRvblRleHQsXG4uZGpfYTExeSAuZGlqaXRUYWIgLnRhYkxhYmVsIHtcblx0ZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG59XG4uZGpfYTExeSAuZGlqaXRTZWxlY3QgLmRpaml0QnV0dG9uVGV4dCB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xufVxuXG4vKiBUZXh0QXJlYSwgU2ltcGxlVGV4dEFyZWEgKi9cbi5kaWppdFRleHRBcmVhIHtcblx0d2lkdGg6MTAwJTtcblx0b3ZlcmZsb3cteTogYXV0bztcdC8qIHcvb3V0IHRoaXMgSUUncyBTaW1wbGVUZXh0QXJlYSBnb2VzIHRvIG92ZXJmbG93OiBzY3JvbGwgKi9cbn1cbi5kaWppdFRleHRBcmVhW2NvbHNdIHtcblx0d2lkdGg6YXV0bzsgLyogU2ltcGxlVGV4dEFyZWEgY29scyAqL1xufVxuLmRqX2llIC5kaWppdFRleHRBcmVhQ29scyB7XG5cdHdpZHRoOmF1dG87XG59XG5cbi5kaWppdEV4cGFuZGluZ1RleHRBcmVhIHtcblx0LyogZm9yIGF1dG8gZXhhbmRpbmcgdGV4dGFyZWEgKGNhbGxlZCBUZXh0YXJlYSBjdXJyZW50bHksIHJlbmFtZSBmb3IgMi4wKSBkb24ndCB3YW50IHRvIGRpc3BsYXkgdGhlIGdyaXAgdG8gcmVzaXplICovXG5cdHJlc2l6ZTogbm9uZTtcbn1cblxuXG4vKiBUb29sYmFyXG4gKiBOb3RlIHRoYXQgb3RoZXIgdG9vbGJhciBydWxlcyAoZm9yIG9iamVjdHMgaW4gdG9vbGJhcnMpIGFyZSBzY2F0dGVyZWQgdGhyb3VnaG91dCB0aGlzIGZpbGUuXG4gKi9cblxuLmRpaml0VG9vbGJhclNlcGFyYXRvciB7XG5cdGhlaWdodDogMThweDtcblx0d2lkdGg6IDVweDtcblx0cGFkZGluZzogMCAxcHg7XG5cdG1hcmdpbjogMDtcbn1cblxuLyogRWRpdG9yICovXG4uZGlqaXRJRUZpeGVkVG9vbGJhciB7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHQvKiB0b3A6MDsgKi9cblx0dG9wOiBleHByZXNzaW9uKGV2YWwoKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudHx8ZG9jdW1lbnQuYm9keSkuc2Nyb2xsVG9wKSk7XG59XG5cbi5kaWppdEVkaXRvciB7XG5cdGRpc3BsYXk6IGJsb2NrO1x0LyogcHJldmVudHMgZ2xpdGNoIG9uIEZGIHdpdGggSW5saW5lRWRpdEJveCwgc2VlICM4NDA0ICovXG59XG5cbi5kaWppdEVkaXRvckRpc2FibGVkLFxuLmRpaml0RWRpdG9yUmVhZE9ubHkge1xuXHRjb2xvcjogZ3JheTtcbn1cblxuLyogVGltZVBpY2tlciAqL1xuXG4uZGlqaXRUaW1lUGlja2VyIHtcblx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uZGlqaXRUaW1lUGlja2VySXRlbSB7XG5cdGN1cnNvcjpwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmRpaml0VGltZVBpY2tlckl0ZW1Ib3ZlciB7XG5cdGJhY2tncm91bmQtY29sb3I6Z3JheTtcblx0Y29sb3I6d2hpdGU7XG59XG4uZGlqaXRUaW1lUGlja2VySXRlbVNlbGVjdGVkIHtcblx0Zm9udC13ZWlnaHQ6Ym9sZDtcblx0Y29sb3I6IzMzMztcblx0YmFja2dyb3VuZC1jb2xvcjojYjdjZGVlO1xufVxuLmRpaml0VGltZVBpY2tlckl0ZW1EaXNhYmxlZCB7XG5cdGNvbG9yOmdyYXk7XG5cdHRleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2g7XG59XG5cbi5kaWppdFRpbWVQaWNrZXJJdGVtSW5uZXIge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0Ym9yZGVyOjA7XG5cdHBhZGRpbmc6MnB4IDhweCAycHggOHB4O1xufVxuXG4uZGlqaXRUaW1lUGlja2VyVGljayxcbi5kaWppdFRpbWVQaWNrZXJNYXJrZXIge1xuXHRib3JkZXItYm90dG9tOjFweCBzb2xpZCBncmF5O1xufVxuXG4uZGlqaXRUaW1lUGlja2VyIC5kaWppdERvd25BcnJvd0J1dHRvbiB7XG5cdGJvcmRlci10b3A6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmRpaml0VGltZVBpY2tlclRpY2sge1xuXHRjb2xvcjojQ0NDO1xufVxuXG4uZGlqaXRUaW1lUGlja2VyTWFya2VyIHtcblx0Y29sb3I6YmxhY2s7XG5cdGJhY2tncm91bmQtY29sb3I6I0NDQztcbn1cblxuLmRqX2ExMXkgLmRpaml0VGltZVBpY2tlckl0ZW1TZWxlY3RlZCAuZGlqaXRUaW1lUGlja2VySXRlbUlubmVyIHtcblx0Ym9yZGVyOiBzb2xpZCA0cHggYmxhY2s7XG59XG4uZGpfYTExeSAuZGlqaXRUaW1lUGlja2VySXRlbUhvdmVyIC5kaWppdFRpbWVQaWNrZXJJdGVtSW5uZXIge1xuXHRib3JkZXI6IGRhc2hlZCA0cHggYmxhY2s7XG59XG5cblxuLmRpaml0VG9nZ2xlQnV0dG9uSWNvbkNoYXIge1xuXHQvKiBjaGFyYWN0ZXIgKGluc3RlYWQgb2YgaWNvbikgdG8gc2hvdyB0aGF0IFRvZ2dsZUJ1dHRvbiBpcyBjaGVja2VkICovXG5cdGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0VG9nZ2xlQnV0dG9uIC5kaWppdFRvZ2dsZUJ1dHRvbkljb25DaGFyIHtcblx0ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudDtcblx0dmlzaWJpbGl0eTpoaWRkZW47XG59XG4uZGpfaWU2IC5kaWppdFRvZ2dsZUJ1dHRvbkljb25DaGFyLCAuZGpfaWU2IC50YWJTdHJpcEJ1dHRvbiAuZGlqaXRCdXR0b25UZXh0IHtcblx0Zm9udC1mYW1pbHk6IFwiQXJpYWwgVW5pY29kZSBNU1wiO1x0Lyogb3RoZXJ3aXNlIHRoZSBhMTF5IGNoYXJhY3RlciAoY2hlY2ttYXJrLCBhcnJvdywgZXRjLikgYXBwZWFycyBhcyBhIGJveCAqL1xufVxuLmRqX2ExMXkgLmRpaml0VG9nZ2xlQnV0dG9uQ2hlY2tlZCAuZGlqaXRUb2dnbGVCdXR0b25JY29uQ2hhciB7XG5cdGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyAvKiBJbiBoaWdoIGNvbnRyYXN0IG1vZGUsIGRpc3BsYXkgdGhlIGNoZWNrIHN5bWJvbCAqL1xuXHR2aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDtcbn1cblxuLmRpaml0QXJyb3dCdXR0b25DaGFyIHtcblx0ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG59XG4uZGpfYTExeSAuZGlqaXRBcnJvd0J1dHRvbkNoYXIge1xuXHRkaXNwbGF5OmlubGluZSAhaW1wb3J0YW50O1xufVxuXG4uZGpfYTExeSAuZGlqaXREcm9wRG93bkJ1dHRvbiAuZGlqaXRBcnJvd0J1dHRvbklubmVyLFxuLmRqX2ExMXkgLmRpaml0Q29tYm9CdXR0b24gLmRpaml0QXJyb3dCdXR0b25Jbm5lciB7XG5cdGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiBTZWxlY3QgKi9cbi5kal9hMTF5IC5kaWppdFNlbGVjdCB7XG5cdGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGUgIWltcG9ydGFudDtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG59XG4uZGpfaWUgLmRpaml0U2VsZWN0IHtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTsgLyogU2V0IHRoaXMgYmFjayBmb3Igd2hhdCB3ZSBoYWNrIGluIGRpaml0IGlubGluZSAqL1xufVxuLmRqX2llNiAuZGlqaXRTZWxlY3QgLmRpaml0VmFsaWRhdGlvbkNvbnRhaW5lcixcbi5kal9pZTggLmRpaml0U2VsZWN0IC5kaWppdEJ1dHRvblRleHQge1xuXHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLmRqX2llNiAuZGlqaXRUZXh0Qm94IC5kaWppdElucHV0Q29udGFpbmVyLFxuLmRqX2llcXVpcmtzIC5kaWppdFRleHRCb3ggLmRpaml0SW5wdXRDb250YWluZXIsXG4uZGpfaWU2IC5kaWppdFRleHRCb3ggLmRpaml0QXJyb3dCdXR0b25Jbm5lcixcbi5kal9pZTYgLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uSW5uZXIsXG4uZGlqaXRTZWxlY3QgLmRpaml0U2VsZWN0TGFiZWwge1xuXHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi5kaWppdE51bWJlclRleHRCb3gge1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRkaXJlY3Rpb246IGx0cjtcbn1cblxuLmRpaml0TnVtYmVyVGV4dEJveCAuZGlqaXRJbnB1dElubmVyIHtcblx0dGV4dC1hbGlnbjogaW5oZXJpdDsgLyogaW5wdXQgKi9cbn1cblxuLmRpaml0TnVtYmVyVGV4dEJveCBpbnB1dC5kaWppdElucHV0SW5uZXIsXG4uZGlqaXRDdXJyZW5jeVRleHRCb3ggaW5wdXQuZGlqaXRJbnB1dElubmVyLFxuLmRpaml0U3Bpbm5lciBpbnB1dC5kaWppdElucHV0SW5uZXIge1xuXHR0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLmRqX2llOCAuZGlqaXROdW1iZXJUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRJbm5lciwgLmRqX2llOSAuZGlqaXROdW1iZXJUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRJbm5lcixcbi5kal9pZTggLmRpaml0Q3VycmVuY3lUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRJbm5lciwgLmRqX2llOSAuZGlqaXRDdXJyZW5jeVRleHRCb3ggaW5wdXQuZGlqaXRJbnB1dElubmVyLFxuLmRqX2llOCAuZGlqaXRTcGlubmVyIGlucHV0LmRpaml0SW5wdXRJbm5lciwgLmRqX2llOSAuZGlqaXRTcGlubmVyIGlucHV0LmRpaml0SW5wdXRJbm5lciB7XG5cdC8qIHdvcmthcm91bmQgYnVnIHdoZXJlIGNhcmV0IGludmlzaWJsZSBpbiBlbXB0eSB0ZXh0Ym94ZXMgKi9cblx0cGFkZGluZy1yaWdodDogMXB4ICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdFRvb2xiYXIgLmRpaml0U2VsZWN0IHtcblx0bWFyZ2luOiAwO1xufVxuLmRqX3dlYmtpdCAuZGlqaXRUb29sYmFyIC5kaWppdFNlbGVjdCB7XG5cdHBhZGRpbmctbGVmdDogMC4zZW07XG59XG4uZGlqaXRTZWxlY3QgLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHRwYWRkaW5nOiAwO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRib3JkZXItc3R5bGU6IG5vbmUgc29saWQgbm9uZSBub25lO1xuXHRib3JkZXItd2lkdGg6IDFweDtcbn1cbi5kaWppdFNlbGVjdEZpeGVkV2lkdGggLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLmRpaml0U2VsZWN0TWVudSAuZGlqaXRNZW51SXRlbUljb24ge1xuXHQvKiBhdm9pZCBibGFuayBhcmVhIGluIGxlZnQgc2lkZSBvZiBtZW51IChzaW5jZSB3ZSBoYXZlIG5vIGljb25zKSAqL1xuXHRkaXNwbGF5Om5vbmU7XG59XG4uZGpfaWU2IC5kaWppdFNlbGVjdE1lbnUgLmRpaml0TWVudUl0ZW1MYWJlbCxcbi5kal9pZTcgLmRpaml0U2VsZWN0TWVudSAuZGlqaXRNZW51SXRlbUxhYmVsIHtcblx0LyogU2V0IGJhY2sgdG8gc3RhdGljIGR1ZSB0byBidWcgaW4gaWU2L2llNyAtIFNlZSBCdWcgIzk2NTEgKi9cblx0cG9zaXRpb246IHN0YXRpYztcbn1cblxuLyogRml4IHRoZSBiYXNlbGluZSBvZiBvdXIgbGFiZWwgKGZvciBtdWx0aS1zaXplIGZvbnQgZWxlbWVudHMpICovXG4uZGlqaXRTZWxlY3RMYWJlbCAqXG57XG5cdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLyogU3R5bGluZyBmb3IgdGhlIGN1cnJlbnRseS1zZWxlY3RlZCBvcHRpb24gKHJpY2ggdGV4dCBjYW4gbWVzcyB0aGlzIHVwKSAqL1xuLmRpaml0U2VsZWN0U2VsZWN0ZWRPcHRpb24gKiB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKiBGaXggdGhlIHN0eWxpbmcgb2YgdGhlIGRyb3Bkb3duIG1lbnUgdG8gYmUgbW9yZSBjb21ib2JveC1saWtlICovXG4uZGlqaXRTZWxlY3RNZW51IHtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG59XG5cbi8qIFVzZWQgaW4gY2FzZXMsIHN1Y2ggYXMgRnVsbFNjcmVlbiBwbHVnaW4sIHdoZW4gd2UgbmVlZCB0byBmb3JjZSBzdHVmZiB0byBzdGF0aWMgcG9zaXRpb25pbmcuICovXG4uZGlqaXRGb3JjZVN0YXRpYyB7XG5cdHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbn1cblxuLyoqKiogRGlzYWJsZWQgY3Vyc29yICoqKioqL1xuLmRpaml0UmVhZE9ubHkgKixcbi5kaWppdERpc2FibGVkICosXG4uZGlqaXRSZWFkT25seSxcbi5kaWppdERpc2FibGVkIHtcblx0LyogYSByZWdpb24gdGhlIHVzZXIgd291bGQgYmUgYWJsZSB0byBjbGljayBvbiwgYnV0IGl0J3MgZGlzYWJsZWQgKi9cblx0Y3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKiBEcmFnIGFuZCBEcm9wICovXG4uZG9qb0RuZEl0ZW0ge1xuICAgIHBhZGRpbmc6IDJweDsgIC8qIHdpbGwgYmUgcmVwbGFjZWQgYnkgYm9yZGVyIGR1cmluZyBkcmFnIG92ZXIgKGRvam9EbmRJdGVtQmVmb3JlLCBkb2pvRG5kSXRlbUFmdGVyKSAqL1xuXG5cdC8qIFByZXZlbnQgbWFnbmlmeWluZy1nbGFzcyB0ZXh0IHNlbGVjdGlvbiBpY29uIHRvIGFwcGVhciBvbiBtb2JpbGUgd2Via2l0IGFzIGl0IGNhdXNlcyBhIHRvdWNob3V0IGV2ZW50ICovXG5cdC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcblx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsgLyogRGlzYWJsZSBzZWxlY3Rpb24vQ29weSBvZiBVSVdlYlZpZXcgKi9cbn1cbi5kb2pvRG5kSG9yaXpvbnRhbCAuZG9qb0RuZEl0ZW0ge1xuICAgIC8qIG1ha2UgY29udGVudHMgb2YgaG9yaXpvbnRhbCBjb250YWluZXIgYmUgc2lkZSBieSBzaWRlLCByYXRoZXIgdGhhbiB2ZXJ0aWNhbCAqL1xuICAgICNkaXNwbGF5OiBpbmxpbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uZG9qb0RuZEl0ZW1CZWZvcmUsXG4uZG9qb0RuZEl0ZW1BZnRlciB7XG5cdGJvcmRlcjogMHB4IHNvbGlkICMzNjk7XG59XG4uZG9qb0RuZEl0ZW1CZWZvcmUge1xuICAgIGJvcmRlci13aWR0aDogMnB4IDAgMCAwO1xuICAgIHBhZGRpbmc6IDAgMnB4IDJweCAycHg7XG59XG4uZG9qb0RuZEl0ZW1BZnRlciB7XG4gICAgYm9yZGVyLXdpZHRoOiAwIDAgMnB4IDA7XG4gICAgcGFkZGluZzogMnB4IDJweCAwIDJweDtcbn1cbi5kb2pvRG5kSG9yaXpvbnRhbCAuZG9qb0RuZEl0ZW1CZWZvcmUge1xuICAgIGJvcmRlci13aWR0aDogMCAwIDAgMnB4O1xuICAgIHBhZGRpbmc6IDJweCAycHggMnB4IDA7XG59XG4uZG9qb0RuZEhvcml6b250YWwgLmRvam9EbmRJdGVtQWZ0ZXIge1xuICAgIGJvcmRlci13aWR0aDogMCAycHggMCAwO1xuICAgIHBhZGRpbmc6IDJweCAwIDJweCAycHg7XG59XG5cbi5kb2pvRG5kSXRlbU92ZXIge1xuXHRjdXJzb3I6cG9pbnRlcjtcbn1cbi5kal9nZWNrbyAuZGlqaXRBcnJvd0J1dHRvbklubmVyIElOUFVULFxuLmRqX2dlY2tvIElOUFVULmRpaml0QXJyb3dCdXR0b25Jbm5lciB7XG5cdC1tb3otdXNlci1mb2N1czppZ25vcmU7XG59XG4uZGlqaXRGb2N1c2VkIC5kaWppdE1lbnVJdGVtU2hvcnRjdXRLZXkge1xuXHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbiIsIi8qIERpaml0IGN1c3RvbSBzdHlsaW5nICovXG4uZGlqaXRCb3JkZXJDb250YWluZXIge1xuICAgIGhlaWdodDogMzUwcHg7XG59XG4uZGlqaXRUb29sdGlwQ29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuLmRpaml0Q29udGVudFBhbmUge1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIG92ZXJmbG93OiBhdXRvICFpbXBvcnRhbnQ7IC8qIFdpZGdldHMgbGlrZSB0aGUgZGF0YSBncmlkIHBhc3MgdGhlaXIgc2Nyb2xsXG4gICAgb2Zmc2V0IHRvIHRoZSBwYXJlbnQgaWYgdGhlcmUgaXMgbm90IGVub3VnaCByb29tIHRvIGRpc3BsYXkgYSBzY3JvbGwgYmFyXG4gICAgaW4gdGhlIHdpZGdldCBpdHNlbGYsIHNvIGRvIG5vdCBoaWRlIHRoZSBvdmVyZmxvdy4gKi9cbn1cblxuLyogR2xvYmFsIEJvb3RzdHJhcCBjaGFuZ2VzICovXG5cbi8qIENsaWVudCBkZWZhdWx0cyBhbmQgaGVscGVycyAqL1xuLm14LWRhdGF2aWV3LWNvbnRlbnQsIC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlcjpub3QoLm14LXNjcm9sbGNvbnRhaW5lci1uZXN0ZWQpLCAubXgtdGFiY29udGFpbmVyLWNvbnRlbnQsIC5teC1ncmlkLWNvbnRlbnQge1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cbmh0bWwsIGJvZHksICNjb250ZW50IHtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG4jY29udGVudCA+IC5teC1wYWdlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xufVxuXG4ubXgtbGVmdC1hbGlnbmVkIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLm14LXJpZ2h0LWFsaWduZWQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLm14LWNlbnRlci1hbGlnbmVkIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5teC10YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4ubXgtdGFibGUgdGgsXG4ubXgtdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLm14LXRhYmxlIHRoLm5vcGFkZGluZyxcbi5teC10YWJsZSB0ZC5ub3BhZGRpbmcge1xuXHRwYWRkaW5nOiAwO1xufVxuXG4ubXgtb2Zmc2NyZWVuIHtcbiAgICAvKiBXaGVuIHBvc2l0aW9uIHJlbGF0aXZlIGlzIG5vdCBzZXQgSUUgZG9lc24ndCBwcm9wZXJseSByZW5kZXIgd2hlbiB0aGlzIGNsYXNzIGlzIHJlbW92ZWRcbiAgICAgKiB3aXRoIHRoZSBlZmZlY3QgdGhhdCBlbGVtZW50cyBhcmUgbm90IGRpc3BsYXllZCBvciBhcmUgbm90IGNsaWNrYWJsZS5cbiAgICAqL1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm14LWllLWV2ZW50LXNoaWVsZCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB6LWluZGV4OiAtMTtcbn1cblxuLm14LXN3aXBlLW5hdmlnYXRpb24tcHJvZ3Jlc3Mge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IDU0cHg7XG4gICAgd2lkdGg6IDU0cHg7XG4gICAgdG9wOiBjYWxjKDUwJSAtIDI3cHgpO1xuICAgIGxlZnQ6IGNhbGMoNTAlIC0gMjdweCk7XG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaE5nQTJBUE1BQVAvLy93QUFBSGg0ZUJ3Y0hBNE9EdGpZMkZSVVZOemMzTVRFeEVoSVNJcUtpZ0FBQUFBQUFBQUFBQUFBQUFBQUFDSDVCQWtLQUFBQUlmNGFRM0psWVhSbFpDQjNhWFJvSUdGcVlYaHNiMkZrTG1sdVptOEFJZjhMVGtWVVUwTkJVRVV5TGpBREFRQUFBQ3dBQUFBQU5nQTJBQUFFeXhESVNhdTlPT3ZOdS85Z0tJNWt5U0VKUVNTSTZVcUtLaFBLV3lMejNOcGltcXNKbnVnM0U0YUlNaVBJOXdzcVBUamlUbGt3cUF3RlRDeFhleFlHczBIMmdnSk9MWUxCUURDeTVnd213WXg5SkpyQXNzSFFYc0tyOUNGdU0zQWxjakowSUFkK0JBTUhMbWxySkFkdUJvNVBsNWlabXB1Y25aNmZjV3FJbUpDamFIT1poaXFtRkl1QWw2NFpzWml6RjZvRXJFSzN1Uk9sbTc2Z3djTER4TVhHeDhYQWo2SWt1NCtvSXJVazBoL1UwV0Vqem5IUUlzcWhrY2pCM3NuY3hkYkM1K0xseWN6aDdrOFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRNRU1oSnE3MDQ2ODI3LzJBb2ptUnBubVZoRUlSUm9HY3hzT3p3d3VSS3N3Wk83anZmQ0VnVGluUzduaEYwbU5FR2h3c2l3VW9nbHBTRHpoQzFLSWlLa1dBd0VKZ1FSTllWSk5pWlNkUjBJdVNzbGRKRlVKMHd1T01KSVcwMGJ5TnhSSE9CWklRamFHbHJXQnhmUUdHUUhsTlZqNVdhbTV5ZG5wOUxZMldib29zV2dpeW1RcWdFcWhON2ZaQ3dHYk95TzdFWHJLNDR1aHFscElxZ3dzUEV4Y2JIeU1lL0tNc2l2U2JQZExjbnRkSlAxTlBPYmlmUmlhUE13Y25DemNyYnlOWEc2TVhkeHVUaTd6NFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRPRU1oSnE3MDQ2ODI3LzJBb2ptUnBubWlxQXNJd0NLc3BFRFFCeCtOUUV3T2U3ejFmYUZhN0NVR3QxMUZZTU5BTUJWTFNTQ3JvYW9Qb2NFY1ZPWGNFZytoS0M1TEF0VEhRaEthSmlMUnU2THNUdjEzeTBJSE1PeXc5QjE4R2ZuK0Zob2VJaVlvWkNBazBDUWlMRmdwb0NobFRSd2h0QkpFV2NEWkNqbTBKRjN4bU1adHVGcVpDcVFRWG4za29vbWlrc0hpWm01MlNBSlJnbHJ3VGpZKzd3Y2JIeU1uS0U1Z296VzljSjdFL1dDZXNhdFVtMTF0RjB0RWp6eks0eTRuaHh0UEkyOGJxd2VqSTV1VHhKaEVBSWZrRUNRb0FBQUFzQUFBQUFEWUFOZ0FBQk1zUXlFbXJ2VGpyemJ2L1lDaU9aR21lYUtvQ3dqQUlxeWtRTkFISDQxQVRBNTd2UFY5b1Zyc0pRYTNYY1lsS0dtV3VKM0luRlJGcDFZNnVGaXh0YVYzUWwzY2FoejlYMnltZDdUaFRiNlo4VHEvYjcvaTh2R0NnR1FvYWNVSUZab0FYYkVkOU93UUdHR1pIaXpXT1FKQ1JCQmlJUW9vN2paaFJTd2RtQjNvVUI0b0dvNlNxcTZ5dE1RZ0pOQWtJckFxUkNpT0NJd2lXQkxSVFJTV3hsZ2toanlTOU5NYVV5TWxEVk1LOXhVT2ZKYnlXdjNxMmk3aEx1aFd3c3RsQ21hdkg1c3lyNWVyVnJ1NDRFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWlaY2dVR05BWUZKSk1pQldhZ1E0TWxuVHNFQmlLTElxczFya0Ftc1RSV3FDU3FPNjFXa1JrSUNUUUpDQmNIWmdkSENyRUt4cW9HeVVJSXRnVEZlc0syQ1h2VXQzcmNCSHZZc2RwNjA3Yldlc3VyelpYQncrZ2lFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWdTQ0FrMENRaVdDanMwQ3BRSW9qV2ZKWk1kbktjRUNhcURJSzQxWGtBaHREUzJYQ0d0cDdBa2p4Nm1ycW5Ca1NLaG9xUVhCUVkwQmdWTG01M0dGUVZtMHBUUG9nYVZ0Tit1bGR3NzNwUUhaZ2VXQjl3RzZwa29FUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2dktVU0Nsa0RnTFFvN05BcC9Fd2lDTlg1Q2NSWjdpQVFKaTFRWGp6VkNacFNWQkpkQUY0NklrVDVzRjRlUGlxSlJHWUdDaElXR2puMnVzck8wdFhZRkJqUUdCYlFGWnJ4UVNpSzVnZ1l5a3lHVkpwakpqOHVkSWNRN3hpV2pJUWRtQjJ1cEl3ZkVCdHEySG95ejFyUE01OURseUxUazR1OHBFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3a1JDVm9Db1dtOWhCTEZqcWFBZGhEVEdyUGtOSDZTV1VLQ3UvTjJ3cldTcmhiOG9HbHFZQWljSFpPSU5ETUhHOTdlWFhvZFVsTlZWbGRnUzRhS2k0eU5qbzhGQmpRR0JZOFhCV3MwQTVWUVhSbVNVd2FkWlJob1VKazhwV0duY2hlZ082SkNlRFlZQjZnREIxYWVHUWVnQnJtV3djTER4TVhHeDF5QUtic2lzNEVnemo5c0o3ZlNtdFN0UTZReTI4M0tLTXpJamVIRTBjYlY1OW5sM2NYazR1OG9FUUE3KTtcbn1cblxuIiwiLyogQmFjYXVzZSB3ZSB1c2UgY2hlY2tib3hlcyB3aXRob3V0IGxhYmVscywgYWxpZ24gdGhlbSB3aXRoIG90aGVyIHdpZGdldHMuICovXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIG1hcmdpbjogOXB4IDA7XG59XG5cbi5teC1jaGVja2JveCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG59XG5cbi5mb3JtLXZlcnRpY2FsIC5mb3JtLWdyb3VwLm14LWNoZWNrYm94IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5mb3JtLXZlcnRpY2FsIC5mb3JtLWdyb3VwLm14LWNoZWNrYm94LmxhYmVsLWFmdGVyIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uZm9ybS1ob3Jpem9udGFsIC5mb3JtLWdyb3VwLm5vLWNvbHVtbnMge1xuICAgIHBhZGRpbmctbGVmdDogMTVweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xufVxuXG4ubXgtcmFkaW9idXR0b25zLmlubGluZSAucmFkaW8ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG59XG5cbi5teC1yYWRpb2J1dHRvbnMgLnJhZGlvIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgLyogUmVzZXQgYm9vdHN0cmFwIHJ1bGVzICovXG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLm14LXJhZGlvYnV0dG9ucyAucmFkaW8gbGFiZWwge1xuICAgIC8qIFJlc2V0IGJvb3RzdHJhcCBydWxlcyAqL1xuICAgIHBhZGRpbmctbGVmdDogMDtcbn1cblxuLmFsZXJ0IHtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7XG59XG5cbi5teC1jb21wb3VuZC1jb250cm9sIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xufVxuXG4ubXgtY29tcG91bmQtY29udHJvbCBidXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG59XG5cbltkaXI9XCJydGxcIl0gLm14LWNvbXBvdW5kLWNvbnRyb2wgYnV0dG9uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbiIsIi5teC10b29sdGlwIHtcbiAgICBtYXJnaW46IDEwcHg7XG59XG4ubXgtdG9vbHRpcC1jb250ZW50IHtcbiAgICB3aWR0aDogNDAwcHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbn1cbi5teC10b29sdGlwLXByZXBhcmUge1xuICAgIGhlaWdodDogMjRweDtcbiAgICBwYWRkaW5nOiA4cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKGRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEdBQVlBTVFkQUtYWjhuZkY2NFRMN1F1WDNGZTQ1emFxNGhPYjNmTDYvZnI5L3JyaTlkWHQrWnJVOEN5bTRVbXk1Y0hsOXVQeisySzg2T2oxL056dytyRGQ5TTNxK0pEUTcyckE2aU9pMyszNC9FQ3U0OGpvOXgyZjNnV1YyLy8vL3dBQUFBQUFBQ0gvQzA1RlZGTkRRVkJGTWk0d0F3RUFBQUFoL3d0WVRWQWdSR0YwWVZoTlVEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU5pMWpNVFF3SURjNUxqRTJNRFExTVN3Z01qQXhOeTh3TlM4d05pMHdNVG93T0RveU1TQWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JTWldZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlZKbFppTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRnZ0tFMWhZMmx1ZEc5emFDa2lJSGh0Y0UxTk9rbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZSVUpGTmtVNE5FWkNORVZETVRGRk9EazNNREJCTlVVMVJVTTRRamczUVRVaUlIaHRjRTFOT2tSdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNlJVSkZOa1U0TlRCQ05FVkRNVEZGT0RrM01EQkJOVVUxUlVNNFFqZzNRVFVpUGlBOGVHMXdUVTA2UkdWeWFYWmxaRVp5YjIwZ2MzUlNaV1k2YVc1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRwRlFrVTJSVGcwUkVJMFJVTXhNVVU0T1Rjd01FRTFSVFZGUXpoQ09EZEJOU0lnYzNSU1pXWTZaRzlqZFcxbGJuUkpSRDBpZUcxd0xtUnBaRHBGUWtVMlJUZzBSVUkwUlVNeE1VVTRPVGN3TUVFMVJUVkZRemhDT0RkQk5TSXZQaUE4TDNKa1pqcEVaWE5qY21sd2RHbHZiajRnUEM5eVpHWTZVa1JHUGlBOEwzZzZlRzF3YldWMFlUNGdQRDk0Y0dGamEyVjBJR1Z1WkQwaWNpSS9QZ0gvL3YzOCsvcjUrUGYyOWZUejh2SHc3Kzd0N092cTZlam41dVhrNCtMaDROL2UzZHpiMnRuWTE5YlYxTlBTMGREUHpzM015OHJKeU1mR3hjVER3c0hBdjc2OXZMdTZ1YmkzdHJXMHM3S3hzSyt1cmF5cnFxbW9wNmFscEtPaW9hQ2ZucDJjbTVxWm1KZVdsWlNUa3BHUWo0Nk5qSXVLaVlpSGhvV0VnNEtCZ0g5K2ZYeDdlbmw0ZDNaMWRITnljWEJ2Ym0xc2EycHBhR2RtWldSalltRmdYMTVkWEZ0YVdWaFhWbFZVVTFKUlVFOU9UVXhMU2tsSVIwWkZSRU5DUVVBL1BqMDhPem81T0RjMk5UUXpNakV3THk0dExDc3FLU2duSmlVa0l5SWhJQjhlSFJ3Ykdoa1lGeFlWRkJNU0VSQVBEZzBNQ3dvSkNBY0dCUVFEQWdFQUFDSDVCQVVFQUIwQUxBQUFBQUFZQUJnQUFBVWNZQ2VPWkdtZWFLcXViT3UrY0N6UGRHM2ZlSzd2Zk8vL3dPQXJCQUFoK1FRRkJBQWRBQ3dBQUFBQUFRQUJBQUFGQTJBWEFnQWgrUVFGQkFBZEFDd1VBQXdBQVFBQ0FBQUZBeURUaEFBaCtRUUZCQUFkQUN3VEFBc0FBZ0FHQUFBRkMyQVhkRnhuZE1UUU1WMElBQ0g1QkFVRUFCMEFMQkVBQ3dBRUFBZ0FBQVVSWUNjMllpbHlvcldkVm1jTnA4aTBYUWdBSWZrRUJRUUFIUUFzRHdBT0FBWUFCZ0FBQlE5Z0ozYUJNWjRqaDQ0V0I0bkZjSVlBSWZrRUNRUUFIUUFzRFFBUEFBZ0FCZ0FBQlJGZ0o0NGRSSGJCcVlvcEdRd2NPUmhxQ0FBaCtRUUpCQUFkQUN3QUFBQUFHQUFZQUFBRkxXQW5qbVJwbm1pcXJtenJ2bkFzejNSdDMzaXVrOEpnRHdRYlIyaWhCVGlOV1c4WTR6aDlHaGxnUnkyRkFBQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZNMkFuam1ScG5taXFybXpydm5Bc3ozUnQzMmh6YzN0U0M3emFZT2VvY1NBMFlNWlZJUWtHd1JhUVE2VjJpaklBYnFzS0FRQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZObUFuam1ScG5taXFybXpydm5Bc3ozUnQzMmh6Yy90VVY3eWFJV01MMGppRVZRVUZMS3dDSEVPcFlqQ3lNcHlzbGloYjRMNnJFQUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGT21BbmptUnBubWlxcm16cnZuQXN6M1J0MzJoemN6dFFWN3phcG1BTG1vQXNqZzdGTUI0NWpGV0RzeWxWTnM1VmdjUHRFbU8rQ202c0NnRUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCVDlnSjQ1a2FaNW9xcTVzNjc1d0xNOTBiZDhvY1hPQ3plMm14c2ExWVp4K0xRN2cxRUNxT0prVWc3TkljWXlxNXJDMGdicW1uSENZc1lRdGU3aDBLZ1FBSWZrRUNRUUFIUUFzQUFBQUFCZ0FHQUFBQlVSZ0o0NWthWjVvcXE1czY3NXdMTTkwYmQ4b1lRWXdKNVNjbmluNElwSVlGOWNsV1ZvWVY1ekZLZk5FY1RLcFN4WElURkc3SXkyMnhlQ1l6eGNwVFBxajRONm9FQUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGU21BbmptUnBubWlxcm16cnZuQXN6M1ROYm5iQXdZUzV2NXdBcWZKekZVZEhWckt6WWJnWU9OK2t4YW1jQ2dQV29KRGFaRk9EYUtyQWNaWVlIRzVydzJtN04xWllSUmkzMlZjaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVlBZQ2VPWkdtZWFLcXViT3UrY0N6UDVVYlFJb2QzZ3I3N3JodkpBbXh4TEtVaVM5bmhURjVNQThQRk1KaDZMbzdneEJpd0JsUFV4cHNhYkZZTVRwaVVYcXNFQm81OGJ0akN0aGI3YnI4S0FRQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZVMkFuam1ScG5taXFybXpydmpETFhERXBjRFZwWlBtSTk1MGJVUFJ6UVVxUVlvdHpKQ2xaejhsenhabVVEQVZYd1hDYW9yeWRDM2Rsb0tFTTQzTWFkZUZrU3dXT2VSVXdjTzU0UXlBbU9BcUdnQzBoQUNINUJBVUVBQjBBTEFBQUFBQVlBQmdBQUFWWFlDZU9aR21lYUtxdWJMdHVsbnNhaG14dXRVMEduRjRPRFIrcEp4VHhpaUpDemhYNzJRYUVIZEUxSFZWWkhNQXY0OG9NVE1jV0ozRENzUXliMUdBNSs2bzJIRzRwdzBtekFnTU9aNURmazIwQlVYOUloQzBoQUNINUJBa0VBQjBBTEFJQUF3QVVBQk1BQUFVL1lDZUsxdENNYUpweWhPcU93L2JPOUd6VmM0dnY5YzJuc2w5QVpQaDFpajZqY3JRUW5YYlBEc1E0SFFWcFYxUld0VTFGUjE5WDlWZ1VqV20rWkNvRUFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVmJZQ2VPWkdtZWFLcU9GckdpeE1CeHpHc2FuR3VidzdhZkJ0K3ZST0FNVGJsanlhaGtNWnVkaG5BWEtFbUhtOFp5K0JRdHVpL09ZcWw3RlUvZ1ZQSTJUVzBNcVo1cU0xamh5cU1pM0R6amJEWjllRFlRRFZwalVJZy9JUUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGWUdBbmptUnBubWlxaWxXWFpjUnFFaHczWE5jZ2t3WUg3U2ZPQlhneURJa2xHdExrVzVZNFRoSkJGeFZsamtCQjZZcThaRXBVWUpnRkpYSmFwT1lPVXBhMlY1eVl5U2k3R0ZKQzFlVmRWSlBZZHpJME5qZ0ROWEpFQkYrSVZZMUFJUUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGWldBbmptUnBubWlxaWtKWEZNUnFOaHhuTUlWUngvTEFXYWFBck1OaERGRUQ0M0hHV1o1K3pwS2dHUzBacXFTQ2Npa2NhWjA0RXVHNk5QQkcxR01hRFJ4YTFpS2F1bkZLeWhpRFZGSEZnSnQ4YlNSdmVUSTBOZ3dNT2h4MFRnUXZIUzFZa2xFaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVm1ZQ2VPWkdtZWFLcUtRY01VeldwbUhMZDF4VlpuY2pjTUFWUGdwMXB3Q2lyR0RUVkE5azZad1JQRm1aNENWV3Vwc2RTT1h0cmdWMXRna0xqV1RZeVVmYlpISExFTU81UDJCanhUVTFhd240NHFCVzhtQzBSQ2hpczBOZ1U1TzFZdFptdGVrNU1oQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFWbllDZU9aR21lYUtxS1FYWmQyV29XSEhkMURWTVhjc1VOSjRHQnMrTHdVclFLeWlpam5RcEFXY2R3NGdTa3FBQVJlM0p4VDdkdngwS0NmYjBqTk5aTTJtTGRJeXRXTzR2S0JzY1NjK1ZjNXA5d1ZYWWtBUU9CS0RRMkdTNDdYeTB2SFZkaWs1UWlJUUFoK1FRRkJBQWRBQ3dBQUFBQUdBQVlBQUFGYm1BbmptUnBubWlxaWxheGJjVnFNaHpIZEExdHl3Sm5uQUlEUjZEaVpGUVpUc29vUzU0WVAxbkhjQ3NOcFNJbHlhTEZjZ0trUWhWcjJwQkZpOUttY1c2WVIrSXpJMGJxU3UxWm9qZFJnbUtwSjB3clRpaUNLSVFvUFZFbFFYZ29PZ3dOT1RWalVpMW1kR2VhbXlVaEFDSDVCQVVFQUIwQUxBSUFBZ0FVQUJRQUFBVmJZQ2VPa01HZG5BR05MSWx5dy9DdWJjZWNXWjJkVEhzYk5aYXBKNEtrZ2kwVDdZU3NNWTI1Sm10WDRraWRKdXVWaFJwc1dUTFlkeFRXamsrbXNTZ0ZIVk03ekcvY0NMd3FSei9wMElmVDhZSkdYV1VjTkVoVktDbzFJUUFoK1FRRkJBQWRBQ3dCQUFFQUZnQVdBQUFGWjJBbmptUFZCV1NxbmdaSGNnYTZqc2JyMG5OMTEyVEZjNmFVNnpZYnBtckVXY2ZGTzRrRXloSFUyYWsxbzlYc0VydHlCYm1xWUpKN1E0MnhMaG00MlBsaVRUc3QxeXBTYzZkcUpGa3VHazVWQWtZcE9pSlhiVDlLVnh4Smhpb0JMUytOVVNaMktpRUFJZmtFQ1FRQUhRQXNBUUFCQUJZQUZnQUFCV3BnSjQ2aWxWMVgxazFrUzE2Y3kxMHUyY1MxeURVMU0zSUVFZ0hYOGRsR3dWcXl3L3ZsY2tSYVovbE1TbVBFcDY0VHM0aW8ycVJKcXoyUm42aHpMcVd1cWI1dEtyWTk3MGpCU3BHVTI5Nk9tbE01UzRBaVJseFVReU9HTmxreWhDNHdNbnRrSmlncUxDNGhBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVYrWUNlT1pHbWVwVlZjVjlaTjZMbHhkRTF2OGRqWWZOM0VEQnVFQkxFeFRqdmE4RlNrL1VxMW5DaEttbkdXdVNadVJKVjJ1aGFsbDh1eGlESzBNZG5WdWFUVlg4NUY1T2JBNC9NTzJnNm5zZU5ZVWsxbVUyOWVYUjFXZ1NoYUpBdUlLSkFkU1ZlTVBpZEJrRTAwUnlpVVBaZFNWajFiYWhZWkxCbUVkM0FoQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFXQllDZU9aR21lcFZWY1Y5Rk42TGx4ZEUxdjhkallmTjNFakpyQlpLZ3hUanRhVE9BejFYS2lKMm5HRVVDakhOeUlOcngyaXB5UlJlbnRNRGtXVVlGY3ByazZGN2FYZGhIRncrVU9YUzIvdXJkVlpXY2tYR1ZnVTMweE55UUxVamsxQ3lWSmdTZG5IRDhtUVlVa0FtQWNSeWlUUFUxUVZEMWFaU29zQldsNXJoMGhBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVdDWUNlT1pHbWVwVlZjVjlGTjZMbHhkRTF2OGRqWWZOM0VqTnJGZEtreFRqdk9JRGVnL1VxMFphN1Q1SlJtMXFub1JxSU50WjFpdG1PaGdVYzBpNmhnUG5kb3JuRDc3QldKM1cvT2x6MEd3OUY5VXdCcEloTjFZSGNqV0hRY09GMUtXbFVtU1FNQU1WVlBKVUdISXdCaUhFY29TVDAybVRGWVBZNW5LaXd1TUhodUlRQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZlbUFuam1ScG5xV1ZNVXlHdmhjbnovTDFqZzJ0ejgxYnpLNVNabFk0NVRpR20wSFdLOG1TdDg2U1U0cFJvNklhU1JiRURxOGRpd3k3NVZoRVgvS0lLMktNMVIwWm8vMVd5OUYxTWpzTDF2ZjNYaklUSTFaMkhEWmxVRXA1SWtlS0oxTk5KVCtBSTE4Y1JTaEhPelNTTUp5SGNHRXJMUjJEb25BaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVjlZQ2VPWkdtZVpkQXdUSU8rRnlmUDh2V09CRDFjMTBBVHI4SU1Zb0xNQ3FjY3h3YVRBVXUxbXlqR0tWR2xvMmlXUThSMmpGVlJRT2JkQmtRTnpxQXM4bzBZUzNZbnhoREJtV1Y2ZHMzMnVUcGpZV1ZrVzExWVlDUlhYbHBiZUUyQ09Jd25WRThsUWpLR0kyQWNTQzg2UEQ0elhsUTBrbGhuTEg5eWNpRUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCWDFnSjQ1a2FaNWwwQlJGZzc0TUo4OHk4NDRFZlhYWlJST3ZqR3h3RWd4a21WT09rd3pLZ0NYa1RTVGtsR0xFcWVob0c4bTBwSzhvSUFaM1pBRlJnN016ZDN5akF0UE40eFJFY25yOUxtTFQ0V05sWUdoZUhBSnVnbGhtWEZGelUxVW1TMDBvVlZBbFZWa2xSbEl2T2hrOU5HQXhORE5kWmlvZExYcDZJUUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGZ0dBbmptUnBucVhRRkZrbm9HakJ6ZlJjd0NORUR4M1JaUU1hQk5hWWJWQ2JXZU9rNCtCNnM5UE05K3hFU2JKanRaTzhqYTViQUZqQTRXMUZ3WmVJMHpyL25LSU1oK3BteCtGdWdoM2FQc3ZwWlc0ZFFTUmdXNFpaWjEwbFUxVjZlRG1OTUk5REprVWNXaVpKa0ZJekF4aytRRUpWTWpVMFhtY3ZHYUNDclIwaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVjZZQ2VPWkdtZXBkQmxHWUcrR1NmUGN2YU8xcnk1UWJmTmxoZEJWa0FWWks2VDdOWUpMRTJ5SHJQekhNV0swODdSTnFwbXF3TE9KanY2cVVTY0pIbG81WkJKSEc1TVNuWnkyZThPSGoxK203dHViMTVYWkZzbFVWK0JKRG1LS0U0Y1FTWkRIRmdtUjJrM09qd0VQMTR3TkRSY1pDb3NIV2Q1YnlFQUlma0VDUVFBSFFBc0FBQUFBQmdBR0FBQUJYcGdKNDVrYVo1bDFXVk5wNkpueHMzMG5NRmpRQmR1RnhTMEFJd3dHeFpSbkFGT05PQUlTOGRsSnlxU0VhUWk0bTFFbFVZckhCNVdCQ1J4eG1hSXFNRjVqY0d0RGh2TmpVK2ZZOTBJTEI2WHVXZG9WRlpqV2xDQlhvaG1Ta3ROZUNSRUhGY25rWk1uT2pNOEtqOUJVakkxTkZ0b0VBMHRiblJqSVFBaCtRUUpCQUFkQUN3QUFBQUFHQUFZQUFBRmdHQW5qbVJwbmlaRWRCYnFObHdzeDQwN0NyR3hkbE5IR0RHQkM4SVp1QUlEam90anNJbUF3bExST1VxV1lBR3FLTUNwalpqYUVaREUyWVU3U3BFbGZhNXdXajcydVN3aXlNTjBFYWR5N3JoSEMzZGFIQXRmVFdkakkxaGhYRjVmUmxwV0ptQk9pU2xGV1NkSUhCQXVPRXc3UFQ4eFdqQXpNbzVoRml0d2ZYMGhBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVYxWUNlT1pHbWVwa1YwQWVvU1hDekhxeXRXOFVWTzNSWGJIWTdCWnVCWVRqZ2QwSGNTQWtmRkV1dzVXbkJxSW82UzJ1T1FPQzF1ZGhUd2lqc1RzR2g2RG1MTlozaTVIUXpYei9PUjlzd2NzYmxYSlU1VVVTVkpUejRWS0VJTEtBdEZSeWc0ZXlNOFBuQTJNRE15V0Z3QkJDc0FkR0loQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFWellDZU9aR21lWmdCMUFlb1NBeWZQQStHU2NWWldHVGZjQWM3bGR1RzBUaHpkclZQZ25BYkRwZWp5SXhHYzBoSEhOaG9vczUxTVZZUUZrMGRCcy9ZSUtaczVxN082QXhlbDUyNU9SVjF4ZTlWaVZtNVNXeVZRWUZSSUJWSk5LRUZSS0VWSEtEazdQV00zTURNMFhHWXFjWE5xSVFBaCtRUUpCQUFkQUN3QUFBQUFHQUFZQUFBRmQyQW5qbVJwbm1iUVdkMkVvdERBY1lZeEQ5QkxEZ05oRWp4ZGdKUFJaVGlxRThlbkUzRk9nMkpUbEJtVVl0TmRidFRMam9Da3AzY2s3Z2pLWTQ1Z1pCaXpSNWEydTJOZ09lZWQ4Z1R0NWJoRVhXTmdPMjQ0SlZGZVZTWUxTMU1FZkdGU0tFZE5QRXdrUUZaVE1UTTFOMXRqYXl4L2VGa2hBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVZvWUNlT1pHbWVwdEFGYU50WkJtY3dUR3hZN21nWXA3QzdBZzdFQmVHMGpMa1ZzbVFZSmpzUUhnbjIxT0YwVlpKVXRNd3VmVm1kU3NRSWswZUJzcG5CRW0yejcyNjFheGhYd1NNcTNOU3NSazl5UnloQlRpaEZkaWMvS1lvNU1ESTBObVlkS20yU1dTRUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCV3hnSjQ1a2FaNW0xUVZvdXhvYzB6UU1aN0N1YURBb1k3Z1ZUazRnUkJWekhjN0VaQkFnUllJZktjQjdpcW9qcVZWSE9tNlBGZXlXb1JJMXRxT3pDSWZ1cUsvdERubmt0WG9OaTdaMjFXYXdkVTVQVVNkMUxZVWlRWUVvUkRrN1BYc3RBVEF5TkRaL1ZwZHhUeUVBSWZrRUNRUUFIUUFzQUFBQUFCZ0FHQUFBQldOZ0o0NWthWjVtMVFsbzJ3V2IwWFJRWTJ5Qk8yN3oyV3c2ZzY0alJCa2NRK0xFQkV5S21xTkF6emw5T2tsUTRuVlVGRldwcXRWMkJCa0p5bU8wZDl5cGRxL3ZyRE1yM1g2MThOUGJaVmlhRm50NkN5NDhLRDlKTURJME5qaGpLaXhzV3lFQUlma0VDUVFBSFFBc0FBQUFBQmdBR0FBQUJWaGdKNDVrYVo3bTBnbG91MjdGMmxuRjVwSTJhdVV0M3dNb24wc29JZzVMQXN1dHBNUXRUYjdZa3lRVk5hZldFUXRMMnNxNDN5ejQycWxpemNhYmtMeGtkOUxCRTd5VUJzeUxhcmYxUG9JcFdUVmdJaXdxZ2xnaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVlpZQ2VPWkdtZXA5QUJhTnN4aE5xcGpPeSt0c25jeGQzMUtLQlBTTnI1UnNaUjdyaE1Ia1ZPd3BQVUlDMmZyT21wSXVKcVI5N1pWenlTZnF2SXNaTThiV3JYSXFKTFRxS2I3TVdyU0FCSHdUb0xZbjArWGdwalV5RUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCVkZnSjQ1a2FaNW5oYTVqWm9sSloyVXNTYVBBdlJKMXg2Ty9YdERXSTVZQVJaS3FsVFNLWHMxb2JTSmFTcSttbUlpSzVjcXVVSkd1T2NhYXlqVzBMemtzdFUvdmtwclpxOUNRSFdURzJ1U2JleUVBSWZrRUNRUUFIUUFzQUFBQUFCZ0FHQUFBQlVsZ0o0NWthWjVuaGE0anBJcE9CN0Vrd2Rwc1FIYzYydSsvMms0NExNcU1MZVF1cHV4TVJJdW05QlNGVGErZGwyaW01R0pMdUdLWUZNeXR5dEt4U2IzeWlpcnU0clA2WllVQUFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVTVZQ2VPWkdtZUo0Q3VZMUNxS2l1Nk1ydlVkNjJiOU43dnRaOFBTQ3dtUkxHaU1yVkVKWnZMMzdNcGxGV2hwWnpOaW0zeGxxcGpseFVDQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFVM1lDZU9aR21lNklTdTRtSzY3RmpGTkoyc2Q2M0g4MTdEUHFCdlNDeUtWRVdrY1lrUzZweE1VUys2azFCWDAxT1dCWVhxbE5kVENBQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZMR0Fuam1ScG5taXFvdFBxdm5Bc3oySkxxL2F0Ny96cDlNRGdLQmNqQ284OHhVdXBNNmFjVHRnUGFRb0JBQ0g1QkFVRUFCMEFMQUFBQUFBWUFCZ0FBQVVqWUNlT1pHbWVhS3F1Yk91K2NMeFNjbTNmZUk3VGV0L3p2cUJ3eUFLV2pDOGtNUVFBT3c9PSkgbm8tcmVwZWF0IHNjcm9sbCBjZW50ZXIgY2VudGVyO1xufVxuLm14LXRvb2x0aXAtY29udGVudCAudGFibGUgdGgsXG4ubXgtdG9vbHRpcC1jb250ZW50IC50YWJsZSB0ZCB7XG4gICAgcGFkZGluZzogMnB4IDhweDtcbn1cbiIsIi5teC10YWJjb250YWluZXItcGFuZSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuLm14LXRhYmNvbnRhaW5lci1jb250ZW50LmxvYWRpbmcge1xuICAgIG1pbi1oZWlnaHQ6IDQ4cHg7XG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaE5nQTJBUE1BQVAvLy93QUFBSGg0ZUJ3Y0hBNE9EdGpZMkZSVVZOemMzTVRFeEVoSVNJcUtpZ0FBQUFBQUFBQUFBQUFBQUFBQUFDSDVCQWtLQUFBQUlmNGFRM0psWVhSbFpDQjNhWFJvSUdGcVlYaHNiMkZrTG1sdVptOEFJZjhMVGtWVVUwTkJVRVV5TGpBREFRQUFBQ3dBQUFBQU5nQTJBQUFFeXhESVNhdTlPT3ZOdS85Z0tJNWt5U0VKUVNTSTZVcUtLaFBLV3lMejNOcGltcXNKbnVnM0U0YUlNaVBJOXdzcVBUamlUbGt3cUF3RlRDeFhleFlHczBIMmdnSk9MWUxCUURDeTVnd213WXg5SkpyQXNzSFFYc0tyOUNGdU0zQWxjakowSUFkK0JBTUhMbWxySkFkdUJvNVBsNWlabXB1Y25aNmZjV3FJbUpDamFIT1poaXFtRkl1QWw2NFpzWml6RjZvRXJFSzN1Uk9sbTc2Z3djTER4TVhHeDhYQWo2SWt1NCtvSXJVazBoL1UwV0Vqem5IUUlzcWhrY2pCM3NuY3hkYkM1K0xseWN6aDdrOFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRNRU1oSnE3MDQ2ODI3LzJBb2ptUnBubVZoRUlSUm9HY3hzT3p3d3VSS3N3Wk83anZmQ0VnVGluUzduaEYwbU5FR2h3c2l3VW9nbHBTRHpoQzFLSWlLa1dBd0VKZ1FSTllWSk5pWlNkUjBJdVNzbGRKRlVKMHd1T01KSVcwMGJ5TnhSSE9CWklRamFHbHJXQnhmUUdHUUhsTlZqNVdhbTV5ZG5wOUxZMldib29zV2dpeW1RcWdFcWhON2ZaQ3dHYk95TzdFWHJLNDR1aHFscElxZ3dzUEV4Y2JIeU1lL0tNc2l2U2JQZExjbnRkSlAxTlBPYmlmUmlhUE13Y25DemNyYnlOWEc2TVhkeHVUaTd6NFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRPRU1oSnE3MDQ2ODI3LzJBb2ptUnBubWlxQXNJd0NLc3BFRFFCeCtOUUV3T2U3ejFmYUZhN0NVR3QxMUZZTU5BTUJWTFNTQ3JvYW9Qb2NFY1ZPWGNFZytoS0M1TEF0VEhRaEthSmlMUnU2THNUdjEzeTBJSE1PeXc5QjE4R2ZuK0Zob2VJaVlvWkNBazBDUWlMRmdwb0NobFRSd2h0QkpFV2NEWkNqbTBKRjN4bU1adHVGcVpDcVFRWG4za29vbWlrc0hpWm01MlNBSlJnbHJ3VGpZKzd3Y2JIeU1uS0U1Z296VzljSjdFL1dDZXNhdFVtMTF0RjB0RWp6eks0eTRuaHh0UEkyOGJxd2VqSTV1VHhKaEVBSWZrRUNRb0FBQUFzQUFBQUFEWUFOZ0FBQk1zUXlFbXJ2VGpyemJ2L1lDaU9aR21lYUtvQ3dqQUlxeWtRTkFISDQxQVRBNTd2UFY5b1Zyc0pRYTNYY1lsS0dtV3VKM0luRlJGcDFZNnVGaXh0YVYzUWwzY2FoejlYMnltZDdUaFRiNlo4VHEvYjcvaTh2R0NnR1FvYWNVSUZab0FYYkVkOU93UUdHR1pIaXpXT1FKQ1JCQmlJUW9vN2paaFJTd2RtQjNvVUI0b0dvNlNxcTZ5dE1RZ0pOQWtJckFxUkNpT0NJd2lXQkxSVFJTV3hsZ2toanlTOU5NYVV5TWxEVk1LOXhVT2ZKYnlXdjNxMmk3aEx1aFd3c3RsQ21hdkg1c3lyNWVyVnJ1NDRFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWlaY2dVR05BWUZKSk1pQldhZ1E0TWxuVHNFQmlLTElxczFya0Ftc1RSV3FDU3FPNjFXa1JrSUNUUUpDQmNIWmdkSENyRUt4cW9HeVVJSXRnVEZlc0syQ1h2VXQzcmNCSHZZc2RwNjA3Yldlc3VyelpYQncrZ2lFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWdTQ0FrMENRaVdDanMwQ3BRSW9qV2ZKWk1kbktjRUNhcURJSzQxWGtBaHREUzJYQ0d0cDdBa2p4Nm1ycW5Ca1NLaG9xUVhCUVkwQmdWTG01M0dGUVZtMHBUUG9nYVZ0Tit1bGR3NzNwUUhaZ2VXQjl3RzZwa29FUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2dktVU0Nsa0RnTFFvN05BcC9Fd2lDTlg1Q2NSWjdpQVFKaTFRWGp6VkNacFNWQkpkQUY0NklrVDVzRjRlUGlxSlJHWUdDaElXR2puMnVzck8wdFhZRkJqUUdCYlFGWnJ4UVNpSzVnZ1l5a3lHVkpwakpqOHVkSWNRN3hpV2pJUWRtQjJ1cEl3ZkVCdHEySG95ejFyUE01OURseUxUazR1OHBFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3a1JDVm9Db1dtOWhCTEZqcWFBZGhEVEdyUGtOSDZTV1VLQ3UvTjJ3cldTcmhiOG9HbHFZQWljSFpPSU5ETUhHOTdlWFhvZFVsTlZWbGRnUzRhS2k0eU5qbzhGQmpRR0JZOFhCV3MwQTVWUVhSbVNVd2FkWlJob1VKazhwV0duY2hlZ082SkNlRFlZQjZnREIxYWVHUWVnQnJtV3djTER4TVhHeDF5QUtic2lzNEVnemo5c0o3ZlNtdFN0UTZReTI4M0tLTXpJamVIRTBjYlY1OW5sM2NYazR1OG9FUUE3KSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDMycHggMzJweDtcbn1cbi5teC10YWJjb250YWluZXItdGFicyB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuLm14LXRhYmNvbnRhaW5lci10YWJzIGxpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ubXgtdGFiY29udGFpbmVyLWluZGljYXRvciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQ6ICNmMmRlZGU7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGNvbG9yOiAjYjk0YTQ4O1xuICAgIHRvcDogMHB4O1xuICAgIHJpZ2h0OiAtNXB4O1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB6LWluZGV4OiAxOyAvKiBpbmRpY2F0b3Igc2hvdWxkIG5vdCBoaWRlIGJlaGluZCBvdGhlciB0YWIgKi9cbn1cbiIsIi8qIGJhc2Ugc3RydWN0dXJlICovXG4ubXgtZ3JpZCB7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47IC8qIHRvIHByZXZlbnQgYW55IG1hcmdpbiBmcm9tIGVzY2FwaW5nIGdyaWQgYW5kIGZvb2JhcmluZyBvdXIgc2l6ZSBjYWxjdWxhdGlvbnMgKi9cbn1cbi5teC1ncmlkLWNvbnRyb2xiYXIsIC5teC1ncmlkLXNlYXJjaGJhciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZmxleC13cmFwOiB3cmFwO1xufVxuLm14LWdyaWQtY29udHJvbGJhciAubXgtYnV0dG9uLFxuLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIC5teC1idXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbn1cblxuLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIC5teC1idXR0b24gKyAubXgtYnV0dG9uLFxuLm14LWdyaWQtY29udHJvbGJhciAubXgtYnV0dG9uICsgLm14LWJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDAuM2VtO1xufVxuXG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXNlYXJjaC1jb250cm9scyAubXgtYnV0dG9uICsgLm14LWJ1dHRvbixcbltkaXI9XCJydGxcIl0gLm14LWdyaWQtY29udHJvbGJhciAubXgtYnV0dG9uICsgLm14LWJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjNlbTtcbn1cblxuLm14LWdyaWQtcGFnaW5nYmFyLFxuLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG4ubXgtZ3JpZC10b29sYmFyLCAubXgtZ3JpZC1zZWFyY2gtaW5wdXRzIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICBmbGV4OiAxO1xufVxuXG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXRvb2xiYXIsXG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXNlYXJjaC1pbnB1dHMge1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAwcHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXBhZ2luZ2JhcixcbltkaXI9XCJydGxcIl0gLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIHtcbiAgICBtYXJnaW4tbGVmdDogMHB4O1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLm14LWdyaWQtcGFnaW5nLXN0YXR1cyB7XG4gICAgcGFkZGluZzogMCA4cHggNXB4O1xufVxuXG4vKiBzZWFyY2ggZmllbGRzICovXG4ubXgtZ3JpZC1zZWFyY2gtaXRlbSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuLm14LWdyaWQtc2VhcmNoLWxhYmVsIHtcbiAgICB3aWR0aDogMTEwcHg7XG4gICAgcGFkZGluZzogMCA1cHg7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbltkaXI9XCJydGxcIl0gLm14LWdyaWQtc2VhcmNoLWxhYmVsIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLm14LWdyaWQtc2VhcmNoLWlucHV0IHtcbiAgICB3aWR0aDogMTUwcHg7XG4gICAgcGFkZGluZzogMCA1cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4ubXgtZ3JpZC1zZWFyY2gtbWVzc2FnZSB7XG4gICAgZmxleC1iYXNpczogMTAwJTtcbn1cblxuLyogd2lkZ2V0IGNvbWJpbmF0aW9ucyAqL1xuLm14LWRhdGF2aWV3IC5teC1ncmlkIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbiIsIi5teC1jYWxlbmRhciB7XG4gICAgei1pbmRleDogMTAwMDtcbn1cblxuLm14LWNhbGVuZGFyLW1vbnRoLWRyb3Bkb3duLW9wdGlvbnMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLm14LWNhbGVuZGFyLCAubXgtY2FsZW5kYXItbW9udGgtZHJvcGRvd24ge1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4ubXgtY2FsZW5kYXItbW9udGgtY3VycmVudCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4ubXgtY2FsZW5kYXItbW9udGgtc3BhY2VyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5teC1jYWxlbmRhciwgLm14LWNhbGVuZGFyLW1vbnRoLWRyb3Bkb3duLW9wdGlvbnMge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JleTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbiIsIi5teC1kYXRhZ3JpZCB0ciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubXgtZGF0YWdyaWQgdHIubXgtZGF0YWdyaWQtcm93LWVtcHR5IHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5teC1kYXRhZ3JpZCB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLm14LWRhdGFncmlkIHRoLCAubXgtZGF0YWdyaWQgdGQge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG59XG5cbi8qIGhlYWQgKi9cbi5teC1kYXRhZ3JpZCB0aCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBSZXF1aXJlZCBmb3IgdGhlIHBvc2l0aW9uaW5nIG9mIHRoZSBjb2x1bW4gcmVzaXplcnMgKi9cbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAycHg7XG59XG4ubXgtZGF0YWdyaWQtaGVhZC1jYXB0aW9uIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ubXgtZGF0YWdyaWQtc29ydC1pY29uIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1kYXRhZ3JpZC1zb3J0LWljb24ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmc6IDAgNXB4IDAgMDtcbn1cbi5teC1kYXRhZ3JpZC1jb2x1bW4tcmVzaXplciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAtNnB4O1xuICAgIHdpZHRoOiAxMHB4O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBjdXJzb3I6IGNvbC1yZXNpemU7XG59XG5bZGlyPVwicnRsXCJdIC5teC1kYXRhZ3JpZC1jb2x1bW4tcmVzaXplciB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogLTZweDtcbn1cblxuLyogYm9keSAqL1xuLm14LWRhdGFncmlkIHRib2R5IHRyOmZpcnN0LWNoaWxkIHRkIHtcbiAgICBib3JkZXItdG9wOiBub25lO1xufVxuLm14LWRhdGFncmlkIHRib2R5IHRyOm50aC1jaGlsZCgybisxKSB0ZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcbn1cbi5teC1kYXRhZ3JpZCB0Ym9keSAuc2VsZWN0ZWQgdGQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG59XG4ubXgtZGF0YWdyaWQtZGF0YS13cmFwcGVyIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ubXgtZGF0YWdyaWQgdGJvZHkgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDE2cHg7XG4gICAgbWF4LWhlaWdodDogMTZweDtcbn1cbi5teC1kYXRhZ3JpZCBpbnB1dCxcbi5teC1kYXRhZ3JpZCBzZWxlY3QsXG4ubXgtZGF0YWdyaWQgdGV4dGFyZWEge1xuICAgIGN1cnNvcjogYXV0bztcbn1cblxuLyogZm9vdCAqL1xuLm14LWRhdGFncmlkIHRmb290IHRoLFxuLm14LWRhdGFncmlkIHRmb290IHRkIHtcbiAgICBwYWRkaW5nOiAzcHggOHB4O1xufVxuLm14LWRhdGFncmlkIHRmb290IHRoIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDtcbn1cbi5teC1kYXRhZ3JpZC5teC1jb250ZW50LWxvYWRpbmcgLm14LWNvbnRlbnQtbG9hZGVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDkwJTtcbiAgICBhbmltYXRpb246IHBsYWNlaG9sZGVyR3JhZGllbnQgMXMgbGluZWFyIGluZmluaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiAjRjVGNUY1O1xuICAgIGJhY2tncm91bmQ6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNGNUY1RjUgMCUsICNGNUY1RjUgNSUsICNGOUY5RjkgNTAlLCAjRjVGNUY1IDk1JSwgI0Y1RjVGNSAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDIwMHB4IDEwMHB4O1xuICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG59XG5Aa2V5ZnJhbWVzIHBsYWNlaG9sZGVyR3JhZGllbnQge1xuICAgIDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwcHggMDsgfVxuICAgIDEwMCUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTAwcHggMDsgfVxufVxuXG4ubXgtZGF0YWdyaWQtdGFibGUtcmVzaXppbmcgdGgsXG4ubXgtZGF0YWdyaWQtdGFibGUtcmVzaXppbmcgdGQge1xuICAgIGN1cnNvcjogY29sLXJlc2l6ZSAhaW1wb3J0YW50O1xufVxuIiwiLm14LXRlbXBsYXRlZ3JpZC1jb250ZW50LXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5teC10ZW1wbGF0ZWdyaWQtcm93IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3c7XG59XG4ubXgtdGVtcGxhdGVncmlkLWl0ZW0ge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4ubXgtdGVtcGxhdGVncmlkLWVtcHR5IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuLm14LXRlbXBsYXRlZ3JpZC1pdGVtLnNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xufVxuLm14LXRlbXBsYXRlZ3JpZC1pdGVtIC5teC10YWJsZSB0aCxcbi5teC10ZW1wbGF0ZWdyaWQtaXRlbSAubXgtdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDJweCA4cHg7XG59XG4iLCIubXgtc2Nyb2xsY29udGFpbmVyLWhvcml6b250YWwge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG59XG4ubXgtc2Nyb2xsY29udGFpbmVyLWhvcml6b250YWwgPiBkaXYge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi5teC1zY3JvbGxjb250YWluZXItd3JhcHBlciB7XG4gICAgcGFkZGluZzogMTBweDtcbn1cbi5teC1zY3JvbGxjb250YWluZXItbmVzdGVkIHtcbiAgICBwYWRkaW5nOiAwO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1maXhlZCA+IC5teC1zY3JvbGxjb250YWluZXItbWlkZGxlID4gLm14LXNjcm9sbGNvbnRhaW5lci13cmFwcGVyLFxuLm14LXNjcm9sbGNvbnRhaW5lci1maXhlZCA+IC5teC1zY3JvbGxjb250YWluZXItbGVmdCA+IC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlcixcbi5teC1zY3JvbGxjb250YWluZXItZml4ZWQgPiAubXgtc2Nyb2xsY29udGFpbmVyLWNlbnRlciA+IC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlcixcbi5teC1zY3JvbGxjb250YWluZXItZml4ZWQgPiAubXgtc2Nyb2xsY29udGFpbmVyLXJpZ2h0ID4gLm14LXNjcm9sbGNvbnRhaW5lci13cmFwcGVyIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cblxuLm14LXNjcm9sbGNvbnRhaW5lci1tb3ZlLWluIHtcbiAgICB0cmFuc2l0aW9uOiBsZWZ0IDI1MG1zIGVhc2Utb3V0O1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1tb3ZlLW91dCB7XG4gICAgdHJhbnNpdGlvbjogbGVmdCAyNTBtcyBlYXNlLWluO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1zaHJpbmsgLm14LXNjcm9sbGNvbnRhaW5lci10b2dnbGVhYmxlIHtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB3aWR0aDtcbn1cblxuLm14LXNjcm9sbGNvbnRhaW5lci10b2dnbGVhYmxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1zbGlkZSA+IC5teC1zY3JvbGxjb250YWluZXItdG9nZ2xlYWJsZSA+IC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbn1cbi5teC1zY3JvbGxjb250YWluZXItcHVzaCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1zaHJpbmsgPiAubXgtc2Nyb2xsY29udGFpbmVyLXRvZ2dsZWFibGUge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG4ubXgtc2Nyb2xsY29udGFpbmVyLXB1c2gubXgtc2Nyb2xsY29udGFpbmVyLW9wZW4gPiBkaXYsXG4ubXgtc2Nyb2xsY29udGFpbmVyLXNsaWRlLm14LXNjcm9sbGNvbnRhaW5lci1vcGVuID4gZGl2IHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5teC1zY3JvbGxjb250YWluZXItcHVzaC5teC1zY3JvbGxjb250YWluZXItb3BlbiA+IC5teC1zY3JvbGxjb250YWluZXItdG9nZ2xlYWJsZSxcbi5teC1zY3JvbGxjb250YWluZXItc2xpZGUubXgtc2Nyb2xsY29udGFpbmVyLW9wZW4gPiAubXgtc2Nyb2xsY29udGFpbmVyLXRvZ2dsZWFibGUge1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuIiwiLm14LW5hdmJhci1pdGVtIGltZyxcbi5teC1uYXZiYXItc3ViaXRlbSBpbWcge1xuICAgIGhlaWdodDogMTZweDtcbn1cblxuIiwiLm14LW5hdmlnYXRpb250cmVlIC5uYXZiYXItaW5uZXIge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xufVxuLm14LW5hdmlnYXRpb250cmVlIHVsIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuLm14LW5hdmlnYXRpb250cmVlIHVsIGxpIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RmZTZlYTtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSBsaTpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG4ubXgtbmF2aWdhdGlvbnRyZWUgYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgY29sb3I6ICM3Nzc7XG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgI2ZmZjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4ubXgtbmF2aWdhdGlvbnRyZWUgYS5hY3RpdmUge1xuICAgIGNvbG9yOiAjRkZGO1xuICAgIHRleHQtc2hhZG93OiBub25lO1xuICAgIGJhY2tncm91bmQ6ICMzNDk4REI7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuLm14LW5hdmlnYXRpb250cmVlIC5teC1uYXZpZ2F0aW9udHJlZS1jb2xsYXBzZWQgdWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4ubXgtbmF2aWdhdGlvbnRyZWUgdWwge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xufVxuLm14LW5hdmlnYXRpb250cmVlIHVsIGxpIHtcbiAgICBwYWRkaW5nOiA1cHggMDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCBsaSB7XG4gICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICBwYWRkaW5nOiA1cHggMDtcbn1cbltkaXI9XCJydGxcIl0gLm14LW5hdmlnYXRpb250cmVlIHVsIGxpIHVsIGxpIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCBsaSB1bCBsaSB7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIHBhZGRpbmctdG9wOiAzcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDNweDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCBsaSB1bCBsaSBpbWcge1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4iLCIubXgtbGluayBpbWcsXG4ubXgtYnV0dG9uIGltZyB7XG4gICAgaGVpZ2h0OiAxNnB4O1xufVxuLm14LWxpbmsge1xuICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbiIsIi5teC1ncm91cGJveCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi5teC1ncm91cGJveC1oZWFkZXIge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gICAgY29sb3I6ICNlZWU7XG4gICAgYmFja2dyb3VuZDogIzMzMztcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4IDRweCAwIDA7XG59XG4ubXgtZ3JvdXBib3gtY29sbGFwc2libGUgPiAubXgtZ3JvdXBib3gtaGVhZGVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubXgtZ3JvdXBib3guY29sbGFwc2VkID4gLm14LWdyb3VwYm94LWhlYWRlciB7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLm14LWdyb3VwYm94LWJvZHkge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5teC1ncm91cGJveC5jb2xsYXBzZWQgPiAubXgtZ3JvdXBib3gtYm9keSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbi5teC1ncm91cGJveC1oZWFkZXIgKyAubXgtZ3JvdXBib3gtYm9keSB7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgNHB4IDRweDtcbn1cbi5teC1ncm91cGJveC1jb2xsYXBzZS1pY29uIHtcbiAgICBmbG9hdDogcmlnaHQ7XG59XG5bZGlyPVwicnRsXCJdIC5teC1ncm91cGJveC1jb2xsYXBzZS1pY29uIHtcbiAgICBmbG9hdDogbGVmdDtcbn1cbiIsIi5teC1kYXRhdmlldyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLm14LWRhdGF2aWV3LWNvbnRyb2xzIHtcbiAgICBwYWRkaW5nOiAxOXB4IDIwcHggMTJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWVlO1xufVxuXG4ubXgtZGF0YXZpZXctY29udHJvbHMgLm14LWJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG4ubXgtZGF0YXZpZXctY29udHJvbHMgLm14LWJ1dHRvbiArIC5teC1idXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiAwLjNlbTtcbn1cblxuLm14LWRhdGF2aWV3LW1lc3NhZ2Uge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbn1cbi5teC1kYXRhdmlldy1tZXNzYWdlID4gZGl2IHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG4ubXgtZGF0YXZpZXctbWVzc2FnZSA+IGRpdiA+IHAge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi8qIFRvcC1sZXZlbCBkYXRhIHZpZXcgaW4gd2luZG93IGlzIGEgc3BlY2lhbCBjYXNlLCBoYW5kbGUgaXQgYXMgc3VjaC4gKi9cbi5teC13aW5kb3ctdmlldyAubXgtd2luZG93LWJvZHkge1xuICAgIHBhZGRpbmc6IDA7XG59XG4ubXgtd2luZG93LXZpZXcgLm14LXdpbmRvdy1ib2R5ID4gLm14LWRhdGF2aWV3ID4gLm14LWRhdGF2aWV3LWNvbnRlbnQsXG4ubXgtd2luZG93LXZpZXcgLm14LXdpbmRvdy1ib2R5ID4gLm14LXBsYWNlaG9sZGVyID4gLm14LWRhdGF2aWV3ID4gLm14LWRhdGF2aWV3LWNvbnRlbnQge1xuICAgIHBhZGRpbmc6IDE1cHg7XG59XG4ubXgtd2luZG93LXZpZXcgLm14LXdpbmRvdy1ib2R5ID4gLm14LWRhdGF2aWV3ID4gLm14LWRhdGF2aWV3LWNvbnRyb2xzLFxuLm14LXdpbmRvdy12aWV3IC5teC13aW5kb3ctYm9keSA+IC5teC1wbGFjZWhvbGRlciA+IC5teC1kYXRhdmlldyA+IC5teC1kYXRhdmlldy1jb250cm9scyB7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4IDBweCA2cHggNnB4O1xufVxuIiwiLm14LWRpYWxvZyB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogNTAwcHg7XG4gICAgLyogSWYgdGhlIG1hcmdpbiBpcyBzZXQgdG8gYXV0bywgSUU5IHJlcG9ydHMgdGhlIGNhbGN1bGF0ZWQgdmFsdWUgb2YgdGhlXG4gICAgICogbWFyZ2luIGFzIHRoZSBhY3R1YWwgdmFsdWUuIE90aGVyIGJyb3dzZXJzIHdpbGwganVzdCByZXBvcnQgMC4gRWxpbWluYXRlXG4gICAgICogdGhpcyBkaWZmZXJlbmNlIGJ5IHNldHRpbmcgbWFyZ2luIHRvIDAgZm9yIGV2ZXJ5IGJyb3dzZXIuICovXG4gICAgbWFyZ2luOiAwO1xufVxuLm14LWRpYWxvZy1oZWFkZXIge1xuICAgIGN1cnNvcjogbW92ZTtcbn1cbi5teC1kaWFsb2ctYm9keSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG59XG4iLCIubXgtd2luZG93IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiA2MDBweDtcbiAgICAvKiBJZiB0aGUgbWFyZ2luIGlzIHNldCB0byBhdXRvLCBJRTkgcmVwb3J0cyB0aGUgY2FsY3VsYXRlZCB2YWx1ZSBvZiB0aGVcbiAgICAgKiBtYXJnaW4gYXMgdGhlIGFjdHVhbCB2YWx1ZS4gT3RoZXIgYnJvd3NlcnMgd2lsbCBqdXN0IHJlcG9ydCAwLiBFbGltaW5hdGVcbiAgICAgKiB0aGlzIGRpZmZlcmVuY2UgYnkgc2V0dGluZyBtYXJnaW4gdG8gMCBmb3IgZXZlcnkgYnJvd3Nlci4gKi9cbiAgICBtYXJnaW46IDA7XG59XG4ubXgtd2luZG93LWNvbnRlbnQge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLm14LXdpbmRvdy1hY3RpdmUgLm14LXdpbmRvdy1oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4IDZweCAwIDA7XG59XG4ubXgtd2luZG93LWhlYWRlciB7XG4gICAgY3Vyc29yOiBtb3ZlO1xufVxuLm14LXdpbmRvdy1ib2R5IHtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cbiIsIi5teC1kcm9wZG93bi1saXN0ICoge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1kcm9wZG93bi1saXN0IGltZyB7XG4gICAgd2lkdGg6IDM1cHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1kcm9wZG93bi1saXN0IGltZyB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4ubXgtZHJvcGRvd24tbGlzdCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuLm14LWRyb3Bkb3duLWxpc3QgPiBsaSB7XG4gICAgcGFkZGluZzogNXB4IDEwcHggMTBweDtcbiAgICBib3JkZXI6IDFweCAjZGRkO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLm14LWRyb3Bkb3duLWxpc3QgPiBsaTpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4O1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7XG59XG4ubXgtZHJvcGRvd24tbGlzdCA+IGxpOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xufVxuLm14LWRyb3Bkb3duLWxpc3Qtc3RyaXBlZCA+IGxpOm50aC1jaGlsZCgybisxKSB7XG4gICAgYmFja2dyb3VuZDogI2Y5ZjlmOTtcbn1cbi5teC1kcm9wZG93bi1saXN0ID4gbGk6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7XG59XG4iLCIubXgtaGVhZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogOXB4O1xuICAgIGJhY2tncm91bmQ6ICMzMzM7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLm14LWhlYWRlci1jZW50ZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBjb2xvcjogI2VlZTtcbiAgICBsaW5lLWhlaWdodDogMzBweDsgLyogaGVpZ2h0IG9mIGJ1dHRvbnMgKi9cbn1cbmJvZHlbZGlyPVwibHRyXCJdIC5teC1oZWFkZXItbGVmdCxcbmJvZHlbZGlyPVwicnRsXCJdIC5teC1oZWFkZXItcmlnaHQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDlweDtcbiAgICBsZWZ0OiA5cHg7XG59XG5ib2R5W2Rpcj1cImx0clwiXSAubXgtaGVhZGVyLXJpZ2h0LFxuYm9keVtkaXI9XCJydGxcIl0gLm14LWhlYWRlci1sZWZ0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA5cHg7XG4gICAgcmlnaHQ6IDlweDtcbn1cbiIsIi5teC10aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIG1hcmdpbi10b3A6IDBweDtcbn1cbiIsIi5teC1saXN0dmlldyB7XG4gICAgcGFkZGluZzogOHB4O1xufVxuLm14LWxpc3R2aWV3ID4gdWwge1xuICAgIHBhZGRpbmc6IDBweDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuLm14LWxpc3R2aWV3ID4gdWwgPiBsaSB7XG4gICAgcGFkZGluZzogNXB4IDEwcHggMTBweDtcbiAgICBib3JkZXI6IDFweCAjZGRkO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG4ubXgtbGlzdHZpZXcgPiB1bCA+IGxpOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweDtcbn1cbi5teC1saXN0dmlldyA+IHVsID4gbGk6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4O1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7XG59XG4ubXgtbGlzdHZpZXcgbGk6bnRoLWNoaWxkKDJuKzEpIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjlmOWY5O1xufVxuLm14LWxpc3R2aWV3IGxpOm50aC1jaGlsZCgybisxKTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2Y1ZjVmNTtcbn1cbi5teC1saXN0dmlldyA+IHVsID4gbGkuc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQ6ICNlZWU7XG59XG4ubXgtbGlzdHZpZXctY2xpY2thYmxlIHVsICoge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1saXN0dmlldy1lbXB0eSB7XG4gICAgY29sb3I6ICM5OTk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLm14LWxpc3R2aWV3IC5teC1saXN0dmlldy1sb2FkaW5nIHtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5teC1saXN0dmlldy1zZWFyY2hiYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi5teC1saXN0dmlldy1zZWFyY2hiYXIgPiBpbnB1dCB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4ubXgtbGlzdHZpZXctc2VhcmNoYmFyID4gYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xufVxuW2Rpcj1cInJ0bFwiXSAubXgtbGlzdHZpZXctc2VhcmNoYmFyID4gYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbi5teC1saXN0dmlldy1zZWxlY3Rpb24ge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBwYWRkaW5nOiAwIDE1cHggMCA1cHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1saXN0dmlldy1zZWxlY3Rpb24ge1xuICAgIHBhZGRpbmc6IDAgNXB4IDAgMTVweDtcbn1cbi5teC1saXN0dmlldy1zZWxlY3RhYmxlIC5teC1saXN0dmlldy1jb250ZW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4ubXgtbGlzdHZpZXcgLnNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZGVmO1xufVxuLm14LWxpc3R2aWV3IC5teC10YWJsZSB0aCxcbi5teC1saXN0dmlldyAubXgtdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDJweDtcbn1cbiIsIi5teC1sb2dpbiAuZm9ybS1jb250cm9sIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuIiwiLm14LW1lbnViYXIge1xuICAgIHBhZGRpbmc6IDhweDtcbn1cbi5teC1tZW51YmFyLWljb24ge1xuICAgIGhlaWdodDogMTZweDtcbn1cbi5teC1tZW51YmFyLW1vcmUtaWNvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDTUFBQUFqQ0FZQUFBQWUyYk5aQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFLTkpSRUZVZU5waS9QLy9QOE5nQVV3TWd3aU1PbWJVTWFPT0dYWE1xR05HSFRQWUhNT0NUZkRzMmJNZVFLb09pSTFCWENCdU1qWTIza0ZyZFl6b1RRaWdSbThndFFXTEcwT0JCcXlobFRwYzBkU09JeFRyYUt3T3EyUFVjV2hXcDdFNnJJNjVpVVB6VFJxcncrcVlHaHlhbTJpc0R0TXh3RVMxQ1VnRkFmRnhxQkNJRGtKUGJOUldoelUzalJaNm80NFpkY3lvWTBZZE0rcVlVY2NNVXNjQUJCZ0FVWHBFakUvQnMvSUFBQUFBU1VWT1JLNUNZSUk9KSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDE2cHggMTZweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuIiwiLm14LW5hdmlnYXRpb25saXN0IHtcbiAgICBwYWRkaW5nOiA4cHg7XG59XG4ubXgtbmF2aWdhdGlvbmxpc3QgbGk6aG92ZXIsXG4ubXgtbmF2aWdhdGlvbmxpc3QgbGk6Zm9jdXMsXG4ubXgtbmF2aWdhdGlvbmxpc3QgbGkuYWN0aXZlIHtcbiAgICBjb2xvcjogI0ZGRjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OERCO1xufVxuLm14LW5hdmlnYXRpb25saXN0ICoge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1uYXZpZ2F0aW9ubGlzdCAudGFibGUgdGgsXG4ubXgtbmF2aWdhdGlvbmxpc3QgLnRhYmxlIHRkIHtcbiAgICBwYWRkaW5nOiAycHg7XG59XG4iLCIubXgtcHJvZ3Jlc3Mge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDMwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICB3aWR0aDogMjUwcHg7XG4gICAgbWF4LXdpZHRoOiA5MCU7XG4gICAgYmFja2dyb3VuZDogIzMzMztcbiAgICBvcGFjaXR5OiAwLjg7XG4gICAgei1pbmRleDogNTAwMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgcGFkZGluZzogMjBweCAxNXB4O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBlYXNlLWluLW91dDtcbn1cbi5teC1wcm9ncmVzcy1oaWRkZW4ge1xuICAgIG9wYWNpdHk6IDA7XG59XG4ubXgtcHJvZ3Jlc3MtbWVzc2FnZSB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG59XG4ubXgtcHJvZ3Jlc3MtZW1wdHkgLm14LXByb2dyZXNzLW1lc3NhZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4ubXgtcHJvZ3Jlc3MtaW5kaWNhdG9yIHtcbiAgICB3aWR0aDogNzBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIGJhY2tncm91bmQ6IHVybChkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhSZ0FLQU1RQUFEbzZPb0dCZ1ZwYVduQndjSTZPanF5c3JGSlNVbVJrWkQ4L1AweE1UTTdPenFlbnAxaFlXRjFkWFVoSVNISnljb2VIaDB0TFMxZFhWNmlvcU0vUHoyVmxaVDA5UFRjM04wQkFRSVdGaGRiVzFseGNYSzJ0clVGQlFUTXpNd0FBQUNIL0MwNUZWRk5EUVZCRk1pNHdBd0VBQUFBaCtRUUVEQUFBQUN3QUFBQUFSZ0FLQUFBRms2RG5YUmFHV1plb3JxU0pybkI3cHJBcXY3VjQweDdRL1VCQXpnZjhDV3ZFNGhHV0RBNkx4aEVVeU5OTmYxWHBOWHU1ZHJoZWt0Y0NzNHpMNTVYNVNsYVBNVjRNREg2VnIraFR1d29QMVl2NFJTWnhjNE4zaFh1SGYzRnJVMjBxakZDT0lwQkZraDZVUUphWVB5aGhNWjRzb0RhaVZsczlVMHNyVFZGSXFFOVFxU3FySFVzN09Ub2xNN2NqdVRnNXRyZkFJUUFoK1FRRURBQUFBQ3dBQUFBQUNnQUtBQUFGSktEbkhZV2lGSWZvUVZyclFxTXJhK1RzbG5acjV0ckpvN3dVYXdZVFZRb1VDa29VQWdBaCtRUUVEQUFBQUN3QUFBQUFHUUFLQUFBRldhRG5NY1N5RUpLb3JrZWhLTVdoUGx4dFA2c0thWHdQZVJLYmtNUElIWHBJellFd3RCRnloV1N2c0dqV0ZqbUZsS2VvV3JFcjdWYkJ0RDVYMFcyQllTVWF0MG9QYllqTGVYYkpuNGcwbVJDS2RpSVZCUlFVTVNJaEFDSDVCQVFNQUFBQUxBQUFBQUFvQUFvQUFBV0tvT2NsUXhBTWthaXVETEVzaExUT1I2RW94YUUyV2U4M005R0RReXcrZ2g2SVpzbUVlQ0srYUNZeGt4U3ZIQWFOeWRVY0JsTGZZRWJBRmdtelFwZFpDSVI3Z2RuQ1RGek1GT3Vsd3YyT3IrWjBkaXQ0ZVFwZ2IyTXJaWFJvSzJwNUJRbHZVek1NZEZsYmVUbzhVa0JCUTFoSFFVcGRUaUlrSmdOVVNCNHRFeE1FV3F3VkJSUVVPU0loQUNINUJBUU1BQUFBTEFBQUFBQTNBQW9BQUFXOG9PY2hoaUFZaUtpdXlSQUVRN1RPRExFc2hEU3ZSNkVvaFlQS3NTa2FIVHRQSThOc05wSVBqblQ2U0VJMDJDeGtaT3h1VXF0SWM1eEp6Q1RUTkljeE8yVGZtb1BCYXpUTUJ1VG1ZRVpRVHdrekJYQlpCUUowUlFJekFYbE1BVE1MZmxJTE13cURXQXFHaDRrcmk0eU9LNUNSa3l1VmxncHpoM1lyZUl4N0szMlJnQ3VDbGdVSWgxOHpDWXhsTkpGcmJaWnhIa1JlU0R0TFpFODdVV3BWTzFkd1d5SVlKU2RnU1MwdkEyWkpIalVURXdSczNoVUZGQlJCSWlFQUlma0VCQXdBQUFBc0FBQUFBRVlBQ2dBQUJmQ2c1MTBXaGxtWHFLNklJUWdHc3M3SkVBUkROSzhNc1N3RXlVNTFLQ2dVaFlNSzBHazZBVVBIWmtwMURCdVpyTFl4ZkhDKzRNY1FvaW1iSVNPbnVwTmlVZDhiMlNxaXJXY1NNd2w0ejJITURtYUJHZ2NXYTA0V013WndWQVl6QTNaYUF6TUVmR0FFTXdXQ1pnVVloazBZTXdLTFV3SXpBWkJaQVRNTGxWOExNd3FhWlFxZG5xQXJvcU9sSzZlb3FpdXNyYThyc2JJS2haNklLNHFqalN1UHFKSXJsSzJYSzVteUJSZWViRE1JbzNFMHFIY3pESzE5ZjdLREhreHJVRHRTY0ZZN1dIWmNPMTU4WWp0a2dtZ2lKRXlnR0NJQ2d3c1ljb2JVdURFQUQ4RWVFeVlROEVPd1FnRUtGSktJQ0FFQUlma0VCQXdBQUFBc0R3QUFBRGNBQ2dBQUJicWc1MTBXaGxtWHFLNklJUWdHc3M3SkVBUkROSzhNc1N3RWlRclFLUm9CTzQ5ancydzZrbzJNZE5wSVBqalk3R05rN0haU3JLWjRJMXRGcHVoTVlpYkp1amtNaTlkb21SbkdUY05za0o0T1pnUnZXUVFZYzBVWU13SjRUQUl6QVgxU0FUTUxnbGdMaFlhSUs0cUxqU3VQa0pJcmxKVUxjb1oxSzNlTGVpdDhrSDhyZ1pVRUY0WmZNd2lMWkRTUWFqTU1sWEFlUkY1SU8wdGpUenRSYVZVN1YyOWJJaVFtS0VraUdDNHdaVWsxTndOcjJEMFRFd1FNSWlFQUlma0VCQXdBQUFBc0hnQUFBQ2dBQ2dBQUJZZWc1MTBXaGxtWHFLNklJUWdHc3M3SkVBUkRwQUpkN3dNemtXTkRMRHFDbmtabXlXeU1mTkJPaWxXc2JtU3JDSE9iU1ZpaVBzdk1ZQzBhWmdNdWM0QUI5ekF6UVprb21BWFV5MERiRFYvSjUzVXJkM2dCWDI1aUsyUnpaeXRwZUFNWGJsSXpDSE5YTkhoZEhqeFJRRUZEVmtkQlNseE9JaVFtS0VnaUdDNHdXRWcxTndNSklpRUFJZmtFQkF3QUFBQXNMUUFBQUJrQUNnQUFCVldnNTEwV2hsbVhxSzZJSVFnR29nSmRiUU9yNm14ODc0eTJZQ2ZGNmhrM0NJdlFac2taamowRFpsbkQ1QVJRbm1CS3RhNndXWUdTMmx3OXM0WUxkWmhEWkpFZW1oQ1g4K3lPUHhISmhLcXJNQzR3TWg0aEFDSDVCQVFNQUFBQUxEd0FBQUFLQUFvQUFBVWlvT2RkRm9aWmwrZ0JYZXNDb3l0MzVPeVdkbXZtM2NtanZCUnJCaE9SVENoUkNBQTcpO1xufVxuIiwiLm14LXJlbG9hZC1ub3RpZmljYXRpb24ge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiAxMDAxO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxcmVtO1xuXG4gICAgYm9yZGVyOiAxcHggc29saWQgaHNsKDIwMCwgOTYlLCA0MSUpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgyMDAsIDk2JSwgNDQlKTtcblxuICAgIGJveC1zaGFkb3c6IDAgNXB4IDIwcHggcmdiYSgxLCAzNywgNTUsIDAuMTYpO1xuICAgIGNvbG9yOiB3aGl0ZTtcblxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDE0cHg7XG59XG4iLCIubXgtcmVzaXplci1uLFxuLm14LXJlc2l6ZXItcyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMHB4O1xufVxuLm14LXJlc2l6ZXItbiB7XG4gICAgdG9wOiAtNXB4O1xuICAgIGN1cnNvcjogbi1yZXNpemU7XG59XG4ubXgtcmVzaXplci1zIHtcbiAgICBib3R0b206IC01cHg7XG4gICAgY3Vyc29yOiBzLXJlc2l6ZTtcbn1cblxuLm14LXJlc2l6ZXItZSxcbi5teC1yZXNpemVyLXcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDEwcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuLm14LXJlc2l6ZXItZSB7XG4gICAgcmlnaHQ6IC01cHg7XG4gICAgY3Vyc29yOiBlLXJlc2l6ZTtcbn1cbi5teC1yZXNpemVyLXcge1xuICAgIGxlZnQ6IC01cHg7XG4gICAgY3Vyc29yOiB3LXJlc2l6ZTtcbn1cblxuLm14LXJlc2l6ZXItbncsXG4ubXgtcmVzaXplci1uZSxcbi5teC1yZXNpemVyLXN3LFxuLm14LXJlc2l6ZXItc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG59XG5cbi5teC1yZXNpemVyLW53LFxuLm14LXJlc2l6ZXItbmUge1xuICAgIHRvcDogLTVweDtcbn1cbi5teC1yZXNpemVyLXN3LFxuLm14LXJlc2l6ZXItc2Uge1xuICAgIGJvdHRvbTogLTVweDtcbn1cbi5teC1yZXNpemVyLW53LFxuLm14LXJlc2l6ZXItc3cge1xuICAgIGxlZnQ6IC01cHg7XG59XG4ubXgtcmVzaXplci1uZSxcbi5teC1yZXNpemVyLXNlIHtcbiAgICByaWdodDogLTVweDtcbn1cblxuLm14LXJlc2l6ZXItbncge1xuICAgIGN1cnNvcjogbnctcmVzaXplO1xufVxuLm14LXJlc2l6ZXItbmUge1xuICAgIGN1cnNvcjogbmUtcmVzaXplO1xufVxuLm14LXJlc2l6ZXItc3cge1xuICAgIGN1cnNvcjogc3ctcmVzaXplO1xufVxuLm14LXJlc2l6ZXItc2Uge1xuICAgIGN1cnNvcjogc2UtcmVzaXplO1xufVxuIiwiLm14LXRleHQge1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtbGluZTtcbn1cbiIsIi5teC10ZXh0YXJlYSB0ZXh0YXJlYSB7XG4gICAgcmVzaXplOiBub25lO1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbn1cbi5teC10ZXh0YXJlYSAubXgtdGV4dGFyZWEtbm9yZXNpemUge1xuICAgIGhlaWdodDogYXV0bztcbiAgICByZXNpemU6IHZlcnRpY2FsO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG59XG4ubXgtdGV4dGFyZWEgLm14LXRleHRhcmVhLWNvdW50ZXIge1xuICAgIGZvbnQtc2l6ZTogc21hbGxlcjtcbn1cbi5teC10ZXh0YXJlYSAuZm9ybS1jb250cm9sLXN0YXRpYyB7XG4gICAgd2hpdGUtc3BhY2U6IHByZS1saW5lO1xufVxuIiwiLm14LXVuZGVybGF5IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB6LWluZGV4OiAxMDAwO1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xufVxuIiwiLm14LWltYWdlem9vbSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTk5O1xufVxuLm14LWltYWdlem9vbS13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLm14LWltYWdlem9vbS1pbWFnZSB7XG4gICAgbWF4LXdpZHRoOiBub25lO1xufVxuIiwiLm14LWRyb3Bkb3duIGxpIHtcbiAgICBwYWRkaW5nOiAzcHggMjBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubXgtZHJvcGRvd24gbGFiZWwge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubXgtZHJvcGRvd24gaW5wdXQge1xuICAgIG1hcmdpbjogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1kcm9wZG93biAuc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQ6ICNmOGY4Zjg7XG59XG4ubXgtc2VsZWN0Ym94IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLm14LXNlbGVjdGJveC1jYXJldC13cmFwcGVyIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuIiwiLm14LWRlbW91c2Vyc3dpdGNoZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogMzYwcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHotaW5kZXg6IDIwMDAwO1xuICAgIGJveC1zaGFkb3c6IC0xcHggMCA1cHggcmdiYSgyOCw1OSw4NiwuMik7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlci1jb250ZW50IHtcbiAgICBwYWRkaW5nOiA4MHB4IDQwcHggMjBweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgY29sb3I6ICMzODdlYTI7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIGJhY2tncm91bmQ6IHVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU9nQUFBQmdDQVlBQUFBWFNqN05BQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlScFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1TXkxak1ERXhJRFkyTGpFME5UWTJNU3dnTWpBeE1pOHdNaTh3TmkweE5EbzFOam95TnlBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVOVE5pQW9UV0ZqYVc1MGIzTm9LU0lnZUcxd1RVMDZTVzV6ZEdGdVkyVkpSRDBpZUcxd0xtbHBaRG8wTXprd09UUkVNRFEyTkVZeE1VVTBRVFE0TVVJNU5UTkdNVVEzUXpFNU55SWdlRzF3VFUwNlJHOWpkVzFsYm5SSlJEMGllRzF3TG1ScFpEbzBNemt3T1RSRU1UUTJORVl4TVVVMFFUUTRNVUk1TlROR01VUTNRekU1TnlJK0lEeDRiWEJOVFRwRVpYSnBkbVZrUm5KdmJTQnpkRkpsWmpwcGJuTjBZVzVqWlVsRVBTSjRiWEF1YVdsa09qYzBSRU15TVVaR05EWTBRekV4UlRSQk5EZ3hRamsxTTBZeFJEZERNVGszSWlCemRGSmxaanBrYjJOMWJXVnVkRWxFUFNKNGJYQXVaR2xrT2pjMFJFTXlNakF3TkRZMFF6RXhSVFJCTkRneFFqazFNMFl4UkRkRE1UazNJaTgrSUR3dmNtUm1Pa1JsYzJOeWFYQjBhVzl1UGlBOEwzSmtaanBTUkVZK0lEd3ZlRHA0YlhCdFpYUmhQaUE4UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrZzF0Umx3QUFFRkZKUkVGVWVOcnNuWWwzVmNVZHgyZHU4ckpESUpDd0NnalZhclZvc1ZYYzZqbldubnBJUWxKV2w2T0NyUFlma2gxY2l1d2xMRm81dFQzbFZKUlZFVVVFUlFRSlM0Q1FRRWpDUzk3MCs1Mlo5M0lUREd1Uzk4ajcvVGp6N3IyL2U5OTlaTzU4N205K003K1owY05YYnNxS2FUTmVLVlZvbEttT0tiWDM5RXNWS2wxRVY2MklLSzN3QjV1SGNZZy8zM3lDNHgybS9FMmpSRVNTTE1HSmw4dXZZcnNIaWR1aFNBK21Vd2FZaWhsUk0zSEdPdXp1Wlg0Zy9SbHBpdDY4TkZ1S2gwalNEWWd4emxBTVc3V3BDQmIwNlJqTmlEWUh6azZ2UEpaMm1iRnArYStKTEN4b0hyYm5vVnB0eW1lZGxXSWlrblJBS1VOWFZRMERvT01BcUlKMlg4MzB5cFBwQitteVFsL2xIWTNES0xaYlRmbnNMNldvaUNRZFVNcmdWVlZqQWVoSWFHTXhaWGFlbi83WGMybVpNWnVYVm1MenFGSTJmL1lCMm85TTJleW9GQm1ScEFKS0tWbTk4UkZvUndCUUZzZ2RnTFErVFNFZEIwQkxzWnNCUUd1d3Y4NlV6VGtqeFVZa3FZQlNpbGR2SEFkQWgyRzNDUloxUisyMFNRM3BDZW1TZ2RpVUFkQlJBTFFGKzl1UWRnTlVhZVVWU1I2Z2xBR3IvL0U0Tm9NQWFBTjgweDExMHlZMXBXMUdiVmxDdi9SMy92QVE5amVac3JsWHBBaUpkS2NFTnpqUDdoZFU3VlErMGhOOTFxeVBwR3RHd2Yrc3dvYmRNWmVRSGtENm05Nnk2SDRwUWlKSnM2RGVpa1pnUVIrSEJTMUNsYmZXYVBQWjVhbFRXdFBYa2k0dXNGVmVaUjV3Q3ZhZm1vOU42YnlyVXB4RWVoeFFTdjgxRzNJQUtDQTFoUUQwSFBaM1hVbGpTQjJvaTU3QjVua0FpbHFJdVlEOWpZRDB1QlFwa1I0SGxGSzRaa01lQUIwUFFQTUI2TmxXWlhZM1Q1MGFTM05JaXdIb2l3QjBqSEw5TWJ1UVBoRnJLdExqZ0ZMZ2crWUQwUEdnTWcrQW5zRjJUelROSWJXWnVIVWhxcnpxOS82dzFqWWdsYzcvVVlxWFNJOENTaWxZdTQ0VzlDa0F5bXJ2S2ZpbmUxdW5URE1DNmNJaDJQd0o2VmNBbFBteEY5YjFYMmJDL0NZcFppSTlCaWdsRDVDMnVyamRiQUJhRGRVK2dUUnNUWTJ6cHRxMitQNFRrSDRqT1NQU1k0QlNzdGV1TFFDZ1R3UFFMQnhXd3ovZFo2Wk1GMGd0cEF0S3NIa0JnTWE3WVk0QTJnL05oTGRxSlhkRWVnUlFTb1NRYXNQV3pBZ0FQVVZMQ2toamtxMCtjejljOEFRMlR5TDFVeTVzY2p2U0RvRGFLcmtqMHUyQVVqTFdyV0cvNEZNQWxPTW56K0NPZTh6a2x3VFNOa2laTHhNQTZDTmV4UzZaandEcEVja2RrVzRIMUVPYUQwQ2Z3bTRPN3NqeGs0UlVyRVE3VU4rK2p5OHlwSHU5Nmp1a2p3SHFCY2tka1c0RjFONW8zV3FHQTQ3SEhmT1VEUTgwdTgza2x3WFNhMEY5RnBzL0lQVlZkcnlwK3N4WGU2VzFWNlQ3QUUxQXFnMzlybndmWGJNTGtNb1l5bXNoemNYbUw4cU9ON1hDb1B2L0lPMEZxT0llaUhRUG9QYUc2MWZsT1F0aGFDSHE4QXM3emFSWG1pV3JmeEhVVWI3YUcyL3Q1Y0NFYmVLZmluUWJvQjdTSE44WDJCKy93SEdrbndOU0daclZPYWkveGVZeHBGRmU5Wk5peU9DRXR5UzJWd0R0bnE1THZmNkRMRnZvdE9HQVovaFhCcEMrZWtteS9JYitLV0V0OGFyRFNQOEdxS2NsZHdUUTdvQTBFNy9BUWM2RGZUL2dia0I2WHJMOXVwQnE1VUlHQ1dxaGNrSDRqRVQ2TDBDdGtSd1NRTHYrUnphczVOdytuRDRscG9MWUY2Ynl0V3JKK2h1Q0NqZEJ2YURhZ3ZBOXFCcWd6aGRRQmRDdWh2VHY3S2dmQVVENWd3Y0I2VkhKL3BzQ2xZMXR6M2tmMVQ0eWIxRzNBMVNaczFjQTdWSkl4d0xRa2Q0Z0hIV2d2aTd4dTdjRXFuNHNaRkhwbzM0S1VLVXhTUUR0b2gvYytONFFWMjJ6djN0S2FmV0ZxWGhkQWhwdUd0UUZCUFdQb2FvdnM1S0EvZy9waUNtZEx5ODhBZlNPSVdYd09BTWFzZ0RvUmV6dk1oVnZTRi9wcllIS1lJZW5rZTREb0lPOG1sWGVuVGo3bFNtZEp3RWlBdWlkUVBwdXZ2V3JORnNxRGNQY2RnTFNlbmtrdDVHWFd4YzhZMEZWeXJzUG1uM09YQXhxRjBDVnJpMEI5TFlocFFYbDhncTBBQzJLWTBvclpzak03YmNQS2h2aXhtSnZqRmZSZFRpbzJMMGxFNW9Kb0xmOW42aDZoMzJsdy8xVUlkOEMwaC9rMGR3SnFBdHBTVG5wK0VNaExhdS91NUVPbU5LNUVwZ3ZnTjR5cEhqekcxZEYwK29rOXZlYmlUT2w4ZWpPUUdXZ0EwZk9qTURSQ0srK0NwLzFBTFpmbXJLNUp5U1hCTkJiZ0hURllNVVJIbHBGQUdpZHJacE5uTmtvajZrcllGM0V5Q1NtKzFYaWtXdXVYTWVsRmZlYnNqbmlxd3FnTndWcEhnQmw1RkYvKzdaWFpvK1orS2FFQjNZZHFNVUE5RkZ2VmUveGFnNXhvMXZ4RlhTSFpKbEZBZlQ2LzZsTkt6SUJKZ3ZSRU8rWEhnU2tFbm5VMWZtOFpUR0h1VDNTd1ZkbEZmZ1FmVldrbzZaOHRyZ1pBbWhub0M1SDRURWp2RjlhYmYzUzhsa3Q4dGk2SEZUT216UlcyVVdoOUppMktqQUhrdXR2bFdzSlBvYThGMWdGMEk2UUxodGlDNDlXV1FDMHdmcWw1YlBFWCtvMldKZjBBNkQwVlVjck8zK1NqcDlxeFA1M09FZGdmMENOUmw2VUFtZ0MwbHlVRTFyVFltWDc5c3dCVkwya0JiSzc4MzN6RXVTMy9vMXlBOGtkcks2NHdFZlZkRGtZQzN6WVRKd3BMOHgwQnJTdHdDeWxYM3FQTHlYSFVWNitObVhpSS9WUTNoZmg4MEZrL1JoblhST1dsUS9qRkk2UFlJOE5UVCtiaWhreXIxSTZBdW9MQ254U3d5cFlnREp5R2Z0N1Rka2NDUkhzNlJxTjBteGdZdklOVEFucjJvejlZOHExQ2g4MUZXK2NreHhMSTBCOTFhdkErNlVEVUNyNHR2NEdrQjZUeDVrTVdKZHJWd1cyalV0czBCc1JzcTY4NGhMMFA5a2Fqd08zeGxTK0ppTnVlak9nb1FZTnh2SEcrL0k0Ync4NzNHVnR6bVErazZvVnVUNFdlTFNIZFdBb01JSWZET1Evb1dMQno2d09RMWN0c3o3MlVrQWRwSXM1bFFvYk1qaEZTQ09BWlFpYlZLdFNCdGgzKzNyTE9zcUhHN29KMFdKQi9BcldnR284cktkd0xWKzBaMlErNVY0Q3FJYzBSN2wrdkVIZUVUcUtsL1VoVXpwWEdwQlM3Vmx0ZkkvRERJY0QwT0hLTnZqcFVhR3pjVDgyNXNNUUFhcytBeDBEL1dzQ3BldlNiWm5MWGdGb0NOUnd3RDJiL3I4QXBIV0NSUW8vc3cwcmFVcUxMYlJLRHdXTWpNY2UxdWJISnFCbHErQlZEMm9OZEJmd3hRc1pTbk1GZ3d0WHBrNXBFa0R2Q2tnWGNRVEhRNjRCaVc5aXc3NjY3MDNwUEdtWXVGdWU0Zm9QTXF6dmFxZHIxU1dBa2RYaVlvRFp6NE5xb1NYWkdSN2tER01IcWRkQ1YwOUxpLzJMZ2RGczNlZHhQYTY2Y25aNjVWMFJYUEhraXUyWitMdnp0VkY5ZWgyZ2lZZThkWkdiUmRDOWZpOHFOaUNWenBQdW1MdFlNdGF0eWZLZ011Qy9DREFXQWRBaXhhM1JPUTVlRHpDM1JzY3RiOXdlTjBGM09YQWhqQTJFRnNlMHZFM2FUcTZ1bTNDdVVSdE4vemVLL1didGZPU3IwTVZDOTJvKzlPcUw3ZnA2SDM1L1c0RC9VN1pPL0xvT3NNMENaTmhxNkRsQ1MwZXd6Y1YxT2REeC81dURxN0d2OHFETGc0N1Yvd0p0MjFPMG5iK3gxd0xxSVVYVnlUeWc3QUs2ZHNRR1Y3cUdOWjB2SGVtOVRQcXNXYy9DM1E5UUZhTFFzeFpWQ1BnNHdWcGZIUGZWZGtFdmxVRm9BMTkxMWlHSTQ1K0JyVmJHd1ZZSnRQVzFzRnRkK0Y2MEJTRkE3ZFpDMW5hWDBIVWQ3aGZTYVJzdGh4ZUlVZlg2K2NXZjI3UEdmeG9kUDhKV3U3MlkxYnR6aVd2dE9XTkxmZnc2NC8vRmRIdy9acjhUaTkveG11KzA3Y2V2aVlYMEhmZGpmcjhWKzYzdDlQRy9NUDZ5TVNyeFZ6TmxYL2JXMU9wb1JiOVVMYmwxMTE3YnlYSGlDWVpmWnAzcE81N3JvTHZ6MTg2MUtuTVQxNFIxNWdiWG1jN3VwYS96M2M3T2RhSnZhOFc5d2JYdGZGQjFuU3F1dWdrTG1nTmRRVUNMcFRRdFZXN2dMRyt1dDFxd2FMQnVSc1BhcVlqZFY1cGZoU1hVR2FGNzBaSUhIUUJsOGJ3YUFyUlZXOHRMQkRRdE5NTWpvOVpTRzFwc1o3bHhkYU5tNzROUnNPaWFzZWFYdlRXM3hUa3pMVjZ2elFYN0FTbG5zMmZrQzZ0RXo2ck14dStSQjBkVU5FZGFldE5IbW55NmF5UkltMGNUemF0QitsVFppQmI3a3VNc2VNK3BTRk94bEZzUkFUUjFRTjJQengzS2RZNjdWY0V6bThhcHpPWnNLUTRpS2RlTzBwc2JpVzc0eDMrNGdGVmVocVRSNTRDUFlEalc4YmlaOEpaMHlZZ0lvQ2tDS1dkbzU0aU1JYjQxb2hicGEwQjZVWXFIaUFDYU9xQnlYbDVhMC9pYW5Cd1EvaTFBbGVCN0VRRTBkVUI5bXpHOUkrTWVLOUozaXZQeFNMVlhSQUJOR1VnNTN2UkJaVVBOckxEdjlLQ3NjQzBpZ0tZV3FFT1ZuWXZIOXAxU3pucFFaUTRlRVFFMGhVQmxueWtqa2ZLOGY4b1pBZzREVkJsb0xDS0FwZ2lrakxwNlNDVkNCcmthbS9vZTZVZUFLbE5RaWdpZ0tRSXFBN0RaZnpyRXEyaEZqOUNxQWxRSndoY1JRRk1FMUJMdm41WjRGY2Nqc3NYM3BMVDRpZ2lncVFNcUc1TFlMVFBRcXk1NVVFOExxQ0lDYU9xQVN0K1U4K3dNOEtwNlgvVTlKYUNLQ0tDcEErcG83NThXdFZsVWZkaUJPbDh5VzBRQVRSRlE2WjhPZGFEcWVOV1hyYjdWQUZVYWswUUUwTlFCVlE4SlZYMjVZdmdQeXFqanBuUytEQllYRVVCVEE5UUZJNzFGZFkxSmhxdUhxeCtaQUtwTTBpd2lnS1lJcUlSMEJBQ056K1JBSzNxQ3kvbVowbmtOa2tNaUFtZ3FaUHpXQlFSMGxFb0U1TnNaenhpTXozVTNhd0NyWkpLSUFKb0NvREl5NlY2L2JrbGNMbmxRVHdKVThWTUZVSkhrZzdxUXNiN3NvcUZsalhmUlJIMzE5eWRUT3ZleTVKSUFLcElhc0RMZ1liaUhWZmx1bXZOSXg3ajZseW1iSzkwMEFxaElDb0JhcU5xVzdYTmliSEErcDJNNUFWREZxZ3FnSXNrSGRaRmZ4Vm9OQnFBRFEyZHFQYXpWcG15T2ROVUlvQ0pKZjJCYkZ0RS92Y2Y1cWJyQXE5bVFkTnI3cStkTTJXeDVxQUtvU1BKaFhVdy9sZjJxZzBKYUxtMVFEVXQ3MHBUUGxxbERCVkNSRkFBMTExdFZWSC8xQU8rclVoajRjQkk2d0RwTC9GVUJWQ1Q1c0M3aFVvdkR1SDZtY3NzdXFsQ3cvaWttd0NycnBBcWdJa2wvdUp1WERGUnVPWG5DV2hBNjAyQmhOWW9ydnRXWmlXOUtaZ21nSXNtRmRTbGg5ZU5VN2NLMjhXb3cxNkxrZEtKbkZFTU1KODZVeUNVQlZDUzVzQzRyc3JBYU93U3VNTFNJTGdNZ3p1SDRETTZkTlJVenJraHVDYUFpeVN3QW01YWg2cXZaQ2x5c3dwRkxiWTFNTlRobUVQOTVVL0dHOUxVS29DTEpnM1U1NDRFQnF5N3gxalUzQWF4RDlxSUg5anlPYWszbDYxSWRGa0JGa2xZNHFsYjBkVmJWZHQyRSsxcUphOHdCcXhramZJSEpWTDRtRTNnTG9DTEpnZlVkcnNaTzMzV0FiUlZPaEJ3bS9GY1VwS0FlMk5aNlM0dXR2bXdtdlNLWko0Q0s5SGpCMmZndWdlM25yU3ZCTFFHZ3JwbXA3YXFvQTlWYTJqb2dYR2Ntdjl3b3VTZUFpdlE0c08vQmxBWjlBV2gvSFBiMzhCWjBxQlpUb2haV1oyWHJzVjhQZllPWk1sMkcwQW1nSWoxYXVEYXNqSVJnN1FjUTZkUG1ocXJGWVgvMkNtR0ZEV1pJNHFWQTZVc0VOenAxYWt3QUZSSHBxUUszL29Nc2ZIS2NLMU5mR3pSaFZKODRySUcvTG5EZ21zQUZValJrdUxWdkdqS01qWUpxZ0w2eGJ0cmtxQUFxSXRMZGhYRGRhbktaajcwK2dRdEp4RmIzSWJpQkJ6ZkRYd3RBUGNCVzN4SzRlWWFiQXFPNWJmUkFOMnUzNmx3ejlNMm5YNnE0SzYzdytCWGJBd0ZVSkdVbHNuYXRCbkE1QUM0L3d3S3M4Z0VvdDNtQnF5cEhFaGEzUGJpSlNqVDFnWnZiQ2RCcXprVWNoWTdIVVczWGVOVlJmNzVGRzgxdUl1T09OZThZWmZVYjMydnRjTytXUTYrKzJBNmNoOS9meHAvTTFDWitsZjNNME81ckVmd21WUkZ0VCtsTWZHVGFZNlBwQm1UaW9peXY1M0dXTWpwYjIvTUNxTWhkS29Wck5tUTZVRlV1QU1peFd3ZHVGZ3AzTm81em9NOEtQRnR4Yk9NdzZ3N1ZhdjFMa0p2UTkwSjYzY2tMb1FPZzdWNFV2NlR2N0Q0QWxQc3hBVlNrMTh2UVZWVzBTckJJT3N0YnM0aTNaaEZ2aGVQV2pEWHB3QjNyd0ZvNW83QzErakJFc0pUV0lvWjF4bG5oZG9DMmF0ZngxSUxmdEZ0M2JQVnhxMjJ0dWJmYVVhKy9Da0NiZDg3NFkvVC9BZ3dBMk1pN0hkQWUraWtBQUFBQVNVVk9SSzVDWUlJPSkgdG9wIHJpZ2h0IG5vLXJlcGVhdCAjMWIzMTQ5O1xuICAgIC8qIGJhY2tncm91bmQtYXR0YWNoZW1lbnQgbG9jYWwgaXMgbm90IHN1cHBvcnRlZCBvbiBJRThcbiAgICAgKiB3aGVuIHRoaXMgaXMgcGFydCBvZiBiYWNrZ3JvdW5kIHRoZSBjb21wbGV0ZSBiYWNrZ3JvdW5kIGlzIGlnbm9yZWQgKi9cbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGxvY2FsO1xufVxuLm14LWRlbW91c2Vyc3dpdGNoZXIgdWwge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luLXRvcDogMjVweDtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM0OTYwNzY7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlciBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgY29sb3I6ICMzODdlYTI7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM0OTYwNzY7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlciBoMiB7XG4gICAgbWFyZ2luOiAyMHB4IDAgNXB4O1xuICAgIGNvbG9yOiAjNWJjNGZlO1xuICAgIGZvbnQtc2l6ZTogMjhweDtcbn1cbi5teC1kZW1vdXNlcnN3aXRjaGVyIGgzIHtcbiAgICBtYXJnaW46IDAgMCAycHg7XG4gICAgY29sb3I6ICM1YmM0ZmU7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuLm14LWRlbW91c2Vyc3dpdGNoZXIgLmFjdGl2ZSBoMyB7XG4gICAgY29sb3I6ICMxMWVmZGI7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlciBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLm14LWRlbW91c2Vyc3dpdGNoZXItdG9nZ2xlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAyNSU7XG4gICAgbGVmdDogLTM1cHg7XG4gICAgd2lkdGg6IDM1cHg7XG4gICAgaGVpZ2h0OiAzOHB4O1xuICAgIG1hcmdpbi10b3A6IC00MHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xuICAgIGJveC1zaGFkb3c6IC0xcHggMCA1cHggcmdiYSgyOCw1OSw4NiwuMik7XG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQklBQUFBU0NBWUFBQUJXem81WEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeVJwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVNeTFqTURFeElEWTJMakUwTlRZMk1Td2dNakF4TWk4d01pOHdOaTB4TkRvMU5qb3lOeUFnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5UTmlBb1RXRmphVzUwYjNOb0tTSWdlRzF3VFUwNlNXNXpkR0Z1WTJWSlJEMGllRzF3TG1scFpEbzNORVJETWpGR1JEUTJORU14TVVVMFFUUTRNVUk1TlROR01VUTNRekU1TnlJZ2VHMXdUVTA2Ukc5amRXMWxiblJKUkQwaWVHMXdMbVJwWkRvM05FUkRNakZHUlRRMk5FTXhNVVUwUVRRNE1VSTVOVE5HTVVRM1F6RTVOeUkrSUR4NGJYQk5UVHBFWlhKcGRtVmtSbkp2YlNCemRGSmxaanBwYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2pjMFJFTXlNVVpDTkRZMFF6RXhSVFJCTkRneFFqazFNMFl4UkRkRE1UazNJaUJ6ZEZKbFpqcGtiMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPamMwUkVNeU1VWkRORFkwUXpFeFJUUkJORGd4UWprMU0wWXhSRGRETVRrM0lpOCtJRHd2Y21SbU9rUmxjMk55YVhCMGFXOXVQaUE4TDNKa1pqcFNSRVkrSUR3dmVEcDRiWEJ0WlhSaFBpQThQM2h3WVdOclpYUWdaVzVrUFNKeUlqOCsxWm92TkFBQUFXZEpSRUZVZU5xTTFNMHJSRkVZeC9FN1k1cUlRcE9VYklpeW1RV3lzQmd2SlZKSzJWZ3J5WlF0S1NVTFplbFBzQjBMWmFOWmpKVU5LMUZza0pxVXZDUzNOQXNaYzN6UDlOemlPT2ZlZWVwVGM4L2M4K3ZjOHhaVFNubU9ha0VHS2R6Z0RCWFh5NTRPTXNTd2pwTDZXOWNZc3J4ZlpXdmNVdTd5MFZkTFVDYytWWGdkMm9MaXhwZk9JT21GMTdUdEhUT296WXV1cEN4QWFOQjlEVUVmZURVYkU4YnpFWHhaZXJQMDBsOGhoM0xVaUhUSU1yNk45ajJrc1lvaWh2LzFkZXlMU1Z6S0ttMWpFVytXZlpWMkxmOGdza2pJY3djV3BPTSsrcEhDRlBMb3NnV3RvQ3lkN2pDUE9qemhHSEhMeURQWTFhY2hhSmhEeFJqNnJCd0pYVXVvTjBJRzhJSXY3T2lHQmp4YWR2QUlUdVQzcmV4NmMwU2JLQVNmbG5VY0JUM0pUVGhBanlXa0dVVnNCRUVGUjVDZXJ6WHBOSWFjckZJckpuQ0JCM211QnZraEIxVFAyN2hNL0x2eDN6bDZneEhxdTZjNzRraVU4SXhHaktKZExyclQzeGZkandBREFKYU14UDJidkQyQkFBQUFBRWxGVGtTdVFtQ0MpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0ICMxYjMxNDk7XG59XG4iLCIvKiBtYXN0ZXIgZGV0YWlscyBzY3JlZW4gZm9yIG1vYmlsZSAqL1xuLm14LW1hc3Rlci1kZXRhaWwtc2NyZWVuIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG59XG5cbi5teC1tYXN0ZXItZGV0YWlsLXNjcmVlbiAubXgtbWFzdGVyLWRldGFpbC1kZXRhaWxzIHtcbiAgICBwYWRkaW5nOiAxNXB4O1xufVxuXG4ubXgtbWFzdGVyLWRldGFpbC1zY3JlZW4taGVhZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNztcbn1cblxuLm14LW1hc3Rlci1kZXRhaWwtc2NyZWVuLWhlYWRlci1jYXB0aW9uIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxN3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5teC1tYXN0ZXItZGV0YWlsLXNjcmVlbi1oZWFkZXItY2xvc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDUwcHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjMDA3YWZmO1xufVxuXG5ib2R5W2Rpcj1cInJ0bFwiXSAubXgtbWFzdGVyLWRldGFpbC1zY3JlZW4taGVhZGVyLWNsb3NlIHtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiBhdXRvO1xufVxuXG4ubXgtbWFzdGVyLWRldGFpbC1zY3JlZW4taGVhZGVyLWNsb3NlOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFwyMDM5XCI7XG4gICAgZm9udC1zaXplOiA1MnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xufVxuXG4vKiBjbGFzc2VzIGZvciBjb250ZW50IHBhZ2UgKi9cbi5teC1tYXN0ZXItZGV0YWlsLWNvbnRlbnQtZml4IHtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5teC1tYXN0ZXItZGV0YWlsLWNvbnRlbnQtaGlkZGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwMCUpO1xufVxuXG5ib2R5W2Rpcj1cInJ0bFwiXSAubXgtbWFzdGVyLWRldGFpbC1jb250ZW50LWhpZGRlbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwMCUpO1xufSIsIi5yZXBvcnRpbmdSZXBvcnQge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIC1tb3otYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbiIsIi5yZXBvcnRpbmdSZXBvcnRQYXJhbWV0ZXIgdGgge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuIiwiLnJlcG9ydGluZ0RhdGVSYW5nZSB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbn1cbi5yZXBvcnRpbmdEYXRlUmFuZ2UgdGgge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xufVxuLnJlcG9ydGluZ0RhdGVSYW5nZSB0ZCB7XG4gICAgcGFkZGluZzogNXB4O1xufVxuIiwiLm14LXJlcG9ydG1hdHJpeCB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLm14LXJlcG9ydG1hdHJpeCB0aCwgLm14LXJlcG9ydG1hdHJpeCB0ZCB7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbn1cblxuLm14LXJlcG9ydG1hdHJpeCB0Ym9keSB0cjpmaXJzdC1jaGlsZCB0ZCB7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbn1cblxuLm14LXJlcG9ydG1hdHJpeCB0Ym9keSB0cjpudGgtY2hpbGQoMm4rMSkgdGQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG59XG5cbi5teC1yZXBvcnRtYXRyaXggdGJvZHkgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDE2cHg7XG4gICAgbWF4LWhlaWdodDogMTZweDtcbn1cbiIsIi8qIFdBUk5JTkc6IElFOSBsaW1pdHMgbmVzdGVkIGltcG9ydHMgdG8gdGhyZWUgbGV2ZWxzIGRlZXA6IGh0dHA6Ly9qb3JnZWFsYmFsYWRlam8uY29tLzIwMTEvMDUvMjgvaW50ZXJuZXQtZXhwbG9yZXItbGltaXRzLW5lc3RlZC1pbXBvcnQtY3NzLXN0YXRlbWVudHMgKi9cblxuLyogZGlqaXQgYmFzZSAqL1xuXG4vKiBtZW5kaXggYmFzZSAqL1xuXG4vKiB3aWRnZXRzICovXG5cbi8qIHJlcG9ydGluZyAqL1xuIl0sInNvdXJjZVJvb3QiOiIifQ==*/\n","//== Gray Shades\n//## Different gray shades to be used for our variables and components\n$gray-darker: #222222;\n$gray-dark: #333333;\n$gray: #555555;\n$gray-light: #888888;\n$gray-primary: #D7D7D7;\n$gray-lighter: #EEEEEE;\n\n//== Step 1: Brand Colors\n$brand-default: #DDDDDD;\n$brand-primary: #0595DB;\n$brand-inverse: #252C36;\n$brand-info: #48B0F7;\n$brand-success: #76CA02;\n$brand-warning: #F99B1D;\n$brand-danger: #ED1C24;\n\n// Used for other variables\n$default-border-color: $gray-primary;\n\n//== Step 3: Typography\n$font-family-import: \"https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700\";\n@if $font-family-import != false {\n // Only import, if the import is set\n @import url($font-family-import);\n}\n$font-family-base: \"Open Sans\", sans-serif;\n$font-base-size: 14px;\n$font-base-color: #555555;\n$link-color: $brand-primary;\n$font-size-h1: 31px;\n$font-size-h2: 26px;\n$font-size-h3: 24px;\n$font-size-h4: 18px;\n$font-color-detail: $gray-light;\n$font-color-headers: #17347B;\n\n//== Step 2: UI Customization\n\n// Topbar\n$topbar-bg: #FFFFFF;\n$navtopbar-border-color: $default-border-color;\n$topbar-border-color: $navtopbar-border-color;\n$topbar-minimalheight: 60px;\n$navtopbar-color: $font-base-color;\n$navbar-brand-name: $default-border-color;\n$brand-logo: false;\n$brand-logo-height: 30px;\n$brand-logo-width: 30px;\n\n// Sidebar\n$sidebar-bg: $brand-inverse;\n$navsidebar-color: #FFFFFF;\n$navsidebar-color-hover: $navsidebar-color;\n\n// Backgrounds\n$bg-color: #FFFFFF;\n$bg-color-secondary: #F5F8FD;\n\n// == Old variables used in theme customizer to the new lib variables\n$font-size-default: $font-base-size;\n$font-color-default: $font-base-color;\n$border-color-default: $default-border-color;\n$font-color-header:\t\t\t\t $font-color-headers;\n\n\n//== Settings\n//## Enable or disable your desired framework features\n// Use of !important\n$important-flex: true; // ./base/flex.scss\n$important-spacing: true; // ./base/spacing.scss\n$important-helpers: true; // ./helpers/helperclasses.scss\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n//\n// ██████╗ █████╗ ███████╗██╗ ██████╗\n// ██╔══██╗██╔══██╗██╔════╝██║██╔════╝\n// ██████╔╝███████║███████╗██║██║\n// ██╔══██╗██╔══██║╚════██║██║██║\n// ██████╔╝██║ ██║███████║██║╚██████╗\n// ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═════╝\n//\n\n\n//== Gray Shades\n//## Different gray shades to be used for our variables and components\n$gray-darker: #222 !default;\n$gray-dark: #333 !default;\n$gray: #555 !default;\n$gray-light: #888 !default;\n$gray-primary: #d7d7d7 !default;\n$gray-lighter: #eee !default;\n\n\n//== Step 1: Brand Colors\n$brand-default: #DDDDDD !default;\n$brand-primary: #0595DB !default;\n$brand-inverse: #252C36 !default;\n$brand-info: #48B0F7 !default;\n$brand-success: #76CA02 !default;\n$brand-warning: #f99b1d !default;\n$brand-danger: #ed1c24 !default;\n\n$brand-logo:\t\t\t\t\t\t\tfalse !default;\n$brand-logo-height:\t\t\t\t\t\t26px !default;\n$brand-logo-width:\t\t\t\t\t\t26px !default; // Only used for CSS brand logo\n\n\n\n\n\n//== Step 2: UI Customization\n\n// Default Font Size & Color\n$font-size-default: 14px !default;\n$font-color-default: #555 !default;\n\n// Global Border Color\n$border-color-default: $gray-primary !default;\n$border-radius-default: 4px !default;\n\n// Topbar\n$topbar-bg: #FFF !default;\n$topbar-minimalheight: 60px !default;\n$topbar-border-color: $border-color-default !default;\n\n// Topbar mobile\n$m-header-height: \t45px !default;\n$m-header-bg: $topbar-bg !default;\n$m-header-color: #555 !default;\n$m-header-title-size: 17px !default;\n\n\n// Sidebar\n$sidebar-bg: $brand-inverse !default;\n\n// Navbar Brand Name / For your company, product, or project name (used in layouts/base/)\n$navbar-brand-name: $font-color-default !default;\n\n// Background Colors\n$bg-color: #FFF !default;\n$bg-color-secondary: #F5F8FD !default; // Background color that is used for specific page templates background\n\n// Default Link Color\n$link-color: $brand-primary !default;\n$link-hover-color: darken($link-color, 15%) !default;\n\n\n\n\n\n//\n// █████╗ ██████╗ ██╗ ██╗ █████╗ ███╗ ██╗ ██████╗███████╗██████╗\n// ██╔══██╗██╔══██╗██║ ██║██╔══██╗████╗ ██║██╔════╝██╔════╝██╔══██╗\n// ███████║██║ ██║██║ ██║███████║██╔██╗ ██║██║ █████╗ ██║ ██║\n// ██╔══██║██║ ██║╚██╗ ██╔╝██╔══██║██║╚██╗██║██║ ██╔══╝ ██║ ██║\n// ██║ ██║██████╔╝ ╚████╔╝ ██║ ██║██║ ╚████║╚██████╗███████╗██████╔╝\n// ╚═╝ ╚═╝╚═════╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝╚══════╝╚═════╝\n//\n\n\n//== Typography\n//## Change your font family, weight, line-height, headings and more (used in components/typography)\n\n// Font Family Import (Used for google font plugin in theme creater https://ux.mendix.com/theme-creator.html)\n$font-family-import: \"https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700\" !default;\n@if $font-family-import != false {\n // Only import, if the import is set\n @import url($font-family-import);\n}\n\n// Font Family / False = fallback from Bootstrap (Helvetica Neue)\n$font-family-base: 'Open Sans', sans-serif !default;\n\n// Font Sizes\n$font-size-large: 16px !default;\n$font-size-small: 12px !default;\n\n// Font Weights\n$font-weight-light: 100 !default;\n$font-weight-normal: normal !default;\n$font-weight-semibold: 600 !default;\n$font-weight-bold: bold !default;\n\n// Font Size Headers\n$font-size-h1: 31px !default;\n$font-size-h2: 26px !default;\n$font-size-h3: 24px !default;\n$font-size-h4: 18px !default;\n$font-size-h5: $font-size-default !default;\n$font-size-h6: 12px !default;\n\n// Font Weight Headers\n$font-weight-header: $font-weight-normal !default;\n\n// Line Height\n$line-height-base: 1.428571429 !default;\n\n// Spacing\n$font-header-margin:\t\t\t\t\t15px 0 30px 0 !default;\n\n// Text Colors\n$font-color-header:\t\t\t\t #17347B !default;\n$font-color-detail: $gray-light !default;\n\n\n\n\n\n//== Navigation\n//## Used in components/navigation\n\n// Default Navigation styling\n$navigation-item-height: 60px !default;\n$navigation-item-padding: 5px 15px !default;\n\n$navigation-font-size: $font-size-default !default;\n$navigation-sub-font-size: $font-size-small !default;\n$navigation-glyph-size: 20px !default; // For glyphicons that you can select in the Mendix Modeler\n\n$navigation-bg: $brand-inverse !default;\n$navigation-bg-hover: lighten($navigation-bg, 4) !default;\n$navigation-bg-active: lighten($navigation-bg, 8) !default;\n$navigation-color: #FFF !default;\n$navigation-color-hover: #FFF !default;\n$navigation-color-active: #FFF !default;\n\n$navigation-sub-bg: darken($navigation-bg, 4) !default;\n$navigation-sub-bg-hover: $navigation-sub-bg !default;\n$navigation-sub-bg-active: $navigation-sub-bg !default;\n$navigation-sub-color: #AAA !default;\n$navigation-sub-color-hover: $brand-primary !default;\n$navigation-sub-color-active: $brand-primary !default;\n\n$navigation-border-color: $navigation-bg-hover !default;\n\n// Navigation Sidebar\n$navsidebar-font-size: $font-size-default !default;\n$navsidebar-sub-font-size: $font-size-small !default;\n$navsidebar-glyph-size: 20px !default; // For glyphicons that you can select in the Mendix Modeler\n\n$navsidebar-bg: $sidebar-bg !default;\n$navsidebar-bg-hover: lighten($navsidebar-bg, 4) !default;\n$navsidebar-bg-active: lighten($navsidebar-bg, 8) !default;\n$navsidebar-color: #FFF !default;\n$navsidebar-color-hover: #FFF !default;\n$navsidebar-color-active: #FFF !default;\n\n$navsidebar-sub-bg: darken($navsidebar-bg, 4) !default;\n$navsidebar-sub-bg-hover: $navsidebar-sub-bg !default;\n$navsidebar-sub-bg-active: $navsidebar-sub-bg !default;\n$navsidebar-sub-color: #AAA !default;\n$navsidebar-sub-color-hover: $brand-primary !default;\n$navsidebar-sub-color-active: $brand-primary !default;\n\n$navsidebar-border-color: $navsidebar-bg-hover !default;\n\n// Navigation topbar\n$navtopbar-font-size: $font-size-default !default;\n$navtopbar-sub-font-size: $font-size-small !default;\n$navtopbar-glyph-size: 1.2em !default; // For glyphicons that you can select in the Mendix Modeler\n\n$navtopbar-bg: $topbar-bg !default;\n$navtopbar-bg-hover: darken($navtopbar-bg, 4) !default;\n$navtopbar-bg-active: darken($navtopbar-bg, 8) !default;\n$navtopbar-color: $font-color-default !default;\n$navtopbar-color-hover: $navtopbar-color !default;\n$navtopbar-color-active: $navtopbar-color !default;\n\n$navtopbar-sub-bg: lighten($navtopbar-bg, 4) !default;\n$navtopbar-sub-bg-hover: $navtopbar-sub-bg !default;\n$navtopbar-sub-bg-active: $navtopbar-sub-bg !default;\n$navtopbar-sub-color: #AAA !default;\n$navtopbar-sub-color-hover: $brand-primary !default;\n$navtopbar-sub-color-active: $brand-primary !default;\n\n//## Used in layouts/base\n$navtopbar-border-color: $topbar-border-color !default;\n\n\n\n\n//== Form\n//## Used in components/inputs\n\n// Values that can be used default | lined\n$form-input-style: default !default;\n\n// Form Label\n$form-label-color: #666 !default;\n$form-label-size: $font-size-default !default;\n$form-label-weight: $font-weight-semibold !default;\n$form-label-gutter: 8px !default;\n\n// Form Input dimensions\n$form-input-height: auto !default;\n$form-input-padding-y: 8px !default;\n$form-input-padding-x: 10px !default;\n$form-input-font-size: $form-label-size !default;\n$form-input-line-height: $line-height-base !default;\n$form-input-border-radius: $border-radius-default !default;\n\n// Form Input styling\n$form-input-bg: #FFF !default;\n$form-input-bg-focus: #FFF !default;\n$form-input-bg-hover: $gray-primary !default;\n$form-input-bg-disabled: $gray-lighter !default;\n$form-input-color: $font-color-default !default;\n$form-input-focus-color: $form-input-color !default;\n$form-input-disabled-color: $form-input-color !default;\n$form-input-placeholder-color: $gray-light !default;\n$form-input-border-color: $border-color-default !default;\n$form-input-border-focus-color: $brand-primary !default;\n\n// Form Input Static styling\n$form-input-static-border-color:\t\t#F0F0EE !default;\n\n// Form Group\n$form-group-margin-bottom: 15px !default;\n$form-group-gutter: 15px !default;\n\n\n\n\n//== Buttons\n//## Define background-color, border-color and text. Used in components/buttons\n\n// Default button style\n$btn-font-size: 14px !default;\n$btn-bordered: false !default; // Default value false, set to true if you want this effect\n$btn-border-radius: $border-radius-default !default;\n\n// Button Background Color\n$btn-default-bg: #FFF !default;\n$btn-inverse-bg: $brand-inverse !default;\n$btn-primary-bg: $brand-primary !default;\n$btn-info-bg: $brand-info !default;\n$btn-success-bg: $brand-success !default;\n$btn-warning-bg: $brand-warning !default;\n$btn-danger-bg: $brand-danger !default;\n\n// Button Border Color\n$btn-default-border-color: $brand-default !default;\n$btn-inverse-border-color: $btn-inverse-bg !default;\n$btn-primary-border-color: $btn-primary-bg !default;\n$btn-info-border-color: $btn-info-bg !default;\n$btn-success-border-color: $btn-success-bg !default;\n$btn-warning-border-color: $btn-warning-bg !default;\n$btn-danger-border-color: $btn-danger-bg !default;\n\n// Button Text Color\n$btn-default-color: $brand-primary !default;\n$btn-inverse-color: #FFF !default;\n$btn-primary-color: #FFF !default;\n$btn-info-color: #FFF !default;\n$btn-success-color: #FFF !default;\n$btn-warning-color: #FFF !default;\n$btn-danger-color: #FFF !default;\n\n// Button Background Color\n$btn-default-bg-hover: $btn-default-border-color !default;\n$btn-inverse-bg-hover: mix($btn-inverse-bg, white, 80%) !default;\n$btn-primary-bg-hover: mix($btn-primary-bg, black, 80%) !default;\n$btn-info-bg-hover: mix($btn-info-bg, black, 80%) !default;\n$btn-success-bg-hover: mix($btn-success-bg, black, 80%) !default;\n$btn-warning-bg-hover: mix($btn-warning-bg, black, 80%) !default;\n$btn-danger-bg-hover: mix($btn-danger-bg, black, 80%) !default;\n$btn-link-bg-hover: $gray-lighter !default;\n\n\n\n\n//== Header blocks\n//## Define look and feel over multible building blocks that serve as header\n$header-bg-color: $bg-color-secondary !default;\n$header-text-color: #FFF !default;\n$header-text-color-detail: rgba(0,0,0, 0.2) !default;\n\n\n\n\n\n//\n// ███████╗██╗ ██╗██████╗ ███████╗██████╗ ████████╗\n// ██╔════╝╚██╗██╔╝██╔══██╗██╔════╝██╔══██╗╚══██╔══╝\n// █████╗ ╚███╔╝ ██████╔╝█████╗ ██████╔╝ ██║\n// ██╔══╝ ██╔██╗ ██╔═══╝ ██╔══╝ ██╔══██╗ ██║\n// ███████╗██╔╝ ██╗██║ ███████╗██║ ██║ ██║\n// ╚══════╝╚═╝ ╚═╝╚═╝ ╚══════╝╚═╝ ╚═╝ ╚═╝\n//\n\n//== Color variations\n//## These variations are used to support several other variables and components\n\n// Color variations\n$color-default-darker: mix($brand-default, black, 60%) !default;\n$color-default-dark: mix($brand-default, black, 70%) !default;\n$color-default-light: mix($brand-default, white, 60%) !default;\n$color-default-lighter: mix($brand-default, white, 20%) !default;\n\n$color-inverse-darker: mix($brand-inverse, black, 60%) !default;\n$color-inverse-dark: mix($brand-inverse, black, 70%) !default;\n$color-inverse-light: mix($brand-inverse, white, 60%) !default;\n$color-inverse-lighter: mix($brand-inverse, white, 20%) !default;\n\n$color-primary-darker: mix($brand-primary, black, 60%) !default;\n$color-primary-dark: mix($brand-primary, black, 70%) !default;\n$color-primary-light: mix($brand-primary, white, 60%) !default;\n$color-primary-lighter: mix($brand-primary, white, 20%) !default;\n\n$color-info-darker: mix($brand-info, black, 60%) !default;\n$color-info-dark: mix($brand-info, black, 70%) !default;\n$color-info-light: mix($brand-info, white, 60%) !default;\n$color-info-lighter: mix($brand-info, white, 20%) !default;\n\n$color-success-darker: mix($brand-success, black, 60%) !default;\n$color-success-dark: mix($brand-success, black, 70%) !default;\n$color-success-light: mix($brand-success, white, 60%) !default;\n$color-success-lighter: mix($brand-success, white, 20%) !default;\n\n$color-warning-darker: mix($brand-warning, black, 60%) !default;\n$color-warning-dark: mix($brand-warning, black, 70%) !default;\n$color-warning-light: mix($brand-warning, white, 60%) !default;\n$color-warning-lighter: mix($brand-warning, white, 20%) !default;\n\n$color-danger-darker: mix($brand-danger, black, 60%) !default;\n$color-danger-dark: mix($brand-danger, black, 70%) !default;\n$color-danger-light: mix($brand-danger, white, 60%) !default;\n$color-danger-lighter: mix($brand-danger, white, 20%) !default;\n\n$brand-gradient: linear-gradient(152deg, #0CC7F0 0%, #087ECC 51%, #077AC9 55%, #0659B9 78%) !default;\n\n\n//== Grids\n//## Used for Datagrid, Templategrid, Listview & Tables (see components folder)\n\n// Default Border Colors\n$grid-border-color: $border-color-default !default;\n\n// Spacing\n// Default\n$grid-padding-top: 15px !default;\n$grid-padding-right: 15px !default;\n$grid-padding-bottom: 15px !default;\n$grid-padding-left: 15px !default;\n\n// Listview\n$listview-padding-top: 15px !default;\n$listview-padding-right: 15px !default;\n$listview-padding-bottom: 15px !default;\n$listview-padding-left: 15px !default;\n\n// Background Colors\n$grid-bg: #FFF !default;\n$grid-bg-header: transparent !default; // Grid Headers\n$grid-bg-hover: mix($grid-border-color, #FFF, 20%) !default;\n$grid-bg-selected: mix($grid-border-color, #FFF, 30%) !default;\n$grid-bg-selected-hover: mix($grid-border-color, #FFF, 50%) !default;\n\n// Striped Background Color\n$grid-bg-striped: mix($grid-border-color, #FFF, 10%) !default;\n\n// Background Footer Color\n$grid-footer-bg: $gray-primary !default;\n\n// Text Color\n$grid-selected-color: $font-color-default !default;\n\n// Paging Colors\n$grid-paging-bg: transparent !default;\n$grid-paging-bg-hover: transparent !default;\n$grid-paging-border-color: transparent !default;\n$grid-paging-border-color-hover: transparent !default;\n$grid-paging-color: $gray-light !default;\n$grid-paging-color-hover: $brand-primary !default;\n\n\n\n\n//== Tabs\n//## Default variables for Tab Container Widget (used in components/tabcontainer)\n\n// Text Color\n$tabs-color: $font-color-detail !default;\n$tabs-color-active: $font-color-default !default;\n$tabs-lined-color-active: $brand-primary !default;\n\n// Border Color\n$tabs-border-color: $border-color-default !default;\n$tabs-lined-border-color: $brand-primary !default;\n\n// Background Color\n$tabs-bg: #FFF !default;\n$tabs-bg-hover: lighten($tabs-border-color,5) !default;\n$tabs-bg-active: $brand-primary !default;\n\n\n\n\n//== Modals\n//## Default Mendix Modal, Blocking Modal and Login Modal (used in components/modals)\n\n// Background Color\n$modal-header-bg: transparent !default;\n\n// Border Color\n$modal-header-border-color: $border-color-default !default;\n\n// Text Color\n$modal-header-color: $font-color-default !default;\n\n\n\n\n//== Dataview\n//## Default variables for Dataview Widget (used in components/dataview)\n\n// Controls\n$dataview-controls-bg: transparent !default;\n$dataview-controls-border-color: $border-color-default !default;\n\n// Empty Message\n$dataview-emptymessage-bg: $bg-color !default;\n$dataview-emptymessage-color: $font-color-default !default;\n\n\n\n\n//== Alerts\n//## Default Bootstrap alerts, not a widget in the Modeler (used in components/alerts)\n\n// Background Color\n$alert-info-bg: $color-info-lighter !default;\n$alert-success-bg: $color-success-lighter !default;\n$alert-warning-bg: $color-warning-lighter !default;\n$alert-danger-bg: $color-danger-lighter !default;\n\n// Text Color\n$alert-info-color: $color-info-darker !default;\n$alert-success-color: $color-success-darker !default;\n$alert-warning-color: $color-warning-darker !default;\n$alert-danger-color: $color-danger-darker !default;\n\n// Border Color\n$alert-info-border-color: $color-info-dark !default;\n$alert-success-border-color: $color-success-dark !default;\n$alert-warning-border-color: $color-warning-dark !default;\n$alert-danger-border-color: $color-danger-dark !default;\n\n\n\n\n//== Labels\n//## Default Bootstrap Labels, not a widget in the Modeler (used in components/labels)\n\n// Background Color\n$label-default-bg: $brand-default !default;\n$label-primary-bg: $brand-primary !default;\n$label-info-bg: $brand-info !default;\n$label-inverse-bg: $brand-inverse !default;\n$label-success-bg: $brand-success !default;\n$label-warning-bg: $brand-warning !default;\n$label-danger-bg: $brand-danger !default;\n\n// Border Color\n$label-default-border-color: $brand-default !default;\n$label-primary-border-color: $brand-primary !default;\n$label-info-border-color: $brand-info !default;\n$label-success-border-color: $brand-success !default;\n$label-warning-border-color: $brand-warning !default;\n$label-danger-border-color: $brand-danger !default;\n\n// Text Color\n$label-default-color: $font-color-default !default;\n$label-primary-color: #FFF !default;\n$label-info-color: #FFF !default;\n$label-inverse-color: #FFF !default;\n$label-success-color: #FFF !default;\n$label-warning-color: #FFF !default;\n$label-danger-color: #FFF !default;\n\n\n\n\n//== Groupbox\n//## Default variables for Groupbox Widget (used in components/groupbox)\n\n// Background Color\n$groupbox-default-bg: $brand-default !default;\n$groupbox-inverse-bg: $brand-inverse !default;\n$groupbox-primary-bg: $brand-primary !default;\n$groupbox-info-bg: $brand-info !default;\n$groupbox-success-bg: $brand-success !default;\n$groupbox-warning-bg: $brand-warning !default;\n$groupbox-danger-bg: $brand-danger !default;\n$groupbox-white-bg: #FFF !default;\n\n// Text Color\n$groupbox-default-color: $font-color-default !default;\n$groupbox-inverse-color: #FFF !default;\n$groupbox-primary-color: #FFF !default;\n$groupbox-info-color: #FFF !default;\n$groupbox-success-color: #FFF !default;\n$groupbox-warning-color: #FFF !default;\n$groupbox-danger-color: #FFF !default;\n$groupbox-white-color: $font-color-default !default;\n\n\n\n\n//== Callout (groupbox) Colors\n//## Extended variables for Groupbox Widget (used in components/groupbox)\n\n// Text and Border Color\n$callout-default-color: $font-color-default !default;\n$callout-info-color: $brand-info !default;\n$callout-success-color: $brand-success !default;\n$callout-warning-color: $brand-warning !default;\n$callout-danger-color: $brand-danger !default;\n\n// Background Color\n$callout-default-bg: $color-default-lighter!default;\n$callout-info-bg: $color-info-lighter !default;\n$callout-success-bg: $color-success-lighter !default;\n$callout-warning-bg: $color-warning-lighter !default;\n$callout-danger-bg: $color-danger-lighter !default;\n\n//== Timeline\n//## Extended variables for Timeline Widget\n// Colors\n$timeline-icon-color: $brand-primary;\n$timeline-border-color: $border-color-default;\n\n$timeline-color-header: $font-color-header;\n$timeline-color-detail: $font-color-detail;\n\n// Sizes\n$timeline-icon-size: 18px;\n\n//== Spacing\n//## Advanced layout options (used in base/mixins/default-spacing)\n\n// Small spacing\n$spacing-small: 5px !default;\n\n// Medium spacing\n$spacing-medium: 15px !default;\n$t-spacing-medium: 15px !default;\n$m-spacing-medium: 15px !default;\n\n// Large spacing\n$spacing-large: 30px !default;\n$t-spacing-large: 30px !default;\n$m-spacing-large: 15px !default;\n\n// Layout spacing\n$layout-spacing-top: 30px !default;\n$layout-spacing-right: 30px !default;\n$layout-spacing-bottom: 30px !default;\n$layout-spacing-left: 30px !default;\n\n$t-layout-spacing-top: 30px !default;\n$t-layout-spacing-right: 30px !default;\n$t-layout-spacing-bottom: 30px !default;\n$t-layout-spacing-left: 30px !default;\n\n$m-layout-spacing-top: 15px !default;\n$m-layout-spacing-right: 15px !default;\n$m-layout-spacing-bottom: 15px !default;\n$m-layout-spacing-left: 15px !default;\n\n// Combined layout spacing\n$layout-spacing: $layout-spacing-top $layout-spacing-right $layout-spacing-bottom $layout-spacing-left !default;\n$m-layout-spacing: $m-layout-spacing-top $m-layout-spacing-right $m-layout-spacing-bottom $m-layout-spacing-left !default;\n$t-layout-spacing: $t-layout-spacing-top $t-layout-spacing-right $t-layout-spacing-bottom $t-layout-spacing-left !default;\n\n// Gutter size\n$gutter-size: 15px !default;\n\n\n\n\n\n//== Tables\n//## Table spacing options (used in components/tables)\n\n$padding-table-cell-top: 8px !default;\n$padding-table-cell-bottom: 8px !default;\n$padding-table-cell-left: 8px !default;\n$padding-table-cell-right: 8px !default;\n\n\n\n\n//== Media queries breakpoints\n//## Define the breakpoints at which your layout will change, adapting to different screen sizes.\n\n$screen-xs: 480px !default;\n$screen-sm: 576px !default;\n$screen-md: 768px !default;\n$screen-lg: 992px !default;\n$screen-xl: 1200px !default;\n\n// So media queries don't overlap when required, provide a maximum (used for max-width)\n$screen-xs-max: ($screen-sm - 1) !default;\n$screen-sm-max: ($screen-md - 1) !default;\n$screen-md-max: ($screen-lg - 1) !default;\n$screen-lg-max: ($screen-xl - 1) !default;\n\n\n//== Settings\n//## Enable or disable your desired framework features\n// Use of !important\n$important-flex: true !default; // ./base/flex.scss\n$important-spacing: true !default; // ./base/spacing.scss\n$important-helpers: true !default; // ./helpers/helperclasses.scss\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin transition(\n $style: initial,\n $delay: 0s,\n $duration: 0.3s,\n $property: all,\n $timing-fucntion: cubic-bezier(0.4, 0, 0.2, 1)\n) {\n -webkit-transition: $property $duration $delay $timing-fucntion;\n -moz-transition: $property $duration $delay $timing-fucntion;\n -o-transition: $property $duration $delay $timing-fucntion;\n transition: $property $duration $delay $timing-fucntion;\n transform-style: $style;\n}\n\n@mixin ripple($color: #000, $transparency: 10%, $scale: 10) {\n position: relative;\n overflow: hidden;\n transform: translate3d(0, 0, 0);\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n pointer-events: none;\n background-image: radial-gradient(circle, $color $transparency, transparent $transparency);\n background-repeat: no-repeat;\n background-position: 50%;\n -webkit-transform: scale($scale, $scale);\n transform: scale($scale, $scale);\n opacity: 0;\n -webkit-transition: transform 0.5s, opacity 1s;\n -moz-transition: transform 0.5s, opacity 1s;\n -o-transition: transform 0.5s, opacity 1s;\n transition: transform 0.5s, opacity 1s;\n }\n\n &:active:after {\n -webkit-transform: scale(0, 0);\n transform: scale(0, 0);\n opacity: 0.1;\n transition: 0s;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin get-responsive-spacing-large($type: padding, $direction: all, $is_important: false) {\n $suffix: '';\n $dash: '-'; // Otherwise it will be interpreted as a minus symbol. Needed for the Gonzales PE version: 3.4.7 compiler (used by the Webmodeler)\n\n @if $is_important != false {\n $suffix: ' !important';\n }\n @if $direction==all {\n @media (max-width: $screen-sm-max) {\n #{$type}: #{$m-spacing-large}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}: #{$t-spacing-large}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}: #{$spacing-large}#{$suffix};\n }\n } @else {\n @media (max-width: $screen-sm-max) {\n #{$type}#{$dash}#{$direction}: #{$m-spacing-large}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}#{$dash}#{$direction}: #{$t-spacing-large}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}#{$dash}#{$direction}: #{$spacing-large}#{$suffix};\n }\n }\n}\n\n@mixin get-responsive-spacing-medium($type: padding, $direction: all, $is_important: false) {\n $suffix: '';\n $dash: '-'; // Otherwise it will be interpreted as a minus symbol. Needed for the Gonzales PE version: 3.4.7 compiler (used by the Webmodeler)\n\n @if $is_important != false {\n $suffix: ' !important';\n }\n @if $direction==all {\n @media (max-width: $screen-sm-max) {\n #{$type}: #{$m-spacing-medium}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}: #{$t-spacing-medium}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}: #{$spacing-medium}#{$suffix};\n }\n } @else {\n @media (max-width: $screen-sm-max) {\n #{$type}#{$dash}#{$direction}: #{$m-spacing-medium}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}#{$dash}#{$direction}: #{$t-spacing-medium}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}#{$dash}#{$direction}: #{$spacing-medium}#{$suffix};\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin layout-spacing($type: padding, $direction: all, $device: responsive, $is_important: false) {\n $suffix: '';\n @if $is_important != false {\n $suffix: ' !important';\n }\n @if $device==responsive {\n @if $direction==all {\n @media (max-width: $screen-sm-max) {\n #{$type}: #{$m-layout-spacing}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}: #{$t-layout-spacing}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}: #{$layout-spacing}#{$suffix};\n }\n } @else if $direction==top {\n @media (max-width: $screen-sm-max) {\n #{$type}-top: #{$m-layout-spacing-top}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}-top: #{$t-layout-spacing-top}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}-top: #{$layout-spacing-top}#{$suffix};\n }\n } @else if $direction==right {\n @media (max-width: $screen-sm-max) {\n #{$type}-right: #{$m-layout-spacing-right}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}-right: #{$t-layout-spacing-right}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}-right: #{$layout-spacing-right}#{$suffix};\n }\n } @else if $direction==bottom {\n @media (max-width: $screen-sm-max) {\n #{$type}-bottom: #{$m-layout-spacing-bottom}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}-bottom: #{$t-layout-spacing-bottom}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}-bottom: #{$layout-spacing-bottom}#{$suffix};\n }\n } @else if $direction==left {\n @media (max-width: $screen-sm-max) {\n #{$type}-left: #{$m-layout-spacing-left}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}-left: #{$t-layout-spacing-left}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}-left: #{$layout-spacing-left}#{$suffix};\n }\n }\n } @else if $device==tablet {\n @if $direction==all {\n #{$type}: #{$t-layout-spacing}#{$suffix};\n } @else if $direction==top {\n #{$type}-top: #{$t-layout-spacing-top}#{$suffix};\n } @else if $direction==right {\n #{$type}-right: #{$t-layout-spacing-right}#{$suffix};\n } @else if $direction==bottom {\n #{$type}-bottom: #{$t-layout-spacing-bottom}#{$suffix};\n } @else if $direction==left {\n #{$type}-left: #{$t-layout-spacing-left}#{$suffix};\n }\n } @else if $device==mobile {\n @if $direction==all {\n #{$type}: #{$m-layout-spacing}#{$suffix};\n } @else if $direction==top {\n #{$type}-top: #{$m-layout-spacing-top}#{$suffix};\n } @else if $direction==right {\n #{$type}-right: #{$m-layout-spacing-right}#{$suffix};\n } @else if $direction==bottom {\n #{$type}-bottom: #{$m-layout-spacing-bottom}#{$suffix};\n } @else if $direction==left {\n #{$type}-left: #{$m-layout-spacing-left}#{$suffix};\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin button-variant($color, $background, $border, $hover) {\n color: $color;\n border-color: $border;\n background-color: $background;\n\n &:hover,\n &:focus,\n &:active,\n &.active,\n .open > &.dropdown-toggle {\n color: $color;\n border-color: $hover;\n background-color: $hover;\n }\n &:active,\n &.active,\n .open > &.dropdown-toggle {\n background-image: none;\n }\n &.disabled,\n &[disabled],\n &[aria-disabled],\n fieldset[disabled] {\n &,\n &:hover,\n &:focus,\n &:active,\n &.active {\n border-color: $border;\n background-color: $background;\n }\n }\n // Button bordered\n &.btn-bordered {\n background-color: transparent;\n @if $color != $btn-default-color {\n color: $border;\n }\n\n &:hover,\n &:focus,\n &:active,\n &.active,\n .open > &.dropdown-toggle {\n color: $color;\n border-color: $border;\n background-color: $border;\n }\n }\n // Button as link\n &.btn-link {\n text-decoration: none;\n border-color: transparent;\n background-color: transparent;\n @if $color != $btn-default-color {\n color: $background;\n }\n\n &:hover {\n border-color: $btn-link-bg-hover;\n background-color: $btn-link-bg-hover;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin groupbox-variant($color, $background) {\n > .mx-groupbox-header {\n color: $color;\n border-color: $background;\n background: $background;\n }\n > .mx-groupbox-body {\n border-color: $background;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@keyframes slideInUp {\n from {\n visibility: visible;\n transform: translate3d(0, 100%, 0);\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n}\n\n.animated {\n animation-duration: 0.4s;\n animation-fill-mode: both;\n}\n\n.slideInUp {\n animation-name: slideInUp;\n}\n\n@keyframes slideInDown {\n from {\n visibility: visible;\n transform: translate3d(0, -100%, 0);\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n}\n\n.slideInDown {\n animation-name: slideInDown;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n}\n\n.fadeIn {\n animation-name: fadeIn;\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Flex\n\n Flex classes\n========================================================================== */\n$important-flex-value: if($important-flex, ' !important', '');\n\n// Flex layout\n.flexcontainer {\n display: flex;\n overflow: hidden;\n flex: 1;\n flex-direction: row;\n\n .flexitem {\n margin-right: $gutter-size;\n\n &:last-child {\n margin-right: 0;\n }\n }\n\n .flexitem-main {\n overflow: hidden;\n flex: 1;\n }\n}\n\n// These classes define the order of the children\n.flex-row {\n flex-direction: row #{$important-flex-value};\n}\n\n.flex-column {\n flex-direction: column #{$important-flex-value};\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse #{$important-flex-value};\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse #{$important-flex-value};\n}\n\n.flex-wrap {\n flex-wrap: wrap #{$important-flex-value};\n}\n\n.flex-nowrap {\n flex-wrap: nowrap #{$important-flex-value};\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse #{$important-flex-value};\n}\n\n// Align children in both directions\n.flex-center {\n align-items: center #{$important-flex-value};\n justify-content: center #{$important-flex-value};\n}\n\n// These classes define the alignment of the children\n.justify-content-start {\n justify-content: flex-start #{$important-flex-value};\n}\n\n.justify-content-end {\n justify-content: flex-end #{$important-flex-value};\n}\n\n.justify-content-center {\n justify-content: center #{$important-flex-value};\n}\n\n.justify-content-between {\n justify-content: space-between #{$important-flex-value};\n}\n\n.justify-content-around {\n justify-content: space-around #{$important-flex-value};\n}\n\n.justify-content-evenly {\n // Not Supported in IE11\n justify-content: space-evenly #{$important-flex-value};\n}\n\n.justify-content-stretch {\n justify-content: stretch #{$important-flex-value};\n}\n\n/// These classes define the alignment of the children in the cross-direction\n.align-children-start {\n align-items: flex-start #{$important-flex-value};\n}\n\n.align-children-end {\n align-items: flex-end #{$important-flex-value};\n}\n\n.align-children-center {\n align-items: center #{$important-flex-value};\n}\n\n.align-children-baseline {\n align-items: baseline #{$important-flex-value};\n}\n\n.align-children-stretch {\n align-items: stretch #{$important-flex-value};\n}\n\n/// These classes define the alignment of the rows of children in the cross-direction\n.align-content-start {\n align-content: flex-start #{$important-flex-value};\n}\n\n.align-content-end {\n align-content: flex-end #{$important-flex-value};\n}\n\n.align-content-center {\n align-content: center #{$important-flex-value};\n}\n\n.align-content-between {\n align-content: space-between #{$important-flex-value};\n}\n\n.align-content-around {\n align-content: space-around #{$important-flex-value};\n}\n\n.align-content-stretch {\n align-content: stretch #{$important-flex-value};\n}\n\n/// These classes allow the default alignment to be overridden for individual items\n.align-self-auto {\n align-self: auto #{$important-flex-value};\n}\n\n.align-self-start {\n align-self: flex-start #{$important-flex-value};\n}\n\n.align-self-end {\n align-self: flex-end #{$important-flex-value};\n}\n\n.align-self-center {\n align-self: center #{$important-flex-value};\n}\n\n.align-self-baseline {\n align-self: baseline #{$important-flex-value};\n}\n\n.align-self-stretch {\n align-self: stretch #{$important-flex-value};\n}\n\n/// These classes define the percentage of available free space within a flex container a flex item will take.\n@mixin flex-items($number) {\n @for $i from 1 through $number {\n .flexitem-#{$i} {\n flex: #{$i} #{$i} 1%;\n }\n }\n}\n\n@include flex-items($number: 12);\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Spacing\n\n Spacing classes\n========================================================================== */\n$important-spacing-value: if($important-spacing, ' !important', '');\n\n// Spacing none\n.spacing-inner-none {\n padding: 0 #{$important-spacing-value};\n}\n\n.spacing-inner-top-none {\n padding-top: 0 #{$important-spacing-value};\n}\n\n.spacing-inner-right-none {\n padding-right: 0 #{$important-spacing-value};\n}\n\n.spacing-inner-bottom-none {\n padding-bottom: 0 #{$important-spacing-value};\n}\n\n.spacing-inner-left-none {\n padding-left: 0 #{$important-spacing-value};\n}\n\n.spacing-outer-none {\n margin: 0 #{$important-spacing-value};\n}\n\n.spacing-outer-top-none {\n margin-top: 0 #{$important-spacing-value};\n}\n\n.spacing-outer-right-none {\n margin-right: 0 #{$important-spacing-value};\n}\n\n.spacing-outer-bottom-none {\n margin-bottom: 0 #{$important-spacing-value};\n}\n\n.spacing-outer-left-none {\n margin-left: 0 #{$important-spacing-value};\n}\n\n// Spacing small\n.spacing-inner {\n padding: $spacing-small #{$important-spacing-value};\n}\n\n.spacing-inner-top {\n padding-top: $spacing-small #{$important-spacing-value};\n}\n\n.spacing-inner-right {\n padding-right: $spacing-small #{$important-spacing-value};\n}\n\n.spacing-inner-bottom {\n padding-bottom: $spacing-small #{$important-spacing-value};\n}\n\n.spacing-inner-left {\n padding-left: $spacing-small #{$important-spacing-value};\n}\n\n.spacing-outer {\n margin: $spacing-small #{$important-spacing-value};\n}\n\n.spacing-outer-top {\n margin-top: $spacing-small #{$important-spacing-value};\n}\n\n.spacing-outer-right {\n margin-right: $spacing-small #{$important-spacing-value};\n}\n\n.spacing-outer-bottom {\n margin-bottom: $spacing-small #{$important-spacing-value};\n}\n\n.spacing-outer-left {\n margin-left: $spacing-small #{$important-spacing-value};\n}\n\n// Spacing Medium\n.spacing-inner-medium {\n @include get-responsive-spacing-medium($type: padding, $direction: all, $is_important: #{$important-spacing-value});\n}\n\n.spacing-inner-top-medium {\n @include get-responsive-spacing-medium($type: padding, $direction: top, $is_important: #{$important-spacing-value});\n}\n\n.spacing-inner-right-medium {\n @include get-responsive-spacing-medium($type: padding, $direction: right, $is_important: #{$important-spacing-value});\n}\n\n.spacing-inner-bottom-medium {\n @include get-responsive-spacing-medium($type: padding, $direction: bottom, $is_important: #{$important-spacing-value});\n}\n\n.spacing-inner-left-medium {\n @include get-responsive-spacing-medium($type: padding, $direction: left, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-medium {\n @include get-responsive-spacing-medium($type: margin, $direction: all, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-top-medium {\n @include get-responsive-spacing-medium($type: margin, $direction: top, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-right-medium {\n @include get-responsive-spacing-medium($type: margin, $direction: right, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-bottom-medium {\n @include get-responsive-spacing-medium($type: margin, $direction: bottom, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-left-medium {\n @include get-responsive-spacing-medium($type: margin, $direction: left, $is_important: #{$important-spacing-value});\n}\n\n// Spacing Large\n.spacing-inner-large {\n @include get-responsive-spacing-large($type: padding, $direction: all, $is_important: #{$important-spacing-value});\n}\n\n.spacing-inner-top-large {\n @include get-responsive-spacing-large($type: padding, $direction: top, $is_important: #{$important-spacing-value});\n}\n\n.spacing-inner-right-large {\n @include get-responsive-spacing-large($type: padding, $direction: right, $is_important: #{$important-spacing-value});\n}\n\n.spacing-inner-bottom-large {\n @include get-responsive-spacing-large($type: padding, $direction: bottom, $is_important: #{$important-spacing-value});\n}\n\n.spacing-inner-left-large {\n @include get-responsive-spacing-large($type: padding, $direction: left, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-large {\n @include get-responsive-spacing-large($type: margin, $direction: all, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-top-large {\n @include get-responsive-spacing-large($type: margin, $direction: top, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-right-large {\n @include get-responsive-spacing-large($type: margin, $direction: right, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-bottom-large {\n @include get-responsive-spacing-large($type: margin, $direction: bottom, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-left-large {\n @include get-responsive-spacing-large($type: margin, $direction: left, $is_important: #{$important-spacing-value});\n}\n\n// Spacing layouts\n.spacing-inner-layout {\n @include layout-spacing($type: padding, $direction: all, $device: responsive, $is_important: #{$important-spacing-value});\n}\n\n.spacing-inner-top-layout {\n @include layout-spacing($type: padding, $direction: top, $device: responsive, $is_important: #{$important-spacing-value});\n}\n\n.spacing-inner-right-layout {\n @include layout-spacing($type: padding, $direction: right, $device: responsive, $is_important: #{$important-spacing-value});\n}\n\n.spacing-inner-bottom-layout {\n @include layout-spacing($type: padding, $direction: bottom, $device: responsive, $is_important: #{$important-spacing-value});\n}\n\n.spacing-inner-left-layout {\n @include layout-spacing($type: padding, $direction: left, $device: responsive, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-layout {\n @include layout-spacing($type: margin, $direction: all, $device: responsive, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-top-layout {\n @include layout-spacing($type: margin, $direction: top, $device: responsive, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-right-layout {\n @include layout-spacing($type: margin, $direction: right, $device: responsive, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-bottom-layout {\n @include layout-spacing($type: margin, $direction: bottom, $device: responsive, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-left-layout {\n @include layout-spacing($type: margin, $direction: left, $device: responsive, $is_important: #{$important-spacing-value});\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n// Basic styling Scroll container\n// .mx-scrollcontainer {\n// .mx-scrollcontainer-wrapper {\n// padding: 0;\n// // Convert width to max-width when in scroll container to make sure you dont get scrollbars\n// .mx-layoutgrid-fixed {\n// width: 100%;\n// margin: auto;\n// @media (min-width: $screen-md) {\n// max-width: 750px;\n// }\n// @media (min-width: $screen-lg) {\n// max-width: 970px;\n// }\n// @media (min-width: $screen-xl) {\n// max-width: 1170px;\n// }\n// }\n// }\n// }\n\n.mx-scrollcontainer .mx-placeholder {\n width: 100%;\n height: 100%;\n .mx-layoutgrid,\n .mx-layoutgrid-fluid {\n @include layout-spacing($type: padding, $direction: all, $device: responsive);\n .mx-layoutgrid,\n .mx-layoutgrid-fluid {\n padding: 0;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Base\n\n Default settings\n========================================================================== */\nhtml {\n height: 100%;\n}\n\nbody {\n min-height: 100%;\n color: $font-color-default;\n background-color: $bg-color;\n font-family: $font-family-base;\n font-size: $font-size-default;\n font-weight: $font-weight-normal;\n line-height: $line-height-base;\n}\n\na {\n -moz-transition: 0.25s;\n -o-transition: 0.25s;\n -webkit-transition: 0.25s;\n transition: 0.25s;\n color: $link-color;\n -webkit-backface-visibility: hidden;\n}\n\na:hover {\n text-decoration: underline;\n color: $link-hover-color;\n}\n\n// Address `outline` inconsistency between Chrome and other browsers.\na:focus {\n outline: thin dotted;\n}\n\n// Improve readability when focused and also mouse hovered in all browsers\na:active,\na:hover {\n outline: 0;\n}\n\n// Removes large blue border in chrome on focus and active states\ninput:focus,\nbutton:focus,\n.mx-link:focus {\n outline: 0;\n}\n\n// Removes large blue border for tabindexes from widgets\ndiv[tabindex] {\n outline: 0;\n}\n\n// Disabled State\n.disabled,\n[disabled] {\n cursor: not-allowed;\n // opacity: 0.65;\n -webkit-box-shadow: none;\n box-shadow: none;\n filter: alpha(opacity=65);\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\nbody {\n height: 100%;\n}\n\n.loginpage {\n display: flex;\n height: 100%;\n}\n.loginpage-logo {\n position: absolute;\n top: 30px;\n right: 30px;\n width: 120px;\n}\n\n.loginpage-left {\n display: none;\n}\n\n.loginpage-right {\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: space-around;\n}\n.loginpage-formwrapper {\n width: 400px;\n margin: 0 auto;\n}\n// Form\n.loginpage-form {\n .alert {\n display: none;\n }\n\n .btn {\n border-radius: 40px;\n }\n\n // Form label + input\n .form-group {\n width: 100%;\n align-items: center;\n\n .control-label {\n flex: 4;\n margin-bottom: 0;\n font-size: $font-size-default;\n font-weight: 500;\n }\n\n .inputwrapper {\n flex: 8;\n position: relative;\n width: 100%;\n\n .glyphicon {\n &:before {\n -webkit-transition: color 0.4s;\n -moz-transition: color 0.4s;\n -o-transition: color 0.4s;\n transition: color 0.4s;\n }\n\n position: absolute;\n top: 50%;\n left: $form-input-padding-x;\n -webkit-transform: translateY(-50%);\n -moz-transform: translateY(-50%);\n -ms-transform: translateY(-50%);\n -o-transform: translateY(-50%);\n transform: translateY(-50%);\n\n &-eye-open:hover,\n &-eye-close:hover {\n cursor: pointer;\n color: $brand-primary;\n }\n }\n\n .form-control {\n padding: $form-input-padding-y $form-input-padding-x $form-input-padding-y 45px;\n }\n\n .form-control:focus ~ .glyphicon:before {\n color: $brand-primary;\n }\n }\n }\n}\n// Divider - only on login-with-sso.html\n.loginpage-alternativelabel {\n display: flex;\n align-items: center;\n flex-direction: row;\n flex-wrap: nowrap;\n justify-content: space-between;\n margin: 25px 0px;\n\n hr {\n flex: 1;\n margin: 20px 0 20px 10px;\n border: 0;\n border-color: #d8d8d8;\n border-top: 1px solid #eeeeee;\n }\n}\n\n.loginpage-signin {\n color: #555555;\n}\n\n// Show only on wide screens\n@media screen and (min-width: $screen-xl) {\n .loginpage-logo {\n width: 150px;\n }\n\n .loginpage-left {\n position: relative;\n display: block;\n flex: 1;\n width: 100%;\n height: 100%;\n }\n // Image and clipping mask\n .loginpage-image {\n height: 100%;\n animation: makePointer 1s ease-out both;\n background: left / cover no-repeat url('../../../resources/work-do-more.jpeg'); // Microsoft EDGE\n background: left / cover no-repeat\n linear-gradient(to right, rgba($brand-primary, 0.9) 0%, rgba($brand-primary, 0.6) 100%),\n left / cover no-repeat url('../../../resources/work-do-more.jpeg');\n background: left / cover no-repeat -moz-linear-gradient(left, rgba($brand-primary, 0.9) 0%, rgba(\n $brand-primary,\n 0.6\n )\n 100%),\n left / cover no-repeat url('../../../resources/work-do-more.jpeg');\n background: left / cover no-repeat -webkit-gradient(linear, left bottom, right bottom, color-stop(0%, rgba($brand-primary, 0.9)), color-stop(100%, rgba($brand-primary, 0.6))),\n left / cover no-repeat url('../../../resources/work-do-more.jpeg');\n background: left / cover no-repeat -webkit-linear-gradient(left, rgba($brand-primary, 0.9) 0%, rgba(\n $brand-primary,\n 0.6\n )\n 100%),\n left / cover no-repeat url('../../../resources/work-do-more.jpeg');\n background: left / cover no-repeat -o-linear-gradient(left, rgba($brand-primary, 0.9) 0%, rgba(\n $brand-primary,\n 0.6\n )\n 100%),\n left / cover no-repeat url('../../../resources/work-do-more.jpeg');\n background: left / cover no-repeat -ms-linear-gradient(left, rgba($brand-primary, 0.9) 0%, rgba(\n $brand-primary,\n 0.6\n )\n 100%),\n left / cover no-repeat url('../../../resources/work-do-more.jpeg');\n -webkit-clip-path: polygon(0% 0%, 100% 0, 100% 50%, 100% 100%, 0% 100%);\n clip-path: polygon(0% 0%, 100% 0, 100% 50%, 100% 100%, 0% 100%);\n }\n\n .loginpage-formwrapper {\n width: 400px;\n }\n}\n\n// Animate image clipping mask\n@keyframes makePointer {\n 100% {\n -webkit-clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%);\n clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%);\n }\n}\n@-webkit-keyframes makePointer {\n 100% {\n -webkit-clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%);\n clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%);\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Inputs\n\n The form-control class style all inputs\n========================================================================== */\n.form-control {\n display: flex;\n flex: 1;\n min-width: 50px;\n height: $form-input-height;\n padding: $form-input-padding-y $form-input-padding-x;\n transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n color: $form-input-color;\n border: 1px solid $form-input-border-color;\n border-radius: $form-input-border-radius;\n background-color: $form-input-bg;\n background-image: none;\n box-shadow: none;\n font-size: $form-input-font-size;\n line-height: $form-input-line-height;\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n @if $form-input-style==lined {\n @extend .form-control-lined;\n }\n}\n\n.form-control:not([readonly]):focus {\n border-color: $form-input-border-focus-color;\n outline: 0;\n background-color: $form-input-bg-focus;\n box-shadow: none;\n}\n\n.form-control[disabled],\n.form-control[readonly],\nfieldset[disabled] .form-control {\n opacity: 1;\n background-color: #EEEEEE;\n}\n\n.form-control[disabled],\nfieldset[disabled] .form-control {\n cursor: not-allowed;\n}\n\n// Lined\n.form-control-lined {\n border: 0;\n border-bottom: 1px solid $form-input-border-color;\n border-radius: 0;\n background-color: transparent;\n\n &:focus {\n background-color: transparent;\n }\n}\n\n// Read only form control class\n.form-control-static {\n overflow: hidden;\n flex: 1;\n min-height: auto;\n padding: $form-input-padding-y $form-input-padding-x;\n border-bottom: 1px solid $form-input-static-border-color;\n font-size: $form-input-font-size;\n line-height: $form-input-line-height;\n\n & + .control-label {\n margin-left: $form-label-gutter;\n }\n}\n\n// Dropdown input widget\nselect.form-control {\n $arrow: \"data:image/svg+xml;utf8,\";\n padding-right: 30px;\n background-image: url($arrow);\n background-repeat: no-repeat;\n background-position: calc(100% - #{$form-input-padding-x}) center;\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n}\n\n.form-control.mx-selectbox {\n align-items: center;\n flex-direction: row-reverse;\n justify-content: space-between;\n}\n\n// Not editable textarea, textarea will be rendered as a label\n.mx-textarea .control-label {\n height: auto;\n}\n\ntextarea.form-control {\n flex-basis: auto;\n}\n\n.mx-compound-control {\n display: flex;\n flex: 1;\n flex-wrap: wrap;\n max-width: 100%;\n\n .mx-validation-message {\n flex-basis: 100%;\n margin-top: 5px;\n }\n}\n\n// Form Group\n.form-group {\n display: flex;\n flex-direction: row;\n margin-bottom: $form-group-margin-bottom;\n\n & > div[class*='col-'] {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n }\n\n & > [class*='col-'] {\n padding-right: $form-group-gutter;\n padding-left: $form-group-gutter;\n }\n\n // Alignment content\n div[class*='textBox'] > .control-label,\n div[class*='textArea'] > .control-label,\n div[class*='datePicker'] > .control-label {\n @extend .form-control-static;\n }\n\n // Label\n .control-label {\n overflow: hidden;\n margin-bottom: 5px;\n text-overflow: ellipsis;\n color: $form-label-color;\n font-size: $form-label-size;\n font-weight: $form-label-weight;\n }\n\n .mx-validation-message {\n flex-basis: 100%;\n }\n\n &.no-columns:not(.label-after) {\n flex-direction: column;\n }\n}\n\n.form-group.label-after {\n .form-control-static {\n flex: unset;\n }\n\n .control-label {\n margin-bottom: 0;\n }\n}\n\n.mx-dateinput,\n.mx-referenceselector,\n.mx-referencesetselector {\n flex: 1;\n}\n\n// Targets only webkit iOS devices\n.dj_webkit.dj_ios .form-control {\n transform: translateZ(0);\n}\n\n@media only screen and (min-width: $screen-md) {\n .form-horizontal {\n .control-label {\n margin-bottom: 0;\n padding-top: $form-input-padding-y;\n padding-bottom: $form-input-padding-y;\n line-height: $form-input-line-height;\n }\n }\n}\n\n@media only screen and (max-width: $screen-sm-max) {\n .form-group {\n flex-direction: column;\n }\n}\n\n@media only screen and (max-device-width: 1024px) and (-webkit-min-device-pixel-ratio: 0) {\n // Fixes alignment bug on iPads / iPhones where datefield is not aligned vertically\n input[type='date'],\n input[type='time'],\n input[type='datetime-local'],\n input[type='month'] {\n line-height: 1;\n }\n // Fix shrinking of date inputs because inability of setting a placeholder\n input[type='time']:not(.has-value):before,\n input[type='date']:not(.has-value):before,\n input[type='month']:not(.has-value):before,\n input[type='datetime-local']:not(.has-value):before {\n margin-right: 0.5em;\n content: attr(placeholder) !important;\n color: #AAAAAA;\n }\n input[type='time'].has-value:before,\n input[type='date'].has-value:before,\n input[type='month'].has-value:before,\n input[type='datetime-local'].has-value:before {\n content: '' !important;\n }\n}\n\n@media (-ms-high-contrast: none), (-ms-high-contrast: active) {\n // Target IE10+\n .form-group {\n display: block;\n }\n}\n\n[dir='rtl'] {\n // Dropdown input widget\n select.form-control {\n padding-right: 30px;\n padding-left: 0;\n background-position: #{$form-input-padding-x} center;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Alerts\n\n Default Bootstrap Alert boxes. Provide contextual feedback messages for typical user actions with the handful of available and flexible alert messages\n========================================================================== */\n\n.alert {\n margin-top: 0; // want to align it with padding of a page\n padding: 15px;\n border: 0;\n border-radius: 4px;\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Alerts\n\n//== Design Properties\n//## Helper classes to change the look and feel of the component\n========================================================================== */\n.alert-bordered {\n border: 1px solid;\n}\n\n// Color variations\n.alert-success {\n color: $alert-success-color;\n border-color: $alert-success-border-color;\n background-color: $alert-success-bg;\n}\n\n.alert-info {\n color: $alert-info-color;\n border-color: $alert-info-border-color;\n background-color: $alert-info-bg;\n}\n\n.alert-warning {\n color: $alert-warning-color;\n border-color: $alert-warning-border-color;\n background-color: $alert-warning-bg;\n}\n\n.alert-danger {\n color: $alert-danger-color;\n border-color: $alert-danger-border-color;\n background-color: $alert-danger-bg;\n}\n\n//== State\n//## Styling when component is in certain state\n//-------------------------------------------------------------------------------------------------------------------//\n.has-error .alert {\n margin-top: 8px;\n margin-bottom: 0;\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Backgrounds\n\n Different background components, all managed by variables\n========================================================================== */\n\n.background-main {\n background-color: $bg-color !important;\n}\n\n.background-secondary {\n background-color: $bg-color-secondary !important;\n}\n\n.background-default {\n background-color: $brand-default !important;\n}\n\n.background-default-darker {\n background-color: $color-default-darker !important;\n}\n\n.background-default-dark {\n background-color: $color-default-dark !important;\n}\n\n.background-default-light {\n background-color: $color-default-light !important;\n}\n\n.background-default-lighter {\n background-color: $color-default-lighter !important;\n}\n\n.background-inverse {\n background-color: $brand-inverse !important;\n}\n\n.background-inverse-darker {\n background-color: $color-inverse-darker !important;\n}\n\n.background-inverse-dark {\n background-color: $color-inverse-dark !important;\n}\n\n.background-inverse-light {\n background-color: $color-inverse-light !important;\n}\n\n.background-inverse-lighter {\n background-color: $color-inverse-lighter !important;\n}\n\n.background-primary {\n background-color: $brand-primary !important;\n}\n\n.background-primary-darker {\n background-color: $color-primary-darker !important;\n}\n\n.background-primary-dark {\n background-color: $color-primary-dark !important;\n}\n\n.background-primary-light {\n background-color: $color-primary-light !important;\n}\n\n.background-primary-lighter {\n background-color: $color-primary-lighter !important;\n}\n\n.background-info {\n background-color: $brand-info !important;\n}\n\n.background-info-darker {\n background-color: $color-info-darker !important;\n}\n\n.background-info-dark {\n background-color: $color-info-dark !important;\n}\n\n.background-info-light {\n background-color: $color-info-light !important;\n}\n\n.background-info-lighter {\n background-color: $color-info-lighter !important;\n}\n\n.background-success {\n background-color: $brand-success !important;\n}\n\n.background-success-darker {\n background-color: $color-success-darker !important;\n}\n\n.background-success-dark {\n background-color: $color-success-dark !important;\n}\n\n.background-success-light {\n background-color: $color-success-light !important;\n}\n\n.background-success-lighter {\n background-color: $color-success-lighter !important;\n}\n\n.background-warning {\n background-color: $brand-warning !important;\n}\n\n.background-warning-darker {\n background-color: $color-warning-darker !important;\n}\n\n.background-warning-dark {\n background-color: $color-warning-dark !important;\n}\n\n.background-warning-light {\n background-color: $color-warning-light !important;\n}\n\n.background-warning-lighter {\n background-color: $color-warning-lighter !important;\n}\n\n.background-danger {\n background-color: $brand-danger !important;\n}\n\n.background-danger-darker {\n background-color: $color-danger-darker !important;\n}\n\n.background-danger-dark {\n background-color: $color-danger-dark !important;\n}\n\n.background-danger-light {\n background-color: $color-danger-light !important;\n}\n\n.background-danger-lighter {\n background-color: $color-danger-lighter !important;\n}\n\n.background-brand-gradient {\n background-image: $brand-gradient !important;\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Buttons\n\n Default Bootstrap and Mendix Buttons\n========================================================================== */\n\n.btn,\n.mx-button {\n display: inline-block;\n margin-bottom: 0;\n padding: 0.6em 1em;\n cursor: pointer;\n -moz-user-select: none;\n -ms-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n -moz-transition: all 0.2s ease-in-out;\n -o-transition: all 0.2s ease-in-out;\n -webkit-transition: all 0.2s ease-in-out;\n transition: all 0.2s ease-in-out;\n text-align: center;\n vertical-align: middle;\n white-space: nowrap;\n color: $btn-default-color;\n border: 1px solid $btn-default-border-color;\n border-radius: $btn-border-radius;\n background-color: $btn-default-bg;\n background-image: none;\n box-shadow: none;\n text-shadow: none;\n font-size: $btn-font-size;\n line-height: $line-height-base;\n\n &:hover,\n &:focus,\n &:active,\n &:active:focus {\n outline: none;\n box-shadow: none;\n }\n\n &[aria-disabled] {\n cursor: not-allowed;\n pointer-events: none;\n opacity: 0.65;\n filter: alpha(opacity=65);\n }\n\n @if $btn-bordered != false {\n @extend .btn-bordered;\n }\n}\n\n// Mendix button link\n.mx-link {\n padding: 0;\n color: $link-color;\n\n &[aria-disabled='true'] {\n cursor: not-allowed;\n pointer-events: none;\n opacity: 0.65;\n filter: alpha(opacity=65);\n }\n}\n\n// Images and icons in buttons\n.btn,\n.mx-button,\n.mx-link {\n img {\n //height: auto; // MXUI override who set the height on 16px default\n height: $font-size-default + 4px;\n margin-right: 5px;\n vertical-align: text-top;\n }\n}\n\n//== Phone specific\n//-------------------------------------------------------------------------------------------------------------------//\n.profile-phone {\n .btn,\n .mx-link {\n &:active {\n -webkit-transform: translateY(1px);\n transform: translateY(1px);\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Buttons\n\n//== Design Properties\n//## Helper classes to change the look and feel of the component\n========================================================================== */\n// Color variations\n.btn,\n.btn-default {\n @include button-variant($btn-default-color, $btn-default-bg, $btn-default-border-color, $btn-default-bg-hover);\n}\n\n.btn-primary {\n @include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border-color, $btn-primary-bg-hover);\n}\n\n.btn-inverse {\n @include button-variant($btn-inverse-color, $btn-inverse-bg, $btn-inverse-border-color, $btn-inverse-bg-hover);\n}\n\n.btn-success {\n @include button-variant($btn-success-color, $btn-success-bg, $btn-success-border-color, $btn-success-bg-hover);\n}\n\n.btn-info {\n @include button-variant($btn-info-color, $btn-info-bg, $btn-info-border-color, $btn-info-bg-hover);\n}\n\n.btn-warning {\n @include button-variant($btn-warning-color, $btn-warning-bg, $btn-warning-border-color, $btn-warning-bg-hover);\n}\n\n.btn-danger {\n @include button-variant($btn-danger-color, $btn-danger-bg, $btn-danger-border-color, $btn-danger-bg-hover);\n}\n\n// Button Sizes\n.btn-lg {\n font-size: $font-size-large;\n img {\n height: calc(#{$font-size-small} + 4px);\n }\n}\n\n.btn-sm {\n font-size: $font-size-small;\n img {\n height: calc(#{$font-size-small} + 4px);\n }\n}\n\n// Button Image\n.btn-image {\n padding: 0;\n vertical-align: middle;\n border-style: none;\n background-color: transparent;\n img {\n display: block; // or else the button doesn't get a width\n height: auto; // Image set height\n }\n &:hover,\n &:focus {\n background-color: transparent;\n }\n}\n\n// Icon buttons\n.btn-icon {\n & > img,\n & > .glyphicon {\n margin: 0;\n }\n}\n\n.btn-icon-right {\n & > img,\n & > .glyphicon {\n float: right;\n margin-left: 5px;\n }\n}\n\n.btn-icon-top {\n padding-right: 0;\n padding-left: 0;\n & > img,\n & > .glyphicon {\n display: block;\n margin: 0 0 5px 0;\n }\n}\n\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Checkbox\n\n Default Mendix Checkbox Widget\n========================================================================== */\n\n.mx-checkbox.label-after {\n flex-wrap: wrap;\n\n .control-label {\n padding: 0;\n }\n}\n\ninput[type='checkbox'] {\n position: relative !important; //Remove after mxui merge\n width: 16px;\n height: 16px;\n margin: 0 !important; // Remove after mxui merge\n cursor: pointer;\n -moz-user-select: none;\n -ms-user-select: none;\n -o-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n\n\n &::-ms-check {\n color: $form-input-border-color;\n border-color: $form-input-border-color;\n border-radius: $form-input-border-radius;\n background-color: $form-input-bg;\n }\n\n &:focus::-ms-check,\n &:checked::-ms-check {\n color: $form-input-border-focus-color;\n border-color: $form-input-border-focus-color;\n background-color: $form-input-bg-focus;\n }\n\n &:before,\n &:after {\n position: absolute;\n display: block;\n transition: all 0.3s ease;\n }\n\n &:before {\n // Checkbox\n width: 100%;\n height: 100%;\n content: '';\n border: 1px solid $form-input-border-color;\n border-radius: $form-input-border-radius;\n background-color: transparent;\n }\n\n &:after {\n // Checkmark\n width: 8px;\n height: 4px;\n margin: 5px 4px;\n transform: rotate(-45deg);\n pointer-events: none;\n border: 2px solid #FFFFFF;\n border-top: 0;\n border-right: 0;\n }\n\n &:not(:disabled):not(:checked):hover:after {\n content: '';\n border-color: $form-input-bg-hover; // color of checkmark on hover\n }\n\n &:checked:before {\n border-color: $form-input-border-focus-color;\n background-color: $form-input-border-focus-color;\n }\n\n &:checked:after {\n content: '';\n }\n\n &:disabled:before {\n background-color: $form-input-bg-disabled;\n }\n\n &:checked:disabled:before {\n border-color: transparent;\n background-color: rgba($form-input-border-focus-color, 0.4);\n }\n\n &:disabled:after,\n &:checked:disabled:after {\n border-color: $form-input-bg-disabled;\n }\n\n & + .control-label {\n margin-left: $form-label-gutter;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Grid\n\n Default Mendix Grid (used for Mendix Datagrid)\n========================================================================== */\n\n.mx-grid {\n padding: 0px;\n border: 0;\n border-radius: 0;\n .mx-grid-controlbar {\n margin: 10px 0;\n /* Paging */\n .mx-grid-pagingbar {\n /* Buttons */\n .mx-button {\n padding: 6px;\n color: $grid-paging-color;\n border-color: $grid-paging-border-color;\n background-color: $grid-paging-bg;\n &:hover {\n color: $grid-paging-color-hover;\n border-color: $grid-paging-border-color-hover;\n background-color: $grid-paging-bg-hover;\n }\n }\n /* Text Paging .. to .. to .. */\n .mx-grid-paging-status {\n padding: 0 8px 8px;\n }\n }\n }\n .mx-grid-searchbar {\n margin: 10px 0;\n .mx-grid-search-item {\n .mx-grid-search-label {\n vertical-align: middle;\n label {\n padding-top: 5px;\n }\n }\n .mx-grid-search-input {\n display: inline-flex;\n .form-control {\n height: 28px;\n font-size: 11px;\n }\n select.form-control {\n padding: 3px;\n vertical-align: middle;\n }\n .mx-button {\n height: 28px;\n padding-top: 2px;\n padding-bottom: 2px;\n }\n }\n }\n }\n}\n\n// Remove default border from grid inside a Mendix Dataview\n.mx-dataview .mx-grid {\n border: 0;\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Datagrid Default\n\n Default Mendix Datagrid Widget. The datagrid shows a list of objects in a grid\n========================================================================== */\n\n.mx-datagrid {\n table {\n border-width: 0;\n background-color: transparent;\n /* Table header */\n th {\n border-style: solid;\n border-color: $grid-border-color;\n border-top-width: 0;\n border-right: 0;\n border-bottom-width: 1px;\n border-left: 0;\n background-color: $grid-bg-header;\n padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left;\n vertical-align: middle;\n .mx-datagrid-head-caption {\n white-space: normal;\n }\n }\n /* Table Body */\n tbody tr {\n td {\n @include transition();\n padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left;\n vertical-align: middle;\n border-width: 0;\n border-color: $grid-border-color;\n border-bottom-width: 1px;\n border-bottom-style: solid;\n background-color: $grid-bg;\n &:focus {\n outline: none;\n }\n /* Text without spaces */\n .mx-datagrid-data-wrapper {\n text-overflow: ellipsis;\n }\n }\n &.selected td,\n &.selected:hover td {\n color: $grid-selected-color;\n background-color: $grid-bg-selected !important;\n }\n }\n /* Table Footer */\n tfoot {\n > tr > th {\n padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left;\n border-width: 0;\n background-color: $grid-footer-bg;\n }\n > tr > td {\n padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left;\n border-width: 0;\n background-color: $grid-bg;\n font-weight: $font-weight-bold;\n }\n }\n & *:focus {\n outline: 0;\n }\n }\n}","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Datagrid Default\n\n//== Design Properties\n//## Helper classes to change the look and feel of the component\n========================================================================== */\n// Striped style\n.datagrid-striped.mx-datagrid {\n table {\n th {\n border-width: 0;\n }\n\n tbody tr {\n td {\n border-top-width: 0;\n }\n\n &:nth-child(odd) td {\n background-color: $grid-bg-striped;\n }\n }\n }\n}\n\n// Bordered style\n.datagrid-bordered.mx-datagrid {\n table {\n border: 1px solid;\n\n th {\n border: 1px solid $grid-border-color;\n }\n\n tbody tr {\n td {\n border: 1px solid $grid-border-color;\n }\n }\n }\n\n tfoot {\n > tr > th {\n border-width: 0;\n background-color: $grid-footer-bg;\n }\n\n > tr > td {\n border-width: 1px;\n }\n }\n}\n\n// Transparent style so you can see the background\n.datagrid-transparent.mx-datagrid {\n table {\n background-color: transparent;\n\n tbody tr {\n &:nth-of-type(odd) {\n background-color: transparent;\n }\n\n td {\n background-color: transparent;\n }\n }\n }\n}\n\n// Hover style activated\n.datagrid-hover.mx-datagrid {\n table {\n tbody tr {\n &:hover td {\n background-color: $grid-bg-hover !important;\n }\n\n &.selected:hover td {\n background-color: $grid-bg-selected-hover !important;\n }\n }\n }\n}\n\n// Datagrid Row Sizes\n.datagrid-lg.mx-datagrid {\n table {\n th {\n padding: ($grid-padding-top * 2) ($grid-padding-right * 2) ($grid-padding-bottom * 2) ($grid-padding-left * 2);\n }\n\n tbody tr {\n td {\n padding: ($grid-padding-top * 2) ($grid-padding-right * 2) ($grid-padding-bottom * 2) ($grid-padding-left * 2);\n }\n }\n }\n}\n\n.datagrid-sm.mx-datagrid {\n table {\n th {\n padding: ($grid-padding-top / 2) ($grid-padding-right / 2) ($grid-padding-bottom / 2) ($grid-padding-left / 2);\n }\n\n tbody tr {\n td {\n padding: ($grid-padding-top / 2) ($grid-padding-right / 2) ($grid-padding-bottom / 2) ($grid-padding-left/ 2);\n }\n }\n }\n}\n\n// Datagrid Full Search\n// Default Mendix Datagrid Widget with adjusted search field. Only 1 search field is allowed\n.datagrid-fullsearch.mx-grid {\n .mx-grid-search-button {\n @extend .btn-primary;\n }\n\n .mx-grid-reset-button {\n display: none;\n }\n\n .mx-grid-search-item {\n display: block;\n }\n\n .mx-grid-search-label {\n display: none;\n }\n\n .mx-grid-searchbar {\n .mx-grid-search-controls {\n position: absolute;\n right: 0;\n }\n\n .mx-grid-search-input {\n width: 80%;\n padding-left: 0;\n\n .btn,\n .form-control {\n height: 35px;\n font-size: 12px;\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Dataview\n\n Default Mendix Dataview Widget. The data view is used for showing the contents of exactly one object\n========================================================================== */\n\n.mx-dataview {\n /* Control bar */\n .mx-dataview-controls {\n // Needed to clear the bootstrap columns (get float: left)\n clear: both;\n margin-top: 10px;\n padding: 8px 0;\n border-top: 1px solid $dataview-controls-border-color;\n border-radius: 0;\n background-color: $dataview-controls-bg;\n /* Buttons */\n .mx-button {\n margin-right: 0.3em;\n margin-bottom: 0;\n &:last-child {\n margin-right: 0;\n }\n }\n }\n /* Dataview-content gives problems for nexted layout grid containers */\n > .mx-dataview-content > .mx-container-nested {\n > .row {\n margin-right: 0;\n margin-left: 0;\n }\n }\n /* Dataview empty message */\n .mx-dataview-message {\n color: $dataview-emptymessage-color;\n background: $dataview-emptymessage-bg;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Date Picker\n \n Default Mendix Date Picker Widget.\n========================================================================== */\n\n.mx-calendar {\n /* (must be higher than popup z-index) */\n z-index: 10010 !important;\n padding: 10px;\n font-size: 12px;\n background: $bg-color;\n border-radius: $border-radius-default;\n border: 1px solid $border-color-default;\n box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.06);\n .mx-calendar-month-header {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n margin: 0 3px 10px 3px;\n }\n .mx-calendar-month-next,\n .mx-calendar-month-previous,\n .mx-calendar-month-dropdown {\n border: 0;\n cursor: pointer;\n background: transparent;\n }\n .mx-calendar-month-next,\n .mx-calendar-month-previous {\n &:hover {\n color: $brand-primary;\n }\n }\n .mx-calendar-month-dropdown {\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n .mx-calendar-month-current:first-child {\n margin-right: 10px;\n }\n }\n th {\n color: $brand-primary;\n }\n th,\n td {\n width: 35px;\n height: 35px;\n text-align: center;\n }\n td {\n color: $font-color-default;\n\n &:hover {\n cursor: pointer;\n border-radius: 50%;\n color: $brand-primary;\n background-color: $brand-default;\n }\n }\n .mx-calendar-day-month-next,\n .mx-calendar-day-month-previous {\n color: lighten($font-color-default, 45%);\n }\n .mx-calendar-day-selected,\n .mx-calendar-day-selected:hover {\n color: #fff;\n border-radius: 50%;\n background: $brand-primary;\n }\n\n //\n\n .mx-calendar-year-switcher {\n text-align: center;\n margin-top: 10px;\n color: lighten($brand-primary, 30%);\n span.mx-calendar-year-selected {\n color: $brand-primary;\n margin-left: 10px;\n margin-right: 10px;\n }\n span:hover {\n cursor: pointer;\n text-decoration: underline;\n background-color: transparent;\n }\n }\n}\n\n.mx-calendar-month-dropdown-options {\n /* (must be higher than popup z-index) */\n z-index: 10020 !important;\n position: absolute;\n top: 25px;\n padding: 2px 10px;\n border-radius: $border-radius-default;\n background-color: $bg-color;\n div {\n cursor: pointer;\n font-size: 12px;\n padding: 2px 0;\n &:hover,\n &:focus {\n color: $brand-primary;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Header\n\n Default Mendix Mobile Header\n========================================================================== */\n\n.mx-header {\n z-index: 100;\n display: flex;\n width: 100%;\n height: $m-header-height;\n padding: 0;\n text-align: initial;\n color: $m-header-color;\n border-bottom: 1px solid $border-color-default;\n background-color: $m-header-bg;\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.14);\n\n // Reset mxui\n div.mx-header-left,\n div.mx-header-right {\n position: relative;\n top: initial;\n right: initial;\n left: initial;\n display: flex;\n align-items: center;\n width: 25%;\n height: 100%;\n .mx-placeholder {\n display: flex;\n align-items: center;\n height: 100%;\n }\n }\n\n div.mx-header-left .mx-placeholder {\n order: 1;\n .mx-placeholder {\n justify-content: flex-start;\n }\n }\n div.mx-header-center {\n overflow: hidden;\n flex: 1;\n order: 2;\n text-align: center;\n\n .mx-title {\n overflow: hidden;\n width: 100%;\n margin: 0;\n text-overflow: ellipsis;\n color: $m-header-color;\n font-size: $m-header-title-size;\n line-height: $m-header-height;\n }\n }\n div.mx-header-right {\n order: 3;\n .mx-placeholder {\n justify-content: flex-end;\n }\n }\n\n // Content magic\n .mx-link {\n display: flex;\n align-items: center;\n height: 100%;\n -webkit-transition: all 0.2s;\n -moz-transition: all 0.2s;\n transition: all 0.2s;\n text-decoration: none;\n .glyphicon {\n top: 0;\n font-size: 23px;\n }\n &:active {\n -webkit-transform: translateY(1px);\n transform: translateY(1px);\n color: $link-hover-color;\n }\n }\n\n .mx-link,\n .btn,\n img {\n padding: 0 8px;\n }\n\n .mx-sidebartoggle {\n font-size: 24px;\n line-height: $m-header-height;\n img {\n height: 20px;\n }\n }\n}\n\n// RTL support\nbody[dir='rtl'] {\n .mx-header-left {\n order: 3;\n }\n .mx-header-right {\n order: 1;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Glyphicons\n\n Default Mendix Glyphicons\n========================================================================== */\n\n.mx-glyphicon {\n &:before {\n display: inline-block;\n margin-top: -0.2em;\n margin-right: 0.4555555em;\n vertical-align: middle;\n font-family: \"Glyphicons Halflings\";\n font-weight: $font-weight-normal;\n font-style: normal;\n line-height: inherit;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Groupbox\n\n Default Mendix Groupboxes\n========================================================================== */\n\n.mx-groupbox {\n margin: 0;\n > .mx-groupbox-header {\n margin: 0;\n color: $groupbox-default-color;\n border-width: 1px 1px 0 1px;\n border-style: solid;\n border-color: $groupbox-default-bg;\n background: $groupbox-default-bg;\n font-size: $font-size-h5;\n .mx-groupbox-collapse-icon {\n margin-top: 0.1em;\n }\n }\n > .mx-groupbox-body {\n padding: 10px 15px;\n border-width: 1px;\n border-style: solid;\n border-color: $groupbox-default-bg;\n background-color: #FFFFFF;\n }\n .mx-groupbox-header + .mx-groupbox-body {\n border-top: none;\n }\n &.collapsed > .mx-groupbox-header {\n }\n}","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Groupbox\n\n//== Design Properties\n//## Helper classes to change the look and feel of the component\n========================================================================== */\n// Color variations\n.groupbox-default {\n @include groupbox-variant($groupbox-default-color, $groupbox-default-bg);\n}\n\n.groupbox-primary {\n @include groupbox-variant($groupbox-primary-color, $groupbox-primary-bg);\n}\n\n.groupbox-inverse {\n @include groupbox-variant($groupbox-inverse-color, $groupbox-inverse-bg);\n}\n\n// Success appears as green\n.groupbox-success {\n @include groupbox-variant($groupbox-success-color, $groupbox-success-bg);\n}\n\n// Info appears as blue-green\n.groupbox-info {\n @include groupbox-variant($groupbox-info-color, $groupbox-info-bg);\n}\n\n// Warning appears as orange\n.groupbox-warning {\n @include groupbox-variant($groupbox-warning-color, $groupbox-warning-bg);\n}\n\n// Danger and error appear as red\n.groupbox-danger {\n @include groupbox-variant($groupbox-danger-color, $groupbox-danger-bg);\n}\n\n// white appears as full white\n.groupbox-white {\n @include groupbox-variant($groupbox-white-color, $groupbox-white-bg);\n}\n\n.groupbox-transparent {\n border-bottom: 1px solid $border-color-default;\n > .mx-groupbox-header {\n padding: 15px 0;\n color: $gray-darker;\n border-style: none;\n background: transparent;\n font-size: 16px;\n font-weight: $font-weight-semibold;\n }\n .mx-groupbox-body {\n padding: 15px 0;\n border-style: none;\n background-color: transparent;\n }\n .mx-groupbox-collapse-icon {\n color: $brand-primary;\n }\n}\n\n// Header options\n.groupbox-h1 > .mx-groupbox-header {\n font-size: $font-size-h1;\n}\n\n.groupbox-h2 > .mx-groupbox-header {\n font-size: $font-size-h2;\n}\n\n.groupbox-h3 > .mx-groupbox-header {\n font-size: $font-size-h3;\n}\n\n.groupbox-h4 > .mx-groupbox-header {\n font-size: $font-size-h4;\n}\n\n.groupbox-h5 > .mx-groupbox-header {\n font-size: $font-size-h5;\n}\n\n.groupbox-h6 > .mx-groupbox-header {\n font-size: $font-size-h6;\n}\n\n// Callout Look and Feel\n.groupbox-callout {\n > .mx-groupbox-header,\n > .mx-groupbox-body {\n border: 0;\n background-color: $callout-info-bg;\n }\n .mx-groupbox-header + .mx-groupbox-body {\n padding-top: 0;\n }\n}\n\n.groupbox-info.groupbox-callout {\n > .mx-groupbox-header,\n > .mx-groupbox-body {\n background-color: $callout-info-bg;\n }\n > .mx-groupbox-header {\n color: $callout-info-color;\n }\n}\n\n.groupbox-success.groupbox-callout {\n > .mx-groupbox-header,\n > .mx-groupbox-body {\n background-color: $callout-success-bg;\n }\n > .mx-groupbox-header {\n color: $callout-success-color;\n }\n}\n\n.groupbox-warning.groupbox-callout {\n > .mx-groupbox-header,\n > .mx-groupbox-body {\n background-color: $callout-warning-bg;\n }\n > .mx-groupbox-header {\n color: $callout-warning-color;\n }\n}\n\n.groupbox-danger.groupbox-callout {\n > .mx-groupbox-header,\n > .mx-groupbox-body {\n background-color: $callout-danger-bg;\n }\n > .mx-groupbox-header {\n color: $callout-danger-color;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Images\n\n Default Mendix Image Widgets\n========================================================================== */\n\nimg.img-rounded,\n.img-rounded img {\n border-radius: 6px;\n}\n\nimg.img-thumbnail,\n.img-thumbnail img {\n display: inline-block;\n max-width: 100%;\n height: auto;\n padding: 4px;\n -webkit-transition: all 0.2s ease-in-out;\n -moz-transition: all 0.2s ease-in-out;\n -o-transition: all 0.2s ease-in-out;\n transition: all 0.2s ease-in-out;\n border: 1px solid $brand-default;\n border-radius: 4px;\n background-color: #FFFFFF;\n line-height: $line-height-base;\n}\n\nimg.img-circle,\n.img-circle img {\n border-radius: 50%;\n}\n\nimg.img-auto,\n.img-auto img {\n width: auto !important;\n max-width: 100% !important;\n height: auto !important;\n max-height: 100% !important;\n}\n\nimg.img-center,\n.img-center img {\n margin-right: auto !important;\n margin-left: auto !important;\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Labels\n\n Default labels combined with Bootstrap labels\n========================================================================== */\n\n.label {\n display: inline-block;\n padding: 0.2em 0.6em 0.3em;\n text-align: center;\n vertical-align: baseline;\n white-space: nowrap;\n color: #ffffff;\n border-radius: 0.25em;\n font-size: 100%;\n line-height: 1;\n margin: 0;\n\n .form-control-static {\n all: unset;\n font-weight: $font-weight-normal;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Labels\n\n//== Design Properties\n//## Helper classes to change the look and feel of the component\n========================================================================== */\n// Color variations\n.label-default {\n color: $label-default-color;\n background-color: $label-default-bg;\n}\n\n.label-primary {\n color: $label-primary-color;\n background-color: $label-primary-bg;\n}\n\n.label-success {\n color: $label-success-color;\n background-color: $label-success-bg;\n}\n\n.label-inverse {\n color: $label-inverse-color;\n background-color: $label-inverse-bg;\n}\n\n.label-info {\n color: $label-info-color;\n background-color: $label-info-bg;\n}\n\n.label-warning {\n color: $label-warning-color;\n background-color: $label-warning-bg;\n}\n\n.label-danger {\n color: $label-danger-color;\n background-color: $label-danger-bg;\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Listview\n\n Default Mendix Listview Widget. The list view shows a list of objects arranged vertically. Each object is shown using a template\n========================================================================== */\n.mx-listview {\n // Remove widget padding\n padding: 0;\n /* Clear search button (overrides load more button stying) */\n // Search bar\n .mx-listview-searchbar {\n margin-bottom: $gutter-size;\n\n .btn {\n width: auto;\n }\n }\n\n /* Load more button */\n & > .btn {\n width: 100%;\n margin: 10px auto;\n }\n\n & > ul {\n margin: 0;\n\n .mx-listview-empty {\n border-style: none;\n background-color: transparent;\n }\n\n & > li {\n @include transition();\n padding: $listview-padding-top $listview-padding-right $listview-padding-bottom $listview-padding-left;\n border-width: 1px 0 0 0;\n border-style: solid;\n border-color: $grid-border-color;\n background-color: $grid-bg;\n\n &:first-child {\n border-radius: 0; // Reset mxui listview style\n }\n\n &:last-child {\n border-bottom: 1px solid $grid-border-color;\n border-radius: 0; // Reset mxui listview style\n }\n\n &:focus,\n &:active {\n outline: 0;\n background-color: $grid-bg-hover;\n }\n\n &.selected {\n background-color: $grid-bg-selected;\n }\n }\n }\n\n .mx-layoutgrid {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n}\n\n//== Phone specific\n//-------------------------------------------------------------------------------------------------------------------//\n.profile-phone .mx-listview {\n .mx-listview-searchbar {\n margin-bottom: 3px;\n background: #FFFFFF;\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.14);\n\n input {\n padding: 14px 15px;\n color: #555555;\n border-style: none;\n border-radius: 0;\n box-shadow: none;\n }\n\n .btn {\n padding: 14px 15px;\n color: inherit;\n border-style: none;\n }\n }\n\n & > ul > li {\n &:first-child {\n border-top: none;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Listview\n\n//== Design Properties\n//## Helper classes to change the look and feel of the component\n========================================================================== */\n// Bordered\n.listview-bordered.mx-listview {\n & > ul > li {\n border: 1px solid $grid-border-color;\n border-top: 0;\n\n &:first-child {\n border-top: 1px solid $grid-border-color;\n border-radius: 0;\n }\n\n &:last-child {\n border-radius: 0;\n }\n }\n}\n\n// Striped\n.listview-striped.mx-listview {\n & > ul > li:nth-child(2n + 1) {\n background-color: $grid-bg-striped;\n }\n}\n\n// Items as seperated blocks\n.listview-seperated.mx-listview {\n & > ul > li {\n margin-bottom: $gutter-size;\n border-width: 1px;\n border-style: solid;\n border-radius: $border-radius-default;\n }\n}\n\n// Remove all styling\n.listview-stylingless.mx-listview {\n & > ul > li {\n padding: 0;\n cursor: default;\n border: 0;\n background-color: transparent;\n\n &:hover,\n &:focus,\n &:active {\n background-color: transparent;\n }\n\n &.selected {\n background-color: transparent !important;\n\n &:hover,\n &:focus,\n &:active {\n background-color: transparent !important;\n }\n }\n }\n}\n\n// Hover style activated\n.listview-hover.mx-listview {\n & > ul > li {\n &:hover,\n &:focus,\n &:active {\n background-color: $grid-bg-hover !important;\n }\n\n &.selected {\n &:hover,\n &:focus,\n &:active {\n background-color: $grid-bg-selected-hover !important;\n }\n }\n }\n}\n\n// Templategrid Row Sizes\n.listview-lg.mx-listview {\n & > ul > li {\n padding: ($grid-padding-top * 2) ($grid-padding-right * 2) ($grid-padding-bottom * 2) ($grid-padding-left * 2);\n }\n}\n\n.listview-sm.mx-listview {\n & > ul > li {\n padding: ($grid-padding-top / 2) ($grid-padding-right / 2) ($grid-padding-bottom / 2) ($grid-padding-left / 2);\n }\n}\n\n// Bootstrap columns\n.mx-listview[class*='lv-col'] {\n overflow: hidden; // For if it is not in a layout, to prevent scrollbars\n & > ul {\n display: block; // normal a table\n margin-right: -1 * $gutter-size;\n margin-left: -1 * $gutter-size;\n\n &::before,\n &::after {\n // clearfix\n display: table;\n clear: both;\n content: ' ';\n }\n\n & > li {\n // bootstrap col\n position: relative;\n display: block; // normal a table\n float: left;\n min-height: 1px;\n padding-right: $gutter-size;\n padding-left: $gutter-size;\n border: 0;\n @media (max-width: $screen-md-max) {\n width: 100% !important;\n }\n\n & > .mx-dataview {\n overflow: hidden;\n }\n }\n }\n\n &.lv-col-xs-12 > ul > li {\n width: 100% !important;\n }\n\n &.lv-col-xs-11 > ul > li {\n width: 91.66666667% !important;\n }\n\n &.lv-col-xs-10 > ul > li {\n width: 83.33333333% !important;\n }\n\n &.lv-col-xs-9 > ul > li {\n width: 75% !important;\n }\n\n &.lv-col-xs-8 > ul > li {\n width: 66.66666667% !important;\n }\n\n &.lv-col-xs-7 > ul > li {\n width: 58.33333333% !important;\n }\n\n &.lv-col-xs-6 > ul > li {\n width: 50% !important;\n }\n\n &.lv-col-xs-5 > ul > li {\n width: 41.66666667% !important;\n }\n\n &.lv-col-xs-4 > ul > li {\n width: 33.33333333% !important;\n }\n\n &.lv-col-xs-3 > ul > li {\n width: 25% !important;\n }\n\n &.lv-col-xs-2 > ul > li {\n width: 16.66666667% !important;\n }\n\n &.lv-col-xs-1 > ul > li {\n width: 8.33333333% !important;\n }\n\n @media (min-width: $screen-md) {\n &.lv-col-sm-12 > ul > li {\n width: 100% !important;\n }\n &.lv-col-sm-11 > ul > li {\n width: 91.66666667% !important;\n }\n &.lv-col-sm-10 > ul > li {\n width: 83.33333333% !important;\n }\n &.lv-col-sm-9 > ul > li {\n width: 75% !important;\n }\n &.lv-col-sm-8 > ul > li {\n width: 66.66666667% !important;\n }\n &.lv-col-sm-7 > ul > li {\n width: 58.33333333% !important;\n }\n &.lv-col-sm-6 > ul > li {\n width: 50% !important;\n }\n &.lv-col-sm-5 > ul > li {\n width: 41.66666667% !important;\n }\n &.lv-col-sm-4 > ul > li {\n width: 33.33333333% !important;\n }\n &.lv-col-sm-3 > ul > li {\n width: 25% !important;\n }\n &.lv-col-sm-2 > ul > li {\n width: 16.66666667% !important;\n }\n &.lv-col-sm-1 > ul > li {\n width: 8.33333333% !important;\n }\n }\n @media (min-width: $screen-lg) {\n &.lv-col-md-12 > ul > li {\n width: 100% !important;\n }\n &.lv-col-md-11 > ul > li {\n width: 91.66666667% !important;\n }\n &.lv-col-md-10 > ul > li {\n width: 83.33333333% !important;\n }\n &.lv-col-md-9 > ul > li {\n width: 75% !important;\n }\n &.lv-col-md-8 > ul > li {\n width: 66.66666667% !important;\n }\n &.lv-col-md-7 > ul > li {\n width: 58.33333333% !important;\n }\n &.lv-col-md-6 > ul > li {\n width: 50% !important;\n }\n &.lv-col-md-5 > ul > li {\n width: 41.66666667% !important;\n }\n &.lv-col-md-4 > ul > li {\n width: 33.33333333% !important;\n }\n &.lv-col-md-3 > ul > li {\n width: 25% !important;\n }\n &.lv-col-md-2 > ul > li {\n width: 16.66666667% !important;\n }\n &.lv-col-md-1 > ul > li {\n width: 16.66666667% !important;\n }\n }\n @media (min-width: $screen-xl) {\n &.lv-col-lg-12 > ul > li {\n width: 100% !important;\n }\n &.lv-col-lg-11 > ul > li {\n width: 91.66666667% !important;\n }\n &.lv-col-lg-10 > ul > li {\n width: 83.33333333% !important;\n }\n &.lv-col-lg-9 > ul > li {\n width: 75% !important;\n }\n &.lv-col-lg-8 > ul > li {\n width: 66.66666667% !important;\n }\n &.lv-col-lg-7 > ul > li {\n width: 58.33333333% !important;\n }\n &.lv-col-lg-6 > ul > li {\n width: 50% !important;\n }\n &.lv-col-lg-5 > ul > li {\n width: 41.66666667% !important;\n }\n &.lv-col-lg-4 > ul > li {\n width: 33.33333333% !important;\n }\n &.lv-col-lg-3 > ul > li {\n width: 25% !important;\n }\n &.lv-col-lg-2 > ul > li {\n width: 16.66666667% !important;\n }\n &.lv-col-lg-1 > ul > li {\n width: 8.33333333% !important;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Modals\n\n Default Mendix Modals. Modals are streamlined, but flexible, dialog prompts with the minimum required functionality and smart defaults\n========================================================================== */\n.modal-dialog {\n .modal-content {\n border: 1px solid $modal-header-border-color;\n border-radius: 4px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);\n\n .modal-header {\n padding: 15px 20px;\n border-bottom-color: $modal-header-border-color;\n border-radius: 0; // Because of the class .mx-window-active in mxui.css\n background-color: $modal-header-bg;\n\n h4 {\n margin: 0;\n color: $modal-header-color;\n font-size: 16px;\n font-weight: $font-weight-bold;\n }\n\n .close {\n margin-top: -3px;\n opacity: 1;\n /* For IE8 and earlier */\n color: $modal-header-color;\n text-shadow: none;\n filter: alpha(opacity=100);\n }\n }\n\n .modal-body {\n padding: 20px;\n }\n\n .modal-footer {\n display: flex;\n justify-content: flex-end;\n margin-top: 0;\n padding: 20px;\n border-style: none;\n }\n }\n}\n\n// Default Mendix Window Modal\n.mx-window {\n // If popup direct child is a dataview it gets the class mx-window-view\n &.mx-window-view .mx-window-body {\n overflow: hidden; // hide second scrollbar in edit page\n padding: 0;\n // Dataview in popup\n > .mx-dataview > .mx-dataview-content,\n > .mx-placeholder > .mx-dataview > .mx-dataview-content {\n padding: 20px;\n }\n\n > .mx-dataview > .mx-dataview-controls,\n > .mx-placeholder > .mx-dataview > .mx-dataview-controls {\n display: flex;\n justify-content: flex-end;\n margin: 0;\n padding: 20px;\n text-align: left;\n border-top: 1px solid $modal-header-border-color;\n }\n }\n\n .mx-dataview-controls {\n padding-bottom: 0;\n }\n\n .mx-layoutgrid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n// Login modal\n.mx-login {\n .modal-body {\n padding: 0 15px;\n }\n\n .modal-content {\n input {\n height: 56px;\n padding: 12px 12px;\n border: 1px solid #EEEEEE;\n background: #EEEEEE;\n box-shadow: none;\n font-size: 16px;\n\n &:focus {\n border-color: #66AFE9;\n }\n }\n }\n\n .modal-header,\n .modal-footer {\n border: 0;\n }\n\n button {\n font-size: 16px;\n }\n\n h4 {\n color: #AAAAAA;\n font-size: 20px;\n font-weight: $font-weight-bold;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Navigation\n\n Default Mendix Navigation Bar\n========================================================================== */\n.mx-navbar {\n margin: 0;\n border-style: none;\n border-radius: 0;\n background-color: $navigation-bg;\n\n ul.nav {\n margin: 0; // weird -margin if screen gets small (bootstrap)\n\n /* Navigation item */\n & > li.mx-navbar-item > a {\n display: flex;\n align-items: center;\n min-height: $topbar-minimalheight;\n padding: $navigation-item-padding;\n vertical-align: middle;\n color: $navigation-color;\n border-radius: 0;\n font-size: $navigation-font-size;\n font-weight: $font-weight-normal;\n\n /* Dropdown arrow */\n .caret {\n border-top-color: $navigation-color;\n border-bottom-color: $navigation-color;\n }\n\n &:hover,\n &:focus,\n &.active {\n text-decoration: none;\n color: $navigation-color-hover;\n background-color: $navigation-bg-hover;\n\n .caret {\n border-top-color: $navigation-color-active;\n border-bottom-color: $navigation-color-active;\n }\n }\n\n &.active {\n color: $navigation-color-active;\n background-color: $navigation-bg-active;\n }\n\n /* Dropdown */\n .mx-navbar-submenu::before {\n position: absolute;\n top: -9px;\n left: 15px;\n width: 0;\n height: 0;\n content: '';\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n border-width: 0 9px 9px 9px;\n border-style: solid;\n border-color: transparent transparent $navigation-border-color transparent;\n }\n\n // Image\n img {\n width: 20px; // Default size (so it looks good)\n height: auto;\n margin-right: 0.5em;\n }\n\n .glyphicon {\n top: 0;\n margin-right: 0.5em;\n vertical-align: middle;\n font-size: $navigation-glyph-size;\n }\n }\n\n & > .mx-navbar-item.active a {\n color: $navigation-color-active;\n }\n\n /* When hovering or the dropdown is open */\n & > .mx-navbar-item > a:hover,\n & > .mx-navbar-item > a:focus,\n & > .mx-navbar-item.open > a,\n & > .mx-navbar-item.open > a:hover,\n & > .mx-navbar-item.open > a:focus {\n text-decoration: none;\n color: $navigation-color-hover;\n background-color: $navigation-bg-hover;\n\n .caret {\n border-top-color: $navigation-color-hover;\n border-bottom-color: $navigation-color-hover;\n }\n }\n\n & > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem.active a {\n color: $navigation-sub-color-active;\n background-color: $navigation-sub-bg-active;\n\n .caret {\n border-top-color: $navigation-sub-color-active;\n border-bottom-color: $navigation-sub-color-active;\n }\n }\n }\n @media (max-width: $screen-md) {\n ul.nav > li.mx-navbar-item > a {\n padding: 10px 20px;\n }\n .mx-navbar-item.open .dropdown-menu {\n padding: 0;\n border-radius: 0;\n background-color: $navigation-sub-bg;\n\n & > li.mx-navbar-subitem > a {\n padding: 10px 20px;\n color: $navigation-sub-color;\n border-radius: 0;\n font-size: $navigation-sub-font-size;\n font-weight: $font-weight-normal;\n\n &:hover,\n &:focus {\n color: $navigation-sub-color-hover;\n background-color: $navigation-sub-bg-hover;\n }\n\n &.active {\n color: $navigation-sub-color-active;\n background-color: $navigation-sub-bg-active;\n }\n }\n }\n }\n\n /* remove focus */\n &:focus {\n outline: 0;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Navigation\n\n//== Regions\n//## Behavior in the different regions\n========================================================================== */\n// When used in topbar\n.region-topbar {\n .mx-navbar {\n background-color: $navtopbar-bg;\n ul.nav {\n /* Navigation item */\n & > li.mx-navbar-item > a {\n color: $navtopbar-color;\n font-size: $navtopbar-font-size;\n\n /* Dropdown arrow */\n .caret {\n border-top-color: $navtopbar-color;\n border-bottom-color: $navtopbar-color;\n }\n &:hover,\n &:focus,\n &.active {\n color: $navtopbar-color-hover;\n background-color: $navtopbar-bg-hover;\n .caret {\n border-top-color: $navtopbar-color-active;\n border-bottom-color: $navtopbar-color-active;\n }\n }\n &.active {\n color: $navtopbar-color-active;\n background-color: $navtopbar-bg-active;\n }\n\n /* Dropdown */\n .mx-navbar-submenu::before {\n border-color: transparent transparent $navtopbar-border-color transparent;\n }\n\n // Image\n .glyphicon {\n font-size: $navtopbar-glyph-size;\n }\n }\n\n /* When hovering or the dropdown is open */\n & > .mx-navbar-item > a:hover,\n & > .mx-navbar-item > a:focus,\n & > .mx-navbar-item.active a,\n & > .mx-navbar-item.open > a,\n & > .mx-navbar-item.open > a:hover,\n & > .mx-navbar-item.open > a:focus {\n color: $navtopbar-color-hover;\n background-color: $navtopbar-bg-hover;\n .caret {\n border-top-color: $navtopbar-color-hover;\n border-bottom-color: $navtopbar-color-hover;\n }\n }\n & > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem.active a {\n color: $navtopbar-sub-color-active;\n background-color: $navtopbar-sub-bg-active;\n .caret {\n border-top-color: $navtopbar-sub-color-active;\n border-bottom-color: $navtopbar-sub-color-active;\n }\n }\n }\n @media (max-width: $screen-md) {\n ul.nav > li.mx-navbar-item > a {\n }\n .mx-navbar-item.open .dropdown-menu {\n background-color: $navtopbar-sub-bg;\n & > li.mx-navbar-subitem > a {\n color: $navtopbar-sub-color;\n font-size: $navtopbar-sub-font-size;\n &:hover,\n &:focus {\n color: $navtopbar-sub-color-hover;\n background-color: $navtopbar-sub-bg-hover;\n }\n &.active {\n color: $navtopbar-sub-color-active;\n background-color: $navtopbar-sub-bg-active;\n }\n }\n }\n }\n }\n}\n\n// When used in sidebar\n.region-sidebar {\n .mx-navbar {\n background-color: $navsidebar-bg;\n ul.nav {\n /* Navigation item */\n & > li.mx-navbar-item > a {\n color: $navsidebar-color;\n font-size: $navsidebar-font-size;\n\n /* Dropdown arrow */\n .caret {\n border-top-color: $navsidebar-color;\n border-bottom-color: $navsidebar-color;\n }\n &:hover,\n &:focus,\n &.active {\n color: $navsidebar-color-hover;\n background-color: $navsidebar-bg-hover;\n .caret {\n border-top-color: $navsidebar-color-active;\n border-bottom-color: $navsidebar-color-active;\n }\n }\n &.active {\n color: $navsidebar-color-active;\n background-color: $navsidebar-bg-active;\n }\n\n /* Dropdown */\n .mx-navbar-submenu::before {\n border-color: transparent transparent $navsidebar-border-color transparent;\n }\n\n // Image\n .glyphicon {\n font-size: $navsidebar-glyph-size;\n }\n }\n\n /* When hovering or the dropdown is open */\n & > .mx-navbar-item > a:hover,\n & > .mx-navbar-item > a:focus,\n & > .mx-navbar-item.active a,\n & > .mx-navbar-item.open > a,\n & > .mx-navbar-item.open > a:hover,\n & > .mx-navbar-item.open > a:focus {\n color: $navsidebar-color-hover;\n background-color: $navsidebar-bg-hover;\n .caret {\n border-top-color: $navsidebar-color-hover;\n border-bottom-color: $navsidebar-color-hover;\n }\n }\n & > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem.active a {\n color: $navsidebar-sub-color-active;\n background-color: $navsidebar-sub-bg-active;\n .caret {\n border-top-color: $navsidebar-sub-color-active;\n border-bottom-color: $navsidebar-sub-color-active;\n }\n }\n }\n @media (max-width: $screen-md) {\n ul.nav > li.mx-navbar-item > a {\n }\n .mx-navbar-item.open .dropdown-menu {\n background-color: $navtopbar-sub-bg;\n & > li.mx-navbar-subitem > a {\n color: $navsidebar-sub-color;\n font-size: $navsidebar-sub-font-size;\n &:hover,\n &:focus {\n color: $navsidebar-sub-color-hover;\n background-color: $navsidebar-sub-bg-hover;\n }\n &.active {\n color: $navsidebar-sub-color-active;\n background-color: $navsidebar-sub-bg-active;\n }\n }\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Navigation List\n \n Default Mendix Navigation List Widget. A navigation list can be used to attach an action to an entire row. Such a row is called a navigation list item\n========================================================================== */\n.mx-navigationlist {\n margin: 0;\n padding: 0;\n list-style: none;\n \n li.mx-navigationlist-item {\n @include transition();\n padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left;\n border-width: 1px;\n border-style: none none solid none;\n border-color: $grid-border-color;\n border-radius: 0;\n background-color: $grid-bg;\n\n &:hover,\n &:focus {\n color: inherit;\n background-color: $grid-bg-hover;\n }\n\n &.active {\n color: inherit;\n background-color: $grid-bg-selected;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Navigation\n\n Default Mendix Navigation Tree\n========================================================================== */\n.mx-navigationtree {\n background-color: $navigation-bg;\n\n /* Every navigation item */\n .navbar-inner > ul {\n margin: 0;\n padding-left: 0;\n & > li {\n padding: 0;\n border-style: none;\n & > a {\n display: flex;\n align-items: center;\n height: $navigation-item-height;\n padding: $navigation-item-padding;\n color: $navigation-color;\n border-bottom: 1px solid $navigation-border-color;\n border-radius: 0;\n background-color: $navigation-bg;\n text-shadow: none;\n font-size: $navigation-font-size;\n font-weight: $font-weight-normal;\n .caret {\n border-top-color: $navigation-color;\n border-bottom-color: $navigation-color;\n }\n img {\n width: 20px; // Default size\n height: auto;\n margin-right: 0.5em;\n }\n .glyphicon {\n top: 0;\n margin-right: 0.5em;\n vertical-align: middle;\n font-size: $navigation-glyph-size;\n }\n }\n a:hover,\n a:focus,\n a.active {\n text-decoration: none;\n color: $navigation-color-hover;\n background-color: $navigation-bg-hover;\n .caret {\n border-top-color: $navigation-color-active;\n border-bottom-color: $navigation-color-active;\n }\n }\n a.active {\n color: $navigation-color-active;\n border-left-color: $navigation-color-active;\n background-color: $navigation-bg-active;\n }\n }\n }\n\n /* Sub navigation item specific */\n li.mx-navigationtree-has-items {\n & > ul {\n margin: 0;\n padding-left: 0;\n background-color: $navigation-sub-bg;\n li {\n margin: 0;\n padding: 0;\n border: 0;\n a {\n padding: 12px 20px 12px 25px;\n text-decoration: none;\n color: $navigation-sub-color;\n border: 0;\n background-color: $navigation-sub-bg;\n text-shadow: none;\n font-size: $navigation-sub-font-size;\n font-weight: $font-weight-normal;\n\n &:hover,\n &:focus,\n &.active {\n color: $navigation-sub-color-hover;\n outline: 0;\n background-color: $navigation-sub-bg-hover;\n }\n &.active {\n color: $navigation-sub-color-active;\n border: 0;\n background-color: $navigation-sub-bg-active;\n }\n }\n }\n }\n }\n\n /* remove focus */\n &:focus {\n outline: 0;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Navigation\n\n//== Regions\n//## Behavior in the different regions\n========================================================================== */\n// When used in topbar\n.region-topbar {\n .mx-navigationtree {\n background-color: $navtopbar-bg;\n .navbar-inner > ul {\n & > li {\n & > a {\n color: $navtopbar-color;\n border-color: $navtopbar-border-color;\n background-color: $navtopbar-bg;\n font-size: $navtopbar-font-size;\n .caret {\n border-top-color: $navtopbar-color;\n border-bottom-color: $navtopbar-color;\n }\n\n .glyphicon {\n font-size: $navtopbar-glyph-size;\n }\n }\n a:hover,\n a:focus,\n a.active {\n color: $navtopbar-color-hover;\n background-color: $navtopbar-bg-hover;\n .caret {\n border-top-color: $navtopbar-color-active;\n border-bottom-color: $navtopbar-color-active;\n }\n }\n a.active {\n color: $navtopbar-color-active;\n border-left-color: $navtopbar-color-active;\n background-color: $navtopbar-bg-active;\n }\n }\n }\n\n /* Sub navigation item specific */\n li.mx-navigationtree-has-items {\n & > ul {\n background-color: $navtopbar-sub-bg;\n li {\n a {\n color: $navtopbar-sub-color;\n background-color: $navtopbar-sub-bg;\n font-size: $navtopbar-sub-font-size;\n &:hover,\n &:focus,\n &.active {\n color: $navtopbar-sub-color-hover;\n background-color: $navtopbar-sub-bg-hover;\n }\n &.active {\n color: $navtopbar-sub-color-active;\n background-color: $navtopbar-sub-bg-active;\n }\n }\n }\n }\n }\n }\n}\n\n// When used in sidebar\n.region-sidebar {\n .mx-navigationtree {\n background-color: $navsidebar-bg;\n .navbar-inner > ul {\n & > li {\n & > a {\n color: $navsidebar-color;\n border-color: $navsidebar-border-color;\n background-color: $navsidebar-bg;\n font-size: $navsidebar-font-size;\n .caret {\n border-top-color: $navsidebar-color;\n border-bottom-color: $navsidebar-color;\n }\n\n .glyphicon {\n font-size: $navsidebar-glyph-size;\n }\n }\n a:hover,\n a:focus,\n a.active {\n color: $navsidebar-color-hover;\n background-color: $navsidebar-bg-hover;\n .caret {\n border-top-color: $navsidebar-color-active;\n border-bottom-color: $navsidebar-color-active;\n }\n }\n a.active {\n color: $navsidebar-color-active;\n border-left-color: $navsidebar-color-active;\n background-color: $navsidebar-bg-active;\n }\n }\n }\n\n /* Sub navigation item specific */\n li.mx-navigationtree-has-items {\n & > ul {\n background-color: $navsidebar-sub-bg;\n li {\n a {\n color: $navsidebar-sub-color;\n background-color: $navsidebar-sub-bg;\n font-size: $navsidebar-sub-font-size;\n &:hover,\n &:focus,\n &.active {\n color: $navsidebar-sub-color-hover;\n background-color: $navsidebar-sub-bg-hover;\n }\n &.active {\n color: $navsidebar-sub-color-active;\n background-color: $navsidebar-sub-bg-active;\n }\n }\n }\n }\n }\n }\n}\n\n\n//== Design Properties\n//## Helper classes to change the look and feel of the component\n//-------------------------------------------------------------------------------------------------------------------//\n// Content Centerd text and icons\n.nav-content-center-text-icons.mx-navigationtree {\n .navbar-inner ul {\n a {\n flex-direction: column;\n justify-content: center;\n .glyphicon {\n margin: 0 0 5px 0;\n }\n }\n }\n}\n\n// Content Centerd icons only\n.nav-content-center.mx-navigationtree {\n .navbar-inner ul {\n a {\n justify-content: center;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Popup Menu\n\n Default Mendix Popup Menus\n========================================================================== */\n.popupmenu {\n position: relative;\n display: inline-flex;\n}\n\n.popupmenu-trigger {\n cursor: pointer;\n}\n\n.popupmenu-menu {\n position: absolute;\n z-index: 999;\n display: none;\n flex-direction: column;\n width: max-content;\n border-radius: 8px;\n background-color: $bg-color;\n box-shadow: 0 2px 20px 1px rgba(5, 15, 129, 0.05), 0 2px 16px 0 rgba(33, 43, 54, 0.08);\n\n &.popupmenu-position-left {\n top: 0;\n left: 0;\n transform: translateX(-100%);\n }\n\n &.popupmenu-position-right {\n top: 0;\n right: 0;\n transform: translateX(100%);\n }\n\n &.popupmenu-position-top {\n top: 0;\n transform: translateY(-100%);\n }\n\n &.popupmenu-position-bottom {\n bottom: 0;\n transform: translateY(100%);\n }\n\n .popupmenu-basic-item:first-child,\n .popupmenu-custom-item:first-child {\n border-top-left-radius: 8px;\n border-top-right-radius: 8px;\n }\n\n .popupmenu-basic-item:last-child,\n .popupmenu-custom-item:last-child {\n border-bottom-right-radius: 8px;\n border-bottom-left-radius: 8px;\n }\n}\n\n.popupmenu-basic-divider {\n width: 100%;\n height: 1px;\n background-color: $brand-default;\n}\n\n.popupmenu-basic-item {\n padding: 12px 16px;\n color: $font-color-default;\n font-size: 14px;\n\n &:hover,\n &:focus,\n &:active {\n cursor: pointer;\n border-color: $bg-color-secondary;\n background-color: $bg-color-secondary;\n }\n\n &-inverse {\n color: $brand-inverse;\n }\n\n &-primary {\n color: $brand-primary;\n }\n\n &-info {\n color: $brand-info;\n }\n\n &-success {\n color: $brand-success;\n }\n\n &-warning {\n color: $brand-warning;\n }\n\n &-danger {\n color: $brand-danger;\n }\n}\n\n.popupmenu-custom-item {\n &:hover,\n &:focus,\n &:active {\n cursor: pointer;\n border-color: $bg-color-secondary;\n background-color: $bg-color-secondary;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Navigation\n\n Default Mendix Simple Menu Bar\n========================================================================== */\n.mx-menubar {\n padding: 0;\n background-color: $navigation-bg;\n\n ul.mx-menubar-list {\n display: flex;\n width: 100%;\n min-height: 50px;\n\n li.mx-menubar-item {\n margin: 0;\n\n > a {\n display: flex;\n overflow: hidden;\n align-items: center;\n justify-content: center;\n height: 100%;\n padding: $navigation-item-padding;\n white-space: nowrap;\n color: $navigation-color;\n border-radius: 0;\n font-size: $navigation-font-size;\n font-weight: $font-weight-normal;\n\n img {\n margin-right: 0.5em;\n }\n\n .glyphicon {\n top: -1px;\n margin-right: 0.5em;\n vertical-align: middle;\n font-size: $navigation-glyph-size;\n }\n }\n\n a:hover,\n a:focus,\n &:hover a,\n &:focus a,\n &.active a {\n text-decoration: none;\n color: $navigation-color-hover;\n background-color: $navigation-bg-hover;\n }\n\n &.active a {\n color: $navigation-color-active;\n background-color: $navigation-bg-active;\n }\n }\n }\n\n /* remove focus */\n &:focus {\n outline: 0;\n }\n}\n\n// Vertical variation specifics\n.mx-menubar-vertical {\n background-color: $navigation-bg;\n\n ul.mx-menubar-list {\n display: flex;\n\n li.mx-menubar-item {\n display: block;\n\n a {\n border-bottom: 1px solid $navigation-border-color;\n }\n }\n }\n}\n\n// Horizontal variation specifics\n.mx-menubar-horizontal {\n box-shadow: 2px 0 4px 0 rgba(0, 0, 0, 0.14);\n\n ul.mx-menubar-list {\n li.mx-menubar-item {\n width: auto;\n\n a {\n width: 100%;\n }\n }\n }\n\n /* Two menu items */\n &.menubar-col-6 ul.mx-menubar-list li.mx-menubar-item {\n width: 50%;\n }\n\n /* Three menu items */\n &.menubar-col-4 ul.mx-menubar-list li.mx-menubar-item {\n width: 33.33333333%;\n }\n\n /* Four menu items */\n &.menubar-col-3 ul.mx-menubar-list li.mx-menubar-item {\n width: 25%;\n }\n\n /* Five menu items */\n &.menubar-col-2 ul.mx-menubar-list li.mx-menubar-item {\n width: 20%;\n }\n}\n\n//== Regions\n//## Behavior in the different regions\n//-------------------------------------------------------------------------------------------------------------------//\n// When used in topbar\n.region-topbar {\n .mx-menubar {\n background-color: $navtopbar-bg;\n\n ul.mx-menubar-list {\n li.mx-menubar-item {\n a {\n color: $navtopbar-color;\n font-size: $navtopbar-font-size;\n\n .glyphicon {\n font-size: $navtopbar-glyph-size;\n }\n }\n\n a:hover,\n a:focus,\n &:hover a,\n &:focus a,\n &.active a {\n color: $navtopbar-color-hover;\n background-color: $navtopbar-bg-hover;\n }\n\n &.active a {\n color: $navtopbar-color-active;\n background-color: $navtopbar-bg-active;\n }\n }\n }\n }\n\n // Vertical variation specifics\n .mx-menubar-vertical {\n background-color: $navtopbar-bg;\n\n ul.mx-menubar-list {\n li.mx-menubar-item {\n a {\n height: $navigation-item-height;\n border-color: $navtopbar-border-color;\n }\n }\n }\n }\n}\n\n// When used in sidebar\n.region-sidebar {\n .mx-menubar {\n background-color: $navsidebar-bg;\n\n ul.mx-menubar-list {\n li.mx-menubar-item {\n a {\n color: $navsidebar-color;\n font-size: $navsidebar-font-size;\n\n .glyphicon {\n font-size: $navsidebar-glyph-size;\n }\n }\n\n a:hover,\n a:focus,\n &:hover a,\n &:focus a,\n &.active a {\n color: $navsidebar-color-hover;\n background-color: $navsidebar-bg-hover;\n }\n\n &.active a {\n color: $navsidebar-color-active;\n background-color: $navsidebar-bg-active;\n }\n }\n }\n }\n\n // Vertical variation specifics\n .mx-menubar-vertical {\n background-color: $navsidebar-bg;\n\n ul.mx-menubar-list {\n li.mx-menubar-item {\n a {\n border-color: $navsidebar-border-color;\n }\n }\n }\n }\n}\n\n@supports (padding-bottom: env(safe-area-inset-bottom)) {\n .mx-menubar {\n padding-bottom: env(safe-area-inset-bottom);\n }\n}","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Navigation\n\n//== Design Properties\n//## Helper classes to change the look and feel of the component\n========================================================================== */\n// Center text and icons\n.bottom-nav-text-icons.mx-menubar {\n ul.mx-menubar-list {\n li.mx-menubar-item {\n a {\n flex-direction: column;\n padding: 8px 8px 6px 8px;\n line-height: normal;\n font-size: 11px;\n .glyphicon {\n display: block;\n margin: 0 0 5px 0;\n font-size: 18px;\n }\n img {\n display: block;\n height: 18px;\n margin: 0 0 5px 0;\n }\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Radio Buttons\n\n Default Mendix Radio Button Widget\n========================================================================== */\n.mx-radiobuttons.inline .mx-radiogroup {\n display: flex;\n flex-direction: row;\n\n .radio {\n margin: 0 20px 0 0;\n }\n}\n\n.mx-radiobuttons .radio:last-child {\n margin-bottom: 0;\n}\n\n.radio {\n display: flex !important; // Remove after mxui merge\n align-items: center;\n margin-top: 0;\n}\n\ninput[type='radio'] {\n position: relative !important; // Remove after mxui merge\n width: 16px;\n height: 16px;\n margin: 0;\n cursor: pointer;\n -moz-user-select: none;\n -ms-user-select: none;\n -o-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n\n &::-ms-check {\n color: $form-input-border-color;\n border-color: $form-input-border-color;\n background-color: $form-input-bg;\n }\n\n &:focus::-ms-check,\n &:checked::-ms-check {\n color: $form-input-border-focus-color;\n border-color: $form-input-border-focus-color;\n background-color: $form-input-bg-focus;\n }\n\n &:before,\n &:after {\n position: absolute;\n display: block;\n transition: all 0.3s ease-in-out;\n border-radius: 50%;\n }\n\n &:before {\n width: 100%;\n height: 100%;\n content: '';\n border: 1px solid $form-input-border-color;\n background-color: transparent;\n }\n\n &:after {\n top: 50%;\n left: 50%;\n width: 50%;\n height: 50%;\n transform: translate(-50%, -50%);\n pointer-events: none;\n background-color: $form-input-border-focus-color;\n }\n\n &:not(:checked):after {\n transform: translate(-50%, -50%) scale(0);\n opacity: 0;\n }\n\n &:not(:disabled):not(:checked):hover:after {\n background-color: $form-input-bg-hover;\n }\n\n &:checked:after,\n &:not(:disabled):not(:checked):hover:after {\n content: '';\n transform: translate(-50%, -50%) scale(1);\n opacity: 1;\n }\n\n &:checked:before {\n border-color: $form-input-border-focus-color;\n background-color: $form-input-bg;\n }\n\n &:disabled:before {\n background-color: $form-input-bg-disabled;\n }\n\n &:checked:disabled:before {\n border-color: rgba($form-input-border-focus-color, 0.4);\n }\n\n &:checked:disabled:after {\n background-color: rgba($form-input-border-focus-color, 0.4);\n }\n\n & + label {\n margin-left: $form-label-gutter;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Tab Container\n\n Default Mendix Tab Container Widget. Tab containers are used to show information categorized into multiple tab pages.\n This can be very useful if the amount of information that has to be displayed is larger than the amount of space on the screen\n========================================================================== */\n\n.mx-tabcontainer {\n .mx-tabcontainer-tabs {\n margin-bottom: 20px;\n border-color: $tabs-border-color;\n & > li > a {\n margin-right: 0;\n -webkit-transition: all 0.2s ease-in-out;\n -moz-transition: all 0.2s ease-in-out;\n -o-transition: all 0.2s ease-in-out;\n transition: all 0.2s ease-in-out;\n color: $tabs-color;\n font-weight: $font-weight-normal;\n &:hover,\n &:focus {\n background-color: $tabs-bg-hover;\n }\n }\n & > li.active > a,\n & > li.active > a:hover,\n & > li.active > a:focus {\n color: $tabs-color-active;\n border: 1px solid $tabs-border-color;\n border-bottom-color: transparent;\n background-color: $tabs-bg;\n }\n }\n}\n\n// Tab Styling Specific for mobile\n.tab-mobile.mx-tabcontainer {\n & > .mx-tabcontainer-tabs {\n margin: 0;\n text-align: center;\n border-style: none;\n background-color: $brand-primary;\n li {\n display: table-cell;\n float: none;\n width: 1%;\n margin: 0;\n text-align: center;\n border-style: none;\n border-radius: 0;\n a {\n padding: 15px;\n text-transform: uppercase;\n color: #FFFFFF;\n border-width: 0 1px 0 0;\n border-style: solid;\n border-color: rgba(255, 255, 255, 0.3);\n border-radius: 0;\n font-size: 12px;\n font-weight: $font-weight-normal;\n &:hover,\n &:focus {\n background-color: inherit;\n }\n }\n &:last-child a {\n border-right: none;\n }\n &.active > a,\n &.active > a:hover,\n &.active > a:focus {\n color: #FFFFFF;\n border-style: none;\n border-radius: 0;\n background-color: mix($brand-primary, #000000, 80%);\n }\n }\n }\n}\n\n.mx-tabcontainer-badge {\n margin-left: 8px;\n border-radius: $font-size-small;\n background-color: $label-primary-bg;\n color: $label-primary-color;\n font-size: $font-size-small;\n font-weight: $font-weight-bold;\n line-height: 1;\n padding: 3px 7px;\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Tab Container\n\n//== Design Properties\n//## Helper classes to change the look and feel of the component\n========================================================================== */\n// Style as pills\n.tab-pills.mx-tabcontainer {\n & > .mx-tabcontainer-tabs {\n border: 0;\n & > li > a {\n margin-right: 2px;\n color: $tabs-color;\n border: 1px solid $tabs-border-color;\n border-radius: 4px;\n &:hover,\n &:focus {\n background-color: $tabs-bg-hover;\n }\n }\n & > li.active > a,\n & > li.active > a:hover,\n & > li.active > a:focus {\n color: #FFFFFF;\n border-color: $tabs-bg-active;\n background-color: $tabs-bg-active;\n }\n }\n}\n\n// Style with lines\n.tab-lined.mx-tabcontainer {\n & > .mx-tabcontainer-tabs {\n border-width: 3px;\n li {\n margin-right: 30px;\n margin-bottom: -3px;\n & > a {\n padding: 10px 0;\n color: $tabs-color;\n border: 0;\n border-style: solid;\n border-color: transparent;\n border-bottom-width: 3px;\n border-radius: 0;\n &:hover,\n &:focus {\n color: $tabs-color;\n border: 0;\n border-color: transparent;\n background: transparent;\n }\n }\n &.active > a,\n &.active > a:hover,\n &.active > a:focus {\n color: $tabs-lined-color-active;\n border: 0;\n border-bottom: 3px solid $tabs-lined-border-color;\n background-color: transparent;\n }\n }\n }\n}\n\n// Justified style\n// Lets your tabs take 100% of the width\n.tab-justified.mx-tabcontainer {\n & > .mx-tabcontainer-tabs {\n width: 100%;\n border-bottom: 0;\n & > li {\n display: table-cell;\n float: none;\n width: 1%;\n margin: 0;\n @media (max-width: $screen-sm-max) {\n display: block;\n width: 100%;\n }\n & > a {\n text-align: center;\n border-bottom: 1px solid $tabs-border-color;\n }\n }\n & > li.active > a {\n border-bottom-color: transparent;\n border-radius: 4px;\n @media (max-width: $screen-sm-max) {\n border-bottom-color: $tabs-border-color;\n }\n }\n }\n}\n\n// Bordered\n.tab-bordered.mx-tabcontainer {\n & > .mx-tabcontainer-tabs {\n margin: 0;\n }\n & > .mx-tabcontainer-content {\n padding: 10px;\n border-width: 0 1px 1px 1px;\n border-style: solid;\n border-color: $tabs-border-color;\n background-color: #FFFFFF;\n }\n}\n\n// Wizard\n.tab-wizard.mx-tabcontainer {\n & > .mx-tabcontainer-tabs {\n position: relative;\n display: flex;\n justify-content: space-between;\n border-style: none;\n\n &::before {\n position: absolute;\n top: 16px;\n display: block;\n width: 100%;\n height: 1px;\n content: \"\";\n background-color: $tabs-border-color;\n }\n & > li {\n position: relative;\n float: none;\n width: 100%;\n text-align: center;\n & > a {\n width: 33px;\n height: 33px;\n margin: auto;\n padding: 0;\n text-align: center;\n color: $brand-default;\n border: 1px solid $tabs-border-color;\n border-radius: 100%;\n background-color: #FFFFFF;\n font-size: 18px;\n font-weight: bold;\n line-height: 33px;\n }\n &.active {\n & > a,\n & > a:hover,\n & > a:focus {\n color: #FFFFFF;\n border-color: $tabs-bg-active;\n background-color: $tabs-bg-active;\n }\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Tables\n\n Default Mendix Table Widget. Tables can be used to lend structure to a page. They contain a number of rows (tr) and columns, the intersection of which is called a cell (td). Each cell can contain widgets\n========================================================================== */\n\nth {\n font-weight: $font-weight-bold;\n}\n\nhtml body .mx-page table.mx-table {\n th,\n td {\n &.nopadding {\n padding: 0;\n }\n }\n}\n\ntable.mx-table {\n > tbody {\n /* Table row */\n > tr {\n /* Table header */\n > th {\n padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom $padding-table-cell-left;s\n * {\n color: $form-label-color;\n font-weight: $font-weight-bold;\n font-weight: $form-label-weight;\n }\n > label {\n padding-top: 7px;\n padding-bottom: 6px; // Aligns label in the middle if there is no input field next to it.\n }\n }\n /* Table cells */\n > td {\n padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom $padding-table-cell-left;\n > div > label,\n .mx-referenceselector-input-wrapper label {\n padding-top: 7px;\n padding-bottom: 6px; // Aligns label in the middle if there is no input field next to it.\n }\n }\n }\n }\n}\n\n// Default Mendix Table Widget inside TemplateGrid\n.mx-templategrid table.mx-table {\n > tbody {\n > tr {\n > th,\n > td {\n padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom $padding-table-cell-left;\n }\n }\n }\n}\n\n// Default Mendix Table Widget inside Listview\n.mx-list table.mx-table {\n > tbody {\n > tr {\n > th,\n > td {\n padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom $padding-table-cell-left;\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Tables\n\n//== Design Properties\n//## Helper classes to change the look and feel of the component\n========================================================================== */\n// Lined\ntable.table-lined.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > td {\n border-width: 1px 0;\n border-style: solid;\n border-color: $grid-border-color;\n }\n }\n }\n}\n\n// Bordered\ntable.table-bordered.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > th,\n > td {\n border-width: 1px;\n border-style: solid;\n border-color: $grid-border-color;\n }\n }\n }\n}\n\n// Makes table compact\ntable.table-compact.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > th,\n > td {\n padding-top: 2px;\n padding-bottom: 2px;\n }\n }\n }\n}\n\n// Remove padding on sides\ntable.table-sideless.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > td,\n > th {\n padding-right: 0;\n }\n > th:first-child,\n > td:first-child {\n padding-left: 0;\n }\n }\n }\n}\n\n// Remove all padding\ntable.table-spaceless.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > th,\n > td {\n padding: 0;\n }\n }\n }\n}\n\n// Tables Vertical\n// Will remove unwanted paddings\ntable.table-vertical.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n > th {\n padding-bottom: 0;\n > label {\n padding: 0;\n }\n > div > label {\n padding: 0;\n }\n }\n }\n }\n}\n\n// Align content in middle\ntable.table-align-vertical-middle.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > th,\n > td {\n vertical-align: middle;\n }\n }\n }\n}\n\n// Compact labels\ntable.table-label-compact.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > th,\n > td {\n > label {\n margin: 0;\n padding: 0;\n }\n > div > label,\n .mx-referenceselector-input-wrapper label {\n margin: 0;\n padding: 0;\n }\n }\n }\n }\n}\n\n$height-row-s: 55px;\n$height-row-m: 70px;\n$height-row-l: 120px;\n// Small rows\ntable.table-row-s.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > th,\n > td {\n height: $height-row-s;\n }\n }\n }\n}\n\n// Medium rows\ntable.table-row-m.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > th,\n > td {\n height: $height-row-m;\n }\n }\n }\n}\n\n// Large rows\ntable.table-row-l.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > th,\n > td {\n height: $height-row-l;\n }\n }\n }\n}\n\n// Makes the columns fixed\ntable.table-fixed {\n table-layout: fixed;\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Templategrid\n\n Default Mendix Templategrid Widget. The template grid shows a list of objects in a tile view. For example, a template grid can show a list of products. The template grid has a lot in common with the data grid. The main difference is that the objects are shown in templates (a sort of small data view) instead of rows\n========================================================================== */\n\n.mx-templategrid {\n .mx-templategrid-content-wrapper {\n table-layout: fixed;\n }\n .mx-templategrid-item {\n padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left;\n cursor: default;\n background-color: $grid-bg;\n &:hover {\n background-color: transparent;\n }\n &.selected {\n background-color: $grid-bg-selected !important;\n }\n }\n .mx-layoutgrid {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n}","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Templategrid\n\n//== Design Properties\n//## Helper classes to change the look and feel of the component\n========================================================================== */\n// Make sure your content looks selectable\n.templategrid-selectable.mx-templategrid {\n .mx-templategrid-item {\n cursor: pointer;\n }\n}\n\n// Lined\n.templategrid-lined.mx-templategrid {\n .mx-grid-content {\n border-top-width: 2px;\n border-top-style: solid;\n border-top-color: $grid-border-color;\n }\n\n .mx-templategrid-item {\n border-top: 1px solid $grid-border-color;\n border-right: none;\n border-bottom: 1px solid $grid-border-color;\n border-left: none;\n }\n}\n\n// Striped\n.templategrid-striped.mx-templategrid {\n .mx-templategrid-row:nth-child(odd) .mx-templategrid-item {\n background-color: #F9F9F9;\n }\n}\n\n// Stylingless\n.templategrid-stylingless.mx-templategrid {\n .mx-templategrid-item {\n padding: 0;\n cursor: default;\n border: 0;\n background-color: transparent;\n\n &:hover {\n background-color: transparent;\n }\n\n &.selected {\n background-color: transparent !important;\n\n &:hover {\n background-color: transparent !important;\n }\n }\n }\n}\n\n// Transparent items\n.templategrid-transparent.mx-templategrid {\n .mx-templategrid-item {\n border: 0;\n background-color: transparent;\n }\n}\n\n// Hover\n.templategrid-hover.mx-templategrid {\n .mx-templategrid-item {\n &:hover {\n background-color: $grid-bg-hover !important;\n }\n\n &.selected {\n background-color: $grid-bg-selected !important;\n\n &:hover {\n background-color: $grid-bg-selected-hover !important;\n }\n }\n }\n}\n\n// Templategrid Row Sizes\n.templategrid-lg.mx-templategrid {\n .mx-templategrid-item {\n padding: ($grid-padding-top * 2) ($grid-padding-right * 2) ($grid-padding-bottom * 2) ($grid-padding-left * 2);\n }\n}\n\n.templategrid-sm.mx-templategrid {\n .mx-templategrid-item {\n padding: ($grid-padding-top / 2) ($grid-padding-right / 2) ($grid-padding-bottom / 2) ($grid-padding-left / 2);\n }\n}\n\n// Templategrid Layoutgrid styles\n.mx-templategrid[class*=\"tg-col\"] {\n overflow: hidden; // For if it is not in a layout, to prevent scrollbars\n .mx-templategrid-content-wrapper {\n display: block;\n }\n\n .mx-templategrid-row {\n display: block;\n margin-right: -1 * $gutter-size;\n margin-left: -1 * $gutter-size;\n\n &::before,\n &::after {\n // clearfix\n display: table;\n clear: both;\n content: \" \";\n }\n }\n\n .mx-templategrid-item {\n // bootstrap col\n position: relative;\n display: block;\n float: left;\n min-height: 1px;\n padding-right: $gutter-size;\n padding-left: $gutter-size;\n border: 0;\n @media (max-width: 992px) {\n width: 100% !important;\n }\n\n .mx-dataview {\n overflow: hidden;\n }\n }\n\n &.tg-col-xs-12 .mx-templategrid-item {\n width: 100% !important;\n }\n\n &.tg-col-xs-11 .mx-templategrid-item {\n width: 91.66666667% !important;\n }\n\n &.tg-col-xs-10 .mx-templategrid-item {\n width: 83.33333333% !important;\n }\n\n &.tg-col-xs-9 .mx-templategrid-item {\n width: 75% !important;\n }\n\n &.tg-col-xs-8 .mx-templategrid-item {\n width: 66.66666667% !important;\n }\n\n &.tg-col-xs-7 .mx-templategrid-item {\n width: 58.33333333% !important;\n }\n\n &.tg-col-xs-6 .mx-templategrid-item {\n width: 50% !important;\n }\n\n &.tg-col-xs-5 .mx-templategrid-item {\n width: 41.66666667% !important;\n }\n\n &.tg-col-xs-4 .mx-templategrid-item {\n width: 33.33333333% !important;\n }\n\n &.tg-col-xs-3 .mx-templategrid-item {\n width: 25% !important;\n }\n\n &.tg-col-xs-2 .mx-templategrid-item {\n width: 16.66666667% !important;\n }\n\n &.tg-col-xs-1 .mx-templategrid-item {\n width: 8.33333333% !important;\n }\n\n @media (min-width: 768px) {\n &.tg-col-sm-12 .mx-templategrid-item {\n width: 100% !important;\n }\n &.tg-col-sm-11 .mx-templategrid-item {\n width: 91.66666667% !important;\n }\n &.tg-col-sm-10 .mx-templategrid-item {\n width: 83.33333333% !important;\n }\n &.tg-col-sm-9 .mx-templategrid-item {\n width: 75% !important;\n }\n &.tg-col-sm-8 .mx-templategrid-item {\n width: 66.66666667% !important;\n }\n &.tg-col-sm-7 .mx-templategrid-item {\n width: 58.33333333% !important;\n }\n &.tg-col-sm-6 .mx-templategrid-item {\n width: 50% !important;\n }\n &.tg-col-sm-5 .mx-templategrid-item {\n width: 41.66666667% !important;\n }\n &.tg-col-sm-4 .mx-templategrid-item {\n width: 33.33333333% !important;\n }\n &.tg-col-sm-3 .mx-templategrid-item {\n width: 25% !important;\n }\n &.tg-col-sm-2 .mx-templategrid-item {\n width: 16.66666667% !important;\n }\n &.tg-col-sm-1 .mx-templategrid-item {\n width: 8.33333333% !important;\n }\n }\n @media (min-width: 992px) {\n &.tg-col-md-12 .mx-templategrid-item {\n width: 100% !important;\n }\n &.tg-col-md-11 .mx-templategrid-item {\n width: 91.66666667% !important;\n }\n &.tg-col-md-10 .mx-templategrid-item {\n width: 83.33333333% !important;\n }\n &.tg-col-md-9 .mx-templategrid-item {\n width: 75% !important;\n }\n &.tg-col-md-8 .mx-templategrid-item {\n width: 66.66666667% !important;\n }\n &.tg-col-md-7 .mx-templategrid-item {\n width: 58.33333333% !important;\n }\n &.tg-col-md-6 .mx-templategrid-item {\n width: 50% !important;\n }\n &.tg-col-md-5 .mx-templategrid-item {\n width: 41.66666667% !important;\n }\n &.tg-col-md-4 .mx-templategrid-item {\n width: 33.33333333% !important;\n }\n &.tg-col-md-3 .mx-templategrid-item {\n width: 25% !important;\n }\n &.tg-col-md-2 .mx-templategrid-item {\n width: 16.66666667% !important;\n }\n &.tg-col-md-1 .mx-templategrid-item {\n width: 8.33333333% !important;\n }\n }\n @media (min-width: 1200px) {\n &.tg-col-lg-12 .mx-templategrid-item {\n width: 100% !important;\n }\n &.tg-col-lg-11 .mx-templategrid-item {\n width: 91.66666667% !important;\n }\n &.tg-col-lg-10 .mx-templategrid-item {\n width: 83.33333333% !important;\n }\n &.tg-col-lg-9 .mx-templategrid-item {\n width: 75% !important;\n }\n &.tg-col-lg-8 .mx-templategrid-item {\n width: 66.66666667% !important;\n }\n &.tg-col-lg-7 .mx-templategrid-item {\n width: 58.33333333% !important;\n }\n &.tg-col-lg-6 .mx-templategrid-item {\n width: 50% !important;\n }\n &.tg-col-lg-5 .mx-templategrid-item {\n width: 41.66666667% !important;\n }\n &.tg-col-lg-4 .mx-templategrid-item {\n width: 33.33333333% !important;\n }\n &.tg-col-lg-3 .mx-templategrid-item {\n width: 25% !important;\n }\n &.tg-col-lg-2 .mx-templategrid-item {\n width: 16.66666667% !important;\n }\n &.tg-col-lg-1 .mx-templategrid-item {\n width: 8.33333333% !important;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Typography\n========================================================================== */\n\np {\n line-height: $line-height-base * 1.25;\n}\n\nlabel {\n padding-top: 0;\n}\n\n.mx-title {\n margin: $font-header-margin;\n color: $font-color-header;\n font-size: $font-size-h1;\n font-weight: $font-weight-header;\n}\n\nh1,\n.h1,\n.h1 > * {\n font-size: $font-size-h1;\n}\n\nh2,\n.h2,\n.h2 > * {\n font-size: $font-size-h2;\n}\n\nh3,\n.h3,\n.h3 > * {\n font-size: $font-size-h3;\n}\n\nh4,\n.h4,\n.h4 > * {\n font-size: $font-size-h4;\n}\n\nh5,\n.h5,\n.h5 > * {\n font-size: $font-size-h5;\n}\n\nh6,\n.h6,\n.h6 > * {\n font-size: $font-size-h6;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6 {\n margin: $font-header-margin;\n color: $font-color-header;\n font-weight: $font-weight-header;\n line-height: 1.3;\n}","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Typography\n\n//== Design Properties\n//## Helper classes to change the look and feel of the component\n========================================================================== */\n// Text size\n.text-small {\n font-size: $font-size-small !important;\n}\n\n.text-large {\n font-size: $font-size-large !important;\n}\n\n// Text Weights\n.text-light,\n.text-light > *,\n.text-light label {\n font-weight: $font-weight-light !important;\n}\n\n.text-normal,\n.text-normal > *,\n.text-normal label {\n font-weight: $font-weight-normal !important;\n}\n\n.text-semibold,\n.text-semibold > *,\n.text-semibold label {\n font-weight: $font-weight-semibold !important;\n}\n\n.text-bold,\n.text-bold > *,\n.text-bold label {\n font-weight: $font-weight-bold !important;\n}\n\n// Color variations\n.text-default,\n.text-default:hover {\n color: $font-color-default !important;\n}\n\n.text-primary,\n.text-primary:hover {\n color: $brand-primary !important;\n}\n\n.text-info,\n.text-info:hover {\n color: $brand-info !important;\n}\n\n.text-success,\n.text-success:hover {\n color: $brand-success !important;\n}\n\n.text-warning,\n.text-warning:hover {\n color: $brand-warning !important;\n}\n\n.text-danger,\n.text-danger:hover {\n color: $brand-danger !important;\n}\n\n.text-header {\n color: $font-color-header !important;\n}\n\n.text-detail {\n color: $font-color-detail !important;\n}\n\n.text-white {\n color: #ffffff;\n}\n\n// Alignment options\n.text-left {\n text-align: left !important;\n}\n.text-center {\n text-align: center !important;\n}\n.text-right {\n text-align: right !important;\n}\n.text-justify {\n text-align: justify !important;\n}\n\n// Transform options\n.text-lowercase {\n text-transform: lowercase !important;\n}\n.text-uppercase {\n text-transform: uppercase !important;\n}\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n// Wrap options\n.text-break {\n word-break: break-all !important;\n word-break: break-word !important;\n -ms-word-break: break-all !important;\n -webkit-hyphens: auto !important;\n -moz-hyphens: auto !important;\n hyphens: auto !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-nowrap {\n overflow: hidden !important;\n max-width: 100% !important;\n white-space: nowrap !important;\n text-overflow: ellipsis !important;\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Layout Grid\n\n Default Bootstrap containers\n========================================================================== */\n.mx-layoutgrid {\n width: 100%;\n margin-right: auto;\n margin-left: auto;\n padding-right: $gutter-size;\n padding-left: $gutter-size;\n}\n\n// Row\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter-size;\n margin-left: -$gutter-size;\n\n &::before,\n &::after {\n content: normal;\n }\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n// Columns\n.col-1,\n.col-2,\n.col-3,\n.col-4,\n.col-5,\n.col-6,\n.col-7,\n.col-8,\n.col-9,\n.col-10,\n.col-11,\n.col-12,\n.col,\n.col-auto,\n.col-sm-1,\n.col-sm-2,\n.col-sm-3,\n.col-sm-4,\n.col-sm-5,\n.col-sm-6,\n.col-sm-7,\n.col-sm-8,\n.col-sm-9,\n.col-sm-10,\n.col-sm-11,\n.col-sm-12,\n.col-sm,\n.col-sm-auto,\n.col-md-1,\n.col-md-2,\n.col-md-3,\n.col-md-4,\n.col-md-5,\n.col-md-6,\n.col-md-7,\n.col-md-8,\n.col-md-9,\n.col-md-10,\n.col-md-11,\n.col-md-12,\n.col-md,\n.col-md-auto,\n.col-lg-1,\n.col-lg-2,\n.col-lg-3,\n.col-lg-4,\n.col-lg-5,\n.col-lg-6,\n.col-lg-7,\n.col-lg-8,\n.col-lg-9,\n.col-lg-10,\n.col-lg-11,\n.col-lg-12,\n.col-lg,\n.col-lg-auto,\n.col-xl-1,\n.col-xl-2,\n.col-xl-3,\n.col-xl-4,\n.col-xl-5,\n.col-xl-6,\n.col-xl-7,\n.col-xl-8,\n.col-xl-9,\n.col-xl-10,\n.col-xl-11,\n.col-xl-12,\n.col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: $gutter-size;\n padding-left: $gutter-size;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n order: -1;\n}\n\n.order-last {\n order: 13;\n}\n\n.order-0 {\n order: 0;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n.offset-1,\n.col-offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2,\n.col-offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3,\n.col-offset-3 {\n margin-left: 25%;\n}\n\n.offset-4,\n.col-offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5,\n.col-offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6,\n.col-offset-6 {\n margin-left: 50%;\n}\n\n.offset-7,\n.col-offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8,\n.col-offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9,\n.col-offset-9 {\n margin-left: 75%;\n}\n\n.offset-10,\n.col-offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11,\n.col-offset-11 {\n margin-left: 91.666667%;\n}\n\n// Responsiveness\n@media (min-width: $screen-sm) {\n .mx-layoutgrid-fixed {\n max-width: 540px;\n }\n}\n\n@media (min-width: $screen-md) {\n .mx-layoutgrid-fixed {\n max-width: 720px;\n }\n}\n\n@media (min-width: $screen-lg) {\n .mx-layoutgrid-fixed {\n max-width: 960px;\n }\n}\n\n@media (min-width: $screen-xl) {\n .mx-layoutgrid-fixed {\n max-width: 1140px;\n }\n}\n\n@media (min-width: $screen-sm) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0,\n .col-sm-offset-0 {\n margin-left: 0;\n }\n .offset-sm-1,\n .col-sm-offset-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2,\n .col-sm-offset-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3,\n .col-sm-offset-3 {\n margin-left: 25%;\n }\n .offset-sm-4,\n .col-sm-offset-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5,\n .col-sm-offset-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6,\n .col-sm-offset-6 {\n margin-left: 50%;\n }\n .offset-sm-7,\n .col-sm-offset-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8,\n .col-sm-offset-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9,\n .col-sm-offset-9 {\n margin-left: 75%;\n }\n .offset-sm-10,\n .col-sm-offset-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11,\n .col-sm-offset-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: $screen-md) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0,\n .col-md-offset-0 {\n margin-left: 0;\n }\n .offset-md-1,\n .col-md-offset-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2,\n .col-md-offset-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3,\n .col-md-offset-3 {\n margin-left: 25%;\n }\n .offset-md-4,\n .col-md-offset-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5,\n .col-md-offset-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6,\n .col-md-offset-6 {\n margin-left: 50%;\n }\n .offset-md-7,\n .col-md-offset-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8,\n .col-md-offset-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9,\n .col-md-offset-9 {\n margin-left: 75%;\n }\n .offset-md-10,\n .col-md-offset-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11,\n .col-md-offset-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: $screen-lg) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0,\n .col-lg-offset-0 {\n margin-left: 0;\n }\n .offset-lg-1,\n .col-lg-offset-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2,\n .col-lg-offset-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3,\n .col-lg-offset-3 {\n margin-left: 25%;\n }\n .offset-lg-4,\n .col-lg-offset-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5,\n .col-lg-offset-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6,\n .col-lg-offset-6 {\n margin-left: 50%;\n }\n .offset-lg-7,\n .col-lg-offset-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8,\n .col-lg-offset-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9,\n .col-lg-offset-9 {\n margin-left: 75%;\n }\n .offset-lg-10,\n .col-lg-offset-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11,\n .col-lg-offset-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: $screen-xl) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0,\n .col-xl-offset-0 {\n margin-left: 0;\n }\n .offset-xl-1,\n .col-xl-offset-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2,\n .col-xl-offset-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3,\n .col-xl-offset-3 {\n margin-left: 25%;\n }\n .offset-xl-4,\n .col-xl-offset-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5,\n .col-xl-offset-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6,\n .col-xl-offset-6 {\n margin-left: 50%;\n }\n .offset-xl-7,\n .col-xl-offset-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8,\n .col-xl-offset-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9,\n .col-xl-offset-9 {\n margin-left: 75%;\n }\n .offset-xl-10,\n .col-xl-offset-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11,\n .col-xl-offset-11 {\n margin-left: 91.666667%;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Progress\n\n Default Mendix Progress Widget.\n========================================================================== */\n\n.mx-progress {\n color: $font-color-default;\n background: $bg-color-secondary;\n\n .mx-progress-message {\n color: $font-color-default;\n }\n\n .mx-progress-indicator {\n position: relative;\n overflow: hidden;\n width: 100%;\n max-width: 100%;\n height: 2px;\n margin: auto;\n padding: 0;\n border-radius: 0;\n background: $gray-lighter;\n\n &:before,\n &:after {\n position: absolute;\n top: 0;\n left: 0;\n display: block;\n width: 50%;\n height: 2px;\n content: \"\";\n transform: translate3d(-100%, 0, 0);\n background: $brand-primary;\n }\n\n &::before {\n animation: loader 2s infinite;\n }\n\n &::after {\n animation: loader 2s -2s infinite;\n }\n }\n}\n\n\n@keyframes loader {\n 0% {\n transform: translate3d(-100%, 0, 0);\n }\n 100% {\n transform: translate3d(200%, 0, 0);\n }\n}\n",".widget-timeline-date-header {\n display: inline-block;\n width: 110px;\n overflow-wrap: break-word;\n padding: 8px;\n text-align: center;\n border: 1px solid $timeline-border-color;\n border-radius: 30px;\n}\n\n.widget-timeline-events-wrapper {\n display: flex;\n flex: 1;\n margin-left: 55px;\n padding-top: 35px;\n\n ul {\n padding: 0;\n list-style: none;\n margin-bottom: 0;\n }\n}\n\n.widget-timeline-title {\n color: $timeline-color-header;\n font-weight: 600;\n margin: 0 0 10px 0;\n}\n\n.widget-timeline-description {\n color: $timeline-color-detail;\n}\n\n.widget-timeline-event {\n position: relative;\n margin-left: $timeline-icon-size / 2;\n padding-left: $spacing-large;\n padding-bottom: 20px;\n\n &:not(:last-of-type) {\n border-left: 1px solid $timeline-border-color;\n }\n\n &.clickable {\n cursor: pointer;\n transition: background 0.8s;\n\n &:hover {\n .widget-timeline-title {\n color: #dadcde;\n }\n }\n }\n}\n\n.widget-timeline-icon-wrapper {\n position: absolute;\n top: 0;\n left: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n width: $timeline-icon-size;\n height: $timeline-icon-size;\n transform: translateX(-50%);\n\n .glyphicon {\n font-size: $timeline-icon-size;\n }\n\n img {\n max-width: $timeline-icon-size;\n max-height: $timeline-icon-size;\n }\n}\n\n.widget-timeline-content-wrapper {\n .widget-timeline-date-time-wrapper {\n margin-right: 15px;\n }\n\n .widget-timeline-info-wrapper {\n flex-direction: column;\n }\n}\n\n.widget-timeline-icon-circle {\n width: 18px;\n height: 18px;\n border-radius: 50%;\n background-color: $timeline-icon-color;\n}\n\n.widget-timeline-no-divider {\n padding-bottom: 0;\n padding-top: 0;\n margin-left: 0;\n}\n\n.widget-timeline-flex-container {\n display: flex;\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Helpers\n\n Default Mendix Helpers\n========================================================================== */\n$important-helpers-value: if($important-helpers, ' !important', '');\n\n// Display properties\n.d-none {\n display: none #{$important-helpers-value};\n}\n\n.d-flex {\n display: flex #{$important-helpers-value};\n}\n\n.d-inline-flex {\n display: inline-flex #{$important-helpers-value};\n}\n\n.d-inline {\n display: inline #{$important-helpers-value};\n}\n\n.d-inline-block {\n display: inline-block #{$important-helpers-value};\n}\n\n.show,\n.d-block {\n display: block #{$important-helpers-value};\n}\n\n.table,\n.d-table {\n display: table #{$important-helpers-value};\n}\n\n.table-row,\n.d-table-row {\n display: table-row #{$important-helpers-value};\n}\n\n.table-cell,\n.d-table-cell {\n display: table-cell #{$important-helpers-value};\n}\n\n.hide,\n.hidden {\n display: none #{$important-helpers-value};\n visibility: hidden #{$important-helpers-value};\n}\n\n.invisible {\n visibility: hidden #{$important-helpers-value};\n}\n\n.display-ie8-only:not([attr*=\"\"]) {\n display: none #{$important-helpers-value};\n padding: 0 #{$important-helpers-value};\n}\n\n.list-nostyle {\n ul {\n margin: 0 #{$important-helpers-value};\n padding: 0 #{$important-helpers-value};\n\n li {\n list-style-type: none #{$important-helpers-value};\n }\n }\n}\n\n.nowrap,\n.nowrap * {\n overflow: hidden #{$important-helpers-value};\n // Star for inside an element, IE8 span > a\n white-space: nowrap #{$important-helpers-value};\n text-overflow: ellipsis #{$important-helpers-value};\n}\n\n// Render DIV as Table Cells\n.table {\n display: table #{$important-helpers-value};\n}\n\n.table-row {\n display: table-row #{$important-helpers-value};\n}\n\n.table-cell {\n display: table-cell #{$important-helpers-value};\n}\n\n// Quick floats\n.pull-left {\n float: left #{$important-helpers-value};\n}\n\n.pull-right {\n float: right #{$important-helpers-value};\n}\n\n// Align options\n.align-top {\n vertical-align: top #{$important-helpers-value};\n}\n\n.align-middle {\n vertical-align: middle #{$important-helpers-value};\n}\n\n.align-bottom {\n vertical-align: bottom #{$important-helpers-value};\n}\n\n// Flex alignments\n.row-left {\n display: flex #{$important-helpers-value};\n align-items: center #{$important-helpers-value};\n flex-flow: row #{$important-helpers-value};\n justify-content: flex-start #{$important-helpers-value};\n}\n\n.row-center {\n display: flex #{$important-helpers-value};\n align-items: center #{$important-helpers-value};\n flex-flow: row #{$important-helpers-value};\n justify-content: center #{$important-helpers-value};\n}\n\n.row-right {\n display: flex #{$important-helpers-value};\n align-items: center #{$important-helpers-value};\n flex-flow: row #{$important-helpers-value};\n justify-content: flex-end #{$important-helpers-value};\n}\n\n.col-left {\n display: flex #{$important-helpers-value};\n align-items: flex-start #{$important-helpers-value};\n flex-direction: column #{$important-helpers-value};\n justify-content: center #{$important-helpers-value};\n}\n\n.col-center {\n display: flex #{$important-helpers-value};\n align-items: center #{$important-helpers-value};\n flex-direction: column #{$important-helpers-value};\n justify-content: center #{$important-helpers-value};\n}\n\n.col-right {\n display: flex #{$important-helpers-value};\n align-items: flex-end #{$important-helpers-value};\n flex-direction: column #{$important-helpers-value};\n justify-content: center #{$important-helpers-value};\n}\n\n// Media\n@media (max-width: $screen-sm-max) {\n .hide-phone {\n display: none #{$important-helpers-value};\n }\n}\n\n@media (min-width: $screen-md) and (max-width: $screen-md-max) {\n .hide-tablet {\n display: none #{$important-helpers-value};\n }\n}\n\n@media (min-width: $screen-lg) {\n .hide-desktop {\n display: none #{$important-helpers-value};\n }\n}\n\n\n@media (max-width: $screen-xs-max) {\n .hide-xs,\n .hidden-xs,\n .d-xs-none {\n display: none #{$important-helpers-value};\n }\n .d-xs-flex {\n display: flex #{$important-helpers-value};\n }\n .d-xs-inline-flex {\n display: inline-flex #{$important-helpers-value};\n }\n .d-xs-inline {\n display: inline #{$important-helpers-value};\n }\n .d-xs-inline-block {\n display: inline-block #{$important-helpers-value};\n }\n .d-xs-block {\n display: block #{$important-helpers-value};\n }\n .d-xs-table {\n display: table #{$important-helpers-value};\n }\n .d-xs-table-row {\n display: table-row #{$important-helpers-value};\n }\n .d-xs-table-cell {\n display: table-cell #{$important-helpers-value};\n }\n}\n\n@media (min-width: $screen-sm) and (max-width: $screen-sm-max) {\n .hide-sm,\n .hidden-sm,\n .d-sm-none {\n display: none #{$important-helpers-value};\n }\n .d-sm-flex {\n display: flex #{$important-helpers-value};\n }\n .d-sm-inline-flex {\n display: inline-flex #{$important-helpers-value};\n }\n .d-sm-inline {\n display: inline #{$important-helpers-value};\n }\n .d-sm-inline-block {\n display: inline-block #{$important-helpers-value};\n }\n .d-sm-block {\n display: block #{$important-helpers-value};\n }\n .d-sm-table {\n display: table #{$important-helpers-value};\n }\n .d-sm-table-row {\n display: table-row #{$important-helpers-value};\n }\n .d-sm-table-cell {\n display: table-cell #{$important-helpers-value};\n }\n}\n\n@media (min-width: $screen-md) and (max-width: $screen-md-max) {\n .hide-md,\n .hidden-md,\n .d-md-none {\n display: none #{$important-helpers-value};\n }\n .d-md-flex {\n display: flex #{$important-helpers-value};\n }\n .d-md-inline-flex {\n display: inline-flex #{$important-helpers-value};\n }\n .d-md-inline {\n display: inline #{$important-helpers-value};\n }\n .d-md-inline-block {\n display: inline-block #{$important-helpers-value};\n }\n .d-md-block {\n display: block #{$important-helpers-value};\n }\n .d-md-table {\n display: table #{$important-helpers-value};\n }\n .d-md-table-row {\n display: table-row #{$important-helpers-value};\n }\n .d-md-table-cell {\n display: table-cell #{$important-helpers-value};\n }\n}\n\n@media (min-width: $screen-lg) and (max-width: $screen-xl) {\n .hide-lg,\n .hidden-lg,\n .d-lg-none {\n display: none #{$important-helpers-value};\n }\n .d-lg-flex {\n display: flex #{$important-helpers-value};\n }\n .d-lg-inline-flex {\n display: inline-flex #{$important-helpers-value};\n }\n .d-lg-inline {\n display: inline #{$important-helpers-value};\n }\n .d-lg-inline-block {\n display: inline-block #{$important-helpers-value};\n }\n .d-lg-block {\n display: block #{$important-helpers-value};\n }\n .d-lg-table {\n display: table #{$important-helpers-value};\n }\n .d-lg-table-row {\n display: table-row #{$important-helpers-value};\n }\n .d-lg-table-cell {\n display: table-cell #{$important-helpers-value};\n }\n}\n\n@media (min-width: $screen-xl) {\n .hide-xl,\n .hidden-xl,\n .d-xl-none {\n display: none #{$important-helpers-value};\n }\n .d-xl-flex {\n display: flex #{$important-helpers-value};\n }\n .d-xl-inline-flex {\n display: inline-flex #{$important-helpers-value};\n }\n .d-xl-inline {\n display: inline #{$important-helpers-value};\n }\n .d-xl-inline-block {\n display: inline-block #{$important-helpers-value};\n }\n .d-xl-block {\n display: block #{$important-helpers-value};\n }\n .d-xl-table {\n display: table #{$important-helpers-value};\n }\n .d-xl-table-row {\n display: table-row #{$important-helpers-value};\n }\n .d-xl-table-cell {\n display: table-cell #{$important-helpers-value};\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/*\n* Mendix Documentation\n* Special styles for presenting components\n*/\n\n/*\n* Dijit Widgets\n*\n* Default Dojo Dijit Widgets\n*/\n\n/*\n * Dijit Tooltip Widget\n *\n * Default tooltip used for Mendix widgets\n */\n\n.mx-tooltip {\n .dijitTooltipContainer {\n border-width: 1px;\n border-color: $gray-light;\n border-radius: 4px;\n background: #ffffff;\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n .mx-tooltip-content {\n padding: 10px;\n }\n .form-group {\n margin-bottom: 5px;\n }\n }\n .dijitTooltipConnector {\n width: 0;\n height: 0;\n margin-left: -10px;\n border-width: 10px 10px 10px 0;\n border-style: solid;\n border-color: transparent;\n border-right-color: $gray-light;\n }\n}\n\n/*\n * Dijit Border Container\n *\n * Used in Mendix as split pane containers\n */\n\n.dijitBorderContainer {\n padding: 5px;\n background-color: #fcfcfc;\n .dijitSplitterV,\n .dijitGutterV {\n width: 5px;\n border: 0;\n background: #fcfcfc;\n }\n .dijitSplitterH,\n .dijitGutterH {\n height: 5px;\n border: 0;\n background: #fcfcfc;\n }\n .dijitSplitterH {\n .dijitSplitterThumb {\n top: 2px;\n width: 19px;\n height: 1px;\n background: #b0b0b0;\n }\n }\n .dijitSplitterV {\n .dijitSplitterThumb {\n left: 2px;\n width: 1px;\n height: 19px;\n background: #b0b0b0;\n }\n }\n .dijitSplitContainer-child,\n .dijitBorderContainer-child {\n border: 1px solid #cccccc;\n }\n .dijitBorderContainer-dijitTabContainerTop,\n .dijitBorderContainer-dijitTabContainerBottom,\n .dijitBorderContainer-dijitTabContainerLeft,\n .dijitBorderContainer-dijitTabContainerRight {\n border: none;\n }\n .dijitBorderContainer-dijitBorderContainer {\n padding: 0;\n border: none;\n }\n .dijitSplitterActive {\n /* For IE8 and earlier */\n margin: 0;\n opacity: 0.6;\n background-color: #aaaaaa;\n background-image: none;\n font-size: 1px;\n filter: alpha(opacity=60);\n }\n .dijitSplitContainer-dijitContentPane,\n .dijitBorderContainer-dijitContentPane {\n padding: 5px;\n background-color: #ffffff;\n }\n}\n\n/*\n * Dijit Menu Popup\n *\n * Used in datepickers and calendar widgets\n */\n\n.dijitMenuPopup {\n margin-top: 10px;\n .dijitMenu {\n display: block;\n width: 200px !important;\n margin-top: 0; // No top margin because there is no parent with margin bottom\n padding: 12px 10px;\n border-radius: 3px;\n background: $brand-inverse;\n &:after {\n position: absolute;\n bottom: 100%;\n left: 20px;\n width: 0;\n height: 0;\n margin-left: -10px;\n content: ' ';\n pointer-events: none;\n border: medium solid transparent;\n border-width: 10px;\n border-bottom-color: $brand-inverse;\n }\n // Menu item\n .dijitMenuItem {\n background: transparent;\n .dijitMenuItemLabel {\n display: block;\n overflow: hidden;\n width: 180px !important;\n padding: 10px;\n text-overflow: ellipsis;\n color: #ffffff;\n border-radius: 3px;\n }\n // Hover\n &.dijitMenuItemHover {\n background: none;\n .dijitMenuItemLabel {\n background: $brand-primary;\n }\n }\n }\n // New label\n .tg_newlabelmenuitem {\n .dijitMenuItemLabel {\n font-weight: $font-weight-bold;\n }\n }\n // Seperator\n .dijitMenuSeparator {\n td {\n padding: 0;\n border-bottom-width: 3px;\n }\n .dijitMenuSeparatorIconCell {\n > div {\n margin: 0; //override dijit styling\n }\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* Based on https://github.com/mendixlabs/star-rating/blob/v1.1.1/src/ui/StarRating.scss */\ndiv.widget-progress-bar .progress-bar-default {\n background-color: $brand-default;\n}\n\ndiv.widget-progress-bar .progress-bar-primary {\n background-color: $brand-primary;\n}\n\ndiv.widget-progress-bar .progress-bar-success {\n background-color: $brand-success;\n}\n\ndiv.widget-progress-bar .progress-bar-info {\n background-color: $brand-info;\n}\n\ndiv.widget-progress-bar .progress-bar-warning {\n background-color: $brand-warning;\n}\n\ndiv.widget-progress-bar .progress-bar-danger {\n background-color: $brand-danger;\n}\n\ndiv.widget-progress-bar .progress-bar-inverse {\n background-color: $brand-inverse;\n}\n\ndiv.widget-progress-bar-alert.widget-progress-bar-text-contrast .progress-bar {\n color: $color-danger-darker;\n}\n\ndiv.widget-progress-bar-text-contrast .progress-bar {\n color: $font-color-default;\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* Based on https://github.com/mendixlabs/progress-circle/tree/master/src/ui/_progress-circle-theme.scss */\npath.widget-progress-circle-path {\n stroke: $brand-primary;\n}\n\n.widget-progress-circle-primary {\n path.widget-progress-circle-path {\n stroke: $brand-primary;\n }\n .progressbar-text {\n color: $brand-primary !important;\n }\n}\n\n.widget-progress-circle-info {\n path.widget-progress-circle-path {\n stroke: $brand-info;\n }\n .progressbar-text {\n color: $brand-info !important;\n }\n}\n\n.widget-progress-circle-success {\n path.widget-progress-circle-path {\n stroke: $brand-success;\n }\n .progressbar-text {\n color: $brand-success !important;\n }\n}\n\n.widget-progress-circle-warning {\n path.widget-progress-circle-path {\n stroke: $brand-warning;\n }\n .progressbar-text {\n color: $brand-warning !important;\n }\n}\n\n.widget-progress-circle-danger {\n path.widget-progress-circle-path {\n stroke: $brand-danger;\n }\n .progressbar-text {\n color: $brand-danger !important;\n }\n}\n\n.widget-progress-circle-inverse {\n path.widget-progress-circle-path {\n stroke: $brand-inverse;\n }\n .progressbar-text {\n color: $brand-inverse !important;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n// Based on https://github.com/mendixlabs/range-slider/tree/master/src/ui/_range-slider-theme.scss\n\ndiv.widget-range-slider {\n .rc-slider-handle,\n .rc-slider-dot-active {\n border-color: $brand-default;\n\n &:active {\n border-color: $brand-default;\n box-shadow: none;\n }\n\n &:hover {\n border-color: $brand-default;\n }\n }\n\n &.has-error {\n .rc-slider-track,\n .rc-slider-rail {\n background-color: $brand-danger;\n }\n }\n}\n\ndiv.widget-range-slider-primary .rc-slider-track {\n background-color: $brand-primary;\n}\n\ndiv.widget-range-slider-info .rc-slider-track {\n background-color: $brand-info;\n}\n\ndiv.widget-range-slider-success .rc-slider-track {\n background-color: $brand-success;\n}\n\ndiv.widget-range-slider-warning .rc-slider-track {\n background-color: $brand-warning;\n}\n\ndiv.widget-range-slider-danger .rc-slider-track {\n background-color: $brand-danger;\n}\n\ndiv.widget-range-slider-inverse .rc-slider-track {\n background-color: $brand-inverse;\n}\n\n.rc-slider-tooltip {\n z-index: 999;\n}","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n// Based on https://github.com/mendixlabs/slider/tree/master/src/ui/_slider-theme.scss\n\ndiv.widget-slider {\n .rc-slider-handle,\n .rc-slider-dot-active {\n border-color: $brand-default;\n &:active {\n border-color: $brand-default;\n }\n &:hover {\n border-color: $brand-default;\n }\n }\n\n &.has-error {\n .rc-slider-track,\n .rc-slider-rail {\n background-color: $brand-danger;\n }\n }\n}\n\ndiv.widget-slider-primary .rc-slider-track {\n background-color: $brand-primary;\n}\n\ndiv.widget-slider-info .rc-slider-track {\n background-color: $brand-info;\n}\n\ndiv.widget-slider-success .rc-slider-track {\n background-color: $brand-success;\n}\n\ndiv.widget-slider-warning .rc-slider-track {\n background-color: $brand-warning;\n}\n\ndiv.widget-slider-danger .rc-slider-track {\n background-color: $brand-danger;\n}\n\ndiv.widget-slider-inverse .rc-slider-track {\n background-color: $brand-inverse;\n}\n","//\r\n// DISCLAIMER:\r\n// Do not change this file because it is core styling.\r\n// Customizing core files will make updating Atlas much more difficult in the future.\r\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\r\n//\r\n\r\n/* Based on https://github.com/mendixlabs/star-rating/blob/v1.1.1/src/ui/StarRating.scss */\r\nspan.widget-star-rating-full-default {\r\n color: $brand-default;\r\n}\r\n\r\nspan.widget-star-rating-full-primary {\r\n color: $brand-primary;\r\n}\r\n\r\nspan.widget-star-rating-full-success {\r\n color: $brand-success;\r\n}\r\n\r\nspan.widget-star-rating-full-info {\r\n color: $brand-info;\r\n}\r\n\r\nspan.widget-star-rating-full-warning {\r\n color: $brand-warning;\r\n}\r\n\r\nspan.widget-star-rating-full-danger {\r\n color: $brand-danger;\r\n}\r\n\r\nspan.widget-star-rating-full-inverse {\r\n color: $brand-inverse;\r\n}\r\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n$default-android-color: #6FBEB5;\n$default-ios-color: rgb(100, 189, 99);\n\n@mixin bootstrap-style-ios($brand-style) {\n border-color: $brand-style;\n background-color: $brand-style;\n box-shadow: $brand-style 0 0 0 16px inset;\n}\n\n@mixin bootstrap-style-android($brand-style) {\n background-color: lighten($brand-style, 10%);\n}\n\n@mixin ios {\n .widget-switch-btn-wrapper {\n &.checked {\n &.widget-switch-btn-wrapper-default {\n @include bootstrap-style-ios($default-ios-color);\n }\n\n &.widget-switch-btn-wrapper-success {\n @include bootstrap-style-ios($brand-success);\n }\n\n &.widget-switch-btn-wrapper-info {\n @include bootstrap-style-ios($brand-info);\n }\n\n &.widget-switch-btn-wrapper-primary {\n @include bootstrap-style-ios($brand-primary);\n }\n\n &.widget-switch-btn-wrapper-warning {\n @include bootstrap-style-ios($brand-warning);\n }\n\n &.widget-switch-btn-wrapper-danger {\n @include bootstrap-style-ios($brand-danger);\n }\n\n &.widget-switch-btn-wrapper-inverse {\n @include bootstrap-style-ios($brand-inverse);\n }\n }\n }\n}\n\n@mixin android {\n .widget-switch-btn-wrapper {\n &.checked {\n &.widget-switch-btn-wrapper-default {\n @include bootstrap-style-android($default-android-color);\n\n .widget-switch-btn {\n background: $default-android-color;\n }\n }\n\n &.widget-switch-btn-wrapper-success {\n @include bootstrap-style-android($brand-success);\n\n .widget-switch-btn {\n background: $brand-success;\n }\n }\n\n &.widget-switch-btn-wrapper-info {\n @include bootstrap-style-android($brand-info);\n\n .widget-switch-btn {\n background: $brand-info;\n }\n }\n\n &.widget-switch-btn-wrapper-primary {\n @include bootstrap-style-android($brand-primary);\n\n .widget-switch-btn {\n background: $brand-primary;\n }\n }\n\n &.widget-switch-btn-wrapper-warning {\n @include bootstrap-style-android($brand-warning);\n\n .widget-switch-btn {\n background: $brand-warning;\n }\n }\n\n &.widget-switch-btn-wrapper-danger {\n @include bootstrap-style-android($brand-danger);\n\n .widget-switch-btn {\n background: $brand-danger;\n }\n }\n\n &.widget-switch-btn-wrapper-inverse {\n @include bootstrap-style-android($brand-inverse);\n\n .widget-switch-btn {\n background: $brand-inverse;\n }\n }\n }\n }\n}\n\n.widget-switch-btn-wrapper {\n &:focus {\n outline: 1px solid $brand-primary;\n }\n}\n\ndiv {\n &.widget-switch {\n &.iOS {\n @include ios;\n }\n\n &.android {\n @include android;\n }\n\n &.auto {\n @include ios;\n }\n }\n}\n\nhtml {\n div {\n &.dj_android {\n .widget-switch {\n &.auto {\n @include android;\n }\n }\n }\n\n &.dj_ios {\n .widget-switch {\n &.auto {\n @include ios;\n }\n }\n }\n }\n}\n","/* ==========================================================================\n Breadcrumbs\n\n========================================================================== */\n.breadcrumb {\n //reset\n margin: 0;\n padding: 0;\n border-radius: 0;\n background-color: transparent;\n font-size: $font-size-default;\n}\n\n//== Elements\n//-------------------------------------------------------------------------------------------------------------------//\n.breadcrumb-item {\n display: inline-block;\n margin: 0;\n &:last-child {\n color: $font-color-default;\n a {\n text-decoration: none;\n }\n }\n}\n.breadcrumb-item + .breadcrumb-item {\n &::before {\n display: inline-block;\n padding-right: 10px;\n padding-left: 10px;\n content: \"/\";\n color: $gray-light;\n }\n}\n\n//== Variations \n//-------------------------------------------------------------------------------------------------------------------//\n.breadcrumb-large {\n font-size: $font-size-h3;\n}\n.breadcrumb-underline {\n padding-bottom: $gutter-size;\n border-bottom: 1px solid $border-color-default;\n}\n","/* ==========================================================================\n Cards\n\n========================================================================== */\n.card {\n padding: 30px;\n border: 1px solid $border-color-default;\n border-radius: $border-radius-default;\n background-color: #FFFFFF;\n}\n\n//== Elements\n//-------------------------------------------------------------------------------------------------------------------//\n.card-title {\n margin-top: 0;\n}\n\n//== Variations\n//-------------------------------------------------------------------------------------------------------------------//\n.cardaction {\n .card-image {\n .glyphicon {\n font-size: 58px;\n }\n }\n}\n\n.cardmetrics {\n .card-title {\n margin-bottom: 0;\n }\n\n .figurecontent {\n }\n\n .card-image {\n width: 100px;\n height: auto;\n // If btn\n &.btn {\n width: 100px;\n height: 100px;\n padding: 0;\n cursor: default;\n pointer-events: none;\n font-size: 40px;\n }\n }\n\n .card-counter {\n margin: 0;\n font-size: 64px;\n }\n\n .card-morebutton {\n }\n}\n\n.cardinfo {\n .card-text {\n margin-bottom: $spacing-large;\n }\n}\n\n// Used in card info\n.textwithicon {\n overflow: hidden;\n max-width: 100%;\n margin-bottom: 15px;\n text-overflow: ellipsis;\n\n .textwithicon-icon,\n .textwithicon-text {\n display: inline-block;\n vertical-align: middle;\n }\n\n .textwithicon-icon {\n margin-right: 15px;\n padding: 0;\n color: $brand-primary; // class .text-primary\n border: 0;\n background: transparent;\n font-size: 23px;\n }\n\n .textwithicon-text {\n }\n}\n\n// Used in card info\n.socialprofiles {\n .socialprofiles-title {\n display: block;\n margin-bottom: 10px;\n font-weight: bold; // class text-bold\n }\n\n .socialprofiles-button {\n width: 24px;\n height: 24px;\n margin-right: 15px;\n padding: 0;\n border-radius: 24px;\n\n .glyphicon {\n margin: 0;\n }\n }\n}\n\n\n.cardtabs {\n padding: 0;\n}\n\n.cardtabs-tabs {\n margin: 0;\n\n ul.mx-tabcontainer-tabs {\n display: flex;\n margin: 0;\n background-color: mix($tabs-border-color, #FFFFFF, 20%);\n\n li {\n flex: 1 1 auto;\n text-align: center;\n\n a,\n a:hover,\n a:focus {\n border-top-width: 0;\n border-right-width: 1px;\n border-left-width: 0;\n }\n\n &:first-child a {\n border-radius: $border-radius-default 0 0 0;\n }\n\n &:last-child a {\n border-radius: 0 $border-radius-default 0 0;\n }\n }\n }\n\n .mx-tabcontainer-pane {\n @include get-responsive-spacing-large($type: padding, $direction: all);\n }\n}\n\n.carduser {\n .card-controls {\n }\n\n .card-title {\n }\n\n .card-detail {\n }\n}\n\n.cardgraph {\n .card-title {\n }\n}\n\n.cardchart {\n .card-title {\n }\n}\n\n.cardproduct {\n padding: 0;\n\n}\n\n.cardproduct-header {\n position: relative;\n overflow: hidden;\n height: 200px;\n\n .card-image {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: auto;\n }\n\n}\n\n.cardproduct-overlay {\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n padding: 20px 30px;\n background: rgba(0, 0, 0, 0.60);\n\n}\n\n.cardproduct-overlay-category,\n.cardproduct-overlay-title {\n margin: 0;\n color: #FFFFFF;\n}\n\n.cardproduct-footer .col {\n padding: 20px 30px;\n\n .widget-star-rating-font {\n font-size: 20px;\n }\n}\n\n.cardproduct-name {\n margin: 0;\n}\n\n.cardproduct-btn {\n display: flex;\n align-items: center;\n height: 100%;\n padding: 30px;\n border-left: 1px solid $border-color-default;\n}\n\n.cardproduct2 {\n @extend .cardproduct;\n\n .cardproduct-header {\n &::after {\n position: absolute;\n bottom: 0;\n left: 0;\n display: block;\n width: 100%;\n padding: 20px 30px;\n content: \"\";\n background: rgba(0, 0, 0, 0.60);\n background: -moz-linear-gradient(top, rgba(255, 255, 255, 0) 0%, rgba(250, 250, 250, 0) 2%, rgba(0, 0, 0, 0.99) 99%, rgba(0, 0, 0, 1) 100%);\n background: -webkit-linear-gradient(top, rgba(255, 255, 255, 0) 0%, rgba(250, 250, 250, 0) 2%, rgba(0, 0, 0, 0.99) 99%, rgba(0, 0, 0, 1) 100%);\n background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(250, 250, 250, 0) 2%, rgba(0, 0, 0, 0.99) 99%, rgba(0, 0, 0, 1) 100%);\n }\n }\n}\n\n\n.cardproduct3 {\n @extend .cardproduct;\n\n .cardproduct-header {\n height: 320px;\n\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n\n }\n\n .cardproduct-overlay {\n min-height: 100px;\n padding: 30px;\n background: -moz-linear-gradient(top, rgba(255, 255, 255, 0) 0%, rgba(250, 250, 250, 0) 8%, rgba(0, 0, 0, 0.99) 121%, rgba(0, 0, 0, 1) 100%);\n background: -webkit-linear-gradient(top, rgba(255, 255, 255, 0) 0%, rgba(250, 250, 250, 0) 8%, rgba(0, 0, 0, 0.99) 121%, rgba(0, 0, 0, 1) 100%);\n background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(250, 250, 250, 0) 8%, rgba(0, 0, 0, 0.99) 121%, rgba(0, 0, 0, 1) 100%);\n font-size: $font-size-default;\n }\n}\n\n.cardshopping {\n}\n\n.carduserlist {\n}\n\n.cardstatus {\n padding: 20px;\n\n .card-linkicon {\n font-size: 30px;\n }\n\n .cardstatus-status {\n margin-bottom: 5px;\n }\n}\n\n.cardpayment {\n}\n\n.cardprogress {\n}\n\n.cardprogress-state {\n width: 80px;\n height: 80px;\n padding: 0;\n cursor: default;\n pointer-events: none;\n border-radius: 100%;\n font-size: 28px;\n}\n\n.cardhighlight {\n border-top: 4px solid $brand-primary;\n}\n\n.cardchat {\n overflow: hidden;\n padding: 0;\n\n .chat {\n height: 400px;\n }\n}\n\n@media screen and (max-width: $screen-md-max) {\n .widget-charts:not([height]),\n .widget-charts-line:not([height]) {\n padding-bottom: 80% !important;\n }\n}\n\n\n@media screen and (max-width: $screen-lg-max) {\n .cardprogress {\n .cardprogress-state {\n width: 60px;\n height: 60px;\n font-size: 24px;\n }\n }\n}\n","/* ==========================================================================\n Chats\n\n========================================================================== */\n.chat {\n display: flex;\n flex-direction: column;\n height: 100%;\n background-color: $bg-color-secondary;\n}\n\n//== Elements\n//-------------------------------------------------------------------------------------------------------------------//\n.chat-content {\n display: flex;\n overflow: auto;\n flex: 1;\n flex-direction: column;\n justify-content: flex-end;\n\n .chat-list {\n position: relative;\n overflow: auto;\n\n ul {\n display: flex;\n flex-direction: column-reverse;\n margin-bottom: $m-spacing-large;\n }\n\n li {\n padding: 15px 30px;\n animation: fadeIn 0.2s;\n background-color: transparent;\n animation-fill-mode: both;\n\n &,\n &:last-child {\n border: 0;\n }\n }\n\n .mx-listview-loadMore {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n display: block;\n width: 50%;\n margin: 15px auto;\n color: #FFFFFF;\n background-color: $brand-primary;\n box-shadow: 0 2px 20px 0 rgba(0, 0, 0, 0.05);\n }\n }\n}\n\n\n.chat-message {\n display: flex;\n}\n\n.chat-avatar {\n margin: 0 20px 0 0;\n border-radius: 50%;\n}\n\n.chat-message-content {\n display: inline-flex;\n flex-direction: column;\n}\n\n.chat-message-balloon {\n position: relative;\n display: flex;\n flex-direction: column;\n padding: 10px 15px;\n border-radius: 5px;\n background-color: $bg-color;\n\n &::after {\n position: absolute;\n top: 10px;\n right: 100%;\n width: 0;\n height: 0;\n content: '';\n border: 10px solid transparent;\n border-top: 0;\n border-right-color: $bg-color;\n border-left: 0;\n }\n}\n\n.chat-message-time {\n padding-top: 2px;\n\n .form-control-static {\n border: 0;\n }\n}\n\n.chat-footer {\n z-index: 1;\n padding: $m-spacing-large;\n background-color: $bg-color;\n box-shadow: 0 2px 20px 0 rgba(0, 0, 0, 0.05);\n}\n\n.chat-input {\n display: flex;\n\n .chat-textbox {\n flex: 1;\n margin-right: $spacing-large;\n margin-bottom: 0;\n\n .form-control {\n border: 0;\n }\n }\n}\n\n//== Variations\n//-------------------------------------------------------------------------------------------------------------------//\n.chat-message-self {\n justify-content: flex-end;\n\n .chat-avatar {\n margin: 0 0 0 20px;\n }\n\n .chat-message-balloon {\n background-color: $color-primary-lighter;\n\n &::after {\n left: 100%;\n border: 10px solid transparent;\n border-top: 0;\n border-right: 0;\n border-left-color: $color-primary-lighter;\n }\n }\n\n .chat-message-time {\n text-align: right;\n }\n}\n","/* ==========================================================================\n Control Group\n \n A group of buttons next to eachother\n========================================================================== */\n.controlgroup {\n .btn,\n .btn-group {\n margin-right: $spacing-small;\n margin-bottom: $spacing-small;\n\n &:last-child {\n margin-right: 0;\n }\n .btn {\n margin-right: 0;\n margin-bottom: 0;\n }\n }\n .btn-group {\n .btn + .btn {\n margin-left: -1px;\n }\n }\n}\n","/* ==========================================================================\n Full page blocks\n\n Blocks that take up the full width and height\n========================================================================== */\n\n.fullpageblock {\n position: relative;\n height: 100%;\n min-height: 100%;\n\n // Helper to make it fullheight\n .fullheight {\n height: 100% !important;\n\n & > .mx-dataview-content {\n height: inherit !important;\n }\n }\n\n .fullpage-overlay {\n position: absolute;\n z-index: 10;\n bottom: 0;\n left: 0;\n width: 100%;\n }\n}\n","/* ==========================================================================\n Pageheader\n========================================================================== */\n\n//== Default\n//-------------------------------------------------------------------------------------------------------------------//\n.pageheader {\n border-bottom: 1px solid $border-color-default;\n background: $header-bg-color;\n}\n\n// Check if it is part of a inner layoutgrid\n.mx-scrollcontainer .mx-placeholder .mx-layoutgrid .pageheader {\n @include get-responsive-spacing-large($type: margin, $direction: bottom);\n @include get-responsive-spacing-large($type: padding, $direction: bottom);\n background: transparent;\n}\n\n//== Elements\n//-------------------------------------------------------------------------------------------------------------------//\n.pageheader-type {\n margin: 0;\n}\n\n.pageheader-title {\n margin: 0;\n}\n\n.pageheader-subtitle {\n margin: 0;\n}\n\n//== Variations\n//-------------------------------------------------------------------------------------------------------------------//\n.pageheaderwithcontrols {\n .controlgroup {\n }\n}\n\n.pageheaderwithimage {\n .pageheader-image {\n }\n .figurecontent {\n }\n}\n\n.pageheaderwithimageandcontrols {\n}\n\n.pageheaderwithsearch {\n .pageheader-title {\n margin-bottom: 1em;\n }\n}\n\n.pageheaderwithbreadcrumb {\n .breadcrumb {\n }\n}\n","/* ==========================================================================\n Pageheader\n\n========================================================================== */\n.heroheader {\n border-bottom: 1px solid $border-color-default;\n background: $header-bg-color;\n}\n\n//== Elements\n//-------------------------------------------------------------------------------------------------------------------//\n.heroheader-title {\n margin: 0 0 10px 0;\n}\n\n.heroheader-subtitle {\n margin: 0;\n padding: 0 15px;\n\n &::before {\n display: block;\n max-width: 330px;\n height: 1px;\n margin: auto auto 10px auto;\n content: \"\";\n background-color: lighten($border-color-default, 4);\n }\n}\n\n//== Variations\n//-------------------------------------------------------------------------------------------------------------------//\n.heroheader1 {\n background-image: $brand-gradient;\n\n .heroheader-title {\n margin-bottom: 10px;\n color: #FFFFFF;\n }\n\n .heroheader-subtitle {\n padding: 0;\n color: #FFFFFF;\n\n &::before {\n display: none;\n }\n }\n}\n\n.heroheadermap {\n padding: 0 !important;\n}\n\n.heroheadermap-controls {\n padding: $spacing-large;\n background: $header-bg-color;\n}\n\n.heroheaderproduct {\n position: relative;\n overflow: hidden;\n height: 300px;\n background-color: #000000;\n\n .heroheaderproduct-backgroundimage {\n position: absolute;\n z-index: 0;\n top: 0;\n width: 100%;\n opacity: 0.7;\n filter: blur(5px);\n }\n\n .heroheaderproduct-overlay {\n position: absolute;\n z-index: 1;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n}\n\n.heroheaderexpense {\n .heroheaderexpense-title {\n font-size: 72px;\n }\n\n .heroheaderexpense-type {\n align-items: center;\n\n &::before {\n flex-grow: 1;\n height: 1px;\n margin-right: 10px;\n content: \"\";\n background-color: #D2D2D2;\n }\n }\n}\n","/* ==========================================================================\n Form Block\n\n Used in default forms\n========================================================================== */\n.formblock {\n}\n\n//== Elements\n//-------------------------------------------------------------------------------------------------------------------//\n.formblock-title {\n margin-bottom: $gutter-size;\n padding-bottom: $gutter-size;\n border-bottom: 1px solid $border-color-default;\n}\n","/* ==========================================================================\n Master Detail\n\n A list with a listening dataview\n========================================================================== */\n.masterdetail {\n .masterdetail-master {\n .controlgroup {\n margin-bottom: $gutter-size;\n }\n\n @media (max-width: $screen-lg) {\n @include layout-spacing($type: margin, $direction: bottom, $device: responsive);\n }\n\n @media (min-width: $screen-lg) {\n border-right: 1px solid $border-color-default;\n\n .mx-listview-searchbar {\n margin: $gutter-size;\n }\n .controlgroup {\n padding: $gutter-size;\n border-bottom: 1px solid $border-color-default;\n }\n }\n }\n\n .masterdetail-detail {\n @media (min-width: $screen-lg) {\n @include layout-spacing($type: padding, $direction: all, $device: responsive);\n }\n }\n}\n\n//== Variations\n//-------------------------------------------------------------------------------------------------------------------//\n.masterdetailvertical {\n .masterdetail-master {\n @include layout-spacing($type: margin, $direction: bottom, $device: responsive);\n }\n\n .masterdetail-detail {\n @include layout-spacing($type: padding, $direction: top, $device: responsive);\n }\n}\n","/* ==========================================================================\n User profile blocks\n -\n========================================================================== */\n.userprofile {\n .userprofile-img {\n }\n .userprofile-title {\n }\n .userprofile-subtitle {\n }\n}","$wizard-step-number-size: 60px;\n$wizard-step-height: 50px;\n\n.wizard {\n display: flex;\n justify-content: space-between;\n .wizard-step {\n position: relative;\n width: 100%;\n text-align: center;\n &::before {\n position: absolute;\n z-index: -1;\n top: $wizard-step-number-size / 2;\n display: block;\n width: 100%;\n height: 2px;\n content: \"\";\n background-color: $border-color-default;\n }\n .wizard-step-number {\n width: $wizard-step-number-size;\n height: $wizard-step-number-size;\n border-color: $border-color-default;\n border-radius: 50%;\n background-color: #FFFFFF;\n font-size: 20px;\n }\n .wizard-step-text {\n display: block;\n margin-top: 15px;\n }\n }\n\n\n // States\n .wizard-step-active {\n .wizard-step-number {\n color: #FFFFFF;\n border-color: $brand-primary;\n background-color: $brand-primary;\n }\n .wizard-step-text {\n color: $brand-primary;\n }\n }\n .wizard-step-visited {\n .wizard-step-number {\n color: #FFFFFF;\n border-color: $brand-success;\n background-color: $brand-success;\n }\n .wizard-step-text {\n }\n }\n}\n\n.wizardprogress {\n display: flex;\n justify-content: space-between;\n\n .wizard-step-text {\n width: 100%;\n }\n\n .wizard-step {\n position: relative;\n width: 100%;\n height: $wizard-step-height;\n margin-left: 0 - ($wizard-step-height / 2);\n padding-left: ($wizard-step-height / 2);\n border: 1px solid $border-color-default;\n background: #FFFFFF;\n\n a {\n display: block;\n overflow: hidden;\n width: 100%;\n height: 100%;\n padding: 14px;\n white-space: nowrap;\n text-decoration: none;\n text-overflow: ellipsis;\n color: $font-color-default;\n }\n &::before,\n &::after {\n position: absolute;\n z-index: 1;\n left: 100%;\n margin-left: 0 - ($wizard-step-height / 2);\n content: \" \";\n border-style: solid;\n border-color: transparent;\n }\n &::after {\n top: 1px;\n border-width: (($wizard-step-height / 2) - 1);\n border-left-color: #FFFFFF;\n }\n &::before {\n top: 0;\n border-width: $wizard-step-height / 2;\n border-left-color: $border-color-default;\n }\n\n &:first-child {\n margin-left: 0;\n padding-left: 0;\n border-radius: 5px 0 0 5px;\n }\n\n &:last-child {\n border-radius: 0 5px 5px 0;\n &::before,\n &::after {\n display: none;\n }\n }\n }\n // States\n .wizard-step-active {\n background: $brand-primary;\n a {\n text-decoration: none;\n color: #FFFFFF;\n }\n &::after {\n border-left-color: $brand-primary;\n }\n }\n .wizard-step-visited {\n a {\n color: $link-color;\n }\n }\n}\n","// Timeline\n.timeline {\n .timeline-header {\n display: inline-block;\n width: 110px;\n padding: 8px;\n text-align: center;\n border: 1px solid $border-color-default;\n border-radius: 30px;\n }\n}\n.timeline-itemwrapper.mx-listview {\n margin-bottom: 0;\n margin-left: 55px;\n padding: $spacing-large 0;\n border-left: 1px solid $border-color-default;\n & > ul > li {\n position: relative;\n padding-left: ($gutter-size * 2);\n\n &::before {\n position: absolute;\n top: 5px;\n left: -5px;\n display: block;\n width: 10px;\n height: 10px;\n content: '';\n border-radius: 50%;\n background-color: $brand-primary;\n }\n }\n li + li {\n margin-top: $spacing-large;\n }\n}\n\n//== Variations\n//-------------------------------------------------------------------------------------------------------------------//\n.timeline2 {\n .timeline-itemwrapper.mx-listview {\n & > ul > li {\n padding-left: $gutter-size;\n }\n }\n}\n","/* ==========================================================================\n Atlas layout\n \n The core stucture of all atlas layouts\n========================================================================== */\n.layout-atlas {\n // Toggle button\n .toggle-btn > .glyphicon {\n margin: 0;\n }\n\n // Sidebar\n .region-sidebar {\n background-color: $navsidebar-bg;\n\n .mx-navigationtree .navbar-inner > ul > li > a {\n padding: 0 15px;\n\n .glyphicon {\n margin-right: 10px;\n }\n }\n .toggle-btn {\n border-color: transparent;\n border-radius: 0;\n background: transparent;\n }\n }\n\n // Topbar\n .region-topbar {\n position: relative;\n z-index: 1; // Show dropshadow\n min-height: $topbar-minimalheight;\n border-bottom: 1px solid $navtopbar-border-color;\n background-color: $navtopbar-bg;\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.14);\n\n &::before {\n z-index: 1;\n display: block;\n width: 100%;\n height: 4px;\n content: \"\";\n background-color: $brand-primary;\n }\n // Topbar Content\n .topbar-content {\n display: flex;\n align-items: center;\n min-height: $topbar-minimalheight;\n }\n\n // Toggle btn\n .toggle-btn {\n margin-right: 15px;\n padding: 5px;\n }\n\n // For your company, product, or project name\n .navbar-brand {\n display: inline-block;\n // reset bootstrap\n float: none;\n height: auto;\n padding: 0;\n line-height: inherit;\n\n img {\n display: inline-block;\n @if $brand-logo !=false {\n width: 0;\n height: 0;\n padding: ($brand-logo-height / 2) ($brand-logo-width / 2);\n background-image: url($brand-logo);\n background-repeat: no-repeat;\n background-position: left center;\n background-size: $brand-logo-width;\n } @else {\n width: auto;\n height: $brand-logo-height;\n }\n }\n\n a {\n margin-left: 5px;\n color: $navbar-brand-name;\n font-size: 20px;\n\n &:hover,\n &:focus {\n text-decoration: none;\n }\n }\n }\n\n .mx-navbar {\n display: inline-block;\n margin-left: $gutter-size;\n vertical-align: middle;\n background: transparent;\n\n & > .mx-navbar-item {\n & > a {\n margin-top: 5px;\n padding: 0 20px;\n }\n }\n }\n }\n}\n","/* ==========================================================================\n Atlas layout\n \n Extra styling for phone layouts\n========================================================================== */\n.layout-atlas-phone {\n .region-topbar {\n min-height: $m-header-height;\n border-style: none;\n background-color: $m-header-bg;\n\n &::before {\n display: none;\n }\n }\n}\n","/* ==========================================================================\n Atlas layout\n\n Extra styling for responsive layouts\n========================================================================== */\n.layout-atlas-responsive-default {\n $sidebar-width: 60px;\n\n @media (min-width: $screen-md) {\n .mx-scrollcontainer:not(.mx-scrollcontainer-open) > .region-sidebar {\n width: $sidebar-width !important;\n\n .mx-scrollcontainer-wrapper > .mx-navigationtree ul li {\n &.mx-navigationtree-has-items:hover {\n a {\n background-color: $navsidebar-sub-bg;\n }\n\n ul {\n position: absolute;\n z-index: 100;\n top: 0;\n bottom: 0;\n left: $sidebar-width;\n display: block;\n overflow-y: auto;\n min-width: 200px;\n padding-top: 10px;\n }\n }\n\n &.mx-navigationtree-collapsed,\n &.mx-navigationtree-has-items {\n ul {\n display: none;\n }\n }\n }\n }\n }\n\n\n .mx-scrollcontainer-slide {\n\n &.mx-scrollcontainer-open > .region-sidebar {\n width: $sidebar-width !important;\n }\n }\n\n // Push aside for mobile\n @media (max-width: $screen-sm-max) {\n .mx-scrollcontainer-open:not(.mx-scrollcontainer-slide) {\n width: 1100px;\n }\n\n .mx-scrollcontainer-slide .toggle-btn {\n display: inline-block !important;\n }\n }\n\n // Sidebar\n .region-sidebar {\n .toggle-btn {\n width: $sidebar-width;\n height: 60px;\n border-color: transparent;\n border-radius: 0;\n background: transparent;\n }\n\n .mx-scrollcontainer-wrapper > .mx-navigationtree {\n .navbar-inner > ul > li {\n & > a {\n height: $sidebar-width;\n // Glyph icon\n .glyphicon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n margin-left: -5px;\n padding: 10px;\n border-radius: 3px;\n }\n\n &.active {\n .glyphicon {\n background: $brand-primary;\n }\n }\n }\n }\n }\n }\n\n // Topbar\n .region-topbar {\n }\n}\n\n// Topbar variant\n.layout-atlas-responsive-topbar {\n .mx-scrollcontainer-slide,\n .mx-scrollcontainer-push {\n &:not(.mx-scrollcontainer-open) > .region-sidebar {\n visibility: hidden;\n }\n }\n}\n\n// All responsive layouts\n.layout-atlas-responsive-default,\n.layout-atlas-responsive-topbar {\n // Topbar\n .region-topbar {\n .toggle-btn {\n display: none;\n\n @media (max-width: $screen-sm-max) {\n display: inline-block;\n }\n }\n }\n\n .mx-scrollcontainer-slide {\n &:not(.mx-scrollcontainer-open) > .region-sidebar {\n overflow: hidden;\n }\n\n &.mx-scrollcontainer-open > .region-sidebar {\n\n & > .mx-scrollcontainer-wrapper {\n position: relative;\n }\n }\n\n .region-sidebar > .mx-scrollcontainer-wrapper {\n z-index: 2;\n background-color: inherit;\n }\n }\n}\n\n// Fix Safari issue of sidebar disappearing\n.profile-tablet {\n .mx-scrollcontainer:not(.mx-scrollcontainer-open) > .region-sidebar {\n overflow-y: hidden;\n\n .mx-scrollcontainer-wrapper {\n overflow: visible;\n }\n }\n}\n","/* ==========================================================================\n Atlas layout\n \n Extra styling for tablet layouts\n========================================================================== */\n.layout-atlas-tablet {\n // tablet\n}\n","@import \"custom-variables\";\n"],"names":[],"mappings":"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K,CNoBuC,IAAO,CMnBnD,YAAY,CNAgC,IAAO,CMCnD,UAAU,CNDkC,IAAO,CMEtD,AsBEL,AtBDI,iBsBCa,CtBDX,iBAAiB,AAAC,CAChB,YAAY,CNJgC,IAAO,CMKtD,AsBGL,AtBVI,iBsBUa,CtBVX,mBAAmB,AAAC,CAClB,KAAK,CL4gB2B,IAAI,CK3gBpC,YAAY,CNCgC,OAAO,CMAnD,UAAU,CNAkC,OAAO,CMCtD,AsBML,AtBLI,iBsBKa,CtBLX,iBAAiB,AAAC,CAChB,YAAY,CNHgC,OAAO,CMItD,AsBOL,AtBdI,iBsBca,CtBdX,mBAAmB,AAAC,CAClB,KAAK,CL2gB2B,IAAI,CK1gBpC,YAAY,CNEgC,OAAO,CMDnD,UAAU,CNCkC,OAAO,CMAtD,AsBUL,AtBTI,iBsBSa,CtBTX,iBAAiB,AAAC,CAChB,YAAY,CNFgC,OAAO,CMGtD,AsBYL,AtBnBI,iBsBmBa,CtBnBX,mBAAmB,AAAC,CAClB,KAAK,CL8gB2B,IAAI,CK7gBpC,YAAY,CNIgC,OAAO,CMHnD,UAAU,CNGkC,OAAO,CMFtD,AsBeL,AtBdI,iBsBca,CtBdX,iBAAiB,AAAC,CAChB,YAAY,CNAgC,OAAO,CMCtD,AsBiBL,AtBxBI,csBwBU,CtBxBR,mBAAmB,AAAC,CAClB,KAAK,CL6gB2B,IAAI,CK5gBpC,YAAY,CNGgC,OAAO,CMFnD,UAAU,CNEkC,OAAO,CMDtD,AsBoBL,AtBnBI,csBmBU,CtBnBR,iBAAiB,AAAC,CAChB,YAAY,CNDgC,OAAO,CMEtD,AsBsBL,AtB7BI,iBsB6Ba,CtB7BX,mBAAmB,AAAC,CAClB,KAAK,CL+gB2B,IAAI,CK9gBpC,YAAY,CNKgC,OAAO,CMJnD,UAAU,CNIkC,OAAO,CMHtD,AsByBL,AtBxBI,iBsBwBa,CtBxBX,iBAAiB,AAAC,CAChB,YAAY,CNCgC,OAAO,CMAtD,AsB2BL,AtBlCI,gBsBkCY,CtBlCV,mBAAmB,AAAC,CAClB,KAAK,CLghB2B,IAAI,CK/gBpC,YAAY,CNMgC,OAAO,CMLnD,UAAU,CNKkC,OAAO,CMJtD,AsB8BL,AtB7BI,gBsB6BY,CtB7BV,iBAAiB,AAAC,CAChB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"} \ No newline at end of file diff --git a/theme_old/styles/web/sass/app/_custom-variables.scss b/theme_old/styles/web/sass/app/_custom-variables.scss deleted file mode 100644 index a47c7e0..0000000 --- a/theme_old/styles/web/sass/app/_custom-variables.scss +++ /dev/null @@ -1,73 +0,0 @@ -//== Gray Shades -//## Different gray shades to be used for our variables and components -$gray-darker: #222222; -$gray-dark: #333333; -$gray: #555555; -$gray-light: #888888; -$gray-primary: #D7D7D7; -$gray-lighter: #EEEEEE; - -//== Step 1: Brand Colors -$brand-default: #DDDDDD; -$brand-primary: #0595DB; -$brand-inverse: #252C36; -$brand-info: #48B0F7; -$brand-success: #76CA02; -$brand-warning: #F99B1D; -$brand-danger: #ED1C24; - -// Used for other variables -$default-border-color: $gray-primary; - -//== Step 3: Typography -$font-family-import: "https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700"; -@if $font-family-import != false { - // Only import, if the import is set - @import url($font-family-import); -} -$font-family-base: "Open Sans", sans-serif; -$font-base-size: 14px; -$font-base-color: #555555; -$link-color: $brand-primary; -$font-size-h1: 31px; -$font-size-h2: 26px; -$font-size-h3: 24px; -$font-size-h4: 18px; -$font-color-detail: $gray-light; -$font-color-headers: #17347B; - -//== Step 2: UI Customization - -// Topbar -$topbar-bg: #FFFFFF; -$navtopbar-border-color: $default-border-color; -$topbar-border-color: $navtopbar-border-color; -$topbar-minimalheight: 60px; -$navtopbar-color: $font-base-color; -$navbar-brand-name: $default-border-color; -$brand-logo: false; -$brand-logo-height: 30px; -$brand-logo-width: 30px; - -// Sidebar -$sidebar-bg: $brand-inverse; -$navsidebar-color: #FFFFFF; -$navsidebar-color-hover: $navsidebar-color; - -// Backgrounds -$bg-color: #FFFFFF; -$bg-color-secondary: #F5F8FD; - -// == Old variables used in theme customizer to the new lib variables -$font-size-default: $font-base-size; -$font-color-default: $font-base-color; -$border-color-default: $default-border-color; -$font-color-header: $font-color-headers; - - -//== Settings -//## Enable or disable your desired framework features -// Use of !important -$important-flex: true; // ./base/flex.scss -$important-spacing: true; // ./base/spacing.scss -$important-helpers: true; // ./helpers/helperclasses.scss diff --git a/theme_old/styles/web/sass/app/_custom.scss b/theme_old/styles/web/sass/app/_custom.scss deleted file mode 100644 index fffc412..0000000 --- a/theme_old/styles/web/sass/app/_custom.scss +++ /dev/null @@ -1 +0,0 @@ -@import "custom-variables"; diff --git a/theme_old/styles/web/sass/core/_legacy/_mxui.scss b/theme_old/styles/web/sass/core/_legacy/_mxui.scss deleted file mode 100644 index a7ad1dd..0000000 --- a/theme_old/styles/web/sass/core/_legacy/_mxui.scss +++ /dev/null @@ -1,3562 +0,0 @@ -/* @preserve - Copyright (c) 2005-2016, Mendix bv. All rights reserved. - See mxclientsystem/licenses.txt for third party licenses that apply. -*/ - - -/* - Essential styles that themes can inherit. - In other words, works but doesn't look great. -*/ - - - -/**** - GENERIC PIECES - ****/ - - .dijitReset { - /* Use this style to null out padding, margin, border in your template elements - so that page specific styles don't break them. - - Use in all TABLE, TR and TD tags. - */ - margin:0; - border:0; - padding:0; - font: inherit; - line-height:normal; - color: inherit; -} -.dj_a11y .dijitReset { - -moz-appearance: none; /* remove predefined high-contrast styling in Firefox */ -} - -.dijitInline { - /* To inline block elements. - Similar to InlineBox below, but this has fewer side-effects in Moz. - Also, apparently works on a DIV as well as a FIELDSET. - */ - display:inline-block; /* webkit and FF3 */ - border:0; - padding:0; - vertical-align:middle; -} - -table.dijitInline { - /* To inline tables with a given width set */ - display:inline-table; - box-sizing: content-box; -moz-box-sizing: content-box; -} - -.dijitHidden { - /* To hide unselected panes in StackContainer etc. */ - position: absolute; /* remove from normal document flow to simulate display: none */ - visibility: hidden; /* hide element from view, but don't break scrolling, see #18612 */ -} -.dijitHidden * { - visibility: hidden !important; /* hide visibility:visible descendants of class=dijitHidden nodes, see #18799 */ -} - -.dijitVisible { - /* To show selected pane in StackContainer etc. */ - display: block !important; /* override user's display:none setting via style setting or indirectly via class */ - position: relative; /* to support setting width/height, see #2033 */ - visibility: visible; -} - -.dj_ie6 .dijitComboBox .dijitInputContainer, -.dijitInputContainer { - /* for positioning of placeHolder */ - overflow: hidden; - float: none !important; /* needed to squeeze the INPUT in */ - position: relative; -} -.dj_ie7 .dijitInputContainer { - float: left !important; /* needed by IE to squeeze the INPUT in */ - clear: left; - display: inline-block !important; /* to fix wrong text alignment in textdir=rtl text box */ -} - -.dj_ie .dijitSelect input, -.dj_ie input.dijitTextBox, -.dj_ie .dijitTextBox input { - font-size: 100%; -} -.dijitSelect .dijitButtonText { - float: left; - vertical-align: top; -} -TABLE.dijitSelect { - padding: 0 !important; /* messes up border alignment */ - border-collapse: separate; /* so jsfiddle works with Normalized CSS checked */ -} -.dijitTextBox .dijitSpinnerButtonContainer, -.dijitTextBox .dijitArrowButtonContainer, -.dijitValidationTextBox .dijitValidationContainer { - float: right; - text-align: center; -} -.dijitSelect input.dijitInputField, -.dijitTextBox input.dijitInputField { - /* override unreasonable user styling of buttons and icons */ - padding-left: 0 !important; - padding-right: 0 !important; -} -.dijitValidationTextBox .dijitValidationContainer { - display: none; -} - -.dijitTeeny { - font-size:1px; - line-height:1px; -} - -.dijitOffScreen { /* these class attributes should supersede any inline positioning style */ - position: absolute !important; - left: -10000px !important; - top: -10000px !important; -} - -/* - * Popup items have a wrapper div (dijitPopup) - * with the real popup inside, and maybe an iframe too - */ -.dijitPopup { - position: absolute; - background-color: transparent; - margin: 0; - border: 0; - padding: 0; - -webkit-overflow-scrolling: touch; -} - -.dijitPositionOnly { - /* Null out all position-related properties */ - padding: 0 !important; - border: 0 !important; - background-color: transparent !important; - background-image: none !important; - height: auto !important; - width: auto !important; -} - -.dijitNonPositionOnly { - /* Null position-related properties */ - float: none !important; - position: static !important; - margin: 0 0 0 0 !important; - vertical-align: middle !important; -} - -.dijitBackgroundIframe { - /* iframe used to prevent problems with PDF or other applets overlaying menus etc */ - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - z-index: -1; - border: 0; - padding: 0; - margin: 0; -} - -.dijitDisplayNone { - /* hide something. Use this as a class rather than element.style so another class can override */ - display:none !important; -} - -.dijitContainer { - /* for all layout containers */ - overflow: hidden; /* need on IE so something can be reduced in size, and so scrollbars aren't temporarily displayed when resizing */ -} - -/**** - A11Y - ****/ -.dj_a11y .dijitIcon, -.dj_a11y div.dijitArrowButtonInner, /* is this only for Spinner? if so, it should be deleted */ -.dj_a11y span.dijitArrowButtonInner, -.dj_a11y img.dijitArrowButtonInner, -.dj_a11y .dijitCalendarIncrementControl, -.dj_a11y .dijitTreeExpando { - /* hide icon nodes in high contrast mode; when necessary they will be replaced by character equivalents - * exception for input.dijitArrowButtonInner, because the icon and character are controlled by the same node */ - display: none; -} -.dijitSpinner div.dijitArrowButtonInner { - display: block; /* override previous rule */ -} - -.dj_a11y .dijitA11ySideArrow { - display: inline !important; /* display text instead */ - cursor: pointer; -} - -/* - * Since we can't use shading in a11y mode, and since the underline indicates today's date, - * use a border to show the selected date. - * Avoid screen jitter when switching selected date by compensating for the selected node's - * border w/padding on other nodes. - */ -.dj_a11y .dijitCalendarDateLabel { - padding: 1px; - border: 0px !important; -} -.dj_a11y .dijitCalendarSelectedDate .dijitCalendarDateLabel { - border-style: solid !important; - border-width: 1px !important; - padding: 0; -} -.dj_a11y .dijitCalendarDateTemplate { - padding-bottom: 0.1em !important; /* otherwise bottom border doesn't appear on IE */ - border: 0px !important; -} -.dj_a11y .dijitButtonNode { - border: black outset medium !important; - - /* In claro, hovering a toolbar button reduces padding and adds a border. - * Not needed in a11y mode since Toolbar buttons always have a border. - */ - padding: 0 !important; -} -.dj_a11y .dijitArrowButton { - padding: 0 !important; -} - -.dj_a11y .dijitButtonContents { - margin: 0.15em; /* Margin needed to make focus outline visible */ -} - -.dj_a11y .dijitTextBoxReadOnly .dijitInputField, -.dj_a11y .dijitTextBoxReadOnly .dijitButtonNode { - border-style: outset!important; - border-width: medium!important; - border-color: #999 !important; - color:#999 !important; -} - -/* button inner contents - labels, icons etc. */ -.dijitButtonNode * { - vertical-align: middle; -} -.dijitSelect .dijitArrowButtonInner, -.dijitButtonNode .dijitArrowButtonInner { - /* the arrow icon node */ - background: no-repeat center; - width: 12px; - height: 12px; - direction: ltr; /* needed by IE/RTL */ -} - -/**** - 3-element borders: ( dijitLeft + dijitStretch + dijitRight ) - These were added for rounded corners on dijit.form.*Button but never actually used. - ****/ - -.dijitLeft { - /* Left part of a 3-element border */ - background-position:left top; - background-repeat:no-repeat; -} - -.dijitStretch { - /* Middle (stretchy) part of a 3-element border */ - white-space:nowrap; /* MOW: move somewhere else */ - background-repeat:repeat-x; -} - -.dijitRight { - /* Right part of a 3-element border */ - background-position:right top; - background-repeat:no-repeat; -} - -/* Buttons */ -.dj_gecko .dj_a11y .dijitButtonDisabled .dijitButtonNode { - opacity: 0.5; -} - -.dijitToggleButton, -.dijitButton, -.dijitDropDownButton, -.dijitComboButton { - /* outside of button */ - margin: 0.2em; - vertical-align: middle; -} - -.dijitButtonContents { - display: block; /* to make focus border rectangular */ -} -td.dijitButtonContents { - display: table-cell; /* but don't affect Select, ComboButton */ -} - -.dijitButtonNode img { - /* make text and images line up cleanly */ - vertical-align:middle; - /*margin-bottom:.2em;*/ -} - -.dijitToolbar .dijitComboButton { - /* because Toolbar only draws a border around the hovered thing */ - border-collapse: separate; -} - -.dijitToolbar .dijitToggleButton, -.dijitToolbar .dijitButton, -.dijitToolbar .dijitDropDownButton, -.dijitToolbar .dijitComboButton { - margin: 0; -} - -.dijitToolbar .dijitButtonContents { - /* just because it used to be this way */ - padding: 1px 2px; -} - - -.dj_webkit .dijitToolbar .dijitDropDownButton { - padding-left: 0.3em; -} -.dj_gecko .dijitToolbar .dijitButtonNode::-moz-focus-inner { - padding:0; -} - -.dijitSelect { - border:1px solid gray; -} -.dijitButtonNode { - /* Node that is acting as a button -- may or may not be a BUTTON element */ - border:1px solid gray; - margin:0; - line-height:normal; - vertical-align: middle; - text-align:center; - white-space: nowrap; -} -.dj_webkit .dijitSpinner .dijitSpinnerButtonContainer { - /* apparent WebKit bug where messing with the font coupled with line-height:normal X 2 (dijitReset & dijitButtonNode) - can be different than just a single line-height:normal, visible in InlineEditBox/Spinner */ - line-height:inherit; -} -.dijitTextBox .dijitButtonNode { - border-width: 0; -} - -.dijitSelect, -.dijitSelect *, -.dijitButtonNode, -.dijitButtonNode * { - cursor: pointer; - -webkit-tap-highlight-color: transparent; -} - -.dj_ie .dijitButtonNode { - /* ensure hasLayout */ - zoom: 1; -} - -.dj_ie .dijitButtonNode button { - /* - disgusting hack to get rid of spurious padding around button elements - on IE. MSIE is truly the web's boat anchor. - */ - overflow: visible; -} - -div.dijitArrowButton { - float: right; -} - -/****** - TextBox related. - Everything that has an -*******/ - -.dijitTextBox { - border: solid black 1px; - width: 15em; /* need to set default size on outer node since inner nodes say and
    . user can override */ - vertical-align: middle; -} - -.dijitTextBoxReadOnly, -.dijitTextBoxDisabled { - color: gray; -} -.dj_safari .dijitTextBoxDisabled input { - color: #B0B0B0; /* because Safari lightens disabled input/textarea no matter what color you specify */ -} -.dj_safari textarea.dijitTextAreaDisabled { - color: #333; /* because Safari lightens disabled input/textarea no matter what color you specify */ -} -.dj_gecko .dijitTextBoxReadOnly input.dijitInputField, /* disable arrow and validation presentation inputs but allow real input for text selection */ -.dj_gecko .dijitTextBoxDisabled input { - -moz-user-input: none; /* prevent focus of disabled textbox buttons */ -} - -.dijitPlaceHolder { - /* hint text that appears in a textbox until user starts typing */ - color: #AAAAAA; - font-style: italic; - position: absolute; - top: 0; - left: 0; - white-space: nowrap; - pointer-events: none; /* so cut/paste context menu shows up when right clicking */ -} - -.dijitTimeTextBox { - width: 8em; -} - -/* rules for webkit to deal with fuzzy blue focus border */ -.dijitTextBox input:focus { - outline: none; /* blue fuzzy line looks wrong on combobox or something w/validation icon showing */ -} -.dijitTextBoxFocused { - outline: 5px -webkit-focus-ring-color; -} - -.dijitSelect input, -.dijitTextBox input { - float: left; /* needed by IE to remove secret margin */ -} -.dj_ie6 input.dijitTextBox, -.dj_ie6 .dijitTextBox input { - float: none; -} -.dijitInputInner { - /* for when an is embedded inside an inline-block
    with a size and border */ - border:0 !important; - background-color:transparent !important; - width:100% !important; - /* IE dislikes horizontal tweaking combined with width:100% so punish everyone for consistency */ - padding-left: 0 !important; - padding-right: 0 !important; - margin-left: 0 !important; - margin-right: 0 !important; -} -.dj_a11y .dijitTextBox input { - margin: 0 !important; -} -.dijitValidationTextBoxError input.dijitValidationInner, -.dijitSelect input, -.dijitTextBox input.dijitArrowButtonInner { - /* used to display arrow icon/validation icon, or in arrow character in high contrast mode. - * The css below is a trick to hide the character in non-high-contrast mode - */ - text-indent: -2em !important; - direction: ltr !important; - text-align: left !important; - height: auto !important; -} -.dj_ie .dijitSelect input, -.dj_ie .dijitTextBox input, -.dj_ie input.dijitTextBox { - overflow-y: visible; /* inputs need help expanding when padding is added or line-height is adjusted */ - line-height: normal; /* strict mode */ -} -.dijitSelect .dijitSelectLabel span { - line-height: 100%; -} -.dj_ie .dijitSelect .dijitSelectLabel { - line-height: normal; -} -.dj_ie6 .dijitSelect .dijitSelectLabel, -.dj_ie7 .dijitSelect .dijitSelectLabel, -.dj_ie8 .dijitSelect .dijitSelectLabel, -.dj_iequirks .dijitSelect .dijitSelectLabel, -.dijitSelect td, -.dj_ie6 .dijitSelect input, -.dj_iequirks .dijitSelect input, -.dj_ie6 .dijitSelect .dijitValidationContainer, -.dj_ie6 .dijitTextBox input, -.dj_ie6 input.dijitTextBox, -.dj_iequirks .dijitTextBox input.dijitValidationInner, -.dj_iequirks .dijitTextBox input.dijitArrowButtonInner, -.dj_iequirks .dijitTextBox input.dijitSpinnerButtonInner, -.dj_iequirks .dijitTextBox input.dijitInputInner, -.dj_iequirks input.dijitTextBox { - line-height: 100%; /* IE7 problem where the icon is vertically way too low w/o this */ -} -.dj_a11y input.dijitValidationInner, -.dj_a11y input.dijitArrowButtonInner { - /* (in high contrast mode) revert rules from above so character displays */ - text-indent: 0 !important; - width: 1em !important; - color: black !important; -} -.dijitValidationTextBoxError .dijitValidationContainer { - display: inline; - cursor: default; -} - -/* ComboBox & Spinner */ - -.dijitSpinner .dijitSpinnerButtonContainer, -.dijitComboBox .dijitArrowButtonContainer { - /* dividing line between input area and up/down button(s) for ComboBox and Spinner */ - border-width: 0 0 0 1px !important; /* !important needed due to wayward ".theme .dijitButtonNode" rules */ -} -.dj_a11y .dijitSelect .dijitArrowButtonContainer, -.dijitToolbar .dijitComboBox .dijitArrowButtonContainer { - /* overrides above rule plus mirror-image rule in dijit_rtl.css to have no divider when ComboBox in Toolbar */ - border-width: 0 !important; -} - -.dijitComboBoxMenu { - /* Drop down menu is implemented as
    • ... but we don't want circles before each item */ - list-style-type: none; -} -.dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode { - /* dividing line between input area and up/down button(s) for ComboBox and Spinner */ - border-width: 0; -} -.dj_ie .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode { - clear: both; /* IE workaround */ -} - -.dj_ie .dijitToolbar .dijitComboBox { - /* make combobox buttons align properly with other buttons in a toolbar */ - vertical-align: middle; -} - -/* Spinner */ - -.dijitTextBox .dijitSpinnerButtonContainer { - width: 1em; - position: relative !important; - overflow: hidden; -} -.dijitSpinner .dijitSpinnerButtonInner { - width:1em; - visibility:hidden !important; /* just a sizing element */ - overflow-x:hidden; -} -.dijitComboBox .dijitButtonNode, -.dijitSpinnerButtonContainer .dijitButtonNode { - border-width: 0; -} -.dj_a11y .dijitSpinnerButtonContainer .dijitButtonNode { - border-width: 0px !important; - border-style: solid !important; -} -.dj_a11y .dijitTextBox .dijitSpinnerButtonContainer, -.dj_a11y .dijitSpinner .dijitArrowButtonInner, -.dj_a11y .dijitSpinnerButtonContainer input { - width: 1em !important; -} -.dj_a11y .dijitSpinner .dijitArrowButtonInner { - margin: 0 auto !important; /* should auto-center */ -} -.dj_ie .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { - padding-left: 0.3em !important; - padding-right: 0.3em !important; - margin-left: 0.3em !important; - margin-right: 0.3em !important; - width: 1.4em !important; -} -.dj_ie7 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { - padding-left: 0 !important; /* manually center INPUT: character is .5em and total width = 1em */ - padding-right: 0 !important; - width: 1em !important; -} -.dj_ie6 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { - margin-left: 0.1em !important; - margin-right: 0.1em !important; - width: 1em !important; -} -.dj_iequirks .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { - margin-left: 0 !important; - margin-right: 0 !important; - width: 2em !important; -} -.dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton { - /* note: .dijitInputLayoutContainer makes this rule override .dijitArrowButton settings - * for dijit.form.Button - */ - padding: 0; - position: absolute !important; - right: 0; - float: none; - height: 50%; - width: 100%; - bottom: auto; - left: 0; - right: auto; -} -.dj_iequirks .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton { - width: auto; -} -.dj_a11y .dijitSpinnerButtonContainer .dijitArrowButton { - overflow: visible !important; -} -.dijitSpinner .dijitSpinnerButtonContainer .dijitDownArrowButton { - top: 50%; - border-top-width: 1px !important; -} -.dijitSpinner .dijitSpinnerButtonContainer .dijitUpArrowButton { - top: 0; -} -.dijitSpinner .dijitArrowButtonInner { - margin: auto; - overflow-x: hidden; - height: 100% !important; -} -.dj_iequirks .dijitSpinner .dijitArrowButtonInner { - height: auto !important; -} -.dijitSpinner .dijitArrowButtonInner .dijitInputField { - -moz-transform: scale(0.5); - -moz-transform-origin: center top; - -webkit-transform: scale(0.5); - -webkit-transform-origin: center top; - -o-transform: scale(0.5); - -o-transform-origin: center top; - transform: scale(0.5); - transform-origin: left top; - padding-top: 0; - padding-bottom: 0; - padding-left: 0 !important; - padding-right: 0 !important; - width: 100%; - visibility: hidden; -} -.dj_ie .dijitSpinner .dijitArrowButtonInner .dijitInputField { - zoom: 50%; /* emulate transform: scale(0.5) */ -} -.dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButtonInner { - overflow: hidden; -} - -.dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton { - width: 100%; -} -.dj_iequirks .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton { - width: 1em; /* matches .dj_a11y .dijitTextBox .dijitSpinnerButtonContainer rule - 100% is the whole screen width in quirks */ -} -.dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { - vertical-align:top; - visibility: visible; -} -.dj_a11y .dijitSpinnerButtonContainer { - width: 1em; -} - -/**** - dijit.form.CheckBox - & - dijit.form.RadioButton - ****/ - -.dijitCheckBox, -.dijitRadio, -.dijitCheckBoxInput { - padding: 0; - border: 0; - width: 16px; - height: 16px; - background-position:center center; - background-repeat:no-repeat; - overflow: hidden; -} - -.dijitCheckBox input, -.dijitRadio input { - margin: 0; - padding: 0; - display: block; -} - -.dijitCheckBoxInput { - /* place the actual input on top, but invisible */ - opacity: 0; -} - -.dj_ie .dijitCheckBoxInput { - filter: alpha(opacity=0); -} - -.dj_a11y .dijitCheckBox, -.dj_a11y .dijitRadio { - /* in a11y mode we display the native checkbox (not the icon), so don't restrict the size */ - width: auto !important; - height: auto !important; -} -.dj_a11y .dijitCheckBoxInput { - opacity: 1; - filter: none; - width: auto; - height: auto; -} - -.dj_a11y .dijitFocusedLabel { - /* for checkboxes or radio buttons in high contrast mode, use border rather than outline to indicate focus (outline does not work in FF)*/ - border: 1px dotted; - outline: 0px !important; -} - -/**** - dijit.ProgressBar - ****/ - -.dijitProgressBar { - z-index: 0; /* so z-index settings below have no effect outside of the ProgressBar */ -} -.dijitProgressBarEmpty { - /* outer container and background of the bar that's not finished yet*/ - position:relative;overflow:hidden; - border:1px solid black; /* a11y: border necessary for high-contrast mode */ - z-index:0; /* establish a stacking context for this progress bar */ -} - -.dijitProgressBarFull { - /* outer container for background of bar that is finished */ - position:absolute; - overflow:hidden; - z-index:-1; - top:0; - width:100%; -} -.dj_ie6 .dijitProgressBarFull { - height:1.6em; -} - -.dijitProgressBarTile { - /* inner container for finished portion */ - position:absolute; - overflow:hidden; - top:0; - left:0; - bottom:0; - right:0; - margin:0; - padding:0; - width: 100%; /* needed for IE/quirks */ - height:auto; - background-color:#aaa; - background-attachment: fixed; -} - -.dj_a11y .dijitProgressBarTile { - /* a11y: The border provides visibility in high-contrast mode */ - border-width:2px; - border-style:solid; - background-color:transparent !important; -} - -.dj_ie6 .dijitProgressBarTile { - /* width:auto works in IE6 with position:static but not position:absolute */ - position:static; - /* height:auto or 100% does not work in IE6 */ - height:1.6em; -} - -.dijitProgressBarIndeterminate .dijitProgressBarTile { - /* animated gif for 'indeterminate' mode */ -} - -.dijitProgressBarIndeterminateHighContrastImage { - display:none; -} - -.dj_a11y .dijitProgressBarIndeterminate .dijitProgressBarIndeterminateHighContrastImage { - display:block; - position:absolute; - top:0; - bottom:0; - margin:0; - padding:0; - width:100%; - height:auto; -} - -.dijitProgressBarLabel { - display:block; - position:static; - width:100%; - text-align:center; - background-color:transparent !important; -} - -/**** - dijit.Tooltip - ****/ - -.dijitTooltip { - position: absolute; - z-index: 2000; - display: block; - /* make visible but off screen */ - left: 0; - top: -10000px; - overflow: visible; -} - -.dijitTooltipContainer { - border: solid black 2px; - background: #b8b5b5; - color: black; - font-size: small; -} - -.dijitTooltipFocusNode { - padding: 2px 2px 2px 2px; -} - -.dijitTooltipConnector { - position: absolute; -} -.dj_a11y .dijitTooltipConnector { - display: none; /* won't show b/c it's background-image; hide to avoid border gap */ -} - -.dijitTooltipData { - display:none; -} - -/* Layout widgets. This is essential CSS to make layout work (it isn't "styling" CSS) - make sure that the position:absolute in dijitAlign* overrides other classes */ - -.dijitLayoutContainer { - position: relative; - display: block; - overflow: hidden; -} - -.dijitAlignTop, -.dijitAlignBottom, -.dijitAlignLeft, -.dijitAlignRight { - position: absolute; - overflow: hidden; -} - -body .dijitAlignClient { position: absolute; } - -/* - * BorderContainer - * - * .dijitBorderContainer is a stylized layout where panes have border and margin. - * .dijitBorderContainerNoGutter is a raw layout. - */ -.dijitBorderContainer, .dijitBorderContainerNoGutter { - position:relative; - overflow: hidden; - z-index: 0; /* so z-index settings below have no effect outside of the BorderContainer */ -} - -.dijitBorderContainerPane, -.dijitBorderContainerNoGutterPane { - position: absolute !important; /* !important to override position:relative in dijitTabContainer etc. */ - z-index: 2; /* above the splitters so that off-by-one browser errors don't cover up border of pane */ -} - -.dijitBorderContainer > .dijitTextArea { - /* On Safari, for SimpleTextArea inside a BorderContainer, - don't want to display the grip to resize */ - resize: none; -} - -.dijitGutter { - /* gutter is just a place holder for empty space between panes in BorderContainer */ - position: absolute; - font-size: 1px; /* needed by IE6 even though div is empty, otherwise goes to 15px */ -} - -/* SplitContainer - - 'V' == container that splits vertically (up/down) - 'H' = horizontal (left/right) -*/ - -.dijitSplitter { - position: absolute; - overflow: hidden; - z-index: 10; /* above the panes so that splitter focus is visible on FF, see #7583*/ - background-color: #fff; - border-color: gray; - border-style: solid; - border-width: 0; -} -.dj_ie .dijitSplitter { - z-index: 1; /* behind the panes so that pane borders aren't obscured see test_Gui.html/[14392] */ -} - -.dijitSplitterActive { - z-index: 11 !important; -} - -.dijitSplitterCover { - position:absolute; - z-index:-1; - top:0; - left:0; - width:100%; - height:100%; -} - -.dijitSplitterCoverActive { - z-index:3 !important; -} - -/* #6945: stop mouse events */ -.dj_ie .dijitSplitterCover { - background: white; - opacity: 0; -} -.dj_ie6 .dijitSplitterCover, -.dj_ie7 .dijitSplitterCover, -.dj_ie8 .dijitSplitterCover { - filter: alpha(opacity=0); -} - -.dijitSplitterH { - height: 7px; - border-top:1px; - border-bottom:1px; - cursor: row-resize; - -webkit-tap-highlight-color: transparent; -} -.dijitSplitterV { - width: 7px; - border-left:1px; - border-right:1px; - cursor: col-resize; - -webkit-tap-highlight-color: transparent; -} -.dijitSplitContainer { - position: relative; - overflow: hidden; - display: block; -} - -.dijitSplitPane { - position: absolute; -} - -.dijitSplitContainerSizerH, -.dijitSplitContainerSizerV { - position:absolute; - font-size: 1px; - background-color: ThreeDFace; - border: 1px solid; - border-color: ThreeDHighlight ThreeDShadow ThreeDShadow ThreeDHighlight; - margin: 0; -} - -.dijitSplitContainerSizerH .thumb, .dijitSplitterV .dijitSplitterThumb { - overflow:hidden; - position:absolute; - top:49%; -} - -.dijitSplitContainerSizerV .thumb, .dijitSplitterH .dijitSplitterThumb { - position:absolute; - left:49%; -} - -.dijitSplitterShadow, -.dijitSplitContainerVirtualSizerH, -.dijitSplitContainerVirtualSizerV { - font-size: 1px; - background-color: ThreeDShadow; - -moz-opacity: 0.5; - opacity: 0.5; - filter: Alpha(Opacity=50); - margin: 0; -} - -.dijitSplitContainerSizerH, .dijitSplitContainerVirtualSizerH { - cursor: col-resize; -} - -.dijitSplitContainerSizerV, .dijitSplitContainerVirtualSizerV { - cursor: row-resize; -} - -.dj_a11y .dijitSplitterH { - border-top:1px solid #d3d3d3 !important; - border-bottom:1px solid #d3d3d3 !important; -} -.dj_a11y .dijitSplitterV { - border-left:1px solid #d3d3d3 !important; - border-right:1px solid #d3d3d3 !important; -} - -/* ContentPane */ - -.dijitContentPane { - display: block; - overflow: auto; /* if we don't have this (or overflow:hidden), then Widget.resizeTo() doesn't make sense for ContentPane */ - -webkit-overflow-scrolling: touch; -} - -.dijitContentPaneSingleChild { - /* - * if the ContentPane holds a single layout widget child which is being sized to match the content pane, - * then the ContentPane should never get a scrollbar (but it does due to browser bugs, see #9449 - */ - overflow: hidden; -} - -.dijitContentPaneLoading .dijitIconLoading, -.dijitContentPaneError .dijitIconError { - margin-right: 9px; -} - -/* TitlePane and Fieldset */ - -.dijitTitlePane { - display: block; - overflow: hidden; -} -.dijitFieldset { - border: 1px solid gray; -} -.dijitTitlePaneTitle, .dijitFieldsetTitle { - cursor: pointer; - -webkit-tap-highlight-color: transparent; -} -.dijitTitlePaneTitleFixedOpen, .dijitTitlePaneTitleFixedClosed, -.dijitFieldsetTitleFixedOpen, .dijitFieldsetTitleFixedClosed { - /* TitlePane or Fieldset that cannot be toggled */ - cursor: default; -} -.dijitTitlePaneTitle * { - vertical-align: middle; -} -.dijitTitlePane .dijitArrowNodeInner, .dijitFieldset .dijitArrowNodeInner { - /* normally, hide arrow text in favor of icon */ - display: none; -} -.dj_a11y .dijitTitlePane .dijitArrowNodeInner, .dj_a11y .dijitFieldset .dijitArrowNodeInner { - /* ... except in a11y mode, then show text arrow */ - display: inline; - font-family: monospace; /* because - and + are different widths */ -} -.dj_a11y .dijitTitlePane .dijitArrowNode, .dj_a11y .dijitFieldset .dijitArrowNode { - /* ... and hide icon (TODO: just point dijitIcon class on the icon, and it hides automatically) */ - display: none; -} -.dijitTitlePaneTitleFixedOpen .dijitArrowNode, .dijitTitlePaneTitleFixedOpen .dijitArrowNodeInner, -.dijitTitlePaneTitleFixedClosed .dijitArrowNode, .dijitTitlePaneTitleFixedClosed .dijitArrowNodeInner, -.dijitFieldsetTitleFixedOpen .dijitArrowNode, .dijitFieldsetTitleFixedOpen .dijitArrowNodeInner, -.dijitFieldsetTitleFixedClosed .dijitArrowNode, .dijitFieldsetTitleFixedClosed .dijitArrowNodeInner { - /* don't show the open close icon or text arrow; it makes the user think the pane is closable */ - display: none !important; /* !important to override above a11y rules to show text arrow */ -} - -.dj_ie6 .dijitTitlePaneContentOuter, -.dj_ie6 .dijitTitlePane .dijitTitlePaneTitle { - /* force hasLayout to ensure borders etc, show up */ - zoom: 1; -} - -/* Color Palette - * Sizes designed so that table cell positions match icons in underlying image, - * which appear at 20x20 intervals. - */ - -.dijitColorPalette { - border: 1px solid #999; - background: #fff; - position: relative; -} - -.dijitColorPalette .dijitPaletteTable { - /* Table that holds the palette cells, and overlays image file with color swatches. - * padding/margin to align table with image. - */ - padding: 2px 3px 3px 3px; - position: relative; - overflow: hidden; - outline: 0; - border-collapse: separate; -} -.dj_ie6 .dijitColorPalette .dijitPaletteTable, -.dj_ie7 .dijitColorPalette .dijitPaletteTable, -.dj_iequirks .dijitColorPalette .dijitPaletteTable { - /* using padding above so that focus border isn't cutoff on moz/webkit, - * but using margin on IE because padding doesn't seem to work - */ - padding: 0; - margin: 2px 3px 3px 3px; -} - -.dijitColorPalette .dijitPaletteCell { - /*
    in the */ - font-size: 1px; - vertical-align: middle; - text-align: center; - background: none; -} -.dijitColorPalette .dijitPaletteImg { - /* Called dijitPaletteImg for back-compat, this actually wraps the color swatch with a border and padding */ - padding: 1px; /* white area between gray border and color swatch */ - border: 1px solid #999; - margin: 2px 1px; - cursor: default; - font-size: 1px; /* prevent from getting bigger just to hold a character */ -} -.dj_gecko .dijitColorPalette .dijitPaletteImg { - padding-bottom: 0; /* workaround rendering glitch on FF, it adds an extra pixel at the bottom */ -} -.dijitColorPalette .dijitColorPaletteSwatch { - /* the actual part where the color is */ - width: 14px; - height: 12px; -} -.dijitPaletteTable td { - padding: 0; -} -.dijitColorPalette .dijitPaletteCell:hover .dijitPaletteImg { - /* hovered color swatch */ - border: 1px solid #000; -} - -.dijitColorPalette .dijitPaletteCell:active .dijitPaletteImg, -.dijitColorPalette .dijitPaletteTable .dijitPaletteCellSelected .dijitPaletteImg { - border: 2px solid #000; - margin: 1px 0; /* reduce margin to compensate for increased border */ -} - - -.dj_a11y .dijitColorPalette .dijitPaletteTable, -.dj_a11y .dijitColorPalette .dijitPaletteTable * { - /* table cells are to catch events, but the swatches are in the PaletteImg behind the table */ - background-color: transparent !important; -} - -/* AccordionContainer */ - -.dijitAccordionContainer { - border:1px solid #b7b7b7; - border-top:0 !important; -} -.dijitAccordionTitle { - cursor: pointer; - -webkit-tap-highlight-color: transparent; -} -.dijitAccordionTitleSelected { - cursor: default; -} - -/* images off, high-contrast mode styles */ -.dijitAccordionTitle .arrowTextUp, -.dijitAccordionTitle .arrowTextDown { - display: none; - font-size: 0.65em; - font-weight: normal !important; -} - -.dj_a11y .dijitAccordionTitle .arrowTextUp, -.dj_a11y .dijitAccordionTitleSelected .arrowTextDown { - display: inline; -} - -.dj_a11y .dijitAccordionTitleSelected .arrowTextUp { - display: none; -} - -.dijitAccordionChildWrapper { - /* this is the node whose height is adjusted */ - overflow: hidden; -} - -/* Calendar */ - -.dijitCalendarContainer table { - width: auto; /* in case user has specified a width for the TABLE nodes, see #10553 */ - clear: both; /* clear margin created for left/right month arrows; needed on IE10 for CalendarLite */ -} -.dijitCalendarContainer th, .dijitCalendarContainer td { - padding: 0; - vertical-align: middle; -} - -.dijitCalendarMonthContainer { - text-align: center; -} -.dijitCalendarDecrementArrow { - float: left; -} -.dijitCalendarIncrementArrow { - float: right; -} - -.dijitCalendarYearLabel { - white-space: nowrap; /* make sure previous, current, and next year appear on same row */ -} - -.dijitCalendarNextYear { - margin:0 0 0 0.55em; -} - -.dijitCalendarPreviousYear { - margin:0 0.55em 0 0; -} - -.dijitCalendarIncrementControl { - vertical-align: middle; -} - -.dijitCalendarIncrementControl, -.dijitCalendarDateTemplate, -.dijitCalendarMonthLabel, -.dijitCalendarPreviousYear, -.dijitCalendarNextYear { - cursor: pointer; - -webkit-tap-highlight-color: transparent; -} - -.dijitCalendarDisabledDate { - color: gray; - text-decoration: line-through; - cursor: default; -} - -.dijitSpacer { - /* don't display it, but make it affect the width */ - position: relative; - height: 1px; - overflow: hidden; - visibility: hidden; -} - -/* Styling for month drop down list */ - -.dijitCalendarMonthMenu .dijitCalendarMonthLabel { - text-align:center; -} - -/* Menu */ - -.dijitMenu { - border:1px solid black; - background-color:white; -} -.dijitMenuTable { - border-collapse:collapse; - border-width:0; - background-color:white; -} - -/* workaround for webkit bug #8427, remove this when it is fixed upstream */ -.dj_webkit .dijitMenuTable td[colspan="2"]{ - border-right:hidden; -} - -.dijitMenuItem { - text-align: left; - white-space: nowrap; - padding:.1em .2em; - cursor:pointer; - -webkit-tap-highlight-color: transparent; -} - -/* -No need to show a focus border since it's obvious from the shading, and there's a .dj_a11y .dijitMenuItemSelected -rule below that handles the high contrast case when there's no shading. -Hiding the focus border also works around webkit bug https://code.google.com/p/chromium/issues/detail?id=125779. -*/ -.dijitMenuItem:focus { - outline: none -} - -.dijitMenuPassive .dijitMenuItemHover, -.dijitMenuItemSelected { - /* - * dijitMenuItemHover refers to actual mouse over - * dijitMenuItemSelected is used after a menu has been "activated" by - * clicking it, tabbing into it, or being opened from a parent menu, - * and denotes that the menu item has focus or that focus is on a child - * menu - */ - background-color:black; - color:white; -} - -.dijitMenuItemIcon, .dijitMenuExpand { - background-repeat: no-repeat; -} - -.dijitMenuItemDisabled * { - /* for a disabled menu item, just set it to mostly transparent */ - opacity:0.5; - cursor:default; -} -.dj_ie .dj_a11y .dijitMenuItemDisabled, -.dj_ie .dj_a11y .dijitMenuItemDisabled *, -.dj_ie .dijitMenuItemDisabled * { - color: gray; - filter: alpha(opacity=35); -} - -.dijitMenuItemLabel { - vertical-align: middle; -} - -.dj_a11y .dijitMenuItemSelected { - border: 1px dotted black !important; /* for 2.0 use outline instead, to prevent jitter */ -} - -.dj_a11y .dijitMenuItemSelected .dijitMenuItemLabel { - border-width: 1px; - border-style: solid; -} -.dj_ie8 .dj_a11y .dijitMenuItemLabel { - position:static; -} - -.dijitMenuExpandA11y { - display: none; -} -.dj_a11y .dijitMenuExpandA11y { - display: inline; -} - -.dijitMenuSeparator td { - border: 0; - padding: 0; -} - -/* separator can be two pixels -- set border of either one to 0 to have only one */ -.dijitMenuSeparatorTop { - height: 50%; - margin: 0; - margin-top:3px; - font-size: 1px; -} - -.dijitMenuSeparatorBottom { - height: 50%; - margin: 0; - margin-bottom:3px; - font-size: 1px; -} - -/* CheckedMenuItem and RadioMenuItem */ -.dijitMenuItemIconChar { - display: none; /* don't display except in high contrast mode */ - visibility: hidden; /* for high contrast mode when menuitem is unchecked: leave space for when it is checked */ -} -.dj_a11y .dijitMenuItemIconChar { - display: inline; /* display character in high contrast mode, since icon doesn't show */ -} -.dijitCheckedMenuItemChecked .dijitMenuItemIconChar, -.dijitRadioMenuItemChecked .dijitMenuItemIconChar { - visibility: visible; /* menuitem is checked */ -} -.dj_ie .dj_a11y .dijitMenuBar .dijitMenuItem { - /* so bottom border of MenuBar appears on IE7 in high-contrast mode */ - margin: 0; -} - -/* StackContainer */ - -.dijitStackController .dijitToggleButtonChecked * { - cursor: default; /* because pressing it has no effect */ -} - -/*** -TabContainer - -Main class hierarchy: - -.dijitTabContainer - the whole TabContainer - .dijitTabController / .dijitTabListContainer-top - wrapper for tab buttons, scroll buttons - .dijitTabListWrapper / .dijitTabContainerTopStrip - outer wrapper for tab buttons (normal width) - .nowrapTabStrip / .dijitTabContainerTop-tabs - inner wrapper for tab buttons (50K width) - .dijitTabPaneWrapper - wrapper for content panes, has all borders except the one between content and tabs -***/ - -.dijitTabContainer { - z-index: 0; /* so z-index settings below have no effect outside of the TabContainer */ - overflow: visible; /* prevent off-by-one-pixel errors from hiding bottom border (opposite tab labels) */ -} -.dj_ie6 .dijitTabContainer { - /* workaround IE6 problem when tall content overflows TabContainer, see editor/test_FullScreen.html */ - overflow: hidden; - -} -.dijitTabContainerNoLayout { - width: 100%; /* otherwise ScrollingTabController goes to 50K pixels wide */ -} - -.dijitTabContainerBottom-tabs, -.dijitTabContainerTop-tabs, -.dijitTabContainerLeft-tabs, -.dijitTabContainerRight-tabs { - z-index: 1; - overflow: visible !important; /* so tabs can cover up border adjacent to container */ -} - -.dijitTabController { - z-index: 1; -} -.dijitTabContainerBottom-container, -.dijitTabContainerTop-container, -.dijitTabContainerLeft-container, -.dijitTabContainerRight-container { - z-index:0; - overflow: hidden; - border: 1px solid black; -} -.nowrapTabStrip { - width: 50000px; - display: block; - position: relative; - text-align: left; /* just in case ancestor has non-standard setting */ - z-index: 1; -} -.dijitTabListWrapper { - overflow: hidden; - z-index: 1; -} - -.dj_a11y .tabStripButton img { - /* hide the icons (or rather the empty space where they normally appear) because text will appear instead */ - display: none; -} - -.dijitTabContainerTop-tabs { - border-bottom: 1px solid black; -} -.dijitTabContainerTop-container { - border-top: 0; -} - -.dijitTabContainerLeft-tabs { - border-right: 1px solid black; - float: left; /* needed for IE7 RTL mode */ -} -.dijitTabContainerLeft-container { - border-left: 0; -} - -.dijitTabContainerBottom-tabs { - border-top: 1px solid black; -} -.dijitTabContainerBottom-container { - border-bottom: 0; -} - -.dijitTabContainerRight-tabs { - border-left: 1px solid black; - float: left; /* needed for IE7 RTL mode */ -} -.dijitTabContainerRight-container { - border-right: 0; -} - -div.dijitTabDisabled, .dj_ie div.dijitTabDisabled { - cursor: auto; -} - -.dijitTab { - position:relative; - cursor:pointer; - -webkit-tap-highlight-color: transparent; - white-space:nowrap; - z-index:3; -} -.dijitTab * { - /* make tab icons and close icon line up w/text */ - vertical-align: middle; -} -.dijitTabChecked { - cursor: default; /* because clicking will have no effect */ -} - -.dijitTabContainerTop-tabs .dijitTab { - top: 1px; /* to overlap border on .dijitTabContainerTop-tabs */ -} -.dijitTabContainerBottom-tabs .dijitTab { - top: -1px; /* to overlap border on .dijitTabContainerBottom-tabs */ -} -.dijitTabContainerLeft-tabs .dijitTab { - left: 1px; /* to overlap border on .dijitTabContainerLeft-tabs */ -} -.dijitTabContainerRight-tabs .dijitTab { - left: -1px; /* to overlap border on .dijitTabContainerRight-tabs */ -} - - -.dijitTabContainerTop-tabs .dijitTab, -.dijitTabContainerBottom-tabs .dijitTab { - /* Inline-block */ - display:inline-block; /* webkit and FF3 */ -} - -.tabStripButton { - z-index: 12; -} - -.dijitTabButtonDisabled .tabStripButton { - display: none; -} - - -.dijitTabCloseButton { - margin-left: 1em; -} - -.dijitTabCloseText { - display:none; -} - -.dijitTab .tabLabel { - /* make sure tabs w/close button and w/out close button are same height, even w/small (<15px) font. - * assumes <=15px height for close button icon. - */ - min-height: 15px; - display: inline-block; -} -.dijitNoIcon { - /* applied to / node when there is no icon specified */ - display: none; -} -.dj_ie6 .dijitTab .dijitNoIcon { - /* because min-height (on .tabLabel, above) doesn't work on IE6 */ - display: inline; - height: 15px; - width: 1px; -} - -/* images off, high-contrast mode styles */ - -.dj_a11y .dijitTabCloseButton { - background-image: none !important; - width: auto !important; - height: auto !important; -} - -.dj_a11y .dijitTabCloseText { - display: inline; -} - -.dijitTabPane, -.dijitStackContainer-child, -.dijitAccordionContainer-child { - /* children of TabContainer, StackContainer, and AccordionContainer shouldn't have borders - * b/c a border is already there from the TabContainer/StackContainer/AccordionContainer itself. - */ - border: none !important; -} - -/* InlineEditBox */ -.dijitInlineEditBoxDisplayMode { - border: 1px solid transparent; /* so keyline (border) on hover can appear without screen jump */ - cursor: text; -} - -.dj_a11y .dijitInlineEditBoxDisplayMode, -.dj_ie6 .dijitInlineEditBoxDisplayMode { - /* except that IE6 doesn't support transparent borders, nor does high contrast mode */ - border: none; -} - -.dijitInlineEditBoxDisplayModeHover, -.dj_a11y .dijitInlineEditBoxDisplayModeHover, -.dj_ie6 .dijitInlineEditBoxDisplayModeHover { - /* An InlineEditBox in view mode (click this to edit the text) */ - background-color: #e2ebf2; - border: solid 1px black; -} - -.dijitInlineEditBoxDisplayModeDisabled { - cursor: default; -} - -/* Tree */ -.dijitTree { - overflow: auto; /* for scrollbars when Tree has a height setting, and to prevent wrapping around float elements, see #11491 */ - -webkit-tap-highlight-color: transparent; -} - -.dijitTreeContainer { - float: left; /* for correct highlighting during horizontal scroll, see #16132 */ -} - -.dijitTreeIndent { - /* amount to indent each tree node (relative to parent node) */ - width: 19px; -} - -.dijitTreeRow, .dijitTreeContent { - white-space: nowrap; -} - -.dj_ie .dijitTreeLabel:focus { - /* workaround IE9 behavior where down arrowing through TreeNodes doesn't show focus outline */ - outline: 1px dotted black; -} - -.dijitTreeRow img { - /* make the expando and folder icons line up with the label */ - vertical-align: middle; -} - -.dijitTreeContent { - cursor: default; -} - -.dijitExpandoText { - display: none; -} - -.dj_a11y .dijitExpandoText { - display: inline; - padding-left: 10px; - padding-right: 10px; - font-family: monospace; - border-style: solid; - border-width: thin; - cursor: pointer; -} - -.dijitTreeLabel { - margin: 0 4px; -} - -/* Dialog */ - -.dijitDialog { - position: absolute; - z-index: 999; - overflow: hidden; /* override overflow: auto; from ContentPane to make dragging smoother */ -} - -.dijitDialogTitleBar { - cursor: move; -} -.dijitDialogFixed .dijitDialogTitleBar { - cursor:default; -} -.dijitDialogCloseIcon { - cursor: pointer; - -webkit-tap-highlight-color: transparent; -} -.dijitDialogPaneContent { - -webkit-overflow-scrolling: touch; -} -.dijitDialogUnderlayWrapper { - position: absolute; - left: 0; - top: 0; - z-index: 998; - display: none; - background: transparent !important; -} - -.dijitDialogUnderlay { - background: #eee; - opacity: 0.5; -} - -.dj_ie .dijitDialogUnderlay { - filter: alpha(opacity=50); -} - -/* images off, high-contrast mode styles */ -.dj_a11y .dijitSpinnerButtonContainer, -.dj_a11y .dijitDialog { - opacity: 1 !important; - background-color: white !important; -} - -.dijitDialog .closeText { - display:none; - /* for the onhover border in high contrast on IE: */ - position:absolute; -} - -.dj_a11y .dijitDialog .closeText { - display:inline; -} - -/* Slider */ - -.dijitSliderMoveable { - z-index:99; - position:absolute !important; - display:block; - vertical-align:middle; -} - -.dijitSliderMoveableH { - right:0; -} -.dijitSliderMoveableV { - right:50%; -} - -.dj_a11y div.dijitSliderImageHandle, -.dijitSliderImageHandle { - margin:0; - padding:0; - position:relative !important; - border:8px solid gray; - width:0; - height:0; - cursor: pointer; - -webkit-tap-highlight-color: transparent; -} -.dj_iequirks .dj_a11y .dijitSliderImageHandle { - font-size: 0; -} -.dj_ie7 .dijitSliderImageHandle { - overflow: hidden; /* IE7 workaround to make slider handle VISIBLE in non-a11y mode */ -} -.dj_ie7 .dj_a11y .dijitSliderImageHandle { - overflow: visible; /* IE7 workaround to make slider handle VISIBLE in a11y mode */ -} -.dj_a11y .dijitSliderFocused .dijitSliderImageHandle { - border:4px solid #000; - height:8px; - width:8px; -} - -.dijitSliderImageHandleV { - top:-8px; - right: -50%; -} - -.dijitSliderImageHandleH { - left:50%; - top:-5px; - vertical-align:top; -} - -.dijitSliderBar { - border-style:solid; - border-color:black; - cursor: pointer; - -webkit-tap-highlight-color: transparent; -} - -.dijitSliderBarContainerV { - position:relative; - height:100%; - z-index:1; -} - -.dijitSliderBarContainerH { - position:relative; - z-index:1; -} - -.dijitSliderBarH { - height:4px; - border-width:1px 0; -} - -.dijitSliderBarV { - width:4px; - border-width:0 1px; -} - -.dijitSliderProgressBar { - background-color:red; - z-index:1; -} - -.dijitSliderProgressBarV { - position:static !important; - height:0; - vertical-align:top; - text-align:left; -} - -.dijitSliderProgressBarH { - position:absolute !important; - width:0; - vertical-align:middle; - overflow:visible; -} - -.dijitSliderRemainingBar { - overflow:hidden; - background-color:transparent; - z-index:1; -} - -.dijitSliderRemainingBarV { - height:100%; - text-align:left; -} - -.dijitSliderRemainingBarH { - width:100% !important; -} - -/* the slider bumper is the space consumed by the slider handle when it hangs over an edge */ -.dijitSliderBumper { - overflow:hidden; - z-index:1; -} - -.dijitSliderBumperV { - width:4px; - height:8px; - border-width:0 1px; -} - -.dijitSliderBumperH { - width:8px; - height:4px; - border-width:1px 0; -} - -.dijitSliderBottomBumper, -.dijitSliderLeftBumper { - background-color:red; -} - -.dijitSliderTopBumper, -.dijitSliderRightBumper { - background-color:transparent; -} - -.dijitSliderDecoration { - text-align:center; -} - -.dijitSliderDecorationC, -.dijitSliderDecorationV { - position: relative; /* needed for IE+quirks+RTL+vertical (rendering bug) but add everywhere for custom styling consistency but this messes up IE horizontal sliders */ -} - -.dijitSliderDecorationH { - width: 100%; -} - -.dijitSliderDecorationV { - height: 100%; - white-space: nowrap; -} - -.dijitSliderButton { - font-family:monospace; - margin:0; - padding:0; - display:block; -} - -.dj_a11y .dijitSliderButtonInner { - visibility:visible !important; -} - -.dijitSliderButtonContainer { - text-align:center; - height:0; /* ??? */ -} -.dijitSliderButtonContainer * { - cursor: pointer; - -webkit-tap-highlight-color: transparent; -} - -.dijitSlider .dijitButtonNode { - padding:0; - display:block; -} - -.dijitRuleContainer { - position:relative; - overflow:visible; -} - -.dijitRuleContainerV { - height:100%; - line-height:0; - float:left; - text-align:left; -} - -.dj_opera .dijitRuleContainerV { - line-height:2%; -} - -.dj_ie .dijitRuleContainerV { - line-height:normal; -} - -.dj_gecko .dijitRuleContainerV { - margin:0 0 1px 0; /* mozilla bug workaround for float:left,height:100% block elements */ -} - -.dijitRuleMark { - position:absolute; - border:1px solid black; - line-height:0; - height:100%; -} - -.dijitRuleMarkH { - width:0; - border-top-width:0 !important; - border-bottom-width:0 !important; - border-left-width:0 !important; -} - -.dijitRuleLabelContainer { - position:absolute; -} - -.dijitRuleLabelContainerH { - text-align:center; - display:inline-block; -} - -.dijitRuleLabelH { - position:relative; - left:-50%; -} - -.dijitRuleLabelV { - /* so that long labels don't overflow to multiple rows, or overwrite slider itself */ - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; -} - -.dijitRuleMarkV { - height:0; - border-right-width:0 !important; - border-bottom-width:0 !important; - border-left-width:0 !important; - width:100%; - left:0; -} - -.dj_ie .dijitRuleLabelContainerV { - margin-top:-.55em; -} - -.dj_a11y .dijitSliderReadOnly, -.dj_a11y .dijitSliderDisabled { - opacity:0.6; -} -.dj_ie .dj_a11y .dijitSliderReadOnly .dijitSliderBar, -.dj_ie .dj_a11y .dijitSliderDisabled .dijitSliderBar { - filter: alpha(opacity=40); -} - -/* + and - Slider buttons: override theme settings to display icons */ -.dj_a11y .dijitSlider .dijitSliderButtonContainer div { - font-family: monospace; /* otherwise hyphen is larger and more vertically centered */ - font-size: 1em; - line-height: 1em; - height: auto; - width: auto; - margin: 0 4px; -} - -/* Icon-only buttons (often in toolbars) still display the text in high-contrast mode */ -.dj_a11y .dijitButtonContents .dijitButtonText, -.dj_a11y .dijitTab .tabLabel { - display: inline !important; -} -.dj_a11y .dijitSelect .dijitButtonText { - display: inline-block !important; -} - -/* TextArea, SimpleTextArea */ -.dijitTextArea { - width:100%; - overflow-y: auto; /* w/out this IE's SimpleTextArea goes to overflow: scroll */ -} -.dijitTextArea[cols] { - width:auto; /* SimpleTextArea cols */ -} -.dj_ie .dijitTextAreaCols { - width:auto; -} - -.dijitExpandingTextArea { - /* for auto exanding textarea (called Textarea currently, rename for 2.0) don't want to display the grip to resize */ - resize: none; -} - - -/* Toolbar - * Note that other toolbar rules (for objects in toolbars) are scattered throughout this file. - */ - -.dijitToolbarSeparator { - height: 18px; - width: 5px; - padding: 0 1px; - margin: 0; -} - -/* Editor */ -.dijitIEFixedToolbar { - position:absolute; - /* top:0; */ - top: expression(eval((document.documentElement||document.body).scrollTop)); -} - -.dijitEditor { - display: block; /* prevents glitch on FF with InlineEditBox, see #8404 */ -} - -.dijitEditorDisabled, -.dijitEditorReadOnly { - color: gray; -} - -/* TimePicker */ - -.dijitTimePicker { - background-color: white; -} -.dijitTimePickerItem { - cursor:pointer; - -webkit-tap-highlight-color: transparent; -} -.dijitTimePickerItemHover { - background-color:gray; - color:white; -} -.dijitTimePickerItemSelected { - font-weight:bold; - color:#333; - background-color:#b7cdee; -} -.dijitTimePickerItemDisabled { - color:gray; - text-decoration:line-through; -} - -.dijitTimePickerItemInner { - text-align:center; - border:0; - padding:2px 8px 2px 8px; -} - -.dijitTimePickerTick, -.dijitTimePickerMarker { - border-bottom:1px solid gray; -} - -.dijitTimePicker .dijitDownArrowButton { - border-top: none !important; -} - -.dijitTimePickerTick { - color:#CCC; -} - -.dijitTimePickerMarker { - color:black; - background-color:#CCC; -} - -.dj_a11y .dijitTimePickerItemSelected .dijitTimePickerItemInner { - border: solid 4px black; -} -.dj_a11y .dijitTimePickerItemHover .dijitTimePickerItemInner { - border: dashed 4px black; -} - - -.dijitToggleButtonIconChar { - /* character (instead of icon) to show that ToggleButton is checked */ - display:none !important; -} -.dj_a11y .dijitToggleButton .dijitToggleButtonIconChar { - display:inline !important; - visibility:hidden; -} -.dj_ie6 .dijitToggleButtonIconChar, .dj_ie6 .tabStripButton .dijitButtonText { - font-family: "Arial Unicode MS"; /* otherwise the a11y character (checkmark, arrow, etc.) appears as a box */ -} -.dj_a11y .dijitToggleButtonChecked .dijitToggleButtonIconChar { - display: inline !important; /* In high contrast mode, display the check symbol */ - visibility:visible !important; -} - -.dijitArrowButtonChar { - display:none !important; -} -.dj_a11y .dijitArrowButtonChar { - display:inline !important; -} - -.dj_a11y .dijitDropDownButton .dijitArrowButtonInner, -.dj_a11y .dijitComboButton .dijitArrowButtonInner { - display:none !important; -} - -/* Select */ -.dj_a11y .dijitSelect { - border-collapse: separate !important; - border-width: 1px; - border-style: solid; -} -.dj_ie .dijitSelect { - vertical-align: middle; /* Set this back for what we hack in dijit inline */ -} -.dj_ie6 .dijitSelect .dijitValidationContainer, -.dj_ie8 .dijitSelect .dijitButtonText { - vertical-align: top; -} -.dj_ie6 .dijitTextBox .dijitInputContainer, -.dj_iequirks .dijitTextBox .dijitInputContainer, -.dj_ie6 .dijitTextBox .dijitArrowButtonInner, -.dj_ie6 .dijitSpinner .dijitSpinnerButtonInner, -.dijitSelect .dijitSelectLabel { - vertical-align: baseline; -} - -.dijitNumberTextBox { - text-align: left; - direction: ltr; -} - -.dijitNumberTextBox .dijitInputInner { - text-align: inherit; /* input */ -} - -.dijitNumberTextBox input.dijitInputInner, -.dijitCurrencyTextBox input.dijitInputInner, -.dijitSpinner input.dijitInputInner { - text-align: right; -} - -.dj_ie8 .dijitNumberTextBox input.dijitInputInner, .dj_ie9 .dijitNumberTextBox input.dijitInputInner, -.dj_ie8 .dijitCurrencyTextBox input.dijitInputInner, .dj_ie9 .dijitCurrencyTextBox input.dijitInputInner, -.dj_ie8 .dijitSpinner input.dijitInputInner, .dj_ie9 .dijitSpinner input.dijitInputInner { - /* workaround bug where caret invisible in empty textboxes */ - padding-right: 1px !important; -} - -.dijitToolbar .dijitSelect { - margin: 0; -} -.dj_webkit .dijitToolbar .dijitSelect { - padding-left: 0.3em; -} -.dijitSelect .dijitButtonContents { - padding: 0; - white-space: nowrap; - text-align: left; - border-style: none solid none none; - border-width: 1px; -} -.dijitSelectFixedWidth .dijitButtonContents { - width: 100%; -} - -.dijitSelectMenu .dijitMenuItemIcon { - /* avoid blank area in left side of menu (since we have no icons) */ - display:none; -} -.dj_ie6 .dijitSelectMenu .dijitMenuItemLabel, -.dj_ie7 .dijitSelectMenu .dijitMenuItemLabel { - /* Set back to static due to bug in ie6/ie7 - See Bug #9651 */ - position: static; -} - -/* Fix the baseline of our label (for multi-size font elements) */ -.dijitSelectLabel * -{ - vertical-align: baseline; -} - -/* Styling for the currently-selected option (rich text can mess this up) */ -.dijitSelectSelectedOption * { - font-weight: bold; -} - -/* Fix the styling of the dropdown menu to be more combobox-like */ -.dijitSelectMenu { - border-width: 1px; -} - -/* Used in cases, such as FullScreen plugin, when we need to force stuff to static positioning. */ -.dijitForceStatic { - position: static !important; -} - -/**** Disabled cursor *****/ -.dijitReadOnly *, -.dijitDisabled *, -.dijitReadOnly, -.dijitDisabled { - /* a region the user would be able to click on, but it's disabled */ - cursor: default; -} - -/* Drag and Drop */ -.dojoDndItem { - padding: 2px; /* will be replaced by border during drag over (dojoDndItemBefore, dojoDndItemAfter) */ - - /* Prevent magnifying-glass text selection icon to appear on mobile webkit as it causes a touchout event */ - -webkit-touch-callout: none; - -webkit-user-select: none; /* Disable selection/Copy of UIWebView */ -} -.dojoDndHorizontal .dojoDndItem { - /* make contents of horizontal container be side by side, rather than vertical */ - display: inline-block; -} - -.dojoDndItemBefore, -.dojoDndItemAfter { - border: 0px solid #369; -} -.dojoDndItemBefore { - border-width: 2px 0 0 0; - padding: 0 2px 2px 2px; -} -.dojoDndItemAfter { - border-width: 0 0 2px 0; - padding: 2px 2px 0 2px; -} -.dojoDndHorizontal .dojoDndItemBefore { - border-width: 0 0 0 2px; - padding: 2px 2px 2px 0; -} -.dojoDndHorizontal .dojoDndItemAfter { - border-width: 0 2px 0 0; - padding: 2px 0 2px 2px; -} - -.dojoDndItemOver { - cursor:pointer; -} -.dj_gecko .dijitArrowButtonInner INPUT, -.dj_gecko INPUT.dijitArrowButtonInner { - -moz-user-focus:ignore; -} -.dijitFocused .dijitMenuItemShortcutKey { - text-decoration: underline; -} - -/* Dijit custom styling */ -.dijitBorderContainer { - height: 350px; -} -.dijitTooltipContainer { - background: #fff; - border: 1px solid #ccc; - border-radius: 6px; -} -.dijitContentPane { - box-sizing: content-box; - overflow: auto !important; /* Widgets like the data grid pass their scroll - offset to the parent if there is not enough room to display a scroll bar - in the widget itself, so do not hide the overflow. */ -} - -/* Global Bootstrap changes */ - -/* Client defaults and helpers */ -.mx-dataview-content, .mx-scrollcontainer-wrapper:not(.mx-scrollcontainer-nested), .mx-tabcontainer-content, .mx-grid-content { - -webkit-overflow-scrolling: touch; -} -html, body, #content { - height: 100%; -} -#content > .mx-page { - width: 100%; - min-height: 100%; -} - -.mx-left-aligned { - text-align: left; -} -.mx-right-aligned { - text-align: right; -} -.mx-center-aligned { - text-align: center; -} - -.mx-table { - width: 100%; -} -.mx-table th, -.mx-table td { - padding: 8px; - vertical-align: top; -} -.mx-table th.nopadding, -.mx-table td.nopadding { - padding: 0; -} - -.mx-offscreen { - /* When position relative is not set IE doesn't properly render when this class is removed - * with the effect that elements are not displayed or are not clickable. - */ - position: relative; - height: 0; - overflow: hidden; -} - -.mx-ie-event-shield { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - z-index: -1; -} - -.mx-swipe-navigation-progress { - position: absolute; - height: 54px; - width: 54px; - top: calc(50% - 27px); - left: calc(50% - 27px); - background: url(data:image/gif;base64,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); -} - - -/* Bacause we use checkboxes without labels, align them with other widgets. */ -input[type="checkbox"] { - margin: 9px 0; -} - -.mx-checkbox input[type="checkbox"] { - margin-left: 0; - margin-right: 8px; - position: static; -} - -.form-vertical .form-group.mx-checkbox input[type="checkbox"] { - display: block; -} - -.form-vertical .form-group.mx-checkbox.label-after input[type="checkbox"] { - display: inline-block; -} - -.form-horizontal .form-group.no-columns { - padding-left: 15px; - padding-right: 15px; -} - -.mx-radiobuttons.inline .radio { - display: inline-block; - margin-right: 20px; -} - -.mx-radiobuttons .radio input[type="radio"] { - /* Reset bootstrap rules */ - position: static; - margin-right: 8px; - margin-left: 0; -} - -.mx-radiobuttons .radio label { - /* Reset bootstrap rules */ - padding-left: 0; -} - -.alert { - margin-top: 8px; - margin-bottom: 10px; - white-space: pre-line; -} - -.mx-compound-control { - display: flex; -} - -.mx-compound-control button { - margin-left: 5px; -} - -[dir="rtl"] .mx-compound-control button { - margin-left: 0; - margin-right: 5px; -} - -.mx-tooltip { - margin: 10px; -} -.mx-tooltip-content { - width: 400px; - overflow-y: auto; -} -.mx-tooltip-prepare { - height: 24px; - padding: 8px; - background: transparent url(data:image/gif;base64,R0lGODlhGAAYAMQdAKXZ8nfF64TL7QuX3Fe45zaq4hOb3fL6/fr9/rri9dXt+ZrU8Cym4Umy5cHl9uPz+2K86Oj1/Nzw+rDd9M3q+JDQ72rA6iOi3+34/ECu48jo9x2f3gWV2////wAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQwIDc5LjE2MDQ1MSwgMjAxNy8wNS8wNi0wMTowODoyMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RUJFNkU4NEZCNEVDMTFFODk3MDBBNUU1RUM4Qjg3QTUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RUJFNkU4NTBCNEVDMTFFODk3MDBBNUU1RUM4Qjg3QTUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpFQkU2RTg0REI0RUMxMUU4OTcwMEE1RTVFQzhCODdBNSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpFQkU2RTg0RUI0RUMxMUU4OTcwMEE1RTVFQzhCODdBNSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6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) no-repeat scroll center center; -} -.mx-tooltip-content .table th, -.mx-tooltip-content .table td { - padding: 2px 8px; -} - -.mx-tabcontainer-pane { - height: 100%; -} -.mx-tabcontainer-content.loading { - min-height: 48px; - background: url(data:image/gif;base64,R0lGODlhNgA2APMAAP///wAAAHh4eBwcHA4ODtjY2FRUVNzc3MTExEhISIqKigAAAAAAAAAAAAAAAAAAACH5BAkKAAAAIf4aQ3JlYXRlZCB3aXRoIGFqYXhsb2FkLmluZm8AIf8LTkVUU0NBUEUyLjADAQAAACwAAAAANgA2AAAEyxDISau9OOvNu/9gKI5kySEJQSSI6UqKKhPKWyLz3NpimqsJnug3E4aIMiPI9wsqPTjiTlkwqAwFTCxXexYGs0H2ggJOLYLBQDCy5gwmwYx9JJrAssHQXsKr9CFuM3AlcjJ0IAd+BAMHLmlrJAduBo5Pl5iZmpucnZ6fcWqImJCjaHOZhiqmFIuAl64ZsZizF6oErEK3uROlm76gwcLDxMXGx8XAj6Iku4+oIrUk0h/U0WEjznHQIsqhkcjB3sncxdbC5+Llyczh7k8RACH5BAkKAAAALAAAAAA2ADYAAATMEMhJq7046827/2AojmRpnmVhEIRRoGcxsOzwwuRKswZO7jvfCEgTinS7nhF0mNEGhwsiwUoglpSDzhC1KIiKkWAwEJgQRNYVJNiZSdR0IuSsldJFUJ0wuOMJIW00byNxRHOBZIQjaGlrWBxfQGGQHlNVj5Wam5ydnp9LY2WboosWgiymQqgEqhN7fZCwGbOyO7EXrK44uhqlpIqgwsPExcbHyMe/KMsivSbPdLcntdJP1NPObifRiaPMwcnCzcrbyNXG6MXdxuTi7z4RACH5BAkKAAAALAAAAAA2ADYAAATOEMhJq7046827/2AojmRpnmiqAsIwCKspEDQBx+NQEwOe7z1faFa7CUGt11FYMNAMBVLSSCroaoPocEcVOXcEg+hKC5LAtTHQhKaJiLRu6LsTv13y0IHMOyw9B18Gfn+FhoeIiYoZCAk0CQiLFgpoChlTRwhtBJEWcDZCjm0JF3xmMZtuFqZCqQQXn3koomiksHiZm52SAJRglrwTjY+7wcbHyMnKE5gozW9cJ7E/WCesatUm11tF0tEjzzK4y4nhxtPI28bqwejI5uTxJhEAIfkECQoAAAAsAAAAADYANgAABMsQyEmrvTjrzbv/YCiOZGmeaKoCwjAIqykQNAHH41ATA57vPV9oVrsJQa3XcYlKGmWuJ3InFRFp1Y6uFixtaV3Ql3cahz9X2ymd7ThTb6Z8Tq/b7/i8vGCgGQoacUIFZoAXbEd9OwQGGGZHizWOQJCRBBiIQoo7jZhRSwdmB3oUB4oGo6Sqq6ytMQgJNAkIrAqRCiOCIwiWBLRTRSWxlgkhjyS9NMaUyMlDVMK9xUOfJbyWv3q2i7hLuhWwstlCmavH5syr5erVru44EQAh+QQJCgAAACwAAAAANgA2AAAEzBDISau9OOvNu/9gKI5kaZ5oqgLCMAirKRA0AcfjUBMDnu89X2hWuwlBrddxiUoaZa4ncicVEWnVjq4WLG1pXdCXdxqHP1fbKZ3tOFNvpnxOr9vv+LweE1/2L2x+VBlmS4UYh0KJFoFHjXxRcn97lJWWl5iZcgUGNAYFJJMiBWagQ4MlnTsEBiKLIqs1rkAmsTRWqCSqO61WkRkICTQJCBcHZgdHCrEKxqoGyUIItgTFesK2CXvUt3rcBHvYsdp607bWesurzZXBw+giEQAh+QQJCgAAACwAAAAANgA2AAAEzBDISau9OOvNu/9gKI5kaZ5oqgLCMAirKRA0AcfjUBMDnu89X2hWuwlBrddxiUoaZa4ncicVEWnVjq4WLG1pXdCXdxqHP1fbKZ3tOFNvpnxOr9vv+LweE1/2L2x+VBlmS4UYh0KJFoFHjXxRcn97lJWWl5gSCAk0CQiWCjs0CpQIojWfJZMdnKcECaqDIK41XkAhtDS2XCGtp7Akjx6mrqnBkSKhoqQXBQY0BgVLm53GFQVm0pTPogaVtN+uldw73pQHZgeWB9wG6pkoEQAh+QQJCgAAACwAAAAANgA2AAAEzBDISau9OOvNu/9gKI5kaZ5oqgLCMAirKRA0AcfjUBMDnu89X2hWuwlBrddxiUoaZa4ncicVEWnVjq4WLG1pXdCXdxqHP1fbKZ3tOFNvpnxOr9vvKUSClkDgLQo7NAp/EwiCNX5CcRZ7iAQJi1QXjzVCZpSVBJdAF46IkT5sF4ePiqJRGYGChIWGjn2usrO0tXYFBjQGBbQFZrxQSiK5ggYykyGVJpjJj8udIcQ7xiWjIQdmB2upIwfEBtq2Hoyz1rPM59DlyLTk4u8pEQAh+QQJCgAAACwAAAAANgA2AAAEzBDISau9OOvNu/9gKI5kaZ5oqgLCMAirKRA0AcfjUBMDnu89X2hWuwkRCVoCoWm9hBLFjqaAdhDTGrPkNH6SWUKCu/N2wrWSrhb8oGlqYAicHZOINDMHG97eXXodUlNVVldgS4aKi4yNjo8FBjQGBY8XBWs0A5VQXRmSUwadZRhoUJk8pWGnchegO6JCeDYYB6gDB1aeGQegBrmWwcLDxMXGx1yAKbsis4Egzj9sJ7fSmtStQ6Qy283KKMzIjeHE0cbV59nl3cXk4u8oEQA7) no-repeat center center; - background-size: 32px 32px; -} -.mx-tabcontainer-tabs { - margin-bottom: 8px; -} -.mx-tabcontainer-tabs li { - position: relative; -} -.mx-tabcontainer-indicator { - position: absolute; - background: #f2dede; - border-radius: 8px; - color: #b94a48; - top: 0px; - right: -5px; - width: 16px; - height: 16px; - line-height: 16px; - text-align: center; - vertical-align: middle; - font-size: 10px; - font-weight: 600; - z-index: 1; /* indicator should not hide behind other tab */ -} - -/* base structure */ -.mx-grid { - padding: 8px; - overflow: hidden; /* to prevent any margin from escaping grid and foobaring our size calculations */ -} -.mx-grid-controlbar, .mx-grid-searchbar { - display: flex; - justify-content: space-between; - flex-wrap: wrap; -} -.mx-grid-controlbar .mx-button, -.mx-grid-search-controls .mx-button { - margin-bottom: 8px; -} - -.mx-grid-search-controls .mx-button + .mx-button, -.mx-grid-controlbar .mx-button + .mx-button { - margin-left: 0.3em; -} - -[dir="rtl"] .mx-grid-search-controls .mx-button + .mx-button, -[dir="rtl"] .mx-grid-controlbar .mx-button + .mx-button { - margin-left: 0; - margin-right: 0.3em; -} - -.mx-grid-pagingbar, -.mx-grid-search-controls { - display: flex; - white-space: nowrap; - align-items: baseline; - margin-left: auto; -} - -.mx-grid-toolbar, .mx-grid-search-inputs { - margin-right: 5px; - flex: 1; -} - -[dir="rtl"] .mx-grid-toolbar, -[dir="rtl"] .mx-grid-search-inputs { - margin-left: 5px; - margin-right: 0px; -} -[dir="rtl"] .mx-grid-pagingbar, -[dir="rtl"] .mx-grid-search-controls { - margin-left: 0px; - margin-right: auto; -} - -.mx-grid-paging-status { - padding: 0 8px 5px; -} - -/* search fields */ -.mx-grid-search-item { - display: inline-block; - vertical-align: top; - margin-bottom: 8px; -} -.mx-grid-search-label { - width: 110px; - padding: 0 5px; - text-align: right; - display: inline-block; - vertical-align: top; - overflow: hidden; -} -[dir="rtl"] .mx-grid-search-label { - text-align: left; -} -.mx-grid-search-input { - width: 150px; - padding: 0 5px; - display: inline-block; - vertical-align: top; -} -.mx-grid-search-message { - flex-basis: 100%; -} - -/* widget combinations */ -.mx-dataview .mx-grid { - border: 1px solid #ddd; - border-radius: 3px; -} - -.mx-calendar { - z-index: 1000; -} - -.mx-calendar-month-dropdown-options { - position: absolute; -} - -.mx-calendar, .mx-calendar-month-dropdown { - user-select: none; -} - -.mx-calendar-month-current { - display: inline-block; -} - -.mx-calendar-month-spacer { - position: relative; - height: 0px; - overflow: hidden; - visibility: hidden; -} - -.mx-calendar, .mx-calendar-month-dropdown-options { - border: 1px solid lightgrey; - background-color: white; -} - -.mx-datagrid tr { - cursor: pointer; -} - -.mx-datagrid tr.mx-datagrid-row-empty { - cursor: default; -} - -.mx-datagrid table { - width: 100%; - max-width: 100%; - table-layout: fixed; - margin-bottom: 0; -} - -.mx-datagrid th, .mx-datagrid td { - padding: 8px; - line-height: 1.42857143; - vertical-align: bottom; - border: 1px solid #ddd; -} - -/* head */ -.mx-datagrid th { - position: relative; /* Required for the positioning of the column resizers */ - border-bottom-width: 2px; -} -.mx-datagrid-head-caption { - overflow: hidden; - white-space: nowrap; -} -.mx-datagrid-sort-icon { - float: right; - padding-left: 5px; -} -[dir="rtl"] .mx-datagrid-sort-icon { - float: left; - padding: 0 5px 0 0; -} -.mx-datagrid-column-resizer { - position: absolute; - top: 0; - left: -6px; - width: 10px; - height: 100%; - cursor: col-resize; -} -[dir="rtl"] .mx-datagrid-column-resizer { - left: auto; - right: -6px; -} - -/* body */ -.mx-datagrid tbody tr:first-child td { - border-top: none; -} -//.mx-datagrid tbody tr:nth-child(2n+1) td { -// background-color: #f9f9f9; -//} -.mx-datagrid tbody .selected td { - background-color: #eee; -} -.mx-datagrid-data-wrapper { - overflow: hidden; - white-space: nowrap; -} -.mx-datagrid tbody img { - max-width: 16px; - max-height: 16px; -} -.mx-datagrid input, -.mx-datagrid select, -.mx-datagrid textarea { - cursor: auto; -} - -/* foot */ -.mx-datagrid tfoot th, -.mx-datagrid tfoot td { - padding: 3px 8px; -} -.mx-datagrid tfoot th { - border-top: 1px solid #ddd; -} -.mx-datagrid.mx-content-loading .mx-content-loader { - display: inline-block; - width: 90%; - animation: placeholderGradient 1s linear infinite; - border-radius: 4px; - background: #F5F5F5; - background: repeating-linear-gradient(to right, #F5F5F5 0%, #F5F5F5 5%, #F9F9F9 50%, #F5F5F5 95%, #F5F5F5 100%); - background-size: 200px 100px; - animation-fill-mode: both; -} -@keyframes placeholderGradient { - 0% { background-position: 100px 0; } - 100% { background-position: -100px 0; } -} - -.mx-datagrid-table-resizing th, -.mx-datagrid-table-resizing td { - cursor: col-resize !important; -} - -.mx-templategrid-content-wrapper { - display: table; - width: 100%; - border-collapse: collapse; - box-sizing: border-box; -} -.mx-templategrid-row { - display: table-row; -} -.mx-templategrid-item { - padding: 5px; - display: table-cell; - border: 1px solid #ddd; - cursor: pointer; - box-sizing: border-box; -} -.mx-templategrid-empty { - display: table-cell; -} -.mx-templategrid-item.selected { - background-color: #f5f5f5; -} -.mx-templategrid-item .mx-table th, -.mx-templategrid-item .mx-table td { - padding: 2px 8px; -} - -.mx-scrollcontainer-horizontal { - width: 100%; - display: table; - table-layout: fixed; -} -.mx-scrollcontainer-horizontal > div { - display: table-cell; - vertical-align: top; -} -//.mx-scrollcontainer-wrapper { -// padding: 10px; -//} -.mx-scrollcontainer-nested { - padding: 0; -} -.mx-scrollcontainer-fixed > .mx-scrollcontainer-middle > .mx-scrollcontainer-wrapper, -.mx-scrollcontainer-fixed > .mx-scrollcontainer-left > .mx-scrollcontainer-wrapper, -.mx-scrollcontainer-fixed > .mx-scrollcontainer-center > .mx-scrollcontainer-wrapper, -.mx-scrollcontainer-fixed > .mx-scrollcontainer-right > .mx-scrollcontainer-wrapper { - overflow: auto; -} - -.mx-scrollcontainer-move-in { - transition: left 250ms ease-out; -} -.mx-scrollcontainer-move-out { - transition: left 250ms ease-in; -} -.mx-scrollcontainer-shrink .mx-scrollcontainer-toggleable { - transition-property: width; -} - -.mx-scrollcontainer-toggleable { - background-color: #fff; -} -//.mx-scrollcontainer-slide > .mx-scrollcontainer-toggleable > .mx-scrollcontainer-wrapper { -// position: relative; -// z-index: 1; -// background-color: inherit; -//} -.mx-scrollcontainer-push { - position: relative; -} -.mx-scrollcontainer-shrink > .mx-scrollcontainer-toggleable { - overflow: hidden; -} -.mx-scrollcontainer-push.mx-scrollcontainer-open > div, -.mx-scrollcontainer-slide.mx-scrollcontainer-open > div { - pointer-events: none; -} -.mx-scrollcontainer-push.mx-scrollcontainer-open > .mx-scrollcontainer-toggleable, -.mx-scrollcontainer-slide.mx-scrollcontainer-open > .mx-scrollcontainer-toggleable { - pointer-events: auto; -} - -.mx-navbar-item img, -.mx-navbar-subitem img { - height: 16px; -} - - -.mx-navigationtree .navbar-inner { - padding-left: 0; - padding-right: 0; -} -.mx-navigationtree ul { - list-style: none; -} -.mx-navigationtree ul li { - border-bottom: 1px solid #dfe6ea; -} -.mx-navigationtree li:last-child { - border-style: none; -} -.mx-navigationtree a { - display: block; - padding: 5px 10px; - color: #777; - text-shadow: 0 1px 0 #fff; - text-decoration: none; -} -.mx-navigationtree a.active { - color: #FFF; - text-shadow: none; - background: #3498DB; - border-radius: 3px; -} -.mx-navigationtree .mx-navigationtree-collapsed ul { - display: none; -} -.mx-navigationtree ul { - margin: 0; - padding: 0; -} -.mx-navigationtree ul li { - padding: 5px 0; -} -.mx-navigationtree ul li ul { - padding: 0; - margin-left: 10px; -} -.mx-navigationtree ul li ul li { - margin-left: 8px; - padding: 5px 0; -} -[dir="rtl"] .mx-navigationtree ul li ul li { - margin-left: auto; - margin-right: 8px; -} -.mx-navigationtree ul li ul li ul li { - font-size: 10px; - padding-top: 3px; - padding-bottom: 3px; -} -.mx-navigationtree ul li ul li ul li img { - vertical-align: top; -} - -.mx-link img, -.mx-button img { - height: 16px; -} -.mx-link { - padding: 6px 12px; - display: inline-block; -} - -.mx-groupbox { - margin-bottom: 10px; -} -.mx-groupbox-header { - margin: 0; - padding: 10px 15px; - color: #eee; - background: #333; - font-size: inherit; - line-height: inherit; - border-radius: 4px 4px 0 0; -} -.mx-groupbox-collapsible > .mx-groupbox-header { - cursor: pointer; -} -.mx-groupbox.collapsed > .mx-groupbox-header { - border-radius: 4px; -} -.mx-groupbox-body { - padding: 8px; - border: 1px solid #ddd; - border-radius: 4px; -} -.mx-groupbox.collapsed > .mx-groupbox-body { - display: none; -} -.mx-groupbox-header + .mx-groupbox-body { - border-top: none; - border-radius: 0 0 4px 4px; -} -.mx-groupbox-collapse-icon { - float: right; -} -[dir="rtl"] .mx-groupbox-collapse-icon { - float: left; -} - -.mx-dataview { - position: relative; -} -.mx-dataview-controls { - padding: 19px 20px 12px; - background-color: #f5f5f5; - border-top: 1px solid #eee; -} - -.mx-dataview-controls .mx-button { - margin-bottom: 8px; -} - -.mx-dataview-controls .mx-button + .mx-button { - margin-left: 0.3em; -} - -.mx-dataview-message { - background: #fff; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; -} -.mx-dataview-message > div { - display: table; - width: 100%; - height: 100%; -} -.mx-dataview-message > div > p { - display: table-cell; - text-align: center; - vertical-align: middle; -} - -/* Top-level data view in window is a special case, handle it as such. */ -.mx-window-view .mx-window-body { - padding: 0; -} -.mx-window-view .mx-window-body > .mx-dataview > .mx-dataview-content, -.mx-window-view .mx-window-body > .mx-placeholder > .mx-dataview > .mx-dataview-content { - padding: 15px; -} -.mx-window-view .mx-window-body > .mx-dataview > .mx-dataview-controls, -.mx-window-view .mx-window-body > .mx-placeholder > .mx-dataview > .mx-dataview-controls { - border-radius: 0px 0px 6px 6px; -} - -.mx-dialog { - position: fixed; - left: auto; - right: auto; - padding: 0; - width: 500px; - /* If the margin is set to auto, IE9 reports the calculated value of the - * margin as the actual value. Other browsers will just report 0. Eliminate - * this difference by setting margin to 0 for every browser. */ - margin: 0; -} -.mx-dialog-header { - cursor: move; -} -.mx-dialog-body { - overflow: auto; -} - -.mx-window { - position: fixed; - left: auto; - right: auto; - padding: 0; - width: 600px; - /* If the margin is set to auto, IE9 reports the calculated value of the - * margin as the actual value. Other browsers will just report 0. Eliminate - * this difference by setting margin to 0 for every browser. */ - margin: 0; -} -.mx-window-content { - height: 100%; - overflow: hidden; -} -.mx-window-active .mx-window-header { - background-color: #f5f5f5; - border-radius: 6px 6px 0 0; -} -.mx-window-header { - cursor: move; -} -.mx-window-body { - overflow: auto; -} - -.mx-dropdown-list * { - cursor: pointer; -} -.mx-dropdown-list img { - width: 35px; - vertical-align: middle; - margin-right: 10px; -} -[dir="rtl"] .mx-dropdown-list img { - margin-left: 10px; - margin-right: auto; -} - -.mx-dropdown-list { - padding: 0; - list-style: none; -} -.mx-dropdown-list > li { - padding: 5px 10px 10px; - border: 1px #ddd; - border-style: solid solid none; - background-color: #fff; -} -.mx-dropdown-list > li:first-child { - border-top-left-radius: 4px; - border-top-right-radius: 4px; -} -.mx-dropdown-list > li:last-child { - border-bottom-style: solid; - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; -} -.mx-dropdown-list-striped > li:nth-child(2n+1) { - background: #f9f9f9; -} -.mx-dropdown-list > li:hover { - background: #f5f5f5; -} - -.mx-header { - position: relative; - padding: 9px; - background: #333; - text-align: center; -} -.mx-header-center { - display: inline-block; - color: #eee; - line-height: 30px; /* height of buttons */ -} -body[dir="ltr"] .mx-header-left, -body[dir="rtl"] .mx-header-right { - position: absolute; - top: 9px; - left: 9px; -} -body[dir="ltr"] .mx-header-right, -body[dir="rtl"] .mx-header-left { - position: absolute; - top: 9px; - right: 9px; -} - -.mx-title { - margin-bottom: 0px; - margin-top: 0px; -} - -.mx-listview { - padding: 8px; -} -.mx-listview > ul { - padding: 0px; - list-style: none; -} -// .mx-listview > ul > li { -// padding: 5px 10px 10px; -// border: 1px #ddd; -// border-style: solid solid none; -// background-color: #fff; -// outline: none; -// } -// .mx-listview > ul > li:first-child { -// border-top-left-radius: 4px; -// border-top-right-radius: 4px; -// } -// .mx-listview > ul > li:last-child { -// border-bottom-style: solid; -// border-bottom-left-radius: 4px; -// border-bottom-right-radius: 4px; -// } -//.mx-listview li:nth-child(2n+1) { -// background: #f9f9f9; -//} -//.mx-listview li:nth-child(2n+1):hover { -// background: #f5f5f5; -//} -.mx-listview > ul > li.selected { -// background: #eee; -} -.mx-listview-clickable > ul > li { - cursor: pointer; -} -.mx-listview-empty { - color: #999; - text-align: center; -} -.mx-listview .mx-listview-loading { - padding: 10px; - line-height: 0; - text-align: center; -} -.mx-listview-searchbar { - display: flex; - margin-bottom: 10px; -} -.mx-listview-searchbar > input { - width: 100%; -} -.mx-listview-searchbar > button { - margin-left: 5px; -} -[dir="rtl"] .mx-listview-searchbar > button { - margin-left: 0; - margin-right: 5px; -} -.mx-listview-selection { - display: table-cell; - vertical-align: middle; - padding: 0 15px 0 5px; -} -[dir="rtl"] .mx-listview-selection { - padding: 0 5px 0 15px; -} -.mx-listview-selectable .mx-listview-content { - display: table-cell; - vertical-align: middle; - width: 100%; -} -.mx-listview .selected { - background: #def; -} -.mx-listview .mx-table th, -.mx-listview .mx-table td { - padding: 2px; -} - -.mx-login .form-control { - margin-top: 10px; -} - -.mx-menubar { - padding: 8px; -} -.mx-menubar-icon { - height: 16px; -} -.mx-menubar-more-icon { - display: inline-block; - width: 16px; - height: 16px; - background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAYAAAAe2bNZAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAKNJREFUeNpi/P//P8NgAUwMgwiMOmbUMaOOGXXMqGNGHTPYHMOCTfDs2bMeQKoOiI1BXCBuMjY23kFrdYzoTQigRm8gtQWLG0OBBqyhlTpc0dSOIxTraKwOq2PUcWhWp7E6rI65iUPzTRqrw+qYGhyam2isDtMxwES1CUgFAfFxqBCIDkJPbNRWhzU3jRZ6o44ZdcyoY0YdM+qYUccMUscABBgAUXpEjE/Bs/IAAAAASUVORK5CYII=) no-repeat center center; - background-size: 16px 16px; - vertical-align: middle; -} - -.mx-navigationlist { - padding: 8px; -} -.mx-navigationlist li:hover, -.mx-navigationlist li:focus, -.mx-navigationlist li.active { - color: #FFF; - background-color: #3498DB; -} -.mx-navigationlist * { - cursor: pointer; -} -.mx-navigationlist .table th, -.mx-navigationlist .table td { - padding: 2px; -} - -.mx-progress { - position: fixed; - top: 30%; - left: 0; - right: 0; - margin: auto; - width: 250px; - max-width: 90%; - background: #333; - opacity: 0.8; - z-index: 5000; - border-radius: 4px; - padding: 20px 15px; - transition: opacity 0.4s ease-in-out; -} -.mx-progress-hidden { - opacity: 0; -} -.mx-progress-message { - color: #fff; - text-align: center; - margin-bottom: 15px; -} -.mx-progress-empty .mx-progress-message { - display: none; -} -.mx-progress-indicator { - width: 70px; - height: 10px; - margin: auto; - background: url(data:image/gif;base64,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); -} - -.mx-reload-notification { - position: fixed; - z-index: 1001; - top: 0; - width: 100%; - padding: 1rem; - - border: 1px solid hsl(200, 96%, 41%); - background-color: hsl(200, 96%, 44%); - - box-shadow: 0 5px 20px rgba(1, 37, 55, 0.16); - color: white; - - text-align: center; - font-size: 14px; -} - -.mx-resizer-n, -.mx-resizer-s { - position: absolute; - left: 0; - width: 100%; - height: 10px; -} -.mx-resizer-n { - top: -5px; - cursor: n-resize; -} -.mx-resizer-s { - bottom: -5px; - cursor: s-resize; -} - -.mx-resizer-e, -.mx-resizer-w { - position: absolute; - top: 0; - width: 10px; - height: 100%; -} -.mx-resizer-e { - right: -5px; - cursor: e-resize; -} -.mx-resizer-w { - left: -5px; - cursor: w-resize; -} - -.mx-resizer-nw, -.mx-resizer-ne, -.mx-resizer-sw, -.mx-resizer-se { - position: absolute; - width: 20px; - height: 20px; -} - -.mx-resizer-nw, -.mx-resizer-ne { - top: -5px; -} -.mx-resizer-sw, -.mx-resizer-se { - bottom: -5px; -} -.mx-resizer-nw, -.mx-resizer-sw { - left: -5px; -} -.mx-resizer-ne, -.mx-resizer-se { - right: -5px; -} - -.mx-resizer-nw { - cursor: nw-resize; -} -.mx-resizer-ne { - cursor: ne-resize; -} -.mx-resizer-sw { - cursor: sw-resize; -} -.mx-resizer-se { - cursor: se-resize; -} - -.mx-text { - white-space: pre-line; -} - -.mx-textarea textarea { - resize: none; - overflow-y: hidden; -} -.mx-textarea .mx-textarea-noresize { - height: auto; - resize: vertical; - overflow-y: auto; -} -.mx-textarea .mx-textarea-counter { - font-size: smaller; -} -.mx-textarea .form-control-static { - white-space: pre-line; -} - -.mx-underlay { - position: fixed; - top: 0; - width: 100%; - height: 100%; - z-index: 1000; - opacity: 0.5; - background-color: #333; -} - -.mx-imagezoom { - position: absolute; - display: table; - width: 100%; - height: 100%; - background-color: #999; -} -.mx-imagezoom-wrapper { - display: table-cell; - text-align: center; - vertical-align: middle; -} -.mx-imagezoom-image { - max-width: none; -} - -.mx-dropdown li { - padding: 3px 20px; - cursor: pointer; -} -.mx-dropdown label { - padding: 0; - color: #333; - white-space: nowrap; - cursor: pointer; -} -.mx-dropdown input { - margin: 0; - vertical-align: middle; - cursor: pointer; -} -.mx-dropdown .selected { - background: #f8f8f8; -} -//.mx-selectbox { -// text-align: left; -//} -//.mx-selectbox-caret-wrapper { -// float: right; -// height: 100%; -//} - -.mx-demouserswitcher { - position: fixed; - top: 0; - right: 0; - width: 360px; - height: 100%; - z-index: 20000; - box-shadow: -1px 0 5px rgba(28,59,86,.2); -} -.mx-demouserswitcher-content { - padding: 80px 40px 20px; - height: 100%; - color: #387ea2; - font-size: 14px; - overflow: auto; - background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOgAAABgCAYAAAAXSj7NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0MzkwOTREMDQ2NEYxMUU0QTQ4MUI5NTNGMUQ3QzE5NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0MzkwOTREMTQ2NEYxMUU0QTQ4MUI5NTNGMUQ3QzE5NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc0REMyMUZGNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc0REMyMjAwNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+g1tRlwAAEFFJREFUeNrsnYl3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) top right no-repeat #1b3149; - /* background-attachement local is not supported on IE8 - * when this is part of background the complete background is ignored */ - background-attachment: local; -} -.mx-demouserswitcher ul { - padding: 0; - margin-top: 25px; - list-style-type: none; - border-top: 1px solid #496076; -} -.mx-demouserswitcher a { - display: block; - padding: 10px 0; - color: #387ea2; - border-bottom: 1px solid #496076; -} -.mx-demouserswitcher h2 { - margin: 20px 0 5px; - color: #5bc4fe; - font-size: 28px; -} -.mx-demouserswitcher h3 { - margin: 0 0 2px; - color: #5bc4fe; - font-size: 18px; - font-weight: normal; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} -.mx-demouserswitcher .active h3 { - color: #11efdb; -} -.mx-demouserswitcher p { - margin-bottom: 0; -} -.mx-demouserswitcher-toggle { - position: absolute; - top: 25%; - left: -35px; - width: 35px; - height: 38px; - margin-top: -40px; - cursor: pointer; - border-top-left-radius: 3px; - border-bottom-left-radius: 3px; - box-shadow: -1px 0 5px rgba(28,59,86,.2); - background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3NERDMjFGRDQ2NEMxMUU0QTQ4MUI5NTNGMUQ3QzE5NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3NERDMjFGRTQ2NEMxMUU0QTQ4MUI5NTNGMUQ3QzE5NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc0REMyMUZCNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc0REMyMUZDNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+1ZovNAAAAWdJREFUeNqM1M0rRFEYx/E7Y5qIQpOUbIiymQWysBgvJVJK2VgryZQtKSULZelPsB0LZaNZjJUNK1FskJqUvCS3NAsZc3zP9NziOOfeeepTc8/c8+vc8xZTSnmOakEGKdzgDBXXy54OMsSwjpL6W9cYsrxfZWvcUu7y0VdLUCc+VXgd2oLixpfOIOmF17TtHTOozYuupCxAaNB9DUEfeDUbE8bzEXxZerP00l8hh3LUiHTIMr6N9j2ksYoihv/1deyLSVzKKm1jEW+WfZV2Lf8gskjIcwcWpOM++pHCFPLosgWtoCyd7jCPOjzhGHHLyDPY1achaJhDxRj6rBwJXUuoN0IG8IIv7OiGBjxadvAITuT3rex6c0SbKASflnUcBT3JTThAjyWkGUVsBEEFR5CerzXpNIacrFIrJnCBB3muBvkhB1TP27hM/Lvx3zl6gxHqu6c74kiU8IxGjKJdLrrT3xfdjwADAJaMxP2bvD2BAAAAAElFTkSuQmCC) center center no-repeat #1b3149; -} - -/* master details screen for mobile */ -.mx-master-detail-screen { - top: 0; - left: 0; - overflow: auto; - width: 100%; - height: 100%; - position: absolute; - background-color: white; - will-change: transform; -} - -.mx-master-detail-screen .mx-master-detail-details { - padding: 15px; -} - -.mx-master-detail-screen-header { - position: relative; - overflow: auto; - border-bottom: 1px solid #ccc; - background-color: #f7f7f7; -} - -.mx-master-detail-screen-header-caption { - text-align: center; - font-size: 17px; - line-height: 24px; - font-weight: 600; -} - -.mx-master-detail-screen-header-close { - position: absolute; - left: 0; - top: 0; - height: 100%; - width: 50px; - border: none; - background: transparent; - color: #007aff; -} - -body[dir="rtl"] .mx-master-detail-screen-header-close { - right: 0; - left: auto; -} - -.mx-master-detail-screen-header-close::before { - content: "\2039"; - font-size: 52px; - line-height: 24px; -} - -/* classes for content page */ -.mx-master-detail-content-fix { - height: 100vh; - overflow: hidden; -} - -.mx-master-detail-content-hidden { - transform: translateX(-200%); -} - -body[dir="rtl"] .mx-master-detail-content-hidden { - transform: translateX(200%); -} -.reportingReport { - padding: 5px; - border: 1px solid #ddd; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} - -.reportingReportParameter th { - text-align: right; -} - -.reportingDateRange table { - width: 100%; - table-layout: fixed; -} -.reportingDateRange th { - padding: 5px; - text-align: right; - background-color: #eee; -} -.reportingDateRange td { - padding: 5px; -} - -.mx-reportmatrix table { - width: 100%; - max-width: 100%; - table-layout: fixed; - margin-bottom: 0; -} - -.mx-reportmatrix th, .mx-reportmatrix td { - padding: 8px; - line-height: 1.42857143; - vertical-align: bottom; - border: 1px solid #ddd; -} - -.mx-reportmatrix tbody tr:first-child td { - border-top: none; -} - -.mx-reportmatrix tbody tr:nth-child(2n+1) td { - background-color: #f9f9f9; -} - -.mx-reportmatrix tbody img { - max-width: 16px; - max-height: 16px; -} - -@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) { - .dijitInline { - zoom: 1; /* set hasLayout:true to mimic inline-block */ - display:inline; /* don't use .dj_ie since that increases the priority */ - vertical-align: auto; /* makes TextBox,Button line up w/native counterparts on IE6 */ - } - - .dj_ie6 .dijitComboBox .dijitInputContainer, - .dijitInputContainer { - zoom: 1; - } - - .dijitRight { - /* Right part of a 3-element border */ - display:inline; /* IE7 sizes to outer size w/o this */ - } - - .dijitButtonNode { - vertical-align: auto; - } - - .dijitTextBox { - overflow: hidden; /* #6027, #6067 */ - } - - .dijitPlaceHolder { - filter: ""; /* make this show up in IE6 after the rendering of the widget */ - } - - .dijitValidationTextBoxError input.dijitValidationInner, - .dijitSelect input, - .dijitTextBox input.dijitArrowButtonInner { - text-indent: 0 !important; - letter-spacing: -5em !important; - text-align: right !important; - } - - .dj_a11y input.dijitValidationInner, - .dj_a11y input.dijitArrowButtonInner { - text-align: left !important; - } - - .dijitSpinner .dijitSpinnerButtonContainer .dijitUpArrowButton { - bottom: 50%; /* otherwise (on some machines) top arrow icon too close to splitter border (IE6/7) */ - } - - .dijitTabContainerTop-tabs .dijitTab, - .dijitTabContainerBottom-tabs .dijitTab { - zoom: 1; /* set hasLayout:true to mimic inline-block */ - display:inline; /* don't use .dj_ie since that increases the priority */ - } - - .dojoDndHorizontal .dojoDndItem { - /* make contents of horizontal container be side by side, rather than vertical */ - display: inline; - } -} - - - -/* WARNING: IE9 limits nested imports to three levels deep: http://jorgealbaladejo.com/2011/05/28/internet-explorer-limits-nested-import-css-statements */ - -/* dijit base */ - -/* mendix base */ - -/* widgets */ - -/* reporting */ - - -/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9kb2pvL2Rpaml0L3RoZW1lcy9kaWppdC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS9iYXNlLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL2Zvcm1zLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9Ub29sdGlwLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9UYWJDb250YWluZXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L19HcmlkLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9DYWxlbmRhci5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvRGF0YUdyaWQuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RlbXBsYXRlR3JpZC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvU2Nyb2xsQ29udGFpbmVyLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9OYXZiYXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L05hdmlnYXRpb25UcmVlLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9CdXR0b24uY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L0dyb3VwQm94LmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9EYXRhVmlldy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvRGlhbG9nLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9XaW5kb3cuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L0Ryb3BEb3duLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9IZWFkZXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RpdGxlLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9MaXN0Vmlldy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvTG9naW5EaWFsb2cuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L01lbnVCYXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L05hdmlnYXRpb25MaXN0LmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9Qcm9ncmVzcy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvUmVsb2FkTm90aWZpY2F0aW9uLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9SZXNpemFibGUuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RleHQuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RleHRBcmVhLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9VbmRlcmxheS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvSW1hZ2Vab29tLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9TZWxlY3RCb3guY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L0RlbW9Vc2VyU3dpdGNoZXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L01hc3RlckRldGFpbC5jc3MiLCJ3ZWJwYWNrOi8vLy4vcmVwb3J0aW5nL3VpL3dpZGdldC9SZXBvcnQuY3NzIiwid2VicGFjazovLy8uL3JlcG9ydGluZy91aS93aWRnZXQvUmVwb3J0UGFyYW1ldGVyLmNzcyIsIndlYnBhY2s6Ly8vLi9yZXBvcnRpbmcvdWkvd2lkZ2V0L0RhdGVSYW5nZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vcmVwb3J0aW5nL3VpL3dpZGdldC9SZXBvcnRNYXRyaXguY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvbXh1aS5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7Ozs7QUFJQTtBQUNBO0FBQ0E7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QUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QjtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkIsd0JBQXdCO0FBQ3hCLFdBQVc7QUFDWDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLHlDQUF5QztBQUN4RDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLHdCQUF3QixvQkFBb0I7O0FBRTVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZjs7QUFFQTtBQUNBO0FBQ0EsK0JBQStCO0FBQy9CLFlBQVk7QUFDWjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQ7QUFDakQsMEJBQTBCO0FBQzFCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0EsYUFBYTtBQUNiLGFBQWEsd0RBQXdEO0FBQ3JFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0Esd0JBQXdCO0FBQ3hCOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHFDQUFxQztBQUNyQzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxlQUFlO0FBQ2Ysb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSxpQkFBaUI7QUFDakI7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxlQUFlO0FBQ2Ysc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QjtBQUM5Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7O0FBRUE7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7OztBQUdBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQjtBQUN0QixVQUFVO0FBQ1YsaUJBQWlCO0FBQ2pCOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSwrQkFBK0I7QUFDL0I7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7O0FBRUE7QUFDQSxhQUFhO0FBQ2I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsNEJBQTRCO0FBQzlDOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxrQkFBa0I7QUFDbEI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7QUFFQTtBQUNBLGdCQUFnQjtBQUNoQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQztBQUNqQztBQUNBO0FBQ0EsNEJBQTRCO0FBQzVCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHFCQUFxQjtBQUNyQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxpQkFBaUI7O0FBRWpCO0FBQ0E7QUFDQSwyQkFBMkI7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdnNFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQzs7O0FDOUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUN6REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0M7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmOztBQzdCQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JGQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQzFCQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLDhCQUE4QjtBQUN0QyxVQUFVLCtCQUErQjtBQUN6Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUN0R0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyREE7QUFDQTtBQUNBO0FBQ0E7OztBQ0hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RCQTtBQUNBO0FBQ0E7QUFDQTs7QUNIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN0VBO0FBQ0E7QUFDQTs7QUNGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQztBQUNBO0FBQ0E7O0FDYkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDZkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DO0FBQ25DOztBQy9CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JFQTtBQUNBO0FBQ0E7O0FDRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDZEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUM7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQzs7QUMvREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxDO0FDaEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ05BO0FBQ0E7QUFDQTs7QUNGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDWEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDekJBOztBQUVBOztBQUVBOztBQUVBOztBQUVBIiwiZmlsZSI6Im14dWkvdWkvbXh1aS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuXHRFc3NlbnRpYWwgc3R5bGVzIHRoYXQgdGhlbWVzIGNhbiBpbmhlcml0LlxuXHRJbiBvdGhlciB3b3Jkcywgd29ya3MgYnV0IGRvZXNuJ3QgbG9vayBncmVhdC5cbiovXG5cblxuXG4vKioqKlxuXHRcdEdFTkVSSUMgUElFQ0VTXG4gKioqKi9cblxuLmRpaml0UmVzZXQge1xuXHQvKiBVc2UgdGhpcyBzdHlsZSB0byBudWxsIG91dCBwYWRkaW5nLCBtYXJnaW4sIGJvcmRlciBpbiB5b3VyIHRlbXBsYXRlIGVsZW1lbnRzXG5cdFx0c28gdGhhdCBwYWdlIHNwZWNpZmljIHN0eWxlcyBkb24ndCBicmVhayB0aGVtLlxuXHRcdC0gVXNlIGluIGFsbCBUQUJMRSwgVFIgYW5kIFREIHRhZ3MuXG5cdCovXG5cdG1hcmdpbjowO1xuXHRib3JkZXI6MDtcblx0cGFkZGluZzowO1xuXHRmb250OiBpbmhlcml0O1xuXHRsaW5lLWhlaWdodDpub3JtYWw7XG5cdGNvbG9yOiBpbmhlcml0O1xufVxuLmRqX2ExMXkgLmRpaml0UmVzZXQge1xuXHQtbW96LWFwcGVhcmFuY2U6IG5vbmU7IC8qIHJlbW92ZSBwcmVkZWZpbmVkIGhpZ2gtY29udHJhc3Qgc3R5bGluZyBpbiBGaXJlZm94ICovXG59XG5cbi5kaWppdElubGluZSB7XG5cdC8qICBUbyBpbmxpbmUgYmxvY2sgZWxlbWVudHMuXG5cdFx0U2ltaWxhciB0byBJbmxpbmVCb3ggYmVsb3csIGJ1dCB0aGlzIGhhcyBmZXdlciBzaWRlLWVmZmVjdHMgaW4gTW96LlxuXHRcdEFsc28sIGFwcGFyZW50bHkgd29ya3Mgb24gYSBESVYgYXMgd2VsbCBhcyBhIEZJRUxEU0VULlxuXHQqL1xuXHRkaXNwbGF5OmlubGluZS1ibG9jaztcdFx0XHQvKiB3ZWJraXQgYW5kIEZGMyAqL1xuXHQjem9vbTogMTsgLyogc2V0IGhhc0xheW91dDp0cnVlIHRvIG1pbWljIGlubGluZS1ibG9jayAqL1xuXHQjZGlzcGxheTppbmxpbmU7IC8qIGRvbid0IHVzZSAuZGpfaWUgc2luY2UgdGhhdCBpbmNyZWFzZXMgdGhlIHByaW9yaXR5ICovXG5cdGJvcmRlcjowO1xuXHRwYWRkaW5nOjA7XG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0I3ZlcnRpY2FsLWFsaWduOiBhdXRvO1x0LyogbWFrZXMgVGV4dEJveCxCdXR0b24gbGluZSB1cCB3L25hdGl2ZSBjb3VudGVycGFydHMgb24gSUU2ICovXG59XG5cbnRhYmxlLmRpaml0SW5saW5lIHtcblx0LyogVG8gaW5saW5lIHRhYmxlcyB3aXRoIGEgZ2l2ZW4gd2lkdGggc2V0ICovXG5cdGRpc3BsYXk6aW5saW5lLXRhYmxlO1xuXHRib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cblxuLmRpaml0SGlkZGVuIHtcblx0LyogVG8gaGlkZSB1bnNlbGVjdGVkIHBhbmVzIGluIFN0YWNrQ29udGFpbmVyIGV0Yy4gKi9cblx0cG9zaXRpb246IGFic29sdXRlOyAvKiByZW1vdmUgZnJvbSBub3JtYWwgZG9jdW1lbnQgZmxvdyB0byBzaW11bGF0ZSBkaXNwbGF5OiBub25lICovXG5cdHZpc2liaWxpdHk6IGhpZGRlbjsgLyogaGlkZSBlbGVtZW50IGZyb20gdmlldywgYnV0IGRvbid0IGJyZWFrIHNjcm9sbGluZywgc2VlICMxODYxMiAqL1xufVxuLmRpaml0SGlkZGVuICoge1xuXHR2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDsgLyogaGlkZSB2aXNpYmlsaXR5OnZpc2libGUgZGVzY2VuZGFudHMgb2YgY2xhc3M9ZGlqaXRIaWRkZW4gbm9kZXMsIHNlZSAjMTg3OTkgKi9cbn1cblxuLmRpaml0VmlzaWJsZSB7XG5cdC8qIFRvIHNob3cgc2VsZWN0ZWQgcGFuZSBpbiBTdGFja0NvbnRhaW5lciBldGMuICovXG5cdGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHQvKiBvdmVycmlkZSB1c2VyJ3MgZGlzcGxheTpub25lIHNldHRpbmcgdmlhIHN0eWxlIHNldHRpbmcgb3IgaW5kaXJlY3RseSB2aWEgY2xhc3MgKi9cblx0cG9zaXRpb246IHJlbGF0aXZlO1x0XHRcdC8qIHRvIHN1cHBvcnQgc2V0dGluZyB3aWR0aC9oZWlnaHQsIHNlZSAjMjAzMyAqL1xuXHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuXG4uZGpfaWU2IC5kaWppdENvbWJvQm94IC5kaWppdElucHV0Q29udGFpbmVyLFxuLmRpaml0SW5wdXRDb250YWluZXIge1xuXHQvKiBmb3IgcG9zaXRpb25pbmcgb2YgcGxhY2VIb2xkZXIgKi9cblx0I3pvb206IDE7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGZsb2F0OiBub25lICFpbXBvcnRhbnQ7IC8qIG5lZWRlZCB0byBzcXVlZXplIHRoZSBJTlBVVCBpbiAqL1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uZGpfaWU3IC5kaWppdElucHV0Q29udGFpbmVyIHtcblx0ZmxvYXQ6IGxlZnQgIWltcG9ydGFudDsgLyogbmVlZGVkIGJ5IElFIHRvIHNxdWVlemUgdGhlIElOUFVUIGluICovXG5cdGNsZWFyOiBsZWZ0O1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgLyogdG8gZml4IHdyb25nIHRleHQgYWxpZ25tZW50IGluIHRleHRkaXI9cnRsIHRleHQgYm94ICovXG59XG5cbi5kal9pZSAuZGlqaXRTZWxlY3QgaW5wdXQsXG4uZGpfaWUgaW5wdXQuZGlqaXRUZXh0Qm94LFxuLmRqX2llIC5kaWppdFRleHRCb3ggaW5wdXQge1xuXHRmb250LXNpemU6IDEwMCU7XG59XG4uZGlqaXRTZWxlY3QgLmRpaml0QnV0dG9uVGV4dCB7XG5cdGZsb2F0OiBsZWZ0O1xuXHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuVEFCTEUuZGlqaXRTZWxlY3Qge1xuXHRwYWRkaW5nOiAwICFpbXBvcnRhbnQ7IC8qIG1lc3NlcyB1cCBib3JkZXIgYWxpZ25tZW50ICovXG5cdGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7IC8qIHNvIGpzZmlkZGxlIHdvcmtzIHdpdGggTm9ybWFsaXplZCBDU1MgY2hlY2tlZCAqL1xufVxuLmRpaml0VGV4dEJveCAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyLFxuLmRpaml0VGV4dEJveCAuZGlqaXRBcnJvd0J1dHRvbkNvbnRhaW5lcixcbi5kaWppdFZhbGlkYXRpb25UZXh0Qm94IC5kaWppdFZhbGlkYXRpb25Db250YWluZXIge1xuXHRmbG9hdDogcmlnaHQ7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5kaWppdFNlbGVjdCBpbnB1dC5kaWppdElucHV0RmllbGQsXG4uZGlqaXRUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRGaWVsZCB7XG5cdC8qIG92ZXJyaWRlIHVucmVhc29uYWJsZSB1c2VyIHN0eWxpbmcgb2YgYnV0dG9ucyBhbmQgaWNvbnMgKi9cblx0cGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbn1cbi5kaWppdFZhbGlkYXRpb25UZXh0Qm94IC5kaWppdFZhbGlkYXRpb25Db250YWluZXIge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uZGlqaXRUZWVueSB7XG5cdGZvbnQtc2l6ZToxcHg7XG5cdGxpbmUtaGVpZ2h0OjFweDtcbn1cblxuLmRpaml0T2ZmU2NyZWVuIHsgLyogdGhlc2UgY2xhc3MgYXR0cmlidXRlcyBzaG91bGQgc3VwZXJzZWRlIGFueSBpbmxpbmUgcG9zaXRpb25pbmcgc3R5bGUgKi9cblx0cG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG5cdGxlZnQ6IC0xMDAwMHB4ICFpbXBvcnRhbnQ7XG5cdHRvcDogLTEwMDAwcHggIWltcG9ydGFudDtcbn1cblxuLypcbiAqIFBvcHVwIGl0ZW1zIGhhdmUgYSB3cmFwcGVyIGRpdiAoZGlqaXRQb3B1cClcbiAqIHdpdGggdGhlIHJlYWwgcG9wdXAgaW5zaWRlLCBhbmQgbWF5YmUgYW4gaWZyYW1lIHRvb1xuICovXG4uZGlqaXRQb3B1cCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdG1hcmdpbjogMDtcblx0Ym9yZGVyOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHQtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG5cbi5kaWppdFBvc2l0aW9uT25seSB7XG5cdC8qIE51bGwgb3V0IGFsbCBwb3NpdGlvbi1yZWxhdGVkIHByb3BlcnRpZXMgKi9cblx0cGFkZGluZzogMCAhaW1wb3J0YW50O1xuXHRib3JkZXI6IDAgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcblx0d2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLmRpaml0Tm9uUG9zaXRpb25Pbmx5IHtcblx0LyogTnVsbCBwb3NpdGlvbi1yZWxhdGVkIHByb3BlcnRpZXMgKi9cblx0ZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcblx0cG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuXHRtYXJnaW46IDAgMCAwIDAgIWltcG9ydGFudDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50O1xufVxuXG4uZGlqaXRCYWNrZ3JvdW5kSWZyYW1lIHtcblx0LyogaWZyYW1lIHVzZWQgdG8gcHJldmVudCBwcm9ibGVtcyB3aXRoIFBERiBvciBvdGhlciBhcHBsZXRzIG92ZXJsYXlpbmcgbWVudXMgZXRjICovXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogMDtcblx0dG9wOiAwO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHR6LWluZGV4OiAtMTtcblx0Ym9yZGVyOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHRtYXJnaW46IDA7XG59XG5cbi5kaWppdERpc3BsYXlOb25lIHtcblx0LyogaGlkZSBzb21ldGhpbmcuICBVc2UgdGhpcyBhcyBhIGNsYXNzIHJhdGhlciB0aGFuIGVsZW1lbnQuc3R5bGUgc28gYW5vdGhlciBjbGFzcyBjYW4gb3ZlcnJpZGUgKi9cblx0ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdENvbnRhaW5lciB7XG5cdC8qIGZvciBhbGwgbGF5b3V0IGNvbnRhaW5lcnMgKi9cblx0b3ZlcmZsb3c6IGhpZGRlbjtcdC8qIG5lZWQgb24gSUUgc28gc29tZXRoaW5nIGNhbiBiZSByZWR1Y2VkIGluIHNpemUsIGFuZCBzbyBzY3JvbGxiYXJzIGFyZW4ndCB0ZW1wb3JhcmlseSBkaXNwbGF5ZWQgd2hlbiByZXNpemluZyAqL1xufVxuXG4vKioqKlxuXHRcdEExMVlcbiAqKioqL1xuLmRqX2ExMXkgLmRpaml0SWNvbixcbi5kal9hMTF5IGRpdi5kaWppdEFycm93QnV0dG9uSW5uZXIsIC8qIGlzIHRoaXMgb25seSBmb3IgU3Bpbm5lcj8gIGlmIHNvLCBpdCBzaG91bGQgYmUgZGVsZXRlZCAqL1xuLmRqX2ExMXkgc3Bhbi5kaWppdEFycm93QnV0dG9uSW5uZXIsXG4uZGpfYTExeSBpbWcuZGlqaXRBcnJvd0J1dHRvbklubmVyLFxuLmRqX2ExMXkgLmRpaml0Q2FsZW5kYXJJbmNyZW1lbnRDb250cm9sLFxuLmRqX2ExMXkgLmRpaml0VHJlZUV4cGFuZG8ge1xuXHQvKiBoaWRlIGljb24gbm9kZXMgaW4gaGlnaCBjb250cmFzdCBtb2RlOyB3aGVuIG5lY2Vzc2FyeSB0aGV5IHdpbGwgYmUgcmVwbGFjZWQgYnkgY2hhcmFjdGVyIGVxdWl2YWxlbnRzXG5cdCAqIGV4Y2VwdGlvbiBmb3IgaW5wdXQuZGlqaXRBcnJvd0J1dHRvbklubmVyLCBiZWNhdXNlIHRoZSBpY29uIGFuZCBjaGFyYWN0ZXIgYXJlIGNvbnRyb2xsZWQgYnkgdGhlIHNhbWUgbm9kZSAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuLmRpaml0U3Bpbm5lciBkaXYuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0ZGlzcGxheTogYmxvY2s7IC8qIG92ZXJyaWRlIHByZXZpb3VzIHJ1bGUgKi9cbn1cblxuLmRqX2ExMXkgLmRpaml0QTExeVNpZGVBcnJvdyB7XG5cdGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyAvKiBkaXNwbGF5IHRleHQgaW5zdGVhZCAqL1xuXHRjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8qXG4gKiBTaW5jZSB3ZSBjYW4ndCB1c2Ugc2hhZGluZyBpbiBhMTF5IG1vZGUsIGFuZCBzaW5jZSB0aGUgdW5kZXJsaW5lIGluZGljYXRlcyB0b2RheSdzIGRhdGUsXG4gKiB1c2UgYSBib3JkZXIgdG8gc2hvdyB0aGUgc2VsZWN0ZWQgZGF0ZS5cbiAqIEF2b2lkIHNjcmVlbiBqaXR0ZXIgd2hlbiBzd2l0Y2hpbmcgc2VsZWN0ZWQgZGF0ZSBieSBjb21wZW5zYXRpbmcgZm9yIHRoZSBzZWxlY3RlZCBub2RlJ3NcbiAqIGJvcmRlciB3L3BhZGRpbmcgb24gb3RoZXIgbm9kZXMuXG4gKi9cbi5kal9hMTF5IC5kaWppdENhbGVuZGFyRGF0ZUxhYmVsIHtcblx0cGFkZGluZzogMXB4O1xuXHRib3JkZXI6IDBweCAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0Q2FsZW5kYXJTZWxlY3RlZERhdGUgLmRpaml0Q2FsZW5kYXJEYXRlTGFiZWwge1xuXHRib3JkZXItc3R5bGU6IHNvbGlkICFpbXBvcnRhbnQ7XG5cdGJvcmRlci13aWR0aDogMXB4ICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmc6IDA7XG59XG4uZGpfYTExeSAuZGlqaXRDYWxlbmRhckRhdGVUZW1wbGF0ZSB7XG5cdHBhZGRpbmctYm90dG9tOiAwLjFlbSAhaW1wb3J0YW50O1x0Lyogb3RoZXJ3aXNlIGJvdHRvbSBib3JkZXIgZG9lc24ndCBhcHBlYXIgb24gSUUgKi9cblx0Ym9yZGVyOiAwcHggIWltcG9ydGFudDtcbn1cbi5kal9hMTF5IC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXI6IGJsYWNrIG91dHNldCBtZWRpdW0gIWltcG9ydGFudDtcblxuXHQvKiBJbiBjbGFybywgaG92ZXJpbmcgYSB0b29sYmFyIGJ1dHRvbiByZWR1Y2VzIHBhZGRpbmcgYW5kIGFkZHMgYSBib3JkZXIuXG5cdCAqIE5vdCBuZWVkZWQgaW4gYTExeSBtb2RlIHNpbmNlIFRvb2xiYXIgYnV0dG9ucyBhbHdheXMgaGF2ZSBhIGJvcmRlci5cblx0ICovXG5cdHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbn1cbi5kal9hMTF5IC5kaWppdEFycm93QnV0dG9uIHtcblx0cGFkZGluZzogMCAhaW1wb3J0YW50O1xufVxuXG4uZGpfYTExeSAuZGlqaXRCdXR0b25Db250ZW50cyB7XG5cdG1hcmdpbjogMC4xNWVtOyAvKiBNYXJnaW4gbmVlZGVkIHRvIG1ha2UgZm9jdXMgb3V0bGluZSB2aXNpYmxlICovXG59XG5cbi5kal9hMTF5IC5kaWppdFRleHRCb3hSZWFkT25seSAuZGlqaXRJbnB1dEZpZWxkLFxuLmRqX2ExMXkgLmRpaml0VGV4dEJveFJlYWRPbmx5IC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXItc3R5bGU6IG91dHNldCFpbXBvcnRhbnQ7XG5cdGJvcmRlci13aWR0aDogbWVkaXVtIWltcG9ydGFudDtcblx0Ym9yZGVyLWNvbG9yOiAjOTk5ICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiM5OTkgIWltcG9ydGFudDtcbn1cblxuLyogYnV0dG9uIGlubmVyIGNvbnRlbnRzIC0gbGFiZWxzLCBpY29ucyBldGMuICovXG4uZGlqaXRCdXR0b25Ob2RlICoge1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmRpaml0U2VsZWN0IC5kaWppdEFycm93QnV0dG9uSW5uZXIsXG4uZGlqaXRCdXR0b25Ob2RlIC5kaWppdEFycm93QnV0dG9uSW5uZXIge1xuXHQvKiB0aGUgYXJyb3cgaWNvbiBub2RlICovXG5cdGJhY2tncm91bmQ6IG5vLXJlcGVhdCBjZW50ZXI7XG5cdHdpZHRoOiAxMnB4O1xuXHRoZWlnaHQ6IDEycHg7XG5cdGRpcmVjdGlvbjogbHRyOyAvKiBuZWVkZWQgYnkgSUUvUlRMICovXG59XG5cbi8qKioqXG5cdDMtZWxlbWVudCBib3JkZXJzOiAgKCBkaWppdExlZnQgKyBkaWppdFN0cmV0Y2ggKyBkaWppdFJpZ2h0IClcblx0VGhlc2Ugd2VyZSBhZGRlZCBmb3Igcm91bmRlZCBjb3JuZXJzIG9uIGRpaml0LmZvcm0uKkJ1dHRvbiBidXQgbmV2ZXIgYWN0dWFsbHkgdXNlZC5cbiAqKioqL1xuXG4uZGlqaXRMZWZ0IHtcblx0LyogTGVmdCBwYXJ0IG9mIGEgMy1lbGVtZW50IGJvcmRlciAqL1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgdG9wO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XG59XG5cbi5kaWppdFN0cmV0Y2gge1xuXHQvKiBNaWRkbGUgKHN0cmV0Y2h5KSBwYXJ0IG9mIGEgMy1lbGVtZW50IGJvcmRlciAqL1xuXHR3aGl0ZS1zcGFjZTpub3dyYXA7XHRcdFx0LyogTU9XOiBtb3ZlIHNvbWV3aGVyZSBlbHNlICovXG5cdGJhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14O1xufVxuXG4uZGlqaXRSaWdodCB7XG5cdC8qIFJpZ2h0IHBhcnQgb2YgYSAzLWVsZW1lbnQgYm9yZGVyICovXG5cdCNkaXNwbGF5OmlubGluZTtcdFx0XHRcdC8qIElFNyBzaXplcyB0byBvdXRlciBzaXplIHcvbyB0aGlzICovXG5cdGJhY2tncm91bmQtcG9zaXRpb246cmlnaHQgdG9wO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XG59XG5cbi8qIEJ1dHRvbnMgKi9cbi5kal9nZWNrbyAuZGpfYTExeSAuZGlqaXRCdXR0b25EaXNhYmxlZCAuZGlqaXRCdXR0b25Ob2RlIHtcblx0b3BhY2l0eTogMC41O1xufVxuXG4uZGlqaXRUb2dnbGVCdXR0b24sXG4uZGlqaXRCdXR0b24sXG4uZGlqaXREcm9wRG93bkJ1dHRvbixcbi5kaWppdENvbWJvQnV0dG9uIHtcblx0Lyogb3V0c2lkZSBvZiBidXR0b24gKi9cblx0bWFyZ2luOiAwLjJlbTtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHRkaXNwbGF5OiBibG9jaztcdFx0LyogdG8gbWFrZSBmb2N1cyBib3JkZXIgcmVjdGFuZ3VsYXIgKi9cbn1cbnRkLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHRkaXNwbGF5OiB0YWJsZS1jZWxsO1x0LyogYnV0IGRvbid0IGFmZmVjdCBTZWxlY3QsIENvbWJvQnV0dG9uICovXG59XG5cbi5kaWppdEJ1dHRvbk5vZGUgaW1nIHtcblx0LyogbWFrZSB0ZXh0IGFuZCBpbWFnZXMgbGluZSB1cCBjbGVhbmx5ICovXG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0LyptYXJnaW4tYm90dG9tOi4yZW07Ki9cbn1cblxuLmRpaml0VG9vbGJhciAuZGlqaXRDb21ib0J1dHRvbiB7XG5cdC8qIGJlY2F1c2UgVG9vbGJhciBvbmx5IGRyYXdzIGEgYm9yZGVyIGFyb3VuZCB0aGUgaG92ZXJlZCB0aGluZyAqL1xuXHRib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xufVxuXG4uZGlqaXRUb29sYmFyIC5kaWppdFRvZ2dsZUJ1dHRvbixcbi5kaWppdFRvb2xiYXIgLmRpaml0QnV0dG9uLFxuLmRpaml0VG9vbGJhciAuZGlqaXREcm9wRG93bkJ1dHRvbixcbi5kaWppdFRvb2xiYXIgLmRpaml0Q29tYm9CdXR0b24ge1xuXHRtYXJnaW46IDA7XG59XG5cbi5kaWppdFRvb2xiYXIgLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHQvKiBqdXN0IGJlY2F1c2UgaXQgdXNlZCB0byBiZSB0aGlzIHdheSAqL1xuXHRwYWRkaW5nOiAxcHggMnB4O1xufVxuXG5cbi5kal93ZWJraXQgLmRpaml0VG9vbGJhciAuZGlqaXREcm9wRG93bkJ1dHRvbiB7XG5cdHBhZGRpbmctbGVmdDogMC4zZW07XG59XG4uZGpfZ2Vja28gLmRpaml0VG9vbGJhciAuZGlqaXRCdXR0b25Ob2RlOjotbW96LWZvY3VzLWlubmVyIHtcblx0cGFkZGluZzowO1xufVxuXG4uZGlqaXRTZWxlY3Qge1xuXHRib3JkZXI6MXB4IHNvbGlkIGdyYXk7XG59XG4uZGlqaXRCdXR0b25Ob2RlIHtcblx0LyogTm9kZSB0aGF0IGlzIGFjdGluZyBhcyBhIGJ1dHRvbiAtLSBtYXkgb3IgbWF5IG5vdCBiZSBhIEJVVFRPTiBlbGVtZW50ICovXG5cdGJvcmRlcjoxcHggc29saWQgZ3JheTtcblx0bWFyZ2luOjA7XG5cdGxpbmUtaGVpZ2h0Om5vcm1hbDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0I3ZlcnRpY2FsLWFsaWduOiBhdXRvO1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5kal93ZWJraXQgLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIHtcblx0LyogYXBwYXJlbnQgV2ViS2l0IGJ1ZyB3aGVyZSBtZXNzaW5nIHdpdGggdGhlIGZvbnQgY291cGxlZCB3aXRoIGxpbmUtaGVpZ2h0Om5vcm1hbCBYIDIgKGRpaml0UmVzZXQgJiBkaWppdEJ1dHRvbk5vZGUpXG5cdGNhbiBiZSBkaWZmZXJlbnQgdGhhbiBqdXN0IGEgc2luZ2xlIGxpbmUtaGVpZ2h0Om5vcm1hbCwgdmlzaWJsZSBpbiBJbmxpbmVFZGl0Qm94L1NwaW5uZXIgKi9cblx0bGluZS1oZWlnaHQ6aW5oZXJpdDtcbn1cbi5kaWppdFRleHRCb3ggLmRpaml0QnV0dG9uTm9kZSB7XG5cdGJvcmRlci13aWR0aDogMDtcbn1cblxuLmRpaml0U2VsZWN0LFxuLmRpaml0U2VsZWN0ICosXG4uZGlqaXRCdXR0b25Ob2RlLFxuLmRpaml0QnV0dG9uTm9kZSAqIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uZGpfaWUgLmRpaml0QnV0dG9uTm9kZSB7XG5cdC8qIGVuc3VyZSBoYXNMYXlvdXQgKi9cblx0em9vbTogMTtcbn1cblxuLmRqX2llIC5kaWppdEJ1dHRvbk5vZGUgYnV0dG9uIHtcblx0Lypcblx0XHRkaXNndXN0aW5nIGhhY2sgdG8gZ2V0IHJpZCBvZiBzcHVyaW91cyBwYWRkaW5nIGFyb3VuZCBidXR0b24gZWxlbWVudHNcblx0XHRvbiBJRS4gTVNJRSBpcyB0cnVseSB0aGUgd2ViJ3MgYm9hdCBhbmNob3IuXG5cdCovXG5cdG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG5kaXYuZGlqaXRBcnJvd0J1dHRvbiB7XG5cdGZsb2F0OiByaWdodDtcbn1cblxuLyoqKioqKlxuXHRUZXh0Qm94IHJlbGF0ZWQuXG5cdEV2ZXJ5dGhpbmcgdGhhdCBoYXMgYW4gPGlucHV0PlxuKioqKioqKi9cblxuLmRpaml0VGV4dEJveCB7XG5cdGJvcmRlcjogc29saWQgYmxhY2sgMXB4O1xuXHQjb3ZlcmZsb3c6IGhpZGRlbjsgLyogIzYwMjcsICM2MDY3ICovXG5cdHdpZHRoOiAxNWVtO1x0LyogbmVlZCB0byBzZXQgZGVmYXVsdCBzaXplIG9uIG91dGVyIG5vZGUgc2luY2UgaW5uZXIgbm9kZXMgc2F5IDxpbnB1dCBzdHlsZT1cIndpZHRoOjEwMCVcIj4gYW5kIDx0ZCB3aWR0aD0xMDAlPi4gIHVzZXIgY2FuIG92ZXJyaWRlICovXG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5kaWppdFRleHRCb3hSZWFkT25seSxcbi5kaWppdFRleHRCb3hEaXNhYmxlZCB7XG5cdGNvbG9yOiBncmF5O1xufVxuLmRqX3NhZmFyaSAuZGlqaXRUZXh0Qm94RGlzYWJsZWQgaW5wdXQge1xuXHRjb2xvcjogI0IwQjBCMDsgLyogYmVjYXVzZSBTYWZhcmkgbGlnaHRlbnMgZGlzYWJsZWQgaW5wdXQvdGV4dGFyZWEgbm8gbWF0dGVyIHdoYXQgY29sb3IgeW91IHNwZWNpZnkgKi9cbn1cbi5kal9zYWZhcmkgdGV4dGFyZWEuZGlqaXRUZXh0QXJlYURpc2FibGVkIHtcblx0Y29sb3I6ICMzMzM7IC8qIGJlY2F1c2UgU2FmYXJpIGxpZ2h0ZW5zIGRpc2FibGVkIGlucHV0L3RleHRhcmVhIG5vIG1hdHRlciB3aGF0IGNvbG9yIHlvdSBzcGVjaWZ5ICovXG59XG4uZGpfZ2Vja28gLmRpaml0VGV4dEJveFJlYWRPbmx5IGlucHV0LmRpaml0SW5wdXRGaWVsZCwgLyogZGlzYWJsZSBhcnJvdyBhbmQgdmFsaWRhdGlvbiBwcmVzZW50YXRpb24gaW5wdXRzIGJ1dCBhbGxvdyByZWFsIGlucHV0IGZvciB0ZXh0IHNlbGVjdGlvbiAqL1xuLmRqX2dlY2tvIC5kaWppdFRleHRCb3hEaXNhYmxlZCBpbnB1dCB7XG5cdC1tb3otdXNlci1pbnB1dDogbm9uZTsgLyogcHJldmVudCBmb2N1cyBvZiBkaXNhYmxlZCB0ZXh0Ym94IGJ1dHRvbnMgKi9cbn1cblxuLmRpaml0UGxhY2VIb2xkZXIge1xuXHQvKiBoaW50IHRleHQgdGhhdCBhcHBlYXJzIGluIGEgdGV4dGJveCB1bnRpbCB1c2VyIHN0YXJ0cyB0eXBpbmcgKi9cblx0Y29sb3I6ICNBQUFBQUE7XG5cdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdCNmaWx0ZXI6IFwiXCI7IC8qIG1ha2UgdGhpcyBzaG93IHVwIGluIElFNiBhZnRlciB0aGUgcmVuZGVyaW5nIG9mIHRoZSB3aWRnZXQgKi9cblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7ICAgLyogc28gY3V0L3Bhc3RlIGNvbnRleHQgbWVudSBzaG93cyB1cCB3aGVuIHJpZ2h0IGNsaWNraW5nICovXG59XG5cbi5kaWppdFRpbWVUZXh0Qm94IHtcblx0d2lkdGg6IDhlbTtcbn1cblxuLyogcnVsZXMgZm9yIHdlYmtpdCB0byBkZWFsIHdpdGggZnV6enkgYmx1ZSBmb2N1cyBib3JkZXIgKi9cbi5kaWppdFRleHRCb3ggaW5wdXQ6Zm9jdXMge1xuXHRvdXRsaW5lOiBub25lO1x0LyogYmx1ZSBmdXp6eSBsaW5lIGxvb2tzIHdyb25nIG9uIGNvbWJvYm94IG9yIHNvbWV0aGluZyB3L3ZhbGlkYXRpb24gaWNvbiBzaG93aW5nICovXG59XG4uZGlqaXRUZXh0Qm94Rm9jdXNlZCB7XG5cdG91dGxpbmU6IDVweCAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XG59XG5cbi5kaWppdFNlbGVjdCBpbnB1dCxcbi5kaWppdFRleHRCb3ggaW5wdXQge1xuXHRmbG9hdDogbGVmdDsgLyogbmVlZGVkIGJ5IElFIHRvIHJlbW92ZSBzZWNyZXQgbWFyZ2luICovXG59XG4uZGpfaWU2IGlucHV0LmRpaml0VGV4dEJveCxcbi5kal9pZTYgLmRpaml0VGV4dEJveCBpbnB1dCB7XG5cdGZsb2F0OiBub25lO1xufVxuLmRpaml0SW5wdXRJbm5lciB7XG5cdC8qIGZvciB3aGVuIGFuIDxpbnB1dD4gaXMgZW1iZWRkZWQgaW5zaWRlIGFuIGlubGluZS1ibG9jayA8ZGl2PiB3aXRoIGEgc2l6ZSBhbmQgYm9yZGVyICovXG5cdGJvcmRlcjowICFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblx0d2lkdGg6MTAwJSAhaW1wb3J0YW50O1xuXHQvKiBJRSBkaXNsaWtlcyBob3Jpem9udGFsIHR3ZWFraW5nIGNvbWJpbmVkIHdpdGggd2lkdGg6MTAwJSBzbyBwdW5pc2ggZXZlcnlvbmUgZm9yIGNvbnNpc3RlbmN5ICovXG5cdHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0VGV4dEJveCBpbnB1dCB7XG5cdG1hcmdpbjogMCAhaW1wb3J0YW50O1xufVxuLmRpaml0VmFsaWRhdGlvblRleHRCb3hFcnJvciBpbnB1dC5kaWppdFZhbGlkYXRpb25Jbm5lcixcbi5kaWppdFNlbGVjdCBpbnB1dCxcbi5kaWppdFRleHRCb3ggaW5wdXQuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0LyogPGlucHV0PiB1c2VkIHRvIGRpc3BsYXkgYXJyb3cgaWNvbi92YWxpZGF0aW9uIGljb24sIG9yIGluIGFycm93IGNoYXJhY3RlciBpbiBoaWdoIGNvbnRyYXN0IG1vZGUuXG5cdCAqIFRoZSBjc3MgYmVsb3cgaXMgYSB0cmljayB0byBoaWRlIHRoZSBjaGFyYWN0ZXIgaW4gbm9uLWhpZ2gtY29udHJhc3QgbW9kZVxuXHQgKi9cblx0dGV4dC1pbmRlbnQ6IC0yZW0gIWltcG9ydGFudDtcblx0ZGlyZWN0aW9uOiBsdHIgIWltcG9ydGFudDtcblx0dGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcblx0I3RleHQtaW5kZW50OiAwICFpbXBvcnRhbnQ7XG5cdCNsZXR0ZXItc3BhY2luZzogLTVlbSAhaW1wb3J0YW50O1xuXHQjdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDtcbn1cbi5kal9pZSAuZGlqaXRTZWxlY3QgaW5wdXQsXG4uZGpfaWUgLmRpaml0VGV4dEJveCBpbnB1dCxcbi5kal9pZSBpbnB1dC5kaWppdFRleHRCb3gge1xuXHRvdmVyZmxvdy15OiB2aXNpYmxlOyAvKiBpbnB1dHMgbmVlZCBoZWxwIGV4cGFuZGluZyB3aGVuIHBhZGRpbmcgaXMgYWRkZWQgb3IgbGluZS1oZWlnaHQgaXMgYWRqdXN0ZWQgKi9cblx0bGluZS1oZWlnaHQ6IG5vcm1hbDsgLyogc3RyaWN0IG1vZGUgKi9cbn1cbi5kaWppdFNlbGVjdCAuZGlqaXRTZWxlY3RMYWJlbCBzcGFuIHtcblx0bGluZS1oZWlnaHQ6IDEwMCU7XG59XG4uZGpfaWUgLmRpaml0U2VsZWN0IC5kaWppdFNlbGVjdExhYmVsIHtcblx0bGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cbi5kal9pZTYgLmRpaml0U2VsZWN0IC5kaWppdFNlbGVjdExhYmVsLFxuLmRqX2llNyAuZGlqaXRTZWxlY3QgLmRpaml0U2VsZWN0TGFiZWwsXG4uZGpfaWU4IC5kaWppdFNlbGVjdCAuZGlqaXRTZWxlY3RMYWJlbCxcbi5kal9pZXF1aXJrcyAuZGlqaXRTZWxlY3QgLmRpaml0U2VsZWN0TGFiZWwsXG4uZGlqaXRTZWxlY3QgdGQsXG4uZGpfaWU2IC5kaWppdFNlbGVjdCBpbnB1dCxcbi5kal9pZXF1aXJrcyAuZGlqaXRTZWxlY3QgaW5wdXQsXG4uZGpfaWU2IC5kaWppdFNlbGVjdCAuZGlqaXRWYWxpZGF0aW9uQ29udGFpbmVyLFxuLmRqX2llNiAuZGlqaXRUZXh0Qm94IGlucHV0LFxuLmRqX2llNiBpbnB1dC5kaWppdFRleHRCb3gsXG4uZGpfaWVxdWlya3MgLmRpaml0VGV4dEJveCBpbnB1dC5kaWppdFZhbGlkYXRpb25Jbm5lcixcbi5kal9pZXF1aXJrcyAuZGlqaXRUZXh0Qm94IGlucHV0LmRpaml0QXJyb3dCdXR0b25Jbm5lcixcbi5kal9pZXF1aXJrcyAuZGlqaXRUZXh0Qm94IGlucHV0LmRpaml0U3Bpbm5lckJ1dHRvbklubmVyLFxuLmRqX2llcXVpcmtzIC5kaWppdFRleHRCb3ggaW5wdXQuZGlqaXRJbnB1dElubmVyLFxuLmRqX2llcXVpcmtzIGlucHV0LmRpaml0VGV4dEJveCB7XG5cdGxpbmUtaGVpZ2h0OiAxMDAlOyAvKiBJRTcgcHJvYmxlbSB3aGVyZSB0aGUgaWNvbiBpcyB2ZXJ0aWNhbGx5IHdheSB0b28gbG93IHcvbyB0aGlzICovXG59XG4uZGpfYTExeSBpbnB1dC5kaWppdFZhbGlkYXRpb25Jbm5lcixcbi5kal9hMTF5IGlucHV0LmRpaml0QXJyb3dCdXR0b25Jbm5lciB7XG5cdC8qIChpbiBoaWdoIGNvbnRyYXN0IG1vZGUpIHJldmVydCBydWxlcyBmcm9tIGFib3ZlIHNvIGNoYXJhY3RlciBkaXNwbGF5cyAqL1xuXHR0ZXh0LWluZGVudDogMCAhaW1wb3J0YW50O1xuXHR3aWR0aDogMWVtICFpbXBvcnRhbnQ7XG5cdCN0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiBibGFjayAhaW1wb3J0YW50O1xufVxuLmRpaml0VmFsaWRhdGlvblRleHRCb3hFcnJvciAuZGlqaXRWYWxpZGF0aW9uQ29udGFpbmVyIHtcblx0ZGlzcGxheTogaW5saW5lO1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qIENvbWJvQm94ICYgU3Bpbm5lciAqL1xuXG4uZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIsXG4uZGlqaXRDb21ib0JveCAuZGlqaXRBcnJvd0J1dHRvbkNvbnRhaW5lciB7XG5cdC8qIGRpdmlkaW5nIGxpbmUgYmV0d2VlbiBpbnB1dCBhcmVhIGFuZCB1cC9kb3duIGJ1dHRvbihzKSBmb3IgQ29tYm9Cb3ggYW5kIFNwaW5uZXIgKi9cblx0Ym9yZGVyLXdpZHRoOiAwIDAgMCAxcHggIWltcG9ydGFudDsgLyogIWltcG9ydGFudCBuZWVkZWQgZHVlIHRvIHdheXdhcmQgXCIudGhlbWUgLmRpaml0QnV0dG9uTm9kZVwiIHJ1bGVzICovXG59XG4uZGpfYTExeSAuZGlqaXRTZWxlY3QgLmRpaml0QXJyb3dCdXR0b25Db250YWluZXIsXG4uZGlqaXRUb29sYmFyIC5kaWppdENvbWJvQm94IC5kaWppdEFycm93QnV0dG9uQ29udGFpbmVyIHtcblx0Lyogb3ZlcnJpZGVzIGFib3ZlIHJ1bGUgcGx1cyBtaXJyb3ItaW1hZ2UgcnVsZSBpbiBkaWppdF9ydGwuY3NzIHRvIGhhdmUgbm8gZGl2aWRlciB3aGVuIENvbWJvQm94IGluIFRvb2xiYXIgKi9cblx0Ym9yZGVyLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdENvbWJvQm94TWVudSB7XG5cdC8qIERyb3AgZG93biBtZW51IGlzIGltcGxlbWVudGVkIGFzIDx1bD4gPGxpLz4gPGxpLz4gLi4uIGJ1dCB3ZSBkb24ndCB3YW50IGNpcmNsZXMgYmVmb3JlIGVhY2ggaXRlbSAqL1xuXHRsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0QnV0dG9uTm9kZSB7XG5cdC8qIGRpdmlkaW5nIGxpbmUgYmV0d2VlbiBpbnB1dCBhcmVhIGFuZCB1cC9kb3duIGJ1dHRvbihzKSBmb3IgQ29tYm9Cb3ggYW5kIFNwaW5uZXIgKi9cblx0Ym9yZGVyLXdpZHRoOiAwO1xufVxuLmRqX2llIC5kal9hMTF5IC5kaWppdFNwaW5uZXIgLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciAuZGlqaXRCdXR0b25Ob2RlIHtcblx0Y2xlYXI6IGJvdGg7IC8qIElFIHdvcmthcm91bmQgKi9cbn1cblxuLmRqX2llIC5kaWppdFRvb2xiYXIgLmRpaml0Q29tYm9Cb3gge1xuXHQvKiBtYWtlIGNvbWJvYm94IGJ1dHRvbnMgYWxpZ24gcHJvcGVybHkgd2l0aCBvdGhlciBidXR0b25zIGluIGEgdG9vbGJhciAqL1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4vKiBTcGlubmVyICovXG5cbi5kaWppdFRleHRCb3ggLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciB7XG5cdHdpZHRoOiAxZW07XG5cdHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uSW5uZXIge1xuXHR3aWR0aDoxZW07XG5cdHZpc2liaWxpdHk6aGlkZGVuICFpbXBvcnRhbnQ7IC8qIGp1c3QgYSBzaXppbmcgZWxlbWVudCAqL1xuXHRvdmVyZmxvdy14OmhpZGRlbjtcbn1cbi5kaWppdENvbWJvQm94IC5kaWppdEJ1dHRvbk5vZGUsXG4uZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXItd2lkdGg6IDA7XG59XG4uZGpfYTExeSAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXItd2lkdGg6IDBweCAhaW1wb3J0YW50O1xuXHRib3JkZXItc3R5bGU6IHNvbGlkICFpbXBvcnRhbnQ7XG59XG4uZGpfYTExeSAuZGlqaXRUZXh0Qm94IC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIsXG4uZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIsXG4uZGpfYTExeSAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIGlucHV0IHtcblx0d2lkdGg6IDFlbSAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0bWFyZ2luOiAwIGF1dG8gIWltcG9ydGFudDsgLyogc2hvdWxkIGF1dG8tY2VudGVyICovXG59XG4uZGpfaWUgLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHRwYWRkaW5nLWxlZnQ6IDAuM2VtICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctcmlnaHQ6IDAuM2VtICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1sZWZ0OiAwLjNlbSAhaW1wb3J0YW50O1xuXHRtYXJnaW4tcmlnaHQ6IDAuM2VtICFpbXBvcnRhbnQ7XG5cdHdpZHRoOiAxLjRlbSAhaW1wb3J0YW50O1xufVxuLmRqX2llNyAuZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIgLmRpaml0SW5wdXRGaWVsZCB7XG5cdHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50OyAvKiBtYW51YWxseSBjZW50ZXIgSU5QVVQ6IGNoYXJhY3RlciBpcyAuNWVtIGFuZCB0b3RhbCB3aWR0aCA9IDFlbSAqL1xuXHRwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG5cdHdpZHRoOiAxZW0gIWltcG9ydGFudDtcbn1cbi5kal9pZTYgLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHRtYXJnaW4tbGVmdDogMC4xZW0gIWltcG9ydGFudDtcblx0bWFyZ2luLXJpZ2h0OiAwLjFlbSAhaW1wb3J0YW50O1xuXHR3aWR0aDogMWVtICFpbXBvcnRhbnQ7XG59XG4uZGpfaWVxdWlya3MgLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHRtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuXHRtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcblx0d2lkdGg6IDJlbSAhaW1wb3J0YW50O1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEFycm93QnV0dG9uIHtcblx0Lyogbm90ZTogLmRpaml0SW5wdXRMYXlvdXRDb250YWluZXIgbWFrZXMgdGhpcyBydWxlIG92ZXJyaWRlIC5kaWppdEFycm93QnV0dG9uIHNldHRpbmdzXG5cdCAqIGZvciBkaWppdC5mb3JtLkJ1dHRvblxuXHQgKi9cblx0cGFkZGluZzogMDtcblx0cG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG5cdHJpZ2h0OiAwO1xuXHRmbG9hdDogbm9uZTtcblx0aGVpZ2h0OiA1MCU7XG5cdHdpZHRoOiAxMDAlO1xuXHRib3R0b206IGF1dG87XG5cdGxlZnQ6IDA7XG5cdHJpZ2h0OiBhdXRvO1xufVxuLmRqX2llcXVpcmtzIC5kaWppdFNwaW5uZXIgLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciAuZGlqaXRBcnJvd0J1dHRvbiB7XG5cdHdpZHRoOiBhdXRvO1xufVxuLmRqX2ExMXkgLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciAuZGlqaXRBcnJvd0J1dHRvbiB7XG5cdG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0RG93bkFycm93QnV0dG9uIHtcblx0dG9wOiA1MCU7XG5cdGJvcmRlci10b3Atd2lkdGg6IDFweCAhaW1wb3J0YW50O1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdFVwQXJyb3dCdXR0b24ge1xuXHQjYm90dG9tOiA1MCU7XHQvKiBvdGhlcndpc2UgKG9uIHNvbWUgbWFjaGluZXMpIHRvcCBhcnJvdyBpY29uIHRvbyBjbG9zZSB0byBzcGxpdHRlciBib3JkZXIgKElFNi83KSAqL1xuXHR0b3A6IDA7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIge1xuXHRtYXJnaW46IGF1dG87XG5cdG92ZXJmbG93LXg6IGhpZGRlbjtcblx0aGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG59XG4uZGpfaWVxdWlya3MgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0aGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIgLmRpaml0SW5wdXRGaWVsZCB7XG5cdC1tb3otdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuXHQtbW96LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciB0b3A7XG5cdC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuXHQtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciB0b3A7XG5cdC1vLXRyYW5zZm9ybTogc2NhbGUoMC41KTtcblx0LW8tdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIHRvcDtcblx0dHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuXHR0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDtcblx0cGFkZGluZy10b3A6IDA7XG5cdHBhZGRpbmctYm90dG9tOiAwO1xuXHRwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcblx0cGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuXHR3aWR0aDogMTAwJTtcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLmRqX2llIC5kaWppdFNwaW5uZXIgLmRpaml0QXJyb3dCdXR0b25Jbm5lciAuZGlqaXRJbnB1dEZpZWxkIHtcblx0em9vbTogNTAlOyAvKiBlbXVsYXRlIHRyYW5zZm9ybTogc2NhbGUoMC41KSAqL1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIge1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0QXJyb3dCdXR0b24ge1xuXHR3aWR0aDogMTAwJTtcbn1cbi5kal9pZXF1aXJrcyAuZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0QXJyb3dCdXR0b24ge1xuXHR3aWR0aDogMWVtOyAvKiBtYXRjaGVzIC5kal9hMTF5IC5kaWppdFRleHRCb3ggLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciBydWxlIC0gMTAwJSBpcyB0aGUgd2hvbGUgc2NyZWVuIHdpZHRoIGluIHF1aXJrcyAqL1xufVxuLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHR2ZXJ0aWNhbC1hbGlnbjp0b3A7XG5cdHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4uZGpfYTExeSAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIHtcblx0d2lkdGg6IDFlbTtcbn1cblxuLyoqKipcblx0XHRkaWppdC5mb3JtLkNoZWNrQm94XG4gXHQgJlxuICBcdFx0ZGlqaXQuZm9ybS5SYWRpb0J1dHRvblxuICoqKiovXG5cbi5kaWppdENoZWNrQm94LFxuLmRpaml0UmFkaW8sXG4uZGlqaXRDaGVja0JveElucHV0IHtcblx0cGFkZGluZzogMDtcblx0Ym9yZGVyOiAwO1xuXHR3aWR0aDogMTZweDtcblx0aGVpZ2h0OiAxNnB4O1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciBjZW50ZXI7XG5cdGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmRpaml0Q2hlY2tCb3ggaW5wdXQsXG4uZGlqaXRSYWRpbyBpbnB1dCB7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbi5kaWppdENoZWNrQm94SW5wdXQge1xuXHQvKiBwbGFjZSB0aGUgYWN0dWFsIGlucHV0IG9uIHRvcCwgYnV0IGludmlzaWJsZSAqL1xuXHRvcGFjaXR5OiAwO1xufVxuXG4uZGpfaWUgLmRpaml0Q2hlY2tCb3hJbnB1dCB7XG5cdGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTtcbn1cblxuLmRqX2ExMXkgLmRpaml0Q2hlY2tCb3gsXG4uZGpfYTExeSAuZGlqaXRSYWRpbyB7XG5cdC8qIGluIGExMXkgbW9kZSB3ZSBkaXNwbGF5IHRoZSBuYXRpdmUgY2hlY2tib3ggKG5vdCB0aGUgaWNvbiksIHNvIGRvbid0IHJlc3RyaWN0IHRoZSBzaXplICovXG5cdHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG5cdGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0Q2hlY2tCb3hJbnB1dCB7XG5cdG9wYWNpdHk6IDE7XG5cdGZpbHRlcjogbm9uZTtcblx0d2lkdGg6IGF1dG87XG5cdGhlaWdodDogYXV0bztcbn1cblxuLmRqX2ExMXkgLmRpaml0Rm9jdXNlZExhYmVsIHtcblx0LyogZm9yIGNoZWNrYm94ZXMgb3IgcmFkaW8gYnV0dG9ucyBpbiBoaWdoIGNvbnRyYXN0IG1vZGUsIHVzZSBib3JkZXIgcmF0aGVyIHRoYW4gb3V0bGluZSB0byBpbmRpY2F0ZSBmb2N1cyAob3V0bGluZSBkb2VzIG5vdCB3b3JrIGluIEZGKSovXG5cdGJvcmRlcjogMXB4IGRvdHRlZDtcblx0b3V0bGluZTogMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi8qKioqXG5cdFx0ZGlqaXQuUHJvZ3Jlc3NCYXJcbiAqKioqL1xuXG4uZGlqaXRQcm9ncmVzc0JhciB7XG4gICAgei1pbmRleDogMDsgLyogc28gei1pbmRleCBzZXR0aW5ncyBiZWxvdyBoYXZlIG5vIGVmZmVjdCBvdXRzaWRlIG9mIHRoZSBQcm9ncmVzc0JhciAqL1xufVxuLmRpaml0UHJvZ3Jlc3NCYXJFbXB0eSB7XG5cdC8qIG91dGVyIGNvbnRhaW5lciBhbmQgYmFja2dyb3VuZCBvZiB0aGUgYmFyIHRoYXQncyBub3QgZmluaXNoZWQgeWV0Ki9cblx0cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuO1xuXHRib3JkZXI6MXB4IHNvbGlkIGJsYWNrOyBcdC8qIGExMXk6IGJvcmRlciBuZWNlc3NhcnkgZm9yIGhpZ2gtY29udHJhc3QgbW9kZSAqL1xuXHR6LWluZGV4OjA7XHRcdFx0LyogZXN0YWJsaXNoIGEgc3RhY2tpbmcgY29udGV4dCBmb3IgdGhpcyBwcm9ncmVzcyBiYXIgKi9cbn1cblxuLmRpaml0UHJvZ3Jlc3NCYXJGdWxsIHtcblx0Lyogb3V0ZXIgY29udGFpbmVyIGZvciBiYWNrZ3JvdW5kIG9mIGJhciB0aGF0IGlzIGZpbmlzaGVkICovXG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHRvdmVyZmxvdzpoaWRkZW47XG5cdHotaW5kZXg6LTE7XG5cdHRvcDowO1xuXHR3aWR0aDoxMDAlO1xufVxuLmRqX2llNiAuZGlqaXRQcm9ncmVzc0JhckZ1bGwge1xuXHRoZWlnaHQ6MS42ZW07XG59XG5cbi5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIGlubmVyIGNvbnRhaW5lciBmb3IgZmluaXNoZWQgcG9ydGlvbiAqL1xuXHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0b3ZlcmZsb3c6aGlkZGVuO1xuXHR0b3A6MDtcblx0bGVmdDowO1xuXHRib3R0b206MDtcblx0cmlnaHQ6MDtcblx0bWFyZ2luOjA7XG5cdHBhZGRpbmc6MDtcblx0d2lkdGg6IDEwMCU7ICAgIC8qIG5lZWRlZCBmb3IgSUUvcXVpcmtzICovXG5cdGhlaWdodDphdXRvO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiNhYWE7XG5cdGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG59XG5cbi5kal9hMTF5IC5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIGExMXk6ICBUaGUgYm9yZGVyIHByb3ZpZGVzIHZpc2liaWxpdHkgaW4gaGlnaC1jb250cmFzdCBtb2RlICovXG5cdGJvcmRlci13aWR0aDoycHg7XG5cdGJvcmRlci1zdHlsZTpzb2xpZDtcblx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4uZGpfaWU2IC5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIHdpZHRoOmF1dG8gd29ya3MgaW4gSUU2IHdpdGggcG9zaXRpb246c3RhdGljIGJ1dCBub3QgcG9zaXRpb246YWJzb2x1dGUgKi9cblx0cG9zaXRpb246c3RhdGljO1xuXHQvKiBoZWlnaHQ6YXV0byBvciAxMDAlIGRvZXMgbm90IHdvcmsgaW4gSUU2ICovXG5cdGhlaWdodDoxLjZlbTtcbn1cblxuLmRpaml0UHJvZ3Jlc3NCYXJJbmRldGVybWluYXRlIC5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIGFuaW1hdGVkIGdpZiBmb3IgJ2luZGV0ZXJtaW5hdGUnIG1vZGUgKi9cbn1cblxuLmRpaml0UHJvZ3Jlc3NCYXJJbmRldGVybWluYXRlSGlnaENvbnRyYXN0SW1hZ2Uge1xuXHRkaXNwbGF5Om5vbmU7XG59XG5cbi5kal9hMTF5IC5kaWppdFByb2dyZXNzQmFySW5kZXRlcm1pbmF0ZSAuZGlqaXRQcm9ncmVzc0JhckluZGV0ZXJtaW5hdGVIaWdoQ29udHJhc3RJbWFnZSB7XG5cdGRpc3BsYXk6YmxvY2s7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHR0b3A6MDtcblx0Ym90dG9tOjA7XG5cdG1hcmdpbjowO1xuXHRwYWRkaW5nOjA7XG5cdHdpZHRoOjEwMCU7XG5cdGhlaWdodDphdXRvO1xufVxuXG4uZGlqaXRQcm9ncmVzc0JhckxhYmVsIHtcblx0ZGlzcGxheTpibG9jaztcblx0cG9zaXRpb246c3RhdGljO1xuXHR3aWR0aDoxMDAlO1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4vKioqKlxuXHRcdGRpaml0LlRvb2x0aXBcbiAqKioqL1xuXG4uZGlqaXRUb29sdGlwIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiAyMDAwO1xuXHRkaXNwbGF5OiBibG9jaztcblx0LyogbWFrZSB2aXNpYmxlIGJ1dCBvZmYgc2NyZWVuICovXG5cdGxlZnQ6IDA7XG5cdHRvcDogLTEwMDAwcHg7XG5cdG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4uZGlqaXRUb29sdGlwQ29udGFpbmVyIHtcblx0Ym9yZGVyOiBzb2xpZCBibGFjayAycHg7XG5cdGJhY2tncm91bmQ6ICNiOGI1YjU7XG5cdGNvbG9yOiBibGFjaztcblx0Zm9udC1zaXplOiBzbWFsbDtcbn1cblxuLmRpaml0VG9vbHRpcEZvY3VzTm9kZSB7XG5cdHBhZGRpbmc6IDJweCAycHggMnB4IDJweDtcbn1cblxuLmRpaml0VG9vbHRpcENvbm5lY3RvciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5kal9hMTF5IC5kaWppdFRvb2x0aXBDb25uZWN0b3Ige1xuXHRkaXNwbGF5OiBub25lO1x0Lyogd29uJ3Qgc2hvdyBiL2MgaXQncyBiYWNrZ3JvdW5kLWltYWdlOyBoaWRlIHRvIGF2b2lkIGJvcmRlciBnYXAgKi9cbn1cblxuLmRpaml0VG9vbHRpcERhdGEge1xuXHRkaXNwbGF5Om5vbmU7XG59XG5cbi8qIExheW91dCB3aWRnZXRzLiBUaGlzIGlzIGVzc2VudGlhbCBDU1MgdG8gbWFrZSBsYXlvdXQgd29yayAoaXQgaXNuJ3QgXCJzdHlsaW5nXCIgQ1NTKVxuICAgbWFrZSBzdXJlIHRoYXQgdGhlIHBvc2l0aW9uOmFic29sdXRlIGluIGRpaml0QWxpZ24qIG92ZXJyaWRlcyBvdGhlciBjbGFzc2VzICovXG5cbi5kaWppdExheW91dENvbnRhaW5lciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5kaWppdEFsaWduVG9wLFxuLmRpaml0QWxpZ25Cb3R0b20sXG4uZGlqaXRBbGlnbkxlZnQsXG4uZGlqaXRBbGlnblJpZ2h0IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5ib2R5IC5kaWppdEFsaWduQ2xpZW50IHsgcG9zaXRpb246IGFic29sdXRlOyB9XG5cbi8qXG4gKiBCb3JkZXJDb250YWluZXJcbiAqXG4gKiAuZGlqaXRCb3JkZXJDb250YWluZXIgaXMgYSBzdHlsaXplZCBsYXlvdXQgd2hlcmUgcGFuZXMgaGF2ZSBib3JkZXIgYW5kIG1hcmdpbi5cbiAqIC5kaWppdEJvcmRlckNvbnRhaW5lck5vR3V0dGVyIGlzIGEgcmF3IGxheW91dC5cbiAqL1xuLmRpaml0Qm9yZGVyQ29udGFpbmVyLCAuZGlqaXRCb3JkZXJDb250YWluZXJOb0d1dHRlciB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuICAgIHotaW5kZXg6IDA7IC8qIHNvIHotaW5kZXggc2V0dGluZ3MgYmVsb3cgaGF2ZSBubyBlZmZlY3Qgb3V0c2lkZSBvZiB0aGUgQm9yZGVyQ29udGFpbmVyICovXG59XG5cbi5kaWppdEJvcmRlckNvbnRhaW5lclBhbmUsXG4uZGlqaXRCb3JkZXJDb250YWluZXJOb0d1dHRlclBhbmUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcdC8qICFpbXBvcnRhbnQgdG8gb3ZlcnJpZGUgcG9zaXRpb246cmVsYXRpdmUgaW4gZGlqaXRUYWJDb250YWluZXIgZXRjLiAqL1xuXHR6LWluZGV4OiAyO1x0XHQvKiBhYm92ZSB0aGUgc3BsaXR0ZXJzIHNvIHRoYXQgb2ZmLWJ5LW9uZSBicm93c2VyIGVycm9ycyBkb24ndCBjb3ZlciB1cCBib3JkZXIgb2YgcGFuZSAqL1xufVxuXG4uZGlqaXRCb3JkZXJDb250YWluZXIgPiAuZGlqaXRUZXh0QXJlYSB7XG5cdC8qIE9uIFNhZmFyaSwgZm9yIFNpbXBsZVRleHRBcmVhIGluc2lkZSBhIEJvcmRlckNvbnRhaW5lcixcblx0XHRkb24ndCB3YW50IHRvIGRpc3BsYXkgdGhlIGdyaXAgdG8gcmVzaXplICovXG5cdHJlc2l6ZTogbm9uZTtcbn1cblxuLmRpaml0R3V0dGVyIHtcblx0LyogZ3V0dGVyIGlzIGp1c3QgYSBwbGFjZSBob2xkZXIgZm9yIGVtcHR5IHNwYWNlIGJldHdlZW4gcGFuZXMgaW4gQm9yZGVyQ29udGFpbmVyICovXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0Zm9udC1zaXplOiAxcHg7XHRcdC8qIG5lZWRlZCBieSBJRTYgZXZlbiB0aG91Z2ggZGl2IGlzIGVtcHR5LCBvdGhlcndpc2UgZ29lcyB0byAxNXB4ICovXG59XG5cbi8qIFNwbGl0Q29udGFpbmVyXG5cblx0J1YnID09IGNvbnRhaW5lciB0aGF0IHNwbGl0cyB2ZXJ0aWNhbGx5ICh1cC9kb3duKVxuXHQnSCcgPSBob3Jpem9udGFsIChsZWZ0L3JpZ2h0KVxuKi9cblxuLmRpaml0U3BsaXR0ZXIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHotaW5kZXg6IDEwO1x0XHQvKiBhYm92ZSB0aGUgcGFuZXMgc28gdGhhdCBzcGxpdHRlciBmb2N1cyBpcyB2aXNpYmxlIG9uIEZGLCBzZWUgIzc1ODMqL1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRib3JkZXItY29sb3I6IGdyYXk7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci13aWR0aDogMDtcbn1cbi5kal9pZSAuZGlqaXRTcGxpdHRlciB7XG5cdHotaW5kZXg6IDE7XHQvKiBiZWhpbmQgdGhlIHBhbmVzIHNvIHRoYXQgcGFuZSBib3JkZXJzIGFyZW4ndCBvYnNjdXJlZCBzZWUgdGVzdF9HdWkuaHRtbC9bMTQzOTJdICovXG59XG5cbi5kaWppdFNwbGl0dGVyQWN0aXZlIHtcblx0ei1pbmRleDogMTEgIWltcG9ydGFudDtcbn1cblxuLmRpaml0U3BsaXR0ZXJDb3ZlciB7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHR6LWluZGV4Oi0xO1xuXHR0b3A6MDtcblx0bGVmdDowO1xuXHR3aWR0aDoxMDAlO1xuXHRoZWlnaHQ6MTAwJTtcbn1cblxuLmRpaml0U3BsaXR0ZXJDb3ZlckFjdGl2ZSB7XG5cdHotaW5kZXg6MyAhaW1wb3J0YW50O1xufVxuXG4vKiAjNjk0NTogc3RvcCBtb3VzZSBldmVudHMgKi9cbi5kal9pZSAuZGlqaXRTcGxpdHRlckNvdmVyIHtcblx0YmFja2dyb3VuZDogd2hpdGU7XG5cdG9wYWNpdHk6IDA7XG59XG4uZGpfaWU2IC5kaWppdFNwbGl0dGVyQ292ZXIsXG4uZGpfaWU3IC5kaWppdFNwbGl0dGVyQ292ZXIsXG4uZGpfaWU4IC5kaWppdFNwbGl0dGVyQ292ZXIge1xuXHRmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MCk7XG59XG5cbi5kaWppdFNwbGl0dGVySCB7XG5cdGhlaWdodDogN3B4O1xuXHRib3JkZXItdG9wOjFweDtcblx0Ym9yZGVyLWJvdHRvbToxcHg7XG5cdGN1cnNvcjogcm93LXJlc2l6ZTtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5kaWppdFNwbGl0dGVyViB7XG5cdHdpZHRoOiA3cHg7XG5cdGJvcmRlci1sZWZ0OjFweDtcblx0Ym9yZGVyLXJpZ2h0OjFweDtcblx0Y3Vyc29yOiBjb2wtcmVzaXplO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmRpaml0U3BsaXRDb250YWluZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uZGlqaXRTcGxpdFBhbmUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbi5kaWppdFNwbGl0Q29udGFpbmVyU2l6ZXJILFxuLmRpaml0U3BsaXRDb250YWluZXJTaXplclYge1xuXHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0Zm9udC1zaXplOiAxcHg7XG5cdGJhY2tncm91bmQtY29sb3I6IFRocmVlREZhY2U7XG5cdGJvcmRlcjogMXB4IHNvbGlkO1xuXHRib3JkZXItY29sb3I6IFRocmVlREhpZ2hsaWdodCBUaHJlZURTaGFkb3cgVGhyZWVEU2hhZG93IFRocmVlREhpZ2hsaWdodDtcblx0bWFyZ2luOiAwO1xufVxuXG4uZGlqaXRTcGxpdENvbnRhaW5lclNpemVySCAudGh1bWIsIC5kaWppdFNwbGl0dGVyViAuZGlqaXRTcGxpdHRlclRodW1iIHtcblx0b3ZlcmZsb3c6aGlkZGVuO1xuXHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0dG9wOjQ5JTtcbn1cblxuLmRpaml0U3BsaXRDb250YWluZXJTaXplclYgLnRodW1iLCAuZGlqaXRTcGxpdHRlckggLmRpaml0U3BsaXR0ZXJUaHVtYiB7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHRsZWZ0OjQ5JTtcbn1cblxuLmRpaml0U3BsaXR0ZXJTaGFkb3csXG4uZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplckgsXG4uZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplclYge1xuXHRmb250LXNpemU6IDFweDtcblx0YmFja2dyb3VuZC1jb2xvcjogVGhyZWVEU2hhZG93O1xuXHQtbW96LW9wYWNpdHk6IDAuNTtcblx0b3BhY2l0eTogMC41O1xuXHRmaWx0ZXI6IEFscGhhKE9wYWNpdHk9NTApO1xuXHRtYXJnaW46IDA7XG59XG5cbi5kaWppdFNwbGl0Q29udGFpbmVyU2l6ZXJILCAuZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplckgge1xuXHRjdXJzb3I6IGNvbC1yZXNpemU7XG59XG5cbi5kaWppdFNwbGl0Q29udGFpbmVyU2l6ZXJWLCAuZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplclYge1xuXHRjdXJzb3I6IHJvdy1yZXNpemU7XG59XG5cbi5kal9hMTF5IC5kaWppdFNwbGl0dGVySCB7XG5cdGJvcmRlci10b3A6MXB4IHNvbGlkICNkM2QzZDMgIWltcG9ydGFudDtcblx0Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2QzZDNkMyAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0U3BsaXR0ZXJWIHtcblx0Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNkM2QzZDMgIWltcG9ydGFudDtcblx0Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjZDNkM2QzICFpbXBvcnRhbnQ7XG59XG5cbi8qIENvbnRlbnRQYW5lICovXG5cbi5kaWppdENvbnRlbnRQYW5lIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG92ZXJmbG93OiBhdXRvO1x0LyogaWYgd2UgZG9uJ3QgaGF2ZSB0aGlzIChvciBvdmVyZmxvdzpoaWRkZW4pLCB0aGVuIFdpZGdldC5yZXNpemVUbygpIGRvZXNuJ3QgbWFrZSBzZW5zZSBmb3IgQ29udGVudFBhbmUgKi9cblx0LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuXG4uZGlqaXRDb250ZW50UGFuZVNpbmdsZUNoaWxkIHtcblx0Lypcblx0ICogaWYgdGhlIENvbnRlbnRQYW5lIGhvbGRzIGEgc2luZ2xlIGxheW91dCB3aWRnZXQgY2hpbGQgd2hpY2ggaXMgYmVpbmcgc2l6ZWQgdG8gbWF0Y2ggdGhlIGNvbnRlbnQgcGFuZSxcblx0ICogdGhlbiB0aGUgQ29udGVudFBhbmUgc2hvdWxkIG5ldmVyIGdldCBhIHNjcm9sbGJhciAoYnV0IGl0IGRvZXMgZHVlIHRvIGJyb3dzZXIgYnVncywgc2VlICM5NDQ5XG5cdCAqL1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZGlqaXRDb250ZW50UGFuZUxvYWRpbmcgLmRpaml0SWNvbkxvYWRpbmcsXG4uZGlqaXRDb250ZW50UGFuZUVycm9yIC5kaWppdEljb25FcnJvciB7XG5cdG1hcmdpbi1yaWdodDogOXB4O1xufVxuXG4vKiBUaXRsZVBhbmUgYW5kIEZpZWxkc2V0ICovXG5cbi5kaWppdFRpdGxlUGFuZSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuLmRpaml0RmllbGRzZXQge1xuXHRib3JkZXI6IDFweCBzb2xpZCBncmF5O1xufVxuLmRpaml0VGl0bGVQYW5lVGl0bGUsIC5kaWppdEZpZWxkc2V0VGl0bGUge1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZGlqaXRUaXRsZVBhbmVUaXRsZUZpeGVkT3BlbiwgLmRpaml0VGl0bGVQYW5lVGl0bGVGaXhlZENsb3NlZCxcbi5kaWppdEZpZWxkc2V0VGl0bGVGaXhlZE9wZW4sIC5kaWppdEZpZWxkc2V0VGl0bGVGaXhlZENsb3NlZCB7XG5cdC8qIFRpdGxlUGFuZSBvciBGaWVsZHNldCB0aGF0IGNhbm5vdCBiZSB0b2dnbGVkICovXG5cdGN1cnNvcjogZGVmYXVsdDtcbn1cbi5kaWppdFRpdGxlUGFuZVRpdGxlICoge1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmRpaml0VGl0bGVQYW5lIC5kaWppdEFycm93Tm9kZUlubmVyLCAuZGlqaXRGaWVsZHNldCAuZGlqaXRBcnJvd05vZGVJbm5lciB7XG5cdC8qIG5vcm1hbGx5LCBoaWRlIGFycm93IHRleHQgaW4gZmF2b3Igb2YgaWNvbiAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuLmRqX2ExMXkgLmRpaml0VGl0bGVQYW5lIC5kaWppdEFycm93Tm9kZUlubmVyLCAuZGpfYTExeSAuZGlqaXRGaWVsZHNldCAuZGlqaXRBcnJvd05vZGVJbm5lciB7XG5cdC8qIC4uLiBleGNlcHQgaW4gYTExeSBtb2RlLCB0aGVuIHNob3cgdGV4dCBhcnJvdyAqL1xuXHRkaXNwbGF5OiBpbmxpbmU7XG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XHRcdC8qIGJlY2F1c2UgLSBhbmQgKyBhcmUgZGlmZmVyZW50IHdpZHRocyAqL1xufVxuLmRqX2ExMXkgLmRpaml0VGl0bGVQYW5lIC5kaWppdEFycm93Tm9kZSwgLmRqX2ExMXkgLmRpaml0RmllbGRzZXQgLmRpaml0QXJyb3dOb2RlIHtcblx0LyogLi4uIGFuZCBoaWRlIGljb24gKFRPRE86IGp1c3QgcG9pbnQgZGlqaXRJY29uIGNsYXNzIG9uIHRoZSBpY29uLCBhbmQgaXQgaGlkZXMgYXV0b21hdGljYWxseSkgKi9cblx0ZGlzcGxheTogbm9uZTtcbn1cbi5kaWppdFRpdGxlUGFuZVRpdGxlRml4ZWRPcGVuIC5kaWppdEFycm93Tm9kZSwgLmRpaml0VGl0bGVQYW5lVGl0bGVGaXhlZE9wZW4gLmRpaml0QXJyb3dOb2RlSW5uZXIsXG4uZGlqaXRUaXRsZVBhbmVUaXRsZUZpeGVkQ2xvc2VkIC5kaWppdEFycm93Tm9kZSwgLmRpaml0VGl0bGVQYW5lVGl0bGVGaXhlZENsb3NlZCAuZGlqaXRBcnJvd05vZGVJbm5lcixcbi5kaWppdEZpZWxkc2V0VGl0bGVGaXhlZE9wZW4gLmRpaml0QXJyb3dOb2RlLCAuZGlqaXRGaWVsZHNldFRpdGxlRml4ZWRPcGVuIC5kaWppdEFycm93Tm9kZUlubmVyLFxuLmRpaml0RmllbGRzZXRUaXRsZUZpeGVkQ2xvc2VkIC5kaWppdEFycm93Tm9kZSwgLmRpaml0RmllbGRzZXRUaXRsZUZpeGVkQ2xvc2VkIC5kaWppdEFycm93Tm9kZUlubmVyIHtcblx0LyogZG9uJ3Qgc2hvdyB0aGUgb3BlbiBjbG9zZSBpY29uIG9yIHRleHQgYXJyb3c7IGl0IG1ha2VzIHRoZSB1c2VyIHRoaW5rIHRoZSBwYW5lIGlzIGNsb3NhYmxlICovXG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcdC8qICFpbXBvcnRhbnQgdG8gb3ZlcnJpZGUgYWJvdmUgYTExeSBydWxlcyB0byBzaG93IHRleHQgYXJyb3cgKi9cbn1cblxuLmRqX2llNiAuZGlqaXRUaXRsZVBhbmVDb250ZW50T3V0ZXIsXG4uZGpfaWU2IC5kaWppdFRpdGxlUGFuZSAuZGlqaXRUaXRsZVBhbmVUaXRsZSB7XG5cdC8qIGZvcmNlIGhhc0xheW91dCB0byBlbnN1cmUgYm9yZGVycyBldGMsIHNob3cgdXAgKi9cblx0em9vbTogMTtcbn1cblxuLyogQ29sb3IgUGFsZXR0ZVxuICogU2l6ZXMgZGVzaWduZWQgc28gdGhhdCB0YWJsZSBjZWxsIHBvc2l0aW9ucyBtYXRjaCBpY29ucyBpbiB1bmRlcmx5aW5nIGltYWdlLFxuICogd2hpY2ggYXBwZWFyIGF0IDIweDIwIGludGVydmFscy5cbiAqL1xuXG4uZGlqaXRDb2xvclBhbGV0dGUge1xuXHRib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuXHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5kaWppdENvbG9yUGFsZXR0ZSAuZGlqaXRQYWxldHRlVGFibGUge1xuXHQvKiBUYWJsZSB0aGF0IGhvbGRzIHRoZSBwYWxldHRlIGNlbGxzLCBhbmQgb3ZlcmxheXMgaW1hZ2UgZmlsZSB3aXRoIGNvbG9yIHN3YXRjaGVzLlxuXHQgKiBwYWRkaW5nL21hcmdpbiB0byBhbGlnbiB0YWJsZSB3aXRoIGltYWdlLlxuXHQgKi9cblx0cGFkZGluZzogMnB4IDNweCAzcHggM3B4O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdG91dGxpbmU6IDA7XG5cdGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG59XG4uZGpfaWU2IC5kaWppdENvbG9yUGFsZXR0ZSAuZGlqaXRQYWxldHRlVGFibGUsXG4uZGpfaWU3IC5kaWppdENvbG9yUGFsZXR0ZSAuZGlqaXRQYWxldHRlVGFibGUsXG4uZGpfaWVxdWlya3MgLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVUYWJsZSB7XG5cdC8qIHVzaW5nIHBhZGRpbmcgYWJvdmUgc28gdGhhdCBmb2N1cyBib3JkZXIgaXNuJ3QgY3V0b2ZmIG9uIG1vei93ZWJraXQsXG5cdCAqIGJ1dCB1c2luZyBtYXJnaW4gb24gSUUgYmVjYXVzZSBwYWRkaW5nIGRvZXNuJ3Qgc2VlbSB0byB3b3JrXG5cdCAqL1xuXHRwYWRkaW5nOiAwO1xuXHRtYXJnaW46IDJweCAzcHggM3B4IDNweDtcbn1cblxuLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVDZWxsIHtcblx0LyogPHRkPiBpbiB0aGUgPHRhYmxlPiAqL1xuXHRmb250LXNpemU6IDFweDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRiYWNrZ3JvdW5kOiBub25lO1xufVxuLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVJbWcge1xuXHQvKiBDYWxsZWQgZGlqaXRQYWxldHRlSW1nIGZvciBiYWNrLWNvbXBhdCwgdGhpcyBhY3R1YWxseSB3cmFwcyB0aGUgY29sb3Igc3dhdGNoIHdpdGggYSBib3JkZXIgYW5kIHBhZGRpbmcgKi9cblx0cGFkZGluZzogMXB4O1x0XHQvKiB3aGl0ZSBhcmVhIGJldHdlZW4gZ3JheSBib3JkZXIgYW5kIGNvbG9yIHN3YXRjaCAqL1xuXHRib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuXHRtYXJnaW46IDJweCAxcHg7XG5cdGN1cnNvcjogZGVmYXVsdDtcblx0Zm9udC1zaXplOiAxcHg7XHRcdC8qIHByZXZlbnQgPHNwYW4+IGZyb20gZ2V0dGluZyBiaWdnZXIganVzdCB0byBob2xkIGEgY2hhcmFjdGVyICovXG59XG4uZGpfZ2Vja28gLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVJbWcge1xuXHRwYWRkaW5nLWJvdHRvbTogMDtcdC8qIHdvcmthcm91bmQgcmVuZGVyaW5nIGdsaXRjaCBvbiBGRiwgaXQgYWRkcyBhbiBleHRyYSBwaXhlbCBhdCB0aGUgYm90dG9tICovXG59XG4uZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0Q29sb3JQYWxldHRlU3dhdGNoIHtcblx0LyogdGhlIGFjdHVhbCBwYXJ0IHdoZXJlIHRoZSBjb2xvciBpcyAqL1xuXHR3aWR0aDogMTRweDtcblx0aGVpZ2h0OiAxMnB4O1xufVxuLmRpaml0UGFsZXR0ZVRhYmxlIHRkIHtcblx0XHRwYWRkaW5nOiAwO1xufVxuLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVDZWxsOmhvdmVyIC5kaWppdFBhbGV0dGVJbWcge1xuXHQvKiBob3ZlcmVkIGNvbG9yIHN3YXRjaCAqL1xuXHRib3JkZXI6IDFweCBzb2xpZCAjMDAwO1xufVxuXG4uZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0UGFsZXR0ZUNlbGw6YWN0aXZlIC5kaWppdFBhbGV0dGVJbWcsXG4uZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0UGFsZXR0ZVRhYmxlIC5kaWppdFBhbGV0dGVDZWxsU2VsZWN0ZWQgLmRpaml0UGFsZXR0ZUltZyB7XG5cdGJvcmRlcjogMnB4IHNvbGlkICMwMDA7XG5cdG1hcmdpbjogMXB4IDA7XHQvKiByZWR1Y2UgbWFyZ2luIHRvIGNvbXBlbnNhdGUgZm9yIGluY3JlYXNlZCBib3JkZXIgKi9cbn1cblxuXG4uZGpfYTExeSAuZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0UGFsZXR0ZVRhYmxlLFxuLmRqX2ExMXkgLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVUYWJsZSAqIHtcblx0LyogdGFibGUgY2VsbHMgYXJlIHRvIGNhdGNoIGV2ZW50cywgYnV0IHRoZSBzd2F0Y2hlcyBhcmUgaW4gdGhlIFBhbGV0dGVJbWcgYmVoaW5kIHRoZSB0YWJsZSAqL1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4vKiBBY2NvcmRpb25Db250YWluZXIgKi9cblxuLmRpaml0QWNjb3JkaW9uQ29udGFpbmVyIHtcblx0Ym9yZGVyOjFweCBzb2xpZCAjYjdiN2I3O1xuXHRib3JkZXItdG9wOjAgIWltcG9ydGFudDtcbn1cbi5kaWppdEFjY29yZGlvblRpdGxlIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmRpaml0QWNjb3JkaW9uVGl0bGVTZWxlY3RlZCB7XG5cdGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLyogaW1hZ2VzIG9mZiwgaGlnaC1jb250cmFzdCBtb2RlIHN0eWxlcyAqL1xuLmRpaml0QWNjb3JkaW9uVGl0bGUgLmFycm93VGV4dFVwLFxuLmRpaml0QWNjb3JkaW9uVGl0bGUgLmFycm93VGV4dERvd24ge1xuXHRkaXNwbGF5OiBub25lO1xuXHRmb250LXNpemU6IDAuNjVlbTtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbCAhaW1wb3J0YW50O1xufVxuXG4uZGpfYTExeSAuZGlqaXRBY2NvcmRpb25UaXRsZSAuYXJyb3dUZXh0VXAsXG4uZGpfYTExeSAuZGlqaXRBY2NvcmRpb25UaXRsZVNlbGVjdGVkIC5hcnJvd1RleHREb3duIHtcblx0ZGlzcGxheTogaW5saW5lO1xufVxuXG4uZGpfYTExeSAuZGlqaXRBY2NvcmRpb25UaXRsZVNlbGVjdGVkIC5hcnJvd1RleHRVcCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kaWppdEFjY29yZGlvbkNoaWxkV3JhcHBlciB7XG5cdC8qIHRoaXMgaXMgdGhlIG5vZGUgd2hvc2UgaGVpZ2h0IGlzIGFkanVzdGVkICovXG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIENhbGVuZGFyICovXG5cbi5kaWppdENhbGVuZGFyQ29udGFpbmVyIHRhYmxlIHtcblx0d2lkdGg6IGF1dG87XHQvKiBpbiBjYXNlIHVzZXIgaGFzIHNwZWNpZmllZCBhIHdpZHRoIGZvciB0aGUgVEFCTEUgbm9kZXMsIHNlZSAjMTA1NTMgKi9cblx0Y2xlYXI6IGJvdGg7ICAgIC8qIGNsZWFyIG1hcmdpbiBjcmVhdGVkIGZvciBsZWZ0L3JpZ2h0IG1vbnRoIGFycm93czsgbmVlZGVkIG9uIElFMTAgZm9yIENhbGVuZGFyTGl0ZSAqL1xufVxuLmRpaml0Q2FsZW5kYXJDb250YWluZXIgdGgsIC5kaWppdENhbGVuZGFyQ29udGFpbmVyIHRkIHtcblx0cGFkZGluZzogMDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmRpaml0Q2FsZW5kYXJNb250aENvbnRhaW5lciB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5kaWppdENhbGVuZGFyRGVjcmVtZW50QXJyb3cge1xuXHRmbG9hdDogbGVmdDtcbn1cbi5kaWppdENhbGVuZGFySW5jcmVtZW50QXJyb3cge1xuXHRmbG9hdDogcmlnaHQ7XG59XG5cbi5kaWppdENhbGVuZGFyWWVhckxhYmVsIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyAgICAvKiBtYWtlIHN1cmUgcHJldmlvdXMsIGN1cnJlbnQsIGFuZCBuZXh0IHllYXIgYXBwZWFyIG9uIHNhbWUgcm93ICovXG59XG5cbi5kaWppdENhbGVuZGFyTmV4dFllYXIge1xuXHRtYXJnaW46MCAwIDAgMC41NWVtO1xufVxuXG4uZGlqaXRDYWxlbmRhclByZXZpb3VzWWVhciB7XG5cdG1hcmdpbjowIDAuNTVlbSAwIDA7XG59XG5cbi5kaWppdENhbGVuZGFySW5jcmVtZW50Q29udHJvbCB7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5kaWppdENhbGVuZGFySW5jcmVtZW50Q29udHJvbCxcbi5kaWppdENhbGVuZGFyRGF0ZVRlbXBsYXRlLFxuLmRpaml0Q2FsZW5kYXJNb250aExhYmVsLFxuLmRpaml0Q2FsZW5kYXJQcmV2aW91c1llYXIsXG4uZGlqaXRDYWxlbmRhck5leHRZZWFyIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uZGlqaXRDYWxlbmRhckRpc2FibGVkRGF0ZSB7XG5cdGNvbG9yOiBncmF5O1xuXHR0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcblx0Y3Vyc29yOiBkZWZhdWx0O1xufVxuXG4uZGlqaXRTcGFjZXIge1xuXHQvKiBkb24ndCBkaXNwbGF5IGl0LCBidXQgbWFrZSBpdCBhZmZlY3QgdGhlIHdpZHRoICovXG4gIFx0cG9zaXRpb246IHJlbGF0aXZlO1xuICBcdGhlaWdodDogMXB4O1xuICBcdG92ZXJmbG93OiBoaWRkZW47XG4gIFx0dmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4vKiBTdHlsaW5nIGZvciBtb250aCBkcm9wIGRvd24gbGlzdCAqL1xuXG4uZGlqaXRDYWxlbmRhck1vbnRoTWVudSAuZGlqaXRDYWxlbmRhck1vbnRoTGFiZWwge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcbn1cblxuLyogTWVudSAqL1xuXG4uZGlqaXRNZW51IHtcblx0Ym9yZGVyOjFweCBzb2xpZCBibGFjaztcblx0YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtcbn1cbi5kaWppdE1lbnVUYWJsZSB7XG5cdGJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtcblx0Ym9yZGVyLXdpZHRoOjA7XG5cdGJhY2tncm91bmQtY29sb3I6d2hpdGU7XG59XG5cbi8qIHdvcmthcm91bmQgZm9yIHdlYmtpdCBidWcgIzg0MjcsIHJlbW92ZSB0aGlzIHdoZW4gaXQgaXMgZml4ZWQgdXBzdHJlYW0gKi9cbi5kal93ZWJraXQgLmRpaml0TWVudVRhYmxlIHRkW2NvbHNwYW49XCIyXCJde1xuXHRib3JkZXItcmlnaHQ6aGlkZGVuO1xufVxuXG4uZGlqaXRNZW51SXRlbSB7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdHBhZGRpbmc6LjFlbSAuMmVtO1xuXHRjdXJzb3I6cG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLypcbk5vIG5lZWQgdG8gc2hvdyBhIGZvY3VzIGJvcmRlciBzaW5jZSBpdCdzIG9idmlvdXMgZnJvbSB0aGUgc2hhZGluZywgYW5kIHRoZXJlJ3MgYSAuZGpfYTExeSAuZGlqaXRNZW51SXRlbVNlbGVjdGVkXG5ydWxlIGJlbG93IHRoYXQgaGFuZGxlcyB0aGUgaGlnaCBjb250cmFzdCBjYXNlIHdoZW4gdGhlcmUncyBubyBzaGFkaW5nLlxuSGlkaW5nIHRoZSBmb2N1cyBib3JkZXIgYWxzbyB3b3JrcyBhcm91bmQgd2Via2l0IGJ1ZyBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9MTI1Nzc5LlxuKi9cbi5kaWppdE1lbnVJdGVtOmZvY3VzIHtcblx0b3V0bGluZTogbm9uZVxufVxuXG4uZGlqaXRNZW51UGFzc2l2ZSAuZGlqaXRNZW51SXRlbUhvdmVyLFxuLmRpaml0TWVudUl0ZW1TZWxlY3RlZCB7XG5cdC8qXG5cdCAqIGRpaml0TWVudUl0ZW1Ib3ZlciByZWZlcnMgdG8gYWN0dWFsIG1vdXNlIG92ZXJcblx0ICogZGlqaXRNZW51SXRlbVNlbGVjdGVkIGlzIHVzZWQgYWZ0ZXIgYSBtZW51IGhhcyBiZWVuIFwiYWN0aXZhdGVkXCIgYnlcblx0ICogY2xpY2tpbmcgaXQsIHRhYmJpbmcgaW50byBpdCwgb3IgYmVpbmcgb3BlbmVkIGZyb20gYSBwYXJlbnQgbWVudSxcblx0ICogYW5kIGRlbm90ZXMgdGhhdCB0aGUgbWVudSBpdGVtIGhhcyBmb2N1cyBvciB0aGF0IGZvY3VzIGlzIG9uIGEgY2hpbGRcblx0ICogbWVudVxuXHQgKi9cblx0YmFja2dyb3VuZC1jb2xvcjpibGFjaztcblx0Y29sb3I6d2hpdGU7XG59XG5cbi5kaWppdE1lbnVJdGVtSWNvbiwgLmRpaml0TWVudUV4cGFuZCB7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG5cbi5kaWppdE1lbnVJdGVtRGlzYWJsZWQgKiB7XG5cdC8qIGZvciBhIGRpc2FibGVkIG1lbnUgaXRlbSwganVzdCBzZXQgaXQgdG8gbW9zdGx5IHRyYW5zcGFyZW50ICovXG5cdG9wYWNpdHk6MC41O1xuXHRjdXJzb3I6ZGVmYXVsdDtcbn1cbi5kal9pZSAuZGpfYTExeSAuZGlqaXRNZW51SXRlbURpc2FibGVkLFxuLmRqX2llIC5kal9hMTF5IC5kaWppdE1lbnVJdGVtRGlzYWJsZWQgKixcbi5kal9pZSAuZGlqaXRNZW51SXRlbURpc2FibGVkICoge1xuXHRjb2xvcjogZ3JheTtcblx0ZmlsdGVyOiBhbHBoYShvcGFjaXR5PTM1KTtcbn1cblxuLmRpaml0TWVudUl0ZW1MYWJlbCB7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5kal9hMTF5IC5kaWppdE1lbnVJdGVtU2VsZWN0ZWQge1xuXHRib3JkZXI6IDFweCBkb3R0ZWQgYmxhY2sgIWltcG9ydGFudDtcdC8qIGZvciAyLjAgdXNlIG91dGxpbmUgaW5zdGVhZCwgdG8gcHJldmVudCBqaXR0ZXIgKi9cbn1cblxuLmRqX2ExMXkgLmRpaml0TWVudUl0ZW1TZWxlY3RlZCAuZGlqaXRNZW51SXRlbUxhYmVsIHtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG59XG4uZGpfaWU4IC5kal9hMTF5IC5kaWppdE1lbnVJdGVtTGFiZWwge1xuXHRwb3NpdGlvbjpzdGF0aWM7XG59XG5cbi5kaWppdE1lbnVFeHBhbmRBMTF5IHtcblx0ZGlzcGxheTogbm9uZTtcbn1cbi5kal9hMTF5IC5kaWppdE1lbnVFeHBhbmRBMTF5IHtcblx0ZGlzcGxheTogaW5saW5lO1xufVxuXG4uZGlqaXRNZW51U2VwYXJhdG9yIHRkIHtcblx0Ym9yZGVyOiAwO1xuXHRwYWRkaW5nOiAwO1xufVxuXG4vKiBzZXBhcmF0b3IgY2FuIGJlIHR3byBwaXhlbHMgLS0gc2V0IGJvcmRlciBvZiBlaXRoZXIgb25lIHRvIDAgdG8gaGF2ZSBvbmx5IG9uZSAqL1xuLmRpaml0TWVudVNlcGFyYXRvclRvcCB7XG5cdGhlaWdodDogNTAlO1xuXHRtYXJnaW46IDA7XG5cdG1hcmdpbi10b3A6M3B4O1xuXHRmb250LXNpemU6IDFweDtcbn1cblxuLmRpaml0TWVudVNlcGFyYXRvckJvdHRvbSB7XG5cdGhlaWdodDogNTAlO1xuXHRtYXJnaW46IDA7XG5cdG1hcmdpbi1ib3R0b206M3B4O1xuXHRmb250LXNpemU6IDFweDtcbn1cblxuLyogQ2hlY2tlZE1lbnVJdGVtIGFuZCBSYWRpb01lbnVJdGVtICovXG4uZGlqaXRNZW51SXRlbUljb25DaGFyIHtcblx0ZGlzcGxheTogbm9uZTtcdFx0LyogZG9uJ3QgZGlzcGxheSBleGNlcHQgaW4gaGlnaCBjb250cmFzdCBtb2RlICovXG5cdHZpc2liaWxpdHk6IGhpZGRlbjtcdC8qIGZvciBoaWdoIGNvbnRyYXN0IG1vZGUgd2hlbiBtZW51aXRlbSBpcyB1bmNoZWNrZWQ6IGxlYXZlIHNwYWNlIGZvciB3aGVuIGl0IGlzIGNoZWNrZWQgKi9cbn1cbi5kal9hMTF5IC5kaWppdE1lbnVJdGVtSWNvbkNoYXIge1xuXHRkaXNwbGF5OiBpbmxpbmU7XHQvKiBkaXNwbGF5IGNoYXJhY3RlciBpbiBoaWdoIGNvbnRyYXN0IG1vZGUsIHNpbmNlIGljb24gZG9lc24ndCBzaG93ICovXG59XG4uZGlqaXRDaGVja2VkTWVudUl0ZW1DaGVja2VkIC5kaWppdE1lbnVJdGVtSWNvbkNoYXIsXG4uZGlqaXRSYWRpb01lbnVJdGVtQ2hlY2tlZCAuZGlqaXRNZW51SXRlbUljb25DaGFyIHtcblx0dmlzaWJpbGl0eTogdmlzaWJsZTsgLyogbWVudWl0ZW0gaXMgY2hlY2tlZCAqL1xufVxuLmRqX2llIC5kal9hMTF5IC5kaWppdE1lbnVCYXIgLmRpaml0TWVudUl0ZW0ge1xuXHQvKiBzbyBib3R0b20gYm9yZGVyIG9mIE1lbnVCYXIgYXBwZWFycyBvbiBJRTcgaW4gaGlnaC1jb250cmFzdCBtb2RlICovXG5cdG1hcmdpbjogMDtcbn1cblxuLyogU3RhY2tDb250YWluZXIgKi9cblxuLmRpaml0U3RhY2tDb250cm9sbGVyIC5kaWppdFRvZ2dsZUJ1dHRvbkNoZWNrZWQgKiB7XG5cdGN1cnNvcjogZGVmYXVsdDtcdC8qIGJlY2F1c2UgcHJlc3NpbmcgaXQgaGFzIG5vIGVmZmVjdCAqL1xufVxuXG4vKioqXG5UYWJDb250YWluZXJcblxuTWFpbiBjbGFzcyBoaWVyYXJjaHk6XG5cbi5kaWppdFRhYkNvbnRhaW5lciAtIHRoZSB3aG9sZSBUYWJDb250YWluZXJcbiAgIC5kaWppdFRhYkNvbnRyb2xsZXIgLyAuZGlqaXRUYWJMaXN0Q29udGFpbmVyLXRvcCAtIHdyYXBwZXIgZm9yIHRhYiBidXR0b25zLCBzY3JvbGwgYnV0dG9uc1xuXHQgLmRpaml0VGFiTGlzdFdyYXBwZXIgLyAuZGlqaXRUYWJDb250YWluZXJUb3BTdHJpcCAtIG91dGVyIHdyYXBwZXIgZm9yIHRhYiBidXR0b25zIChub3JtYWwgd2lkdGgpXG5cdFx0Lm5vd3JhcFRhYlN0cmlwIC8gLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMgLSBpbm5lciB3cmFwcGVyIGZvciB0YWIgYnV0dG9ucyAoNTBLIHdpZHRoKVxuICAgLmRpaml0VGFiUGFuZVdyYXBwZXIgLSB3cmFwcGVyIGZvciBjb250ZW50IHBhbmVzLCBoYXMgYWxsIGJvcmRlcnMgZXhjZXB0IHRoZSBvbmUgYmV0d2VlbiBjb250ZW50IGFuZCB0YWJzXG4qKiovXG5cbi5kaWppdFRhYkNvbnRhaW5lciB7XG4gICAgei1pbmRleDogMDsgLyogc28gei1pbmRleCBzZXR0aW5ncyBiZWxvdyBoYXZlIG5vIGVmZmVjdCBvdXRzaWRlIG9mIHRoZSBUYWJDb250YWluZXIgKi9cbiAgICBvdmVyZmxvdzogdmlzaWJsZTsgLyogcHJldmVudCBvZmYtYnktb25lLXBpeGVsIGVycm9ycyBmcm9tIGhpZGluZyBib3R0b20gYm9yZGVyIChvcHBvc2l0ZSB0YWIgbGFiZWxzKSAqL1xufVxuLmRqX2llNiAuZGlqaXRUYWJDb250YWluZXIge1xuICAgIC8qIHdvcmthcm91bmQgSUU2IHByb2JsZW0gd2hlbiB0YWxsIGNvbnRlbnQgb3ZlcmZsb3dzIFRhYkNvbnRhaW5lciwgc2VlIGVkaXRvci90ZXN0X0Z1bGxTY3JlZW4uaHRtbCAqL1xuICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxufVxuLmRpaml0VGFiQ29udGFpbmVyTm9MYXlvdXQge1xuXHR3aWR0aDogMTAwJTtcdC8qIG90aGVyd2lzZSBTY3JvbGxpbmdUYWJDb250cm9sbGVyIGdvZXMgdG8gNTBLIHBpeGVscyB3aWRlICovXG59XG5cbi5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS10YWJzLFxuLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMsXG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LXRhYnMsXG4uZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzIHtcbiAgICB6LWluZGV4OiAxO1xuXHRvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50OyAgLyogc28gdGFicyBjYW4gY292ZXIgdXAgYm9yZGVyIGFkamFjZW50IHRvIGNvbnRhaW5lciAqL1xufVxuXG4uZGlqaXRUYWJDb250cm9sbGVyIHtcbiAgICB6LWluZGV4OiAxO1xufVxuLmRpaml0VGFiQ29udGFpbmVyQm90dG9tLWNvbnRhaW5lcixcbi5kaWppdFRhYkNvbnRhaW5lclRvcC1jb250YWluZXIsXG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LWNvbnRhaW5lcixcbi5kaWppdFRhYkNvbnRhaW5lclJpZ2h0LWNvbnRhaW5lciB7XG5cdHotaW5kZXg6MDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0Ym9yZGVyOiAxcHggc29saWQgYmxhY2s7XG59XG4ubm93cmFwVGFiU3RyaXAge1xuXHR3aWR0aDogNTAwMDBweDtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyAgLyoganVzdCBpbiBjYXNlIGFuY2VzdG9yIGhhcyBub24tc3RhbmRhcmQgc2V0dGluZyAqL1xuICAgIHotaW5kZXg6IDE7XG59XG4uZGlqaXRUYWJMaXN0V3JhcHBlciB7XG5cdG92ZXJmbG93OiBoaWRkZW47XG4gICAgei1pbmRleDogMTtcbn1cblxuLmRqX2ExMXkgLnRhYlN0cmlwQnV0dG9uIGltZyB7XG5cdC8qIGhpZGUgdGhlIGljb25zIChvciByYXRoZXIgdGhlIGVtcHR5IHNwYWNlIHdoZXJlIHRoZXkgbm9ybWFsbHkgYXBwZWFyKSBiZWNhdXNlIHRleHQgd2lsbCBhcHBlYXIgaW5zdGVhZCAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJUb3AtdGFicyB7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBibGFjaztcbn1cbi5kaWppdFRhYkNvbnRhaW5lclRvcC1jb250YWluZXIge1xuXHRib3JkZXItdG9wOiAwO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LXRhYnMge1xuXHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCBibGFjaztcblx0ZmxvYXQ6IGxlZnQ7ICAgIC8qIG5lZWRlZCBmb3IgSUU3IFJUTCBtb2RlICovXG59XG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LWNvbnRhaW5lciB7XG5cdGJvcmRlci1sZWZ0OiAwO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJCb3R0b20tdGFicyB7XG5cdGJvcmRlci10b3A6IDFweCBzb2xpZCBibGFjaztcbn1cbi5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS1jb250YWluZXIge1xuXHRib3JkZXItYm90dG9tOiAwO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzIHtcblx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCBibGFjaztcblx0ZmxvYXQ6IGxlZnQ7ICAgIC8qIG5lZWRlZCBmb3IgSUU3IFJUTCBtb2RlICovXG59XG4uZGlqaXRUYWJDb250YWluZXJSaWdodC1jb250YWluZXIge1xuXHRib3JkZXItcmlnaHQ6IDA7XG59XG5cbmRpdi5kaWppdFRhYkRpc2FibGVkLCAuZGpfaWUgZGl2LmRpaml0VGFiRGlzYWJsZWQge1xuXHRjdXJzb3I6IGF1dG87XG59XG5cbi5kaWppdFRhYiB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRjdXJzb3I6cG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcblx0d2hpdGUtc3BhY2U6bm93cmFwO1xuXHR6LWluZGV4OjM7XG59XG4uZGlqaXRUYWIgKiB7XG5cdC8qIG1ha2UgdGFiIGljb25zIGFuZCBjbG9zZSBpY29uIGxpbmUgdXAgdy90ZXh0ICovXG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4uZGlqaXRUYWJDaGVja2VkIHtcblx0Y3Vyc29yOiBkZWZhdWx0O1x0LyogYmVjYXVzZSBjbGlja2luZyB3aWxsIGhhdmUgbm8gZWZmZWN0ICovXG59XG5cbi5kaWppdFRhYkNvbnRhaW5lclRvcC10YWJzIC5kaWppdFRhYiB7XG5cdHRvcDogMXB4O1x0LyogdG8gb3ZlcmxhcCBib3JkZXIgb24gLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMgKi9cbn1cbi5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS10YWJzIC5kaWppdFRhYiB7XG5cdHRvcDogLTFweDtcdC8qIHRvIG92ZXJsYXAgYm9yZGVyIG9uIC5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS10YWJzICovXG59XG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LXRhYnMgLmRpaml0VGFiIHtcblx0bGVmdDogMXB4O1x0LyogdG8gb3ZlcmxhcCBib3JkZXIgb24gLmRpaml0VGFiQ29udGFpbmVyTGVmdC10YWJzICovXG59XG4uZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzIC5kaWppdFRhYiB7XG5cdGxlZnQ6IC0xcHg7XHQvKiB0byBvdmVybGFwIGJvcmRlciBvbiAuZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzICovXG59XG5cblxuLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMgLmRpaml0VGFiLFxuLmRpaml0VGFiQ29udGFpbmVyQm90dG9tLXRhYnMgLmRpaml0VGFiIHtcblx0LyogSW5saW5lLWJsb2NrICovXG5cdGRpc3BsYXk6aW5saW5lLWJsb2NrO1x0XHRcdC8qIHdlYmtpdCBhbmQgRkYzICovXG5cdCN6b29tOiAxOyAvKiBzZXQgaGFzTGF5b3V0OnRydWUgdG8gbWltaWMgaW5saW5lLWJsb2NrICovXG5cdCNkaXNwbGF5OmlubGluZTsgLyogZG9uJ3QgdXNlIC5kal9pZSBzaW5jZSB0aGF0IGluY3JlYXNlcyB0aGUgcHJpb3JpdHkgKi9cbn1cblxuLnRhYlN0cmlwQnV0dG9uIHtcblx0ei1pbmRleDogMTI7XG59XG5cbi5kaWppdFRhYkJ1dHRvbkRpc2FibGVkIC50YWJTdHJpcEJ1dHRvbiB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cblxuLmRpaml0VGFiQ2xvc2VCdXR0b24ge1xuXHRtYXJnaW4tbGVmdDogMWVtO1xufVxuXG4uZGlqaXRUYWJDbG9zZVRleHQge1xuXHRkaXNwbGF5Om5vbmU7XG59XG5cbi5kaWppdFRhYiAudGFiTGFiZWwge1xuXHQvKiBtYWtlIHN1cmUgdGFicyB3L2Nsb3NlIGJ1dHRvbiBhbmQgdy9vdXQgY2xvc2UgYnV0dG9uIGFyZSBzYW1lIGhlaWdodCwgZXZlbiB3L3NtYWxsICg8MTVweCkgZm9udC5cblx0ICogYXNzdW1lcyA8PTE1cHggaGVpZ2h0IGZvciBjbG9zZSBidXR0b24gaWNvbi5cblx0ICovXG5cdG1pbi1oZWlnaHQ6IDE1cHg7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5kaWppdE5vSWNvbiB7XG5cdC8qIGFwcGxpZWQgdG8gPGltZz4vPHNwYW4+IG5vZGUgd2hlbiB0aGVyZSBpcyBubyBpY29uIHNwZWNpZmllZCAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuLmRqX2llNiAuZGlqaXRUYWIgLmRpaml0Tm9JY29uIHtcblx0LyogYmVjYXVzZSBtaW4taGVpZ2h0IChvbiAudGFiTGFiZWwsIGFib3ZlKSBkb2Vzbid0IHdvcmsgb24gSUU2ICovXG5cdGRpc3BsYXk6IGlubGluZTtcblx0aGVpZ2h0OiAxNXB4O1xuXHR3aWR0aDogMXB4O1xufVxuXG4vKiBpbWFnZXMgb2ZmLCBoaWdoLWNvbnRyYXN0IG1vZGUgc3R5bGVzICovXG5cbi5kal9hMTF5IC5kaWppdFRhYkNsb3NlQnV0dG9uIHtcblx0YmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuXHR3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLmRqX2ExMXkgLmRpaml0VGFiQ2xvc2VUZXh0IHtcblx0ZGlzcGxheTogaW5saW5lO1xufVxuXG4uZGlqaXRUYWJQYW5lLFxuLmRpaml0U3RhY2tDb250YWluZXItY2hpbGQsXG4uZGlqaXRBY2NvcmRpb25Db250YWluZXItY2hpbGQge1xuXHQvKiBjaGlsZHJlbiBvZiBUYWJDb250YWluZXIsIFN0YWNrQ29udGFpbmVyLCBhbmQgQWNjb3JkaW9uQ29udGFpbmVyIHNob3VsZG4ndCBoYXZlIGJvcmRlcnNcblx0ICogYi9jIGEgYm9yZGVyIGlzIGFscmVhZHkgdGhlcmUgZnJvbSB0aGUgVGFiQ29udGFpbmVyL1N0YWNrQ29udGFpbmVyL0FjY29yZGlvbkNvbnRhaW5lciBpdHNlbGYuXG5cdCAqL1xuICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiBJbmxpbmVFZGl0Qm94ICovXG4uZGlqaXRJbmxpbmVFZGl0Qm94RGlzcGxheU1vZGUge1xuXHRib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcdC8qIHNvIGtleWxpbmUgKGJvcmRlcikgb24gaG92ZXIgY2FuIGFwcGVhciB3aXRob3V0IHNjcmVlbiBqdW1wICovXG5cdGN1cnNvcjogdGV4dDtcbn1cblxuLmRqX2ExMXkgLmRpaml0SW5saW5lRWRpdEJveERpc3BsYXlNb2RlLFxuLmRqX2llNiAuZGlqaXRJbmxpbmVFZGl0Qm94RGlzcGxheU1vZGUge1xuXHQvKiBleGNlcHQgdGhhdCBJRTYgZG9lc24ndCBzdXBwb3J0IHRyYW5zcGFyZW50IGJvcmRlcnMsIG5vciBkb2VzIGhpZ2ggY29udHJhc3QgbW9kZSAqL1xuXHRib3JkZXI6IG5vbmU7XG59XG5cbi5kaWppdElubGluZUVkaXRCb3hEaXNwbGF5TW9kZUhvdmVyLFxuLmRqX2ExMXkgLmRpaml0SW5saW5lRWRpdEJveERpc3BsYXlNb2RlSG92ZXIsXG4uZGpfaWU2IC5kaWppdElubGluZUVkaXRCb3hEaXNwbGF5TW9kZUhvdmVyIHtcblx0LyogQW4gSW5saW5lRWRpdEJveCBpbiB2aWV3IG1vZGUgKGNsaWNrIHRoaXMgdG8gZWRpdCB0aGUgdGV4dCkgKi9cblx0YmFja2dyb3VuZC1jb2xvcjogI2UyZWJmMjtcblx0Ym9yZGVyOiBzb2xpZCAxcHggYmxhY2s7XG59XG5cbi5kaWppdElubGluZUVkaXRCb3hEaXNwbGF5TW9kZURpc2FibGVkIHtcblx0Y3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKiBUcmVlICovXG4uZGlqaXRUcmVlIHtcblx0b3ZlcmZsb3c6IGF1dG87XHQvKiBmb3Igc2Nyb2xsYmFycyB3aGVuIFRyZWUgaGFzIGEgaGVpZ2h0IHNldHRpbmcsIGFuZCB0byBwcmV2ZW50IHdyYXBwaW5nIGFyb3VuZCBmbG9hdCBlbGVtZW50cywgc2VlICMxMTQ5MSAqL1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uZGlqaXRUcmVlQ29udGFpbmVyIHtcblx0ZmxvYXQ6IGxlZnQ7XHQvKiBmb3IgY29ycmVjdCBoaWdobGlnaHRpbmcgZHVyaW5nIGhvcml6b250YWwgc2Nyb2xsLCBzZWUgIzE2MTMyICovXG59XG5cbi5kaWppdFRyZWVJbmRlbnQge1xuXHQvKiBhbW91bnQgdG8gaW5kZW50IGVhY2ggdHJlZSBub2RlIChyZWxhdGl2ZSB0byBwYXJlbnQgbm9kZSkgKi9cblx0d2lkdGg6IDE5cHg7XG59XG5cbi5kaWppdFRyZWVSb3csIC5kaWppdFRyZWVDb250ZW50IHtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmRqX2llIC5kaWppdFRyZWVMYWJlbDpmb2N1cyB7XG5cdC8qIHdvcmthcm91bmQgSUU5IGJlaGF2aW9yIHdoZXJlIGRvd24gYXJyb3dpbmcgdGhyb3VnaCBUcmVlTm9kZXMgZG9lc24ndCBzaG93IGZvY3VzIG91dGxpbmUgKi9cblx0b3V0bGluZTogMXB4IGRvdHRlZCBibGFjaztcbn1cblxuLmRpaml0VHJlZVJvdyBpbWcge1xuXHQvKiBtYWtlIHRoZSBleHBhbmRvIGFuZCBmb2xkZXIgaWNvbnMgbGluZSB1cCB3aXRoIHRoZSBsYWJlbCAqL1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uZGlqaXRUcmVlQ29udGVudCB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4uZGlqaXRFeHBhbmRvVGV4dCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kal9hMTF5IC5kaWppdEV4cGFuZG9UZXh0IHtcblx0ZGlzcGxheTogaW5saW5lO1xuXHRwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cdHBhZGRpbmctcmlnaHQ6IDEwcHg7XG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci13aWR0aDogdGhpbjtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZGlqaXRUcmVlTGFiZWwge1xuXHRtYXJnaW46IDAgNHB4O1xufVxuXG4vKiBEaWFsb2cgKi9cblxuLmRpaml0RGlhbG9nIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiA5OTk7XG5cdG92ZXJmbG93OiBoaWRkZW47XHQvKiBvdmVycmlkZSBvdmVyZmxvdzogYXV0bzsgZnJvbSBDb250ZW50UGFuZSB0byBtYWtlIGRyYWdnaW5nIHNtb290aGVyICovXG59XG5cbi5kaWppdERpYWxvZ1RpdGxlQmFyIHtcblx0Y3Vyc29yOiBtb3ZlO1xufVxuLmRpaml0RGlhbG9nRml4ZWQgLmRpaml0RGlhbG9nVGl0bGVCYXIge1xuXHRjdXJzb3I6ZGVmYXVsdDtcbn1cbi5kaWppdERpYWxvZ0Nsb3NlSWNvbiB7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5kaWppdERpYWxvZ1BhbmVDb250ZW50IHtcblx0LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuLmRpaml0RGlhbG9nVW5kZXJsYXlXcmFwcGVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAwO1xuXHR0b3A6IDA7XG5cdHotaW5kZXg6IDk5ODtcblx0ZGlzcGxheTogbm9uZTtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cblxuLmRpaml0RGlhbG9nVW5kZXJsYXkge1xuXHRiYWNrZ3JvdW5kOiAjZWVlO1xuXHRvcGFjaXR5OiAwLjU7XG59XG5cbi5kal9pZSAuZGlqaXREaWFsb2dVbmRlcmxheSB7XG5cdGZpbHRlcjogYWxwaGEob3BhY2l0eT01MCk7XG59XG5cbi8qIGltYWdlcyBvZmYsIGhpZ2gtY29udHJhc3QgbW9kZSBzdHlsZXMgKi9cbi5kal9hMTF5IC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIsXG4uZGpfYTExeSAuZGlqaXREaWFsb2cge1xuXHRvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdERpYWxvZyAuY2xvc2VUZXh0IHtcblx0ZGlzcGxheTpub25lO1xuXHQvKiBmb3IgdGhlIG9uaG92ZXIgYm9yZGVyIGluIGhpZ2ggY29udHJhc3Qgb24gSUU6ICovXG5cdHBvc2l0aW9uOmFic29sdXRlO1xufVxuXG4uZGpfYTExeSAuZGlqaXREaWFsb2cgLmNsb3NlVGV4dCB7XG5cdGRpc3BsYXk6aW5saW5lO1xufVxuXG4vKiBTbGlkZXIgKi9cblxuLmRpaml0U2xpZGVyTW92ZWFibGUge1xuXHR6LWluZGV4Ojk5O1xuXHRwb3NpdGlvbjphYnNvbHV0ZSAhaW1wb3J0YW50O1xuXHRkaXNwbGF5OmJsb2NrO1xuXHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XG59XG5cbi5kaWppdFNsaWRlck1vdmVhYmxlSCB7XG5cdHJpZ2h0OjA7XG59XG4uZGlqaXRTbGlkZXJNb3ZlYWJsZVYge1xuXHRyaWdodDo1MCU7XG59XG5cbi5kal9hMTF5IGRpdi5kaWppdFNsaWRlckltYWdlSGFuZGxlLFxuLmRpaml0U2xpZGVySW1hZ2VIYW5kbGUge1xuXHRtYXJnaW46MDtcblx0cGFkZGluZzowO1xuXHRwb3NpdGlvbjpyZWxhdGl2ZSAhaW1wb3J0YW50O1xuXHRib3JkZXI6OHB4IHNvbGlkIGdyYXk7XG5cdHdpZHRoOjA7XG5cdGhlaWdodDowO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZGpfaWVxdWlya3MgLmRqX2ExMXkgLmRpaml0U2xpZGVySW1hZ2VIYW5kbGUge1xuXHRmb250LXNpemU6IDA7XG59XG4uZGpfaWU3IC5kaWppdFNsaWRlckltYWdlSGFuZGxlIHtcblx0b3ZlcmZsb3c6IGhpZGRlbjsgLyogSUU3IHdvcmthcm91bmQgdG8gbWFrZSBzbGlkZXIgaGFuZGxlIFZJU0lCTEUgaW4gbm9uLWExMXkgbW9kZSAqL1xufVxuLmRqX2llNyAuZGpfYTExeSAuZGlqaXRTbGlkZXJJbWFnZUhhbmRsZSB7XG5cdG92ZXJmbG93OiB2aXNpYmxlOyAvKiBJRTcgd29ya2Fyb3VuZCB0byBtYWtlIHNsaWRlciBoYW5kbGUgVklTSUJMRSBpbiBhMTF5IG1vZGUgKi9cbn1cbi5kal9hMTF5IC5kaWppdFNsaWRlckZvY3VzZWQgLmRpaml0U2xpZGVySW1hZ2VIYW5kbGUge1xuXHRib3JkZXI6NHB4IHNvbGlkICMwMDA7XG5cdGhlaWdodDo4cHg7XG5cdHdpZHRoOjhweDtcbn1cblxuLmRpaml0U2xpZGVySW1hZ2VIYW5kbGVWIHtcblx0dG9wOi04cHg7XG5cdHJpZ2h0OiAtNTAlO1xufVxuXG4uZGlqaXRTbGlkZXJJbWFnZUhhbmRsZUgge1xuXHRsZWZ0OjUwJTtcblx0dG9wOi01cHg7XG5cdHZlcnRpY2FsLWFsaWduOnRvcDtcbn1cblxuLmRpaml0U2xpZGVyQmFyIHtcblx0Ym9yZGVyLXN0eWxlOnNvbGlkO1xuXHRib3JkZXItY29sb3I6YmxhY2s7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmRpaml0U2xpZGVyQmFyQ29udGFpbmVyViB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRoZWlnaHQ6MTAwJTtcblx0ei1pbmRleDoxO1xufVxuXG4uZGlqaXRTbGlkZXJCYXJDb250YWluZXJIIHtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdHotaW5kZXg6MTtcbn1cblxuLmRpaml0U2xpZGVyQmFySCB7XG5cdGhlaWdodDo0cHg7XG5cdGJvcmRlci13aWR0aDoxcHggMDtcbn1cblxuLmRpaml0U2xpZGVyQmFyViB7XG5cdHdpZHRoOjRweDtcblx0Ym9yZGVyLXdpZHRoOjAgMXB4O1xufVxuXG4uZGlqaXRTbGlkZXJQcm9ncmVzc0JhciB7XG5cdGJhY2tncm91bmQtY29sb3I6cmVkO1xuXHR6LWluZGV4OjE7XG59XG5cbi5kaWppdFNsaWRlclByb2dyZXNzQmFyViB7XG5cdHBvc2l0aW9uOnN0YXRpYyAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6MDtcblx0dmVydGljYWwtYWxpZ246dG9wO1xuXHR0ZXh0LWFsaWduOmxlZnQ7XG59XG5cbi5kaWppdFNsaWRlclByb2dyZXNzQmFySCB7XG5cdHBvc2l0aW9uOmFic29sdXRlICFpbXBvcnRhbnQ7XG5cdHdpZHRoOjA7XG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0b3ZlcmZsb3c6dmlzaWJsZTtcbn1cblxuLmRpaml0U2xpZGVyUmVtYWluaW5nQmFyIHtcblx0b3ZlcmZsb3c6aGlkZGVuO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O1xuXHR6LWluZGV4OjE7XG59XG5cbi5kaWppdFNsaWRlclJlbWFpbmluZ0JhclYge1xuXHRoZWlnaHQ6MTAwJTtcblx0dGV4dC1hbGlnbjpsZWZ0O1xufVxuXG4uZGlqaXRTbGlkZXJSZW1haW5pbmdCYXJIIHtcblx0d2lkdGg6MTAwJSAhaW1wb3J0YW50O1xufVxuXG4vKiB0aGUgc2xpZGVyIGJ1bXBlciBpcyB0aGUgc3BhY2UgY29uc3VtZWQgYnkgdGhlIHNsaWRlciBoYW5kbGUgd2hlbiBpdCBoYW5ncyBvdmVyIGFuIGVkZ2UgKi9cbi5kaWppdFNsaWRlckJ1bXBlciB7XG5cdG92ZXJmbG93OmhpZGRlbjtcblx0ei1pbmRleDoxO1xufVxuXG4uZGlqaXRTbGlkZXJCdW1wZXJWIHtcblx0d2lkdGg6NHB4O1xuXHRoZWlnaHQ6OHB4O1xuXHRib3JkZXItd2lkdGg6MCAxcHg7XG59XG5cbi5kaWppdFNsaWRlckJ1bXBlckgge1xuXHR3aWR0aDo4cHg7XG5cdGhlaWdodDo0cHg7XG5cdGJvcmRlci13aWR0aDoxcHggMDtcbn1cblxuLmRpaml0U2xpZGVyQm90dG9tQnVtcGVyLFxuLmRpaml0U2xpZGVyTGVmdEJ1bXBlciB7XG5cdGJhY2tncm91bmQtY29sb3I6cmVkO1xufVxuXG4uZGlqaXRTbGlkZXJUb3BCdW1wZXIsXG4uZGlqaXRTbGlkZXJSaWdodEJ1bXBlciB7XG5cdGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7XG59XG5cbi5kaWppdFNsaWRlckRlY29yYXRpb24ge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcbn1cblxuLmRpaml0U2xpZGVyRGVjb3JhdGlvbkMsXG4uZGlqaXRTbGlkZXJEZWNvcmF0aW9uViB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogbmVlZGVkIGZvciBJRStxdWlya3MrUlRMK3ZlcnRpY2FsIChyZW5kZXJpbmcgYnVnKSBidXQgYWRkIGV2ZXJ5d2hlcmUgZm9yIGN1c3RvbSBzdHlsaW5nIGNvbnNpc3RlbmN5IGJ1dCB0aGlzIG1lc3NlcyB1cCBJRSBob3Jpem9udGFsIHNsaWRlcnMgKi9cbn1cblxuLmRpaml0U2xpZGVyRGVjb3JhdGlvbkgge1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLmRpaml0U2xpZGVyRGVjb3JhdGlvblYge1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5kaWppdFNsaWRlckJ1dHRvbiB7XG5cdGZvbnQtZmFtaWx5Om1vbm9zcGFjZTtcblx0bWFyZ2luOjA7XG5cdHBhZGRpbmc6MDtcblx0ZGlzcGxheTpibG9jaztcbn1cblxuLmRqX2ExMXkgLmRpaml0U2xpZGVyQnV0dG9uSW5uZXIge1xuXHR2aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDtcbn1cblxuLmRpaml0U2xpZGVyQnV0dG9uQ29udGFpbmVyIHtcblx0dGV4dC1hbGlnbjpjZW50ZXI7XG5cdGhlaWdodDowO1x0LyogPz8/ICovXG59XG4uZGlqaXRTbGlkZXJCdXR0b25Db250YWluZXIgKiB7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmRpaml0U2xpZGVyIC5kaWppdEJ1dHRvbk5vZGUge1xuXHRwYWRkaW5nOjA7XG5cdGRpc3BsYXk6YmxvY2s7XG59XG5cbi5kaWppdFJ1bGVDb250YWluZXIge1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0b3ZlcmZsb3c6dmlzaWJsZTtcbn1cblxuLmRpaml0UnVsZUNvbnRhaW5lclYge1xuXHRoZWlnaHQ6MTAwJTtcblx0bGluZS1oZWlnaHQ6MDtcblx0ZmxvYXQ6bGVmdDtcblx0dGV4dC1hbGlnbjpsZWZ0O1xufVxuXG4uZGpfb3BlcmEgLmRpaml0UnVsZUNvbnRhaW5lclYge1xuXHRsaW5lLWhlaWdodDoyJTtcbn1cblxuLmRqX2llIC5kaWppdFJ1bGVDb250YWluZXJWIHtcblx0bGluZS1oZWlnaHQ6bm9ybWFsO1xufVxuXG4uZGpfZ2Vja28gLmRpaml0UnVsZUNvbnRhaW5lclYge1xuXHRtYXJnaW46MCAwIDFweCAwOyAvKiBtb3ppbGxhIGJ1ZyB3b3JrYXJvdW5kIGZvciBmbG9hdDpsZWZ0LGhlaWdodDoxMDAlIGJsb2NrIGVsZW1lbnRzICovXG59XG5cbi5kaWppdFJ1bGVNYXJrIHtcblx0cG9zaXRpb246YWJzb2x1dGU7XG5cdGJvcmRlcjoxcHggc29saWQgYmxhY2s7XG5cdGxpbmUtaGVpZ2h0OjA7XG5cdGhlaWdodDoxMDAlO1xufVxuXG4uZGlqaXRSdWxlTWFya0gge1xuXHR3aWR0aDowO1xuXHRib3JkZXItdG9wLXdpZHRoOjAgIWltcG9ydGFudDtcblx0Ym9yZGVyLWJvdHRvbS13aWR0aDowICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1sZWZ0LXdpZHRoOjAgIWltcG9ydGFudDtcbn1cblxuLmRpaml0UnVsZUxhYmVsQ29udGFpbmVyIHtcblx0cG9zaXRpb246YWJzb2x1dGU7XG59XG5cbi5kaWppdFJ1bGVMYWJlbENvbnRhaW5lckgge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG59XG5cbi5kaWppdFJ1bGVMYWJlbEgge1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0bGVmdDotNTAlO1xufVxuXG4uZGlqaXRSdWxlTGFiZWxWIHtcblx0Lyogc28gdGhhdCBsb25nIGxhYmVscyBkb24ndCBvdmVyZmxvdyB0byBtdWx0aXBsZSByb3dzLCBvciBvdmVyd3JpdGUgc2xpZGVyIGl0c2VsZiAqL1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmRpaml0UnVsZU1hcmtWIHtcblx0aGVpZ2h0OjA7XG5cdGJvcmRlci1yaWdodC13aWR0aDowICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1ib3R0b20td2lkdGg6MCAhaW1wb3J0YW50O1xuXHRib3JkZXItbGVmdC13aWR0aDowICFpbXBvcnRhbnQ7XG5cdHdpZHRoOjEwMCU7XG5cdGxlZnQ6MDtcbn1cblxuLmRqX2llIC5kaWppdFJ1bGVMYWJlbENvbnRhaW5lclYge1xuXHRtYXJnaW4tdG9wOi0uNTVlbTtcbn1cblxuLmRqX2ExMXkgLmRpaml0U2xpZGVyUmVhZE9ubHksXG4uZGpfYTExeSAuZGlqaXRTbGlkZXJEaXNhYmxlZCB7XG5cdG9wYWNpdHk6MC42O1xufVxuLmRqX2llIC5kal9hMTF5IC5kaWppdFNsaWRlclJlYWRPbmx5IC5kaWppdFNsaWRlckJhcixcbi5kal9pZSAuZGpfYTExeSAuZGlqaXRTbGlkZXJEaXNhYmxlZCAuZGlqaXRTbGlkZXJCYXIge1xuXHRmaWx0ZXI6IGFscGhhKG9wYWNpdHk9NDApO1xufVxuXG4vKiArIGFuZCAtIFNsaWRlciBidXR0b25zOiBvdmVycmlkZSB0aGVtZSBzZXR0aW5ncyB0byBkaXNwbGF5IGljb25zICovXG4uZGpfYTExeSAuZGlqaXRTbGlkZXIgLmRpaml0U2xpZGVyQnV0dG9uQ29udGFpbmVyIGRpdiB7XG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7IC8qIG90aGVyd2lzZSBoeXBoZW4gaXMgbGFyZ2VyIGFuZCBtb3JlIHZlcnRpY2FsbHkgY2VudGVyZWQgKi9cblx0Zm9udC1zaXplOiAxZW07XG5cdGxpbmUtaGVpZ2h0OiAxZW07XG5cdGhlaWdodDogYXV0bztcblx0d2lkdGg6IGF1dG87XG5cdG1hcmdpbjogMCA0cHg7XG59XG5cbi8qIEljb24tb25seSBidXR0b25zIChvZnRlbiBpbiB0b29sYmFycykgc3RpbGwgZGlzcGxheSB0aGUgdGV4dCBpbiBoaWdoLWNvbnRyYXN0IG1vZGUgKi9cbi5kal9hMTF5IC5kaWppdEJ1dHRvbkNvbnRlbnRzIC5kaWppdEJ1dHRvblRleHQsXG4uZGpfYTExeSAuZGlqaXRUYWIgLnRhYkxhYmVsIHtcblx0ZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG59XG4uZGpfYTExeSAuZGlqaXRTZWxlY3QgLmRpaml0QnV0dG9uVGV4dCB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xufVxuXG4vKiBUZXh0QXJlYSwgU2ltcGxlVGV4dEFyZWEgKi9cbi5kaWppdFRleHRBcmVhIHtcblx0d2lkdGg6MTAwJTtcblx0b3ZlcmZsb3cteTogYXV0bztcdC8qIHcvb3V0IHRoaXMgSUUncyBTaW1wbGVUZXh0QXJlYSBnb2VzIHRvIG92ZXJmbG93OiBzY3JvbGwgKi9cbn1cbi5kaWppdFRleHRBcmVhW2NvbHNdIHtcblx0d2lkdGg6YXV0bzsgLyogU2ltcGxlVGV4dEFyZWEgY29scyAqL1xufVxuLmRqX2llIC5kaWppdFRleHRBcmVhQ29scyB7XG5cdHdpZHRoOmF1dG87XG59XG5cbi5kaWppdEV4cGFuZGluZ1RleHRBcmVhIHtcblx0LyogZm9yIGF1dG8gZXhhbmRpbmcgdGV4dGFyZWEgKGNhbGxlZCBUZXh0YXJlYSBjdXJyZW50bHksIHJlbmFtZSBmb3IgMi4wKSBkb24ndCB3YW50IHRvIGRpc3BsYXkgdGhlIGdyaXAgdG8gcmVzaXplICovXG5cdHJlc2l6ZTogbm9uZTtcbn1cblxuXG4vKiBUb29sYmFyXG4gKiBOb3RlIHRoYXQgb3RoZXIgdG9vbGJhciBydWxlcyAoZm9yIG9iamVjdHMgaW4gdG9vbGJhcnMpIGFyZSBzY2F0dGVyZWQgdGhyb3VnaG91dCB0aGlzIGZpbGUuXG4gKi9cblxuLmRpaml0VG9vbGJhclNlcGFyYXRvciB7XG5cdGhlaWdodDogMThweDtcblx0d2lkdGg6IDVweDtcblx0cGFkZGluZzogMCAxcHg7XG5cdG1hcmdpbjogMDtcbn1cblxuLyogRWRpdG9yICovXG4uZGlqaXRJRUZpeGVkVG9vbGJhciB7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHQvKiB0b3A6MDsgKi9cblx0dG9wOiBleHByZXNzaW9uKGV2YWwoKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudHx8ZG9jdW1lbnQuYm9keSkuc2Nyb2xsVG9wKSk7XG59XG5cbi5kaWppdEVkaXRvciB7XG5cdGRpc3BsYXk6IGJsb2NrO1x0LyogcHJldmVudHMgZ2xpdGNoIG9uIEZGIHdpdGggSW5saW5lRWRpdEJveCwgc2VlICM4NDA0ICovXG59XG5cbi5kaWppdEVkaXRvckRpc2FibGVkLFxuLmRpaml0RWRpdG9yUmVhZE9ubHkge1xuXHRjb2xvcjogZ3JheTtcbn1cblxuLyogVGltZVBpY2tlciAqL1xuXG4uZGlqaXRUaW1lUGlja2VyIHtcblx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uZGlqaXRUaW1lUGlja2VySXRlbSB7XG5cdGN1cnNvcjpwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmRpaml0VGltZVBpY2tlckl0ZW1Ib3ZlciB7XG5cdGJhY2tncm91bmQtY29sb3I6Z3JheTtcblx0Y29sb3I6d2hpdGU7XG59XG4uZGlqaXRUaW1lUGlja2VySXRlbVNlbGVjdGVkIHtcblx0Zm9udC13ZWlnaHQ6Ym9sZDtcblx0Y29sb3I6IzMzMztcblx0YmFja2dyb3VuZC1jb2xvcjojYjdjZGVlO1xufVxuLmRpaml0VGltZVBpY2tlckl0ZW1EaXNhYmxlZCB7XG5cdGNvbG9yOmdyYXk7XG5cdHRleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2g7XG59XG5cbi5kaWppdFRpbWVQaWNrZXJJdGVtSW5uZXIge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0Ym9yZGVyOjA7XG5cdHBhZGRpbmc6MnB4IDhweCAycHggOHB4O1xufVxuXG4uZGlqaXRUaW1lUGlja2VyVGljayxcbi5kaWppdFRpbWVQaWNrZXJNYXJrZXIge1xuXHRib3JkZXItYm90dG9tOjFweCBzb2xpZCBncmF5O1xufVxuXG4uZGlqaXRUaW1lUGlja2VyIC5kaWppdERvd25BcnJvd0J1dHRvbiB7XG5cdGJvcmRlci10b3A6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmRpaml0VGltZVBpY2tlclRpY2sge1xuXHRjb2xvcjojQ0NDO1xufVxuXG4uZGlqaXRUaW1lUGlja2VyTWFya2VyIHtcblx0Y29sb3I6YmxhY2s7XG5cdGJhY2tncm91bmQtY29sb3I6I0NDQztcbn1cblxuLmRqX2ExMXkgLmRpaml0VGltZVBpY2tlckl0ZW1TZWxlY3RlZCAuZGlqaXRUaW1lUGlja2VySXRlbUlubmVyIHtcblx0Ym9yZGVyOiBzb2xpZCA0cHggYmxhY2s7XG59XG4uZGpfYTExeSAuZGlqaXRUaW1lUGlja2VySXRlbUhvdmVyIC5kaWppdFRpbWVQaWNrZXJJdGVtSW5uZXIge1xuXHRib3JkZXI6IGRhc2hlZCA0cHggYmxhY2s7XG59XG5cblxuLmRpaml0VG9nZ2xlQnV0dG9uSWNvbkNoYXIge1xuXHQvKiBjaGFyYWN0ZXIgKGluc3RlYWQgb2YgaWNvbikgdG8gc2hvdyB0aGF0IFRvZ2dsZUJ1dHRvbiBpcyBjaGVja2VkICovXG5cdGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0VG9nZ2xlQnV0dG9uIC5kaWppdFRvZ2dsZUJ1dHRvbkljb25DaGFyIHtcblx0ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudDtcblx0dmlzaWJpbGl0eTpoaWRkZW47XG59XG4uZGpfaWU2IC5kaWppdFRvZ2dsZUJ1dHRvbkljb25DaGFyLCAuZGpfaWU2IC50YWJTdHJpcEJ1dHRvbiAuZGlqaXRCdXR0b25UZXh0IHtcblx0Zm9udC1mYW1pbHk6IFwiQXJpYWwgVW5pY29kZSBNU1wiO1x0Lyogb3RoZXJ3aXNlIHRoZSBhMTF5IGNoYXJhY3RlciAoY2hlY2ttYXJrLCBhcnJvdywgZXRjLikgYXBwZWFycyBhcyBhIGJveCAqL1xufVxuLmRqX2ExMXkgLmRpaml0VG9nZ2xlQnV0dG9uQ2hlY2tlZCAuZGlqaXRUb2dnbGVCdXR0b25JY29uQ2hhciB7XG5cdGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyAvKiBJbiBoaWdoIGNvbnRyYXN0IG1vZGUsIGRpc3BsYXkgdGhlIGNoZWNrIHN5bWJvbCAqL1xuXHR2aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDtcbn1cblxuLmRpaml0QXJyb3dCdXR0b25DaGFyIHtcblx0ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG59XG4uZGpfYTExeSAuZGlqaXRBcnJvd0J1dHRvbkNoYXIge1xuXHRkaXNwbGF5OmlubGluZSAhaW1wb3J0YW50O1xufVxuXG4uZGpfYTExeSAuZGlqaXREcm9wRG93bkJ1dHRvbiAuZGlqaXRBcnJvd0J1dHRvbklubmVyLFxuLmRqX2ExMXkgLmRpaml0Q29tYm9CdXR0b24gLmRpaml0QXJyb3dCdXR0b25Jbm5lciB7XG5cdGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiBTZWxlY3QgKi9cbi5kal9hMTF5IC5kaWppdFNlbGVjdCB7XG5cdGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGUgIWltcG9ydGFudDtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG59XG4uZGpfaWUgLmRpaml0U2VsZWN0IHtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTsgLyogU2V0IHRoaXMgYmFjayBmb3Igd2hhdCB3ZSBoYWNrIGluIGRpaml0IGlubGluZSAqL1xufVxuLmRqX2llNiAuZGlqaXRTZWxlY3QgLmRpaml0VmFsaWRhdGlvbkNvbnRhaW5lcixcbi5kal9pZTggLmRpaml0U2VsZWN0IC5kaWppdEJ1dHRvblRleHQge1xuXHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLmRqX2llNiAuZGlqaXRUZXh0Qm94IC5kaWppdElucHV0Q29udGFpbmVyLFxuLmRqX2llcXVpcmtzIC5kaWppdFRleHRCb3ggLmRpaml0SW5wdXRDb250YWluZXIsXG4uZGpfaWU2IC5kaWppdFRleHRCb3ggLmRpaml0QXJyb3dCdXR0b25Jbm5lcixcbi5kal9pZTYgLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uSW5uZXIsXG4uZGlqaXRTZWxlY3QgLmRpaml0U2VsZWN0TGFiZWwge1xuXHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi5kaWppdE51bWJlclRleHRCb3gge1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRkaXJlY3Rpb246IGx0cjtcbn1cblxuLmRpaml0TnVtYmVyVGV4dEJveCAuZGlqaXRJbnB1dElubmVyIHtcblx0dGV4dC1hbGlnbjogaW5oZXJpdDsgLyogaW5wdXQgKi9cbn1cblxuLmRpaml0TnVtYmVyVGV4dEJveCBpbnB1dC5kaWppdElucHV0SW5uZXIsXG4uZGlqaXRDdXJyZW5jeVRleHRCb3ggaW5wdXQuZGlqaXRJbnB1dElubmVyLFxuLmRpaml0U3Bpbm5lciBpbnB1dC5kaWppdElucHV0SW5uZXIge1xuXHR0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLmRqX2llOCAuZGlqaXROdW1iZXJUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRJbm5lciwgLmRqX2llOSAuZGlqaXROdW1iZXJUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRJbm5lcixcbi5kal9pZTggLmRpaml0Q3VycmVuY3lUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRJbm5lciwgLmRqX2llOSAuZGlqaXRDdXJyZW5jeVRleHRCb3ggaW5wdXQuZGlqaXRJbnB1dElubmVyLFxuLmRqX2llOCAuZGlqaXRTcGlubmVyIGlucHV0LmRpaml0SW5wdXRJbm5lciwgLmRqX2llOSAuZGlqaXRTcGlubmVyIGlucHV0LmRpaml0SW5wdXRJbm5lciB7XG5cdC8qIHdvcmthcm91bmQgYnVnIHdoZXJlIGNhcmV0IGludmlzaWJsZSBpbiBlbXB0eSB0ZXh0Ym94ZXMgKi9cblx0cGFkZGluZy1yaWdodDogMXB4ICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdFRvb2xiYXIgLmRpaml0U2VsZWN0IHtcblx0bWFyZ2luOiAwO1xufVxuLmRqX3dlYmtpdCAuZGlqaXRUb29sYmFyIC5kaWppdFNlbGVjdCB7XG5cdHBhZGRpbmctbGVmdDogMC4zZW07XG59XG4uZGlqaXRTZWxlY3QgLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHRwYWRkaW5nOiAwO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRib3JkZXItc3R5bGU6IG5vbmUgc29saWQgbm9uZSBub25lO1xuXHRib3JkZXItd2lkdGg6IDFweDtcbn1cbi5kaWppdFNlbGVjdEZpeGVkV2lkdGggLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLmRpaml0U2VsZWN0TWVudSAuZGlqaXRNZW51SXRlbUljb24ge1xuXHQvKiBhdm9pZCBibGFuayBhcmVhIGluIGxlZnQgc2lkZSBvZiBtZW51IChzaW5jZSB3ZSBoYXZlIG5vIGljb25zKSAqL1xuXHRkaXNwbGF5Om5vbmU7XG59XG4uZGpfaWU2IC5kaWppdFNlbGVjdE1lbnUgLmRpaml0TWVudUl0ZW1MYWJlbCxcbi5kal9pZTcgLmRpaml0U2VsZWN0TWVudSAuZGlqaXRNZW51SXRlbUxhYmVsIHtcblx0LyogU2V0IGJhY2sgdG8gc3RhdGljIGR1ZSB0byBidWcgaW4gaWU2L2llNyAtIFNlZSBCdWcgIzk2NTEgKi9cblx0cG9zaXRpb246IHN0YXRpYztcbn1cblxuLyogRml4IHRoZSBiYXNlbGluZSBvZiBvdXIgbGFiZWwgKGZvciBtdWx0aS1zaXplIGZvbnQgZWxlbWVudHMpICovXG4uZGlqaXRTZWxlY3RMYWJlbCAqXG57XG5cdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLyogU3R5bGluZyBmb3IgdGhlIGN1cnJlbnRseS1zZWxlY3RlZCBvcHRpb24gKHJpY2ggdGV4dCBjYW4gbWVzcyB0aGlzIHVwKSAqL1xuLmRpaml0U2VsZWN0U2VsZWN0ZWRPcHRpb24gKiB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKiBGaXggdGhlIHN0eWxpbmcgb2YgdGhlIGRyb3Bkb3duIG1lbnUgdG8gYmUgbW9yZSBjb21ib2JveC1saWtlICovXG4uZGlqaXRTZWxlY3RNZW51IHtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG59XG5cbi8qIFVzZWQgaW4gY2FzZXMsIHN1Y2ggYXMgRnVsbFNjcmVlbiBwbHVnaW4sIHdoZW4gd2UgbmVlZCB0byBmb3JjZSBzdHVmZiB0byBzdGF0aWMgcG9zaXRpb25pbmcuICovXG4uZGlqaXRGb3JjZVN0YXRpYyB7XG5cdHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbn1cblxuLyoqKiogRGlzYWJsZWQgY3Vyc29yICoqKioqL1xuLmRpaml0UmVhZE9ubHkgKixcbi5kaWppdERpc2FibGVkICosXG4uZGlqaXRSZWFkT25seSxcbi5kaWppdERpc2FibGVkIHtcblx0LyogYSByZWdpb24gdGhlIHVzZXIgd291bGQgYmUgYWJsZSB0byBjbGljayBvbiwgYnV0IGl0J3MgZGlzYWJsZWQgKi9cblx0Y3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKiBEcmFnIGFuZCBEcm9wICovXG4uZG9qb0RuZEl0ZW0ge1xuICAgIHBhZGRpbmc6IDJweDsgIC8qIHdpbGwgYmUgcmVwbGFjZWQgYnkgYm9yZGVyIGR1cmluZyBkcmFnIG92ZXIgKGRvam9EbmRJdGVtQmVmb3JlLCBkb2pvRG5kSXRlbUFmdGVyKSAqL1xuXG5cdC8qIFByZXZlbnQgbWFnbmlmeWluZy1nbGFzcyB0ZXh0IHNlbGVjdGlvbiBpY29uIHRvIGFwcGVhciBvbiBtb2JpbGUgd2Via2l0IGFzIGl0IGNhdXNlcyBhIHRvdWNob3V0IGV2ZW50ICovXG5cdC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcblx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsgLyogRGlzYWJsZSBzZWxlY3Rpb24vQ29weSBvZiBVSVdlYlZpZXcgKi9cbn1cbi5kb2pvRG5kSG9yaXpvbnRhbCAuZG9qb0RuZEl0ZW0ge1xuICAgIC8qIG1ha2UgY29udGVudHMgb2YgaG9yaXpvbnRhbCBjb250YWluZXIgYmUgc2lkZSBieSBzaWRlLCByYXRoZXIgdGhhbiB2ZXJ0aWNhbCAqL1xuICAgICNkaXNwbGF5OiBpbmxpbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uZG9qb0RuZEl0ZW1CZWZvcmUsXG4uZG9qb0RuZEl0ZW1BZnRlciB7XG5cdGJvcmRlcjogMHB4IHNvbGlkICMzNjk7XG59XG4uZG9qb0RuZEl0ZW1CZWZvcmUge1xuICAgIGJvcmRlci13aWR0aDogMnB4IDAgMCAwO1xuICAgIHBhZGRpbmc6IDAgMnB4IDJweCAycHg7XG59XG4uZG9qb0RuZEl0ZW1BZnRlciB7XG4gICAgYm9yZGVyLXdpZHRoOiAwIDAgMnB4IDA7XG4gICAgcGFkZGluZzogMnB4IDJweCAwIDJweDtcbn1cbi5kb2pvRG5kSG9yaXpvbnRhbCAuZG9qb0RuZEl0ZW1CZWZvcmUge1xuICAgIGJvcmRlci13aWR0aDogMCAwIDAgMnB4O1xuICAgIHBhZGRpbmc6IDJweCAycHggMnB4IDA7XG59XG4uZG9qb0RuZEhvcml6b250YWwgLmRvam9EbmRJdGVtQWZ0ZXIge1xuICAgIGJvcmRlci13aWR0aDogMCAycHggMCAwO1xuICAgIHBhZGRpbmc6IDJweCAwIDJweCAycHg7XG59XG5cbi5kb2pvRG5kSXRlbU92ZXIge1xuXHRjdXJzb3I6cG9pbnRlcjtcbn1cbi5kal9nZWNrbyAuZGlqaXRBcnJvd0J1dHRvbklubmVyIElOUFVULFxuLmRqX2dlY2tvIElOUFVULmRpaml0QXJyb3dCdXR0b25Jbm5lciB7XG5cdC1tb3otdXNlci1mb2N1czppZ25vcmU7XG59XG4uZGlqaXRGb2N1c2VkIC5kaWppdE1lbnVJdGVtU2hvcnRjdXRLZXkge1xuXHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbiIsIi8qIERpaml0IGN1c3RvbSBzdHlsaW5nICovXG4uZGlqaXRCb3JkZXJDb250YWluZXIge1xuICAgIGhlaWdodDogMzUwcHg7XG59XG4uZGlqaXRUb29sdGlwQ29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuLmRpaml0Q29udGVudFBhbmUge1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIG92ZXJmbG93OiBhdXRvICFpbXBvcnRhbnQ7IC8qIFdpZGdldHMgbGlrZSB0aGUgZGF0YSBncmlkIHBhc3MgdGhlaXIgc2Nyb2xsXG4gICAgb2Zmc2V0IHRvIHRoZSBwYXJlbnQgaWYgdGhlcmUgaXMgbm90IGVub3VnaCByb29tIHRvIGRpc3BsYXkgYSBzY3JvbGwgYmFyXG4gICAgaW4gdGhlIHdpZGdldCBpdHNlbGYsIHNvIGRvIG5vdCBoaWRlIHRoZSBvdmVyZmxvdy4gKi9cbn1cblxuLyogR2xvYmFsIEJvb3RzdHJhcCBjaGFuZ2VzICovXG5cbi8qIENsaWVudCBkZWZhdWx0cyBhbmQgaGVscGVycyAqL1xuLm14LWRhdGF2aWV3LWNvbnRlbnQsIC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlcjpub3QoLm14LXNjcm9sbGNvbnRhaW5lci1uZXN0ZWQpLCAubXgtdGFiY29udGFpbmVyLWNvbnRlbnQsIC5teC1ncmlkLWNvbnRlbnQge1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cbmh0bWwsIGJvZHksICNjb250ZW50IHtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG4jY29udGVudCA+IC5teC1wYWdlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xufVxuXG4ubXgtbGVmdC1hbGlnbmVkIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLm14LXJpZ2h0LWFsaWduZWQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLm14LWNlbnRlci1hbGlnbmVkIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5teC10YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4ubXgtdGFibGUgdGgsXG4ubXgtdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLm14LXRhYmxlIHRoLm5vcGFkZGluZyxcbi5teC10YWJsZSB0ZC5ub3BhZGRpbmcge1xuXHRwYWRkaW5nOiAwO1xufVxuXG4ubXgtb2Zmc2NyZWVuIHtcbiAgICAvKiBXaGVuIHBvc2l0aW9uIHJlbGF0aXZlIGlzIG5vdCBzZXQgSUUgZG9lc24ndCBwcm9wZXJseSByZW5kZXIgd2hlbiB0aGlzIGNsYXNzIGlzIHJlbW92ZWRcbiAgICAgKiB3aXRoIHRoZSBlZmZlY3QgdGhhdCBlbGVtZW50cyBhcmUgbm90IGRpc3BsYXllZCBvciBhcmUgbm90IGNsaWNrYWJsZS5cbiAgICAqL1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm14LWllLWV2ZW50LXNoaWVsZCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB6LWluZGV4OiAtMTtcbn1cblxuLm14LXN3aXBlLW5hdmlnYXRpb24tcHJvZ3Jlc3Mge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IDU0cHg7XG4gICAgd2lkdGg6IDU0cHg7XG4gICAgdG9wOiBjYWxjKDUwJSAtIDI3cHgpO1xuICAgIGxlZnQ6IGNhbGMoNTAlIC0gMjdweCk7XG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaE5nQTJBUE1BQVAvLy93QUFBSGg0ZUJ3Y0hBNE9EdGpZMkZSVVZOemMzTVRFeEVoSVNJcUtpZ0FBQUFBQUFBQUFBQUFBQUFBQUFDSDVCQWtLQUFBQUlmNGFRM0psWVhSbFpDQjNhWFJvSUdGcVlYaHNiMkZrTG1sdVptOEFJZjhMVGtWVVUwTkJVRVV5TGpBREFRQUFBQ3dBQUFBQU5nQTJBQUFFeXhESVNhdTlPT3ZOdS85Z0tJNWt5U0VKUVNTSTZVcUtLaFBLV3lMejNOcGltcXNKbnVnM0U0YUlNaVBJOXdzcVBUamlUbGt3cUF3RlRDeFhleFlHczBIMmdnSk9MWUxCUURDeTVnd213WXg5SkpyQXNzSFFYc0tyOUNGdU0zQWxjakowSUFkK0JBTUhMbWxySkFkdUJvNVBsNWlabXB1Y25aNmZjV3FJbUpDamFIT1poaXFtRkl1QWw2NFpzWml6RjZvRXJFSzN1Uk9sbTc2Z3djTER4TVhHeDhYQWo2SWt1NCtvSXJVazBoL1UwV0Vqem5IUUlzcWhrY2pCM3NuY3hkYkM1K0xseWN6aDdrOFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRNRU1oSnE3MDQ2ODI3LzJBb2ptUnBubVZoRUlSUm9HY3hzT3p3d3VSS3N3Wk83anZmQ0VnVGluUzduaEYwbU5FR2h3c2l3VW9nbHBTRHpoQzFLSWlLa1dBd0VKZ1FSTllWSk5pWlNkUjBJdVNzbGRKRlVKMHd1T01KSVcwMGJ5TnhSSE9CWklRamFHbHJXQnhmUUdHUUhsTlZqNVdhbTV5ZG5wOUxZMldib29zV2dpeW1RcWdFcWhON2ZaQ3dHYk95TzdFWHJLNDR1aHFscElxZ3dzUEV4Y2JIeU1lL0tNc2l2U2JQZExjbnRkSlAxTlBPYmlmUmlhUE13Y25DemNyYnlOWEc2TVhkeHVUaTd6NFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRPRU1oSnE3MDQ2ODI3LzJBb2ptUnBubWlxQXNJd0NLc3BFRFFCeCtOUUV3T2U3ejFmYUZhN0NVR3QxMUZZTU5BTUJWTFNTQ3JvYW9Qb2NFY1ZPWGNFZytoS0M1TEF0VEhRaEthSmlMUnU2THNUdjEzeTBJSE1PeXc5QjE4R2ZuK0Zob2VJaVlvWkNBazBDUWlMRmdwb0NobFRSd2h0QkpFV2NEWkNqbTBKRjN4bU1adHVGcVpDcVFRWG4za29vbWlrc0hpWm01MlNBSlJnbHJ3VGpZKzd3Y2JIeU1uS0U1Z296VzljSjdFL1dDZXNhdFVtMTF0RjB0RWp6eks0eTRuaHh0UEkyOGJxd2VqSTV1VHhKaEVBSWZrRUNRb0FBQUFzQUFBQUFEWUFOZ0FBQk1zUXlFbXJ2VGpyemJ2L1lDaU9aR21lYUtvQ3dqQUlxeWtRTkFISDQxQVRBNTd2UFY5b1Zyc0pRYTNYY1lsS0dtV3VKM0luRlJGcDFZNnVGaXh0YVYzUWwzY2FoejlYMnltZDdUaFRiNlo4VHEvYjcvaTh2R0NnR1FvYWNVSUZab0FYYkVkOU93UUdHR1pIaXpXT1FKQ1JCQmlJUW9vN2paaFJTd2RtQjNvVUI0b0dvNlNxcTZ5dE1RZ0pOQWtJckFxUkNpT0NJd2lXQkxSVFJTV3hsZ2toanlTOU5NYVV5TWxEVk1LOXhVT2ZKYnlXdjNxMmk3aEx1aFd3c3RsQ21hdkg1c3lyNWVyVnJ1NDRFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWlaY2dVR05BWUZKSk1pQldhZ1E0TWxuVHNFQmlLTElxczFya0Ftc1RSV3FDU3FPNjFXa1JrSUNUUUpDQmNIWmdkSENyRUt4cW9HeVVJSXRnVEZlc0syQ1h2VXQzcmNCSHZZc2RwNjA3Yldlc3VyelpYQncrZ2lFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWdTQ0FrMENRaVdDanMwQ3BRSW9qV2ZKWk1kbktjRUNhcURJSzQxWGtBaHREUzJYQ0d0cDdBa2p4Nm1ycW5Ca1NLaG9xUVhCUVkwQmdWTG01M0dGUVZtMHBUUG9nYVZ0Tit1bGR3NzNwUUhaZ2VXQjl3RzZwa29FUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2dktVU0Nsa0RnTFFvN05BcC9Fd2lDTlg1Q2NSWjdpQVFKaTFRWGp6VkNacFNWQkpkQUY0NklrVDVzRjRlUGlxSlJHWUdDaElXR2puMnVzck8wdFhZRkJqUUdCYlFGWnJ4UVNpSzVnZ1l5a3lHVkpwakpqOHVkSWNRN3hpV2pJUWRtQjJ1cEl3ZkVCdHEySG95ejFyUE01OURseUxUazR1OHBFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3a1JDVm9Db1dtOWhCTEZqcWFBZGhEVEdyUGtOSDZTV1VLQ3UvTjJ3cldTcmhiOG9HbHFZQWljSFpPSU5ETUhHOTdlWFhvZFVsTlZWbGRnUzRhS2k0eU5qbzhGQmpRR0JZOFhCV3MwQTVWUVhSbVNVd2FkWlJob1VKazhwV0duY2hlZ082SkNlRFlZQjZnREIxYWVHUWVnQnJtV3djTER4TVhHeDF5QUtic2lzNEVnemo5c0o3ZlNtdFN0UTZReTI4M0tLTXpJamVIRTBjYlY1OW5sM2NYazR1OG9FUUE3KTtcbn1cblxuIiwiLyogQmFjYXVzZSB3ZSB1c2UgY2hlY2tib3hlcyB3aXRob3V0IGxhYmVscywgYWxpZ24gdGhlbSB3aXRoIG90aGVyIHdpZGdldHMuICovXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIG1hcmdpbjogOXB4IDA7XG59XG5cbi5teC1jaGVja2JveCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG59XG5cbi5mb3JtLXZlcnRpY2FsIC5mb3JtLWdyb3VwLm14LWNoZWNrYm94IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5mb3JtLXZlcnRpY2FsIC5mb3JtLWdyb3VwLm14LWNoZWNrYm94LmxhYmVsLWFmdGVyIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uZm9ybS1ob3Jpem9udGFsIC5mb3JtLWdyb3VwLm5vLWNvbHVtbnMge1xuICAgIHBhZGRpbmctbGVmdDogMTVweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xufVxuXG4ubXgtcmFkaW9idXR0b25zLmlubGluZSAucmFkaW8ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG59XG5cbi5teC1yYWRpb2J1dHRvbnMgLnJhZGlvIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgLyogUmVzZXQgYm9vdHN0cmFwIHJ1bGVzICovXG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLm14LXJhZGlvYnV0dG9ucyAucmFkaW8gbGFiZWwge1xuICAgIC8qIFJlc2V0IGJvb3RzdHJhcCBydWxlcyAqL1xuICAgIHBhZGRpbmctbGVmdDogMDtcbn1cblxuLmFsZXJ0IHtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7XG59XG5cbi5teC1jb21wb3VuZC1jb250cm9sIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xufVxuXG4ubXgtY29tcG91bmQtY29udHJvbCBidXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG59XG5cbltkaXI9XCJydGxcIl0gLm14LWNvbXBvdW5kLWNvbnRyb2wgYnV0dG9uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbiIsIi5teC10b29sdGlwIHtcbiAgICBtYXJnaW46IDEwcHg7XG59XG4ubXgtdG9vbHRpcC1jb250ZW50IHtcbiAgICB3aWR0aDogNDAwcHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbn1cbi5teC10b29sdGlwLXByZXBhcmUge1xuICAgIGhlaWdodDogMjRweDtcbiAgICBwYWRkaW5nOiA4cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKGRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEdBQVlBTVFkQUtYWjhuZkY2NFRMN1F1WDNGZTQ1emFxNGhPYjNmTDYvZnI5L3JyaTlkWHQrWnJVOEN5bTRVbXk1Y0hsOXVQeisySzg2T2oxL056dytyRGQ5TTNxK0pEUTcyckE2aU9pMyszNC9FQ3U0OGpvOXgyZjNnV1YyLy8vL3dBQUFBQUFBQ0gvQzA1RlZGTkRRVkJGTWk0d0F3RUFBQUFoL3d0WVRWQWdSR0YwWVZoTlVEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU5pMWpNVFF3SURjNUxqRTJNRFExTVN3Z01qQXhOeTh3TlM4d05pMHdNVG93T0RveU1TQWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JTWldZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlZKbFppTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRnZ0tFMWhZMmx1ZEc5emFDa2lJSGh0Y0UxTk9rbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZSVUpGTmtVNE5FWkNORVZETVRGRk9EazNNREJCTlVVMVJVTTRRamczUVRVaUlIaHRjRTFOT2tSdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNlJVSkZOa1U0TlRCQ05FVkRNVEZGT0RrM01EQkJOVVUxUlVNNFFqZzNRVFVpUGlBOGVHMXdUVTA2UkdWeWFYWmxaRVp5YjIwZ2MzUlNaV1k2YVc1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRwRlFrVTJSVGcwUkVJMFJVTXhNVVU0T1Rjd01FRTFSVFZGUXpoQ09EZEJOU0lnYzNSU1pXWTZaRzlqZFcxbGJuUkpSRDBpZUcxd0xtUnBaRHBGUWtVMlJUZzBSVUkwUlVNeE1VVTRPVGN3TUVFMVJUVkZRemhDT0RkQk5TSXZQaUE4TDNKa1pqcEVaWE5qY21sd2RHbHZiajRnUEM5eVpHWTZVa1JHUGlBOEwzZzZlRzF3YldWMFlUNGdQRDk0Y0dGamEyVjBJR1Z1WkQwaWNpSS9QZ0gvL3YzOCsvcjUrUGYyOWZUejh2SHc3Kzd0N092cTZlam41dVhrNCtMaDROL2UzZHpiMnRuWTE5YlYxTlBTMGREUHpzM015OHJKeU1mR3hjVER3c0hBdjc2OXZMdTZ1YmkzdHJXMHM3S3hzSyt1cmF5cnFxbW9wNmFscEtPaW9hQ2ZucDJjbTVxWm1KZVdsWlNUa3BHUWo0Nk5qSXVLaVlpSGhvV0VnNEtCZ0g5K2ZYeDdlbmw0ZDNaMWRITnljWEJ2Ym0xc2EycHBhR2RtWldSalltRmdYMTVkWEZ0YVdWaFhWbFZVVTFKUlVFOU9UVXhMU2tsSVIwWkZSRU5DUVVBL1BqMDhPem81T0RjMk5UUXpNakV3THk0dExDc3FLU2duSmlVa0l5SWhJQjhlSFJ3Ykdoa1lGeFlWRkJNU0VSQVBEZzBNQ3dvSkNBY0dCUVFEQWdFQUFDSDVCQVVFQUIwQUxBQUFBQUFZQUJnQUFBVWNZQ2VPWkdtZWFLcXViT3UrY0N6UGRHM2ZlSzd2Zk8vL3dPQXJCQUFoK1FRRkJBQWRBQ3dBQUFBQUFRQUJBQUFGQTJBWEFnQWgrUVFGQkFBZEFDd1VBQXdBQVFBQ0FBQUZBeURUaEFBaCtRUUZCQUFkQUN3VEFBc0FBZ0FHQUFBRkMyQVhkRnhuZE1UUU1WMElBQ0g1QkFVRUFCMEFMQkVBQ3dBRUFBZ0FBQVVSWUNjMllpbHlvcldkVm1jTnA4aTBYUWdBSWZrRUJRUUFIUUFzRHdBT0FBWUFCZ0FBQlE5Z0ozYUJNWjRqaDQ0V0I0bkZjSVlBSWZrRUNRUUFIUUFzRFFBUEFBZ0FCZ0FBQlJGZ0o0NGRSSGJCcVlvcEdRd2NPUmhxQ0FBaCtRUUpCQUFkQUN3QUFBQUFHQUFZQUFBRkxXQW5qbVJwbm1pcXJtenJ2bkFzejNSdDMzaXVrOEpnRHdRYlIyaWhCVGlOV1c4WTR6aDlHaGxnUnkyRkFBQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZNMkFuam1ScG5taXFybXpydm5Bc3ozUnQzMmh6YzN0U0M3emFZT2VvY1NBMFlNWlZJUWtHd1JhUVE2VjJpaklBYnFzS0FRQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZObUFuam1ScG5taXFybXpydm5Bc3ozUnQzMmh6Yy90VVY3eWFJV01MMGppRVZRVUZMS3dDSEVPcFlqQ3lNcHlzbGloYjRMNnJFQUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGT21BbmptUnBubWlxcm16cnZuQXN6M1J0MzJoemN6dFFWN3phcG1BTG1vQXNqZzdGTUI0NWpGV0RzeWxWTnM1VmdjUHRFbU8rQ202c0NnRUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCVDlnSjQ1a2FaNW9xcTVzNjc1d0xNOTBiZDhvY1hPQ3plMm14c2ExWVp4K0xRN2cxRUNxT0prVWc3TkljWXlxNXJDMGdicW1uSENZc1lRdGU3aDBLZ1FBSWZrRUNRUUFIUUFzQUFBQUFCZ0FHQUFBQlVSZ0o0NWthWjVvcXE1czY3NXdMTTkwYmQ4b1lRWXdKNVNjbmluNElwSVlGOWNsV1ZvWVY1ekZLZk5FY1RLcFN4WElURkc3SXkyMnhlQ1l6eGNwVFBxajRONm9FQUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGU21BbmptUnBubWlxcm16cnZuQXN6M1ROYm5iQXdZUzV2NXdBcWZKekZVZEhWckt6WWJnWU9OK2t4YW1jQ2dQV29KRGFaRk9EYUtyQWNaWVlIRzVydzJtN04xWllSUmkzMlZjaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVlBZQ2VPWkdtZWFLcXViT3UrY0N6UDVVYlFJb2QzZ3I3N3JodkpBbXh4TEtVaVM5bmhURjVNQThQRk1KaDZMbzdneEJpd0JsUFV4cHNhYkZZTVRwaVVYcXNFQm81OGJ0akN0aGI3YnI4S0FRQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZVMkFuam1ScG5taXFybXpydmpETFhERXBjRFZwWlBtSTk1MGJVUFJ6UVVxUVlvdHpKQ2xaejhsenhabVVEQVZYd1hDYW9yeWRDM2Rsb0tFTTQzTWFkZUZrU3dXT2VSVXdjTzU0UXlBbU9BcUdnQzBoQUNINUJBVUVBQjBBTEFBQUFBQVlBQmdBQUFWWFlDZU9aR21lYUtxdWJMdHVsbnNhaG14dXRVMEduRjRPRFIrcEp4VHhpaUpDemhYNzJRYUVIZEUxSFZWWkhNQXY0OG9NVE1jV0ozRENzUXliMUdBNSs2bzJIRzRwdzBtekFnTU9aNURmazIwQlVYOUloQzBoQUNINUJBa0VBQjBBTEFJQUF3QVVBQk1BQUFVL1lDZUsxdENNYUpweWhPcU93L2JPOUd6VmM0dnY5YzJuc2w5QVpQaDFpajZqY3JRUW5YYlBEc1E0SFFWcFYxUld0VTFGUjE5WDlWZ1VqV20rWkNvRUFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVmJZQ2VPWkdtZWFLcU9GckdpeE1CeHpHc2FuR3VidzdhZkJ0K3ZST0FNVGJsanlhaGtNWnVkaG5BWEtFbUhtOFp5K0JRdHVpL09ZcWw3RlUvZ1ZQSTJUVzBNcVo1cU0xamh5cU1pM0R6amJEWjllRFlRRFZwalVJZy9JUUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGWUdBbmptUnBubWlxaWxXWFpjUnFFaHczWE5jZ2t3WUg3U2ZPQlhneURJa2xHdExrVzVZNFRoSkJGeFZsamtCQjZZcThaRXBVWUpnRkpYSmFwT1lPVXBhMlY1eVl5U2k3R0ZKQzFlVmRWSlBZZHpJME5qZ0ROWEpFQkYrSVZZMUFJUUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGWldBbmptUnBubWlxaWtKWEZNUnFOaHhuTUlWUngvTEFXYWFBck1OaERGRUQ0M0hHV1o1K3pwS2dHUzBacXFTQ2Npa2NhWjA0RXVHNk5QQkcxR01hRFJ4YTFpS2F1bkZLeWhpRFZGSEZnSnQ4YlNSdmVUSTBOZ3dNT2h4MFRnUXZIUzFZa2xFaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVm1ZQ2VPWkdtZWFLcUtRY01VeldwbUhMZDF4VlpuY2pjTUFWUGdwMXB3Q2lyR0RUVkE5azZad1JQRm1aNENWV3Vwc2RTT1h0cmdWMXRna0xqV1RZeVVmYlpISExFTU81UDJCanhUVTFhd240NHFCVzhtQzBSQ2hpczBOZ1U1TzFZdFptdGVrNU1oQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFWbllDZU9aR21lYUtxS1FYWmQyV29XSEhkMURWTVhjc1VOSjRHQnMrTHdVclFLeWlpam5RcEFXY2R3NGdTa3FBQVJlM0p4VDdkdngwS0NmYjBqTk5aTTJtTGRJeXRXTzR2S0JzY1NjK1ZjNXA5d1ZYWWtBUU9CS0RRMkdTNDdYeTB2SFZkaWs1UWlJUUFoK1FRRkJBQWRBQ3dBQUFBQUdBQVlBQUFGYm1BbmptUnBubWlxaWxheGJjVnFNaHpIZEExdHl3Sm5uQUlEUjZEaVpGUVpUc29vUzU0WVAxbkhjQ3NOcFNJbHlhTEZjZ0trUWhWcjJwQkZpOUttY1c2WVIrSXpJMGJxU3UxWm9qZFJnbUtwSjB3clRpaUNLSVFvUFZFbFFYZ29PZ3dOT1RWalVpMW1kR2VhbXlVaEFDSDVCQVVFQUIwQUxBSUFBZ0FVQUJRQUFBVmJZQ2VPa01HZG5BR05MSWx5dy9DdWJjZWNXWjJkVEhzYk5aYXBKNEtrZ2kwVDdZU3NNWTI1Sm10WDRraWRKdXVWaFJwc1dUTFlkeFRXamsrbXNTZ0ZIVk03ekcvY0NMd3FSei9wMElmVDhZSkdYV1VjTkVoVktDbzFJUUFoK1FRRkJBQWRBQ3dCQUFFQUZnQVdBQUFGWjJBbmptUFZCV1NxbmdaSGNnYTZqc2JyMG5OMTEyVEZjNmFVNnpZYnBtckVXY2ZGTzRrRXloSFUyYWsxbzlYc0VydHlCYm1xWUpKN1E0MnhMaG00MlBsaVRUc3QxeXBTYzZkcUpGa3VHazVWQWtZcE9pSlhiVDlLVnh4Smhpb0JMUytOVVNaMktpRUFJZmtFQ1FRQUhRQXNBUUFCQUJZQUZnQUFCV3BnSjQ2aWxWMVgxazFrUzE2Y3kxMHUyY1MxeURVMU0zSUVFZ0hYOGRsR3dWcXl3L3ZsY2tSYVovbE1TbVBFcDY0VHM0aW8ycVJKcXoyUm42aHpMcVd1cWI1dEtyWTk3MGpCU3BHVTI5Nk9tbE01UzRBaVJseFVReU9HTmxreWhDNHdNbnRrSmlncUxDNGhBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVYrWUNlT1pHbWVwVlZjVjlaTjZMbHhkRTF2OGRqWWZOM0VEQnVFQkxFeFRqdmE4RlNrL1VxMW5DaEttbkdXdVNadVJKVjJ1aGFsbDh1eGlESzBNZG5WdWFUVlg4NUY1T2JBNC9NTzJnNm5zZU5ZVWsxbVUyOWVYUjFXZ1NoYUpBdUlLSkFkU1ZlTVBpZEJrRTAwUnlpVVBaZFNWajFiYWhZWkxCbUVkM0FoQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFXQllDZU9aR21lcFZWY1Y5Rk42TGx4ZEUxdjhkallmTjNFakpyQlpLZ3hUanRhVE9BejFYS2lKMm5HRVVDakhOeUlOcngyaXB5UlJlbnRNRGtXVVlGY3ByazZGN2FYZGhIRncrVU9YUzIvdXJkVlpXY2tYR1ZnVTMweE55UUxVamsxQ3lWSmdTZG5IRDhtUVlVa0FtQWNSeWlUUFUxUVZEMWFaU29zQldsNXJoMGhBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVdDWUNlT1pHbWVwVlZjVjlGTjZMbHhkRTF2OGRqWWZOM0VqTnJGZEtreFRqdk9JRGVnL1VxMFphN1Q1SlJtMXFub1JxSU50WjFpdG1PaGdVYzBpNmhnUG5kb3JuRDc3QldKM1cvT2x6MEd3OUY5VXdCcEloTjFZSGNqV0hRY09GMUtXbFVtU1FNQU1WVlBKVUdISXdCaUhFY29TVDAybVRGWVBZNW5LaXd1TUhodUlRQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZlbUFuam1ScG5xV1ZNVXlHdmhjbnovTDFqZzJ0ejgxYnpLNVNabFk0NVRpR20wSFdLOG1TdDg2U1U0cFJvNklhU1JiRURxOGRpd3k3NVZoRVgvS0lLMktNMVIwWm8vMVd5OUYxTWpzTDF2ZjNYaklUSTFaMkhEWmxVRXA1SWtlS0oxTk5KVCtBSTE4Y1JTaEhPelNTTUp5SGNHRXJMUjJEb25BaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVjlZQ2VPWkdtZVpkQXdUSU8rRnlmUDh2V09CRDFjMTBBVHI4SU1Zb0xNQ3FjY3h3YVRBVXUxbXlqR0tWR2xvMmlXUThSMmpGVlJRT2JkQmtRTnpxQXM4bzBZUzNZbnhoREJtV1Y2ZHMzMnVUcGpZV1ZrVzExWVlDUlhYbHBiZUUyQ09Jd25WRThsUWpLR0kyQWNTQzg2UEQ0elhsUTBrbGhuTEg5eWNpRUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCWDFnSjQ1a2FaNWwwQlJGZzc0TUo4OHk4NDRFZlhYWlJST3ZqR3h3RWd4a21WT09rd3pLZ0NYa1RTVGtsR0xFcWVob0c4bTBwSzhvSUFaM1pBRlJnN016ZDN5akF0UE40eFJFY25yOUxtTFQ0V05sWUdoZUhBSnVnbGhtWEZGelUxVW1TMDBvVlZBbFZWa2xSbEl2T2hrOU5HQXhORE5kWmlvZExYcDZJUUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGZ0dBbmptUnBucVhRRkZrbm9HakJ6ZlJjd0NORUR4M1JaUU1hQk5hWWJWQ2JXZU9rNCtCNnM5UE05K3hFU2JKanRaTzhqYTViQUZqQTRXMUZ3WmVJMHpyL25LSU1oK3BteCtGdWdoM2FQc3ZwWlc0ZFFTUmdXNFpaWjEwbFUxVjZlRG1OTUk5REprVWNXaVpKa0ZJekF4aytRRUpWTWpVMFhtY3ZHYUNDclIwaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVjZZQ2VPWkdtZXBkQmxHWUcrR1NmUGN2YU8xcnk1UWJmTmxoZEJWa0FWWks2VDdOWUpMRTJ5SHJQekhNV0swODdSTnFwbXF3TE9KanY2cVVTY0pIbG81WkJKSEc1TVNuWnkyZThPSGoxK203dHViMTVYWkZzbFVWK0JKRG1LS0U0Y1FTWkRIRmdtUjJrM09qd0VQMTR3TkRSY1pDb3NIV2Q1YnlFQUlma0VDUVFBSFFBc0FBQUFBQmdBR0FBQUJYcGdKNDVrYVo1bDFXVk5wNkpueHMzMG5NRmpRQmR1RnhTMEFJd3dHeFpSbkFGT05PQUlTOGRsSnlxU0VhUWk0bTFFbFVZckhCNVdCQ1J4eG1hSXFNRjVqY0d0RGh2TmpVK2ZZOTBJTEI2WHVXZG9WRlpqV2xDQlhvaG1Ta3ROZUNSRUhGY25rWk1uT2pNOEtqOUJVakkxTkZ0b0VBMHRiblJqSVFBaCtRUUpCQUFkQUN3QUFBQUFHQUFZQUFBRmdHQW5qbVJwbmlaRWRCYnFObHdzeDQwN0NyR3hkbE5IR0RHQkM4SVp1QUlEam90anNJbUF3bExST1VxV1lBR3FLTUNwalpqYUVaREUyWVU3U3BFbGZhNXdXajcydVN3aXlNTjBFYWR5N3JoSEMzZGFIQXRmVFdkakkxaGhYRjVmUmxwV0ptQk9pU2xGV1NkSUhCQXVPRXc3UFQ4eFdqQXpNbzVoRml0d2ZYMGhBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVYxWUNlT1pHbWVwa1YwQWVvU1hDekhxeXRXOFVWTzNSWGJIWTdCWnVCWVRqZ2QwSGNTQWtmRkV1dzVXbkJxSW82UzJ1T1FPQzF1ZGhUd2lqc1RzR2g2RG1MTlozaTVIUXpYei9PUjlzd2NzYmxYSlU1VVVTVkpUejRWS0VJTEtBdEZSeWc0ZXlNOFBuQTJNRE15V0Z3QkJDc0FkR0loQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFWellDZU9aR21lWmdCMUFlb1NBeWZQQStHU2NWWldHVGZjQWM3bGR1RzBUaHpkclZQZ25BYkRwZWp5SXhHYzBoSEhOaG9vczUxTVZZUUZrMGRCcy9ZSUtaczVxN082QXhlbDUyNU9SVjF4ZTlWaVZtNVNXeVZRWUZSSUJWSk5LRUZSS0VWSEtEazdQV00zTURNMFhHWXFjWE5xSVFBaCtRUUpCQUFkQUN3QUFBQUFHQUFZQUFBRmQyQW5qbVJwbm1iUVdkMkVvdERBY1lZeEQ5QkxEZ05oRWp4ZGdKUFJaVGlxRThlbkUzRk9nMkpUbEJtVVl0TmRidFRMam9Da3AzY2s3Z2pLWTQ1Z1pCaXpSNWEydTJOZ09lZWQ4Z1R0NWJoRVhXTmdPMjQ0SlZGZVZTWUxTMU1FZkdGU0tFZE5QRXdrUUZaVE1UTTFOMXRqYXl4L2VGa2hBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVZvWUNlT1pHbWVwdEFGYU50WkJtY3dUR3hZN21nWXA3QzdBZzdFQmVHMGpMa1ZzbVFZSmpzUUhnbjIxT0YwVlpKVXRNd3VmVm1kU3NRSWswZUJzcG5CRW0yejcyNjFheGhYd1NNcTNOU3NSazl5UnloQlRpaEZkaWMvS1lvNU1ESTBObVlkS20yU1dTRUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCV3hnSjQ1a2FaNW0xUVZvdXhvYzB6UU1aN0N1YURBb1k3Z1ZUazRnUkJWekhjN0VaQkFnUllJZktjQjdpcW9qcVZWSE9tNlBGZXlXb1JJMXRxT3pDSWZ1cUsvdERubmt0WG9OaTdaMjFXYXdkVTVQVVNkMUxZVWlRWUVvUkRrN1BYc3RBVEF5TkRaL1ZwZHhUeUVBSWZrRUNRUUFIUUFzQUFBQUFCZ0FHQUFBQldOZ0o0NWthWjVtMVFsbzJ3V2IwWFJRWTJ5Qk8yN3oyV3c2ZzY0alJCa2NRK0xFQkV5S21xTkF6emw5T2tsUTRuVlVGRldwcXRWMkJCa0p5bU8wZDl5cGRxL3ZyRE1yM1g2MThOUGJaVmlhRm50NkN5NDhLRDlKTURJME5qaGpLaXhzV3lFQUlma0VDUVFBSFFBc0FBQUFBQmdBR0FBQUJWaGdKNDVrYVo3bTBnbG91MjdGMmxuRjVwSTJhdVV0M3dNb24wc29JZzVMQXN1dHBNUXRUYjdZa3lRVk5hZldFUXRMMnNxNDN5ejQycWxpemNhYmtMeGtkOUxCRTd5VUJzeUxhcmYxUG9JcFdUVmdJaXdxZ2xnaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVlpZQ2VPWkdtZXA5QUJhTnN4aE5xcGpPeSt0c25jeGQzMUtLQlBTTnI1UnNaUjdyaE1Ia1ZPd3BQVUlDMmZyT21wSXVKcVI5N1pWenlTZnF2SXNaTThiV3JYSXFKTFRxS2I3TVdyU0FCSHdUb0xZbjArWGdwalV5RUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCVkZnSjQ1a2FaNW5oYTVqWm9sSloyVXNTYVBBdlJKMXg2Ty9YdERXSTVZQVJaS3FsVFNLWHMxb2JTSmFTcSttbUlpSzVjcXVVSkd1T2NhYXlqVzBMemtzdFUvdmtwclpxOUNRSFdURzJ1U2JleUVBSWZrRUNRUUFIUUFzQUFBQUFCZ0FHQUFBQlVsZ0o0NWthWjVuaGE0anBJcE9CN0Vrd2Rwc1FIYzYydSsvMms0NExNcU1MZVF1cHV4TVJJdW05QlNGVGErZGwyaW01R0pMdUdLWUZNeXR5dEt4U2IzeWlpcnU0clA2WllVQUFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVTVZQ2VPWkdtZUo0Q3VZMUNxS2l1Nk1ydlVkNjJiOU43dnRaOFBTQ3dtUkxHaU1yVkVKWnZMMzdNcGxGV2hwWnpOaW0zeGxxcGpseFVDQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFVM1lDZU9aR21lNklTdTRtSzY3RmpGTkoyc2Q2M0g4MTdEUHFCdlNDeUtWRVdrY1lrUzZweE1VUys2azFCWDAxT1dCWVhxbE5kVENBQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZMR0Fuam1ScG5taXFvdFBxdm5Bc3oySkxxL2F0Ny96cDlNRGdLQmNqQ284OHhVdXBNNmFjVHRnUGFRb0JBQ0g1QkFVRUFCMEFMQUFBQUFBWUFCZ0FBQVVqWUNlT1pHbWVhS3F1Yk91K2NMeFNjbTNmZUk3VGV0L3p2cUJ3eUFLV2pDOGtNUVFBT3c9PSkgbm8tcmVwZWF0IHNjcm9sbCBjZW50ZXIgY2VudGVyO1xufVxuLm14LXRvb2x0aXAtY29udGVudCAudGFibGUgdGgsXG4ubXgtdG9vbHRpcC1jb250ZW50IC50YWJsZSB0ZCB7XG4gICAgcGFkZGluZzogMnB4IDhweDtcbn1cbiIsIi5teC10YWJjb250YWluZXItcGFuZSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuLm14LXRhYmNvbnRhaW5lci1jb250ZW50LmxvYWRpbmcge1xuICAgIG1pbi1oZWlnaHQ6IDQ4cHg7XG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaE5nQTJBUE1BQVAvLy93QUFBSGg0ZUJ3Y0hBNE9EdGpZMkZSVVZOemMzTVRFeEVoSVNJcUtpZ0FBQUFBQUFBQUFBQUFBQUFBQUFDSDVCQWtLQUFBQUlmNGFRM0psWVhSbFpDQjNhWFJvSUdGcVlYaHNiMkZrTG1sdVptOEFJZjhMVGtWVVUwTkJVRVV5TGpBREFRQUFBQ3dBQUFBQU5nQTJBQUFFeXhESVNhdTlPT3ZOdS85Z0tJNWt5U0VKUVNTSTZVcUtLaFBLV3lMejNOcGltcXNKbnVnM0U0YUlNaVBJOXdzcVBUamlUbGt3cUF3RlRDeFhleFlHczBIMmdnSk9MWUxCUURDeTVnd213WXg5SkpyQXNzSFFYc0tyOUNGdU0zQWxjakowSUFkK0JBTUhMbWxySkFkdUJvNVBsNWlabXB1Y25aNmZjV3FJbUpDamFIT1poaXFtRkl1QWw2NFpzWml6RjZvRXJFSzN1Uk9sbTc2Z3djTER4TVhHeDhYQWo2SWt1NCtvSXJVazBoL1UwV0Vqem5IUUlzcWhrY2pCM3NuY3hkYkM1K0xseWN6aDdrOFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRNRU1oSnE3MDQ2ODI3LzJBb2ptUnBubVZoRUlSUm9HY3hzT3p3d3VSS3N3Wk83anZmQ0VnVGluUzduaEYwbU5FR2h3c2l3VW9nbHBTRHpoQzFLSWlLa1dBd0VKZ1FSTllWSk5pWlNkUjBJdVNzbGRKRlVKMHd1T01KSVcwMGJ5TnhSSE9CWklRamFHbHJXQnhmUUdHUUhsTlZqNVdhbTV5ZG5wOUxZMldib29zV2dpeW1RcWdFcWhON2ZaQ3dHYk95TzdFWHJLNDR1aHFscElxZ3dzUEV4Y2JIeU1lL0tNc2l2U2JQZExjbnRkSlAxTlBPYmlmUmlhUE13Y25DemNyYnlOWEc2TVhkeHVUaTd6NFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRPRU1oSnE3MDQ2ODI3LzJBb2ptUnBubWlxQXNJd0NLc3BFRFFCeCtOUUV3T2U3ejFmYUZhN0NVR3QxMUZZTU5BTUJWTFNTQ3JvYW9Qb2NFY1ZPWGNFZytoS0M1TEF0VEhRaEthSmlMUnU2THNUdjEzeTBJSE1PeXc5QjE4R2ZuK0Zob2VJaVlvWkNBazBDUWlMRmdwb0NobFRSd2h0QkpFV2NEWkNqbTBKRjN4bU1adHVGcVpDcVFRWG4za29vbWlrc0hpWm01MlNBSlJnbHJ3VGpZKzd3Y2JIeU1uS0U1Z296VzljSjdFL1dDZXNhdFVtMTF0RjB0RWp6eks0eTRuaHh0UEkyOGJxd2VqSTV1VHhKaEVBSWZrRUNRb0FBQUFzQUFBQUFEWUFOZ0FBQk1zUXlFbXJ2VGpyemJ2L1lDaU9aR21lYUtvQ3dqQUlxeWtRTkFISDQxQVRBNTd2UFY5b1Zyc0pRYTNYY1lsS0dtV3VKM0luRlJGcDFZNnVGaXh0YVYzUWwzY2FoejlYMnltZDdUaFRiNlo4VHEvYjcvaTh2R0NnR1FvYWNVSUZab0FYYkVkOU93UUdHR1pIaXpXT1FKQ1JCQmlJUW9vN2paaFJTd2RtQjNvVUI0b0dvNlNxcTZ5dE1RZ0pOQWtJckFxUkNpT0NJd2lXQkxSVFJTV3hsZ2toanlTOU5NYVV5TWxEVk1LOXhVT2ZKYnlXdjNxMmk3aEx1aFd3c3RsQ21hdkg1c3lyNWVyVnJ1NDRFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWlaY2dVR05BWUZKSk1pQldhZ1E0TWxuVHNFQmlLTElxczFya0Ftc1RSV3FDU3FPNjFXa1JrSUNUUUpDQmNIWmdkSENyRUt4cW9HeVVJSXRnVEZlc0syQ1h2VXQzcmNCSHZZc2RwNjA3Yldlc3VyelpYQncrZ2lFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWdTQ0FrMENRaVdDanMwQ3BRSW9qV2ZKWk1kbktjRUNhcURJSzQxWGtBaHREUzJYQ0d0cDdBa2p4Nm1ycW5Ca1NLaG9xUVhCUVkwQmdWTG01M0dGUVZtMHBUUG9nYVZ0Tit1bGR3NzNwUUhaZ2VXQjl3RzZwa29FUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2dktVU0Nsa0RnTFFvN05BcC9Fd2lDTlg1Q2NSWjdpQVFKaTFRWGp6VkNacFNWQkpkQUY0NklrVDVzRjRlUGlxSlJHWUdDaElXR2puMnVzck8wdFhZRkJqUUdCYlFGWnJ4UVNpSzVnZ1l5a3lHVkpwakpqOHVkSWNRN3hpV2pJUWRtQjJ1cEl3ZkVCdHEySG95ejFyUE01OURseUxUazR1OHBFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3a1JDVm9Db1dtOWhCTEZqcWFBZGhEVEdyUGtOSDZTV1VLQ3UvTjJ3cldTcmhiOG9HbHFZQWljSFpPSU5ETUhHOTdlWFhvZFVsTlZWbGRnUzRhS2k0eU5qbzhGQmpRR0JZOFhCV3MwQTVWUVhSbVNVd2FkWlJob1VKazhwV0duY2hlZ082SkNlRFlZQjZnREIxYWVHUWVnQnJtV3djTER4TVhHeDF5QUtic2lzNEVnemo5c0o3ZlNtdFN0UTZReTI4M0tLTXpJamVIRTBjYlY1OW5sM2NYazR1OG9FUUE3KSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDMycHggMzJweDtcbn1cbi5teC10YWJjb250YWluZXItdGFicyB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuLm14LXRhYmNvbnRhaW5lci10YWJzIGxpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ubXgtdGFiY29udGFpbmVyLWluZGljYXRvciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQ6ICNmMmRlZGU7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGNvbG9yOiAjYjk0YTQ4O1xuICAgIHRvcDogMHB4O1xuICAgIHJpZ2h0OiAtNXB4O1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB6LWluZGV4OiAxOyAvKiBpbmRpY2F0b3Igc2hvdWxkIG5vdCBoaWRlIGJlaGluZCBvdGhlciB0YWIgKi9cbn1cbiIsIi8qIGJhc2Ugc3RydWN0dXJlICovXG4ubXgtZ3JpZCB7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47IC8qIHRvIHByZXZlbnQgYW55IG1hcmdpbiBmcm9tIGVzY2FwaW5nIGdyaWQgYW5kIGZvb2JhcmluZyBvdXIgc2l6ZSBjYWxjdWxhdGlvbnMgKi9cbn1cbi5teC1ncmlkLWNvbnRyb2xiYXIsIC5teC1ncmlkLXNlYXJjaGJhciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZmxleC13cmFwOiB3cmFwO1xufVxuLm14LWdyaWQtY29udHJvbGJhciAubXgtYnV0dG9uLFxuLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIC5teC1idXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbn1cblxuLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIC5teC1idXR0b24gKyAubXgtYnV0dG9uLFxuLm14LWdyaWQtY29udHJvbGJhciAubXgtYnV0dG9uICsgLm14LWJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDAuM2VtO1xufVxuXG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXNlYXJjaC1jb250cm9scyAubXgtYnV0dG9uICsgLm14LWJ1dHRvbixcbltkaXI9XCJydGxcIl0gLm14LWdyaWQtY29udHJvbGJhciAubXgtYnV0dG9uICsgLm14LWJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjNlbTtcbn1cblxuLm14LWdyaWQtcGFnaW5nYmFyLFxuLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG4ubXgtZ3JpZC10b29sYmFyLCAubXgtZ3JpZC1zZWFyY2gtaW5wdXRzIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICBmbGV4OiAxO1xufVxuXG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXRvb2xiYXIsXG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXNlYXJjaC1pbnB1dHMge1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAwcHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXBhZ2luZ2JhcixcbltkaXI9XCJydGxcIl0gLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIHtcbiAgICBtYXJnaW4tbGVmdDogMHB4O1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLm14LWdyaWQtcGFnaW5nLXN0YXR1cyB7XG4gICAgcGFkZGluZzogMCA4cHggNXB4O1xufVxuXG4vKiBzZWFyY2ggZmllbGRzICovXG4ubXgtZ3JpZC1zZWFyY2gtaXRlbSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuLm14LWdyaWQtc2VhcmNoLWxhYmVsIHtcbiAgICB3aWR0aDogMTEwcHg7XG4gICAgcGFkZGluZzogMCA1cHg7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbltkaXI9XCJydGxcIl0gLm14LWdyaWQtc2VhcmNoLWxhYmVsIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLm14LWdyaWQtc2VhcmNoLWlucHV0IHtcbiAgICB3aWR0aDogMTUwcHg7XG4gICAgcGFkZGluZzogMCA1cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4ubXgtZ3JpZC1zZWFyY2gtbWVzc2FnZSB7XG4gICAgZmxleC1iYXNpczogMTAwJTtcbn1cblxuLyogd2lkZ2V0IGNvbWJpbmF0aW9ucyAqL1xuLm14LWRhdGF2aWV3IC5teC1ncmlkIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbiIsIi5teC1jYWxlbmRhciB7XG4gICAgei1pbmRleDogMTAwMDtcbn1cblxuLm14LWNhbGVuZGFyLW1vbnRoLWRyb3Bkb3duLW9wdGlvbnMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLm14LWNhbGVuZGFyLCAubXgtY2FsZW5kYXItbW9udGgtZHJvcGRvd24ge1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4ubXgtY2FsZW5kYXItbW9udGgtY3VycmVudCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4ubXgtY2FsZW5kYXItbW9udGgtc3BhY2VyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5teC1jYWxlbmRhciwgLm14LWNhbGVuZGFyLW1vbnRoLWRyb3Bkb3duLW9wdGlvbnMge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JleTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbiIsIi5teC1kYXRhZ3JpZCB0ciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubXgtZGF0YWdyaWQgdHIubXgtZGF0YWdyaWQtcm93LWVtcHR5IHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5teC1kYXRhZ3JpZCB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLm14LWRhdGFncmlkIHRoLCAubXgtZGF0YWdyaWQgdGQge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG59XG5cbi8qIGhlYWQgKi9cbi5teC1kYXRhZ3JpZCB0aCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBSZXF1aXJlZCBmb3IgdGhlIHBvc2l0aW9uaW5nIG9mIHRoZSBjb2x1bW4gcmVzaXplcnMgKi9cbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAycHg7XG59XG4ubXgtZGF0YWdyaWQtaGVhZC1jYXB0aW9uIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ubXgtZGF0YWdyaWQtc29ydC1pY29uIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1kYXRhZ3JpZC1zb3J0LWljb24ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmc6IDAgNXB4IDAgMDtcbn1cbi5teC1kYXRhZ3JpZC1jb2x1bW4tcmVzaXplciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAtNnB4O1xuICAgIHdpZHRoOiAxMHB4O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBjdXJzb3I6IGNvbC1yZXNpemU7XG59XG5bZGlyPVwicnRsXCJdIC5teC1kYXRhZ3JpZC1jb2x1bW4tcmVzaXplciB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogLTZweDtcbn1cblxuLyogYm9keSAqL1xuLm14LWRhdGFncmlkIHRib2R5IHRyOmZpcnN0LWNoaWxkIHRkIHtcbiAgICBib3JkZXItdG9wOiBub25lO1xufVxuLm14LWRhdGFncmlkIHRib2R5IHRyOm50aC1jaGlsZCgybisxKSB0ZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcbn1cbi5teC1kYXRhZ3JpZCB0Ym9keSAuc2VsZWN0ZWQgdGQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG59XG4ubXgtZGF0YWdyaWQtZGF0YS13cmFwcGVyIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ubXgtZGF0YWdyaWQgdGJvZHkgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDE2cHg7XG4gICAgbWF4LWhlaWdodDogMTZweDtcbn1cbi5teC1kYXRhZ3JpZCBpbnB1dCxcbi5teC1kYXRhZ3JpZCBzZWxlY3QsXG4ubXgtZGF0YWdyaWQgdGV4dGFyZWEge1xuICAgIGN1cnNvcjogYXV0bztcbn1cblxuLyogZm9vdCAqL1xuLm14LWRhdGFncmlkIHRmb290IHRoLFxuLm14LWRhdGFncmlkIHRmb290IHRkIHtcbiAgICBwYWRkaW5nOiAzcHggOHB4O1xufVxuLm14LWRhdGFncmlkIHRmb290IHRoIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDtcbn1cbi5teC1kYXRhZ3JpZC5teC1jb250ZW50LWxvYWRpbmcgLm14LWNvbnRlbnQtbG9hZGVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDkwJTtcbiAgICBhbmltYXRpb246IHBsYWNlaG9sZGVyR3JhZGllbnQgMXMgbGluZWFyIGluZmluaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiAjRjVGNUY1O1xuICAgIGJhY2tncm91bmQ6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNGNUY1RjUgMCUsICNGNUY1RjUgNSUsICNGOUY5RjkgNTAlLCAjRjVGNUY1IDk1JSwgI0Y1RjVGNSAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDIwMHB4IDEwMHB4O1xuICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG59XG5Aa2V5ZnJhbWVzIHBsYWNlaG9sZGVyR3JhZGllbnQge1xuICAgIDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwcHggMDsgfVxuICAgIDEwMCUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTAwcHggMDsgfVxufVxuXG4ubXgtZGF0YWdyaWQtdGFibGUtcmVzaXppbmcgdGgsXG4ubXgtZGF0YWdyaWQtdGFibGUtcmVzaXppbmcgdGQge1xuICAgIGN1cnNvcjogY29sLXJlc2l6ZSAhaW1wb3J0YW50O1xufVxuIiwiLm14LXRlbXBsYXRlZ3JpZC1jb250ZW50LXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5teC10ZW1wbGF0ZWdyaWQtcm93IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3c7XG59XG4ubXgtdGVtcGxhdGVncmlkLWl0ZW0ge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4ubXgtdGVtcGxhdGVncmlkLWVtcHR5IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuLm14LXRlbXBsYXRlZ3JpZC1pdGVtLnNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xufVxuLm14LXRlbXBsYXRlZ3JpZC1pdGVtIC5teC10YWJsZSB0aCxcbi5teC10ZW1wbGF0ZWdyaWQtaXRlbSAubXgtdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDJweCA4cHg7XG59XG4iLCIubXgtc2Nyb2xsY29udGFpbmVyLWhvcml6b250YWwge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG59XG4ubXgtc2Nyb2xsY29udGFpbmVyLWhvcml6b250YWwgPiBkaXYge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi5teC1zY3JvbGxjb250YWluZXItd3JhcHBlciB7XG4gICAgcGFkZGluZzogMTBweDtcbn1cbi5teC1zY3JvbGxjb250YWluZXItbmVzdGVkIHtcbiAgICBwYWRkaW5nOiAwO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1maXhlZCA+IC5teC1zY3JvbGxjb250YWluZXItbWlkZGxlID4gLm14LXNjcm9sbGNvbnRhaW5lci13cmFwcGVyLFxuLm14LXNjcm9sbGNvbnRhaW5lci1maXhlZCA+IC5teC1zY3JvbGxjb250YWluZXItbGVmdCA+IC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlcixcbi5teC1zY3JvbGxjb250YWluZXItZml4ZWQgPiAubXgtc2Nyb2xsY29udGFpbmVyLWNlbnRlciA+IC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlcixcbi5teC1zY3JvbGxjb250YWluZXItZml4ZWQgPiAubXgtc2Nyb2xsY29udGFpbmVyLXJpZ2h0ID4gLm14LXNjcm9sbGNvbnRhaW5lci13cmFwcGVyIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cblxuLm14LXNjcm9sbGNvbnRhaW5lci1tb3ZlLWluIHtcbiAgICB0cmFuc2l0aW9uOiBsZWZ0IDI1MG1zIGVhc2Utb3V0O1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1tb3ZlLW91dCB7XG4gICAgdHJhbnNpdGlvbjogbGVmdCAyNTBtcyBlYXNlLWluO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1zaHJpbmsgLm14LXNjcm9sbGNvbnRhaW5lci10b2dnbGVhYmxlIHtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB3aWR0aDtcbn1cblxuLm14LXNjcm9sbGNvbnRhaW5lci10b2dnbGVhYmxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1zbGlkZSA+IC5teC1zY3JvbGxjb250YWluZXItdG9nZ2xlYWJsZSA+IC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbn1cbi5teC1zY3JvbGxjb250YWluZXItcHVzaCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1zaHJpbmsgPiAubXgtc2Nyb2xsY29udGFpbmVyLXRvZ2dsZWFibGUge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG4ubXgtc2Nyb2xsY29udGFpbmVyLXB1c2gubXgtc2Nyb2xsY29udGFpbmVyLW9wZW4gPiBkaXYsXG4ubXgtc2Nyb2xsY29udGFpbmVyLXNsaWRlLm14LXNjcm9sbGNvbnRhaW5lci1vcGVuID4gZGl2IHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5teC1zY3JvbGxjb250YWluZXItcHVzaC5teC1zY3JvbGxjb250YWluZXItb3BlbiA+IC5teC1zY3JvbGxjb250YWluZXItdG9nZ2xlYWJsZSxcbi5teC1zY3JvbGxjb250YWluZXItc2xpZGUubXgtc2Nyb2xsY29udGFpbmVyLW9wZW4gPiAubXgtc2Nyb2xsY29udGFpbmVyLXRvZ2dsZWFibGUge1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuIiwiLm14LW5hdmJhci1pdGVtIGltZyxcbi5teC1uYXZiYXItc3ViaXRlbSBpbWcge1xuICAgIGhlaWdodDogMTZweDtcbn1cblxuIiwiLm14LW5hdmlnYXRpb250cmVlIC5uYXZiYXItaW5uZXIge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xufVxuLm14LW5hdmlnYXRpb250cmVlIHVsIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuLm14LW5hdmlnYXRpb250cmVlIHVsIGxpIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RmZTZlYTtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSBsaTpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG4ubXgtbmF2aWdhdGlvbnRyZWUgYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgY29sb3I6ICM3Nzc7XG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgI2ZmZjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4ubXgtbmF2aWdhdGlvbnRyZWUgYS5hY3RpdmUge1xuICAgIGNvbG9yOiAjRkZGO1xuICAgIHRleHQtc2hhZG93OiBub25lO1xuICAgIGJhY2tncm91bmQ6ICMzNDk4REI7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuLm14LW5hdmlnYXRpb250cmVlIC5teC1uYXZpZ2F0aW9udHJlZS1jb2xsYXBzZWQgdWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4ubXgtbmF2aWdhdGlvbnRyZWUgdWwge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xufVxuLm14LW5hdmlnYXRpb250cmVlIHVsIGxpIHtcbiAgICBwYWRkaW5nOiA1cHggMDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCBsaSB7XG4gICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICBwYWRkaW5nOiA1cHggMDtcbn1cbltkaXI9XCJydGxcIl0gLm14LW5hdmlnYXRpb250cmVlIHVsIGxpIHVsIGxpIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCBsaSB1bCBsaSB7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIHBhZGRpbmctdG9wOiAzcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDNweDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCBsaSB1bCBsaSBpbWcge1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4iLCIubXgtbGluayBpbWcsXG4ubXgtYnV0dG9uIGltZyB7XG4gICAgaGVpZ2h0OiAxNnB4O1xufVxuLm14LWxpbmsge1xuICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbiIsIi5teC1ncm91cGJveCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi5teC1ncm91cGJveC1oZWFkZXIge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gICAgY29sb3I6ICNlZWU7XG4gICAgYmFja2dyb3VuZDogIzMzMztcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4IDRweCAwIDA7XG59XG4ubXgtZ3JvdXBib3gtY29sbGFwc2libGUgPiAubXgtZ3JvdXBib3gtaGVhZGVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubXgtZ3JvdXBib3guY29sbGFwc2VkID4gLm14LWdyb3VwYm94LWhlYWRlciB7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLm14LWdyb3VwYm94LWJvZHkge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5teC1ncm91cGJveC5jb2xsYXBzZWQgPiAubXgtZ3JvdXBib3gtYm9keSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbi5teC1ncm91cGJveC1oZWFkZXIgKyAubXgtZ3JvdXBib3gtYm9keSB7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgNHB4IDRweDtcbn1cbi5teC1ncm91cGJveC1jb2xsYXBzZS1pY29uIHtcbiAgICBmbG9hdDogcmlnaHQ7XG59XG5bZGlyPVwicnRsXCJdIC5teC1ncm91cGJveC1jb2xsYXBzZS1pY29uIHtcbiAgICBmbG9hdDogbGVmdDtcbn1cbiIsIi5teC1kYXRhdmlldyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLm14LWRhdGF2aWV3LWNvbnRyb2xzIHtcbiAgICBwYWRkaW5nOiAxOXB4IDIwcHggMTJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWVlO1xufVxuXG4ubXgtZGF0YXZpZXctY29udHJvbHMgLm14LWJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG4ubXgtZGF0YXZpZXctY29udHJvbHMgLm14LWJ1dHRvbiArIC5teC1idXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiAwLjNlbTtcbn1cblxuLm14LWRhdGF2aWV3LW1lc3NhZ2Uge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbn1cbi5teC1kYXRhdmlldy1tZXNzYWdlID4gZGl2IHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG4ubXgtZGF0YXZpZXctbWVzc2FnZSA+IGRpdiA+IHAge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi8qIFRvcC1sZXZlbCBkYXRhIHZpZXcgaW4gd2luZG93IGlzIGEgc3BlY2lhbCBjYXNlLCBoYW5kbGUgaXQgYXMgc3VjaC4gKi9cbi5teC13aW5kb3ctdmlldyAubXgtd2luZG93LWJvZHkge1xuICAgIHBhZGRpbmc6IDA7XG59XG4ubXgtd2luZG93LXZpZXcgLm14LXdpbmRvdy1ib2R5ID4gLm14LWRhdGF2aWV3ID4gLm14LWRhdGF2aWV3LWNvbnRlbnQsXG4ubXgtd2luZG93LXZpZXcgLm14LXdpbmRvdy1ib2R5ID4gLm14LXBsYWNlaG9sZGVyID4gLm14LWRhdGF2aWV3ID4gLm14LWRhdGF2aWV3LWNvbnRlbnQge1xuICAgIHBhZGRpbmc6IDE1cHg7XG59XG4ubXgtd2luZG93LXZpZXcgLm14LXdpbmRvdy1ib2R5ID4gLm14LWRhdGF2aWV3ID4gLm14LWRhdGF2aWV3LWNvbnRyb2xzLFxuLm14LXdpbmRvdy12aWV3IC5teC13aW5kb3ctYm9keSA+IC5teC1wbGFjZWhvbGRlciA+IC5teC1kYXRhdmlldyA+IC5teC1kYXRhdmlldy1jb250cm9scyB7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4IDBweCA2cHggNnB4O1xufVxuIiwiLm14LWRpYWxvZyB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogNTAwcHg7XG4gICAgLyogSWYgdGhlIG1hcmdpbiBpcyBzZXQgdG8gYXV0bywgSUU5IHJlcG9ydHMgdGhlIGNhbGN1bGF0ZWQgdmFsdWUgb2YgdGhlXG4gICAgICogbWFyZ2luIGFzIHRoZSBhY3R1YWwgdmFsdWUuIE90aGVyIGJyb3dzZXJzIHdpbGwganVzdCByZXBvcnQgMC4gRWxpbWluYXRlXG4gICAgICogdGhpcyBkaWZmZXJlbmNlIGJ5IHNldHRpbmcgbWFyZ2luIHRvIDAgZm9yIGV2ZXJ5IGJyb3dzZXIuICovXG4gICAgbWFyZ2luOiAwO1xufVxuLm14LWRpYWxvZy1oZWFkZXIge1xuICAgIGN1cnNvcjogbW92ZTtcbn1cbi5teC1kaWFsb2ctYm9keSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG59XG4iLCIubXgtd2luZG93IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiA2MDBweDtcbiAgICAvKiBJZiB0aGUgbWFyZ2luIGlzIHNldCB0byBhdXRvLCBJRTkgcmVwb3J0cyB0aGUgY2FsY3VsYXRlZCB2YWx1ZSBvZiB0aGVcbiAgICAgKiBtYXJnaW4gYXMgdGhlIGFjdHVhbCB2YWx1ZS4gT3RoZXIgYnJvd3NlcnMgd2lsbCBqdXN0IHJlcG9ydCAwLiBFbGltaW5hdGVcbiAgICAgKiB0aGlzIGRpZmZlcmVuY2UgYnkgc2V0dGluZyBtYXJnaW4gdG8gMCBmb3IgZXZlcnkgYnJvd3Nlci4gKi9cbiAgICBtYXJnaW46IDA7XG59XG4ubXgtd2luZG93LWNvbnRlbnQge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLm14LXdpbmRvdy1hY3RpdmUgLm14LXdpbmRvdy1oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4IDZweCAwIDA7XG59XG4ubXgtd2luZG93LWhlYWRlciB7XG4gICAgY3Vyc29yOiBtb3ZlO1xufVxuLm14LXdpbmRvdy1ib2R5IHtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cbiIsIi5teC1kcm9wZG93bi1saXN0ICoge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1kcm9wZG93bi1saXN0IGltZyB7XG4gICAgd2lkdGg6IDM1cHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1kcm9wZG93bi1saXN0IGltZyB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4ubXgtZHJvcGRvd24tbGlzdCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuLm14LWRyb3Bkb3duLWxpc3QgPiBsaSB7XG4gICAgcGFkZGluZzogNXB4IDEwcHggMTBweDtcbiAgICBib3JkZXI6IDFweCAjZGRkO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLm14LWRyb3Bkb3duLWxpc3QgPiBsaTpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4O1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7XG59XG4ubXgtZHJvcGRvd24tbGlzdCA+IGxpOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xufVxuLm14LWRyb3Bkb3duLWxpc3Qtc3RyaXBlZCA+IGxpOm50aC1jaGlsZCgybisxKSB7XG4gICAgYmFja2dyb3VuZDogI2Y5ZjlmOTtcbn1cbi5teC1kcm9wZG93bi1saXN0ID4gbGk6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7XG59XG4iLCIubXgtaGVhZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogOXB4O1xuICAgIGJhY2tncm91bmQ6ICMzMzM7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLm14LWhlYWRlci1jZW50ZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBjb2xvcjogI2VlZTtcbiAgICBsaW5lLWhlaWdodDogMzBweDsgLyogaGVpZ2h0IG9mIGJ1dHRvbnMgKi9cbn1cbmJvZHlbZGlyPVwibHRyXCJdIC5teC1oZWFkZXItbGVmdCxcbmJvZHlbZGlyPVwicnRsXCJdIC5teC1oZWFkZXItcmlnaHQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDlweDtcbiAgICBsZWZ0OiA5cHg7XG59XG5ib2R5W2Rpcj1cImx0clwiXSAubXgtaGVhZGVyLXJpZ2h0LFxuYm9keVtkaXI9XCJydGxcIl0gLm14LWhlYWRlci1sZWZ0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA5cHg7XG4gICAgcmlnaHQ6IDlweDtcbn1cbiIsIi5teC10aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIG1hcmdpbi10b3A6IDBweDtcbn1cbiIsIi5teC1saXN0dmlldyB7XG4gICAgcGFkZGluZzogOHB4O1xufVxuLm14LWxpc3R2aWV3ID4gdWwge1xuICAgIHBhZGRpbmc6IDBweDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuLm14LWxpc3R2aWV3ID4gdWwgPiBsaSB7XG4gICAgcGFkZGluZzogNXB4IDEwcHggMTBweDtcbiAgICBib3JkZXI6IDFweCAjZGRkO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG4ubXgtbGlzdHZpZXcgPiB1bCA+IGxpOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweDtcbn1cbi5teC1saXN0dmlldyA+IHVsID4gbGk6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4O1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7XG59XG4ubXgtbGlzdHZpZXcgbGk6bnRoLWNoaWxkKDJuKzEpIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjlmOWY5O1xufVxuLm14LWxpc3R2aWV3IGxpOm50aC1jaGlsZCgybisxKTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2Y1ZjVmNTtcbn1cbi5teC1saXN0dmlldyA+IHVsID4gbGkuc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQ6ICNlZWU7XG59XG4ubXgtbGlzdHZpZXctY2xpY2thYmxlIHVsICoge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1saXN0dmlldy1lbXB0eSB7XG4gICAgY29sb3I6ICM5OTk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLm14LWxpc3R2aWV3IC5teC1saXN0dmlldy1sb2FkaW5nIHtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5teC1saXN0dmlldy1zZWFyY2hiYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi5teC1saXN0dmlldy1zZWFyY2hiYXIgPiBpbnB1dCB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4ubXgtbGlzdHZpZXctc2VhcmNoYmFyID4gYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xufVxuW2Rpcj1cInJ0bFwiXSAubXgtbGlzdHZpZXctc2VhcmNoYmFyID4gYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbi5teC1saXN0dmlldy1zZWxlY3Rpb24ge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBwYWRkaW5nOiAwIDE1cHggMCA1cHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1saXN0dmlldy1zZWxlY3Rpb24ge1xuICAgIHBhZGRpbmc6IDAgNXB4IDAgMTVweDtcbn1cbi5teC1saXN0dmlldy1zZWxlY3RhYmxlIC5teC1saXN0dmlldy1jb250ZW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4ubXgtbGlzdHZpZXcgLnNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZGVmO1xufVxuLm14LWxpc3R2aWV3IC5teC10YWJsZSB0aCxcbi5teC1saXN0dmlldyAubXgtdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDJweDtcbn1cbiIsIi5teC1sb2dpbiAuZm9ybS1jb250cm9sIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuIiwiLm14LW1lbnViYXIge1xuICAgIHBhZGRpbmc6IDhweDtcbn1cbi5teC1tZW51YmFyLWljb24ge1xuICAgIGhlaWdodDogMTZweDtcbn1cbi5teC1tZW51YmFyLW1vcmUtaWNvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDTUFBQUFqQ0FZQUFBQWUyYk5aQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFLTkpSRUZVZU5waS9QLy9QOE5nQVV3TWd3aU1PbWJVTWFPT0dYWE1xR05HSFRQWUhNT0NUZkRzMmJNZVFLb09pSTFCWENCdU1qWTIza0ZyZFl6b1RRaWdSbThndFFXTEcwT0JCcXlobFRwYzBkU09JeFRyYUt3T3EyUFVjV2hXcDdFNnJJNjVpVVB6VFJxcncrcVlHaHlhbTJpc0R0TXh3RVMxQ1VnRkFmRnhxQkNJRGtKUGJOUldoelUzalJaNm80NFpkY3lvWTBZZE0rcVlVY2NNVXNjQUJCZ0FVWHBFakUvQnMvSUFBQUFBU1VWT1JLNUNZSUk9KSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDE2cHggMTZweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuIiwiLm14LW5hdmlnYXRpb25saXN0IHtcbiAgICBwYWRkaW5nOiA4cHg7XG59XG4ubXgtbmF2aWdhdGlvbmxpc3QgbGk6aG92ZXIsXG4ubXgtbmF2aWdhdGlvbmxpc3QgbGk6Zm9jdXMsXG4ubXgtbmF2aWdhdGlvbmxpc3QgbGkuYWN0aXZlIHtcbiAgICBjb2xvcjogI0ZGRjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OERCO1xufVxuLm14LW5hdmlnYXRpb25saXN0ICoge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1uYXZpZ2F0aW9ubGlzdCAudGFibGUgdGgsXG4ubXgtbmF2aWdhdGlvbmxpc3QgLnRhYmxlIHRkIHtcbiAgICBwYWRkaW5nOiAycHg7XG59XG4iLCIubXgtcHJvZ3Jlc3Mge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDMwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICB3aWR0aDogMjUwcHg7XG4gICAgbWF4LXdpZHRoOiA5MCU7XG4gICAgYmFja2dyb3VuZDogIzMzMztcbiAgICBvcGFjaXR5OiAwLjg7XG4gICAgei1pbmRleDogNTAwMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgcGFkZGluZzogMjBweCAxNXB4O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBlYXNlLWluLW91dDtcbn1cbi5teC1wcm9ncmVzcy1oaWRkZW4ge1xuICAgIG9wYWNpdHk6IDA7XG59XG4ubXgtcHJvZ3Jlc3MtbWVzc2FnZSB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG59XG4ubXgtcHJvZ3Jlc3MtZW1wdHkgLm14LXByb2dyZXNzLW1lc3NhZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4ubXgtcHJvZ3Jlc3MtaW5kaWNhdG9yIHtcbiAgICB3aWR0aDogNzBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIGJhY2tncm91bmQ6IHVybChkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhSZ0FLQU1RQUFEbzZPb0dCZ1ZwYVduQndjSTZPanF5c3JGSlNVbVJrWkQ4L1AweE1UTTdPenFlbnAxaFlXRjFkWFVoSVNISnljb2VIaDB0TFMxZFhWNmlvcU0vUHoyVmxaVDA5UFRjM04wQkFRSVdGaGRiVzFseGNYSzJ0clVGQlFUTXpNd0FBQUNIL0MwNUZWRk5EUVZCRk1pNHdBd0VBQUFBaCtRUUVEQUFBQUN3QUFBQUFSZ0FLQUFBRms2RG5YUmFHV1plb3JxU0pybkI3cHJBcXY3VjQweDdRL1VCQXpnZjhDV3ZFNGhHV0RBNkx4aEVVeU5OTmYxWHBOWHU1ZHJoZWt0Y0NzNHpMNTVYNVNsYVBNVjRNREg2VnIraFR1d29QMVl2NFJTWnhjNE4zaFh1SGYzRnJVMjBxakZDT0lwQkZraDZVUUphWVB5aGhNWjRzb0RhaVZsczlVMHNyVFZGSXFFOVFxU3FySFVzN09Ub2xNN2NqdVRnNXRyZkFJUUFoK1FRRURBQUFBQ3dBQUFBQUNnQUtBQUFGSktEbkhZV2lGSWZvUVZyclFxTXJhK1RzbG5acjV0ckpvN3dVYXdZVFZRb1VDa29VQWdBaCtRUUVEQUFBQUN3QUFBQUFHUUFLQUFBRldhRG5NY1N5RUpLb3JrZWhLTVdoUGx4dFA2c0thWHdQZVJLYmtNUElIWHBJellFd3RCRnloV1N2c0dqV0ZqbUZsS2VvV3JFcjdWYkJ0RDVYMFcyQllTVWF0MG9QYllqTGVYYkpuNGcwbVJDS2RpSVZCUlFVTVNJaEFDSDVCQVFNQUFBQUxBQUFBQUFvQUFvQUFBV0tvT2NsUXhBTWthaXVETEVzaExUT1I2RW94YUUyV2U4M005R0RReXcrZ2g2SVpzbUVlQ0srYUNZeGt4U3ZIQWFOeWRVY0JsTGZZRWJBRmdtelFwZFpDSVI3Z2RuQ1RGek1GT3Vsd3YyT3IrWjBkaXQ0ZVFwZ2IyTXJaWFJvSzJwNUJRbHZVek1NZEZsYmVUbzhVa0JCUTFoSFFVcGRUaUlrSmdOVVNCNHRFeE1FV3F3VkJSUVVPU0loQUNINUJBUU1BQUFBTEFBQUFBQTNBQW9BQUFXOG9PY2hoaUFZaUtpdXlSQUVRN1RPRExFc2hEU3ZSNkVvaFlQS3NTa2FIVHRQSThOc05wSVBqblQ2U0VJMDJDeGtaT3h1VXF0SWM1eEp6Q1RUTkljeE8yVGZtb1BCYXpUTUJ1VG1ZRVpRVHdrekJYQlpCUUowUlFJekFYbE1BVE1MZmxJTE13cURXQXFHaDRrcmk0eU9LNUNSa3l1VmxncHpoM1lyZUl4N0szMlJnQ3VDbGdVSWgxOHpDWXhsTkpGcmJaWnhIa1JlU0R0TFpFODdVV3BWTzFkd1d5SVlKU2RnU1MwdkEyWkpIalVURXdSczNoVUZGQlJCSWlFQUlma0VCQXdBQUFBc0FBQUFBRVlBQ2dBQUJmQ2c1MTBXaGxtWHFLNklJUWdHc3M3SkVBUkROSzhNc1N3RXlVNTFLQ2dVaFlNSzBHazZBVVBIWmtwMURCdVpyTFl4ZkhDKzRNY1FvaW1iSVNPbnVwTmlVZDhiMlNxaXJXY1NNd2w0ejJITURtYUJHZ2NXYTA0V013WndWQVl6QTNaYUF6TUVmR0FFTXdXQ1pnVVloazBZTXdLTFV3SXpBWkJaQVRNTGxWOExNd3FhWlFxZG5xQXJvcU9sSzZlb3FpdXNyYThyc2JJS2haNklLNHFqalN1UHFKSXJsSzJYSzVteUJSZWViRE1JbzNFMHFIY3pESzE5ZjdLREhreHJVRHRTY0ZZN1dIWmNPMTU4WWp0a2dtZ2lKRXlnR0NJQ2d3c1ljb2JVdURFQUQ4RWVFeVlROEVPd1FnRUtGSktJQ0FFQUlma0VCQXdBQUFBc0R3QUFBRGNBQ2dBQUJicWc1MTBXaGxtWHFLNklJUWdHc3M3SkVBUkROSzhNc1N3RWlRclFLUm9CTzQ5ancydzZrbzJNZE5wSVBqalk3R05rN0haU3JLWjRJMXRGcHVoTVlpYkp1amtNaTlkb21SbkdUY05za0o0T1pnUnZXUVFZYzBVWU13SjRUQUl6QVgxU0FUTUxnbGdMaFlhSUs0cUxqU3VQa0pJcmxKVUxjb1oxSzNlTGVpdDhrSDhyZ1pVRUY0WmZNd2lMWkRTUWFqTU1sWEFlUkY1SU8wdGpUenRSYVZVN1YyOWJJaVFtS0VraUdDNHdaVWsxTndOcjJEMFRFd1FNSWlFQUlma0VCQXdBQUFBc0hnQUFBQ2dBQ2dBQUJZZWc1MTBXaGxtWHFLNklJUWdHc3M3SkVBUkRwQUpkN3dNemtXTkRMRHFDbmtabXlXeU1mTkJPaWxXc2JtU3JDSE9iU1ZpaVBzdk1ZQzBhWmdNdWM0QUI5ekF6UVprb21BWFV5MERiRFYvSjUzVXJkM2dCWDI1aUsyUnpaeXRwZUFNWGJsSXpDSE5YTkhoZEhqeFJRRUZEVmtkQlNseE9JaVFtS0VnaUdDNHdXRWcxTndNSklpRUFJZmtFQkF3QUFBQXNMUUFBQUJrQUNnQUFCVldnNTEwV2hsbVhxSzZJSVFnR29nSmRiUU9yNm14ODc0eTJZQ2ZGNmhrM0NJdlFac2taamowRFpsbkQ1QVJRbm1CS3RhNndXWUdTMmx3OXM0WUxkWmhEWkpFZW1oQ1g4K3lPUHhISmhLcXJNQzR3TWg0aEFDSDVCQVFNQUFBQUxEd0FBQUFLQUFvQUFBVWlvT2RkRm9aWmwrZ0JYZXNDb3l0MzVPeVdkbXZtM2NtanZCUnJCaE9SVENoUkNBQTcpO1xufVxuIiwiLm14LXJlbG9hZC1ub3RpZmljYXRpb24ge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiAxMDAxO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxcmVtO1xuXG4gICAgYm9yZGVyOiAxcHggc29saWQgaHNsKDIwMCwgOTYlLCA0MSUpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgyMDAsIDk2JSwgNDQlKTtcblxuICAgIGJveC1zaGFkb3c6IDAgNXB4IDIwcHggcmdiYSgxLCAzNywgNTUsIDAuMTYpO1xuICAgIGNvbG9yOiB3aGl0ZTtcblxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDE0cHg7XG59XG4iLCIubXgtcmVzaXplci1uLFxuLm14LXJlc2l6ZXItcyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMHB4O1xufVxuLm14LXJlc2l6ZXItbiB7XG4gICAgdG9wOiAtNXB4O1xuICAgIGN1cnNvcjogbi1yZXNpemU7XG59XG4ubXgtcmVzaXplci1zIHtcbiAgICBib3R0b206IC01cHg7XG4gICAgY3Vyc29yOiBzLXJlc2l6ZTtcbn1cblxuLm14LXJlc2l6ZXItZSxcbi5teC1yZXNpemVyLXcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDEwcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuLm14LXJlc2l6ZXItZSB7XG4gICAgcmlnaHQ6IC01cHg7XG4gICAgY3Vyc29yOiBlLXJlc2l6ZTtcbn1cbi5teC1yZXNpemVyLXcge1xuICAgIGxlZnQ6IC01cHg7XG4gICAgY3Vyc29yOiB3LXJlc2l6ZTtcbn1cblxuLm14LXJlc2l6ZXItbncsXG4ubXgtcmVzaXplci1uZSxcbi5teC1yZXNpemVyLXN3LFxuLm14LXJlc2l6ZXItc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG59XG5cbi5teC1yZXNpemVyLW53LFxuLm14LXJlc2l6ZXItbmUge1xuICAgIHRvcDogLTVweDtcbn1cbi5teC1yZXNpemVyLXN3LFxuLm14LXJlc2l6ZXItc2Uge1xuICAgIGJvdHRvbTogLTVweDtcbn1cbi5teC1yZXNpemVyLW53LFxuLm14LXJlc2l6ZXItc3cge1xuICAgIGxlZnQ6IC01cHg7XG59XG4ubXgtcmVzaXplci1uZSxcbi5teC1yZXNpemVyLXNlIHtcbiAgICByaWdodDogLTVweDtcbn1cblxuLm14LXJlc2l6ZXItbncge1xuICAgIGN1cnNvcjogbnctcmVzaXplO1xufVxuLm14LXJlc2l6ZXItbmUge1xuICAgIGN1cnNvcjogbmUtcmVzaXplO1xufVxuLm14LXJlc2l6ZXItc3cge1xuICAgIGN1cnNvcjogc3ctcmVzaXplO1xufVxuLm14LXJlc2l6ZXItc2Uge1xuICAgIGN1cnNvcjogc2UtcmVzaXplO1xufVxuIiwiLm14LXRleHQge1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtbGluZTtcbn1cbiIsIi5teC10ZXh0YXJlYSB0ZXh0YXJlYSB7XG4gICAgcmVzaXplOiBub25lO1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbn1cbi5teC10ZXh0YXJlYSAubXgtdGV4dGFyZWEtbm9yZXNpemUge1xuICAgIGhlaWdodDogYXV0bztcbiAgICByZXNpemU6IHZlcnRpY2FsO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG59XG4ubXgtdGV4dGFyZWEgLm14LXRleHRhcmVhLWNvdW50ZXIge1xuICAgIGZvbnQtc2l6ZTogc21hbGxlcjtcbn1cbi5teC10ZXh0YXJlYSAuZm9ybS1jb250cm9sLXN0YXRpYyB7XG4gICAgd2hpdGUtc3BhY2U6IHByZS1saW5lO1xufVxuIiwiLm14LXVuZGVybGF5IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB6LWluZGV4OiAxMDAwO1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xufVxuIiwiLm14LWltYWdlem9vbSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTk5O1xufVxuLm14LWltYWdlem9vbS13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLm14LWltYWdlem9vbS1pbWFnZSB7XG4gICAgbWF4LXdpZHRoOiBub25lO1xufVxuIiwiLm14LWRyb3Bkb3duIGxpIHtcbiAgICBwYWRkaW5nOiAzcHggMjBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubXgtZHJvcGRvd24gbGFiZWwge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubXgtZHJvcGRvd24gaW5wdXQge1xuICAgIG1hcmdpbjogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1kcm9wZG93biAuc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQ6ICNmOGY4Zjg7XG59XG4ubXgtc2VsZWN0Ym94IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLm14LXNlbGVjdGJveC1jYXJldC13cmFwcGVyIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuIiwiLm14LWRlbW91c2Vyc3dpdGNoZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogMzYwcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHotaW5kZXg6IDIwMDAwO1xuICAgIGJveC1zaGFkb3c6IC0xcHggMCA1cHggcmdiYSgyOCw1OSw4NiwuMik7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlci1jb250ZW50IHtcbiAgICBwYWRkaW5nOiA4MHB4IDQwcHggMjBweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgY29sb3I6ICMzODdlYTI7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIGJhY2tncm91bmQ6IHVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU9nQUFBQmdDQVlBQUFBWFNqN05BQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlScFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1TXkxak1ERXhJRFkyTGpFME5UWTJNU3dnTWpBeE1pOHdNaTh3TmkweE5EbzFOam95TnlBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVOVE5pQW9UV0ZqYVc1MGIzTm9LU0lnZUcxd1RVMDZTVzV6ZEdGdVkyVkpSRDBpZUcxd0xtbHBaRG8wTXprd09UUkVNRFEyTkVZeE1VVTBRVFE0TVVJNU5UTkdNVVEzUXpFNU55SWdlRzF3VFUwNlJHOWpkVzFsYm5SSlJEMGllRzF3TG1ScFpEbzBNemt3T1RSRU1UUTJORVl4TVVVMFFUUTRNVUk1TlROR01VUTNRekU1TnlJK0lEeDRiWEJOVFRwRVpYSnBkbVZrUm5KdmJTQnpkRkpsWmpwcGJuTjBZVzVqWlVsRVBTSjRiWEF1YVdsa09qYzBSRU15TVVaR05EWTBRekV4UlRSQk5EZ3hRamsxTTBZeFJEZERNVGszSWlCemRGSmxaanBrYjJOMWJXVnVkRWxFUFNKNGJYQXVaR2xrT2pjMFJFTXlNakF3TkRZMFF6RXhSVFJCTkRneFFqazFNMFl4UkRkRE1UazNJaTgrSUR3dmNtUm1Pa1JsYzJOeWFYQjBhVzl1UGlBOEwzSmtaanBTUkVZK0lEd3ZlRHA0YlhCdFpYUmhQaUE4UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrZzF0Umx3QUFFRkZKUkVGVWVOcnNuWWwzVmNVZHgyZHU4ckpESUpDd0NnalZhclZvc1ZYYzZqbldubnBJUWxKV2w2T0NyUFlma2gxY2l1d2xMRm81dFQzbFZKUlZFVVVFUlFRSlM0Q1FRRWpDUzk3MCs1Mlo5M0lUREd1Uzk4ajcvVGp6N3IyL2U5OTlaTzU4N205K003K1owY05YYnNxS2FUTmVLVlZvbEttT0tiWDM5RXNWS2wxRVY2MklLSzN3QjV1SGNZZy8zM3lDNHgybS9FMmpSRVNTTE1HSmw4dXZZcnNIaWR1aFNBK21Vd2FZaWhsUk0zSEdPdXp1Wlg0Zy9SbHBpdDY4TkZ1S2gwalNEWWd4emxBTVc3V3BDQmIwNlJqTmlEWUh6azZ2UEpaMm1iRnArYStKTEN4b0hyYm5vVnB0eW1lZGxXSWlrblJBS1VOWFZRMERvT01BcUlKMlg4MzB5cFBwQitteVFsL2xIWTNES0xaYlRmbnNMNldvaUNRZFVNcmdWVlZqQWVoSWFHTXhaWGFlbi83WGMybVpNWnVYVm1MenFGSTJmL1lCMm85TTJleW9GQm1ScEFKS0tWbTk4UkZvUndCUUZzZ2RnTFErVFNFZEIwQkxzWnNCUUd1d3Y4NlV6VGtqeFVZa3FZQlNpbGR2SEFkQWgyRzNDUloxUisyMFNRM3BDZW1TZ2RpVUFkQlJBTFFGKzl1UWRnTlVhZVVWU1I2Z2xBR3IvL0U0Tm9NQWFBTjgweDExMHlZMXBXMUdiVmxDdi9SMy92QVE5amVac3JsWHBBaUpkS2NFTnpqUDdoZFU3VlErMGhOOTFxeVBwR3RHd2Yrc3dvYmRNWmVRSGtENm05Nnk2SDRwUWlKSnM2RGVpa1pnUVIrSEJTMUNsYmZXYVBQWjVhbFRXdFBYa2k0dXNGVmVaUjV3Q3ZhZm1vOU42YnlyVXB4RWVoeFFTdjgxRzNJQUtDQTFoUUQwSFBaM1hVbGpTQjJvaTU3QjVua0FpbHFJdVlEOWpZRDB1QlFwa1I0SGxGSzRaa01lQUIwUFFQTUI2TmxXWlhZM1Q1MGFTM05JaXdIb2l3QjBqSEw5TWJ1UVBoRnJLdExqZ0ZMZ2crWUQwUEdnTWcrQW5zRjJUelROSWJXWnVIVWhxcnpxOS82dzFqWWdsYzcvVVlxWFNJOENTaWxZdTQ0VzlDa0F5bXJ2S2ZpbmUxdW5URE1DNmNJaDJQd0o2VmNBbFBteEY5YjFYMmJDL0NZcFppSTlCaWdsRDVDMnVyamRiQUJhRGRVK2dUUnNUWTJ6cHRxMitQNFRrSDRqT1NQU1k0QlNzdGV1TFFDZ1R3UFFMQnhXd3ovZFo2Wk1GMGd0cEF0S3NIa0JnTWE3WVk0QTJnL05oTGRxSlhkRWVnUlFTb1NRYXNQV3pBZ0FQVVZMQ2toamtxMCtjejljOEFRMlR5TDFVeTVzY2p2U0RvRGFLcmtqMHUyQVVqTFdyV0cvNEZNQWxPTW56K0NPZTh6a2x3VFNOa2laTHhNQTZDTmV4UzZaandEcEVja2RrVzRIMUVPYUQwQ2Z3bTRPN3NqeGs0UlVyRVE3VU4rK2p5OHlwSHU5Nmp1a2p3SHFCY2tka1c0RjFONW8zV3FHQTQ3SEhmT1VEUTgwdTgza2x3WFNhMEY5RnBzL0lQVlZkcnlwK3N4WGU2VzFWNlQ3QUUxQXFnMzlybndmWGJNTGtNb1l5bXNoemNYbUw4cU9ON1hDb1B2L0lPMEZxT0llaUhRUG9QYUc2MWZsT1F0aGFDSHE4QXM3emFSWG1pV3JmeEhVVWI3YUcyL3Q1Y0NFYmVLZmluUWJvQjdTSE44WDJCKy93SEdrbndOU0daclZPYWkveGVZeHBGRmU5Wk5peU9DRXR5UzJWd0R0bnE1THZmNkRMRnZvdE9HQVovaFhCcEMrZWtteS9JYitLV0V0OGFyRFNQOEdxS2NsZHdUUTdvQTBFNy9BUWM2RGZUL2dia0I2WHJMOXVwQnE1VUlHQ1dxaGNrSDRqRVQ2TDBDdGtSd1NRTHYrUnphczVOdytuRDRscG9MWUY2Ynl0V3JKK2h1Q0NqZEJ2YURhZ3ZBOXFCcWd6aGRRQmRDdWh2VHY3S2dmQVVENWd3Y0I2VkhKL3BzQ2xZMXR6M2tmMVQ0eWIxRzNBMVNaczFjQTdWSkl4d0xRa2Q0Z0hIV2d2aTd4dTdjRXFuNHNaRkhwbzM0S1VLVXhTUUR0b2gvYytONFFWMjJ6djN0S2FmV0ZxWGhkQWhwdUd0UUZCUFdQb2FvdnM1S0EvZy9waUNtZEx5ODhBZlNPSVdYd09BTWFzZ0RvUmV6dk1oVnZTRi9wcllIS1lJZW5rZTREb0lPOG1sWGVuVGo3bFNtZEp3RWlBdWlkUVBwdXZ2V3JORnNxRGNQY2RnTFNlbmtrdDVHWFd4YzhZMEZWeXJzUG1uM09YQXhxRjBDVnJpMEI5TFlocFFYbDhncTBBQzJLWTBvclpzak03YmNQS2h2aXhtSnZqRmZSZFRpbzJMMGxFNW9Kb0xmOW42aDZoMzJsdy8xVUlkOEMwaC9rMGR3SnFBdHBTVG5wK0VNaExhdS91NUVPbU5LNUVwZ3ZnTjR5cEhqekcxZEYwK29rOXZlYmlUT2w4ZWpPUUdXZ0EwZk9qTURSQ0srK0NwLzFBTFpmbXJLNUp5U1hCTkJiZ0hURllNVVJIbHBGQUdpZHJacE5uTmtvajZrcllGM0V5Q1NtKzFYaWtXdXVYTWVsRmZlYnNqbmlxd3FnTndWcEhnQmw1RkYvKzdaWFpvK1orS2FFQjNZZHFNVUE5RkZ2VmUveGFnNXhvMXZ4RlhTSFpKbEZBZlQ2LzZsTkt6SUJKZ3ZSRU8rWEhnU2tFbm5VMWZtOFpUR0h1VDNTd1ZkbEZmZ1FmVldrbzZaOHRyZ1pBbWhub0M1SDRURWp2RjlhYmYzUzhsa3Q4dGk2SEZUT216UlcyVVdoOUppMktqQUhrdXR2bFdzSlBvYThGMWdGMEk2UUxodGlDNDlXV1FDMHdmcWw1YlBFWCtvMldKZjBBNkQwVlVjck8zK1NqcDlxeFA1M09FZGdmMENOUmw2VUFtZ0MwbHlVRTFyVFltWDc5c3dCVkwya0JiSzc4MzN6RXVTMy9vMXlBOGtkcks2NHdFZlZkRGtZQzN6WVRKd3BMOHgwQnJTdHdDeWxYM3FQTHlYSFVWNitObVhpSS9WUTNoZmg4MEZrL1JoblhST1dsUS9qRkk2UFlJOE5UVCtiaWhreXIxSTZBdW9MQ254U3d5cFlnREp5R2Z0N1Rka2NDUkhzNlJxTjBteGdZdklOVEFucjJvejlZOHExQ2g4MUZXK2NreHhMSTBCOTFhdkErNlVEVUNyNHR2NEdrQjZUeDVrTVdKZHJWd1cyalV0czBCc1JzcTY4NGhMMFA5a2Fqd08zeGxTK0ppTnVlak9nb1FZTnh2SEcrL0k0Ync4NzNHVnR6bVErazZvVnVUNFdlTFNIZFdBb01JSWZET1Evb1dMQno2d09RMWN0c3o3MlVrQWRwSXM1bFFvYk1qaEZTQ09BWlFpYlZLdFNCdGgzKzNyTE9zcUhHN29KMFdKQi9BcldnR284cktkd0xWKzBaMlErNVY0Q3FJYzBSN2wrdkVIZUVUcUtsL1VoVXpwWEdwQlM3Vmx0ZkkvRERJY0QwT0hLTnZqcFVhR3pjVDgyNXNNUUFhcytBeDBEL1dzQ3BldlNiWm5MWGdGb0NOUnd3RDJiL3I4QXBIV0NSUW8vc3cwcmFVcUxMYlJLRHdXTWpNY2UxdWJISnFCbHErQlZEMm9OZEJmd3hRc1pTbk1GZ3d0WHBrNXBFa0R2Q2tnWGNRVEhRNjRCaVc5aXc3NjY3MDNwUEdtWXVGdWU0Zm9QTXF6dmFxZHIxU1dBa2RYaVlvRFp6NE5xb1NYWkdSN2tER01IcWRkQ1YwOUxpLzJMZ2RGczNlZHhQYTY2Y25aNjVWMFJYUEhraXUyWitMdnp0VkY5ZWgyZ2lZZThkWkdiUmRDOWZpOHFOaUNWenBQdW1MdFlNdGF0eWZLZ011Qy9DREFXQWRBaXhhM1JPUTVlRHpDM1JzY3RiOXdlTjBGM09YQWhqQTJFRnNlMHZFM2FUcTZ1bTNDdVVSdE4vemVLL1didGZPU3IwTVZDOTJvKzlPcUw3ZnA2SDM1L1c0RC9VN1pPL0xvT3NNMENaTmhxNkRsQ1MwZXd6Y1YxT2REeC81dURxN0d2OHFETGc0N1Yvd0p0MjFPMG5iK3gxd0xxSVVYVnlUeWc3QUs2ZHNRR1Y3cUdOWjB2SGVtOVRQcXNXYy9DM1E5UUZhTFFzeFpWQ1BnNHdWcGZIUGZWZGtFdmxVRm9BMTkxMWlHSTQ1K0JyVmJHd1ZZSnRQVzFzRnRkK0Y2MEJTRkE3ZFpDMW5hWDBIVWQ3aGZTYVJzdGh4ZUlVZlg2K2NXZjI3UEdmeG9kUDhKV3U3MlkxYnR6aVd2dE9XTkxmZnc2NC8vRmRIdy9acjhUaTkveG11KzA3Y2V2aVlYMEhmZGpmcjhWKzYzdDlQRy9NUDZ5TVNyeFZ6TmxYL2JXMU9wb1JiOVVMYmwxMTE3YnlYSGlDWVpmWnAzcE81N3JvTHZ6MTg2MUtuTVQxNFIxNWdiWG1jN3VwYS96M2M3T2RhSnZhOFc5d2JYdGZGQjFuU3F1dWdrTG1nTmRRVUNMcFRRdFZXN2dMRyt1dDFxd2FMQnVSc1BhcVlqZFY1cGZoU1hVR2FGNzBaSUhIUUJsOGJ3YUFyUlZXOHRMQkRRdE5NTWpvOVpTRzFwc1o3bHhkYU5tNzROUnNPaWFzZWFYdlRXM3hUa3pMVjZ2elFYN0FTbG5zMmZrQzZ0RXo2ck14dStSQjBkVU5FZGFldE5IbW55NmF5UkltMGNUemF0QitsVFppQmI3a3VNc2VNK3BTRk94bEZzUkFUUjFRTjJQengzS2RZNjdWY0V6bThhcHpPWnNLUTRpS2RlTzBwc2JpVzc0eDMrNGdGVmVocVRSNTRDUFlEalc4YmlaOEpaMHlZZ0lvQ2tDS1dkbzU0aU1JYjQxb2hicGEwQjZVWXFIaUFDYU9xQnlYbDVhMC9pYW5Cd1EvaTFBbGVCN0VRRTBkVUI5bXpHOUkrTWVLOUozaXZQeFNMVlhSQUJOR1VnNTN2UkJaVVBOckxEdjlLQ3NjQzBpZ0tZV3FFT1ZuWXZIOXAxU3pucFFaUTRlRVFFMGhVQmxueWtqa2ZLOGY4b1pBZzREVkJsb0xDS0FwZ2lrakxwNlNDVkNCcmthbS9vZTZVZUFLbE5RaWdpZ0tRSXFBN0RaZnpyRXEyaEZqOUNxQWxRSndoY1JRRk1FMUJMdm41WjRGY2Nqc3NYM3BMVDRpZ2lncVFNcUc1TFlMVFBRcXk1NVVFOExxQ0lDYU9xQVN0K1U4K3dNOEtwNlgvVTlKYUNLQ0tDcEErcG83NThXdFZsVWZkaUJPbDh5VzBRQVRSRlE2WjhPZGFEcWVOV1hyYjdWQUZVYWswUUUwTlFCVlE4SlZYMjVZdmdQeXFqanBuUytEQllYRVVCVEE5UUZJNzFGZFkxSmhxdUhxeCtaQUtwTTBpd2lnS1lJcUlSMEJBQ056K1JBSzNxQ3kvbVowbmtOa2tNaUFtZ3FaUHpXQlFSMGxFb0U1TnNaenhpTXozVTNhd0NyWkpLSUFKb0NvREl5NlY2L2JrbGNMbmxRVHdKVThWTUZVSkhrZzdxUXNiN3NvcUZsalhmUlJIMzE5eWRUT3ZleTVKSUFLcElhc0RMZ1liaUhWZmx1bXZOSXg3ajZseW1iSzkwMEFxaElDb0JhcU5xVzdYTmliSEErcDJNNUFWREZxZ3FnSXNrSGRaRmZ4Vm9OQnFBRFEyZHFQYXpWcG15T2ROVUlvQ0pKZjJCYkZ0RS92Y2Y1cWJyQXE5bVFkTnI3cStkTTJXeDVxQUtvU1BKaFhVdy9sZjJxZzBKYUxtMVFEVXQ3MHBUUGxxbERCVkNSRkFBMTExdFZWSC8xQU8rclVoajRjQkk2d0RwTC9GVUJWQ1Q1c0M3aFVvdkR1SDZtY3NzdXFsQ3cvaWttd0NycnBBcWdJa2wvdUp1WERGUnVPWG5DV2hBNjAyQmhOWW9ydnRXWmlXOUtaZ21nSXNtRmRTbGg5ZU5VN2NLMjhXb3cxNkxrZEtKbkZFTU1KODZVeUNVQlZDUzVzQzRyc3JBYU93U3VNTFNJTGdNZ3p1SDRETTZkTlJVenJraHVDYUFpeVN3QW01YWg2cXZaQ2x5c3dwRkxiWTFNTlRobUVQOTVVL0dHOUxVS29DTEpnM1U1NDRFQnF5N3gxalUzQWF4RDlxSUg5anlPYWszbDYxSWRGa0JGa2xZNHFsYjBkVmJWZHQyRSsxcUphOHdCcXhramZJSEpWTDRtRTNnTG9DTEpnZlVkcnNaTzMzV0FiUlZPaEJ3bS9GY1VwS0FlMk5aNlM0dXR2bXdtdlNLWko0Q0s5SGpCMmZndWdlM25yU3ZCTFFHZ3JwbXA3YXFvQTlWYTJqb2dYR2Ntdjl3b3VTZUFpdlE0c08vQmxBWjlBV2gvSFBiMzhCWjBxQlpUb2haV1oyWHJzVjhQZllPWk1sMkcwQW1nSWoxYXVEYXNqSVJnN1FjUTZkUG1ocXJGWVgvMkNtR0ZEV1pJNHFWQTZVc0VOenAxYWt3QUZSSHBxUUszL29Nc2ZIS2NLMU5mR3pSaFZKODRySUcvTG5EZ21zQUZValJrdUxWdkdqS01qWUpxZ0w2eGJ0cmtxQUFxSXRMZGhYRGRhbktaajcwK2dRdEp4RmIzSWJpQkJ6ZkRYd3RBUGNCVzN4SzRlWWFiQXFPNWJmUkFOMnUzNmx3ejlNMm5YNnE0SzYzdytCWGJBd0ZVSkdVbHNuYXRCbkE1QUM0L3d3S3M4Z0VvdDNtQnF5cEhFaGEzUGJpSlNqVDFnWnZiQ2RCcXprVWNoWTdIVVczWGVOVlJmNzVGRzgxdUl1T09OZThZWmZVYjMydnRjTytXUTYrKzJBNmNoOS9meHAvTTFDWitsZjNNME81ckVmd21WUkZ0VCtsTWZHVGFZNlBwQm1UaW9peXY1M0dXTWpwYjIvTUNxTWhkS29Wck5tUTZVRlV1QU1peFd3ZHVGZ3AzTm81em9NOEtQRnR4Yk9NdzZ3N1ZhdjFMa0p2UTkwSjYzY2tMb1FPZzdWNFV2NlR2N0Q0QWxQc3hBVlNrMTh2UVZWVzBTckJJT3N0YnM0aTNaaEZ2aGVQV2pEWHB3QjNyd0ZvNW83QzErakJFc0pUV0lvWjF4bG5oZG9DMmF0ZngxSUxmdEZ0M2JQVnhxMjJ0dWJmYVVhKy9Da0NiZDg3NFkvVC9BZ3dBMk1pN0hkQWUraWtBQUFBQVNVVk9SSzVDWUlJPSkgdG9wIHJpZ2h0IG5vLXJlcGVhdCAjMWIzMTQ5O1xuICAgIC8qIGJhY2tncm91bmQtYXR0YWNoZW1lbnQgbG9jYWwgaXMgbm90IHN1cHBvcnRlZCBvbiBJRThcbiAgICAgKiB3aGVuIHRoaXMgaXMgcGFydCBvZiBiYWNrZ3JvdW5kIHRoZSBjb21wbGV0ZSBiYWNrZ3JvdW5kIGlzIGlnbm9yZWQgKi9cbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGxvY2FsO1xufVxuLm14LWRlbW91c2Vyc3dpdGNoZXIgdWwge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luLXRvcDogMjVweDtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM0OTYwNzY7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlciBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgY29sb3I6ICMzODdlYTI7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM0OTYwNzY7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlciBoMiB7XG4gICAgbWFyZ2luOiAyMHB4IDAgNXB4O1xuICAgIGNvbG9yOiAjNWJjNGZlO1xuICAgIGZvbnQtc2l6ZTogMjhweDtcbn1cbi5teC1kZW1vdXNlcnN3aXRjaGVyIGgzIHtcbiAgICBtYXJnaW46IDAgMCAycHg7XG4gICAgY29sb3I6ICM1YmM0ZmU7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuLm14LWRlbW91c2Vyc3dpdGNoZXIgLmFjdGl2ZSBoMyB7XG4gICAgY29sb3I6ICMxMWVmZGI7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlciBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLm14LWRlbW91c2Vyc3dpdGNoZXItdG9nZ2xlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAyNSU7XG4gICAgbGVmdDogLTM1cHg7XG4gICAgd2lkdGg6IDM1cHg7XG4gICAgaGVpZ2h0OiAzOHB4O1xuICAgIG1hcmdpbi10b3A6IC00MHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xuICAgIGJveC1zaGFkb3c6IC0xcHggMCA1cHggcmdiYSgyOCw1OSw4NiwuMik7XG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQklBQUFBU0NBWUFBQUJXem81WEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeVJwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVNeTFqTURFeElEWTJMakUwTlRZMk1Td2dNakF4TWk4d01pOHdOaTB4TkRvMU5qb3lOeUFnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5UTmlBb1RXRmphVzUwYjNOb0tTSWdlRzF3VFUwNlNXNXpkR0Z1WTJWSlJEMGllRzF3TG1scFpEbzNORVJETWpGR1JEUTJORU14TVVVMFFUUTRNVUk1TlROR01VUTNRekU1TnlJZ2VHMXdUVTA2Ukc5amRXMWxiblJKUkQwaWVHMXdMbVJwWkRvM05FUkRNakZHUlRRMk5FTXhNVVUwUVRRNE1VSTVOVE5HTVVRM1F6RTVOeUkrSUR4NGJYQk5UVHBFWlhKcGRtVmtSbkp2YlNCemRGSmxaanBwYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2pjMFJFTXlNVVpDTkRZMFF6RXhSVFJCTkRneFFqazFNMFl4UkRkRE1UazNJaUJ6ZEZKbFpqcGtiMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPamMwUkVNeU1VWkRORFkwUXpFeFJUUkJORGd4UWprMU0wWXhSRGRETVRrM0lpOCtJRHd2Y21SbU9rUmxjMk55YVhCMGFXOXVQaUE4TDNKa1pqcFNSRVkrSUR3dmVEcDRiWEJ0WlhSaFBpQThQM2h3WVdOclpYUWdaVzVrUFNKeUlqOCsxWm92TkFBQUFXZEpSRUZVZU5xTTFNMHJSRkVZeC9FN1k1cUlRcE9VYklpeW1RV3lzQmd2SlZKSzJWZ3J5WlF0S1NVTFplbFBzQjBMWmFOWmpKVU5LMUZza0pxVXZDUzNOQXNaYzN6UDlOemlPT2ZlZWVwVGM4L2M4K3ZjOHhaVFNubU9ha0VHS2R6Z0RCWFh5NTRPTXNTd2pwTDZXOWNZc3J4ZlpXdmNVdTd5MFZkTFVDYytWWGdkMm9MaXhwZk9JT21GMTdUdEhUT296WXV1cEN4QWFOQjlEVUVmZURVYkU4YnpFWHhaZXJQMDBsOGhoM0xVaUhUSU1yNk45ajJrc1lvaWh2LzFkZXlMU1Z6S0ttMWpFVytXZlpWMkxmOGdza2pJY3djV3BPTSsrcEhDRlBMb3NnV3RvQ3lkN2pDUE9qemhHSEhMeURQWTFhY2hhSmhEeFJqNnJCd0pYVXVvTjBJRzhJSXY3T2lHQmp4YWR2QUlUdVQzcmV4NmMwU2JLQVNmbG5VY0JUM0pUVGhBanlXa0dVVnNCRUVGUjVDZXJ6WHBOSWFjckZJckpuQ0JCM211QnZraEIxVFAyN2hNL0x2eDN6bDZneEhxdTZjNzRraVU4SXhHaktKZExyclQzeGZkandBREFKYU14UDJidkQyQkFBQUFBRWxGVGtTdVFtQ0MpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0ICMxYjMxNDk7XG59XG4iLCIvKiBtYXN0ZXIgZGV0YWlscyBzY3JlZW4gZm9yIG1vYmlsZSAqL1xuLm14LW1hc3Rlci1kZXRhaWwtc2NyZWVuIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG59XG5cbi5teC1tYXN0ZXItZGV0YWlsLXNjcmVlbiAubXgtbWFzdGVyLWRldGFpbC1kZXRhaWxzIHtcbiAgICBwYWRkaW5nOiAxNXB4O1xufVxuXG4ubXgtbWFzdGVyLWRldGFpbC1zY3JlZW4taGVhZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNztcbn1cblxuLm14LW1hc3Rlci1kZXRhaWwtc2NyZWVuLWhlYWRlci1jYXB0aW9uIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxN3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5teC1tYXN0ZXItZGV0YWlsLXNjcmVlbi1oZWFkZXItY2xvc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDUwcHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjMDA3YWZmO1xufVxuXG5ib2R5W2Rpcj1cInJ0bFwiXSAubXgtbWFzdGVyLWRldGFpbC1zY3JlZW4taGVhZGVyLWNsb3NlIHtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiBhdXRvO1xufVxuXG4ubXgtbWFzdGVyLWRldGFpbC1zY3JlZW4taGVhZGVyLWNsb3NlOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFwyMDM5XCI7XG4gICAgZm9udC1zaXplOiA1MnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xufVxuXG4vKiBjbGFzc2VzIGZvciBjb250ZW50IHBhZ2UgKi9cbi5teC1tYXN0ZXItZGV0YWlsLWNvbnRlbnQtZml4IHtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5teC1tYXN0ZXItZGV0YWlsLWNvbnRlbnQtaGlkZGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwMCUpO1xufVxuXG5ib2R5W2Rpcj1cInJ0bFwiXSAubXgtbWFzdGVyLWRldGFpbC1jb250ZW50LWhpZGRlbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwMCUpO1xufSIsIi5yZXBvcnRpbmdSZXBvcnQge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIC1tb3otYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbiIsIi5yZXBvcnRpbmdSZXBvcnRQYXJhbWV0ZXIgdGgge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuIiwiLnJlcG9ydGluZ0RhdGVSYW5nZSB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbn1cbi5yZXBvcnRpbmdEYXRlUmFuZ2UgdGgge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xufVxuLnJlcG9ydGluZ0RhdGVSYW5nZSB0ZCB7XG4gICAgcGFkZGluZzogNXB4O1xufVxuIiwiLm14LXJlcG9ydG1hdHJpeCB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLm14LXJlcG9ydG1hdHJpeCB0aCwgLm14LXJlcG9ydG1hdHJpeCB0ZCB7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbn1cblxuLm14LXJlcG9ydG1hdHJpeCB0Ym9keSB0cjpmaXJzdC1jaGlsZCB0ZCB7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbn1cblxuLm14LXJlcG9ydG1hdHJpeCB0Ym9keSB0cjpudGgtY2hpbGQoMm4rMSkgdGQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG59XG5cbi5teC1yZXBvcnRtYXRyaXggdGJvZHkgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDE2cHg7XG4gICAgbWF4LWhlaWdodDogMTZweDtcbn1cbiIsIi8qIFdBUk5JTkc6IElFOSBsaW1pdHMgbmVzdGVkIGltcG9ydHMgdG8gdGhyZWUgbGV2ZWxzIGRlZXA6IGh0dHA6Ly9qb3JnZWFsYmFsYWRlam8uY29tLzIwMTEvMDUvMjgvaW50ZXJuZXQtZXhwbG9yZXItbGltaXRzLW5lc3RlZC1pbXBvcnQtY3NzLXN0YXRlbWVudHMgKi9cblxuLyogZGlqaXQgYmFzZSAqL1xuXG4vKiBtZW5kaXggYmFzZSAqL1xuXG4vKiB3aWRnZXRzICovXG5cbi8qIHJlcG9ydGluZyAqL1xuIl0sInNvdXJjZVJvb3QiOiIifQ==*/ diff --git a/theme_old/styles/web/sass/core/_legacy/bootstrap/_bootstrap-rtl.scss b/theme_old/styles/web/sass/core/_legacy/bootstrap/_bootstrap-rtl.scss deleted file mode 100644 index 8c768d5..0000000 --- a/theme_old/styles/web/sass/core/_legacy/bootstrap/_bootstrap-rtl.scss +++ /dev/null @@ -1,1570 +0,0 @@ -/******************************************************************************* - * bootstrap-rtl (version 3.3.4) - * Author: Morteza Ansarinia (http://github.com/morteza) - * Created on: August 13,2015 - * Project: bootstrap-rtl - * Copyright: Unlicensed Public Domain - *******************************************************************************/ - -[dir='rtl'] { - .flip.text-left { - text-align: right; - } - .flip.text-right { - text-align: left; - } - .list-unstyled { - padding-right: 0; - padding-left: initial; - } - .list-inline { - padding-right: 0; - padding-left: initial; - margin-right: -5px; - margin-left: 0; - } - dd { - margin-right: 0; - margin-left: initial; - } - @media (min-width: 768px) { - .dl-horizontal dt { - float: right; - clear: right; - text-align: left; - } - .dl-horizontal dd { - margin-right: 180px; - margin-left: 0; - } - } - blockquote { - border-right: 5px solid #eeeeee; - border-left: 0; - } - .blockquote-reverse, - blockquote.pull-left { - padding-left: 15px; - padding-right: 0; - border-left: 5px solid #eeeeee; - border-right: 0; - text-align: left; - } - .col-xs-1, - .col-sm-1, - .col-md-1, - .col-lg-1, - .col-xs-2, - .col-sm-2, - .col-md-2, - .col-lg-2, - .col-xs-3, - .col-sm-3, - .col-md-3, - .col-lg-3, - .col-xs-4, - .col-sm-4, - .col-md-4, - .col-lg-4, - .col-xs-5, - .col-sm-5, - .col-md-5, - .col-lg-5, - .col-xs-6, - .col-sm-6, - .col-md-6, - .col-lg-6, - .col-xs-7, - .col-sm-7, - .col-md-7, - .col-lg-7, - .col-xs-8, - .col-sm-8, - .col-md-8, - .col-lg-8, - .col-xs-9, - .col-sm-9, - .col-md-9, - .col-lg-9, - .col-xs-10, - .col-sm-10, - .col-md-10, - .col-lg-10, - .col-xs-11, - .col-sm-11, - .col-md-11, - .col-lg-11, - .col-xs-12, - .col-sm-12, - .col-md-12, - .col-lg-12 { - position: relative; - min-height: 1px; - padding-left: 15px; - padding-right: 15px; - } - .col-xs-1, - .col-xs-2, - .col-xs-3, - .col-xs-4, - .col-xs-5, - .col-xs-6, - .col-xs-7, - .col-xs-8, - .col-xs-9, - .col-xs-10, - .col-xs-11, - .col-xs-12 { - float: right; - } - .col-xs-12 { - width: 100%; - } - .col-xs-11 { - width: 91.66666667%; - } - .col-xs-10 { - width: 83.33333333%; - } - .col-xs-9 { - width: 75%; - } - .col-xs-8 { - width: 66.66666667%; - } - .col-xs-7 { - width: 58.33333333%; - } - .col-xs-6 { - width: 50%; - } - .col-xs-5 { - width: 41.66666667%; - } - .col-xs-4 { - width: 33.33333333%; - } - .col-xs-3 { - width: 25%; - } - .col-xs-2 { - width: 16.66666667%; - } - .col-xs-1 { - width: 8.33333333%; - } - .col-xs-pull-12 { - left: 100%; - right: auto; - } - .col-xs-pull-11 { - left: 91.66666667%; - right: auto; - } - .col-xs-pull-10 { - left: 83.33333333%; - right: auto; - } - .col-xs-pull-9 { - left: 75%; - right: auto; - } - .col-xs-pull-8 { - left: 66.66666667%; - right: auto; - } - .col-xs-pull-7 { - left: 58.33333333%; - right: auto; - } - .col-xs-pull-6 { - left: 50%; - right: auto; - } - .col-xs-pull-5 { - left: 41.66666667%; - right: auto; - } - .col-xs-pull-4 { - left: 33.33333333%; - right: auto; - } - .col-xs-pull-3 { - left: 25%; - right: auto; - } - .col-xs-pull-2 { - left: 16.66666667%; - right: auto; - } - .col-xs-pull-1 { - left: 8.33333333%; - right: auto; - } - .col-xs-pull-0 { - left: auto; - right: auto; - } - .col-xs-push-12 { - right: 100%; - left: 0; - } - .col-xs-push-11 { - right: 91.66666667%; - left: 0; - } - .col-xs-push-10 { - right: 83.33333333%; - left: 0; - } - .col-xs-push-9 { - right: 75%; - left: 0; - } - .col-xs-push-8 { - right: 66.66666667%; - left: 0; - } - .col-xs-push-7 { - right: 58.33333333%; - left: 0; - } - .col-xs-push-6 { - right: 50%; - left: 0; - } - .col-xs-push-5 { - right: 41.66666667%; - left: 0; - } - .col-xs-push-4 { - right: 33.33333333%; - left: 0; - } - .col-xs-push-3 { - right: 25%; - left: 0; - } - .col-xs-push-2 { - right: 16.66666667%; - left: 0; - } - .col-xs-push-1 { - right: 8.33333333%; - left: 0; - } - .col-xs-push-0 { - right: auto; - left: 0; - } - .col-xs-offset-12 { - margin-right: 100%; - margin-left: 0; - } - .col-xs-offset-11 { - margin-right: 91.66666667%; - margin-left: 0; - } - .col-xs-offset-10 { - margin-right: 83.33333333%; - margin-left: 0; - } - .col-xs-offset-9 { - margin-right: 75%; - margin-left: 0; - } - .col-xs-offset-8 { - margin-right: 66.66666667%; - margin-left: 0; - } - .col-xs-offset-7 { - margin-right: 58.33333333%; - margin-left: 0; - } - .col-xs-offset-6 { - margin-right: 50%; - margin-left: 0; - } - .col-xs-offset-5 { - margin-right: 41.66666667%; - margin-left: 0; - } - .col-xs-offset-4 { - margin-right: 33.33333333%; - margin-left: 0; - } - .col-xs-offset-3 { - margin-right: 25%; - margin-left: 0; - } - .col-xs-offset-2 { - margin-right: 16.66666667%; - margin-left: 0; - } - .col-xs-offset-1 { - margin-right: 8.33333333%; - margin-left: 0; - } - .col-xs-offset-0 { - margin-right: 0%; - margin-left: 0; - } - @media (min-width: 768px) { - .col-sm-1, - .col-sm-2, - .col-sm-3, - .col-sm-4, - .col-sm-5, - .col-sm-6, - .col-sm-7, - .col-sm-8, - .col-sm-9, - .col-sm-10, - .col-sm-11, - .col-sm-12 { - float: right; - } - .col-sm-12 { - width: 100%; - } - .col-sm-11 { - width: 91.66666667%; - } - .col-sm-10 { - width: 83.33333333%; - } - .col-sm-9 { - width: 75%; - } - .col-sm-8 { - width: 66.66666667%; - } - .col-sm-7 { - width: 58.33333333%; - } - .col-sm-6 { - width: 50%; - } - .col-sm-5 { - width: 41.66666667%; - } - .col-sm-4 { - width: 33.33333333%; - } - .col-sm-3 { - width: 25%; - } - .col-sm-2 { - width: 16.66666667%; - } - .col-sm-1 { - width: 8.33333333%; - } - .col-sm-pull-12 { - left: 100%; - right: auto; - } - .col-sm-pull-11 { - left: 91.66666667%; - right: auto; - } - .col-sm-pull-10 { - left: 83.33333333%; - right: auto; - } - .col-sm-pull-9 { - left: 75%; - right: auto; - } - .col-sm-pull-8 { - left: 66.66666667%; - right: auto; - } - .col-sm-pull-7 { - left: 58.33333333%; - right: auto; - } - .col-sm-pull-6 { - left: 50%; - right: auto; - } - .col-sm-pull-5 { - left: 41.66666667%; - right: auto; - } - .col-sm-pull-4 { - left: 33.33333333%; - right: auto; - } - .col-sm-pull-3 { - left: 25%; - right: auto; - } - .col-sm-pull-2 { - left: 16.66666667%; - right: auto; - } - .col-sm-pull-1 { - left: 8.33333333%; - right: auto; - } - .col-sm-pull-0 { - left: auto; - right: auto; - } - .col-sm-push-12 { - right: 100%; - left: 0; - } - .col-sm-push-11 { - right: 91.66666667%; - left: 0; - } - .col-sm-push-10 { - right: 83.33333333%; - left: 0; - } - .col-sm-push-9 { - right: 75%; - left: 0; - } - .col-sm-push-8 { - right: 66.66666667%; - left: 0; - } - .col-sm-push-7 { - right: 58.33333333%; - left: 0; - } - .col-sm-push-6 { - right: 50%; - left: 0; - } - .col-sm-push-5 { - right: 41.66666667%; - left: 0; - } - .col-sm-push-4 { - right: 33.33333333%; - left: 0; - } - .col-sm-push-3 { - right: 25%; - left: 0; - } - .col-sm-push-2 { - right: 16.66666667%; - left: 0; - } - .col-sm-push-1 { - right: 8.33333333%; - left: 0; - } - .col-sm-push-0 { - right: auto; - left: 0; - } - .col-sm-offset-12 { - margin-right: 100%; - margin-left: 0; - } - .col-sm-offset-11 { - margin-right: 91.66666667%; - margin-left: 0; - } - .col-sm-offset-10 { - margin-right: 83.33333333%; - margin-left: 0; - } - .col-sm-offset-9 { - margin-right: 75%; - margin-left: 0; - } - .col-sm-offset-8 { - margin-right: 66.66666667%; - margin-left: 0; - } - .col-sm-offset-7 { - margin-right: 58.33333333%; - margin-left: 0; - } - .col-sm-offset-6 { - margin-right: 50%; - margin-left: 0; - } - .col-sm-offset-5 { - margin-right: 41.66666667%; - margin-left: 0; - } - .col-sm-offset-4 { - margin-right: 33.33333333%; - margin-left: 0; - } - .col-sm-offset-3 { - margin-right: 25%; - margin-left: 0; - } - .col-sm-offset-2 { - margin-right: 16.66666667%; - margin-left: 0; - } - .col-sm-offset-1 { - margin-right: 8.33333333%; - margin-left: 0; - } - .col-sm-offset-0 { - margin-right: 0%; - margin-left: 0; - } - } - @media (min-width: 992px) { - .col-md-1, - .col-md-2, - .col-md-3, - .col-md-4, - .col-md-5, - .col-md-6, - .col-md-7, - .col-md-8, - .col-md-9, - .col-md-10, - .col-md-11, - .col-md-12 { - float: right; - } - .col-md-12 { - width: 100%; - } - .col-md-11 { - width: 91.66666667%; - } - .col-md-10 { - width: 83.33333333%; - } - .col-md-9 { - width: 75%; - } - .col-md-8 { - width: 66.66666667%; - } - .col-md-7 { - width: 58.33333333%; - } - .col-md-6 { - width: 50%; - } - .col-md-5 { - width: 41.66666667%; - } - .col-md-4 { - width: 33.33333333%; - } - .col-md-3 { - width: 25%; - } - .col-md-2 { - width: 16.66666667%; - } - .col-md-1 { - width: 8.33333333%; - } - .col-md-pull-12 { - left: 100%; - right: auto; - } - .col-md-pull-11 { - left: 91.66666667%; - right: auto; - } - .col-md-pull-10 { - left: 83.33333333%; - right: auto; - } - .col-md-pull-9 { - left: 75%; - right: auto; - } - .col-md-pull-8 { - left: 66.66666667%; - right: auto; - } - .col-md-pull-7 { - left: 58.33333333%; - right: auto; - } - .col-md-pull-6 { - left: 50%; - right: auto; - } - .col-md-pull-5 { - left: 41.66666667%; - right: auto; - } - .col-md-pull-4 { - left: 33.33333333%; - right: auto; - } - .col-md-pull-3 { - left: 25%; - right: auto; - } - .col-md-pull-2 { - left: 16.66666667%; - right: auto; - } - .col-md-pull-1 { - left: 8.33333333%; - right: auto; - } - .col-md-pull-0 { - left: auto; - right: auto; - } - .col-md-push-12 { - right: 100%; - left: 0; - } - .col-md-push-11 { - right: 91.66666667%; - left: 0; - } - .col-md-push-10 { - right: 83.33333333%; - left: 0; - } - .col-md-push-9 { - right: 75%; - left: 0; - } - .col-md-push-8 { - right: 66.66666667%; - left: 0; - } - .col-md-push-7 { - right: 58.33333333%; - left: 0; - } - .col-md-push-6 { - right: 50%; - left: 0; - } - .col-md-push-5 { - right: 41.66666667%; - left: 0; - } - .col-md-push-4 { - right: 33.33333333%; - left: 0; - } - .col-md-push-3 { - right: 25%; - left: 0; - } - .col-md-push-2 { - right: 16.66666667%; - left: 0; - } - .col-md-push-1 { - right: 8.33333333%; - left: 0; - } - .col-md-push-0 { - right: auto; - left: 0; - } - .col-md-offset-12 { - margin-right: 100%; - margin-left: 0; - } - .col-md-offset-11 { - margin-right: 91.66666667%; - margin-left: 0; - } - .col-md-offset-10 { - margin-right: 83.33333333%; - margin-left: 0; - } - .col-md-offset-9 { - margin-right: 75%; - margin-left: 0; - } - .col-md-offset-8 { - margin-right: 66.66666667%; - margin-left: 0; - } - .col-md-offset-7 { - margin-right: 58.33333333%; - margin-left: 0; - } - .col-md-offset-6 { - margin-right: 50%; - margin-left: 0; - } - .col-md-offset-5 { - margin-right: 41.66666667%; - margin-left: 0; - } - .col-md-offset-4 { - margin-right: 33.33333333%; - margin-left: 0; - } - .col-md-offset-3 { - margin-right: 25%; - margin-left: 0; - } - .col-md-offset-2 { - margin-right: 16.66666667%; - margin-left: 0; - } - .col-md-offset-1 { - margin-right: 8.33333333%; - margin-left: 0; - } - .col-md-offset-0 { - margin-right: 0%; - margin-left: 0; - } - } - @media (min-width: 1200px) { - .col-lg-1, - .col-lg-2, - .col-lg-3, - .col-lg-4, - .col-lg-5, - .col-lg-6, - .col-lg-7, - .col-lg-8, - .col-lg-9, - .col-lg-10, - .col-lg-11, - .col-lg-12 { - float: right; - } - .col-lg-12 { - width: 100%; - } - .col-lg-11 { - width: 91.66666667%; - } - .col-lg-10 { - width: 83.33333333%; - } - .col-lg-9 { - width: 75%; - } - .col-lg-8 { - width: 66.66666667%; - } - .col-lg-7 { - width: 58.33333333%; - } - .col-lg-6 { - width: 50%; - } - .col-lg-5 { - width: 41.66666667%; - } - .col-lg-4 { - width: 33.33333333%; - } - .col-lg-3 { - width: 25%; - } - .col-lg-2 { - width: 16.66666667%; - } - .col-lg-1 { - width: 8.33333333%; - } - .col-lg-pull-12 { - left: 100%; - right: auto; - } - .col-lg-pull-11 { - left: 91.66666667%; - right: auto; - } - .col-lg-pull-10 { - left: 83.33333333%; - right: auto; - } - .col-lg-pull-9 { - left: 75%; - right: auto; - } - .col-lg-pull-8 { - left: 66.66666667%; - right: auto; - } - .col-lg-pull-7 { - left: 58.33333333%; - right: auto; - } - .col-lg-pull-6 { - left: 50%; - right: auto; - } - .col-lg-pull-5 { - left: 41.66666667%; - right: auto; - } - .col-lg-pull-4 { - left: 33.33333333%; - right: auto; - } - .col-lg-pull-3 { - left: 25%; - right: auto; - } - .col-lg-pull-2 { - left: 16.66666667%; - right: auto; - } - .col-lg-pull-1 { - left: 8.33333333%; - right: auto; - } - .col-lg-pull-0 { - left: auto; - right: auto; - } - .col-lg-push-12 { - right: 100%; - left: 0; - } - .col-lg-push-11 { - right: 91.66666667%; - left: 0; - } - .col-lg-push-10 { - right: 83.33333333%; - left: 0; - } - .col-lg-push-9 { - right: 75%; - left: 0; - } - .col-lg-push-8 { - right: 66.66666667%; - left: 0; - } - .col-lg-push-7 { - right: 58.33333333%; - left: 0; - } - .col-lg-push-6 { - right: 50%; - left: 0; - } - .col-lg-push-5 { - right: 41.66666667%; - left: 0; - } - .col-lg-push-4 { - right: 33.33333333%; - left: 0; - } - .col-lg-push-3 { - right: 25%; - left: 0; - } - .col-lg-push-2 { - right: 16.66666667%; - left: 0; - } - .col-lg-push-1 { - right: 8.33333333%; - left: 0; - } - .col-lg-push-0 { - right: auto; - left: 0; - } - .col-lg-offset-12 { - margin-right: 100%; - margin-left: 0; - } - .col-lg-offset-11 { - margin-right: 91.66666667%; - margin-left: 0; - } - .col-lg-offset-10 { - margin-right: 83.33333333%; - margin-left: 0; - } - .col-lg-offset-9 { - margin-right: 75%; - margin-left: 0; - } - .col-lg-offset-8 { - margin-right: 66.66666667%; - margin-left: 0; - } - .col-lg-offset-7 { - margin-right: 58.33333333%; - margin-left: 0; - } - .col-lg-offset-6 { - margin-right: 50%; - margin-left: 0; - } - .col-lg-offset-5 { - margin-right: 41.66666667%; - margin-left: 0; - } - .col-lg-offset-4 { - margin-right: 33.33333333%; - margin-left: 0; - } - .col-lg-offset-3 { - margin-right: 25%; - margin-left: 0; - } - .col-lg-offset-2 { - margin-right: 16.66666667%; - margin-left: 0; - } - .col-lg-offset-1 { - margin-right: 8.33333333%; - margin-left: 0; - } - .col-lg-offset-0 { - margin-right: 0%; - margin-left: 0; - } - } - caption { - text-align: right; - } - th:not(.mx-left-aligned) { - text-align: right; - } - @media screen and (max-width: 767px) { - .table-responsive > .table-bordered { - border: 0; - } - .table-responsive > .table-bordered > thead > tr > th:first-child, - .table-responsive > .table-bordered > tbody > tr > th:first-child, - .table-responsive > .table-bordered > tfoot > tr > th:first-child, - .table-responsive > .table-bordered > thead > tr > td:first-child, - .table-responsive > .table-bordered > tbody > tr > td:first-child, - .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-right: 0; - border-left: initial; - } - .table-responsive > .table-bordered > thead > tr > th:last-child, - .table-responsive > .table-bordered > tbody > tr > th:last-child, - .table-responsive > .table-bordered > tfoot > tr > th:last-child, - .table-responsive > .table-bordered > thead > tr > td:last-child, - .table-responsive > .table-bordered > tbody > tr > td:last-child, - .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-left: 0; - border-right: initial; - } - } - .radio label, - .checkbox label { - padding-right: 20px; - padding-left: initial; - } - .radio input[type='radio'], - .radio-inline input[type='radio'], - .checkbox input[type='checkbox'], - .checkbox-inline input[type='checkbox'] { - margin-right: -20px; - margin-left: auto; - } - .radio-inline, - .checkbox-inline { - padding-right: 20px; - padding-left: 0; - } - .radio-inline + .radio-inline, - .checkbox-inline + .checkbox-inline { - margin-right: 10px; - margin-left: 0; - } - .has-feedback .form-control { - padding-left: 42.5px; - padding-right: 12px; - } - .form-control-feedback { - left: 0; - right: auto; - } - @media (min-width: 768px) { - .form-inline label { - padding-right: 0; - padding-left: initial; - } - .form-inline .radio input[type='radio'], - .form-inline .checkbox input[type='checkbox'] { - margin-right: 0; - margin-left: auto; - } - } - @media (min-width: 768px) { - .form-horizontal .control-label { - text-align: left; - } - } - .form-horizontal .has-feedback .form-control-feedback { - left: 15px; - right: auto; - } - .caret { - margin-right: 2px; - margin-left: 0; - } - .dropdown-menu { - right: 0; - left: auto; - float: left; - text-align: right; - } - .dropdown-menu.pull-right { - left: 0; - right: auto; - float: right; - } - .dropdown-menu-right { - left: auto; - right: 0; - } - .dropdown-menu-left { - left: 0; - right: auto; - } - @media (min-width: 768px) { - .navbar-right .dropdown-menu { - left: auto; - right: 0; - } - .navbar-right .dropdown-menu-left { - left: 0; - right: auto; - } - } - .btn-group > .btn, - .btn-group-vertical > .btn { - float: right; - } - .btn-group .btn + .btn, - .btn-group .btn + .btn-group, - .btn-group .btn-group + .btn, - .btn-group .btn-group + .btn-group { - margin-right: -1px; - margin-left: 0px; - } - .btn-toolbar { - margin-right: -5px; - margin-left: 0px; - } - .btn-toolbar .btn-group, - .btn-toolbar .input-group { - float: right; - } - .btn-toolbar > .btn, - .btn-toolbar > .btn-group, - .btn-toolbar > .input-group { - margin-right: 5px; - margin-left: 0px; - } - .btn-group > .btn:first-child { - margin-right: 0; - } - .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; - border-bottom-left-radius: 0; - border-top-left-radius: 0; - } - .btn-group > .btn:last-child:not(:first-child), - .btn-group > .dropdown-toggle:not(:first-child) { - border-top-left-radius: 4px; - border-bottom-left-radius: 4px; - border-bottom-right-radius: 0; - border-top-right-radius: 0; - } - .btn-group > .btn-group { - float: right; - } - .btn-group.btn-group-justified > .btn, - .btn-group.btn-group-justified > .btn-group { - float: none; - } - .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-top-right-radius: 4px; - border-bottom-right-radius: 4px; - border-bottom-left-radius: 0; - border-top-left-radius: 0; - } - .btn-group > .btn-group:last-child > .btn:first-child { - border-top-left-radius: 4px; - border-bottom-left-radius: 4px; - border-bottom-right-radius: 0; - border-top-right-radius: 0; - } - .btn .caret { - margin-right: 0; - } - .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-right: 0; - } - .input-group .form-control { - float: right; - } - .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: 4px; - border-top-right-radius: 4px; - border-bottom-left-radius: 0; - border-top-left-radius: 0; - } - .input-group-addon:first-child { - border-left: 0px; - border-right: 1px solid; - } - .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: 4px; - border-top-left-radius: 4px; - border-bottom-right-radius: 0; - border-top-right-radius: 0; - } - .input-group-addon:last-child { - border-left-width: 1px; - border-left-style: solid; - border-right: 0px; - } - .input-group-btn > .btn + .btn { - margin-right: -1px; - margin-left: auto; - } - .input-group-btn:first-child > .btn, - .input-group-btn:first-child > .btn-group { - margin-left: -1px; - margin-right: auto; - } - .input-group-btn:last-child > .btn, - .input-group-btn:last-child > .btn-group { - margin-right: -1px; - margin-left: auto; - } - .nav { - padding-right: 0; - padding-left: initial; - } - .nav-tabs > li { - float: right; - } - .nav-tabs > li > a { - margin-left: auto; - margin-right: -2px; - border-radius: 4px 4px 0 0; - } - .nav-pills > li { - float: right; - } - .nav-pills > li > a { - border-radius: 4px; - } - .nav-pills > li + li { - margin-right: 2px; - margin-left: auto; - } - .nav-stacked > li { - float: none; - } - .nav-stacked > li + li { - margin-right: 0; - margin-left: auto; - } - .nav-justified > .dropdown .dropdown-menu { - right: auto; - } - .nav-tabs-justified > li > a { - margin-left: 0; - margin-right: auto; - } - @media (min-width: 768px) { - .nav-tabs-justified > li > a { - border-radius: 4px 4px 0 0; - } - } - @media (min-width: 768px) { - .navbar-header { - float: right; - } - } - .navbar-collapse { - padding-right: 15px; - padding-left: 15px; - } - .navbar-brand { - float: right; - } - @media (min-width: 768px) { - .navbar > .container .navbar-brand, - .navbar > .container-fluid .navbar-brand { - margin-right: -15px; - margin-left: auto; - } - } - .navbar-toggle { - float: left; - margin-left: 15px; - margin-right: auto; - } - @media (max-width: 767px) { - .navbar-nav .open .dropdown-menu > li > a, - .navbar-nav .open .dropdown-menu .dropdown-header { - padding: 5px 25px 5px 15px; - } - } - @media (min-width: 768px) { - .navbar-nav { - float: right; - } - .navbar-nav > li { - float: right; - } - } - @media (min-width: 768px) { - .navbar-left.flip { - float: right !important; - } - .navbar-right:last-child { - margin-left: -15px; - margin-right: auto; - } - .navbar-right.flip { - float: left !important; - margin-left: -15px; - margin-right: auto; - } - .navbar-right .dropdown-menu { - left: 0; - right: auto; - } - } - @media (min-width: 768px) { - .navbar-text { - float: right; - } - .navbar-text.navbar-right:last-child { - margin-left: 0; - margin-right: auto; - } - } - .pagination { - padding-right: 0; - } - .pagination > li > a, - .pagination > li > span { - float: right; - margin-right: -1px; - margin-left: 0px; - } - .pagination > li:first-child > a, - .pagination > li:first-child > span { - margin-left: 0; - border-bottom-right-radius: 4px; - border-top-right-radius: 4px; - border-bottom-left-radius: 0; - border-top-left-radius: 0; - } - .pagination > li:last-child > a, - .pagination > li:last-child > span { - margin-right: -1px; - border-bottom-left-radius: 4px; - border-top-left-radius: 4px; - border-bottom-right-radius: 0; - border-top-right-radius: 0; - } - .pager { - padding-right: 0; - padding-left: initial; - } - .pager .next > a, - .pager .next > span { - float: left; - } - .pager .previous > a, - .pager .previous > span { - float: right; - } - .nav-pills > li > a > .badge { - margin-left: 0px; - margin-right: 3px; - } - .list-group-item > .badge { - float: left; - } - .list-group-item > .badge + .badge { - margin-left: 5px; - margin-right: auto; - } - .alert-dismissable, - .alert-dismissible { - padding-left: 35px; - padding-right: 15px; - } - .alert-dismissable .close, - .alert-dismissible .close { - right: auto; - left: -21px; - } - .progress-bar { - float: right; - } - .media > .pull-left { - margin-right: 10px; - } - .media > .pull-left.flip { - margin-right: 0; - margin-left: 10px; - } - .media > .pull-right { - margin-left: 10px; - } - .media > .pull-right.flip { - margin-left: 0; - margin-right: 10px; - } - .media-right, - .media > .pull-right { - padding-right: 10px; - padding-left: initial; - } - .media-left, - .media > .pull-left { - padding-left: 10px; - padding-right: initial; - } - .media-list { - padding-right: 0; - padding-left: initial; - list-style: none; - } - .list-group { - padding-right: 0; - padding-left: initial; - } - .panel > .table:first-child > thead:first-child > tr:first-child td:first-child, - .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, - .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, - .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, - .panel > .table:first-child > thead:first-child > tr:first-child th:first-child, - .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, - .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, - .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { - border-top-right-radius: 3px; - border-top-left-radius: 0; - } - .panel > .table:first-child > thead:first-child > tr:first-child td:last-child, - .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, - .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, - .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, - .panel > .table:first-child > thead:first-child > tr:first-child th:last-child, - .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, - .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, - .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { - border-top-left-radius: 3px; - border-top-right-radius: 0; - } - .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, - .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, - .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, - .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, - .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, - .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, - .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, - .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { - border-bottom-left-radius: 3px; - border-top-right-radius: 0; - } - .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, - .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, - .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, - .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, - .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, - .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, - .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, - .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { - border-bottom-right-radius: 3px; - border-top-left-radius: 0; - } - .panel > .table-bordered > thead > tr > th:first-child, - .panel > .table-responsive > .table-bordered > thead > tr > th:first-child, - .panel > .table-bordered > tbody > tr > th:first-child, - .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, - .panel > .table-bordered > tfoot > tr > th:first-child, - .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, - .panel > .table-bordered > thead > tr > td:first-child, - .panel > .table-responsive > .table-bordered > thead > tr > td:first-child, - .panel > .table-bordered > tbody > tr > td:first-child, - .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, - .panel > .table-bordered > tfoot > tr > td:first-child, - .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-right: 0; - border-left: none; - } - .panel > .table-bordered > thead > tr > th:last-child, - .panel > .table-responsive > .table-bordered > thead > tr > th:last-child, - .panel > .table-bordered > tbody > tr > th:last-child, - .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, - .panel > .table-bordered > tfoot > tr > th:last-child, - .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, - .panel > .table-bordered > thead > tr > td:last-child, - .panel > .table-responsive > .table-bordered > thead > tr > td:last-child, - .panel > .table-bordered > tbody > tr > td:last-child, - .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, - .panel > .table-bordered > tfoot > tr > td:last-child, - .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: none; - border-left: 0; - } - .embed-responsive .embed-responsive-item, - .embed-responsive iframe, - .embed-responsive embed, - .embed-responsive object { - right: 0; - left: auto; - } - .close { - float: left; - } - .modal-footer { - text-align: left; - } - .modal-footer.flip { - text-align: right; - } - .modal-footer .btn + .btn { - margin-left: auto; - margin-right: 5px; - } - .modal-footer .btn-group .btn + .btn { - margin-right: -1px; - margin-left: auto; - } - .modal-footer .btn-block + .btn-block { - margin-right: 0; - margin-left: auto; - } - .popover { - left: auto; - text-align: right; - } - .popover.top > .arrow { - right: 50%; - left: auto; - margin-right: -11px; - margin-left: auto; - } - .popover.top > .arrow:after { - margin-right: -10px; - margin-left: auto; - } - .popover.bottom > .arrow { - right: 50%; - left: auto; - margin-right: -11px; - margin-left: auto; - } - .popover.bottom > .arrow:after { - margin-right: -10px; - margin-left: auto; - } - .carousel-control { - right: 0; - bottom: 0; - } - .carousel-control.left { - right: auto; - left: 0; - background-image: -webkit-linear-gradient( - left, - color-stop(rgba(0, 0, 0, 0.5) 0%), - color-stop(rgba(0, 0, 0, 0.0001) 100%) - ); - background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); - } - .carousel-control.right { - left: auto; - right: 0; - background-image: -webkit-linear-gradient( - left, - color-stop(rgba(0, 0, 0, 0.0001) 0%), - color-stop(rgba(0, 0, 0, 0.5) 100%) - ); - background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); - } - .carousel-control .icon-prev, - .carousel-control .glyphicon-chevron-left { - left: 50%; - right: auto; - margin-right: -10px; - } - .carousel-control .icon-next, - .carousel-control .glyphicon-chevron-right { - right: 50%; - left: auto; - margin-left: -10px; - } - .carousel-indicators { - right: 50%; - left: 0; - margin-right: -30%; - margin-left: 0; - padding-left: 0; - } - @media screen and (min-width: 768px) { - .carousel-control .glyphicon-chevron-left, - .carousel-control .icon-prev { - margin-left: 0; - margin-right: -15px; - } - .carousel-control .glyphicon-chevron-right, - .carousel-control .icon-next { - margin-left: 0; - margin-right: -15px; - } - .carousel-caption { - left: 20%; - right: 20%; - padding-bottom: 30px; - } - } - .pull-right.flip { - float: left !important; - } - .pull-left.flip { - float: right !important; - } -} diff --git a/theme_old/styles/web/sass/core/_legacy/bootstrap/_bootstrap.scss b/theme_old/styles/web/sass/core/_legacy/bootstrap/_bootstrap.scss deleted file mode 100644 index 90fc44f..0000000 --- a/theme_old/styles/web/sass/core/_legacy/bootstrap/_bootstrap.scss +++ /dev/null @@ -1,6820 +0,0 @@ -/*! - * Bootstrap v3.3.4 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ - -/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ -html { - font-family: sans-serif; - -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; -} -body { - margin: 0; -} -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; -} -audio, -canvas, -progress, -video { - display: inline-block; - vertical-align: baseline; -} -audio:not([controls]) { - display: none; - height: 0; -} -[hidden], -template { - display: none; -} -a { - background-color: transparent; -} -a:active, -a:hover { - outline: 0; -} -abbr[title] { - border-bottom: 1px dotted; -} -b, -strong { - font-weight: bold; -} -dfn { - font-style: italic; -} -h1 { - margin: 0.67em 0; - font-size: 2em; -} -mark { - color: #000; - background: #ff0; -} -small { - font-size: 80%; -} -sub, -sup { - position: relative; - font-size: 75%; - line-height: 0; - vertical-align: baseline; -} -sup { - top: -0.5em; -} -sub { - bottom: -0.25em; -} -img { - border: 0; -} -svg:not(:root) { - overflow: hidden; -} -figure { - margin: 1em 40px; -} -hr { - height: 0; - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; -} -pre { - overflow: auto; -} -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; -} -button, -input, -optgroup, -select, -textarea { - margin: 0; - font: inherit; - color: inherit; -} -button { - overflow: visible; -} -button, -select { - text-transform: none; -} -button, -html input[type='button'], -input[type='reset'], -input[type='submit'] { - -webkit-appearance: button; - cursor: pointer; -} -//button[disabled], -//html input[disabled] { -// cursor: default; -//} -button::-moz-focus-inner, -input::-moz-focus-inner { - padding: 0; - border: 0; -} -input { - line-height: normal; -} -input[type='checkbox'], -input[type='radio'] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - padding: 0; -} -input[type='number']::-webkit-inner-spin-button, -input[type='number']::-webkit-outer-spin-button { - height: auto; -} -input[type='search'] { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; - -webkit-appearance: textfield; -} -input[type='search']::-webkit-search-cancel-button, -input[type='search']::-webkit-search-decoration { - -webkit-appearance: none; -} -fieldset { - padding: 0.35em 0.625em 0.75em; - margin: 0 2px; - border: 1px solid #c0c0c0; -} -legend { - padding: 0; - border: 0; -} -textarea { - overflow: auto; -} -optgroup { - font-weight: bold; -} -table { - border-spacing: 0; - border-collapse: collapse; -} -td, -th { - padding: 0; -} -/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ -@media print { - *, - *:before, - *:after { - color: #000 !important; - text-shadow: none !important; - background: transparent !important; - -webkit-box-shadow: none !important; - box-shadow: none !important; - } - a, - a:visited { - text-decoration: underline; - } - a[href]:after { - content: ' (' attr(href) ')'; - } - abbr[title]:after { - content: ' (' attr(title) ')'; - } - a[href^='#']:after, - a[href^='javascript:']:after { - content: ''; - } - pre, - blockquote { - border: 1px solid #999; - - page-break-inside: avoid; - } - thead { - display: table-header-group; - } - tr, - img { - page-break-inside: avoid; - } - img { - max-width: 100% !important; - } - p, - h2, - h3 { - orphans: 3; - widows: 3; - } - h2, - h3 { - page-break-after: avoid; - } - select { - background: #fff !important; - } - .navbar { - display: none; - } - .btn > .caret, - .dropup > .btn > .caret { - border-top-color: #000 !important; - } - .label { - border: 1px solid #000; - } - .table { - border-collapse: collapse !important; - } - .table td, - .table th { - background-color: #fff !important; - } - .table-bordered th, - .table-bordered td { - border: 1px solid #ddd !important; - } -} -@font-face { - font-family: 'Glyphicons Halflings'; - src: url('./fonts/glyphicons-halflings-regular.woff2') format('woff2'), - url('./fonts/glyphicons-halflings-regular.woff') format('woff'); -} -.glyphicon { - position: relative; - top: 1px; - display: inline-block; - font-family: 'Glyphicons Halflings'; - font-style: normal; - font-weight: normal; - line-height: 1; - - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} -.glyphicon-asterisk:before { - content: '\2a'; -} -.glyphicon-plus:before { - content: '\2b'; -} -.glyphicon-euro:before, -.glyphicon-eur:before { - content: '\20ac'; -} -.glyphicon-minus:before { - content: '\2212'; -} -.glyphicon-cloud:before { - content: '\2601'; -} -.glyphicon-envelope:before { - content: '\2709'; -} -.glyphicon-pencil:before { - content: '\270f'; -} -.glyphicon-glass:before { - content: '\e001'; -} -.glyphicon-music:before { - content: '\e002'; -} -.glyphicon-search:before { - content: '\e003'; -} -.glyphicon-heart:before { - content: '\e005'; -} -.glyphicon-star:before { - content: '\e006'; -} -.glyphicon-star-empty:before { - content: '\e007'; -} -.glyphicon-user:before { - content: '\e008'; -} -.glyphicon-film:before { - content: '\e009'; -} -.glyphicon-th-large:before { - content: '\e010'; -} -.glyphicon-th:before { - content: '\e011'; -} -.glyphicon-th-list:before { - content: '\e012'; -} -.glyphicon-ok:before { - content: '\e013'; -} -.glyphicon-remove:before { - content: '\e014'; -} -.glyphicon-zoom-in:before { - content: '\e015'; -} -.glyphicon-zoom-out:before { - content: '\e016'; -} -.glyphicon-off:before { - content: '\e017'; -} -.glyphicon-signal:before { - content: '\e018'; -} -.glyphicon-cog:before { - content: '\e019'; -} -.glyphicon-trash:before { - content: '\e020'; -} -.glyphicon-home:before { - content: '\e021'; -} -.glyphicon-file:before { - content: '\e022'; -} -.glyphicon-time:before { - content: '\e023'; -} -.glyphicon-road:before { - content: '\e024'; -} -.glyphicon-download-alt:before { - content: '\e025'; -} -.glyphicon-download:before { - content: '\e026'; -} -.glyphicon-upload:before { - content: '\e027'; -} -.glyphicon-inbox:before { - content: '\e028'; -} -.glyphicon-play-circle:before { - content: '\e029'; -} -.glyphicon-repeat:before { - content: '\e030'; -} -.glyphicon-refresh:before { - content: '\e031'; -} -.glyphicon-list-alt:before { - content: '\e032'; -} -.glyphicon-lock:before { - content: '\e033'; -} -.glyphicon-flag:before { - content: '\e034'; -} -.glyphicon-headphones:before { - content: '\e035'; -} -.glyphicon-volume-off:before { - content: '\e036'; -} -.glyphicon-volume-down:before { - content: '\e037'; -} -.glyphicon-volume-up:before { - content: '\e038'; -} -.glyphicon-qrcode:before { - content: '\e039'; -} -.glyphicon-barcode:before { - content: '\e040'; -} -.glyphicon-tag:before { - content: '\e041'; -} -.glyphicon-tags:before { - content: '\e042'; -} -.glyphicon-book:before { - content: '\e043'; -} -.glyphicon-bookmark:before { - content: '\e044'; -} -.glyphicon-print:before { - content: '\e045'; -} -.glyphicon-camera:before { - content: '\e046'; -} -.glyphicon-font:before { - content: '\e047'; -} -.glyphicon-bold:before { - content: '\e048'; -} -.glyphicon-italic:before { - content: '\e049'; -} -.glyphicon-text-height:before { - content: '\e050'; -} -.glyphicon-text-width:before { - content: '\e051'; -} -.glyphicon-align-left:before { - content: '\e052'; -} -.glyphicon-align-center:before { - content: '\e053'; -} -.glyphicon-align-right:before { - content: '\e054'; -} -.glyphicon-align-justify:before { - content: '\e055'; -} -.glyphicon-list:before { - content: '\e056'; -} -.glyphicon-indent-left:before { - content: '\e057'; -} -.glyphicon-indent-right:before { - content: '\e058'; -} -.glyphicon-facetime-video:before { - content: '\e059'; -} -.glyphicon-picture:before { - content: '\e060'; -} -.glyphicon-map-marker:before { - content: '\e062'; -} -.glyphicon-adjust:before { - content: '\e063'; -} -.glyphicon-tint:before { - content: '\e064'; -} -.glyphicon-edit:before { - content: '\e065'; -} -.glyphicon-share:before { - content: '\e066'; -} -.glyphicon-check:before { - content: '\e067'; -} -.glyphicon-move:before { - content: '\e068'; -} -.glyphicon-step-backward:before { - content: '\e069'; -} -.glyphicon-fast-backward:before { - content: '\e070'; -} -.glyphicon-backward:before { - content: '\e071'; -} -.glyphicon-play:before { - content: '\e072'; -} -.glyphicon-pause:before { - content: '\e073'; -} -.glyphicon-stop:before { - content: '\e074'; -} -.glyphicon-forward:before { - content: '\e075'; -} -.glyphicon-fast-forward:before { - content: '\e076'; -} -.glyphicon-step-forward:before { - content: '\e077'; -} -.glyphicon-eject:before { - content: '\e078'; -} -.glyphicon-chevron-left:before { - content: '\e079'; -} -.glyphicon-chevron-right:before { - content: '\e080'; -} -.glyphicon-plus-sign:before { - content: '\e081'; -} -.glyphicon-minus-sign:before { - content: '\e082'; -} -.glyphicon-remove-sign:before { - content: '\e083'; -} -.glyphicon-ok-sign:before { - content: '\e084'; -} -.glyphicon-question-sign:before { - content: '\e085'; -} -.glyphicon-info-sign:before { - content: '\e086'; -} -.glyphicon-screenshot:before { - content: '\e087'; -} -.glyphicon-remove-circle:before { - content: '\e088'; -} -.glyphicon-ok-circle:before { - content: '\e089'; -} -.glyphicon-ban-circle:before { - content: '\e090'; -} -.glyphicon-arrow-left:before { - content: '\e091'; -} -.glyphicon-arrow-right:before { - content: '\e092'; -} -.glyphicon-arrow-up:before { - content: '\e093'; -} -.glyphicon-arrow-down:before { - content: '\e094'; -} -.glyphicon-share-alt:before { - content: '\e095'; -} -.glyphicon-resize-full:before { - content: '\e096'; -} -.glyphicon-resize-small:before { - content: '\e097'; -} -.glyphicon-exclamation-sign:before { - content: '\e101'; -} -.glyphicon-gift:before { - content: '\e102'; -} -.glyphicon-leaf:before { - content: '\e103'; -} -.glyphicon-fire:before { - content: '\e104'; -} -.glyphicon-eye-open:before { - content: '\e105'; -} -.glyphicon-eye-close:before { - content: '\e106'; -} -.glyphicon-warning-sign:before { - content: '\e107'; -} -.glyphicon-plane:before { - content: '\e108'; -} -.glyphicon-calendar:before { - content: '\e109'; -} -.glyphicon-random:before { - content: '\e110'; -} -.glyphicon-comment:before { - content: '\e111'; -} -.glyphicon-magnet:before { - content: '\e112'; -} -.glyphicon-chevron-up:before { - content: '\e113'; -} -.glyphicon-chevron-down:before { - content: '\e114'; -} -.glyphicon-retweet:before { - content: '\e115'; -} -.glyphicon-shopping-cart:before { - content: '\e116'; -} -.glyphicon-folder-close:before { - content: '\e117'; -} -.glyphicon-folder-open:before { - content: '\e118'; -} -.glyphicon-resize-vertical:before { - content: '\e119'; -} -.glyphicon-resize-horizontal:before { - content: '\e120'; -} -.glyphicon-hdd:before { - content: '\e121'; -} -.glyphicon-bullhorn:before { - content: '\e122'; -} -.glyphicon-bell:before { - content: '\e123'; -} -.glyphicon-certificate:before { - content: '\e124'; -} -.glyphicon-thumbs-up:before { - content: '\e125'; -} -.glyphicon-thumbs-down:before { - content: '\e126'; -} -.glyphicon-hand-right:before { - content: '\e127'; -} -.glyphicon-hand-left:before { - content: '\e128'; -} -.glyphicon-hand-up:before { - content: '\e129'; -} -.glyphicon-hand-down:before { - content: '\e130'; -} -.glyphicon-circle-arrow-right:before { - content: '\e131'; -} -.glyphicon-circle-arrow-left:before { - content: '\e132'; -} -.glyphicon-circle-arrow-up:before { - content: '\e133'; -} -.glyphicon-circle-arrow-down:before { - content: '\e134'; -} -.glyphicon-globe:before { - content: '\e135'; -} -.glyphicon-wrench:before { - content: '\e136'; -} -.glyphicon-tasks:before { - content: '\e137'; -} -.glyphicon-filter:before { - content: '\e138'; -} -.glyphicon-briefcase:before { - content: '\e139'; -} -.glyphicon-fullscreen:before { - content: '\e140'; -} -.glyphicon-dashboard:before { - content: '\e141'; -} -.glyphicon-paperclip:before { - content: '\e142'; -} -.glyphicon-heart-empty:before { - content: '\e143'; -} -.glyphicon-link:before { - content: '\e144'; -} -.glyphicon-phone:before { - content: '\e145'; -} -.glyphicon-pushpin:before { - content: '\e146'; -} -.glyphicon-usd:before { - content: '\e148'; -} -.glyphicon-gbp:before { - content: '\e149'; -} -.glyphicon-sort:before { - content: '\e150'; -} -.glyphicon-sort-by-alphabet:before { - content: '\e151'; -} -.glyphicon-sort-by-alphabet-alt:before { - content: '\e152'; -} -.glyphicon-sort-by-order:before { - content: '\e153'; -} -.glyphicon-sort-by-order-alt:before { - content: '\e154'; -} -.glyphicon-sort-by-attributes:before { - content: '\e155'; -} -.glyphicon-sort-by-attributes-alt:before { - content: '\e156'; -} -.glyphicon-unchecked:before { - content: '\e157'; -} -.glyphicon-expand:before { - content: '\e158'; -} -.glyphicon-collapse-down:before { - content: '\e159'; -} -.glyphicon-collapse-up:before { - content: '\e160'; -} -.glyphicon-log-in:before { - content: '\e161'; -} -.glyphicon-flash:before { - content: '\e162'; -} -.glyphicon-log-out:before { - content: '\e163'; -} -.glyphicon-new-window:before { - content: '\e164'; -} -.glyphicon-record:before { - content: '\e165'; -} -.glyphicon-save:before { - content: '\e166'; -} -.glyphicon-open:before { - content: '\e167'; -} -.glyphicon-saved:before { - content: '\e168'; -} -.glyphicon-import:before { - content: '\e169'; -} -.glyphicon-export:before { - content: '\e170'; -} -.glyphicon-send:before { - content: '\e171'; -} -.glyphicon-floppy-disk:before { - content: '\e172'; -} -.glyphicon-floppy-saved:before { - content: '\e173'; -} -.glyphicon-floppy-remove:before { - content: '\e174'; -} -.glyphicon-floppy-save:before { - content: '\e175'; -} -.glyphicon-floppy-open:before { - content: '\e176'; -} -.glyphicon-credit-card:before { - content: '\e177'; -} -.glyphicon-transfer:before { - content: '\e178'; -} -.glyphicon-cutlery:before { - content: '\e179'; -} -.glyphicon-header:before { - content: '\e180'; -} -.glyphicon-compressed:before { - content: '\e181'; -} -.glyphicon-earphone:before { - content: '\e182'; -} -.glyphicon-phone-alt:before { - content: '\e183'; -} -.glyphicon-tower:before { - content: '\e184'; -} -.glyphicon-stats:before { - content: '\e185'; -} -.glyphicon-sd-video:before { - content: '\e186'; -} -.glyphicon-hd-video:before { - content: '\e187'; -} -.glyphicon-subtitles:before { - content: '\e188'; -} -.glyphicon-sound-stereo:before { - content: '\e189'; -} -.glyphicon-sound-dolby:before { - content: '\e190'; -} -.glyphicon-sound-5-1:before { - content: '\e191'; -} -.glyphicon-sound-6-1:before { - content: '\e192'; -} -.glyphicon-sound-7-1:before { - content: '\e193'; -} -.glyphicon-copyright-mark:before { - content: '\e194'; -} -.glyphicon-registration-mark:before { - content: '\e195'; -} -.glyphicon-cloud-download:before { - content: '\e197'; -} -.glyphicon-cloud-upload:before { - content: '\e198'; -} -.glyphicon-tree-conifer:before { - content: '\e199'; -} -.glyphicon-tree-deciduous:before { - content: '\e200'; -} -.glyphicon-cd:before { - content: '\e201'; -} -.glyphicon-save-file:before { - content: '\e202'; -} -.glyphicon-open-file:before { - content: '\e203'; -} -.glyphicon-level-up:before { - content: '\e204'; -} -.glyphicon-copy:before { - content: '\e205'; -} -.glyphicon-paste:before { - content: '\e206'; -} -.glyphicon-alert:before { - content: '\e209'; -} -.glyphicon-equalizer:before { - content: '\e210'; -} -.glyphicon-king:before { - content: '\e211'; -} -.glyphicon-queen:before { - content: '\e212'; -} -.glyphicon-pawn:before { - content: '\e213'; -} -.glyphicon-bishop:before { - content: '\e214'; -} -.glyphicon-knight:before { - content: '\e215'; -} -.glyphicon-baby-formula:before { - content: '\e216'; -} -.glyphicon-tent:before { - content: '\26fa'; -} -.glyphicon-blackboard:before { - content: '\e218'; -} -.glyphicon-bed:before { - content: '\e219'; -} -.glyphicon-apple:before { - content: '\f8ff'; -} -.glyphicon-erase:before { - content: '\e221'; -} -.glyphicon-hourglass:before { - content: '\231b'; -} -.glyphicon-lamp:before { - content: '\e223'; -} -.glyphicon-duplicate:before { - content: '\e224'; -} -.glyphicon-piggy-bank:before { - content: '\e225'; -} -.glyphicon-scissors:before { - content: '\e226'; -} -.glyphicon-bitcoin:before { - content: '\e227'; -} -.glyphicon-btc:before { - content: '\e227'; -} -.glyphicon-xbt:before { - content: '\e227'; -} -.glyphicon-yen:before { - content: '\00a5'; -} -.glyphicon-jpy:before { - content: '\00a5'; -} -.glyphicon-ruble:before { - content: '\20bd'; -} -.glyphicon-rub:before { - content: '\20bd'; -} -.glyphicon-scale:before { - content: '\e230'; -} -.glyphicon-ice-lolly:before { - content: '\e231'; -} -.glyphicon-ice-lolly-tasted:before { - content: '\e232'; -} -.glyphicon-education:before { - content: '\e233'; -} -.glyphicon-option-horizontal:before { - content: '\e234'; -} -.glyphicon-option-vertical:before { - content: '\e235'; -} -.glyphicon-menu-hamburger:before { - content: '\e236'; -} -.glyphicon-modal-window:before { - content: '\e237'; -} -.glyphicon-oil:before { - content: '\e238'; -} -.glyphicon-grain:before { - content: '\e239'; -} -.glyphicon-sunglasses:before { - content: '\e240'; -} -.glyphicon-text-size:before { - content: '\e241'; -} -.glyphicon-text-color:before { - content: '\e242'; -} -.glyphicon-text-background:before { - content: '\e243'; -} -.glyphicon-object-align-top:before { - content: '\e244'; -} -.glyphicon-object-align-bottom:before { - content: '\e245'; -} -.glyphicon-object-align-horizontal:before { - content: '\e246'; -} -.glyphicon-object-align-left:before { - content: '\e247'; -} -.glyphicon-object-align-vertical:before { - content: '\e248'; -} -.glyphicon-object-align-right:before { - content: '\e249'; -} -.glyphicon-triangle-right:before { - content: '\e250'; -} -.glyphicon-triangle-left:before { - content: '\e251'; -} -.glyphicon-triangle-bottom:before { - content: '\e252'; -} -.glyphicon-triangle-top:before { - content: '\e253'; -} -.glyphicon-console:before { - content: '\e254'; -} -.glyphicon-superscript:before { - content: '\e255'; -} -.glyphicon-subscript:before { - content: '\e256'; -} -.glyphicon-menu-left:before { - content: '\e257'; -} -.glyphicon-menu-right:before { - content: '\e258'; -} -.glyphicon-menu-down:before { - content: '\e259'; -} -.glyphicon-menu-up:before { - content: '\e260'; -} -* { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -*:before, -*:after { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -html { - font-size: 10px; - - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -} -body { - font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; - font-size: 14px; - line-height: 1.42857143; - color: #333; - background-color: #fff; -} -input, -button, -select, -textarea { - font-family: inherit; - font-size: inherit; - line-height: inherit; -} -a { - color: #337ab7; - text-decoration: none; -} -a:hover, -a:focus { - color: #23527c; - text-decoration: underline; -} -a:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -figure { - margin: 0; -} -img { - vertical-align: middle; -} -.img-responsive, -.thumbnail > img, -.thumbnail a > img, -.carousel-inner > .item > img, -.carousel-inner > .item > a > img { - display: block; - max-width: 100%; - height: auto; -} -.img-rounded { - border-radius: 6px; -} -.img-thumbnail { - display: inline-block; - max-width: 100%; - height: auto; - padding: 4px; - line-height: 1.42857143; - background-color: #fff; - border: 1px solid #ddd; - border-radius: 4px; - -webkit-transition: all 0.2s ease-in-out; - -o-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; -} -.img-circle { - border-radius: 50%; -} -hr { - margin-top: 20px; - margin-bottom: 20px; - border: 0; - border-top: 1px solid #eee; -} -.sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; -} -.sr-only-focusable:active, -.sr-only-focusable:focus { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; -} -[role='button'] { - cursor: pointer; -} -h1, -h2, -h3, -h4, -h5, -h6, -.h1, -.h2, -.h3, -.h4, -.h5, -.h6 { - font-family: inherit; - font-weight: 500; - line-height: 1.1; - color: inherit; -} -h1 small, -h2 small, -h3 small, -h4 small, -h5 small, -h6 small, -.h1 small, -.h2 small, -.h3 small, -.h4 small, -.h5 small, -.h6 small, -h1 .small, -h2 .small, -h3 .small, -h4 .small, -h5 .small, -h6 .small, -.h1 .small, -.h2 .small, -.h3 .small, -.h4 .small, -.h5 .small, -.h6 .small { - font-weight: normal; - line-height: 1; - color: #777; -} -h1, -.h1, -h2, -.h2, -h3, -.h3 { - margin-top: 20px; - margin-bottom: 10px; -} -h1 small, -.h1 small, -h2 small, -.h2 small, -h3 small, -.h3 small, -h1 .small, -.h1 .small, -h2 .small, -.h2 .small, -h3 .small, -.h3 .small { - font-size: 65%; -} -h4, -.h4, -h5, -.h5, -h6, -.h6 { - margin-top: 10px; - margin-bottom: 10px; -} -h4 small, -.h4 small, -h5 small, -.h5 small, -h6 small, -.h6 small, -h4 .small, -.h4 .small, -h5 .small, -.h5 .small, -h6 .small, -.h6 .small { - font-size: 75%; -} -h1, -.h1 { - font-size: 36px; -} -h2, -.h2 { - font-size: 30px; -} -h3, -.h3 { - font-size: 24px; -} -h4, -.h4 { - font-size: 18px; -} -h5, -.h5 { - font-size: 14px; -} -h6, -.h6 { - font-size: 12px; -} -p { - margin: 0 0 10px; -} -.lead { - margin-bottom: 20px; - font-size: 16px; - font-weight: 300; - line-height: 1.4; -} -@media (min-width: 768px) { - .lead { - font-size: 21px; - } -} -small, -.small { - font-size: 85%; -} -mark, -.mark { - padding: 0.2em; - background-color: #fcf8e3; -} -.text-left { - text-align: left; -} -.text-right { - text-align: right; -} -.text-center { - text-align: center; -} -.text-justify { - text-align: justify; -} -.text-nowrap { - white-space: nowrap; -} -.text-lowercase { - text-transform: lowercase; -} -.text-uppercase { - text-transform: uppercase; -} -.text-capitalize { - text-transform: capitalize; -} -.text-muted { - color: #777; -} -.text-primary { - color: #337ab7; -} -a.text-primary:hover { - color: #286090; -} -.text-success { - color: #3c763d; -} -a.text-success:hover { - color: #2b542c; -} -.text-info { - color: #31708f; -} -a.text-info:hover { - color: #245269; -} -.text-warning { - color: #8a6d3b; -} -a.text-warning:hover { - color: #66512c; -} -.text-danger { - color: #a94442; -} -a.text-danger:hover { - color: #843534; -} -.bg-primary { - color: #fff; - background-color: #337ab7; -} -a.bg-primary:hover { - background-color: #286090; -} -.bg-success { - background-color: #dff0d8; -} -a.bg-success:hover { - background-color: #c1e2b3; -} -.bg-info { - background-color: #d9edf7; -} -a.bg-info:hover { - background-color: #afd9ee; -} -.bg-warning { - background-color: #fcf8e3; -} -a.bg-warning:hover { - background-color: #f7ecb5; -} -.bg-danger { - background-color: #f2dede; -} -a.bg-danger:hover { - background-color: #e4b9b9; -} -.page-header { - padding-bottom: 9px; - margin: 40px 0 20px; - border-bottom: 1px solid #eee; -} -ul, -ol { - margin-top: 0; - margin-bottom: 10px; -} -ul ul, -ol ul, -ul ol, -ol ol { - margin-bottom: 0; -} -.list-unstyled { - padding-left: 0; - list-style: none; -} -.list-inline { - padding-left: 0; - margin-left: -5px; - list-style: none; -} -.list-inline > li { - display: inline-block; - padding-right: 5px; - padding-left: 5px; -} -dl { - margin-top: 0; - margin-bottom: 20px; -} -dt, -dd { - line-height: 1.42857143; -} -dt { - font-weight: bold; -} -dd { - margin-left: 0; -} -@media (min-width: 768px) { - .dl-horizontal dt { - float: left; - width: 160px; - overflow: hidden; - clear: left; - text-align: right; - text-overflow: ellipsis; - white-space: nowrap; - } - .dl-horizontal dd { - margin-left: 180px; - } -} -abbr[title], -abbr[data-original-title] { - cursor: help; - border-bottom: 1px dotted #777; -} -.initialism { - font-size: 90%; - text-transform: uppercase; -} -blockquote { - padding: 10px 20px; - margin: 0 0 20px; - font-size: 17.5px; - border-left: 5px solid #eee; -} -blockquote p:last-child, -blockquote ul:last-child, -blockquote ol:last-child { - margin-bottom: 0; -} -blockquote footer, -blockquote small, -blockquote .small { - display: block; - font-size: 80%; - line-height: 1.42857143; - color: #777; -} -blockquote footer:before, -blockquote small:before, -blockquote .small:before { - content: '\2014 \00A0'; -} -.blockquote-reverse, -blockquote.pull-right { - padding-right: 15px; - padding-left: 0; - text-align: right; - border-right: 5px solid #eee; - border-left: 0; -} -.blockquote-reverse footer:before, -blockquote.pull-right footer:before, -.blockquote-reverse small:before, -blockquote.pull-right small:before, -.blockquote-reverse .small:before, -blockquote.pull-right .small:before { - content: ''; -} -.blockquote-reverse footer:after, -blockquote.pull-right footer:after, -.blockquote-reverse small:after, -blockquote.pull-right small:after, -.blockquote-reverse .small:after, -blockquote.pull-right .small:after { - content: '\00A0 \2014'; -} -address { - margin-bottom: 20px; - font-style: normal; - line-height: 1.42857143; -} -code, -kbd, -pre, -samp { - font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; -} -code { - padding: 2px 4px; - font-size: 90%; - color: #c7254e; - background-color: #f9f2f4; - border-radius: 4px; -} -kbd { - padding: 2px 4px; - font-size: 90%; - color: #fff; - background-color: #333; - border-radius: 3px; - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); -} -kbd kbd { - padding: 0; - font-size: 100%; - font-weight: bold; - -webkit-box-shadow: none; - box-shadow: none; -} -pre { - display: block; - padding: 9.5px; - margin: 0 0 10px; - font-size: 13px; - line-height: 1.42857143; - color: #333; - word-break: break-all; - word-wrap: break-word; - background-color: #f5f5f5; - border: 1px solid #ccc; - border-radius: 4px; -} -pre code { - padding: 0; - font-size: inherit; - color: inherit; - white-space: pre-wrap; - background-color: transparent; - border-radius: 0; -} -.pre-scrollable { - max-height: 340px; - overflow-y: scroll; -} -.container { - padding-right: 15px; - padding-left: 15px; - margin-right: auto; - margin-left: auto; -} -@media (min-width: 768px) { - .container { - width: 750px; - } -} -@media (min-width: 992px) { - .container { - width: 970px; - } -} -@media (min-width: 1200px) { - .container { - width: 1170px; - } -} -.container-fluid { - padding-right: 15px; - padding-left: 15px; - margin-right: auto; - margin-left: auto; -} -.row { - margin-right: -15px; - margin-left: -15px; -} -//.col-xs-1, -//.col-sm-1, -//.col-md-1, -//.col-lg-1, -//.col-xs-2, -//.col-sm-2, -//.col-md-2, -//.col-lg-2, -//.col-xs-3, -//.col-sm-3, -//.col-md-3, -//.col-lg-3, -//.col-xs-4, -//.col-sm-4, -//.col-md-4, -//.col-lg-4, -//.col-xs-5, -//.col-sm-5, -//.col-md-5, -//.col-lg-5, -//.col-xs-6, -//.col-sm-6, -//.col-md-6, -//.col-lg-6, -//.col-xs-7, -//.col-sm-7, -//.col-md-7, -//.col-lg-7, -//.col-xs-8, -//.col-sm-8, -//.col-md-8, -//.col-lg-8, -//.col-xs-9, -//.col-sm-9, -//.col-md-9, -//.col-lg-9, -//.col-xs-10, -//.col-sm-10, -//.col-md-10, -//.col-lg-10, -//.col-xs-11, -//.col-sm-11, -//.col-md-11, -//.col-lg-11, -//.col-xs-12, -//.col-sm-12, -//.col-md-12, -//.col-lg-12 { -// position: relative; -// min-height: 1px; -// padding-right: 15px; -// padding-left: 15px; -//} -//.col-xs-1, -//.col-xs-2, -//.col-xs-3, -//.col-xs-4, -//.col-xs-5, -//.col-xs-6, -//.col-xs-7, -//.col-xs-8, -//.col-xs-9, -//.col-xs-10, -//.col-xs-11, -//.col-xs-12 { -// float: left; -//} -//.col-xs-12 { -// width: 100%; -//} -//.col-xs-11 { -// width: 91.66666667%; -//} -//.col-xs-10 { -// width: 83.33333333%; -//} -//.col-xs-9 { -// width: 75%; -//} -//.col-xs-8 { -// width: 66.66666667%; -//} -//.col-xs-7 { -// width: 58.33333333%; -//} -//.col-xs-6 { -// width: 50%; -//} -//.col-xs-5 { -// width: 41.66666667%; -//} -//.col-xs-4 { -// width: 33.33333333%; -//} -//.col-xs-3 { -// width: 25%; -//} -//.col-xs-2 { -// width: 16.66666667%; -//} -//.col-xs-1 { -// width: 8.33333333%; -//} -//.col-xs-pull-12 { -// right: 100%; -//} -//.col-xs-pull-11 { -// right: 91.66666667%; -//} -//.col-xs-pull-10 { -// right: 83.33333333%; -//} -//.col-xs-pull-9 { -// right: 75%; -//} -//.col-xs-pull-8 { -// right: 66.66666667%; -//} -//.col-xs-pull-7 { -// right: 58.33333333%; -//} -//.col-xs-pull-6 { -// right: 50%; -//} -//.col-xs-pull-5 { -// right: 41.66666667%; -//} -//.col-xs-pull-4 { -// right: 33.33333333%; -//} -//.col-xs-pull-3 { -// right: 25%; -//} -//.col-xs-pull-2 { -// right: 16.66666667%; -//} -//.col-xs-pull-1 { -// right: 8.33333333%; -//} -//.col-xs-pull-0 { -// right: auto; -//} -//.col-xs-push-12 { -// left: 100%; -//} -//.col-xs-push-11 { -// left: 91.66666667%; -//} -//.col-xs-push-10 { -// left: 83.33333333%; -//} -//.col-xs-push-9 { -// left: 75%; -//} -//.col-xs-push-8 { -// left: 66.66666667%; -//} -//.col-xs-push-7 { -// left: 58.33333333%; -//} -//.col-xs-push-6 { -// left: 50%; -//} -//.col-xs-push-5 { -// left: 41.66666667%; -//} -//.col-xs-push-4 { -// left: 33.33333333%; -//} -//.col-xs-push-3 { -// left: 25%; -//} -//.col-xs-push-2 { -// left: 16.66666667%; -//} -//.col-xs-push-1 { -// left: 8.33333333%; -//} -//.col-xs-push-0 { -// left: auto; -//} -//.col-xs-offset-12 { -// margin-left: 100%; -//} -//.col-xs-offset-11 { -// margin-left: 91.66666667%; -//} -//.col-xs-offset-10 { -// margin-left: 83.33333333%; -//} -//.col-xs-offset-9 { -// margin-left: 75%; -//} -//.col-xs-offset-8 { -// margin-left: 66.66666667%; -//} -//.col-xs-offset-7 { -// margin-left: 58.33333333%; -//} -//.col-xs-offset-6 { -// margin-left: 50%; -//} -//.col-xs-offset-5 { -// margin-left: 41.66666667%; -//} -//.col-xs-offset-4 { -// margin-left: 33.33333333%; -//} -//.col-xs-offset-3 { -// margin-left: 25%; -//} -//.col-xs-offset-2 { -// margin-left: 16.66666667%; -//} -//.col-xs-offset-1 { -// margin-left: 8.33333333%; -//} -//.col-xs-offset-0 { -// margin-left: 0; -//} -//@media (min-width: 768px) { -// .col-sm-1, -// .col-sm-2, -// .col-sm-3, -// .col-sm-4, -// .col-sm-5, -// .col-sm-6, -// .col-sm-7, -// .col-sm-8, -// .col-sm-9, -// .col-sm-10, -// .col-sm-11, -// .col-sm-12 { -// float: left; -// } -// .col-sm-12 { -// width: 100%; -// } -// .col-sm-11 { -// width: 91.66666667%; -// } -// .col-sm-10 { -// width: 83.33333333%; -// } -// .col-sm-9 { -// width: 75%; -// } -// .col-sm-8 { -// width: 66.66666667%; -// } -// .col-sm-7 { -// width: 58.33333333%; -// } -// .col-sm-6 { -// width: 50%; -// } -// .col-sm-5 { -// width: 41.66666667%; -// } -// .col-sm-4 { -// width: 33.33333333%; -// } -// .col-sm-3 { -// width: 25%; -// } -// .col-sm-2 { -// width: 16.66666667%; -// } -// .col-sm-1 { -// width: 8.33333333%; -// } -// .col-sm-pull-12 { -// right: 100%; -// } -// .col-sm-pull-11 { -// right: 91.66666667%; -// } -// .col-sm-pull-10 { -// right: 83.33333333%; -// } -// .col-sm-pull-9 { -// right: 75%; -// } -// .col-sm-pull-8 { -// right: 66.66666667%; -// } -// .col-sm-pull-7 { -// right: 58.33333333%; -// } -// .col-sm-pull-6 { -// right: 50%; -// } -// .col-sm-pull-5 { -// right: 41.66666667%; -// } -// .col-sm-pull-4 { -// right: 33.33333333%; -// } -// .col-sm-pull-3 { -// right: 25%; -// } -// .col-sm-pull-2 { -// right: 16.66666667%; -// } -// .col-sm-pull-1 { -// right: 8.33333333%; -// } -// .col-sm-pull-0 { -// right: auto; -// } -// .col-sm-push-12 { -// left: 100%; -// } -// .col-sm-push-11 { -// left: 91.66666667%; -// } -// .col-sm-push-10 { -// left: 83.33333333%; -// } -// .col-sm-push-9 { -// left: 75%; -// } -// .col-sm-push-8 { -// left: 66.66666667%; -// } -// .col-sm-push-7 { -// left: 58.33333333%; -// } -// .col-sm-push-6 { -// left: 50%; -// } -// .col-sm-push-5 { -// left: 41.66666667%; -// } -// .col-sm-push-4 { -// left: 33.33333333%; -// } -// .col-sm-push-3 { -// left: 25%; -// } -// .col-sm-push-2 { -// left: 16.66666667%; -// } -// .col-sm-push-1 { -// left: 8.33333333%; -// } -// .col-sm-push-0 { -// left: auto; -// } -// .col-sm-offset-12 { -// margin-left: 100%; -// } -// .col-sm-offset-11 { -// margin-left: 91.66666667%; -// } -// .col-sm-offset-10 { -// margin-left: 83.33333333%; -// } -// .col-sm-offset-9 { -// margin-left: 75%; -// } -// .col-sm-offset-8 { -// margin-left: 66.66666667%; -// } -// .col-sm-offset-7 { -// margin-left: 58.33333333%; -// } -// .col-sm-offset-6 { -// margin-left: 50%; -// } -// .col-sm-offset-5 { -// margin-left: 41.66666667%; -// } -// .col-sm-offset-4 { -// margin-left: 33.33333333%; -// } -// .col-sm-offset-3 { -// margin-left: 25%; -// } -// .col-sm-offset-2 { -// margin-left: 16.66666667%; -// } -// .col-sm-offset-1 { -// margin-left: 8.33333333%; -// } -// .col-sm-offset-0 { -// margin-left: 0; -// } -//} -//@media (min-width: 992px) { -// .col-md-1, -// .col-md-2, -// .col-md-3, -// .col-md-4, -// .col-md-5, -// .col-md-6, -// .col-md-7, -// .col-md-8, -// .col-md-9, -// .col-md-10, -// .col-md-11, -// .col-md-12 { -// float: left; -// } -// .col-md-12 { -// width: 100%; -// } -// .col-md-11 { -// width: 91.66666667%; -// } -// .col-md-10 { -// width: 83.33333333%; -// } -// .col-md-9 { -// width: 75%; -// } -// .col-md-8 { -// width: 66.66666667%; -// } -// .col-md-7 { -// width: 58.33333333%; -// } -// .col-md-6 { -// width: 50%; -// } -// .col-md-5 { -// width: 41.66666667%; -// } -// .col-md-4 { -// width: 33.33333333%; -// } -// .col-md-3 { -// width: 25%; -// } -// .col-md-2 { -// width: 16.66666667%; -// } -// .col-md-1 { -// width: 8.33333333%; -// } -// .col-md-pull-12 { -// right: 100%; -// } -// .col-md-pull-11 { -// right: 91.66666667%; -// } -// .col-md-pull-10 { -// right: 83.33333333%; -// } -// .col-md-pull-9 { -// right: 75%; -// } -// .col-md-pull-8 { -// right: 66.66666667%; -// } -// .col-md-pull-7 { -// right: 58.33333333%; -// } -// .col-md-pull-6 { -// right: 50%; -// } -// .col-md-pull-5 { -// right: 41.66666667%; -// } -// .col-md-pull-4 { -// right: 33.33333333%; -// } -// .col-md-pull-3 { -// right: 25%; -// } -// .col-md-pull-2 { -// right: 16.66666667%; -// } -// .col-md-pull-1 { -// right: 8.33333333%; -// } -// .col-md-pull-0 { -// right: auto; -// } -// .col-md-push-12 { -// left: 100%; -// } -// .col-md-push-11 { -// left: 91.66666667%; -// } -// .col-md-push-10 { -// left: 83.33333333%; -// } -// .col-md-push-9 { -// left: 75%; -// } -// .col-md-push-8 { -// left: 66.66666667%; -// } -// .col-md-push-7 { -// left: 58.33333333%; -// } -// .col-md-push-6 { -// left: 50%; -// } -// .col-md-push-5 { -// left: 41.66666667%; -// } -// .col-md-push-4 { -// left: 33.33333333%; -// } -// .col-md-push-3 { -// left: 25%; -// } -// .col-md-push-2 { -// left: 16.66666667%; -// } -// .col-md-push-1 { -// left: 8.33333333%; -// } -// .col-md-push-0 { -// left: auto; -// } -// .col-md-offset-12 { -// margin-left: 100%; -// } -// .col-md-offset-11 { -// margin-left: 91.66666667%; -// } -// .col-md-offset-10 { -// margin-left: 83.33333333%; -// } -// .col-md-offset-9 { -// margin-left: 75%; -// } -// .col-md-offset-8 { -// margin-left: 66.66666667%; -// } -// .col-md-offset-7 { -// margin-left: 58.33333333%; -// } -// .col-md-offset-6 { -// margin-left: 50%; -// } -// .col-md-offset-5 { -// margin-left: 41.66666667%; -// } -// .col-md-offset-4 { -// margin-left: 33.33333333%; -// } -// .col-md-offset-3 { -// margin-left: 25%; -// } -// .col-md-offset-2 { -// margin-left: 16.66666667%; -// } -// .col-md-offset-1 { -// margin-left: 8.33333333%; -// } -// .col-md-offset-0 { -// margin-left: 0; -// } -//} -//@media (min-width: 1200px) { -// .col-lg-1, -// .col-lg-2, -// .col-lg-3, -// .col-lg-4, -// .col-lg-5, -// .col-lg-6, -// .col-lg-7, -// .col-lg-8, -// .col-lg-9, -// .col-lg-10, -// .col-lg-11, -// .col-lg-12 { -// float: left; -// } -// .col-lg-12 { -// width: 100%; -// } -// .col-lg-11 { -// width: 91.66666667%; -// } -// .col-lg-10 { -// width: 83.33333333%; -// } -// .col-lg-9 { -// width: 75%; -// } -// .col-lg-8 { -// width: 66.66666667%; -// } -// .col-lg-7 { -// width: 58.33333333%; -// } -// .col-lg-6 { -// width: 50%; -// } -// .col-lg-5 { -// width: 41.66666667%; -// } -// .col-lg-4 { -// width: 33.33333333%; -// } -// .col-lg-3 { -// width: 25%; -// } -// .col-lg-2 { -// width: 16.66666667%; -// } -// .col-lg-1 { -// width: 8.33333333%; -// } -// .col-lg-pull-12 { -// right: 100%; -// } -// .col-lg-pull-11 { -// right: 91.66666667%; -// } -// .col-lg-pull-10 { -// right: 83.33333333%; -// } -// .col-lg-pull-9 { -// right: 75%; -// } -// .col-lg-pull-8 { -// right: 66.66666667%; -// } -// .col-lg-pull-7 { -// right: 58.33333333%; -// } -// .col-lg-pull-6 { -// right: 50%; -// } -// .col-lg-pull-5 { -// right: 41.66666667%; -// } -// .col-lg-pull-4 { -// right: 33.33333333%; -// } -// .col-lg-pull-3 { -// right: 25%; -// } -// .col-lg-pull-2 { -// right: 16.66666667%; -// } -// .col-lg-pull-1 { -// right: 8.33333333%; -// } -// .col-lg-pull-0 { -// right: auto; -// } -// .col-lg-push-12 { -// left: 100%; -// } -// .col-lg-push-11 { -// left: 91.66666667%; -// } -// .col-lg-push-10 { -// left: 83.33333333%; -// } -// .col-lg-push-9 { -// left: 75%; -// } -// .col-lg-push-8 { -// left: 66.66666667%; -// } -// .col-lg-push-7 { -// left: 58.33333333%; -// } -// .col-lg-push-6 { -// left: 50%; -// } -// .col-lg-push-5 { -// left: 41.66666667%; -// } -// .col-lg-push-4 { -// left: 33.33333333%; -// } -// .col-lg-push-3 { -// left: 25%; -// } -// .col-lg-push-2 { -// left: 16.66666667%; -// } -// .col-lg-push-1 { -// left: 8.33333333%; -// } -// .col-lg-push-0 { -// left: auto; -// } -// .col-lg-offset-12 { -// margin-left: 100%; -// } -// .col-lg-offset-11 { -// margin-left: 91.66666667%; -// } -// .col-lg-offset-10 { -// margin-left: 83.33333333%; -// } -// .col-lg-offset-9 { -// margin-left: 75%; -// } -// .col-lg-offset-8 { -// margin-left: 66.66666667%; -// } -// .col-lg-offset-7 { -// margin-left: 58.33333333%; -// } -// .col-lg-offset-6 { -// margin-left: 50%; -// } -// .col-lg-offset-5 { -// margin-left: 41.66666667%; -// } -// .col-lg-offset-4 { -// margin-left: 33.33333333%; -// } -// .col-lg-offset-3 { -// margin-left: 25%; -// } -// .col-lg-offset-2 { -// margin-left: 16.66666667%; -// } -// .col-lg-offset-1 { -// margin-left: 8.33333333%; -// } -// .col-lg-offset-0 { -// margin-left: 0; -// } -//} -table { - background-color: transparent; -} -caption { - padding-top: 8px; - padding-bottom: 8px; - color: #777; - text-align: left; -} -th { - text-align: left; -} -.table { - width: 100%; - max-width: 100%; - margin-bottom: 20px; -} -.table > thead > tr > th, -.table > tbody > tr > th, -.table > tfoot > tr > th, -.table > thead > tr > td, -.table > tbody > tr > td, -.table > tfoot > tr > td { - padding: 8px; - line-height: 1.42857143; - vertical-align: top; - border-top: 1px solid #ddd; -} -.table > thead > tr > th { - vertical-align: bottom; - border-bottom: 2px solid #ddd; -} -.table > caption + thead > tr:first-child > th, -.table > colgroup + thead > tr:first-child > th, -.table > thead:first-child > tr:first-child > th, -.table > caption + thead > tr:first-child > td, -.table > colgroup + thead > tr:first-child > td, -.table > thead:first-child > tr:first-child > td { - border-top: 0; -} -.table > tbody + tbody { - border-top: 2px solid #ddd; -} -.table .table { - background-color: #fff; -} -.table-condensed > thead > tr > th, -.table-condensed > tbody > tr > th, -.table-condensed > tfoot > tr > th, -.table-condensed > thead > tr > td, -.table-condensed > tbody > tr > td, -.table-condensed > tfoot > tr > td { - padding: 5px; -} -.table-bordered { - border: 1px solid #ddd; -} -.table-bordered > thead > tr > th, -.table-bordered > tbody > tr > th, -.table-bordered > tfoot > tr > th, -.table-bordered > thead > tr > td, -.table-bordered > tbody > tr > td, -.table-bordered > tfoot > tr > td { - border: 1px solid #ddd; -} -.table-bordered > thead > tr > th, -.table-bordered > thead > tr > td { - border-bottom-width: 2px; -} -.table-striped > tbody > tr:nth-of-type(odd) { - background-color: #f9f9f9; -} -.table-hover > tbody > tr:hover { - background-color: #f5f5f5; -} -table col[class*='col-'] { - position: static; - display: table-column; - float: none; -} -table td[class*='col-'], -table th[class*='col-'] { - position: static; - display: table-cell; - float: none; -} -.table > thead > tr > td.active, -.table > tbody > tr > td.active, -.table > tfoot > tr > td.active, -.table > thead > tr > th.active, -.table > tbody > tr > th.active, -.table > tfoot > tr > th.active, -.table > thead > tr.active > td, -.table > tbody > tr.active > td, -.table > tfoot > tr.active > td, -.table > thead > tr.active > th, -.table > tbody > tr.active > th, -.table > tfoot > tr.active > th { - background-color: #f5f5f5; -} -.table-hover > tbody > tr > td.active:hover, -.table-hover > tbody > tr > th.active:hover, -.table-hover > tbody > tr.active:hover > td, -.table-hover > tbody > tr:hover > .active, -.table-hover > tbody > tr.active:hover > th { - background-color: #e8e8e8; -} -.table > thead > tr > td.success, -.table > tbody > tr > td.success, -.table > tfoot > tr > td.success, -.table > thead > tr > th.success, -.table > tbody > tr > th.success, -.table > tfoot > tr > th.success, -.table > thead > tr.success > td, -.table > tbody > tr.success > td, -.table > tfoot > tr.success > td, -.table > thead > tr.success > th, -.table > tbody > tr.success > th, -.table > tfoot > tr.success > th { - background-color: #dff0d8; -} -.table-hover > tbody > tr > td.success:hover, -.table-hover > tbody > tr > th.success:hover, -.table-hover > tbody > tr.success:hover > td, -.table-hover > tbody > tr:hover > .success, -.table-hover > tbody > tr.success:hover > th { - background-color: #d0e9c6; -} -.table > thead > tr > td.info, -.table > tbody > tr > td.info, -.table > tfoot > tr > td.info, -.table > thead > tr > th.info, -.table > tbody > tr > th.info, -.table > tfoot > tr > th.info, -.table > thead > tr.info > td, -.table > tbody > tr.info > td, -.table > tfoot > tr.info > td, -.table > thead > tr.info > th, -.table > tbody > tr.info > th, -.table > tfoot > tr.info > th { - background-color: #d9edf7; -} -.table-hover > tbody > tr > td.info:hover, -.table-hover > tbody > tr > th.info:hover, -.table-hover > tbody > tr.info:hover > td, -.table-hover > tbody > tr:hover > .info, -.table-hover > tbody > tr.info:hover > th { - background-color: #c4e3f3; -} -.table > thead > tr > td.warning, -.table > tbody > tr > td.warning, -.table > tfoot > tr > td.warning, -.table > thead > tr > th.warning, -.table > tbody > tr > th.warning, -.table > tfoot > tr > th.warning, -.table > thead > tr.warning > td, -.table > tbody > tr.warning > td, -.table > tfoot > tr.warning > td, -.table > thead > tr.warning > th, -.table > tbody > tr.warning > th, -.table > tfoot > tr.warning > th { - background-color: #fcf8e3; -} -.table-hover > tbody > tr > td.warning:hover, -.table-hover > tbody > tr > th.warning:hover, -.table-hover > tbody > tr.warning:hover > td, -.table-hover > tbody > tr:hover > .warning, -.table-hover > tbody > tr.warning:hover > th { - background-color: #faf2cc; -} -.table > thead > tr > td.danger, -.table > tbody > tr > td.danger, -.table > tfoot > tr > td.danger, -.table > thead > tr > th.danger, -.table > tbody > tr > th.danger, -.table > tfoot > tr > th.danger, -.table > thead > tr.danger > td, -.table > tbody > tr.danger > td, -.table > tfoot > tr.danger > td, -.table > thead > tr.danger > th, -.table > tbody > tr.danger > th, -.table > tfoot > tr.danger > th { - background-color: #f2dede; -} -.table-hover > tbody > tr > td.danger:hover, -.table-hover > tbody > tr > th.danger:hover, -.table-hover > tbody > tr.danger:hover > td, -.table-hover > tbody > tr:hover > .danger, -.table-hover > tbody > tr.danger:hover > th { - background-color: #ebcccc; -} -.table-responsive { - min-height: 0.01%; - overflow-x: auto; -} -@media screen and (max-width: 767px) { - .table-responsive { - width: 100%; - margin-bottom: 15px; - overflow-y: hidden; - -ms-overflow-style: -ms-autohiding-scrollbar; - border: 1px solid #ddd; - } - .table-responsive > .table { - margin-bottom: 0; - } - .table-responsive > .table > thead > tr > th, - .table-responsive > .table > tbody > tr > th, - .table-responsive > .table > tfoot > tr > th, - .table-responsive > .table > thead > tr > td, - .table-responsive > .table > tbody > tr > td, - .table-responsive > .table > tfoot > tr > td { - white-space: nowrap; - } - .table-responsive > .table-bordered { - border: 0; - } - .table-responsive > .table-bordered > thead > tr > th:first-child, - .table-responsive > .table-bordered > tbody > tr > th:first-child, - .table-responsive > .table-bordered > tfoot > tr > th:first-child, - .table-responsive > .table-bordered > thead > tr > td:first-child, - .table-responsive > .table-bordered > tbody > tr > td:first-child, - .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; - } - .table-responsive > .table-bordered > thead > tr > th:last-child, - .table-responsive > .table-bordered > tbody > tr > th:last-child, - .table-responsive > .table-bordered > tfoot > tr > th:last-child, - .table-responsive > .table-bordered > thead > tr > td:last-child, - .table-responsive > .table-bordered > tbody > tr > td:last-child, - .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; - } - .table-responsive > .table-bordered > tbody > tr:last-child > th, - .table-responsive > .table-bordered > tfoot > tr:last-child > th, - .table-responsive > .table-bordered > tbody > tr:last-child > td, - .table-responsive > .table-bordered > tfoot > tr:last-child > td { - border-bottom: 0; - } -} -fieldset { - min-width: 0; - padding: 0; - margin: 0; - border: 0; -} -legend { - display: block; - width: 100%; - padding: 0; - margin-bottom: 20px; - font-size: 21px; - line-height: inherit; - color: #333; - border: 0; - border-bottom: 1px solid #e5e5e5; -} -label { - display: inline-block; - max-width: 100%; - margin-bottom: 5px; - font-weight: bold; -} -input[type='search'] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -input[type='radio'], -input[type='checkbox'] { - margin: 4px 0 0; - margin-top: 1px \9; - line-height: normal; -} -input[type='file'] { - display: block; -} -input[type='range'] { - display: block; - width: 100%; -} -select[multiple], -select[size] { - height: auto; -} -input[type='file']:focus, -input[type='radio']:focus, -input[type='checkbox']:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -output { - display: block; - padding-top: 7px; - font-size: 14px; - line-height: 1.42857143; - color: #555; -} -//.form-control { -// display: block; -// width: 100%; -// height: 34px; -// padding: 6px 12px; -// font-size: 14px; -// line-height: 1.42857143; -// color: #555; -// background-color: #fff; -// background-image: none; -// border: 1px solid #ccc; -// border-radius: 4px; -// -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -// box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -// -webkit-transition: border-color ease-in-out 0.15s, -webkit-box-shadow ease-in-out 0.15s; -// -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; -// transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; -//} -//.form-control:focus { -// border-color: #66afe9; -// outline: 0; -// -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); -// box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); -//} -//.form-control::-moz-placeholder { -// color: #999; -// opacity: 1; -//} -//.form-control:-ms-input-placeholder { -// color: #999; -//} -//.form-control::-webkit-input-placeholder { -// color: #999; -//} -//.form-control[disabled], -//.form-control[readonly], -//fieldset[disabled] .form-control { -// background-color: #eee; -// opacity: 1; -//} -//.form-control[disabled], -//fieldset[disabled] .form-control { -// cursor: not-allowed; -//} -//textarea.form-control { -// height: auto; -//} -//input[type='search'] { -// -webkit-appearance: none; -//} -// @media screen and (-webkit-min-device-pixel-ratio: 0) { -// input[type='date'], -// input[type='time'], -// input[type='datetime-local'], -// input[type='month'] { -// line-height: 34px; -// } -// input[type='date'].input-sm, -// input[type='time'].input-sm, -// input[type='datetime-local'].input-sm, -// input[type='month'].input-sm, -// .input-group-sm input[type='date'], -// .input-group-sm input[type='time'], -// .input-group-sm input[type='datetime-local'], -// .input-group-sm input[type='month'] { -// line-height: 30px; -// } -// input[type='date'].input-lg, -// input[type='time'].input-lg, -// input[type='datetime-local'].input-lg, -// input[type='month'].input-lg, -// .input-group-lg input[type='date'], -// .input-group-lg input[type='time'], -// .input-group-lg input[type='datetime-local'], -// .input-group-lg input[type='month'] { -// line-height: 46px; -// } -// } -//.form-group { -// margin-bottom: 15px; -//} -.radio, -.checkbox { - position: relative; - display: block; - margin-top: 10px; - margin-bottom: 10px; -} -.radio label, -.checkbox label { - min-height: 20px; - padding-left: 20px; - margin-bottom: 0; - font-weight: normal; - cursor: pointer; -} -.radio input[type='radio'], -.radio-inline input[type='radio'], -.checkbox input[type='checkbox'], -.checkbox-inline input[type='checkbox'] { - position: absolute; - margin-top: 4px \9; - margin-left: -20px; -} -.radio + .radio, -.checkbox + .checkbox { - margin-top: -5px; -} -.radio-inline, -.checkbox-inline { - position: relative; - display: inline-block; - padding-left: 20px; - margin-bottom: 0; - font-weight: normal; - vertical-align: middle; - cursor: pointer; -} -.radio-inline + .radio-inline, -.checkbox-inline + .checkbox-inline { - margin-top: 0; - margin-left: 10px; -} -input[type='radio'][disabled], -input[type='checkbox'][disabled], -input[type='radio'].disabled, -input[type='checkbox'].disabled, -fieldset[disabled] input[type='radio'], -fieldset[disabled] input[type='checkbox'] { - cursor: not-allowed; -} -.radio-inline.disabled, -.checkbox-inline.disabled, -fieldset[disabled] .radio-inline, -fieldset[disabled] .checkbox-inline { - cursor: not-allowed; -} -.radio.disabled label, -.checkbox.disabled label, -fieldset[disabled] .radio label, -fieldset[disabled] .checkbox label { - cursor: not-allowed; -} -.form-control-static { - min-height: 34px; - padding-top: 7px; - padding-bottom: 7px; - margin-bottom: 0; -} -.form-control-static.input-lg, -.form-control-static.input-sm { - padding-right: 0; - padding-left: 0; -} -.input-sm { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -select.input-sm { - height: 30px; - line-height: 30px; -} -textarea.input-sm, -select[multiple].input-sm { - height: auto; -} -.form-group-sm .form-control { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -select.form-group-sm .form-control { - height: 30px; - line-height: 30px; -} -textarea.form-group-sm .form-control, -select[multiple].form-group-sm .form-control { - height: auto; -} -.form-group-sm .form-control-static { - height: 30px; - min-height: 32px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; -} -.input-lg { - height: 46px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.3333333; - border-radius: 6px; -} -select.input-lg { - height: 46px; - line-height: 46px; -} -textarea.input-lg, -select[multiple].input-lg { - height: auto; -} -.form-group-lg .form-control { - height: 46px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.3333333; - border-radius: 6px; -} -select.form-group-lg .form-control { - height: 46px; - line-height: 46px; -} -textarea.form-group-lg .form-control, -select[multiple].form-group-lg .form-control { - height: auto; -} -.form-group-lg .form-control-static { - height: 46px; - min-height: 38px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.3333333; -} -.has-feedback { - position: relative; -} -.has-feedback .form-control { - padding-right: 42.5px; -} -.form-control-feedback { - position: absolute; - top: 0; - right: 0; - z-index: 2; - display: block; - width: 34px; - height: 34px; - line-height: 34px; - text-align: center; - pointer-events: none; -} -.input-lg + .form-control-feedback { - width: 46px; - height: 46px; - line-height: 46px; -} -.input-sm + .form-control-feedback { - width: 30px; - height: 30px; - line-height: 30px; -} -.has-success .help-block, -.has-success .control-label, -.has-success .radio, -.has-success .checkbox, -.has-success .radio-inline, -.has-success .checkbox-inline, -.has-success.radio label, -.has-success.checkbox label, -.has-success.radio-inline label, -.has-success.checkbox-inline label { - color: #3c763d; -} -.has-success .form-control { - border-color: #3c763d; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} -.has-success .form-control:focus { - border-color: #2b542c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; -} -.has-success .input-group-addon { - color: #3c763d; - background-color: #dff0d8; - border-color: #3c763d; -} -.has-success .form-control-feedback { - color: #3c763d; -} -.has-warning .help-block, -.has-warning .control-label, -.has-warning .radio, -.has-warning .checkbox, -.has-warning .radio-inline, -.has-warning .checkbox-inline, -.has-warning.radio label, -.has-warning.checkbox label, -.has-warning.radio-inline label, -.has-warning.checkbox-inline label { - color: #8a6d3b; -} -.has-warning .form-control { - border-color: #8a6d3b; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} -.has-warning .form-control:focus { - border-color: #66512c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; -} -.has-warning .input-group-addon { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #8a6d3b; -} -.has-warning .form-control-feedback { - color: #8a6d3b; -} -.has-error .help-block, -.has-error .control-label, -.has-error .radio, -.has-error .checkbox, -.has-error .radio-inline, -.has-error .checkbox-inline, -.has-error.radio label, -.has-error.checkbox label, -.has-error.radio-inline label, -.has-error.checkbox-inline label { - color: #a94442; -} -.has-error .form-control { - border-color: #a94442; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} -.has-error .form-control:focus { - border-color: #843534; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; -} -.has-error .input-group-addon { - color: #a94442; - background-color: #f2dede; - border-color: #a94442; -} -.has-error .form-control-feedback { - color: #a94442; -} -.has-feedback label ~ .form-control-feedback { - top: 25px; -} -.has-feedback label.sr-only ~ .form-control-feedback { - top: 0; -} -.help-block { - display: block; - margin-top: 5px; - margin-bottom: 10px; - color: #737373; -} -@media (min-width: 768px) { - .form-inline .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .form-control { - display: inline-block; - width: auto; - vertical-align: middle; - } - .form-inline .form-control-static { - display: inline-block; - } - .form-inline .input-group { - display: inline-table; - vertical-align: middle; - } - .form-inline .input-group .input-group-addon, - .form-inline .input-group .input-group-btn, - .form-inline .input-group .form-control { - width: auto; - } - .form-inline .input-group > .form-control { - width: 100%; - } - .form-inline .control-label { - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .radio, - .form-inline .checkbox { - display: inline-block; - margin-top: 0; - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .radio label, - .form-inline .checkbox label { - padding-left: 0; - } - .form-inline .radio input[type='radio'], - .form-inline .checkbox input[type='checkbox'] { - position: relative; - margin-left: 0; - } - .form-inline .has-feedback .form-control-feedback { - top: 0; - } -} -.form-horizontal .radio, -.form-horizontal .checkbox, -.form-horizontal .radio-inline, -.form-horizontal .checkbox-inline { - padding-top: 7px; - margin-top: 0; - margin-bottom: 0; -} -.form-horizontal .radio, -.form-horizontal .checkbox { - min-height: 27px; -} -.form-horizontal .form-group { - margin-right: -15px; - margin-left: -15px; -} -@media (min-width: 768px) { - .form-horizontal .control-label { - padding-top: 7px; - margin-bottom: 0; - text-align: right; - } -} -.form-horizontal .has-feedback .form-control-feedback { - right: 15px; -} -@media (min-width: 768px) { - .form-horizontal .form-group-lg .control-label { - padding-top: 14.333333px; - } -} -@media (min-width: 768px) { - .form-horizontal .form-group-sm .control-label { - padding-top: 6px; - } -} -.btn { - display: inline-block; - padding: 6px 12px; - margin-bottom: 0; - font-size: 14px; - font-weight: normal; - line-height: 1.42857143; - text-align: center; - white-space: nowrap; - vertical-align: middle; - -ms-touch-action: manipulation; - touch-action: manipulation; - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - background-image: none; - border: 1px solid transparent; - border-radius: 4px; -} -.btn:focus, -.btn:active:focus, -.btn.active:focus, -.btn.focus, -.btn:active.focus, -.btn.active.focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -.btn:hover, -.btn:focus, -.btn.focus { - color: #333; - text-decoration: none; -} -.btn:active, -.btn.active { - background-image: none; - outline: 0; - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); -} -.btn.disabled, -.btn[disabled], -fieldset[disabled] .btn { - pointer-events: none; - cursor: not-allowed; - filter: alpha(opacity=65); - -webkit-box-shadow: none; - box-shadow: none; - opacity: 0.65; -} -.btn-default { - color: #333; - background-color: #fff; - border-color: #ccc; -} -.btn-default:hover, -.btn-default:focus, -.btn-default.focus, -.btn-default:active, -.btn-default.active, -.open > .dropdown-toggle.btn-default { - color: #333; - background-color: #e6e6e6; - border-color: #adadad; -} -.btn-default:active, -.btn-default.active, -.open > .dropdown-toggle.btn-default { - background-image: none; -} -.btn-default.disabled, -.btn-default[disabled], -fieldset[disabled] .btn-default, -.btn-default.disabled:hover, -.btn-default[disabled]:hover, -fieldset[disabled] .btn-default:hover, -.btn-default.disabled:focus, -.btn-default[disabled]:focus, -fieldset[disabled] .btn-default:focus, -.btn-default.disabled.focus, -.btn-default[disabled].focus, -fieldset[disabled] .btn-default.focus, -.btn-default.disabled:active, -.btn-default[disabled]:active, -fieldset[disabled] .btn-default:active, -.btn-default.disabled.active, -.btn-default[disabled].active, -fieldset[disabled] .btn-default.active { - background-color: #fff; - border-color: #ccc; -} -.btn-default .badge { - color: #fff; - background-color: #333; -} -.btn-primary { - color: #fff; - background-color: #337ab7; - border-color: #2e6da4; -} -.btn-primary:hover, -.btn-primary:focus, -.btn-primary.focus, -.btn-primary:active, -.btn-primary.active, -.open > .dropdown-toggle.btn-primary { - color: #fff; - background-color: #286090; - border-color: #204d74; -} -.btn-primary:active, -.btn-primary.active, -.open > .dropdown-toggle.btn-primary { - background-image: none; -} -.btn-primary.disabled, -.btn-primary[disabled], -fieldset[disabled] .btn-primary, -.btn-primary.disabled:hover, -.btn-primary[disabled]:hover, -fieldset[disabled] .btn-primary:hover, -.btn-primary.disabled:focus, -.btn-primary[disabled]:focus, -fieldset[disabled] .btn-primary:focus, -.btn-primary.disabled.focus, -.btn-primary[disabled].focus, -fieldset[disabled] .btn-primary.focus, -.btn-primary.disabled:active, -.btn-primary[disabled]:active, -fieldset[disabled] .btn-primary:active, -.btn-primary.disabled.active, -.btn-primary[disabled].active, -fieldset[disabled] .btn-primary.active { - background-color: #337ab7; - border-color: #2e6da4; -} -.btn-primary .badge { - color: #337ab7; - background-color: #fff; -} -.btn-success { - color: #fff; - background-color: #5cb85c; - border-color: #4cae4c; -} -.btn-success:hover, -.btn-success:focus, -.btn-success.focus, -.btn-success:active, -.btn-success.active, -.open > .dropdown-toggle.btn-success { - color: #fff; - background-color: #449d44; - border-color: #398439; -} -.btn-success:active, -.btn-success.active, -.open > .dropdown-toggle.btn-success { - background-image: none; -} -.btn-success.disabled, -.btn-success[disabled], -fieldset[disabled] .btn-success, -.btn-success.disabled:hover, -.btn-success[disabled]:hover, -fieldset[disabled] .btn-success:hover, -.btn-success.disabled:focus, -.btn-success[disabled]:focus, -fieldset[disabled] .btn-success:focus, -.btn-success.disabled.focus, -.btn-success[disabled].focus, -fieldset[disabled] .btn-success.focus, -.btn-success.disabled:active, -.btn-success[disabled]:active, -fieldset[disabled] .btn-success:active, -.btn-success.disabled.active, -.btn-success[disabled].active, -fieldset[disabled] .btn-success.active { - background-color: #5cb85c; - border-color: #4cae4c; -} -.btn-success .badge { - color: #5cb85c; - background-color: #fff; -} -.btn-info { - color: #fff; - background-color: #5bc0de; - border-color: #46b8da; -} -.btn-info:hover, -.btn-info:focus, -.btn-info.focus, -.btn-info:active, -.btn-info.active, -.open > .dropdown-toggle.btn-info { - color: #fff; - background-color: #31b0d5; - border-color: #269abc; -} -.btn-info:active, -.btn-info.active, -.open > .dropdown-toggle.btn-info { - background-image: none; -} -.btn-info.disabled, -.btn-info[disabled], -fieldset[disabled] .btn-info, -.btn-info.disabled:hover, -.btn-info[disabled]:hover, -fieldset[disabled] .btn-info:hover, -.btn-info.disabled:focus, -.btn-info[disabled]:focus, -fieldset[disabled] .btn-info:focus, -.btn-info.disabled.focus, -.btn-info[disabled].focus, -fieldset[disabled] .btn-info.focus, -.btn-info.disabled:active, -.btn-info[disabled]:active, -fieldset[disabled] .btn-info:active, -.btn-info.disabled.active, -.btn-info[disabled].active, -fieldset[disabled] .btn-info.active { - background-color: #5bc0de; - border-color: #46b8da; -} -.btn-info .badge { - color: #5bc0de; - background-color: #fff; -} -.btn-warning { - color: #fff; - background-color: #f0ad4e; - border-color: #eea236; -} -.btn-warning:hover, -.btn-warning:focus, -.btn-warning.focus, -.btn-warning:active, -.btn-warning.active, -.open > .dropdown-toggle.btn-warning { - color: #fff; - background-color: #ec971f; - border-color: #d58512; -} -.btn-warning:active, -.btn-warning.active, -.open > .dropdown-toggle.btn-warning { - background-image: none; -} -.btn-warning.disabled, -.btn-warning[disabled], -fieldset[disabled] .btn-warning, -.btn-warning.disabled:hover, -.btn-warning[disabled]:hover, -fieldset[disabled] .btn-warning:hover, -.btn-warning.disabled:focus, -.btn-warning[disabled]:focus, -fieldset[disabled] .btn-warning:focus, -.btn-warning.disabled.focus, -.btn-warning[disabled].focus, -fieldset[disabled] .btn-warning.focus, -.btn-warning.disabled:active, -.btn-warning[disabled]:active, -fieldset[disabled] .btn-warning:active, -.btn-warning.disabled.active, -.btn-warning[disabled].active, -fieldset[disabled] .btn-warning.active { - background-color: #f0ad4e; - border-color: #eea236; -} -.btn-warning .badge { - color: #f0ad4e; - background-color: #fff; -} -.btn-danger { - color: #fff; - background-color: #d9534f; - border-color: #d43f3a; -} -.btn-danger:hover, -.btn-danger:focus, -.btn-danger.focus, -.btn-danger:active, -.btn-danger.active, -.open > .dropdown-toggle.btn-danger { - color: #fff; - background-color: #c9302c; - border-color: #ac2925; -} -.btn-danger:active, -.btn-danger.active, -.open > .dropdown-toggle.btn-danger { - background-image: none; -} -.btn-danger.disabled, -.btn-danger[disabled], -fieldset[disabled] .btn-danger, -.btn-danger.disabled:hover, -.btn-danger[disabled]:hover, -fieldset[disabled] .btn-danger:hover, -.btn-danger.disabled:focus, -.btn-danger[disabled]:focus, -fieldset[disabled] .btn-danger:focus, -.btn-danger.disabled.focus, -.btn-danger[disabled].focus, -fieldset[disabled] .btn-danger.focus, -.btn-danger.disabled:active, -.btn-danger[disabled]:active, -fieldset[disabled] .btn-danger:active, -.btn-danger.disabled.active, -.btn-danger[disabled].active, -fieldset[disabled] .btn-danger.active { - background-color: #d9534f; - border-color: #d43f3a; -} -.btn-danger .badge { - color: #d9534f; - background-color: #fff; -} -.btn-link { - font-weight: normal; - color: #337ab7; - border-radius: 0; -} -.btn-link, -.btn-link:active, -.btn-link.active, -.btn-link[disabled], -fieldset[disabled] .btn-link { - background-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; -} -.btn-link, -.btn-link:hover, -.btn-link:focus, -.btn-link:active { - border-color: transparent; -} -.btn-link:hover, -.btn-link:focus { - color: #23527c; - text-decoration: underline; - background-color: transparent; -} -.btn-link[disabled]:hover, -fieldset[disabled] .btn-link:hover, -.btn-link[disabled]:focus, -fieldset[disabled] .btn-link:focus { - color: #777; - text-decoration: none; -} -.btn-lg, -.btn-group-lg > .btn { - padding: 10px 16px; - font-size: 18px; - line-height: 1.3333333; - border-radius: 6px; -} -.btn-sm, -.btn-group-sm > .btn { - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -.btn-xs, -.btn-group-xs > .btn { - padding: 1px 5px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -.btn-block { - display: block; - width: 100%; -} -.btn-block + .btn-block { - margin-top: 5px; -} -input[type='submit'].btn-block, -input[type='reset'].btn-block, -input[type='button'].btn-block { - width: 100%; -} -.fade { - opacity: 0; - -webkit-transition: opacity 0.15s linear; - -o-transition: opacity 0.15s linear; - transition: opacity 0.15s linear; -} -.fade.in { - opacity: 1; -} -.collapse { - display: none; -} -.collapse.in { - display: block; -} -tr.collapse.in { - display: table-row; -} -tbody.collapse.in { - display: table-row-group; -} -.collapsing { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition-timing-function: ease; - -o-transition-timing-function: ease; - transition-timing-function: ease; - -webkit-transition-duration: 0.35s; - -o-transition-duration: 0.35s; - transition-duration: 0.35s; - -webkit-transition-property: height, visibility; - -o-transition-property: height, visibility; - transition-property: height, visibility; -} -.caret { - display: inline-block; - width: 0; - height: 0; - margin-left: 2px; - vertical-align: middle; - border-top: 4px dashed; - border-right: 4px solid transparent; - border-left: 4px solid transparent; -} -.dropup, -.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; - font-size: 14px; - text-align: left; - list-style: none; - background-color: #fff; - -webkit-background-clip: padding-box; - background-clip: padding-box; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.15); - border-radius: 4px; - -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); -} -.dropdown-menu.pull-right { - right: 0; - left: auto; -} -.dropdown-menu .divider { - height: 1px; - margin: 9px 0; - overflow: hidden; - background-color: #e5e5e5; -} -.dropdown-menu > li > a { - display: block; - padding: 3px 20px; - clear: both; - font-weight: normal; - line-height: 1.42857143; - color: #333; - white-space: nowrap; -} -.dropdown-menu > li > a:hover, -.dropdown-menu > li > a:focus { - color: #262626; - text-decoration: none; - background-color: #f5f5f5; -} -.dropdown-menu > .active > a, -.dropdown-menu > .active > a:hover, -.dropdown-menu > .active > a:focus { - color: #fff; - text-decoration: none; - background-color: #337ab7; - outline: 0; -} -.dropdown-menu > .disabled > a, -.dropdown-menu > .disabled > a:hover, -.dropdown-menu > .disabled > a:focus { - color: #777; -} -.dropdown-menu > .disabled > a:hover, -.dropdown-menu > .disabled > a:focus { - text-decoration: none; - cursor: not-allowed; - background-color: transparent; - background-image: none; - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); -} -.open > .dropdown-menu { - display: block; -} -.open > a { - outline: 0; -} -.dropdown-menu-right { - right: 0; - left: auto; -} -.dropdown-menu-left { - right: auto; - left: 0; -} -.dropdown-header { - display: block; - padding: 3px 20px; - font-size: 12px; - line-height: 1.42857143; - color: #777; - white-space: nowrap; -} -.dropdown-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 990; -} -.pull-right > .dropdown-menu { - right: 0; - left: auto; -} -.dropup .caret, -.navbar-fixed-bottom .dropdown .caret { - content: ''; - border-top: 0; - border-bottom: 4px solid; -} -.dropup .dropdown-menu, -.navbar-fixed-bottom .dropdown .dropdown-menu { - top: auto; - bottom: 100%; - margin-bottom: 2px; -} -@media (min-width: 768px) { - .navbar-right .dropdown-menu { - right: 0; - left: auto; - } - .navbar-right .dropdown-menu-left { - right: auto; - left: 0; - } -} -.btn-group, -.btn-group-vertical { - position: relative; - display: inline-block; - vertical-align: middle; -} -.btn-group > .btn, -.btn-group-vertical > .btn { - position: relative; - float: left; -} -.btn-group > .btn:hover, -.btn-group-vertical > .btn:hover, -.btn-group > .btn:focus, -.btn-group-vertical > .btn:focus, -.btn-group > .btn:active, -.btn-group-vertical > .btn:active, -.btn-group > .btn.active, -.btn-group-vertical > .btn.active { - z-index: 2; -} -.btn-group .btn + .btn, -.btn-group .btn + .btn-group, -.btn-group .btn-group + .btn, -.btn-group .btn-group + .btn-group { - margin-left: -1px; -} -.btn-toolbar { - margin-left: -5px; -} -.btn-toolbar .btn-group, -.btn-toolbar .input-group { - float: left; -} -.btn-toolbar > .btn, -.btn-toolbar > .btn-group, -.btn-toolbar > .input-group { - margin-left: 5px; -} -.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { - border-radius: 0; -} -.btn-group > .btn:first-child { - margin-left: 0; -} -.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} -.btn-group > .btn:last-child:not(:first-child), -.btn-group > .dropdown-toggle:not(:first-child) { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} -.btn-group > .btn-group { - float: left; -} -.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} -.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child, -.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} -.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} -.btn-group .dropdown-toggle:active, -.btn-group.open .dropdown-toggle { - outline: 0; -} -.btn-group > .btn + .dropdown-toggle { - padding-right: 8px; - padding-left: 8px; -} -.btn-group > .btn-lg + .dropdown-toggle { - padding-right: 12px; - padding-left: 12px; -} -.btn-group.open .dropdown-toggle { - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); -} -.btn-group.open .dropdown-toggle.btn-link { - -webkit-box-shadow: none; - box-shadow: none; -} -.btn .caret { - margin-left: 0; -} -.btn-lg .caret { - border-width: 5px 5px 0; - border-bottom-width: 0; -} -.dropup .btn-lg .caret { - border-width: 0 5px 5px; -} -.btn-group-vertical > .btn, -.btn-group-vertical > .btn-group, -.btn-group-vertical > .btn-group > .btn { - display: block; - float: none; - width: 100%; - max-width: 100%; -} -.btn-group-vertical > .btn-group > .btn { - float: none; -} -.btn-group-vertical > .btn + .btn, -.btn-group-vertical > .btn + .btn-group, -.btn-group-vertical > .btn-group + .btn, -.btn-group-vertical > .btn-group + .btn-group { - margin-top: -1px; - margin-left: 0; -} -.btn-group-vertical > .btn:not(:first-child):not(:last-child) { - border-radius: 0; -} -.btn-group-vertical > .btn:first-child:not(:last-child) { - border-top-right-radius: 4px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.btn-group-vertical > .btn:last-child:not(:first-child) { - border-top-left-radius: 0; - border-top-right-radius: 0; - border-bottom-left-radius: 4px; -} -.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-left-radius: 0; - border-top-right-radius: 0; -} -.btn-group-justified { - display: table; - width: 100%; - table-layout: fixed; - border-collapse: separate; -} -.btn-group-justified > .btn, -.btn-group-justified > .btn-group { - display: table-cell; - float: none; - width: 1%; -} -.btn-group-justified > .btn-group .btn { - width: 100%; -} -.btn-group-justified > .btn-group .dropdown-menu { - left: auto; -} -[data-toggle='buttons'] > .btn input[type='radio'], -[data-toggle='buttons'] > .btn-group > .btn input[type='radio'], -[data-toggle='buttons'] > .btn input[type='checkbox'], -[data-toggle='buttons'] > .btn-group > .btn input[type='checkbox'] { - position: absolute; - clip: rect(0, 0, 0, 0); - pointer-events: none; -} -.input-group { - position: relative; - display: table; - border-collapse: separate; -} -.input-group[class*='col-'] { - float: none; - padding-right: 0; - padding-left: 0; -} -.input-group .form-control { - position: relative; - z-index: 2; - float: left; - width: 100%; - margin-bottom: 0; -} -.input-group-lg > .form-control, -.input-group-lg > .input-group-addon, -.input-group-lg > .input-group-btn > .btn { - height: 46px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.3333333; - border-radius: 6px; -} -select.input-group-lg > .form-control, -select.input-group-lg > .input-group-addon, -select.input-group-lg > .input-group-btn > .btn { - height: 46px; - line-height: 46px; -} -textarea.input-group-lg > .form-control, -textarea.input-group-lg > .input-group-addon, -textarea.input-group-lg > .input-group-btn > .btn, -select[multiple].input-group-lg > .form-control, -select[multiple].input-group-lg > .input-group-addon, -select[multiple].input-group-lg > .input-group-btn > .btn { - height: auto; -} -.input-group-sm > .form-control, -.input-group-sm > .input-group-addon, -.input-group-sm > .input-group-btn > .btn { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -select.input-group-sm > .form-control, -select.input-group-sm > .input-group-addon, -select.input-group-sm > .input-group-btn > .btn { - height: 30px; - line-height: 30px; -} -textarea.input-group-sm > .form-control, -textarea.input-group-sm > .input-group-addon, -textarea.input-group-sm > .input-group-btn > .btn, -select[multiple].input-group-sm > .form-control, -select[multiple].input-group-sm > .input-group-addon, -select[multiple].input-group-sm > .input-group-btn > .btn { - height: auto; -} -.input-group-addon, -.input-group-btn, -.input-group .form-control { - display: table-cell; -} -.input-group-addon:not(:first-child):not(:last-child), -.input-group-btn:not(:first-child):not(:last-child), -.input-group .form-control:not(:first-child):not(:last-child) { - border-radius: 0; -} -.input-group-addon, -.input-group-btn { - width: 1%; - white-space: nowrap; - vertical-align: middle; -} -.input-group-addon { - padding: 6px 12px; - font-size: 14px; - font-weight: normal; - line-height: 1; - color: #555; - text-align: center; - background-color: #eee; - border: 1px solid #ccc; - border-radius: 4px; -} -.input-group-addon.input-sm { - padding: 5px 10px; - font-size: 12px; - border-radius: 3px; -} -.input-group-addon.input-lg { - padding: 10px 16px; - font-size: 18px; - border-radius: 6px; -} -.input-group-addon input[type='radio'], -.input-group-addon input[type='checkbox'] { - margin-top: 0; -} -.input-group .form-control:first-child, -.input-group-addon:first-child, -.input-group-btn:first-child > .btn, -.input-group-btn:first-child > .btn-group > .btn, -.input-group-btn:first-child > .dropdown-toggle, -.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), -.input-group-btn:last-child > .btn-group:not(:last-child) > .btn { - border-top-right-radius: 0; - border-bottom-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-top-left-radius: 0; - border-bottom-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 { - padding-left: 0; - margin-bottom: 0; - list-style: none; -} -.nav > li { - position: relative; - display: block; -} -.nav > li > a { - position: relative; - display: block; - padding: 10px 15px; -} -.nav > li > a:hover, -.nav > li > a:focus { - text-decoration: none; - background-color: #eee; -} -.nav > li.disabled > a { - color: #777; -} -.nav > li.disabled > a:hover, -.nav > li.disabled > a:focus { - color: #777; - text-decoration: none; - cursor: not-allowed; - background-color: transparent; -} -.nav .open > a, -.nav .open > a:hover, -.nav .open > a:focus { - background-color: #eee; - border-color: #337ab7; -} -.nav .nav-divider { - height: 1px; - margin: 9px 0; - overflow: hidden; - background-color: #e5e5e5; -} -.nav > li > a > img { - max-width: none; -} -.nav-tabs { - border-bottom: 1px solid #ddd; -} -.nav-tabs > li { - float: left; - margin-bottom: -1px; -} -.nav-tabs > li > a { - margin-right: 2px; - line-height: 1.42857143; - border: 1px solid transparent; - border-radius: 4px 4px 0 0; -} -.nav-tabs > li > a:hover { - border-color: #eee #eee #ddd; -} -.nav-tabs > li.active > a, -.nav-tabs > li.active > a:hover, -.nav-tabs > li.active > a:focus { - color: #555; - cursor: default; - background-color: #fff; - border: 1px solid #ddd; - border-bottom-color: transparent; -} -.nav-tabs.nav-justified { - width: 100%; - border-bottom: 0; -} -.nav-tabs.nav-justified > li { - float: none; -} -.nav-tabs.nav-justified > li > a { - margin-bottom: 5px; - text-align: center; -} -.nav-tabs.nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; -} -@media (min-width: 768px) { - .nav-tabs.nav-justified > li { - display: table-cell; - width: 1%; - } - .nav-tabs.nav-justified > li > a { - margin-bottom: 0; - } -} -.nav-tabs.nav-justified > li > a { - margin-right: 0; - border-radius: 4px; -} -.nav-tabs.nav-justified > .active > a, -.nav-tabs.nav-justified > .active > a:hover, -.nav-tabs.nav-justified > .active > a:focus { - border: 1px solid #ddd; -} -@media (min-width: 768px) { - .nav-tabs.nav-justified > li > a { - border-bottom: 1px solid #ddd; - border-radius: 4px 4px 0 0; - } - .nav-tabs.nav-justified > .active > a, - .nav-tabs.nav-justified > .active > a:hover, - .nav-tabs.nav-justified > .active > a:focus { - border-bottom-color: #fff; - } -} -.nav-pills > li { - float: left; -} -.nav-pills > li > a { - border-radius: 4px; -} -.nav-pills > li + li { - margin-left: 2px; -} -.nav-pills > li.active > a, -.nav-pills > li.active > a:hover, -.nav-pills > li.active > a:focus { - color: #fff; - background-color: #337ab7; -} -.nav-stacked > li { - float: none; -} -.nav-stacked > li + li { - margin-top: 2px; - margin-left: 0; -} -.nav-justified { - width: 100%; -} -.nav-justified > li { - float: none; -} -.nav-justified > li > a { - margin-bottom: 5px; - text-align: center; -} -.nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; -} -@media (min-width: 768px) { - .nav-justified > li { - display: table-cell; - width: 1%; - } - .nav-justified > li > a { - margin-bottom: 0; - } -} -.nav-tabs-justified { - border-bottom: 0; -} -.nav-tabs-justified > li > a { - margin-right: 0; - border-radius: 4px; -} -.nav-tabs-justified > .active > a, -.nav-tabs-justified > .active > a:hover, -.nav-tabs-justified > .active > a:focus { - border: 1px solid #ddd; -} -@media (min-width: 768px) { - .nav-tabs-justified > li > a { - border-bottom: 1px solid #ddd; - border-radius: 4px 4px 0 0; - } - .nav-tabs-justified > .active > a, - .nav-tabs-justified > .active > a:hover, - .nav-tabs-justified > .active > a:focus { - border-bottom-color: #fff; - } -} -.tab-content > .tab-pane { - display: none; -} -.tab-content > .active { - display: block; -} -.nav-tabs .dropdown-menu { - margin-top: -1px; - border-top-left-radius: 0; - border-top-right-radius: 0; -} -.navbar { - position: relative; - min-height: 50px; - margin-bottom: 20px; - border: 1px solid transparent; -} -@media (min-width: 768px) { - .navbar { - border-radius: 4px; - } -} -@media (min-width: 768px) { - .navbar-header { - float: left; - } -} -.navbar-collapse { - padding-right: 15px; - padding-left: 15px; - overflow-x: visible; - -webkit-overflow-scrolling: touch; - border-top: 1px solid transparent; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); -} -.navbar-collapse.in { - overflow-y: auto; -} -@media (min-width: 768px) { - .navbar-collapse { - width: auto; - border-top: 0; - -webkit-box-shadow: none; - 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-right: 0; - padding-left: 0; - } -} -.navbar-fixed-top .navbar-collapse, -.navbar-fixed-bottom .navbar-collapse { - max-height: 340px; -} -@media (max-device-width: 480px) and (orientation: landscape) { - .navbar-fixed-top .navbar-collapse, - .navbar-fixed-bottom .navbar-collapse { - max-height: 200px; - } -} -.container > .navbar-header, -.container-fluid > .navbar-header, -.container > .navbar-collapse, -.container-fluid > .navbar-collapse { - margin-right: -15px; - margin-left: -15px; -} -@media (min-width: 768px) { - .container > .navbar-header, - .container-fluid > .navbar-header, - .container > .navbar-collapse, - .container-fluid > .navbar-collapse { - margin-right: 0; - margin-left: 0; - } -} -.navbar-static-top { - z-index: 1000; - border-width: 0 0 1px; -} -@media (min-width: 768px) { - .navbar-static-top { - border-radius: 0; - } -} -.navbar-fixed-top, -.navbar-fixed-bottom { - position: fixed; - right: 0; - left: 0; - z-index: 1030; -} -@media (min-width: 768px) { - .navbar-fixed-top, - .navbar-fixed-bottom { - border-radius: 0; - } -} -.navbar-fixed-top { - top: 0; - border-width: 0 0 1px; -} -.navbar-fixed-bottom { - bottom: 0; - margin-bottom: 0; - border-width: 1px 0 0; -} -.navbar-brand { - float: left; - height: 50px; - padding: 15px 15px; - font-size: 18px; - line-height: 20px; -} -.navbar-brand:hover, -.navbar-brand:focus { - text-decoration: none; -} -.navbar-brand > img { - display: block; -} -@media (min-width: 768px) { - .navbar > .container .navbar-brand, - .navbar > .container-fluid .navbar-brand { - margin-left: -15px; - } -} -.navbar-toggle { - position: relative; - float: right; - padding: 9px 10px; - margin-top: 8px; - margin-right: 15px; - margin-bottom: 8px; - background-color: transparent; - background-image: none; - border: 1px solid transparent; - border-radius: 4px; -} -.navbar-toggle:focus { - outline: 0; -} -.navbar-toggle .icon-bar { - display: block; - width: 22px; - height: 2px; - border-radius: 1px; -} -.navbar-toggle .icon-bar + .icon-bar { - margin-top: 4px; -} -@media (min-width: 768px) { - .navbar-toggle { - display: none; - } -} -.navbar-nav { - margin: 7.5px -15px; -} -.navbar-nav > li > a { - padding-top: 10px; - padding-bottom: 10px; - line-height: 20px; -} -@media (max-width: 767px) { - .navbar-nav .open .dropdown-menu { - position: static; - float: none; - width: auto; - margin-top: 0; - background-color: transparent; - border: 0; - -webkit-box-shadow: none; - box-shadow: none; - } - .navbar-nav .open .dropdown-menu > li > a, - .navbar-nav .open .dropdown-menu .dropdown-header { - padding: 5px 15px 5px 25px; - } - .navbar-nav .open .dropdown-menu > li > a { - line-height: 20px; - } - .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-nav .open .dropdown-menu > li > a:focus { - background-image: none; - } -} -@media (min-width: 768px) { - .navbar-nav { - float: left; - margin: 0; - } - .navbar-nav > li { - float: left; - } - .navbar-nav > li > a { - padding-top: 15px; - padding-bottom: 15px; - } -} -.navbar-form { - padding: 10px 15px; - margin-top: 8px; - margin-right: -15px; - margin-bottom: 8px; - margin-left: -15px; - border-top: 1px solid transparent; - border-bottom: 1px solid transparent; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); -} -@media (min-width: 768px) { - .navbar-form .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .form-control { - display: inline-block; - width: auto; - vertical-align: middle; - } - .navbar-form .form-control-static { - display: inline-block; - } - .navbar-form .input-group { - display: inline-table; - vertical-align: middle; - } - .navbar-form .input-group .input-group-addon, - .navbar-form .input-group .input-group-btn, - .navbar-form .input-group .form-control { - width: auto; - } - .navbar-form .input-group > .form-control { - width: 100%; - } - .navbar-form .control-label { - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .radio, - .navbar-form .checkbox { - display: inline-block; - margin-top: 0; - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .radio label, - .navbar-form .checkbox label { - padding-left: 0; - } - .navbar-form .radio input[type='radio'], - .navbar-form .checkbox input[type='checkbox'] { - position: relative; - margin-left: 0; - } - .navbar-form .has-feedback .form-control-feedback { - top: 0; - } -} -@media (max-width: 767px) { - .navbar-form .form-group { - margin-bottom: 5px; - } - .navbar-form .form-group:last-child { - margin-bottom: 0; - } -} -@media (min-width: 768px) { - .navbar-form { - width: auto; - padding-top: 0; - padding-bottom: 0; - margin-right: 0; - margin-left: 0; - border: 0; - -webkit-box-shadow: none; - box-shadow: none; - } -} -.navbar-nav > li > .dropdown-menu { - margin-top: 0; - border-top-left-radius: 0; - border-top-right-radius: 0; -} -.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { - margin-bottom: 0; - border-top-left-radius: 4px; - border-top-right-radius: 4px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.navbar-btn { - margin-top: 8px; - margin-bottom: 8px; -} -.navbar-btn.btn-sm { - margin-top: 10px; - margin-bottom: 10px; -} -.navbar-btn.btn-xs { - margin-top: 14px; - margin-bottom: 14px; -} -.navbar-text { - margin-top: 15px; - margin-bottom: 15px; -} -@media (min-width: 768px) { - .navbar-text { - float: left; - margin-right: 15px; - margin-left: 15px; - } -} -@media (min-width: 768px) { - .navbar-left { - float: left !important; - } - .navbar-right { - float: right !important; - margin-right: -15px; - } - .navbar-right ~ .navbar-right { - margin-right: 0; - } -} -.navbar-default { - background-color: #f8f8f8; - border-color: #e7e7e7; -} -.navbar-default .navbar-brand { - color: #777; -} -.navbar-default .navbar-brand:hover, -.navbar-default .navbar-brand:focus { - color: #5e5e5e; - background-color: transparent; -} -.navbar-default .navbar-text { - color: #777; -} -.navbar-default .navbar-nav > li > a { - color: #777; -} -.navbar-default .navbar-nav > li > a:hover, -.navbar-default .navbar-nav > li > a:focus { - color: #333; - background-color: transparent; -} -.navbar-default .navbar-nav > .active > a, -.navbar-default .navbar-nav > .active > a:hover, -.navbar-default .navbar-nav > .active > a:focus { - color: #555; - background-color: #e7e7e7; -} -.navbar-default .navbar-nav > .disabled > a, -.navbar-default .navbar-nav > .disabled > a:hover, -.navbar-default .navbar-nav > .disabled > a:focus { - color: #ccc; - background-color: transparent; -} -.navbar-default .navbar-toggle { - border-color: #ddd; -} -.navbar-default .navbar-toggle:hover, -.navbar-default .navbar-toggle:focus { - background-color: #ddd; -} -.navbar-default .navbar-toggle .icon-bar { - background-color: #888; -} -.navbar-default .navbar-collapse, -.navbar-default .navbar-form { - border-color: #e7e7e7; -} -.navbar-default .navbar-nav > .open > a, -.navbar-default .navbar-nav > .open > a:hover, -.navbar-default .navbar-nav > .open > a:focus { - color: #555; - background-color: #e7e7e7; -} -@media (max-width: 767px) { - .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: #333; - 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: #555; - background-color: #e7e7e7; - } - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: #ccc; - background-color: transparent; - } -} -.navbar-default .navbar-link { - color: #777; -} -.navbar-default .navbar-link:hover { - color: #333; -} -.navbar-default .btn-link { - color: #777; -} -.navbar-default .btn-link:hover, -.navbar-default .btn-link:focus { - color: #333; -} -.navbar-default .btn-link[disabled]:hover, -fieldset[disabled] .navbar-default .btn-link:hover, -.navbar-default .btn-link[disabled]:focus, -fieldset[disabled] .navbar-default .btn-link:focus { - color: #ccc; -} -.navbar-inverse { - background-color: #222; - border-color: #080808; -} -.navbar-inverse .navbar-brand { - color: #9d9d9d; -} -.navbar-inverse .navbar-brand:hover, -.navbar-inverse .navbar-brand:focus { - color: #fff; - background-color: transparent; -} -.navbar-inverse .navbar-text { - color: #9d9d9d; -} -.navbar-inverse .navbar-nav > li > a { - color: #9d9d9d; -} -.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: #080808; -} -.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 { - color: #fff; - background-color: #080808; -} -@media (max-width: 767px) { - .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { - border-color: #080808; - } - .navbar-inverse .navbar-nav .open .dropdown-menu .divider { - background-color: #080808; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { - color: #9d9d9d; - } - .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: #080808; - } - .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: #9d9d9d; -} -.navbar-inverse .navbar-link:hover { - color: #fff; -} -.navbar-inverse .btn-link { - color: #9d9d9d; -} -.navbar-inverse .btn-link:hover, -.navbar-inverse .btn-link:focus { - color: #fff; -} -.navbar-inverse .btn-link[disabled]:hover, -fieldset[disabled] .navbar-inverse .btn-link:hover, -.navbar-inverse .btn-link[disabled]:focus, -fieldset[disabled] .navbar-inverse .btn-link:focus { - color: #444; -} -.breadcrumb { - padding: 8px 15px; - margin-bottom: 20px; - list-style: none; - background-color: #f5f5f5; - border-radius: 4px; -} -.breadcrumb > li { - display: inline-block; -} -.breadcrumb > li + li:before { - padding: 0 5px; - color: #ccc; - content: '/\00a0'; -} -.breadcrumb > .active { - color: #777; -} -.pagination { - display: inline-block; - padding-left: 0; - margin: 20px 0; - border-radius: 4px; -} -.pagination > li { - display: inline; -} -.pagination > li > a, -.pagination > li > span { - position: relative; - float: left; - padding: 6px 12px; - margin-left: -1px; - line-height: 1.42857143; - color: #337ab7; - text-decoration: none; - background-color: #fff; - border: 1px solid #ddd; -} -.pagination > li:first-child > a, -.pagination > li:first-child > span { - margin-left: 0; - border-top-left-radius: 4px; - border-bottom-left-radius: 4px; -} -.pagination > li:last-child > a, -.pagination > li:last-child > span { - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; -} -.pagination > li > a:hover, -.pagination > li > span:hover, -.pagination > li > a:focus, -.pagination > li > span:focus { - color: #23527c; - background-color: #eee; - border-color: #ddd; -} -.pagination > .active > a, -.pagination > .active > span, -.pagination > .active > a:hover, -.pagination > .active > span:hover, -.pagination > .active > a:focus, -.pagination > .active > span:focus { - z-index: 2; - color: #fff; - cursor: default; - background-color: #337ab7; - border-color: #337ab7; -} -.pagination > .disabled > span, -.pagination > .disabled > span:hover, -.pagination > .disabled > span:focus, -.pagination > .disabled > a, -.pagination > .disabled > a:hover, -.pagination > .disabled > a:focus { - color: #777; - cursor: not-allowed; - background-color: #fff; - border-color: #ddd; -} -.pagination-lg > li > a, -.pagination-lg > li > span { - padding: 10px 16px; - font-size: 18px; -} -.pagination-lg > li:first-child > a, -.pagination-lg > li:first-child > span { - border-top-left-radius: 6px; - border-bottom-left-radius: 6px; -} -.pagination-lg > li:last-child > a, -.pagination-lg > li:last-child > span { - border-top-right-radius: 6px; - border-bottom-right-radius: 6px; -} -.pagination-sm > li > a, -.pagination-sm > li > span { - padding: 5px 10px; - font-size: 12px; -} -.pagination-sm > li:first-child > a, -.pagination-sm > li:first-child > span { - border-top-left-radius: 3px; - border-bottom-left-radius: 3px; -} -.pagination-sm > li:last-child > a, -.pagination-sm > li:last-child > span { - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; -} -.pager { - padding-left: 0; - margin: 20px 0; - text-align: center; - list-style: none; -} -.pager li { - display: inline; -} -.pager li > a, -.pager li > span { - display: inline-block; - padding: 5px 14px; - background-color: #fff; - border: 1px solid #ddd; - border-radius: 15px; -} -.pager li > a:hover, -.pager li > a:focus { - text-decoration: none; - background-color: #eee; -} -.pager .next > a, -.pager .next > span { - float: right; -} -.pager .previous > a, -.pager .previous > span { - float: left; -} -.pager .disabled > a, -.pager .disabled > a:hover, -.pager .disabled > a:focus, -.pager .disabled > span { - color: #777; - cursor: not-allowed; - background-color: #fff; -} -.label { - display: inline; - padding: 0.2em 0.6em 0.3em; - font-size: 75%; - font-weight: bold; - line-height: 1; - color: #fff; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: 0.25em; -} -a.label:hover, -a.label:focus { - color: #fff; - text-decoration: none; - cursor: pointer; -} -.label:empty { - display: none; -} -.btn .label { - position: relative; - top: -1px; -} -.label-default { - background-color: #777; -} -.label-default[href]:hover, -.label-default[href]:focus { - background-color: #5e5e5e; -} -.label-primary { - background-color: #337ab7; -} -.label-primary[href]:hover, -.label-primary[href]:focus { - background-color: #286090; -} -.label-success { - background-color: #5cb85c; -} -.label-success[href]:hover, -.label-success[href]:focus { - background-color: #449d44; -} -.label-info { - background-color: #5bc0de; -} -.label-info[href]:hover, -.label-info[href]:focus { - background-color: #31b0d5; -} -.label-warning { - background-color: #f0ad4e; -} -.label-warning[href]:hover, -.label-warning[href]:focus { - background-color: #ec971f; -} -.label-danger { - background-color: #d9534f; -} -.label-danger[href]:hover, -.label-danger[href]:focus { - background-color: #c9302c; -} -.badge { - display: inline-block; - min-width: 10px; - padding: 3px 7px; - font-size: 12px; - font-weight: bold; - line-height: 1; - color: #fff; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - background-color: #777; - border-radius: 10px; -} -.badge:empty { - display: none; -} -.btn .badge { - position: relative; - top: -1px; -} -.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; -} -.list-group-item.active > .badge, -.nav-pills > .active > a > .badge { - color: #337ab7; - background-color: #fff; -} -.list-group-item > .badge { - float: right; -} -.list-group-item > .badge + .badge { - margin-right: 5px; -} -.nav-pills > li > a > .badge { - margin-left: 3px; -} -.jumbotron { - padding: 30px 15px; - margin-bottom: 30px; - color: inherit; - background-color: #eee; -} -.jumbotron h1, -.jumbotron .h1 { - color: inherit; -} -.jumbotron p { - margin-bottom: 15px; - font-size: 21px; - font-weight: 200; -} -.jumbotron > hr { - border-top-color: #d5d5d5; -} -.container .jumbotron, -.container-fluid .jumbotron { - border-radius: 6px; -} -.jumbotron .container { - max-width: 100%; -} -@media screen and (min-width: 768px) { - .jumbotron { - padding: 48px 0; - } - .container .jumbotron, - .container-fluid .jumbotron { - padding-right: 60px; - padding-left: 60px; - } - .jumbotron h1, - .jumbotron .h1 { - font-size: 63px; - } -} -.thumbnail { - display: block; - padding: 4px; - margin-bottom: 20px; - line-height: 1.42857143; - background-color: #fff; - border: 1px solid #ddd; - border-radius: 4px; - -webkit-transition: border 0.2s ease-in-out; - -o-transition: border 0.2s ease-in-out; - transition: border 0.2s ease-in-out; -} -.thumbnail > img, -.thumbnail a > img { - margin-right: auto; - margin-left: auto; -} -a.thumbnail:hover, -a.thumbnail:focus, -a.thumbnail.active { - border-color: #337ab7; -} -.thumbnail .caption { - padding: 9px; - color: #333; -} -.alert { - padding: 15px; - margin-bottom: 20px; - border: 1px solid transparent; - border-radius: 4px; -} -.alert h4 { - margin-top: 0; - color: inherit; -} -.alert .alert-link { - font-weight: bold; -} -.alert > p, -.alert > ul { - margin-bottom: 0; -} -.alert > p + p { - margin-top: 5px; -} -.alert-dismissable, -.alert-dismissible { - padding-right: 35px; -} -.alert-dismissable .close, -.alert-dismissible .close { - position: relative; - top: -2px; - right: -21px; - color: inherit; -} -.alert-success { - color: #3c763d; - background-color: #dff0d8; - border-color: #d6e9c6; -} -.alert-success hr { - border-top-color: #c9e2b3; -} -.alert-success .alert-link { - color: #2b542c; -} -.alert-info { - color: #31708f; - background-color: #d9edf7; - border-color: #bce8f1; -} -.alert-info hr { - border-top-color: #a6e1ec; -} -.alert-info .alert-link { - color: #245269; -} -.alert-warning { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #faebcc; -} -.alert-warning hr { - border-top-color: #f7e1b5; -} -.alert-warning .alert-link { - color: #66512c; -} -.alert-danger { - color: #a94442; - background-color: #f2dede; - border-color: #ebccd1; -} -.alert-danger hr { - border-top-color: #e4b9c0; -} -.alert-danger .alert-link { - color: #843534; -} -@-webkit-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} -@-o-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 { - height: 20px; - margin-bottom: 20px; - overflow: hidden; - background-color: #f5f5f5; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); -} -.progress-bar { - float: left; - width: 0; - height: 100%; - font-size: 12px; - line-height: 20px; - color: #fff; - text-align: center; - background-color: #337ab7; - -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; - -o-transition: width 0.6s ease; - transition: width 0.6s ease; -} -.progress-striped .progress-bar, -.progress-bar-striped { - background-image: -webkit-linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); - background-image: -o-linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); - background-image: linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); - -webkit-background-size: 40px 40px; - background-size: 40px 40px; -} -.progress.active .progress-bar, -.progress-bar.active { - -webkit-animation: progress-bar-stripes 2s linear infinite; - -o-animation: progress-bar-stripes 2s linear infinite; - animation: progress-bar-stripes 2s linear infinite; -} -.progress-bar-success { - background-color: #5cb85c; -} -.progress-striped .progress-bar-success { - background-image: -webkit-linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); - background-image: -o-linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); - background-image: linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); -} -.progress-bar-info { - background-color: #5bc0de; -} -.progress-striped .progress-bar-info { - background-image: -webkit-linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); - background-image: -o-linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); - background-image: linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); -} -.progress-bar-warning { - background-color: #f0ad4e; -} -.progress-striped .progress-bar-warning { - background-image: -webkit-linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); - background-image: -o-linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); - background-image: linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); -} -.progress-bar-danger { - background-color: #d9534f; -} -.progress-striped .progress-bar-danger { - background-image: -webkit-linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); - background-image: -o-linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); - background-image: linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); -} -.media { - margin-top: 15px; -} -.media:first-child { - margin-top: 0; -} -.media, -.media-body { - overflow: hidden; - zoom: 1; -} -.media-body { - width: 10000px; -} -.media-object { - display: block; -} -.media-right, -.media > .pull-right { - padding-left: 10px; -} -.media-left, -.media > .pull-left { - padding-right: 10px; -} -.media-left, -.media-right, -.media-body { - display: table-cell; - vertical-align: top; -} -.media-middle { - vertical-align: middle; -} -.media-bottom { - vertical-align: bottom; -} -.media-heading { - margin-top: 0; - margin-bottom: 5px; -} -.media-list { - padding-left: 0; - list-style: none; -} -.list-group { - padding-left: 0; - margin-bottom: 20px; -} -.list-group-item { - position: relative; - display: block; - padding: 10px 15px; - margin-bottom: -1px; - background-color: #fff; - border: 1px solid #ddd; -} -.list-group-item:first-child { - border-top-left-radius: 4px; - border-top-right-radius: 4px; -} -.list-group-item:last-child { - margin-bottom: 0; - border-bottom-right-radius: 4px; - border-bottom-left-radius: 4px; -} -a.list-group-item { - color: #555; -} -a.list-group-item .list-group-item-heading { - color: #333; -} -a.list-group-item:hover, -a.list-group-item:focus { - color: #555; - text-decoration: none; - background-color: #f5f5f5; -} -.list-group-item.disabled, -.list-group-item.disabled:hover, -.list-group-item.disabled:focus { - color: #777; - cursor: not-allowed; - background-color: #eee; -} -.list-group-item.disabled .list-group-item-heading, -.list-group-item.disabled:hover .list-group-item-heading, -.list-group-item.disabled:focus .list-group-item-heading { - color: inherit; -} -.list-group-item.disabled .list-group-item-text, -.list-group-item.disabled:hover .list-group-item-text, -.list-group-item.disabled:focus .list-group-item-text { - color: #777; -} -.list-group-item.active, -.list-group-item.active:hover, -.list-group-item.active:focus { - z-index: 2; - color: #fff; - background-color: #337ab7; - border-color: #337ab7; -} -.list-group-item.active .list-group-item-heading, -.list-group-item.active:hover .list-group-item-heading, -.list-group-item.active:focus .list-group-item-heading, -.list-group-item.active .list-group-item-heading > small, -.list-group-item.active:hover .list-group-item-heading > small, -.list-group-item.active:focus .list-group-item-heading > small, -.list-group-item.active .list-group-item-heading > .small, -.list-group-item.active:hover .list-group-item-heading > .small, -.list-group-item.active:focus .list-group-item-heading > .small { - color: inherit; -} -.list-group-item.active .list-group-item-text, -.list-group-item.active:hover .list-group-item-text, -.list-group-item.active:focus .list-group-item-text { - color: #c7ddef; -} -.list-group-item-success { - color: #3c763d; - background-color: #dff0d8; -} -a.list-group-item-success { - color: #3c763d; -} -a.list-group-item-success .list-group-item-heading { - color: inherit; -} -a.list-group-item-success:hover, -a.list-group-item-success:focus { - color: #3c763d; - background-color: #d0e9c6; -} -a.list-group-item-success.active, -a.list-group-item-success.active:hover, -a.list-group-item-success.active:focus { - color: #fff; - background-color: #3c763d; - border-color: #3c763d; -} -.list-group-item-info { - color: #31708f; - background-color: #d9edf7; -} -a.list-group-item-info { - color: #31708f; -} -a.list-group-item-info .list-group-item-heading { - color: inherit; -} -a.list-group-item-info:hover, -a.list-group-item-info:focus { - color: #31708f; - background-color: #c4e3f3; -} -a.list-group-item-info.active, -a.list-group-item-info.active:hover, -a.list-group-item-info.active:focus { - color: #fff; - background-color: #31708f; - border-color: #31708f; -} -.list-group-item-warning { - color: #8a6d3b; - background-color: #fcf8e3; -} -a.list-group-item-warning { - color: #8a6d3b; -} -a.list-group-item-warning .list-group-item-heading { - color: inherit; -} -a.list-group-item-warning:hover, -a.list-group-item-warning:focus { - color: #8a6d3b; - background-color: #faf2cc; -} -a.list-group-item-warning.active, -a.list-group-item-warning.active:hover, -a.list-group-item-warning.active:focus { - color: #fff; - background-color: #8a6d3b; - border-color: #8a6d3b; -} -.list-group-item-danger { - color: #a94442; - background-color: #f2dede; -} -a.list-group-item-danger { - color: #a94442; -} -a.list-group-item-danger .list-group-item-heading { - color: inherit; -} -a.list-group-item-danger:hover, -a.list-group-item-danger:focus { - color: #a94442; - background-color: #ebcccc; -} -a.list-group-item-danger.active, -a.list-group-item-danger.active:hover, -a.list-group-item-danger.active:focus { - color: #fff; - background-color: #a94442; - border-color: #a94442; -} -.list-group-item-heading { - margin-top: 0; - margin-bottom: 5px; -} -.list-group-item-text { - margin-bottom: 0; - line-height: 1.3; -} -.panel { - margin-bottom: 20px; - background-color: #fff; - border: 1px solid transparent; - border-radius: 4px; - -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); -} -.panel-body { - padding: 15px; -} -.panel-heading { - padding: 10px 15px; - border-bottom: 1px solid transparent; - border-top-left-radius: 3px; - border-top-right-radius: 3px; -} -.panel-heading > .dropdown .dropdown-toggle { - color: inherit; -} -.panel-title { - margin-top: 0; - margin-bottom: 0; - font-size: 16px; - color: inherit; -} -.panel-title > a, -.panel-title > small, -.panel-title > .small, -.panel-title > small > a, -.panel-title > .small > a { - color: inherit; -} -.panel-footer { - padding: 10px 15px; - background-color: #f5f5f5; - border-top: 1px solid #ddd; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} -.panel > .list-group, -.panel > .panel-collapse > .list-group { - margin-bottom: 0; -} -.panel > .list-group .list-group-item, -.panel > .panel-collapse > .list-group .list-group-item { - border-width: 1px 0; - border-radius: 0; -} -.panel > .list-group:first-child .list-group-item:first-child, -.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child { - border-top: 0; - border-top-left-radius: 3px; - border-top-right-radius: 3px; -} -.panel > .list-group:last-child .list-group-item:last-child, -.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child { - border-bottom: 0; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} -.panel-heading + .list-group .list-group-item:first-child { - border-top-width: 0; -} -.list-group + .panel-footer { - border-top-width: 0; -} -.panel > .table, -.panel > .table-responsive > .table, -.panel > .panel-collapse > .table { - margin-bottom: 0; -} -.panel > .table caption, -.panel > .table-responsive > .table caption, -.panel > .panel-collapse > .table caption { - padding-right: 15px; - padding-left: 15px; -} -.panel > .table:first-child, -.panel > .table-responsive:first-child > .table:first-child { - border-top-left-radius: 3px; - border-top-right-radius: 3px; -} -.panel > .table:first-child > thead:first-child > tr:first-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child, -.panel > .table:first-child > tbody:first-child > tr:first-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child { - border-top-left-radius: 3px; - border-top-right-radius: 3px; -} -.panel > .table:first-child > thead:first-child > tr:first-child td:first-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, -.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, -.panel > .table:first-child > thead:first-child > tr:first-child th:first-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, -.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { - border-top-left-radius: 3px; -} -.panel > .table:first-child > thead:first-child > tr:first-child td:last-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, -.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, -.panel > .table:first-child > thead:first-child > tr:first-child th:last-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, -.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { - border-top-right-radius: 3px; -} -.panel > .table:last-child, -.panel > .table-responsive:last-child > .table:last-child { - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} -.panel > .table:last-child > tbody:last-child > tr:last-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child { - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} -.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, -.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { - border-bottom-left-radius: 3px; -} -.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, -.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { - border-bottom-right-radius: 3px; -} -.panel > .panel-body + .table, -.panel > .panel-body + .table-responsive, -.panel > .table + .panel-body, -.panel > .table-responsive + .panel-body { - border-top: 1px solid #ddd; -} -.panel > .table > tbody:first-child > tr:first-child th, -.panel > .table > tbody:first-child > tr:first-child td { - border-top: 0; -} -.panel > .table-bordered, -.panel > .table-responsive > .table-bordered { - border: 0; -} -.panel > .table-bordered > thead > tr > th:first-child, -.panel > .table-responsive > .table-bordered > thead > tr > th:first-child, -.panel > .table-bordered > tbody > tr > th:first-child, -.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, -.panel > .table-bordered > tfoot > tr > th:first-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, -.panel > .table-bordered > thead > tr > td:first-child, -.panel > .table-responsive > .table-bordered > thead > tr > td:first-child, -.panel > .table-bordered > tbody > tr > td:first-child, -.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, -.panel > .table-bordered > tfoot > tr > td:first-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; -} -.panel > .table-bordered > thead > tr > th:last-child, -.panel > .table-responsive > .table-bordered > thead > tr > th:last-child, -.panel > .table-bordered > tbody > tr > th:last-child, -.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, -.panel > .table-bordered > tfoot > tr > th:last-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, -.panel > .table-bordered > thead > tr > td:last-child, -.panel > .table-responsive > .table-bordered > thead > tr > td:last-child, -.panel > .table-bordered > tbody > tr > td:last-child, -.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, -.panel > .table-bordered > tfoot > tr > td:last-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; -} -.panel > .table-bordered > thead > tr:first-child > td, -.panel > .table-responsive > .table-bordered > thead > tr:first-child > td, -.panel > .table-bordered > tbody > tr:first-child > td, -.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, -.panel > .table-bordered > thead > tr:first-child > th, -.panel > .table-responsive > .table-bordered > thead > tr:first-child > th, -.panel > .table-bordered > tbody > tr:first-child > th, -.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th { - border-bottom: 0; -} -.panel > .table-bordered > tbody > tr:last-child > td, -.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, -.panel > .table-bordered > tfoot > tr:last-child > td, -.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, -.panel > .table-bordered > tbody > tr:last-child > th, -.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, -.panel > .table-bordered > tfoot > tr:last-child > th, -.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { - border-bottom: 0; -} -.panel > .table-responsive { - margin-bottom: 0; - border: 0; -} -.panel-group { - margin-bottom: 20px; -} -.panel-group .panel { - margin-bottom: 0; - border-radius: 4px; -} -.panel-group .panel + .panel { - margin-top: 5px; -} -.panel-group .panel-heading { - border-bottom: 0; -} -.panel-group .panel-heading + .panel-collapse > .panel-body, -.panel-group .panel-heading + .panel-collapse > .list-group { - border-top: 1px solid #ddd; -} -.panel-group .panel-footer { - border-top: 0; -} -.panel-group .panel-footer + .panel-collapse .panel-body { - border-bottom: 1px solid #ddd; -} -.panel-default { - border-color: #ddd; -} -.panel-default > .panel-heading { - color: #333; - background-color: #f5f5f5; - border-color: #ddd; -} -.panel-default > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #ddd; -} -.panel-default > .panel-heading .badge { - color: #f5f5f5; - background-color: #333; -} -.panel-default > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #ddd; -} -.panel-primary { - border-color: #337ab7; -} -.panel-primary > .panel-heading { - color: #fff; - background-color: #337ab7; - border-color: #337ab7; -} -.panel-primary > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #337ab7; -} -.panel-primary > .panel-heading .badge { - color: #337ab7; - background-color: #fff; -} -.panel-primary > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #337ab7; -} -.panel-success { - border-color: #d6e9c6; -} -.panel-success > .panel-heading { - color: #3c763d; - background-color: #dff0d8; - border-color: #d6e9c6; -} -.panel-success > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #d6e9c6; -} -.panel-success > .panel-heading .badge { - color: #dff0d8; - background-color: #3c763d; -} -.panel-success > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #d6e9c6; -} -.panel-info { - border-color: #bce8f1; -} -.panel-info > .panel-heading { - color: #31708f; - background-color: #d9edf7; - border-color: #bce8f1; -} -.panel-info > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #bce8f1; -} -.panel-info > .panel-heading .badge { - color: #d9edf7; - background-color: #31708f; -} -.panel-info > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #bce8f1; -} -.panel-warning { - border-color: #faebcc; -} -.panel-warning > .panel-heading { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #faebcc; -} -.panel-warning > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #faebcc; -} -.panel-warning > .panel-heading .badge { - color: #fcf8e3; - background-color: #8a6d3b; -} -.panel-warning > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #faebcc; -} -.panel-danger { - border-color: #ebccd1; -} -.panel-danger > .panel-heading { - color: #a94442; - background-color: #f2dede; - border-color: #ebccd1; -} -.panel-danger > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #ebccd1; -} -.panel-danger > .panel-heading .badge { - color: #f2dede; - background-color: #a94442; -} -.panel-danger > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #ebccd1; -} -.embed-responsive { - position: relative; - display: block; - height: 0; - padding: 0; - overflow: hidden; -} -.embed-responsive .embed-responsive-item, -.embed-responsive iframe, -.embed-responsive embed, -.embed-responsive object, -.embed-responsive video { - position: absolute; - top: 0; - bottom: 0; - left: 0; - width: 100%; - height: 100%; - border: 0; -} -.embed-responsive-16by9 { - padding-bottom: 56.25%; -} -.embed-responsive-4by3 { - padding-bottom: 75%; -} -.well { - min-height: 20px; - padding: 19px; - margin-bottom: 20px; - background-color: #f5f5f5; - border: 1px solid #e3e3e3; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); -} -.well blockquote { - border-color: #ddd; - border-color: rgba(0, 0, 0, 0.15); -} -.well-lg { - padding: 24px; - border-radius: 6px; -} -.well-sm { - padding: 9px; - border-radius: 3px; -} -.close { - float: right; - font-size: 21px; - font-weight: bold; - line-height: 1; - color: #000; - text-shadow: 0 1px 0 #fff; - filter: alpha(opacity=20); - opacity: 0.2; -} -.close:hover, -.close:focus { - color: #000; - text-decoration: none; - cursor: pointer; - filter: alpha(opacity=50); - opacity: 0.5; -} -button.close { - -webkit-appearance: none; - padding: 0; - cursor: pointer; - background: transparent; - border: 0; -} -.modal-open { - overflow: hidden; -} -.modal { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1050; - display: none; - overflow: hidden; - -webkit-overflow-scrolling: touch; - outline: 0; -} -.modal.fade .modal-dialog { - -webkit-transition: -webkit-transform 0.3s ease-out; - -o-transition: -o-transform 0.3s ease-out; - transition: transform 0.3s ease-out; - -webkit-transform: translate(0, -25%); - -ms-transform: translate(0, -25%); - -o-transform: translate(0, -25%); - transform: translate(0, -25%); -} -.modal.in .modal-dialog { - -webkit-transform: translate(0, 0); - -ms-transform: translate(0, 0); - -o-transform: translate(0, 0); - transform: translate(0, 0); -} -.modal-open .modal { - overflow-x: hidden; - overflow-y: auto; -} -.modal-dialog { - position: relative; - width: auto; - margin: 10px; -} -.modal-content { - position: relative; - background-color: #fff; - -webkit-background-clip: padding-box; - background-clip: padding-box; - border: 1px solid #999; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 6px; - outline: 0; - -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); - box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); -} -.modal-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1040; - background-color: #000; -} -.modal-backdrop.fade { - filter: alpha(opacity=0); - opacity: 0; -} -.modal-backdrop.in { - filter: alpha(opacity=50); - opacity: 0.5; -} -.modal-header { - min-height: 16.42857143px; - padding: 15px; - border-bottom: 1px solid #e5e5e5; -} -.modal-header .close { - margin-top: -2px; -} -.modal-title { - margin: 0; - line-height: 1.42857143; -} -.modal-body { - position: relative; - padding: 15px; -} -.modal-footer { - padding: 15px; - text-align: right; - border-top: 1px solid #e5e5e5; -} -.modal-footer .btn + .btn { - margin-bottom: 0; - margin-left: 5px; -} -.modal-footer .btn-group .btn + .btn { - margin-left: -1px; -} -.modal-footer .btn-block + .btn-block { - margin-left: 0; -} -.modal-scrollbar-measure { - position: absolute; - top: -9999px; - width: 50px; - height: 50px; - overflow: scroll; -} -@media (min-width: 768px) { - .modal-dialog { - width: 600px; - margin: 30px auto; - } - .modal-content { - -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); - box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); - } - .modal-sm { - width: 300px; - } -} -@media (min-width: 992px) { - .modal-lg { - width: 900px; - } -} -.tooltip { - position: absolute; - z-index: 1070; - display: block; - font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; - font-size: 12px; - font-weight: normal; - line-height: 1.4; - filter: alpha(opacity=0); - opacity: 0; -} -.tooltip.in { - filter: alpha(opacity=90); - opacity: 0.9; -} -.tooltip.top { - padding: 5px 0; - margin-top: -3px; -} -.tooltip.right { - padding: 0 5px; - margin-left: 3px; -} -.tooltip.bottom { - padding: 5px 0; - margin-top: 3px; -} -.tooltip.left { - padding: 0 5px; - margin-left: -3px; -} -.tooltip-inner { - max-width: 200px; - padding: 3px 8px; - color: #fff; - text-align: center; - text-decoration: none; - background-color: #000; - border-radius: 4px; -} -.tooltip-arrow { - position: absolute; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} -.tooltip.top .tooltip-arrow { - bottom: 0; - left: 50%; - margin-left: -5px; - border-width: 5px 5px 0; - border-top-color: #000; -} -.tooltip.top-left .tooltip-arrow { - right: 5px; - bottom: 0; - margin-bottom: -5px; - border-width: 5px 5px 0; - border-top-color: #000; -} -.tooltip.top-right .tooltip-arrow { - bottom: 0; - left: 5px; - margin-bottom: -5px; - border-width: 5px 5px 0; - border-top-color: #000; -} -.tooltip.right .tooltip-arrow { - top: 50%; - left: 0; - margin-top: -5px; - border-width: 5px 5px 5px 0; - border-right-color: #000; -} -.tooltip.left .tooltip-arrow { - top: 50%; - right: 0; - margin-top: -5px; - border-width: 5px 0 5px 5px; - border-left-color: #000; -} -.tooltip.bottom .tooltip-arrow { - top: 0; - left: 50%; - margin-left: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000; -} -.tooltip.bottom-left .tooltip-arrow { - top: 0; - right: 5px; - margin-top: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000; -} -.tooltip.bottom-right .tooltip-arrow { - top: 0; - left: 5px; - margin-top: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000; -} -.popover { - position: absolute; - top: 0; - left: 0; - z-index: 1060; - display: none; - max-width: 276px; - padding: 1px; - font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; - font-size: 14px; - font-weight: normal; - line-height: 1.42857143; - text-align: left; - white-space: normal; - background-color: #fff; - -webkit-background-clip: padding-box; - 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); -} -.popover.top { - margin-top: -10px; -} -.popover.right { - margin-left: 10px; -} -.popover.bottom { - margin-top: 10px; -} -.popover.left { - margin-left: -10px; -} -.popover-title { - padding: 8px 14px; - margin: 0; - font-size: 14px; - background-color: #f7f7f7; - border-bottom: 1px solid #ebebeb; - border-radius: 5px 5px 0 0; -} -.popover-content { - padding: 9px 14px; -} -.popover > .arrow, -.popover > .arrow:after { - position: absolute; - display: block; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} -.popover > .arrow { - border-width: 11px; -} -.popover > .arrow:after { - content: ''; - border-width: 10px; -} -.popover.top > .arrow { - bottom: -11px; - left: 50%; - margin-left: -11px; - border-top-color: #999; - border-top-color: rgba(0, 0, 0, 0.25); - border-bottom-width: 0; -} -.popover.top > .arrow:after { - bottom: 1px; - margin-left: -10px; - content: ' '; - border-top-color: #fff; - border-bottom-width: 0; -} -.popover.right > .arrow { - top: 50%; - left: -11px; - margin-top: -11px; - border-right-color: #999; - border-right-color: rgba(0, 0, 0, 0.25); - border-left-width: 0; -} -.popover.right > .arrow:after { - bottom: -10px; - left: 1px; - content: ' '; - border-right-color: #fff; - border-left-width: 0; -} -.popover.bottom > .arrow { - top: -11px; - left: 50%; - margin-left: -11px; - border-top-width: 0; - border-bottom-color: #999; - border-bottom-color: rgba(0, 0, 0, 0.25); -} -.popover.bottom > .arrow:after { - top: 1px; - margin-left: -10px; - content: ' '; - border-top-width: 0; - border-bottom-color: #fff; -} -.popover.left > .arrow { - top: 50%; - right: -11px; - margin-top: -11px; - border-right-width: 0; - border-left-color: #999; - border-left-color: rgba(0, 0, 0, 0.25); -} -.popover.left > .arrow:after { - right: 1px; - bottom: -10px; - content: ' '; - border-right-width: 0; - border-left-color: #fff; -} -.carousel { - position: relative; -} -.carousel-inner { - position: relative; - width: 100%; - overflow: hidden; -} -.carousel-inner > .item { - position: relative; - display: none; - -webkit-transition: 0.6s ease-in-out left; - -o-transition: 0.6s ease-in-out left; - transition: 0.6s ease-in-out left; -} -.carousel-inner > .item > img, -.carousel-inner > .item > a > img { - line-height: 1; -} -@media all and (transform-3d), (-webkit-transform-3d) { - .carousel-inner > .item { - -webkit-transition: -webkit-transform 0.6s ease-in-out; - -o-transition: -o-transform 0.6s ease-in-out; - transition: transform 0.6s ease-in-out; - - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - -webkit-perspective: 1000; - perspective: 1000; - } - .carousel-inner > .item.next, - .carousel-inner > .item.active.right { - left: 0; - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); - } - .carousel-inner > .item.prev, - .carousel-inner > .item.active.left { - left: 0; - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - } - .carousel-inner > .item.next.left, - .carousel-inner > .item.prev.right, - .carousel-inner > .item.active { - left: 0; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} -.carousel-inner > .active, -.carousel-inner > .next, -.carousel-inner > .prev { - display: block; -} -.carousel-inner > .active { - left: 0; -} -.carousel-inner > .next, -.carousel-inner > .prev { - position: absolute; - top: 0; - width: 100%; -} -.carousel-inner > .next { - left: 100%; -} -.carousel-inner > .prev { - left: -100%; -} -.carousel-inner > .next.left, -.carousel-inner > .prev.right { - left: 0; -} -.carousel-inner > .active.left { - left: -100%; -} -.carousel-inner > .active.right { - left: 100%; -} -.carousel-control { - position: absolute; - top: 0; - bottom: 0; - left: 0; - width: 15%; - font-size: 20px; - color: #fff; - text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); - filter: alpha(opacity=50); - opacity: 0.5; -} -.carousel-control.left { - background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); - background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); - background-image: -webkit-gradient( - linear, - left top, - right top, - from(rgba(0, 0, 0, 0.5)), - to(rgba(0, 0, 0, 0.0001)) - ); - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); - background-repeat: repeat-x; -} -.carousel-control.right { - right: 0; - left: auto; - background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); - background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); - background-image: -webkit-gradient( - linear, - left top, - right top, - from(rgba(0, 0, 0, 0.0001)), - to(rgba(0, 0, 0, 0.5)) - ); - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); - background-repeat: repeat-x; -} -.carousel-control:hover, -.carousel-control:focus { - color: #fff; - text-decoration: none; - filter: alpha(opacity=90); - outline: 0; - opacity: 0.9; -} -.carousel-control .icon-prev, -.carousel-control .icon-next, -.carousel-control .glyphicon-chevron-left, -.carousel-control .glyphicon-chevron-right { - position: absolute; - top: 50%; - z-index: 5; - display: inline-block; -} -.carousel-control .icon-prev, -.carousel-control .glyphicon-chevron-left { - left: 50%; - margin-left: -10px; -} -.carousel-control .icon-next, -.carousel-control .glyphicon-chevron-right { - right: 50%; - margin-right: -10px; -} -.carousel-control .icon-prev, -.carousel-control .icon-next { - width: 20px; - height: 20px; - margin-top: -10px; - font-family: serif; - line-height: 1; -} -.carousel-control .icon-prev:before { - content: '\2039'; -} -.carousel-control .icon-next:before { - content: '\203a'; -} -.carousel-indicators { - position: absolute; - bottom: 10px; - left: 50%; - z-index: 15; - width: 60%; - padding-left: 0; - margin-left: -30%; - text-align: center; - list-style: none; -} -.carousel-indicators li { - display: inline-block; - width: 10px; - height: 10px; - margin: 1px; - text-indent: -999px; - cursor: pointer; - background-color: #000 \9; - background-color: rgba(0, 0, 0, 0); - border: 1px solid #fff; - border-radius: 10px; -} -.carousel-indicators .active { - width: 12px; - height: 12px; - margin: 0; - background-color: #fff; -} -.carousel-caption { - position: absolute; - right: 15%; - bottom: 20px; - left: 15%; - z-index: 10; - padding-top: 20px; - padding-bottom: 20px; - color: #fff; - text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); -} -.carousel-caption .btn { - text-shadow: none; -} -@media screen and (min-width: 768px) { - .carousel-control .glyphicon-chevron-left, - .carousel-control .glyphicon-chevron-right, - .carousel-control .icon-prev, - .carousel-control .icon-next { - width: 30px; - height: 30px; - margin-top: -15px; - font-size: 30px; - } - .carousel-control .glyphicon-chevron-left, - .carousel-control .icon-prev { - margin-left: -15px; - } - .carousel-control .glyphicon-chevron-right, - .carousel-control .icon-next { - margin-right: -15px; - } - .carousel-caption { - right: 20%; - left: 20%; - padding-bottom: 30px; - } - .carousel-indicators { - bottom: 20px; - } -} -.clearfix:before, -.clearfix:after, -.dl-horizontal dd:before, -.dl-horizontal dd:after, -.container:before, -.container:after, -.container-fluid:before, -.container-fluid:after, -.row:before, -.row:after, -.form-horizontal .form-group:before, -.form-horizontal .form-group:after, -.btn-toolbar:before, -.btn-toolbar:after, -.btn-group-vertical > .btn-group:before, -.btn-group-vertical > .btn-group:after, -.nav:before, -.nav:after, -.navbar:before, -.navbar:after, -.navbar-header:before, -.navbar-header:after, -.navbar-collapse:before, -.navbar-collapse:after, -.pager:before, -.pager:after, -.panel-body:before, -.panel-body:after, -.modal-footer:before, -.modal-footer:after { - display: table; - content: ' '; -} -.clearfix:after, -.dl-horizontal dd:after, -.container:after, -.container-fluid:after, -.row:after, -.form-horizontal .form-group:after, -.btn-toolbar:after, -.btn-group-vertical > .btn-group:after, -.nav:after, -.navbar:after, -.navbar-header:after, -.navbar-collapse:after, -.pager:after, -.panel-body:after, -.modal-footer:after { - clear: both; -} -.center-block { - display: block; - margin-right: auto; - margin-left: 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; -} -.affix { - position: fixed; -} -@-ms-viewport { - width: device-width; -} -.visible-xs, -.visible-sm, -.visible-md, -.visible-lg { - display: none !important; -} -.visible-xs-block, -.visible-xs-inline, -.visible-xs-inline-block, -.visible-sm-block, -.visible-sm-inline, -.visible-sm-inline-block, -.visible-md-block, -.visible-md-inline, -.visible-md-inline-block, -.visible-lg-block, -.visible-lg-inline, -.visible-lg-inline-block { - display: none !important; -} -@media (max-width: 767px) { - .visible-xs { - display: block !important; - } - table.visible-xs { - display: table; - } - tr.visible-xs { - display: table-row !important; - } - th.visible-xs, - td.visible-xs { - display: table-cell !important; - } -} -@media (max-width: 767px) { - .visible-xs-block { - display: block !important; - } -} -@media (max-width: 767px) { - .visible-xs-inline { - display: inline !important; - } -} -@media (max-width: 767px) { - .visible-xs-inline-block { - display: inline-block !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm { - display: block !important; - } - table.visible-sm { - display: table; - } - tr.visible-sm { - display: table-row !important; - } - th.visible-sm, - td.visible-sm { - display: table-cell !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-block { - display: block !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-inline { - display: inline !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-inline-block { - display: inline-block !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md { - display: block !important; - } - table.visible-md { - display: table; - } - tr.visible-md { - display: table-row !important; - } - th.visible-md, - td.visible-md { - display: table-cell !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-block { - display: block !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-inline { - display: inline !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-inline-block { - display: inline-block !important; - } -} -@media (min-width: 1200px) { - .visible-lg { - display: block !important; - } - table.visible-lg { - display: table; - } - tr.visible-lg { - display: table-row !important; - } - th.visible-lg, - td.visible-lg { - display: table-cell !important; - } -} -@media (min-width: 1200px) { - .visible-lg-block { - display: block !important; - } -} -@media (min-width: 1200px) { - .visible-lg-inline { - display: inline !important; - } -} -@media (min-width: 1200px) { - .visible-lg-inline-block { - display: inline-block !important; - } -} -@media (max-width: 767px) { - .hidden-xs { - display: none !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .hidden-sm { - display: none !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .hidden-md { - display: none !important; - } -} -@media (min-width: 1200px) { - .hidden-lg { - display: none !important; - } -} -.visible-print { - display: none !important; -} -@media print { - .visible-print { - display: block !important; - } - table.visible-print { - display: table; - } - tr.visible-print { - display: table-row !important; - } - th.visible-print, - td.visible-print { - display: table-cell !important; - } -} -.visible-print-block { - display: none !important; -} -@media print { - .visible-print-block { - display: block !important; - } -} -.visible-print-inline { - display: none !important; -} -@media print { - .visible-print-inline { - display: inline !important; - } -} -.visible-print-inline-block { - display: none !important; -} -@media print { - .visible-print-inline-block { - display: inline-block !important; - } -} -@media print { - .hidden-print { - display: none !important; - } -} diff --git a/theme_old/styles/web/sass/core/_legacy/bootstrap/fonts/glyphicons-halflings-regular.woff b/theme_old/styles/web/sass/core/_legacy/bootstrap/fonts/glyphicons-halflings-regular.woff deleted file mode 100644 index 9e61285..0000000 Binary files a/theme_old/styles/web/sass/core/_legacy/bootstrap/fonts/glyphicons-halflings-regular.woff and /dev/null differ diff --git a/theme_old/styles/web/sass/core/_legacy/bootstrap/fonts/glyphicons-halflings-regular.woff2 b/theme_old/styles/web/sass/core/_legacy/bootstrap/fonts/glyphicons-halflings-regular.woff2 deleted file mode 100644 index 64539b5..0000000 Binary files a/theme_old/styles/web/sass/core/_legacy/bootstrap/fonts/glyphicons-halflings-regular.woff2 and /dev/null differ diff --git a/theme_old/styles/web/sass/core/_variables.scss b/theme_old/styles/web/sass/core/_variables.scss deleted file mode 100644 index 5c864ad..0000000 --- a/theme_old/styles/web/sass/core/_variables.scss +++ /dev/null @@ -1,649 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -// -// ██████╗ █████╗ ███████╗██╗ ██████╗ -// ██╔══██╗██╔══██╗██╔════╝██║██╔════╝ -// ██████╔╝███████║███████╗██║██║ -// ██╔══██╗██╔══██║╚════██║██║██║ -// ██████╔╝██║ ██║███████║██║╚██████╗ -// ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═════╝ -// - - -//== Gray Shades -//## Different gray shades to be used for our variables and components -$gray-darker: #222 !default; -$gray-dark: #333 !default; -$gray: #555 !default; -$gray-light: #888 !default; -$gray-primary: #d7d7d7 !default; -$gray-lighter: #eee !default; - - -//== Step 1: Brand Colors -$brand-default: #DDDDDD !default; -$brand-primary: #0595DB !default; -$brand-inverse: #252C36 !default; -$brand-info: #48B0F7 !default; -$brand-success: #76CA02 !default; -$brand-warning: #f99b1d !default; -$brand-danger: #ed1c24 !default; - -$brand-logo: false !default; -$brand-logo-height: 26px !default; -$brand-logo-width: 26px !default; // Only used for CSS brand logo - - - - - -//== Step 2: UI Customization - -// Default Font Size & Color -$font-size-default: 14px !default; -$font-color-default: #555 !default; - -// Global Border Color -$border-color-default: $gray-primary !default; -$border-radius-default: 4px !default; - -// Topbar -$topbar-bg: #FFF !default; -$topbar-minimalheight: 60px !default; -$topbar-border-color: $border-color-default !default; - -// Topbar mobile -$m-header-height: 45px !default; -$m-header-bg: $topbar-bg !default; -$m-header-color: #555 !default; -$m-header-title-size: 17px !default; - - -// Sidebar -$sidebar-bg: $brand-inverse !default; - -// Navbar Brand Name / For your company, product, or project name (used in layouts/base/) -$navbar-brand-name: $font-color-default !default; - -// Background Colors -$bg-color: #FFF !default; -$bg-color-secondary: #F5F8FD !default; // Background color that is used for specific page templates background - -// Default Link Color -$link-color: $brand-primary !default; -$link-hover-color: darken($link-color, 15%) !default; - - - - - -// -// █████╗ ██████╗ ██╗ ██╗ █████╗ ███╗ ██╗ ██████╗███████╗██████╗ -// ██╔══██╗██╔══██╗██║ ██║██╔══██╗████╗ ██║██╔════╝██╔════╝██╔══██╗ -// ███████║██║ ██║██║ ██║███████║██╔██╗ ██║██║ █████╗ ██║ ██║ -// ██╔══██║██║ ██║╚██╗ ██╔╝██╔══██║██║╚██╗██║██║ ██╔══╝ ██║ ██║ -// ██║ ██║██████╔╝ ╚████╔╝ ██║ ██║██║ ╚████║╚██████╗███████╗██████╔╝ -// ╚═╝ ╚═╝╚═════╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝╚══════╝╚═════╝ -// - - -//== Typography -//## Change your font family, weight, line-height, headings and more (used in components/typography) - -// Font Family Import (Used for google font plugin in theme creater https://ux.mendix.com/theme-creator.html) -$font-family-import: "https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700" !default; -@if $font-family-import != false { - // Only import, if the import is set - @import url($font-family-import); -} - -// Font Family / False = fallback from Bootstrap (Helvetica Neue) -$font-family-base: 'Open Sans', sans-serif !default; - -// Font Sizes -$font-size-large: 16px !default; -$font-size-small: 12px !default; - -// Font Weights -$font-weight-light: 100 !default; -$font-weight-normal: normal !default; -$font-weight-semibold: 600 !default; -$font-weight-bold: bold !default; - -// Font Size Headers -$font-size-h1: 31px !default; -$font-size-h2: 26px !default; -$font-size-h3: 24px !default; -$font-size-h4: 18px !default; -$font-size-h5: $font-size-default !default; -$font-size-h6: 12px !default; - -// Font Weight Headers -$font-weight-header: $font-weight-normal !default; - -// Line Height -$line-height-base: 1.428571429 !default; - -// Spacing -$font-header-margin: 15px 0 30px 0 !default; - -// Text Colors -$font-color-header: #17347B !default; -$font-color-detail: $gray-light !default; - - - - - -//== Navigation -//## Used in components/navigation - -// Default Navigation styling -$navigation-item-height: 60px !default; -$navigation-item-padding: 5px 15px !default; - -$navigation-font-size: $font-size-default !default; -$navigation-sub-font-size: $font-size-small !default; -$navigation-glyph-size: 20px !default; // For glyphicons that you can select in the Mendix Modeler - -$navigation-bg: $brand-inverse !default; -$navigation-bg-hover: lighten($navigation-bg, 4) !default; -$navigation-bg-active: lighten($navigation-bg, 8) !default; -$navigation-color: #FFF !default; -$navigation-color-hover: #FFF !default; -$navigation-color-active: #FFF !default; - -$navigation-sub-bg: darken($navigation-bg, 4) !default; -$navigation-sub-bg-hover: $navigation-sub-bg !default; -$navigation-sub-bg-active: $navigation-sub-bg !default; -$navigation-sub-color: #AAA !default; -$navigation-sub-color-hover: $brand-primary !default; -$navigation-sub-color-active: $brand-primary !default; - -$navigation-border-color: $navigation-bg-hover !default; - -// Navigation Sidebar -$navsidebar-font-size: $font-size-default !default; -$navsidebar-sub-font-size: $font-size-small !default; -$navsidebar-glyph-size: 20px !default; // For glyphicons that you can select in the Mendix Modeler - -$navsidebar-bg: $sidebar-bg !default; -$navsidebar-bg-hover: lighten($navsidebar-bg, 4) !default; -$navsidebar-bg-active: lighten($navsidebar-bg, 8) !default; -$navsidebar-color: #FFF !default; -$navsidebar-color-hover: #FFF !default; -$navsidebar-color-active: #FFF !default; - -$navsidebar-sub-bg: darken($navsidebar-bg, 4) !default; -$navsidebar-sub-bg-hover: $navsidebar-sub-bg !default; -$navsidebar-sub-bg-active: $navsidebar-sub-bg !default; -$navsidebar-sub-color: #AAA !default; -$navsidebar-sub-color-hover: $brand-primary !default; -$navsidebar-sub-color-active: $brand-primary !default; - -$navsidebar-border-color: $navsidebar-bg-hover !default; - -// Navigation topbar -$navtopbar-font-size: $font-size-default !default; -$navtopbar-sub-font-size: $font-size-small !default; -$navtopbar-glyph-size: 1.2em !default; // For glyphicons that you can select in the Mendix Modeler - -$navtopbar-bg: $topbar-bg !default; -$navtopbar-bg-hover: darken($navtopbar-bg, 4) !default; -$navtopbar-bg-active: darken($navtopbar-bg, 8) !default; -$navtopbar-color: $font-color-default !default; -$navtopbar-color-hover: $navtopbar-color !default; -$navtopbar-color-active: $navtopbar-color !default; - -$navtopbar-sub-bg: lighten($navtopbar-bg, 4) !default; -$navtopbar-sub-bg-hover: $navtopbar-sub-bg !default; -$navtopbar-sub-bg-active: $navtopbar-sub-bg !default; -$navtopbar-sub-color: #AAA !default; -$navtopbar-sub-color-hover: $brand-primary !default; -$navtopbar-sub-color-active: $brand-primary !default; - -//## Used in layouts/base -$navtopbar-border-color: $topbar-border-color !default; - - - - -//== Form -//## Used in components/inputs - -// Values that can be used default | lined -$form-input-style: default !default; - -// Form Label -$form-label-color: #666 !default; -$form-label-size: $font-size-default !default; -$form-label-weight: $font-weight-semibold !default; -$form-label-gutter: 8px !default; - -// Form Input dimensions -$form-input-height: auto !default; -$form-input-padding-y: 8px !default; -$form-input-padding-x: 10px !default; -$form-input-font-size: $form-label-size !default; -$form-input-line-height: $line-height-base !default; -$form-input-border-radius: $border-radius-default !default; - -// Form Input styling -$form-input-bg: #FFF !default; -$form-input-bg-focus: #FFF !default; -$form-input-bg-hover: $gray-primary !default; -$form-input-bg-disabled: $gray-lighter !default; -$form-input-color: $font-color-default !default; -$form-input-focus-color: $form-input-color !default; -$form-input-disabled-color: $form-input-color !default; -$form-input-placeholder-color: $gray-light !default; -$form-input-border-color: $border-color-default !default; -$form-input-border-focus-color: $brand-primary !default; - -// Form Input Static styling -$form-input-static-border-color: #F0F0EE !default; - -// Form Group -$form-group-margin-bottom: 15px !default; -$form-group-gutter: 15px !default; - - - - -//== Buttons -//## Define background-color, border-color and text. Used in components/buttons - -// Default button style -$btn-font-size: 14px !default; -$btn-bordered: false !default; // Default value false, set to true if you want this effect -$btn-border-radius: $border-radius-default !default; - -// Button Background Color -$btn-default-bg: #FFF !default; -$btn-inverse-bg: $brand-inverse !default; -$btn-primary-bg: $brand-primary !default; -$btn-info-bg: $brand-info !default; -$btn-success-bg: $brand-success !default; -$btn-warning-bg: $brand-warning !default; -$btn-danger-bg: $brand-danger !default; - -// Button Border Color -$btn-default-border-color: $brand-default !default; -$btn-inverse-border-color: $btn-inverse-bg !default; -$btn-primary-border-color: $btn-primary-bg !default; -$btn-info-border-color: $btn-info-bg !default; -$btn-success-border-color: $btn-success-bg !default; -$btn-warning-border-color: $btn-warning-bg !default; -$btn-danger-border-color: $btn-danger-bg !default; - -// Button Text Color -$btn-default-color: $brand-primary !default; -$btn-inverse-color: #FFF !default; -$btn-primary-color: #FFF !default; -$btn-info-color: #FFF !default; -$btn-success-color: #FFF !default; -$btn-warning-color: #FFF !default; -$btn-danger-color: #FFF !default; - -// Button Background Color -$btn-default-bg-hover: $btn-default-border-color !default; -$btn-inverse-bg-hover: mix($btn-inverse-bg, white, 80%) !default; -$btn-primary-bg-hover: mix($btn-primary-bg, black, 80%) !default; -$btn-info-bg-hover: mix($btn-info-bg, black, 80%) !default; -$btn-success-bg-hover: mix($btn-success-bg, black, 80%) !default; -$btn-warning-bg-hover: mix($btn-warning-bg, black, 80%) !default; -$btn-danger-bg-hover: mix($btn-danger-bg, black, 80%) !default; -$btn-link-bg-hover: $gray-lighter !default; - - - - -//== Header blocks -//## Define look and feel over multible building blocks that serve as header -$header-bg-color: $bg-color-secondary !default; -$header-text-color: #FFF !default; -$header-text-color-detail: rgba(0,0,0, 0.2) !default; - - - - - -// -// ███████╗██╗ ██╗██████╗ ███████╗██████╗ ████████╗ -// ██╔════╝╚██╗██╔╝██╔══██╗██╔════╝██╔══██╗╚══██╔══╝ -// █████╗ ╚███╔╝ ██████╔╝█████╗ ██████╔╝ ██║ -// ██╔══╝ ██╔██╗ ██╔═══╝ ██╔══╝ ██╔══██╗ ██║ -// ███████╗██╔╝ ██╗██║ ███████╗██║ ██║ ██║ -// ╚══════╝╚═╝ ╚═╝╚═╝ ╚══════╝╚═╝ ╚═╝ ╚═╝ -// - -//== Color variations -//## These variations are used to support several other variables and components - -// Color variations -$color-default-darker: mix($brand-default, black, 60%) !default; -$color-default-dark: mix($brand-default, black, 70%) !default; -$color-default-light: mix($brand-default, white, 60%) !default; -$color-default-lighter: mix($brand-default, white, 20%) !default; - -$color-inverse-darker: mix($brand-inverse, black, 60%) !default; -$color-inverse-dark: mix($brand-inverse, black, 70%) !default; -$color-inverse-light: mix($brand-inverse, white, 60%) !default; -$color-inverse-lighter: mix($brand-inverse, white, 20%) !default; - -$color-primary-darker: mix($brand-primary, black, 60%) !default; -$color-primary-dark: mix($brand-primary, black, 70%) !default; -$color-primary-light: mix($brand-primary, white, 60%) !default; -$color-primary-lighter: mix($brand-primary, white, 20%) !default; - -$color-info-darker: mix($brand-info, black, 60%) !default; -$color-info-dark: mix($brand-info, black, 70%) !default; -$color-info-light: mix($brand-info, white, 60%) !default; -$color-info-lighter: mix($brand-info, white, 20%) !default; - -$color-success-darker: mix($brand-success, black, 60%) !default; -$color-success-dark: mix($brand-success, black, 70%) !default; -$color-success-light: mix($brand-success, white, 60%) !default; -$color-success-lighter: mix($brand-success, white, 20%) !default; - -$color-warning-darker: mix($brand-warning, black, 60%) !default; -$color-warning-dark: mix($brand-warning, black, 70%) !default; -$color-warning-light: mix($brand-warning, white, 60%) !default; -$color-warning-lighter: mix($brand-warning, white, 20%) !default; - -$color-danger-darker: mix($brand-danger, black, 60%) !default; -$color-danger-dark: mix($brand-danger, black, 70%) !default; -$color-danger-light: mix($brand-danger, white, 60%) !default; -$color-danger-lighter: mix($brand-danger, white, 20%) !default; - -$brand-gradient: linear-gradient(152deg, #0CC7F0 0%, #087ECC 51%, #077AC9 55%, #0659B9 78%) !default; - - -//== Grids -//## Used for Datagrid, Templategrid, Listview & Tables (see components folder) - -// Default Border Colors -$grid-border-color: $border-color-default !default; - -// Spacing -// Default -$grid-padding-top: 15px !default; -$grid-padding-right: 15px !default; -$grid-padding-bottom: 15px !default; -$grid-padding-left: 15px !default; - -// Listview -$listview-padding-top: 15px !default; -$listview-padding-right: 15px !default; -$listview-padding-bottom: 15px !default; -$listview-padding-left: 15px !default; - -// Background Colors -$grid-bg: #FFF !default; -$grid-bg-header: transparent !default; // Grid Headers -$grid-bg-hover: mix($grid-border-color, #FFF, 20%) !default; -$grid-bg-selected: mix($grid-border-color, #FFF, 30%) !default; -$grid-bg-selected-hover: mix($grid-border-color, #FFF, 50%) !default; - -// Striped Background Color -$grid-bg-striped: mix($grid-border-color, #FFF, 10%) !default; - -// Background Footer Color -$grid-footer-bg: $gray-primary !default; - -// Text Color -$grid-selected-color: $font-color-default !default; - -// Paging Colors -$grid-paging-bg: transparent !default; -$grid-paging-bg-hover: transparent !default; -$grid-paging-border-color: transparent !default; -$grid-paging-border-color-hover: transparent !default; -$grid-paging-color: $gray-light !default; -$grid-paging-color-hover: $brand-primary !default; - - - - -//== Tabs -//## Default variables for Tab Container Widget (used in components/tabcontainer) - -// Text Color -$tabs-color: $font-color-detail !default; -$tabs-color-active: $font-color-default !default; -$tabs-lined-color-active: $brand-primary !default; - -// Border Color -$tabs-border-color: $border-color-default !default; -$tabs-lined-border-color: $brand-primary !default; - -// Background Color -$tabs-bg: #FFF !default; -$tabs-bg-hover: lighten($tabs-border-color,5) !default; -$tabs-bg-active: $brand-primary !default; - - - - -//== Modals -//## Default Mendix Modal, Blocking Modal and Login Modal (used in components/modals) - -// Background Color -$modal-header-bg: transparent !default; - -// Border Color -$modal-header-border-color: $border-color-default !default; - -// Text Color -$modal-header-color: $font-color-default !default; - - - - -//== Dataview -//## Default variables for Dataview Widget (used in components/dataview) - -// Controls -$dataview-controls-bg: transparent !default; -$dataview-controls-border-color: $border-color-default !default; - -// Empty Message -$dataview-emptymessage-bg: $bg-color !default; -$dataview-emptymessage-color: $font-color-default !default; - - - - -//== Alerts -//## Default Bootstrap alerts, not a widget in the Modeler (used in components/alerts) - -// Background Color -$alert-info-bg: $color-info-lighter !default; -$alert-success-bg: $color-success-lighter !default; -$alert-warning-bg: $color-warning-lighter !default; -$alert-danger-bg: $color-danger-lighter !default; - -// Text Color -$alert-info-color: $color-info-darker !default; -$alert-success-color: $color-success-darker !default; -$alert-warning-color: $color-warning-darker !default; -$alert-danger-color: $color-danger-darker !default; - -// Border Color -$alert-info-border-color: $color-info-dark !default; -$alert-success-border-color: $color-success-dark !default; -$alert-warning-border-color: $color-warning-dark !default; -$alert-danger-border-color: $color-danger-dark !default; - - - - -//== Labels -//## Default Bootstrap Labels, not a widget in the Modeler (used in components/labels) - -// Background Color -$label-default-bg: $brand-default !default; -$label-primary-bg: $brand-primary !default; -$label-info-bg: $brand-info !default; -$label-inverse-bg: $brand-inverse !default; -$label-success-bg: $brand-success !default; -$label-warning-bg: $brand-warning !default; -$label-danger-bg: $brand-danger !default; - -// Border Color -$label-default-border-color: $brand-default !default; -$label-primary-border-color: $brand-primary !default; -$label-info-border-color: $brand-info !default; -$label-success-border-color: $brand-success !default; -$label-warning-border-color: $brand-warning !default; -$label-danger-border-color: $brand-danger !default; - -// Text Color -$label-default-color: $font-color-default !default; -$label-primary-color: #FFF !default; -$label-info-color: #FFF !default; -$label-inverse-color: #FFF !default; -$label-success-color: #FFF !default; -$label-warning-color: #FFF !default; -$label-danger-color: #FFF !default; - - - - -//== Groupbox -//## Default variables for Groupbox Widget (used in components/groupbox) - -// Background Color -$groupbox-default-bg: $brand-default !default; -$groupbox-inverse-bg: $brand-inverse !default; -$groupbox-primary-bg: $brand-primary !default; -$groupbox-info-bg: $brand-info !default; -$groupbox-success-bg: $brand-success !default; -$groupbox-warning-bg: $brand-warning !default; -$groupbox-danger-bg: $brand-danger !default; -$groupbox-white-bg: #FFF !default; - -// Text Color -$groupbox-default-color: $font-color-default !default; -$groupbox-inverse-color: #FFF !default; -$groupbox-primary-color: #FFF !default; -$groupbox-info-color: #FFF !default; -$groupbox-success-color: #FFF !default; -$groupbox-warning-color: #FFF !default; -$groupbox-danger-color: #FFF !default; -$groupbox-white-color: $font-color-default !default; - - - - -//== Callout (groupbox) Colors -//## Extended variables for Groupbox Widget (used in components/groupbox) - -// Text and Border Color -$callout-default-color: $font-color-default !default; -$callout-info-color: $brand-info !default; -$callout-success-color: $brand-success !default; -$callout-warning-color: $brand-warning !default; -$callout-danger-color: $brand-danger !default; - -// Background Color -$callout-default-bg: $color-default-lighter!default; -$callout-info-bg: $color-info-lighter !default; -$callout-success-bg: $color-success-lighter !default; -$callout-warning-bg: $color-warning-lighter !default; -$callout-danger-bg: $color-danger-lighter !default; - -//== Timeline -//## Extended variables for Timeline Widget -// Colors -$timeline-icon-color: $brand-primary; -$timeline-border-color: $border-color-default; - -$timeline-color-header: $font-color-header; -$timeline-color-detail: $font-color-detail; - -// Sizes -$timeline-icon-size: 18px; - -//== Spacing -//## Advanced layout options (used in base/mixins/default-spacing) - -// Small spacing -$spacing-small: 5px !default; - -// Medium spacing -$spacing-medium: 15px !default; -$t-spacing-medium: 15px !default; -$m-spacing-medium: 15px !default; - -// Large spacing -$spacing-large: 30px !default; -$t-spacing-large: 30px !default; -$m-spacing-large: 15px !default; - -// Layout spacing -$layout-spacing-top: 30px !default; -$layout-spacing-right: 30px !default; -$layout-spacing-bottom: 30px !default; -$layout-spacing-left: 30px !default; - -$t-layout-spacing-top: 30px !default; -$t-layout-spacing-right: 30px !default; -$t-layout-spacing-bottom: 30px !default; -$t-layout-spacing-left: 30px !default; - -$m-layout-spacing-top: 15px !default; -$m-layout-spacing-right: 15px !default; -$m-layout-spacing-bottom: 15px !default; -$m-layout-spacing-left: 15px !default; - -// Combined layout spacing -$layout-spacing: $layout-spacing-top $layout-spacing-right $layout-spacing-bottom $layout-spacing-left !default; -$m-layout-spacing: $m-layout-spacing-top $m-layout-spacing-right $m-layout-spacing-bottom $m-layout-spacing-left !default; -$t-layout-spacing: $t-layout-spacing-top $t-layout-spacing-right $t-layout-spacing-bottom $t-layout-spacing-left !default; - -// Gutter size -$gutter-size: 15px !default; - - - - - -//== Tables -//## Table spacing options (used in components/tables) - -$padding-table-cell-top: 8px !default; -$padding-table-cell-bottom: 8px !default; -$padding-table-cell-left: 8px !default; -$padding-table-cell-right: 8px !default; - - - - -//== Media queries breakpoints -//## Define the breakpoints at which your layout will change, adapting to different screen sizes. - -$screen-xs: 480px !default; -$screen-sm: 576px !default; -$screen-md: 768px !default; -$screen-lg: 992px !default; -$screen-xl: 1200px !default; - -// So media queries don't overlap when required, provide a maximum (used for max-width) -$screen-xs-max: ($screen-sm - 1) !default; -$screen-sm-max: ($screen-md - 1) !default; -$screen-md-max: ($screen-lg - 1) !default; -$screen-lg-max: ($screen-xl - 1) !default; - - -//== Settings -//## Enable or disable your desired framework features -// Use of !important -$important-flex: true !default; // ./base/flex.scss -$important-spacing: true !default; // ./base/spacing.scss -$important-helpers: true !default; // ./helpers/helperclasses.scss diff --git a/theme_old/styles/web/sass/core/base/_animation.scss b/theme_old/styles/web/sass/core/base/_animation.scss deleted file mode 100644 index 425d343..0000000 --- a/theme_old/styles/web/sass/core/base/_animation.scss +++ /dev/null @@ -1,55 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -@keyframes slideInUp { - from { - visibility: visible; - transform: translate3d(0, 100%, 0); - } - - to { - transform: translate3d(0, 0, 0); - } -} - -.animated { - animation-duration: 0.4s; - animation-fill-mode: both; -} - -.slideInUp { - animation-name: slideInUp; -} - -@keyframes slideInDown { - from { - visibility: visible; - transform: translate3d(0, -100%, 0); - } - - to { - transform: translate3d(0, 0, 0); - } -} - -.slideInDown { - animation-name: slideInDown; -} - -@keyframes fadeIn { - from { - opacity: 0; - } - - to { - opacity: 1; - } -} - -.fadeIn { - animation-name: fadeIn; -} diff --git a/theme_old/styles/web/sass/core/base/_base.scss b/theme_old/styles/web/sass/core/base/_base.scss deleted file mode 100644 index b9d4379..0000000 --- a/theme_old/styles/web/sass/core/base/_base.scss +++ /dev/null @@ -1,71 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// -/* ========================================================================== - Base - - Default settings -========================================================================== */ -html { - height: 100%; -} - -body { - min-height: 100%; - color: $font-color-default; - background-color: $bg-color; - font-family: $font-family-base; - font-size: $font-size-default; - font-weight: $font-weight-normal; - line-height: $line-height-base; -} - -a { - -moz-transition: 0.25s; - -o-transition: 0.25s; - -webkit-transition: 0.25s; - transition: 0.25s; - color: $link-color; - -webkit-backface-visibility: hidden; -} - -a:hover { - text-decoration: underline; - color: $link-hover-color; -} - -// Address `outline` inconsistency between Chrome and other browsers. -a:focus { - outline: thin dotted; -} - -// Improve readability when focused and also mouse hovered in all browsers -a:active, -a:hover { - outline: 0; -} - -// Removes large blue border in chrome on focus and active states -input:focus, -button:focus, -.mx-link:focus { - outline: 0; -} - -// Removes large blue border for tabindexes from widgets -div[tabindex] { - outline: 0; -} - -// Disabled State -.disabled, -[disabled] { - cursor: not-allowed; - // opacity: 0.65; - -webkit-box-shadow: none; - box-shadow: none; - filter: alpha(opacity=65); -} diff --git a/theme_old/styles/web/sass/core/base/_flex.scss b/theme_old/styles/web/sass/core/base/_flex.scss deleted file mode 100644 index 4f6364e..0000000 --- a/theme_old/styles/web/sass/core/base/_flex.scss +++ /dev/null @@ -1,180 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// -/* ========================================================================== - Flex - - Flex classes -========================================================================== */ -$important-flex-value: if($important-flex, ' !important', ''); - -// Flex layout -.flexcontainer { - display: flex; - overflow: hidden; - flex: 1; - flex-direction: row; - - .flexitem { - margin-right: $gutter-size; - - &:last-child { - margin-right: 0; - } - } - - .flexitem-main { - overflow: hidden; - flex: 1; - } -} - -// These classes define the order of the children -.flex-row { - flex-direction: row #{$important-flex-value}; -} - -.flex-column { - flex-direction: column #{$important-flex-value}; -} - -.flex-row-reverse { - flex-direction: row-reverse #{$important-flex-value}; -} - -.flex-column-reverse { - flex-direction: column-reverse #{$important-flex-value}; -} - -.flex-wrap { - flex-wrap: wrap #{$important-flex-value}; -} - -.flex-nowrap { - flex-wrap: nowrap #{$important-flex-value}; -} - -.flex-wrap-reverse { - flex-wrap: wrap-reverse #{$important-flex-value}; -} - -// Align children in both directions -.flex-center { - align-items: center #{$important-flex-value}; - justify-content: center #{$important-flex-value}; -} - -// These classes define the alignment of the children -.justify-content-start { - justify-content: flex-start #{$important-flex-value}; -} - -.justify-content-end { - justify-content: flex-end #{$important-flex-value}; -} - -.justify-content-center { - justify-content: center #{$important-flex-value}; -} - -.justify-content-between { - justify-content: space-between #{$important-flex-value}; -} - -.justify-content-around { - justify-content: space-around #{$important-flex-value}; -} - -.justify-content-evenly { - // Not Supported in IE11 - justify-content: space-evenly #{$important-flex-value}; -} - -.justify-content-stretch { - justify-content: stretch #{$important-flex-value}; -} - -/// These classes define the alignment of the children in the cross-direction -.align-children-start { - align-items: flex-start #{$important-flex-value}; -} - -.align-children-end { - align-items: flex-end #{$important-flex-value}; -} - -.align-children-center { - align-items: center #{$important-flex-value}; -} - -.align-children-baseline { - align-items: baseline #{$important-flex-value}; -} - -.align-children-stretch { - align-items: stretch #{$important-flex-value}; -} - -/// These classes define the alignment of the rows of children in the cross-direction -.align-content-start { - align-content: flex-start #{$important-flex-value}; -} - -.align-content-end { - align-content: flex-end #{$important-flex-value}; -} - -.align-content-center { - align-content: center #{$important-flex-value}; -} - -.align-content-between { - align-content: space-between #{$important-flex-value}; -} - -.align-content-around { - align-content: space-around #{$important-flex-value}; -} - -.align-content-stretch { - align-content: stretch #{$important-flex-value}; -} - -/// These classes allow the default alignment to be overridden for individual items -.align-self-auto { - align-self: auto #{$important-flex-value}; -} - -.align-self-start { - align-self: flex-start #{$important-flex-value}; -} - -.align-self-end { - align-self: flex-end #{$important-flex-value}; -} - -.align-self-center { - align-self: center #{$important-flex-value}; -} - -.align-self-baseline { - align-self: baseline #{$important-flex-value}; -} - -.align-self-stretch { - align-self: stretch #{$important-flex-value}; -} - -/// These classes define the percentage of available free space within a flex container a flex item will take. -@mixin flex-items($number) { - @for $i from 1 through $number { - .flexitem-#{$i} { - flex: #{$i} #{$i} 1%; - } - } -} - -@include flex-items($number: 12); diff --git a/theme_old/styles/web/sass/core/base/_login.scss b/theme_old/styles/web/sass/core/base/_login.scss deleted file mode 100644 index 6df8a0c..0000000 --- a/theme_old/styles/web/sass/core/base/_login.scss +++ /dev/null @@ -1,188 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -body { - height: 100%; -} - -.loginpage { - display: flex; - height: 100%; -} -.loginpage-logo { - position: absolute; - top: 30px; - right: 30px; - width: 120px; -} - -.loginpage-left { - display: none; -} - -.loginpage-right { - display: flex; - flex: 1; - flex-direction: column; - justify-content: space-around; -} -.loginpage-formwrapper { - width: 400px; - margin: 0 auto; -} -// Form -.loginpage-form { - .alert { - display: none; - } - - .btn { - border-radius: 40px; - } - - // Form label + input - .form-group { - width: 100%; - align-items: center; - - .control-label { - flex: 4; - margin-bottom: 0; - font-size: $font-size-default; - font-weight: 500; - } - - .inputwrapper { - flex: 8; - position: relative; - width: 100%; - - .glyphicon { - &:before { - -webkit-transition: color 0.4s; - -moz-transition: color 0.4s; - -o-transition: color 0.4s; - transition: color 0.4s; - } - - position: absolute; - top: 50%; - left: $form-input-padding-x; - -webkit-transform: translateY(-50%); - -moz-transform: translateY(-50%); - -ms-transform: translateY(-50%); - -o-transform: translateY(-50%); - transform: translateY(-50%); - - &-eye-open:hover, - &-eye-close:hover { - cursor: pointer; - color: $brand-primary; - } - } - - .form-control { - padding: $form-input-padding-y $form-input-padding-x $form-input-padding-y 45px; - } - - .form-control:focus ~ .glyphicon:before { - color: $brand-primary; - } - } - } -} -// Divider - only on login-with-sso.html -.loginpage-alternativelabel { - display: flex; - align-items: center; - flex-direction: row; - flex-wrap: nowrap; - justify-content: space-between; - margin: 25px 0px; - - hr { - flex: 1; - margin: 20px 0 20px 10px; - border: 0; - border-color: #d8d8d8; - border-top: 1px solid #eeeeee; - } -} - -.loginpage-signin { - color: #555555; -} - -// Show only on wide screens -@media screen and (min-width: $screen-xl) { - .loginpage-logo { - width: 150px; - } - - .loginpage-left { - position: relative; - display: block; - flex: 1; - width: 100%; - height: 100%; - } - // Image and clipping mask - .loginpage-image { - height: 100%; - animation: makePointer 1s ease-out both; - background: left / cover no-repeat url('../../../resources/work-do-more.jpeg'); // Microsoft EDGE - background: left / cover no-repeat - linear-gradient(to right, rgba($brand-primary, 0.9) 0%, rgba($brand-primary, 0.6) 100%), - left / cover no-repeat url('../../../resources/work-do-more.jpeg'); - background: left / cover no-repeat -moz-linear-gradient(left, rgba($brand-primary, 0.9) 0%, rgba( - $brand-primary, - 0.6 - ) - 100%), - left / cover no-repeat url('../../../resources/work-do-more.jpeg'); - background: left / cover no-repeat -webkit-gradient(linear, left bottom, right bottom, color-stop(0%, rgba($brand-primary, 0.9)), color-stop(100%, rgba($brand-primary, 0.6))), - left / cover no-repeat url('../../../resources/work-do-more.jpeg'); - background: left / cover no-repeat -webkit-linear-gradient(left, rgba($brand-primary, 0.9) 0%, rgba( - $brand-primary, - 0.6 - ) - 100%), - left / cover no-repeat url('../../../resources/work-do-more.jpeg'); - background: left / cover no-repeat -o-linear-gradient(left, rgba($brand-primary, 0.9) 0%, rgba( - $brand-primary, - 0.6 - ) - 100%), - left / cover no-repeat url('../../../resources/work-do-more.jpeg'); - background: left / cover no-repeat -ms-linear-gradient(left, rgba($brand-primary, 0.9) 0%, rgba( - $brand-primary, - 0.6 - ) - 100%), - left / cover no-repeat url('../../../resources/work-do-more.jpeg'); - -webkit-clip-path: polygon(0% 0%, 100% 0, 100% 50%, 100% 100%, 0% 100%); - clip-path: polygon(0% 0%, 100% 0, 100% 50%, 100% 100%, 0% 100%); - } - - .loginpage-formwrapper { - width: 400px; - } -} - -// Animate image clipping mask -@keyframes makePointer { - 100% { - -webkit-clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%); - clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%); - } -} -@-webkit-keyframes makePointer { - 100% { - -webkit-clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%); - clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%); - } -} diff --git a/theme_old/styles/web/sass/core/base/_reset.scss b/theme_old/styles/web/sass/core/base/_reset.scss deleted file mode 100644 index cd1f61e..0000000 --- a/theme_old/styles/web/sass/core/base/_reset.scss +++ /dev/null @@ -1,40 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -// Basic styling Scroll container -// .mx-scrollcontainer { -// .mx-scrollcontainer-wrapper { -// padding: 0; -// // Convert width to max-width when in scroll container to make sure you dont get scrollbars -// .mx-layoutgrid-fixed { -// width: 100%; -// margin: auto; -// @media (min-width: $screen-md) { -// max-width: 750px; -// } -// @media (min-width: $screen-lg) { -// max-width: 970px; -// } -// @media (min-width: $screen-xl) { -// max-width: 1170px; -// } -// } -// } -// } - -.mx-scrollcontainer .mx-placeholder { - width: 100%; - height: 100%; - .mx-layoutgrid, - .mx-layoutgrid-fluid { - @include layout-spacing($type: padding, $direction: all, $device: responsive); - .mx-layoutgrid, - .mx-layoutgrid-fluid { - padding: 0; - } - } -} diff --git a/theme_old/styles/web/sass/core/base/_spacing.scss b/theme_old/styles/web/sass/core/base/_spacing.scss deleted file mode 100644 index 4d020f9..0000000 --- a/theme_old/styles/web/sass/core/base/_spacing.scss +++ /dev/null @@ -1,217 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// -/* ========================================================================== - Spacing - - Spacing classes -========================================================================== */ -$important-spacing-value: if($important-spacing, ' !important', ''); - -// Spacing none -.spacing-inner-none { - padding: 0 #{$important-spacing-value}; -} - -.spacing-inner-top-none { - padding-top: 0 #{$important-spacing-value}; -} - -.spacing-inner-right-none { - padding-right: 0 #{$important-spacing-value}; -} - -.spacing-inner-bottom-none { - padding-bottom: 0 #{$important-spacing-value}; -} - -.spacing-inner-left-none { - padding-left: 0 #{$important-spacing-value}; -} - -.spacing-outer-none { - margin: 0 #{$important-spacing-value}; -} - -.spacing-outer-top-none { - margin-top: 0 #{$important-spacing-value}; -} - -.spacing-outer-right-none { - margin-right: 0 #{$important-spacing-value}; -} - -.spacing-outer-bottom-none { - margin-bottom: 0 #{$important-spacing-value}; -} - -.spacing-outer-left-none { - margin-left: 0 #{$important-spacing-value}; -} - -// Spacing small -.spacing-inner { - padding: $spacing-small #{$important-spacing-value}; -} - -.spacing-inner-top { - padding-top: $spacing-small #{$important-spacing-value}; -} - -.spacing-inner-right { - padding-right: $spacing-small #{$important-spacing-value}; -} - -.spacing-inner-bottom { - padding-bottom: $spacing-small #{$important-spacing-value}; -} - -.spacing-inner-left { - padding-left: $spacing-small #{$important-spacing-value}; -} - -.spacing-outer { - margin: $spacing-small #{$important-spacing-value}; -} - -.spacing-outer-top { - margin-top: $spacing-small #{$important-spacing-value}; -} - -.spacing-outer-right { - margin-right: $spacing-small #{$important-spacing-value}; -} - -.spacing-outer-bottom { - margin-bottom: $spacing-small #{$important-spacing-value}; -} - -.spacing-outer-left { - margin-left: $spacing-small #{$important-spacing-value}; -} - -// Spacing Medium -.spacing-inner-medium { - @include get-responsive-spacing-medium($type: padding, $direction: all, $is_important: #{$important-spacing-value}); -} - -.spacing-inner-top-medium { - @include get-responsive-spacing-medium($type: padding, $direction: top, $is_important: #{$important-spacing-value}); -} - -.spacing-inner-right-medium { - @include get-responsive-spacing-medium($type: padding, $direction: right, $is_important: #{$important-spacing-value}); -} - -.spacing-inner-bottom-medium { - @include get-responsive-spacing-medium($type: padding, $direction: bottom, $is_important: #{$important-spacing-value}); -} - -.spacing-inner-left-medium { - @include get-responsive-spacing-medium($type: padding, $direction: left, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-medium { - @include get-responsive-spacing-medium($type: margin, $direction: all, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-top-medium { - @include get-responsive-spacing-medium($type: margin, $direction: top, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-right-medium { - @include get-responsive-spacing-medium($type: margin, $direction: right, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-bottom-medium { - @include get-responsive-spacing-medium($type: margin, $direction: bottom, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-left-medium { - @include get-responsive-spacing-medium($type: margin, $direction: left, $is_important: #{$important-spacing-value}); -} - -// Spacing Large -.spacing-inner-large { - @include get-responsive-spacing-large($type: padding, $direction: all, $is_important: #{$important-spacing-value}); -} - -.spacing-inner-top-large { - @include get-responsive-spacing-large($type: padding, $direction: top, $is_important: #{$important-spacing-value}); -} - -.spacing-inner-right-large { - @include get-responsive-spacing-large($type: padding, $direction: right, $is_important: #{$important-spacing-value}); -} - -.spacing-inner-bottom-large { - @include get-responsive-spacing-large($type: padding, $direction: bottom, $is_important: #{$important-spacing-value}); -} - -.spacing-inner-left-large { - @include get-responsive-spacing-large($type: padding, $direction: left, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-large { - @include get-responsive-spacing-large($type: margin, $direction: all, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-top-large { - @include get-responsive-spacing-large($type: margin, $direction: top, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-right-large { - @include get-responsive-spacing-large($type: margin, $direction: right, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-bottom-large { - @include get-responsive-spacing-large($type: margin, $direction: bottom, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-left-large { - @include get-responsive-spacing-large($type: margin, $direction: left, $is_important: #{$important-spacing-value}); -} - -// Spacing layouts -.spacing-inner-layout { - @include layout-spacing($type: padding, $direction: all, $device: responsive, $is_important: #{$important-spacing-value}); -} - -.spacing-inner-top-layout { - @include layout-spacing($type: padding, $direction: top, $device: responsive, $is_important: #{$important-spacing-value}); -} - -.spacing-inner-right-layout { - @include layout-spacing($type: padding, $direction: right, $device: responsive, $is_important: #{$important-spacing-value}); -} - -.spacing-inner-bottom-layout { - @include layout-spacing($type: padding, $direction: bottom, $device: responsive, $is_important: #{$important-spacing-value}); -} - -.spacing-inner-left-layout { - @include layout-spacing($type: padding, $direction: left, $device: responsive, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-layout { - @include layout-spacing($type: margin, $direction: all, $device: responsive, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-top-layout { - @include layout-spacing($type: margin, $direction: top, $device: responsive, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-right-layout { - @include layout-spacing($type: margin, $direction: right, $device: responsive, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-bottom-layout { - @include layout-spacing($type: margin, $direction: bottom, $device: responsive, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-left-layout { - @include layout-spacing($type: margin, $direction: left, $device: responsive, $is_important: #{$important-spacing-value}); -} diff --git a/theme_old/styles/web/sass/core/base/mixins/_animations.scss b/theme_old/styles/web/sass/core/base/mixins/_animations.scss deleted file mode 100644 index 93bca3b..0000000 --- a/theme_old/styles/web/sass/core/base/mixins/_animations.scss +++ /dev/null @@ -1,54 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -@mixin transition( - $style: initial, - $delay: 0s, - $duration: 0.3s, - $property: all, - $timing-fucntion: cubic-bezier(0.4, 0, 0.2, 1) -) { - -webkit-transition: $property $duration $delay $timing-fucntion; - -moz-transition: $property $duration $delay $timing-fucntion; - -o-transition: $property $duration $delay $timing-fucntion; - transition: $property $duration $delay $timing-fucntion; - transform-style: $style; -} - -@mixin ripple($color: #000, $transparency: 10%, $scale: 10) { - position: relative; - overflow: hidden; - transform: translate3d(0, 0, 0); - - &:after { - content: ''; - display: block; - position: absolute; - width: 100%; - height: 100%; - top: 0; - left: 0; - pointer-events: none; - background-image: radial-gradient(circle, $color $transparency, transparent $transparency); - background-repeat: no-repeat; - background-position: 50%; - -webkit-transform: scale($scale, $scale); - transform: scale($scale, $scale); - opacity: 0; - -webkit-transition: transform 0.5s, opacity 1s; - -moz-transition: transform 0.5s, opacity 1s; - -o-transition: transform 0.5s, opacity 1s; - transition: transform 0.5s, opacity 1s; - } - - &:active:after { - -webkit-transform: scale(0, 0); - transform: scale(0, 0); - opacity: 0.1; - transition: 0s; - } -} diff --git a/theme_old/styles/web/sass/core/base/mixins/_buttons.scss b/theme_old/styles/web/sass/core/base/mixins/_buttons.scss deleted file mode 100644 index 3b59292..0000000 --- a/theme_old/styles/web/sass/core/base/mixins/_buttons.scss +++ /dev/null @@ -1,71 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -@mixin button-variant($color, $background, $border, $hover) { - color: $color; - border-color: $border; - background-color: $background; - - &:hover, - &:focus, - &:active, - &.active, - .open > &.dropdown-toggle { - color: $color; - border-color: $hover; - background-color: $hover; - } - &:active, - &.active, - .open > &.dropdown-toggle { - background-image: none; - } - &.disabled, - &[disabled], - &[aria-disabled], - fieldset[disabled] { - &, - &:hover, - &:focus, - &:active, - &.active { - border-color: $border; - background-color: $background; - } - } - // Button bordered - &.btn-bordered { - background-color: transparent; - @if $color != $btn-default-color { - color: $border; - } - - &:hover, - &:focus, - &:active, - &.active, - .open > &.dropdown-toggle { - color: $color; - border-color: $border; - background-color: $border; - } - } - // Button as link - &.btn-link { - text-decoration: none; - border-color: transparent; - background-color: transparent; - @if $color != $btn-default-color { - color: $background; - } - - &:hover { - border-color: $btn-link-bg-hover; - background-color: $btn-link-bg-hover; - } - } -} diff --git a/theme_old/styles/web/sass/core/base/mixins/_groupbox.scss b/theme_old/styles/web/sass/core/base/mixins/_groupbox.scss deleted file mode 100644 index 71581ec..0000000 --- a/theme_old/styles/web/sass/core/base/mixins/_groupbox.scss +++ /dev/null @@ -1,17 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -@mixin groupbox-variant($color, $background) { - > .mx-groupbox-header { - color: $color; - border-color: $background; - background: $background; - } - > .mx-groupbox-body { - border-color: $background; - } -} diff --git a/theme_old/styles/web/sass/core/base/mixins/_layout-spacing.scss b/theme_old/styles/web/sass/core/base/mixins/_layout-spacing.scss deleted file mode 100644 index 76aa983..0000000 --- a/theme_old/styles/web/sass/core/base/mixins/_layout-spacing.scss +++ /dev/null @@ -1,90 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -@mixin layout-spacing($type: padding, $direction: all, $device: responsive, $is_important: false) { - $suffix: ''; - @if $is_important != false { - $suffix: ' !important'; - } - @if $device==responsive { - @if $direction==all { - @media (max-width: $screen-sm-max) { - #{$type}: #{$m-layout-spacing}#{$suffix}; - } - @media (min-width: $screen-md) { - #{$type}: #{$t-layout-spacing}#{$suffix}; - } - @media (min-width: $screen-lg) { - #{$type}: #{$layout-spacing}#{$suffix}; - } - } @else if $direction==top { - @media (max-width: $screen-sm-max) { - #{$type}-top: #{$m-layout-spacing-top}#{$suffix}; - } - @media (min-width: $screen-md) { - #{$type}-top: #{$t-layout-spacing-top}#{$suffix}; - } - @media (min-width: $screen-lg) { - #{$type}-top: #{$layout-spacing-top}#{$suffix}; - } - } @else if $direction==right { - @media (max-width: $screen-sm-max) { - #{$type}-right: #{$m-layout-spacing-right}#{$suffix}; - } - @media (min-width: $screen-md) { - #{$type}-right: #{$t-layout-spacing-right}#{$suffix}; - } - @media (min-width: $screen-lg) { - #{$type}-right: #{$layout-spacing-right}#{$suffix}; - } - } @else if $direction==bottom { - @media (max-width: $screen-sm-max) { - #{$type}-bottom: #{$m-layout-spacing-bottom}#{$suffix}; - } - @media (min-width: $screen-md) { - #{$type}-bottom: #{$t-layout-spacing-bottom}#{$suffix}; - } - @media (min-width: $screen-lg) { - #{$type}-bottom: #{$layout-spacing-bottom}#{$suffix}; - } - } @else if $direction==left { - @media (max-width: $screen-sm-max) { - #{$type}-left: #{$m-layout-spacing-left}#{$suffix}; - } - @media (min-width: $screen-md) { - #{$type}-left: #{$t-layout-spacing-left}#{$suffix}; - } - @media (min-width: $screen-lg) { - #{$type}-left: #{$layout-spacing-left}#{$suffix}; - } - } - } @else if $device==tablet { - @if $direction==all { - #{$type}: #{$t-layout-spacing}#{$suffix}; - } @else if $direction==top { - #{$type}-top: #{$t-layout-spacing-top}#{$suffix}; - } @else if $direction==right { - #{$type}-right: #{$t-layout-spacing-right}#{$suffix}; - } @else if $direction==bottom { - #{$type}-bottom: #{$t-layout-spacing-bottom}#{$suffix}; - } @else if $direction==left { - #{$type}-left: #{$t-layout-spacing-left}#{$suffix}; - } - } @else if $device==mobile { - @if $direction==all { - #{$type}: #{$m-layout-spacing}#{$suffix}; - } @else if $direction==top { - #{$type}-top: #{$m-layout-spacing-top}#{$suffix}; - } @else if $direction==right { - #{$type}-right: #{$m-layout-spacing-right}#{$suffix}; - } @else if $direction==bottom { - #{$type}-bottom: #{$m-layout-spacing-bottom}#{$suffix}; - } @else if $direction==left { - #{$type}-left: #{$m-layout-spacing-left}#{$suffix}; - } - } -} diff --git a/theme_old/styles/web/sass/core/base/mixins/_spacing.scss b/theme_old/styles/web/sass/core/base/mixins/_spacing.scss deleted file mode 100644 index db1d055..0000000 --- a/theme_old/styles/web/sass/core/base/mixins/_spacing.scss +++ /dev/null @@ -1,66 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -@mixin get-responsive-spacing-large($type: padding, $direction: all, $is_important: false) { - $suffix: ''; - $dash: '-'; // Otherwise it will be interpreted as a minus symbol. Needed for the Gonzales PE version: 3.4.7 compiler (used by the Webmodeler) - - @if $is_important != false { - $suffix: ' !important'; - } - @if $direction==all { - @media (max-width: $screen-sm-max) { - #{$type}: #{$m-spacing-large}#{$suffix}; - } - @media (min-width: $screen-md) { - #{$type}: #{$t-spacing-large}#{$suffix}; - } - @media (min-width: $screen-lg) { - #{$type}: #{$spacing-large}#{$suffix}; - } - } @else { - @media (max-width: $screen-sm-max) { - #{$type}#{$dash}#{$direction}: #{$m-spacing-large}#{$suffix}; - } - @media (min-width: $screen-md) { - #{$type}#{$dash}#{$direction}: #{$t-spacing-large}#{$suffix}; - } - @media (min-width: $screen-lg) { - #{$type}#{$dash}#{$direction}: #{$spacing-large}#{$suffix}; - } - } -} - -@mixin get-responsive-spacing-medium($type: padding, $direction: all, $is_important: false) { - $suffix: ''; - $dash: '-'; // Otherwise it will be interpreted as a minus symbol. Needed for the Gonzales PE version: 3.4.7 compiler (used by the Webmodeler) - - @if $is_important != false { - $suffix: ' !important'; - } - @if $direction==all { - @media (max-width: $screen-sm-max) { - #{$type}: #{$m-spacing-medium}#{$suffix}; - } - @media (min-width: $screen-md) { - #{$type}: #{$t-spacing-medium}#{$suffix}; - } - @media (min-width: $screen-lg) { - #{$type}: #{$spacing-medium}#{$suffix}; - } - } @else { - @media (max-width: $screen-sm-max) { - #{$type}#{$dash}#{$direction}: #{$m-spacing-medium}#{$suffix}; - } - @media (min-width: $screen-md) { - #{$type}#{$dash}#{$direction}: #{$t-spacing-medium}#{$suffix}; - } - @media (min-width: $screen-lg) { - #{$type}#{$dash}#{$direction}: #{$spacing-medium}#{$suffix}; - } - } -} diff --git a/theme_old/styles/web/sass/core/helpers/_alerts.scss b/theme_old/styles/web/sass/core/helpers/_alerts.scss deleted file mode 100644 index 69fdab1..0000000 --- a/theme_old/styles/web/sass/core/helpers/_alerts.scss +++ /dev/null @@ -1,49 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Alerts - -//== Design Properties -//## Helper classes to change the look and feel of the component -========================================================================== */ -.alert-bordered { - border: 1px solid; -} - -// Color variations -.alert-success { - color: $alert-success-color; - border-color: $alert-success-border-color; - background-color: $alert-success-bg; -} - -.alert-info { - color: $alert-info-color; - border-color: $alert-info-border-color; - background-color: $alert-info-bg; -} - -.alert-warning { - color: $alert-warning-color; - border-color: $alert-warning-border-color; - background-color: $alert-warning-bg; -} - -.alert-danger { - color: $alert-danger-color; - border-color: $alert-danger-border-color; - background-color: $alert-danger-bg; -} - -//== State -//## Styling when component is in certain state -//-------------------------------------------------------------------------------------------------------------------// -.has-error .alert { - margin-top: 8px; - margin-bottom: 0; -} diff --git a/theme_old/styles/web/sass/core/helpers/_backgrounds.scss b/theme_old/styles/web/sass/core/helpers/_backgrounds.scss deleted file mode 100644 index 8c4a57b..0000000 --- a/theme_old/styles/web/sass/core/helpers/_backgrounds.scss +++ /dev/null @@ -1,164 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Backgrounds - - Different background components, all managed by variables -========================================================================== */ - -.background-main { - background-color: $bg-color !important; -} - -.background-secondary { - background-color: $bg-color-secondary !important; -} - -.background-default { - background-color: $brand-default !important; -} - -.background-default-darker { - background-color: $color-default-darker !important; -} - -.background-default-dark { - background-color: $color-default-dark !important; -} - -.background-default-light { - background-color: $color-default-light !important; -} - -.background-default-lighter { - background-color: $color-default-lighter !important; -} - -.background-inverse { - background-color: $brand-inverse !important; -} - -.background-inverse-darker { - background-color: $color-inverse-darker !important; -} - -.background-inverse-dark { - background-color: $color-inverse-dark !important; -} - -.background-inverse-light { - background-color: $color-inverse-light !important; -} - -.background-inverse-lighter { - background-color: $color-inverse-lighter !important; -} - -.background-primary { - background-color: $brand-primary !important; -} - -.background-primary-darker { - background-color: $color-primary-darker !important; -} - -.background-primary-dark { - background-color: $color-primary-dark !important; -} - -.background-primary-light { - background-color: $color-primary-light !important; -} - -.background-primary-lighter { - background-color: $color-primary-lighter !important; -} - -.background-info { - background-color: $brand-info !important; -} - -.background-info-darker { - background-color: $color-info-darker !important; -} - -.background-info-dark { - background-color: $color-info-dark !important; -} - -.background-info-light { - background-color: $color-info-light !important; -} - -.background-info-lighter { - background-color: $color-info-lighter !important; -} - -.background-success { - background-color: $brand-success !important; -} - -.background-success-darker { - background-color: $color-success-darker !important; -} - -.background-success-dark { - background-color: $color-success-dark !important; -} - -.background-success-light { - background-color: $color-success-light !important; -} - -.background-success-lighter { - background-color: $color-success-lighter !important; -} - -.background-warning { - background-color: $brand-warning !important; -} - -.background-warning-darker { - background-color: $color-warning-darker !important; -} - -.background-warning-dark { - background-color: $color-warning-dark !important; -} - -.background-warning-light { - background-color: $color-warning-light !important; -} - -.background-warning-lighter { - background-color: $color-warning-lighter !important; -} - -.background-danger { - background-color: $brand-danger !important; -} - -.background-danger-darker { - background-color: $color-danger-darker !important; -} - -.background-danger-dark { - background-color: $color-danger-dark !important; -} - -.background-danger-light { - background-color: $color-danger-light !important; -} - -.background-danger-lighter { - background-color: $color-danger-lighter !important; -} - -.background-brand-gradient { - background-image: $brand-gradient !important; -} diff --git a/theme_old/styles/web/sass/core/helpers/_buttons.scss b/theme_old/styles/web/sass/core/helpers/_buttons.scss deleted file mode 100644 index 87c8985..0000000 --- a/theme_old/styles/web/sass/core/helpers/_buttons.scss +++ /dev/null @@ -1,100 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Buttons - -//== Design Properties -//## Helper classes to change the look and feel of the component -========================================================================== */ -// Color variations -.btn, -.btn-default { - @include button-variant($btn-default-color, $btn-default-bg, $btn-default-border-color, $btn-default-bg-hover); -} - -.btn-primary { - @include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border-color, $btn-primary-bg-hover); -} - -.btn-inverse { - @include button-variant($btn-inverse-color, $btn-inverse-bg, $btn-inverse-border-color, $btn-inverse-bg-hover); -} - -.btn-success { - @include button-variant($btn-success-color, $btn-success-bg, $btn-success-border-color, $btn-success-bg-hover); -} - -.btn-info { - @include button-variant($btn-info-color, $btn-info-bg, $btn-info-border-color, $btn-info-bg-hover); -} - -.btn-warning { - @include button-variant($btn-warning-color, $btn-warning-bg, $btn-warning-border-color, $btn-warning-bg-hover); -} - -.btn-danger { - @include button-variant($btn-danger-color, $btn-danger-bg, $btn-danger-border-color, $btn-danger-bg-hover); -} - -// Button Sizes -.btn-lg { - font-size: $font-size-large; - img { - height: calc(#{$font-size-small} + 4px); - } -} - -.btn-sm { - font-size: $font-size-small; - img { - height: calc(#{$font-size-small} + 4px); - } -} - -// Button Image -.btn-image { - padding: 0; - vertical-align: middle; - border-style: none; - background-color: transparent; - img { - display: block; // or else the button doesn't get a width - height: auto; // Image set height - } - &:hover, - &:focus { - background-color: transparent; - } -} - -// Icon buttons -.btn-icon { - & > img, - & > .glyphicon { - margin: 0; - } -} - -.btn-icon-right { - & > img, - & > .glyphicon { - float: right; - margin-left: 5px; - } -} - -.btn-icon-top { - padding-right: 0; - padding-left: 0; - & > img, - & > .glyphicon { - display: block; - margin: 0 0 5px 0; - } -} - diff --git a/theme_old/styles/web/sass/core/helpers/_datagrids.scss b/theme_old/styles/web/sass/core/helpers/_datagrids.scss deleted file mode 100644 index f37c889..0000000 --- a/theme_old/styles/web/sass/core/helpers/_datagrids.scss +++ /dev/null @@ -1,157 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// -/* ========================================================================== - Datagrid Default - -//== Design Properties -//## Helper classes to change the look and feel of the component -========================================================================== */ -// Striped style -.datagrid-striped.mx-datagrid { - table { - th { - border-width: 0; - } - - tbody tr { - td { - border-top-width: 0; - } - - &:nth-child(odd) td { - background-color: $grid-bg-striped; - } - } - } -} - -// Bordered style -.datagrid-bordered.mx-datagrid { - table { - border: 1px solid; - - th { - border: 1px solid $grid-border-color; - } - - tbody tr { - td { - border: 1px solid $grid-border-color; - } - } - } - - tfoot { - > tr > th { - border-width: 0; - background-color: $grid-footer-bg; - } - - > tr > td { - border-width: 1px; - } - } -} - -// Transparent style so you can see the background -.datagrid-transparent.mx-datagrid { - table { - background-color: transparent; - - tbody tr { - &:nth-of-type(odd) { - background-color: transparent; - } - - td { - background-color: transparent; - } - } - } -} - -// Hover style activated -.datagrid-hover.mx-datagrid { - table { - tbody tr { - &:hover td { - background-color: $grid-bg-hover !important; - } - - &.selected:hover td { - background-color: $grid-bg-selected-hover !important; - } - } - } -} - -// Datagrid Row Sizes -.datagrid-lg.mx-datagrid { - table { - th { - padding: ($grid-padding-top * 2) ($grid-padding-right * 2) ($grid-padding-bottom * 2) ($grid-padding-left * 2); - } - - tbody tr { - td { - padding: ($grid-padding-top * 2) ($grid-padding-right * 2) ($grid-padding-bottom * 2) ($grid-padding-left * 2); - } - } - } -} - -.datagrid-sm.mx-datagrid { - table { - th { - padding: ($grid-padding-top / 2) ($grid-padding-right / 2) ($grid-padding-bottom / 2) ($grid-padding-left / 2); - } - - tbody tr { - td { - padding: ($grid-padding-top / 2) ($grid-padding-right / 2) ($grid-padding-bottom / 2) ($grid-padding-left/ 2); - } - } - } -} - -// Datagrid Full Search -// Default Mendix Datagrid Widget with adjusted search field. Only 1 search field is allowed -.datagrid-fullsearch.mx-grid { - .mx-grid-search-button { - @extend .btn-primary; - } - - .mx-grid-reset-button { - display: none; - } - - .mx-grid-search-item { - display: block; - } - - .mx-grid-search-label { - display: none; - } - - .mx-grid-searchbar { - .mx-grid-search-controls { - position: absolute; - right: 0; - } - - .mx-grid-search-input { - width: 80%; - padding-left: 0; - - .btn, - .form-control { - height: 35px; - font-size: 12px; - } - } - } -} diff --git a/theme_old/styles/web/sass/core/helpers/_groupbox.scss b/theme_old/styles/web/sass/core/helpers/_groupbox.scss deleted file mode 100644 index 2e71036..0000000 --- a/theme_old/styles/web/sass/core/helpers/_groupbox.scss +++ /dev/null @@ -1,147 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Groupbox - -//== Design Properties -//## Helper classes to change the look and feel of the component -========================================================================== */ -// Color variations -.groupbox-default { - @include groupbox-variant($groupbox-default-color, $groupbox-default-bg); -} - -.groupbox-primary { - @include groupbox-variant($groupbox-primary-color, $groupbox-primary-bg); -} - -.groupbox-inverse { - @include groupbox-variant($groupbox-inverse-color, $groupbox-inverse-bg); -} - -// Success appears as green -.groupbox-success { - @include groupbox-variant($groupbox-success-color, $groupbox-success-bg); -} - -// Info appears as blue-green -.groupbox-info { - @include groupbox-variant($groupbox-info-color, $groupbox-info-bg); -} - -// Warning appears as orange -.groupbox-warning { - @include groupbox-variant($groupbox-warning-color, $groupbox-warning-bg); -} - -// Danger and error appear as red -.groupbox-danger { - @include groupbox-variant($groupbox-danger-color, $groupbox-danger-bg); -} - -// white appears as full white -.groupbox-white { - @include groupbox-variant($groupbox-white-color, $groupbox-white-bg); -} - -.groupbox-transparent { - border-bottom: 1px solid $border-color-default; - > .mx-groupbox-header { - padding: 15px 0; - color: $gray-darker; - border-style: none; - background: transparent; - font-size: 16px; - font-weight: $font-weight-semibold; - } - .mx-groupbox-body { - padding: 15px 0; - border-style: none; - background-color: transparent; - } - .mx-groupbox-collapse-icon { - color: $brand-primary; - } -} - -// Header options -.groupbox-h1 > .mx-groupbox-header { - font-size: $font-size-h1; -} - -.groupbox-h2 > .mx-groupbox-header { - font-size: $font-size-h2; -} - -.groupbox-h3 > .mx-groupbox-header { - font-size: $font-size-h3; -} - -.groupbox-h4 > .mx-groupbox-header { - font-size: $font-size-h4; -} - -.groupbox-h5 > .mx-groupbox-header { - font-size: $font-size-h5; -} - -.groupbox-h6 > .mx-groupbox-header { - font-size: $font-size-h6; -} - -// Callout Look and Feel -.groupbox-callout { - > .mx-groupbox-header, - > .mx-groupbox-body { - border: 0; - background-color: $callout-info-bg; - } - .mx-groupbox-header + .mx-groupbox-body { - padding-top: 0; - } -} - -.groupbox-info.groupbox-callout { - > .mx-groupbox-header, - > .mx-groupbox-body { - background-color: $callout-info-bg; - } - > .mx-groupbox-header { - color: $callout-info-color; - } -} - -.groupbox-success.groupbox-callout { - > .mx-groupbox-header, - > .mx-groupbox-body { - background-color: $callout-success-bg; - } - > .mx-groupbox-header { - color: $callout-success-color; - } -} - -.groupbox-warning.groupbox-callout { - > .mx-groupbox-header, - > .mx-groupbox-body { - background-color: $callout-warning-bg; - } - > .mx-groupbox-header { - color: $callout-warning-color; - } -} - -.groupbox-danger.groupbox-callout { - > .mx-groupbox-header, - > .mx-groupbox-body { - background-color: $callout-danger-bg; - } - > .mx-groupbox-header { - color: $callout-danger-color; - } -} diff --git a/theme_old/styles/web/sass/core/helpers/_helperclasses.scss b/theme_old/styles/web/sass/core/helpers/_helperclasses.scss deleted file mode 100644 index b76b778..0000000 --- a/theme_old/styles/web/sass/core/helpers/_helperclasses.scss +++ /dev/null @@ -1,346 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Helpers - - Default Mendix Helpers -========================================================================== */ -$important-helpers-value: if($important-helpers, ' !important', ''); - -// Display properties -.d-none { - display: none #{$important-helpers-value}; -} - -.d-flex { - display: flex #{$important-helpers-value}; -} - -.d-inline-flex { - display: inline-flex #{$important-helpers-value}; -} - -.d-inline { - display: inline #{$important-helpers-value}; -} - -.d-inline-block { - display: inline-block #{$important-helpers-value}; -} - -.show, -.d-block { - display: block #{$important-helpers-value}; -} - -.table, -.d-table { - display: table #{$important-helpers-value}; -} - -.table-row, -.d-table-row { - display: table-row #{$important-helpers-value}; -} - -.table-cell, -.d-table-cell { - display: table-cell #{$important-helpers-value}; -} - -.hide, -.hidden { - display: none #{$important-helpers-value}; - visibility: hidden #{$important-helpers-value}; -} - -.invisible { - visibility: hidden #{$important-helpers-value}; -} - -.display-ie8-only:not([attr*=""]) { - display: none #{$important-helpers-value}; - padding: 0 #{$important-helpers-value}; -} - -.list-nostyle { - ul { - margin: 0 #{$important-helpers-value}; - padding: 0 #{$important-helpers-value}; - - li { - list-style-type: none #{$important-helpers-value}; - } - } -} - -.nowrap, -.nowrap * { - overflow: hidden #{$important-helpers-value}; - // Star for inside an element, IE8 span > a - white-space: nowrap #{$important-helpers-value}; - text-overflow: ellipsis #{$important-helpers-value}; -} - -// Render DIV as Table Cells -.table { - display: table #{$important-helpers-value}; -} - -.table-row { - display: table-row #{$important-helpers-value}; -} - -.table-cell { - display: table-cell #{$important-helpers-value}; -} - -// Quick floats -.pull-left { - float: left #{$important-helpers-value}; -} - -.pull-right { - float: right #{$important-helpers-value}; -} - -// Align options -.align-top { - vertical-align: top #{$important-helpers-value}; -} - -.align-middle { - vertical-align: middle #{$important-helpers-value}; -} - -.align-bottom { - vertical-align: bottom #{$important-helpers-value}; -} - -// Flex alignments -.row-left { - display: flex #{$important-helpers-value}; - align-items: center #{$important-helpers-value}; - flex-flow: row #{$important-helpers-value}; - justify-content: flex-start #{$important-helpers-value}; -} - -.row-center { - display: flex #{$important-helpers-value}; - align-items: center #{$important-helpers-value}; - flex-flow: row #{$important-helpers-value}; - justify-content: center #{$important-helpers-value}; -} - -.row-right { - display: flex #{$important-helpers-value}; - align-items: center #{$important-helpers-value}; - flex-flow: row #{$important-helpers-value}; - justify-content: flex-end #{$important-helpers-value}; -} - -.col-left { - display: flex #{$important-helpers-value}; - align-items: flex-start #{$important-helpers-value}; - flex-direction: column #{$important-helpers-value}; - justify-content: center #{$important-helpers-value}; -} - -.col-center { - display: flex #{$important-helpers-value}; - align-items: center #{$important-helpers-value}; - flex-direction: column #{$important-helpers-value}; - justify-content: center #{$important-helpers-value}; -} - -.col-right { - display: flex #{$important-helpers-value}; - align-items: flex-end #{$important-helpers-value}; - flex-direction: column #{$important-helpers-value}; - justify-content: center #{$important-helpers-value}; -} - -// Media -@media (max-width: $screen-sm-max) { - .hide-phone { - display: none #{$important-helpers-value}; - } -} - -@media (min-width: $screen-md) and (max-width: $screen-md-max) { - .hide-tablet { - display: none #{$important-helpers-value}; - } -} - -@media (min-width: $screen-lg) { - .hide-desktop { - display: none #{$important-helpers-value}; - } -} - - -@media (max-width: $screen-xs-max) { - .hide-xs, - .hidden-xs, - .d-xs-none { - display: none #{$important-helpers-value}; - } - .d-xs-flex { - display: flex #{$important-helpers-value}; - } - .d-xs-inline-flex { - display: inline-flex #{$important-helpers-value}; - } - .d-xs-inline { - display: inline #{$important-helpers-value}; - } - .d-xs-inline-block { - display: inline-block #{$important-helpers-value}; - } - .d-xs-block { - display: block #{$important-helpers-value}; - } - .d-xs-table { - display: table #{$important-helpers-value}; - } - .d-xs-table-row { - display: table-row #{$important-helpers-value}; - } - .d-xs-table-cell { - display: table-cell #{$important-helpers-value}; - } -} - -@media (min-width: $screen-sm) and (max-width: $screen-sm-max) { - .hide-sm, - .hidden-sm, - .d-sm-none { - display: none #{$important-helpers-value}; - } - .d-sm-flex { - display: flex #{$important-helpers-value}; - } - .d-sm-inline-flex { - display: inline-flex #{$important-helpers-value}; - } - .d-sm-inline { - display: inline #{$important-helpers-value}; - } - .d-sm-inline-block { - display: inline-block #{$important-helpers-value}; - } - .d-sm-block { - display: block #{$important-helpers-value}; - } - .d-sm-table { - display: table #{$important-helpers-value}; - } - .d-sm-table-row { - display: table-row #{$important-helpers-value}; - } - .d-sm-table-cell { - display: table-cell #{$important-helpers-value}; - } -} - -@media (min-width: $screen-md) and (max-width: $screen-md-max) { - .hide-md, - .hidden-md, - .d-md-none { - display: none #{$important-helpers-value}; - } - .d-md-flex { - display: flex #{$important-helpers-value}; - } - .d-md-inline-flex { - display: inline-flex #{$important-helpers-value}; - } - .d-md-inline { - display: inline #{$important-helpers-value}; - } - .d-md-inline-block { - display: inline-block #{$important-helpers-value}; - } - .d-md-block { - display: block #{$important-helpers-value}; - } - .d-md-table { - display: table #{$important-helpers-value}; - } - .d-md-table-row { - display: table-row #{$important-helpers-value}; - } - .d-md-table-cell { - display: table-cell #{$important-helpers-value}; - } -} - -@media (min-width: $screen-lg) and (max-width: $screen-xl) { - .hide-lg, - .hidden-lg, - .d-lg-none { - display: none #{$important-helpers-value}; - } - .d-lg-flex { - display: flex #{$important-helpers-value}; - } - .d-lg-inline-flex { - display: inline-flex #{$important-helpers-value}; - } - .d-lg-inline { - display: inline #{$important-helpers-value}; - } - .d-lg-inline-block { - display: inline-block #{$important-helpers-value}; - } - .d-lg-block { - display: block #{$important-helpers-value}; - } - .d-lg-table { - display: table #{$important-helpers-value}; - } - .d-lg-table-row { - display: table-row #{$important-helpers-value}; - } - .d-lg-table-cell { - display: table-cell #{$important-helpers-value}; - } -} - -@media (min-width: $screen-xl) { - .hide-xl, - .hidden-xl, - .d-xl-none { - display: none #{$important-helpers-value}; - } - .d-xl-flex { - display: flex #{$important-helpers-value}; - } - .d-xl-inline-flex { - display: inline-flex #{$important-helpers-value}; - } - .d-xl-inline { - display: inline #{$important-helpers-value}; - } - .d-xl-inline-block { - display: inline-block #{$important-helpers-value}; - } - .d-xl-block { - display: block #{$important-helpers-value}; - } - .d-xl-table { - display: table #{$important-helpers-value}; - } - .d-xl-table-row { - display: table-row #{$important-helpers-value}; - } - .d-xl-table-cell { - display: table-cell #{$important-helpers-value}; - } -} diff --git a/theme_old/styles/web/sass/core/helpers/_images.scss b/theme_old/styles/web/sass/core/helpers/_images.scss deleted file mode 100644 index 7a65cc6..0000000 --- a/theme_old/styles/web/sass/core/helpers/_images.scss +++ /dev/null @@ -1,52 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Images - - Default Mendix Image Widgets -========================================================================== */ - -img.img-rounded, -.img-rounded img { - border-radius: 6px; -} - -img.img-thumbnail, -.img-thumbnail img { - display: inline-block; - max-width: 100%; - height: auto; - padding: 4px; - -webkit-transition: all 0.2s ease-in-out; - -moz-transition: all 0.2s ease-in-out; - -o-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; - border: 1px solid $brand-default; - border-radius: 4px; - background-color: #FFFFFF; - line-height: $line-height-base; -} - -img.img-circle, -.img-circle img { - border-radius: 50%; -} - -img.img-auto, -.img-auto img { - width: auto !important; - max-width: 100% !important; - height: auto !important; - max-height: 100% !important; -} - -img.img-center, -.img-center img { - margin-right: auto !important; - margin-left: auto !important; -} diff --git a/theme_old/styles/web/sass/core/helpers/_labels.scss b/theme_old/styles/web/sass/core/helpers/_labels.scss deleted file mode 100644 index ef798ba..0000000 --- a/theme_old/styles/web/sass/core/helpers/_labels.scss +++ /dev/null @@ -1,48 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Labels - -//== Design Properties -//## Helper classes to change the look and feel of the component -========================================================================== */ -// Color variations -.label-default { - color: $label-default-color; - background-color: $label-default-bg; -} - -.label-primary { - color: $label-primary-color; - background-color: $label-primary-bg; -} - -.label-success { - color: $label-success-color; - background-color: $label-success-bg; -} - -.label-inverse { - color: $label-inverse-color; - background-color: $label-inverse-bg; -} - -.label-info { - color: $label-info-color; - background-color: $label-info-bg; -} - -.label-warning { - color: $label-warning-color; - background-color: $label-warning-bg; -} - -.label-danger { - color: $label-danger-color; - background-color: $label-danger-bg; -} diff --git a/theme_old/styles/web/sass/core/helpers/_listview.scss b/theme_old/styles/web/sass/core/helpers/_listview.scss deleted file mode 100644 index f56a4f3..0000000 --- a/theme_old/styles/web/sass/core/helpers/_listview.scss +++ /dev/null @@ -1,302 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// -/* ========================================================================== - Listview - -//== Design Properties -//## Helper classes to change the look and feel of the component -========================================================================== */ -// Bordered -.listview-bordered.mx-listview { - & > ul > li { - border: 1px solid $grid-border-color; - border-top: 0; - - &:first-child { - border-top: 1px solid $grid-border-color; - border-radius: 0; - } - - &:last-child { - border-radius: 0; - } - } -} - -// Striped -.listview-striped.mx-listview { - & > ul > li:nth-child(2n + 1) { - background-color: $grid-bg-striped; - } -} - -// Items as seperated blocks -.listview-seperated.mx-listview { - & > ul > li { - margin-bottom: $gutter-size; - border-width: 1px; - border-style: solid; - border-radius: $border-radius-default; - } -} - -// Remove all styling -.listview-stylingless.mx-listview { - & > ul > li { - padding: 0; - cursor: default; - border: 0; - background-color: transparent; - - &:hover, - &:focus, - &:active { - background-color: transparent; - } - - &.selected { - background-color: transparent !important; - - &:hover, - &:focus, - &:active { - background-color: transparent !important; - } - } - } -} - -// Hover style activated -.listview-hover.mx-listview { - & > ul > li { - &:hover, - &:focus, - &:active { - background-color: $grid-bg-hover !important; - } - - &.selected { - &:hover, - &:focus, - &:active { - background-color: $grid-bg-selected-hover !important; - } - } - } -} - -// Templategrid Row Sizes -.listview-lg.mx-listview { - & > ul > li { - padding: ($grid-padding-top * 2) ($grid-padding-right * 2) ($grid-padding-bottom * 2) ($grid-padding-left * 2); - } -} - -.listview-sm.mx-listview { - & > ul > li { - padding: ($grid-padding-top / 2) ($grid-padding-right / 2) ($grid-padding-bottom / 2) ($grid-padding-left / 2); - } -} - -// Bootstrap columns -.mx-listview[class*='lv-col'] { - overflow: hidden; // For if it is not in a layout, to prevent scrollbars - & > ul { - display: block; // normal a table - margin-right: -1 * $gutter-size; - margin-left: -1 * $gutter-size; - - &::before, - &::after { - // clearfix - display: table; - clear: both; - content: ' '; - } - - & > li { - // bootstrap col - position: relative; - display: block; // normal a table - float: left; - min-height: 1px; - padding-right: $gutter-size; - padding-left: $gutter-size; - border: 0; - @media (max-width: $screen-md-max) { - width: 100% !important; - } - - & > .mx-dataview { - overflow: hidden; - } - } - } - - &.lv-col-xs-12 > ul > li { - width: 100% !important; - } - - &.lv-col-xs-11 > ul > li { - width: 91.66666667% !important; - } - - &.lv-col-xs-10 > ul > li { - width: 83.33333333% !important; - } - - &.lv-col-xs-9 > ul > li { - width: 75% !important; - } - - &.lv-col-xs-8 > ul > li { - width: 66.66666667% !important; - } - - &.lv-col-xs-7 > ul > li { - width: 58.33333333% !important; - } - - &.lv-col-xs-6 > ul > li { - width: 50% !important; - } - - &.lv-col-xs-5 > ul > li { - width: 41.66666667% !important; - } - - &.lv-col-xs-4 > ul > li { - width: 33.33333333% !important; - } - - &.lv-col-xs-3 > ul > li { - width: 25% !important; - } - - &.lv-col-xs-2 > ul > li { - width: 16.66666667% !important; - } - - &.lv-col-xs-1 > ul > li { - width: 8.33333333% !important; - } - - @media (min-width: $screen-md) { - &.lv-col-sm-12 > ul > li { - width: 100% !important; - } - &.lv-col-sm-11 > ul > li { - width: 91.66666667% !important; - } - &.lv-col-sm-10 > ul > li { - width: 83.33333333% !important; - } - &.lv-col-sm-9 > ul > li { - width: 75% !important; - } - &.lv-col-sm-8 > ul > li { - width: 66.66666667% !important; - } - &.lv-col-sm-7 > ul > li { - width: 58.33333333% !important; - } - &.lv-col-sm-6 > ul > li { - width: 50% !important; - } - &.lv-col-sm-5 > ul > li { - width: 41.66666667% !important; - } - &.lv-col-sm-4 > ul > li { - width: 33.33333333% !important; - } - &.lv-col-sm-3 > ul > li { - width: 25% !important; - } - &.lv-col-sm-2 > ul > li { - width: 16.66666667% !important; - } - &.lv-col-sm-1 > ul > li { - width: 8.33333333% !important; - } - } - @media (min-width: $screen-lg) { - &.lv-col-md-12 > ul > li { - width: 100% !important; - } - &.lv-col-md-11 > ul > li { - width: 91.66666667% !important; - } - &.lv-col-md-10 > ul > li { - width: 83.33333333% !important; - } - &.lv-col-md-9 > ul > li { - width: 75% !important; - } - &.lv-col-md-8 > ul > li { - width: 66.66666667% !important; - } - &.lv-col-md-7 > ul > li { - width: 58.33333333% !important; - } - &.lv-col-md-6 > ul > li { - width: 50% !important; - } - &.lv-col-md-5 > ul > li { - width: 41.66666667% !important; - } - &.lv-col-md-4 > ul > li { - width: 33.33333333% !important; - } - &.lv-col-md-3 > ul > li { - width: 25% !important; - } - &.lv-col-md-2 > ul > li { - width: 16.66666667% !important; - } - &.lv-col-md-1 > ul > li { - width: 16.66666667% !important; - } - } - @media (min-width: $screen-xl) { - &.lv-col-lg-12 > ul > li { - width: 100% !important; - } - &.lv-col-lg-11 > ul > li { - width: 91.66666667% !important; - } - &.lv-col-lg-10 > ul > li { - width: 83.33333333% !important; - } - &.lv-col-lg-9 > ul > li { - width: 75% !important; - } - &.lv-col-lg-8 > ul > li { - width: 66.66666667% !important; - } - &.lv-col-lg-7 > ul > li { - width: 58.33333333% !important; - } - &.lv-col-lg-6 > ul > li { - width: 50% !important; - } - &.lv-col-lg-5 > ul > li { - width: 41.66666667% !important; - } - &.lv-col-lg-4 > ul > li { - width: 33.33333333% !important; - } - &.lv-col-lg-3 > ul > li { - width: 25% !important; - } - &.lv-col-lg-2 > ul > li { - width: 16.66666667% !important; - } - &.lv-col-lg-1 > ul > li { - width: 8.33333333% !important; - } - } -} diff --git a/theme_old/styles/web/sass/core/helpers/_navigationbar.scss b/theme_old/styles/web/sass/core/helpers/_navigationbar.scss deleted file mode 100644 index b4fbad9..0000000 --- a/theme_old/styles/web/sass/core/helpers/_navigationbar.scss +++ /dev/null @@ -1,186 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Navigation - -//== Regions -//## Behavior in the different regions -========================================================================== */ -// When used in topbar -.region-topbar { - .mx-navbar { - background-color: $navtopbar-bg; - ul.nav { - /* Navigation item */ - & > li.mx-navbar-item > a { - color: $navtopbar-color; - font-size: $navtopbar-font-size; - - /* Dropdown arrow */ - .caret { - border-top-color: $navtopbar-color; - border-bottom-color: $navtopbar-color; - } - &:hover, - &:focus, - &.active { - color: $navtopbar-color-hover; - background-color: $navtopbar-bg-hover; - .caret { - border-top-color: $navtopbar-color-active; - border-bottom-color: $navtopbar-color-active; - } - } - &.active { - color: $navtopbar-color-active; - background-color: $navtopbar-bg-active; - } - - /* Dropdown */ - .mx-navbar-submenu::before { - border-color: transparent transparent $navtopbar-border-color transparent; - } - - // Image - .glyphicon { - font-size: $navtopbar-glyph-size; - } - } - - /* When hovering or the dropdown is open */ - & > .mx-navbar-item > a:hover, - & > .mx-navbar-item > a:focus, - & > .mx-navbar-item.active a, - & > .mx-navbar-item.open > a, - & > .mx-navbar-item.open > a:hover, - & > .mx-navbar-item.open > a:focus { - color: $navtopbar-color-hover; - background-color: $navtopbar-bg-hover; - .caret { - border-top-color: $navtopbar-color-hover; - border-bottom-color: $navtopbar-color-hover; - } - } - & > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem.active a { - color: $navtopbar-sub-color-active; - background-color: $navtopbar-sub-bg-active; - .caret { - border-top-color: $navtopbar-sub-color-active; - border-bottom-color: $navtopbar-sub-color-active; - } - } - } - @media (max-width: $screen-md) { - ul.nav > li.mx-navbar-item > a { - } - .mx-navbar-item.open .dropdown-menu { - background-color: $navtopbar-sub-bg; - & > li.mx-navbar-subitem > a { - color: $navtopbar-sub-color; - font-size: $navtopbar-sub-font-size; - &:hover, - &:focus { - color: $navtopbar-sub-color-hover; - background-color: $navtopbar-sub-bg-hover; - } - &.active { - color: $navtopbar-sub-color-active; - background-color: $navtopbar-sub-bg-active; - } - } - } - } - } -} - -// When used in sidebar -.region-sidebar { - .mx-navbar { - background-color: $navsidebar-bg; - ul.nav { - /* Navigation item */ - & > li.mx-navbar-item > a { - color: $navsidebar-color; - font-size: $navsidebar-font-size; - - /* Dropdown arrow */ - .caret { - border-top-color: $navsidebar-color; - border-bottom-color: $navsidebar-color; - } - &:hover, - &:focus, - &.active { - color: $navsidebar-color-hover; - background-color: $navsidebar-bg-hover; - .caret { - border-top-color: $navsidebar-color-active; - border-bottom-color: $navsidebar-color-active; - } - } - &.active { - color: $navsidebar-color-active; - background-color: $navsidebar-bg-active; - } - - /* Dropdown */ - .mx-navbar-submenu::before { - border-color: transparent transparent $navsidebar-border-color transparent; - } - - // Image - .glyphicon { - font-size: $navsidebar-glyph-size; - } - } - - /* When hovering or the dropdown is open */ - & > .mx-navbar-item > a:hover, - & > .mx-navbar-item > a:focus, - & > .mx-navbar-item.active a, - & > .mx-navbar-item.open > a, - & > .mx-navbar-item.open > a:hover, - & > .mx-navbar-item.open > a:focus { - color: $navsidebar-color-hover; - background-color: $navsidebar-bg-hover; - .caret { - border-top-color: $navsidebar-color-hover; - border-bottom-color: $navsidebar-color-hover; - } - } - & > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem.active a { - color: $navsidebar-sub-color-active; - background-color: $navsidebar-sub-bg-active; - .caret { - border-top-color: $navsidebar-sub-color-active; - border-bottom-color: $navsidebar-sub-color-active; - } - } - } - @media (max-width: $screen-md) { - ul.nav > li.mx-navbar-item > a { - } - .mx-navbar-item.open .dropdown-menu { - background-color: $navtopbar-sub-bg; - & > li.mx-navbar-subitem > a { - color: $navsidebar-sub-color; - font-size: $navsidebar-sub-font-size; - &:hover, - &:focus { - color: $navsidebar-sub-color-hover; - background-color: $navsidebar-sub-bg-hover; - } - &.active { - color: $navsidebar-sub-color-active; - background-color: $navsidebar-sub-bg-active; - } - } - } - } - } -} diff --git a/theme_old/styles/web/sass/core/helpers/_navigationtree.scss b/theme_old/styles/web/sass/core/helpers/_navigationtree.scss deleted file mode 100644 index 9037dbc..0000000 --- a/theme_old/styles/web/sass/core/helpers/_navigationtree.scss +++ /dev/null @@ -1,166 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Navigation - -//== Regions -//## Behavior in the different regions -========================================================================== */ -// When used in topbar -.region-topbar { - .mx-navigationtree { - background-color: $navtopbar-bg; - .navbar-inner > ul { - & > li { - & > a { - color: $navtopbar-color; - border-color: $navtopbar-border-color; - background-color: $navtopbar-bg; - font-size: $navtopbar-font-size; - .caret { - border-top-color: $navtopbar-color; - border-bottom-color: $navtopbar-color; - } - - .glyphicon { - font-size: $navtopbar-glyph-size; - } - } - a:hover, - a:focus, - a.active { - color: $navtopbar-color-hover; - background-color: $navtopbar-bg-hover; - .caret { - border-top-color: $navtopbar-color-active; - border-bottom-color: $navtopbar-color-active; - } - } - a.active { - color: $navtopbar-color-active; - border-left-color: $navtopbar-color-active; - background-color: $navtopbar-bg-active; - } - } - } - - /* Sub navigation item specific */ - li.mx-navigationtree-has-items { - & > ul { - background-color: $navtopbar-sub-bg; - li { - a { - color: $navtopbar-sub-color; - background-color: $navtopbar-sub-bg; - font-size: $navtopbar-sub-font-size; - &:hover, - &:focus, - &.active { - color: $navtopbar-sub-color-hover; - background-color: $navtopbar-sub-bg-hover; - } - &.active { - color: $navtopbar-sub-color-active; - background-color: $navtopbar-sub-bg-active; - } - } - } - } - } - } -} - -// When used in sidebar -.region-sidebar { - .mx-navigationtree { - background-color: $navsidebar-bg; - .navbar-inner > ul { - & > li { - & > a { - color: $navsidebar-color; - border-color: $navsidebar-border-color; - background-color: $navsidebar-bg; - font-size: $navsidebar-font-size; - .caret { - border-top-color: $navsidebar-color; - border-bottom-color: $navsidebar-color; - } - - .glyphicon { - font-size: $navsidebar-glyph-size; - } - } - a:hover, - a:focus, - a.active { - color: $navsidebar-color-hover; - background-color: $navsidebar-bg-hover; - .caret { - border-top-color: $navsidebar-color-active; - border-bottom-color: $navsidebar-color-active; - } - } - a.active { - color: $navsidebar-color-active; - border-left-color: $navsidebar-color-active; - background-color: $navsidebar-bg-active; - } - } - } - - /* Sub navigation item specific */ - li.mx-navigationtree-has-items { - & > ul { - background-color: $navsidebar-sub-bg; - li { - a { - color: $navsidebar-sub-color; - background-color: $navsidebar-sub-bg; - font-size: $navsidebar-sub-font-size; - &:hover, - &:focus, - &.active { - color: $navsidebar-sub-color-hover; - background-color: $navsidebar-sub-bg-hover; - } - &.active { - color: $navsidebar-sub-color-active; - background-color: $navsidebar-sub-bg-active; - } - } - } - } - } - } -} - - -//== Design Properties -//## Helper classes to change the look and feel of the component -//-------------------------------------------------------------------------------------------------------------------// -// Content Centerd text and icons -.nav-content-center-text-icons.mx-navigationtree { - .navbar-inner ul { - a { - flex-direction: column; - justify-content: center; - .glyphicon { - margin: 0 0 5px 0; - } - } - } -} - -// Content Centerd icons only -.nav-content-center.mx-navigationtree { - .navbar-inner ul { - a { - justify-content: center; - } - } -} diff --git a/theme_old/styles/web/sass/core/helpers/_simplemenubar.scss b/theme_old/styles/web/sass/core/helpers/_simplemenubar.scss deleted file mode 100644 index 1c6eaa8..0000000 --- a/theme_old/styles/web/sass/core/helpers/_simplemenubar.scss +++ /dev/null @@ -1,36 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Navigation - -//== Design Properties -//## Helper classes to change the look and feel of the component -========================================================================== */ -// Center text and icons -.bottom-nav-text-icons.mx-menubar { - ul.mx-menubar-list { - li.mx-menubar-item { - a { - flex-direction: column; - padding: 8px 8px 6px 8px; - line-height: normal; - font-size: 11px; - .glyphicon { - display: block; - margin: 0 0 5px 0; - font-size: 18px; - } - img { - display: block; - height: 18px; - margin: 0 0 5px 0; - } - } - } - } -} diff --git a/theme_old/styles/web/sass/core/helpers/_tabcontainer.scss b/theme_old/styles/web/sass/core/helpers/_tabcontainer.scss deleted file mode 100644 index 727c236..0000000 --- a/theme_old/styles/web/sass/core/helpers/_tabcontainer.scss +++ /dev/null @@ -1,164 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Tab Container - -//== Design Properties -//## Helper classes to change the look and feel of the component -========================================================================== */ -// Style as pills -.tab-pills.mx-tabcontainer { - & > .mx-tabcontainer-tabs { - border: 0; - & > li > a { - margin-right: 2px; - color: $tabs-color; - border: 1px solid $tabs-border-color; - border-radius: 4px; - &:hover, - &:focus { - background-color: $tabs-bg-hover; - } - } - & > li.active > a, - & > li.active > a:hover, - & > li.active > a:focus { - color: #FFFFFF; - border-color: $tabs-bg-active; - background-color: $tabs-bg-active; - } - } -} - -// Style with lines -.tab-lined.mx-tabcontainer { - & > .mx-tabcontainer-tabs { - border-width: 3px; - li { - margin-right: 30px; - margin-bottom: -3px; - & > a { - padding: 10px 0; - color: $tabs-color; - border: 0; - border-style: solid; - border-color: transparent; - border-bottom-width: 3px; - border-radius: 0; - &:hover, - &:focus { - color: $tabs-color; - border: 0; - border-color: transparent; - background: transparent; - } - } - &.active > a, - &.active > a:hover, - &.active > a:focus { - color: $tabs-lined-color-active; - border: 0; - border-bottom: 3px solid $tabs-lined-border-color; - background-color: transparent; - } - } - } -} - -// Justified style -// Lets your tabs take 100% of the width -.tab-justified.mx-tabcontainer { - & > .mx-tabcontainer-tabs { - width: 100%; - border-bottom: 0; - & > li { - display: table-cell; - float: none; - width: 1%; - margin: 0; - @media (max-width: $screen-sm-max) { - display: block; - width: 100%; - } - & > a { - text-align: center; - border-bottom: 1px solid $tabs-border-color; - } - } - & > li.active > a { - border-bottom-color: transparent; - border-radius: 4px; - @media (max-width: $screen-sm-max) { - border-bottom-color: $tabs-border-color; - } - } - } -} - -// Bordered -.tab-bordered.mx-tabcontainer { - & > .mx-tabcontainer-tabs { - margin: 0; - } - & > .mx-tabcontainer-content { - padding: 10px; - border-width: 0 1px 1px 1px; - border-style: solid; - border-color: $tabs-border-color; - background-color: #FFFFFF; - } -} - -// Wizard -.tab-wizard.mx-tabcontainer { - & > .mx-tabcontainer-tabs { - position: relative; - display: flex; - justify-content: space-between; - border-style: none; - - &::before { - position: absolute; - top: 16px; - display: block; - width: 100%; - height: 1px; - content: ""; - background-color: $tabs-border-color; - } - & > li { - position: relative; - float: none; - width: 100%; - text-align: center; - & > a { - width: 33px; - height: 33px; - margin: auto; - padding: 0; - text-align: center; - color: $brand-default; - border: 1px solid $tabs-border-color; - border-radius: 100%; - background-color: #FFFFFF; - font-size: 18px; - font-weight: bold; - line-height: 33px; - } - &.active { - & > a, - & > a:hover, - & > a:focus { - color: #FFFFFF; - border-color: $tabs-bg-active; - background-color: $tabs-bg-active; - } - } - } - } -} diff --git a/theme_old/styles/web/sass/core/helpers/_tables.scss b/theme_old/styles/web/sass/core/helpers/_tables.scss deleted file mode 100644 index b81f803..0000000 --- a/theme_old/styles/web/sass/core/helpers/_tables.scss +++ /dev/null @@ -1,206 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Tables - -//== Design Properties -//## Helper classes to change the look and feel of the component -========================================================================== */ -// Lined -table.table-lined.mx-table { - > tbody { - // Table row - > tr { - // Table header - // Table data - > td { - border-width: 1px 0; - border-style: solid; - border-color: $grid-border-color; - } - } - } -} - -// Bordered -table.table-bordered.mx-table { - > tbody { - // Table row - > tr { - // Table header - // Table data - > th, - > td { - border-width: 1px; - border-style: solid; - border-color: $grid-border-color; - } - } - } -} - -// Makes table compact -table.table-compact.mx-table { - > tbody { - // Table row - > tr { - // Table header - // Table data - > th, - > td { - padding-top: 2px; - padding-bottom: 2px; - } - } - } -} - -// Remove padding on sides -table.table-sideless.mx-table { - > tbody { - // Table row - > tr { - // Table header - // Table data - > td, - > th { - padding-right: 0; - } - > th:first-child, - > td:first-child { - padding-left: 0; - } - } - } -} - -// Remove all padding -table.table-spaceless.mx-table { - > tbody { - // Table row - > tr { - // Table header - // Table data - > th, - > td { - padding: 0; - } - } - } -} - -// Tables Vertical -// Will remove unwanted paddings -table.table-vertical.mx-table { - > tbody { - // Table row - > tr { - // Table header - > th { - padding-bottom: 0; - > label { - padding: 0; - } - > div > label { - padding: 0; - } - } - } - } -} - -// Align content in middle -table.table-align-vertical-middle.mx-table { - > tbody { - // Table row - > tr { - // Table header - // Table data - > th, - > td { - vertical-align: middle; - } - } - } -} - -// Compact labels -table.table-label-compact.mx-table { - > tbody { - // Table row - > tr { - // Table header - // Table data - > th, - > td { - > label { - margin: 0; - padding: 0; - } - > div > label, - .mx-referenceselector-input-wrapper label { - margin: 0; - padding: 0; - } - } - } - } -} - -$height-row-s: 55px; -$height-row-m: 70px; -$height-row-l: 120px; -// Small rows -table.table-row-s.mx-table { - > tbody { - // Table row - > tr { - // Table header - // Table data - > th, - > td { - height: $height-row-s; - } - } - } -} - -// Medium rows -table.table-row-m.mx-table { - > tbody { - // Table row - > tr { - // Table header - // Table data - > th, - > td { - height: $height-row-m; - } - } - } -} - -// Large rows -table.table-row-l.mx-table { - > tbody { - // Table row - > tr { - // Table header - // Table data - > th, - > td { - height: $height-row-l; - } - } - } -} - -// Makes the columns fixed -table.table-fixed { - table-layout: fixed; -} diff --git a/theme_old/styles/web/sass/core/helpers/_templategrids.scss b/theme_old/styles/web/sass/core/helpers/_templategrids.scss deleted file mode 100644 index 3cfa01c..0000000 --- a/theme_old/styles/web/sass/core/helpers/_templategrids.scss +++ /dev/null @@ -1,304 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// -/* ========================================================================== - Templategrid - -//== Design Properties -//## Helper classes to change the look and feel of the component -========================================================================== */ -// Make sure your content looks selectable -.templategrid-selectable.mx-templategrid { - .mx-templategrid-item { - cursor: pointer; - } -} - -// Lined -.templategrid-lined.mx-templategrid { - .mx-grid-content { - border-top-width: 2px; - border-top-style: solid; - border-top-color: $grid-border-color; - } - - .mx-templategrid-item { - border-top: 1px solid $grid-border-color; - border-right: none; - border-bottom: 1px solid $grid-border-color; - border-left: none; - } -} - -// Striped -.templategrid-striped.mx-templategrid { - .mx-templategrid-row:nth-child(odd) .mx-templategrid-item { - background-color: #F9F9F9; - } -} - -// Stylingless -.templategrid-stylingless.mx-templategrid { - .mx-templategrid-item { - padding: 0; - cursor: default; - border: 0; - background-color: transparent; - - &:hover { - background-color: transparent; - } - - &.selected { - background-color: transparent !important; - - &:hover { - background-color: transparent !important; - } - } - } -} - -// Transparent items -.templategrid-transparent.mx-templategrid { - .mx-templategrid-item { - border: 0; - background-color: transparent; - } -} - -// Hover -.templategrid-hover.mx-templategrid { - .mx-templategrid-item { - &:hover { - background-color: $grid-bg-hover !important; - } - - &.selected { - background-color: $grid-bg-selected !important; - - &:hover { - background-color: $grid-bg-selected-hover !important; - } - } - } -} - -// Templategrid Row Sizes -.templategrid-lg.mx-templategrid { - .mx-templategrid-item { - padding: ($grid-padding-top * 2) ($grid-padding-right * 2) ($grid-padding-bottom * 2) ($grid-padding-left * 2); - } -} - -.templategrid-sm.mx-templategrid { - .mx-templategrid-item { - padding: ($grid-padding-top / 2) ($grid-padding-right / 2) ($grid-padding-bottom / 2) ($grid-padding-left / 2); - } -} - -// Templategrid Layoutgrid styles -.mx-templategrid[class*="tg-col"] { - overflow: hidden; // For if it is not in a layout, to prevent scrollbars - .mx-templategrid-content-wrapper { - display: block; - } - - .mx-templategrid-row { - display: block; - margin-right: -1 * $gutter-size; - margin-left: -1 * $gutter-size; - - &::before, - &::after { - // clearfix - display: table; - clear: both; - content: " "; - } - } - - .mx-templategrid-item { - // bootstrap col - position: relative; - display: block; - float: left; - min-height: 1px; - padding-right: $gutter-size; - padding-left: $gutter-size; - border: 0; - @media (max-width: 992px) { - width: 100% !important; - } - - .mx-dataview { - overflow: hidden; - } - } - - &.tg-col-xs-12 .mx-templategrid-item { - width: 100% !important; - } - - &.tg-col-xs-11 .mx-templategrid-item { - width: 91.66666667% !important; - } - - &.tg-col-xs-10 .mx-templategrid-item { - width: 83.33333333% !important; - } - - &.tg-col-xs-9 .mx-templategrid-item { - width: 75% !important; - } - - &.tg-col-xs-8 .mx-templategrid-item { - width: 66.66666667% !important; - } - - &.tg-col-xs-7 .mx-templategrid-item { - width: 58.33333333% !important; - } - - &.tg-col-xs-6 .mx-templategrid-item { - width: 50% !important; - } - - &.tg-col-xs-5 .mx-templategrid-item { - width: 41.66666667% !important; - } - - &.tg-col-xs-4 .mx-templategrid-item { - width: 33.33333333% !important; - } - - &.tg-col-xs-3 .mx-templategrid-item { - width: 25% !important; - } - - &.tg-col-xs-2 .mx-templategrid-item { - width: 16.66666667% !important; - } - - &.tg-col-xs-1 .mx-templategrid-item { - width: 8.33333333% !important; - } - - @media (min-width: 768px) { - &.tg-col-sm-12 .mx-templategrid-item { - width: 100% !important; - } - &.tg-col-sm-11 .mx-templategrid-item { - width: 91.66666667% !important; - } - &.tg-col-sm-10 .mx-templategrid-item { - width: 83.33333333% !important; - } - &.tg-col-sm-9 .mx-templategrid-item { - width: 75% !important; - } - &.tg-col-sm-8 .mx-templategrid-item { - width: 66.66666667% !important; - } - &.tg-col-sm-7 .mx-templategrid-item { - width: 58.33333333% !important; - } - &.tg-col-sm-6 .mx-templategrid-item { - width: 50% !important; - } - &.tg-col-sm-5 .mx-templategrid-item { - width: 41.66666667% !important; - } - &.tg-col-sm-4 .mx-templategrid-item { - width: 33.33333333% !important; - } - &.tg-col-sm-3 .mx-templategrid-item { - width: 25% !important; - } - &.tg-col-sm-2 .mx-templategrid-item { - width: 16.66666667% !important; - } - &.tg-col-sm-1 .mx-templategrid-item { - width: 8.33333333% !important; - } - } - @media (min-width: 992px) { - &.tg-col-md-12 .mx-templategrid-item { - width: 100% !important; - } - &.tg-col-md-11 .mx-templategrid-item { - width: 91.66666667% !important; - } - &.tg-col-md-10 .mx-templategrid-item { - width: 83.33333333% !important; - } - &.tg-col-md-9 .mx-templategrid-item { - width: 75% !important; - } - &.tg-col-md-8 .mx-templategrid-item { - width: 66.66666667% !important; - } - &.tg-col-md-7 .mx-templategrid-item { - width: 58.33333333% !important; - } - &.tg-col-md-6 .mx-templategrid-item { - width: 50% !important; - } - &.tg-col-md-5 .mx-templategrid-item { - width: 41.66666667% !important; - } - &.tg-col-md-4 .mx-templategrid-item { - width: 33.33333333% !important; - } - &.tg-col-md-3 .mx-templategrid-item { - width: 25% !important; - } - &.tg-col-md-2 .mx-templategrid-item { - width: 16.66666667% !important; - } - &.tg-col-md-1 .mx-templategrid-item { - width: 8.33333333% !important; - } - } - @media (min-width: 1200px) { - &.tg-col-lg-12 .mx-templategrid-item { - width: 100% !important; - } - &.tg-col-lg-11 .mx-templategrid-item { - width: 91.66666667% !important; - } - &.tg-col-lg-10 .mx-templategrid-item { - width: 83.33333333% !important; - } - &.tg-col-lg-9 .mx-templategrid-item { - width: 75% !important; - } - &.tg-col-lg-8 .mx-templategrid-item { - width: 66.66666667% !important; - } - &.tg-col-lg-7 .mx-templategrid-item { - width: 58.33333333% !important; - } - &.tg-col-lg-6 .mx-templategrid-item { - width: 50% !important; - } - &.tg-col-lg-5 .mx-templategrid-item { - width: 41.66666667% !important; - } - &.tg-col-lg-4 .mx-templategrid-item { - width: 33.33333333% !important; - } - &.tg-col-lg-3 .mx-templategrid-item { - width: 25% !important; - } - &.tg-col-lg-2 .mx-templategrid-item { - width: 16.66666667% !important; - } - &.tg-col-lg-1 .mx-templategrid-item { - width: 8.33333333% !important; - } - } -} diff --git a/theme_old/styles/web/sass/core/helpers/_typography.scss b/theme_old/styles/web/sass/core/helpers/_typography.scss deleted file mode 100644 index cab8b63..0000000 --- a/theme_old/styles/web/sass/core/helpers/_typography.scss +++ /dev/null @@ -1,135 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Typography - -//== Design Properties -//## Helper classes to change the look and feel of the component -========================================================================== */ -// Text size -.text-small { - font-size: $font-size-small !important; -} - -.text-large { - font-size: $font-size-large !important; -} - -// Text Weights -.text-light, -.text-light > *, -.text-light label { - font-weight: $font-weight-light !important; -} - -.text-normal, -.text-normal > *, -.text-normal label { - font-weight: $font-weight-normal !important; -} - -.text-semibold, -.text-semibold > *, -.text-semibold label { - font-weight: $font-weight-semibold !important; -} - -.text-bold, -.text-bold > *, -.text-bold label { - font-weight: $font-weight-bold !important; -} - -// Color variations -.text-default, -.text-default:hover { - color: $font-color-default !important; -} - -.text-primary, -.text-primary:hover { - color: $brand-primary !important; -} - -.text-info, -.text-info:hover { - color: $brand-info !important; -} - -.text-success, -.text-success:hover { - color: $brand-success !important; -} - -.text-warning, -.text-warning:hover { - color: $brand-warning !important; -} - -.text-danger, -.text-danger:hover { - color: $brand-danger !important; -} - -.text-header { - color: $font-color-header !important; -} - -.text-detail { - color: $font-color-detail !important; -} - -.text-white { - color: #ffffff; -} - -// Alignment options -.text-left { - text-align: left !important; -} -.text-center { - text-align: center !important; -} -.text-right { - text-align: right !important; -} -.text-justify { - text-align: justify !important; -} - -// Transform options -.text-lowercase { - text-transform: lowercase !important; -} -.text-uppercase { - text-transform: uppercase !important; -} -.text-capitalize { - text-transform: capitalize !important; -} - -// Wrap options -.text-break { - word-break: break-all !important; - word-break: break-word !important; - -ms-word-break: break-all !important; - -webkit-hyphens: auto !important; - -moz-hyphens: auto !important; - hyphens: auto !important; -} - -.text-nowrap { - white-space: nowrap !important; -} - -.text-nowrap { - overflow: hidden !important; - max-width: 100% !important; - white-space: nowrap !important; - text-overflow: ellipsis !important; -} diff --git a/theme_old/styles/web/sass/core/manifest.json b/theme_old/styles/web/sass/core/manifest.json deleted file mode 100644 index 5ace500..0000000 --- a/theme_old/styles/web/sass/core/manifest.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "Atlas-UI-Framework", - "version": "2.6.3" -} \ No newline at end of file diff --git a/theme_old/styles/web/sass/core/widgets/_alerts.scss b/theme_old/styles/web/sass/core/widgets/_alerts.scss deleted file mode 100644 index 006ae6a..0000000 --- a/theme_old/styles/web/sass/core/widgets/_alerts.scss +++ /dev/null @@ -1,19 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Alerts - - Default Bootstrap Alert boxes. Provide contextual feedback messages for typical user actions with the handful of available and flexible alert messages -========================================================================== */ - -.alert { - margin-top: 0; // want to align it with padding of a page - padding: 15px; - border: 0; - border-radius: 4px; -} diff --git a/theme_old/styles/web/sass/core/widgets/_buttons.scss b/theme_old/styles/web/sass/core/widgets/_buttons.scss deleted file mode 100644 index c5cc4d0..0000000 --- a/theme_old/styles/web/sass/core/widgets/_buttons.scss +++ /dev/null @@ -1,96 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Buttons - - Default Bootstrap and Mendix Buttons -========================================================================== */ - -.btn, -.mx-button { - display: inline-block; - margin-bottom: 0; - padding: 0.6em 1em; - cursor: pointer; - -moz-user-select: none; - -ms-user-select: none; - -webkit-user-select: none; - user-select: none; - -moz-transition: all 0.2s ease-in-out; - -o-transition: all 0.2s ease-in-out; - -webkit-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; - text-align: center; - vertical-align: middle; - white-space: nowrap; - color: $btn-default-color; - border: 1px solid $btn-default-border-color; - border-radius: $btn-border-radius; - background-color: $btn-default-bg; - background-image: none; - box-shadow: none; - text-shadow: none; - font-size: $btn-font-size; - line-height: $line-height-base; - - &:hover, - &:focus, - &:active, - &:active:focus { - outline: none; - box-shadow: none; - } - - &[aria-disabled] { - cursor: not-allowed; - pointer-events: none; - opacity: 0.65; - filter: alpha(opacity=65); - } - - @if $btn-bordered != false { - @extend .btn-bordered; - } -} - -// Mendix button link -.mx-link { - padding: 0; - color: $link-color; - - &[aria-disabled='true'] { - cursor: not-allowed; - pointer-events: none; - opacity: 0.65; - filter: alpha(opacity=65); - } -} - -// Images and icons in buttons -.btn, -.mx-button, -.mx-link { - img { - //height: auto; // MXUI override who set the height on 16px default - height: $font-size-default + 4px; - margin-right: 5px; - vertical-align: text-top; - } -} - -//== Phone specific -//-------------------------------------------------------------------------------------------------------------------// -.profile-phone { - .btn, - .mx-link { - &:active { - -webkit-transform: translateY(1px); - transform: translateY(1px); - } - } -} diff --git a/theme_old/styles/web/sass/core/widgets/_checkbox.scss b/theme_old/styles/web/sass/core/widgets/_checkbox.scss deleted file mode 100644 index 5534c72..0000000 --- a/theme_old/styles/web/sass/core/widgets/_checkbox.scss +++ /dev/null @@ -1,112 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Checkbox - - Default Mendix Checkbox Widget -========================================================================== */ - -.mx-checkbox.label-after { - flex-wrap: wrap; - - .control-label { - padding: 0; - } -} - -input[type='checkbox'] { - position: relative !important; //Remove after mxui merge - width: 16px; - height: 16px; - margin: 0 !important; // Remove after mxui merge - cursor: pointer; - -moz-user-select: none; - -ms-user-select: none; - -o-user-select: none; - -webkit-user-select: none; - user-select: none; - appearance: none; - -moz-appearance: none; - -webkit-appearance: none; - - - &::-ms-check { - color: $form-input-border-color; - border-color: $form-input-border-color; - border-radius: $form-input-border-radius; - background-color: $form-input-bg; - } - - &:focus::-ms-check, - &:checked::-ms-check { - color: $form-input-border-focus-color; - border-color: $form-input-border-focus-color; - background-color: $form-input-bg-focus; - } - - &:before, - &:after { - position: absolute; - display: block; - transition: all 0.3s ease; - } - - &:before { - // Checkbox - width: 100%; - height: 100%; - content: ''; - border: 1px solid $form-input-border-color; - border-radius: $form-input-border-radius; - background-color: transparent; - } - - &:after { - // Checkmark - width: 8px; - height: 4px; - margin: 5px 4px; - transform: rotate(-45deg); - pointer-events: none; - border: 2px solid #FFFFFF; - border-top: 0; - border-right: 0; - } - - &:not(:disabled):not(:checked):hover:after { - content: ''; - border-color: $form-input-bg-hover; // color of checkmark on hover - } - - &:checked:before { - border-color: $form-input-border-focus-color; - background-color: $form-input-border-focus-color; - } - - &:checked:after { - content: ''; - } - - &:disabled:before { - background-color: $form-input-bg-disabled; - } - - &:checked:disabled:before { - border-color: transparent; - background-color: rgba($form-input-border-focus-color, 0.4); - } - - &:disabled:after, - &:checked:disabled:after { - border-color: $form-input-bg-disabled; - } - - & + .control-label { - margin-left: $form-label-gutter; - } -} diff --git a/theme_old/styles/web/sass/core/widgets/_datagrids.scss b/theme_old/styles/web/sass/core/widgets/_datagrids.scss deleted file mode 100644 index f0c1bdf..0000000 --- a/theme_old/styles/web/sass/core/widgets/_datagrids.scss +++ /dev/null @@ -1,76 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Datagrid Default - - Default Mendix Datagrid Widget. The datagrid shows a list of objects in a grid -========================================================================== */ - -.mx-datagrid { - table { - border-width: 0; - background-color: transparent; - /* Table header */ - th { - border-style: solid; - border-color: $grid-border-color; - border-top-width: 0; - border-right: 0; - border-bottom-width: 1px; - border-left: 0; - background-color: $grid-bg-header; - padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left; - vertical-align: middle; - .mx-datagrid-head-caption { - white-space: normal; - } - } - /* Table Body */ - tbody tr { - td { - @include transition(); - padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left; - vertical-align: middle; - border-width: 0; - border-color: $grid-border-color; - border-bottom-width: 1px; - border-bottom-style: solid; - background-color: $grid-bg; - &:focus { - outline: none; - } - /* Text without spaces */ - .mx-datagrid-data-wrapper { - text-overflow: ellipsis; - } - } - &.selected td, - &.selected:hover td { - color: $grid-selected-color; - background-color: $grid-bg-selected !important; - } - } - /* Table Footer */ - tfoot { - > tr > th { - padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left; - border-width: 0; - background-color: $grid-footer-bg; - } - > tr > td { - padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left; - border-width: 0; - background-color: $grid-bg; - font-weight: $font-weight-bold; - } - } - & *:focus { - outline: 0; - } - } -} \ No newline at end of file diff --git a/theme_old/styles/web/sass/core/widgets/_dataview.scss b/theme_old/styles/web/sass/core/widgets/_dataview.scss deleted file mode 100644 index bd4199d..0000000 --- a/theme_old/styles/web/sass/core/widgets/_dataview.scss +++ /dev/null @@ -1,45 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Dataview - - Default Mendix Dataview Widget. The data view is used for showing the contents of exactly one object -========================================================================== */ - -.mx-dataview { - /* Control bar */ - .mx-dataview-controls { - // Needed to clear the bootstrap columns (get float: left) - clear: both; - margin-top: 10px; - padding: 8px 0; - border-top: 1px solid $dataview-controls-border-color; - border-radius: 0; - background-color: $dataview-controls-bg; - /* Buttons */ - .mx-button { - margin-right: 0.3em; - margin-bottom: 0; - &:last-child { - margin-right: 0; - } - } - } - /* Dataview-content gives problems for nexted layout grid containers */ - > .mx-dataview-content > .mx-container-nested { - > .row { - margin-right: 0; - margin-left: 0; - } - } - /* Dataview empty message */ - .mx-dataview-message { - color: $dataview-emptymessage-color; - background: $dataview-emptymessage-bg; - } -} diff --git a/theme_old/styles/web/sass/core/widgets/_datepicker.scss b/theme_old/styles/web/sass/core/widgets/_datepicker.scss deleted file mode 100644 index 6f30417..0000000 --- a/theme_old/styles/web/sass/core/widgets/_datepicker.scss +++ /dev/null @@ -1,117 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Date Picker - - Default Mendix Date Picker Widget. -========================================================================== */ - -.mx-calendar { - /* (must be higher than popup z-index) */ - z-index: 10010 !important; - padding: 10px; - font-size: 12px; - background: $bg-color; - border-radius: $border-radius-default; - border: 1px solid $border-color-default; - box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.06); - .mx-calendar-month-header { - display: flex; - flex-direction: row; - justify-content: space-between; - margin: 0 3px 10px 3px; - } - .mx-calendar-month-next, - .mx-calendar-month-previous, - .mx-calendar-month-dropdown { - border: 0; - cursor: pointer; - background: transparent; - } - .mx-calendar-month-next, - .mx-calendar-month-previous { - &:hover { - color: $brand-primary; - } - } - .mx-calendar-month-dropdown { - display: flex; - align-items: center; - justify-content: center; - position: relative; - .mx-calendar-month-current:first-child { - margin-right: 10px; - } - } - th { - color: $brand-primary; - } - th, - td { - width: 35px; - height: 35px; - text-align: center; - } - td { - color: $font-color-default; - - &:hover { - cursor: pointer; - border-radius: 50%; - color: $brand-primary; - background-color: $brand-default; - } - } - .mx-calendar-day-month-next, - .mx-calendar-day-month-previous { - color: lighten($font-color-default, 45%); - } - .mx-calendar-day-selected, - .mx-calendar-day-selected:hover { - color: #fff; - border-radius: 50%; - background: $brand-primary; - } - - // - - .mx-calendar-year-switcher { - text-align: center; - margin-top: 10px; - color: lighten($brand-primary, 30%); - span.mx-calendar-year-selected { - color: $brand-primary; - margin-left: 10px; - margin-right: 10px; - } - span:hover { - cursor: pointer; - text-decoration: underline; - background-color: transparent; - } - } -} - -.mx-calendar-month-dropdown-options { - /* (must be higher than popup z-index) */ - z-index: 10020 !important; - position: absolute; - top: 25px; - padding: 2px 10px; - border-radius: $border-radius-default; - background-color: $bg-color; - div { - cursor: pointer; - font-size: 12px; - padding: 2px 0; - &:hover, - &:focus { - color: $brand-primary; - } - } -} diff --git a/theme_old/styles/web/sass/core/widgets/_glyphicons.scss b/theme_old/styles/web/sass/core/widgets/_glyphicons.scss deleted file mode 100644 index dccd16f..0000000 --- a/theme_old/styles/web/sass/core/widgets/_glyphicons.scss +++ /dev/null @@ -1,27 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Glyphicons - - Default Mendix Glyphicons -========================================================================== */ - -.mx-glyphicon { - &:before { - display: inline-block; - margin-top: -0.2em; - margin-right: 0.4555555em; - vertical-align: middle; - font-family: "Glyphicons Halflings"; - font-weight: $font-weight-normal; - font-style: normal; - line-height: inherit; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - } -} diff --git a/theme_old/styles/web/sass/core/widgets/_grid.scss b/theme_old/styles/web/sass/core/widgets/_grid.scss deleted file mode 100644 index 8bbf4ac..0000000 --- a/theme_old/styles/web/sass/core/widgets/_grid.scss +++ /dev/null @@ -1,72 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Grid - - Default Mendix Grid (used for Mendix Datagrid) -========================================================================== */ - -.mx-grid { - padding: 0px; - border: 0; - border-radius: 0; - .mx-grid-controlbar { - margin: 10px 0; - /* Paging */ - .mx-grid-pagingbar { - /* Buttons */ - .mx-button { - padding: 6px; - color: $grid-paging-color; - border-color: $grid-paging-border-color; - background-color: $grid-paging-bg; - &:hover { - color: $grid-paging-color-hover; - border-color: $grid-paging-border-color-hover; - background-color: $grid-paging-bg-hover; - } - } - /* Text Paging .. to .. to .. */ - .mx-grid-paging-status { - padding: 0 8px 8px; - } - } - } - .mx-grid-searchbar { - margin: 10px 0; - .mx-grid-search-item { - .mx-grid-search-label { - vertical-align: middle; - label { - padding-top: 5px; - } - } - .mx-grid-search-input { - display: inline-flex; - .form-control { - height: 28px; - font-size: 11px; - } - select.form-control { - padding: 3px; - vertical-align: middle; - } - .mx-button { - height: 28px; - padding-top: 2px; - padding-bottom: 2px; - } - } - } - } -} - -// Remove default border from grid inside a Mendix Dataview -.mx-dataview .mx-grid { - border: 0; -} diff --git a/theme_old/styles/web/sass/core/widgets/_groupbox.scss b/theme_old/styles/web/sass/core/widgets/_groupbox.scss deleted file mode 100644 index ab304dc..0000000 --- a/theme_old/styles/web/sass/core/widgets/_groupbox.scss +++ /dev/null @@ -1,40 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Groupbox - - Default Mendix Groupboxes -========================================================================== */ - -.mx-groupbox { - margin: 0; - > .mx-groupbox-header { - margin: 0; - color: $groupbox-default-color; - border-width: 1px 1px 0 1px; - border-style: solid; - border-color: $groupbox-default-bg; - background: $groupbox-default-bg; - font-size: $font-size-h5; - .mx-groupbox-collapse-icon { - margin-top: 0.1em; - } - } - > .mx-groupbox-body { - padding: 10px 15px; - border-width: 1px; - border-style: solid; - border-color: $groupbox-default-bg; - background-color: #FFFFFF; - } - .mx-groupbox-header + .mx-groupbox-body { - border-top: none; - } - &.collapsed > .mx-groupbox-header { - } -} \ No newline at end of file diff --git a/theme_old/styles/web/sass/core/widgets/_header.scss b/theme_old/styles/web/sass/core/widgets/_header.scss deleted file mode 100644 index b85e1ae..0000000 --- a/theme_old/styles/web/sass/core/widgets/_header.scss +++ /dev/null @@ -1,116 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Header - - Default Mendix Mobile Header -========================================================================== */ - -.mx-header { - z-index: 100; - display: flex; - width: 100%; - height: $m-header-height; - padding: 0; - text-align: initial; - color: $m-header-color; - border-bottom: 1px solid $border-color-default; - background-color: $m-header-bg; - box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.14); - - // Reset mxui - div.mx-header-left, - div.mx-header-right { - position: relative; - top: initial; - right: initial; - left: initial; - display: flex; - align-items: center; - width: 25%; - height: 100%; - .mx-placeholder { - display: flex; - align-items: center; - height: 100%; - } - } - - div.mx-header-left .mx-placeholder { - order: 1; - .mx-placeholder { - justify-content: flex-start; - } - } - div.mx-header-center { - overflow: hidden; - flex: 1; - order: 2; - text-align: center; - - .mx-title { - overflow: hidden; - width: 100%; - margin: 0; - text-overflow: ellipsis; - color: $m-header-color; - font-size: $m-header-title-size; - line-height: $m-header-height; - } - } - div.mx-header-right { - order: 3; - .mx-placeholder { - justify-content: flex-end; - } - } - - // Content magic - .mx-link { - display: flex; - align-items: center; - height: 100%; - -webkit-transition: all 0.2s; - -moz-transition: all 0.2s; - transition: all 0.2s; - text-decoration: none; - .glyphicon { - top: 0; - font-size: 23px; - } - &:active { - -webkit-transform: translateY(1px); - transform: translateY(1px); - color: $link-hover-color; - } - } - - .mx-link, - .btn, - img { - padding: 0 8px; - } - - .mx-sidebartoggle { - font-size: 24px; - line-height: $m-header-height; - img { - height: 20px; - } - } -} - -// RTL support -body[dir='rtl'] { - .mx-header-left { - order: 3; - } - .mx-header-right { - order: 1; - } -} diff --git a/theme_old/styles/web/sass/core/widgets/_inputs.scss b/theme_old/styles/web/sass/core/widgets/_inputs.scss deleted file mode 100644 index 7c76e32..0000000 --- a/theme_old/styles/web/sass/core/widgets/_inputs.scss +++ /dev/null @@ -1,240 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// -/* ========================================================================== - Inputs - - The form-control class style all inputs -========================================================================== */ -.form-control { - display: flex; - flex: 1; - min-width: 50px; - height: $form-input-height; - padding: $form-input-padding-y $form-input-padding-x; - transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; - color: $form-input-color; - border: 1px solid $form-input-border-color; - border-radius: $form-input-border-radius; - background-color: $form-input-bg; - background-image: none; - box-shadow: none; - font-size: $form-input-font-size; - line-height: $form-input-line-height; - appearance: none; - -moz-appearance: none; - -webkit-appearance: none; - @if $form-input-style==lined { - @extend .form-control-lined; - } -} - -.form-control:not([readonly]):focus { - border-color: $form-input-border-focus-color; - outline: 0; - background-color: $form-input-bg-focus; - box-shadow: none; -} - -.form-control[disabled], -.form-control[readonly], -fieldset[disabled] .form-control { - opacity: 1; - background-color: #EEEEEE; -} - -.form-control[disabled], -fieldset[disabled] .form-control { - cursor: not-allowed; -} - -// Lined -.form-control-lined { - border: 0; - border-bottom: 1px solid $form-input-border-color; - border-radius: 0; - background-color: transparent; - - &:focus { - background-color: transparent; - } -} - -// Read only form control class -.form-control-static { - overflow: hidden; - flex: 1; - min-height: auto; - padding: $form-input-padding-y $form-input-padding-x; - border-bottom: 1px solid $form-input-static-border-color; - font-size: $form-input-font-size; - line-height: $form-input-line-height; - - & + .control-label { - margin-left: $form-label-gutter; - } -} - -// Dropdown input widget -select.form-control { - $arrow: "data:image/svg+xml;utf8,"; - padding-right: 30px; - background-image: url($arrow); - background-repeat: no-repeat; - background-position: calc(100% - #{$form-input-padding-x}) center; - appearance: none; - -moz-appearance: none; - -webkit-appearance: none; -} - -.form-control.mx-selectbox { - align-items: center; - flex-direction: row-reverse; - justify-content: space-between; -} - -// Not editable textarea, textarea will be rendered as a label -.mx-textarea .control-label { - height: auto; -} - -textarea.form-control { - flex-basis: auto; -} - -.mx-compound-control { - display: flex; - flex: 1; - flex-wrap: wrap; - max-width: 100%; - - .mx-validation-message { - flex-basis: 100%; - margin-top: 5px; - } -} - -// Form Group -.form-group { - display: flex; - flex-direction: row; - margin-bottom: $form-group-margin-bottom; - - & > div[class*='col-'] { - display: flex; - align-items: center; - flex-wrap: wrap; - } - - & > [class*='col-'] { - padding-right: $form-group-gutter; - padding-left: $form-group-gutter; - } - - // Alignment content - div[class*='textBox'] > .control-label, - div[class*='textArea'] > .control-label, - div[class*='datePicker'] > .control-label { - @extend .form-control-static; - } - - // Label - .control-label { - overflow: hidden; - margin-bottom: 5px; - text-overflow: ellipsis; - color: $form-label-color; - font-size: $form-label-size; - font-weight: $form-label-weight; - } - - .mx-validation-message { - flex-basis: 100%; - } - - &.no-columns:not(.label-after) { - flex-direction: column; - } -} - -.form-group.label-after { - .form-control-static { - flex: unset; - } - - .control-label { - margin-bottom: 0; - } -} - -.mx-dateinput, -.mx-referenceselector, -.mx-referencesetselector { - flex: 1; -} - -// Targets only webkit iOS devices -.dj_webkit.dj_ios .form-control { - transform: translateZ(0); -} - -@media only screen and (min-width: $screen-md) { - .form-horizontal { - .control-label { - margin-bottom: 0; - padding-top: $form-input-padding-y; - padding-bottom: $form-input-padding-y; - line-height: $form-input-line-height; - } - } -} - -@media only screen and (max-width: $screen-sm-max) { - .form-group { - flex-direction: column; - } -} - -@media only screen and (max-device-width: 1024px) and (-webkit-min-device-pixel-ratio: 0) { - // Fixes alignment bug on iPads / iPhones where datefield is not aligned vertically - input[type='date'], - input[type='time'], - input[type='datetime-local'], - input[type='month'] { - line-height: 1; - } - // Fix shrinking of date inputs because inability of setting a placeholder - input[type='time']:not(.has-value):before, - input[type='date']:not(.has-value):before, - input[type='month']:not(.has-value):before, - input[type='datetime-local']:not(.has-value):before { - margin-right: 0.5em; - content: attr(placeholder) !important; - color: #AAAAAA; - } - input[type='time'].has-value:before, - input[type='date'].has-value:before, - input[type='month'].has-value:before, - input[type='datetime-local'].has-value:before { - content: '' !important; - } -} - -@media (-ms-high-contrast: none), (-ms-high-contrast: active) { - // Target IE10+ - .form-group { - display: block; - } -} - -[dir='rtl'] { - // Dropdown input widget - select.form-control { - padding-right: 30px; - padding-left: 0; - background-position: #{$form-input-padding-x} center; - } -} diff --git a/theme_old/styles/web/sass/core/widgets/_labels.scss b/theme_old/styles/web/sass/core/widgets/_labels.scss deleted file mode 100644 index 344ba06..0000000 --- a/theme_old/styles/web/sass/core/widgets/_labels.scss +++ /dev/null @@ -1,30 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Labels - - Default labels combined with Bootstrap labels -========================================================================== */ - -.label { - display: inline-block; - padding: 0.2em 0.6em 0.3em; - text-align: center; - vertical-align: baseline; - white-space: nowrap; - color: #ffffff; - border-radius: 0.25em; - font-size: 100%; - line-height: 1; - margin: 0; - - .form-control-static { - all: unset; - font-weight: $font-weight-normal; - } -} diff --git a/theme_old/styles/web/sass/core/widgets/_layoutgrid.scss b/theme_old/styles/web/sass/core/widgets/_layoutgrid.scss deleted file mode 100644 index 9dbb564..0000000 --- a/theme_old/styles/web/sass/core/widgets/_layoutgrid.scss +++ /dev/null @@ -1,948 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Layout Grid - - Default Bootstrap containers -========================================================================== */ -.mx-layoutgrid { - width: 100%; - margin-right: auto; - margin-left: auto; - padding-right: $gutter-size; - padding-left: $gutter-size; -} - -// Row -.row { - display: flex; - flex-wrap: wrap; - margin-right: -$gutter-size; - margin-left: -$gutter-size; - - &::before, - &::after { - content: normal; - } -} - -.no-gutters { - margin-right: 0; - margin-left: 0; -} - -.no-gutters > .col, -.no-gutters > [class*="col-"] { - padding-right: 0; - padding-left: 0; -} - -// Columns -.col-1, -.col-2, -.col-3, -.col-4, -.col-5, -.col-6, -.col-7, -.col-8, -.col-9, -.col-10, -.col-11, -.col-12, -.col, -.col-auto, -.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, -.col-sm, -.col-sm-auto, -.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, -.col-md, -.col-md-auto, -.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, -.col-lg, -.col-lg-auto, -.col-xl-1, -.col-xl-2, -.col-xl-3, -.col-xl-4, -.col-xl-5, -.col-xl-6, -.col-xl-7, -.col-xl-8, -.col-xl-9, -.col-xl-10, -.col-xl-11, -.col-xl-12, -.col-xl, -.col-xl-auto { - position: relative; - width: 100%; - padding-right: $gutter-size; - padding-left: $gutter-size; -} - -.col { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; -} - -.col-auto { - flex: 0 0 auto; - width: auto; - max-width: 100%; -} - -.col-1 { - flex: 0 0 8.333333%; - max-width: 8.333333%; -} - -.col-2 { - flex: 0 0 16.666667%; - max-width: 16.666667%; -} - -.col-3 { - flex: 0 0 25%; - max-width: 25%; -} - -.col-4 { - flex: 0 0 33.333333%; - max-width: 33.333333%; -} - -.col-5 { - flex: 0 0 41.666667%; - max-width: 41.666667%; -} - -.col-6 { - flex: 0 0 50%; - max-width: 50%; -} - -.col-7 { - flex: 0 0 58.333333%; - max-width: 58.333333%; -} - -.col-8 { - flex: 0 0 66.666667%; - max-width: 66.666667%; -} - -.col-9 { - flex: 0 0 75%; - max-width: 75%; -} - -.col-10 { - flex: 0 0 83.333333%; - max-width: 83.333333%; -} - -.col-11 { - flex: 0 0 91.666667%; - max-width: 91.666667%; -} - -.col-12 { - flex: 0 0 100%; - max-width: 100%; -} - -.order-first { - order: -1; -} - -.order-last { - order: 13; -} - -.order-0 { - order: 0; -} - -.order-1 { - order: 1; -} - -.order-2 { - order: 2; -} - -.order-3 { - order: 3; -} - -.order-4 { - order: 4; -} - -.order-5 { - order: 5; -} - -.order-6 { - order: 6; -} - -.order-7 { - order: 7; -} - -.order-8 { - order: 8; -} - -.order-9 { - order: 9; -} - -.order-10 { - order: 10; -} - -.order-11 { - order: 11; -} - -.order-12 { - order: 12; -} - -.offset-1, -.col-offset-1 { - margin-left: 8.333333%; -} - -.offset-2, -.col-offset-2 { - margin-left: 16.666667%; -} - -.offset-3, -.col-offset-3 { - margin-left: 25%; -} - -.offset-4, -.col-offset-4 { - margin-left: 33.333333%; -} - -.offset-5, -.col-offset-5 { - margin-left: 41.666667%; -} - -.offset-6, -.col-offset-6 { - margin-left: 50%; -} - -.offset-7, -.col-offset-7 { - margin-left: 58.333333%; -} - -.offset-8, -.col-offset-8 { - margin-left: 66.666667%; -} - -.offset-9, -.col-offset-9 { - margin-left: 75%; -} - -.offset-10, -.col-offset-10 { - margin-left: 83.333333%; -} - -.offset-11, -.col-offset-11 { - margin-left: 91.666667%; -} - -// Responsiveness -@media (min-width: $screen-sm) { - .mx-layoutgrid-fixed { - max-width: 540px; - } -} - -@media (min-width: $screen-md) { - .mx-layoutgrid-fixed { - max-width: 720px; - } -} - -@media (min-width: $screen-lg) { - .mx-layoutgrid-fixed { - max-width: 960px; - } -} - -@media (min-width: $screen-xl) { - .mx-layoutgrid-fixed { - max-width: 1140px; - } -} - -@media (min-width: $screen-sm) { - .col-sm { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; - } - .col-sm-auto { - flex: 0 0 auto; - width: auto; - max-width: 100%; - } - .col-sm-1 { - flex: 0 0 8.333333%; - max-width: 8.333333%; - } - .col-sm-2 { - flex: 0 0 16.666667%; - max-width: 16.666667%; - } - .col-sm-3 { - flex: 0 0 25%; - max-width: 25%; - } - .col-sm-4 { - flex: 0 0 33.333333%; - max-width: 33.333333%; - } - .col-sm-5 { - flex: 0 0 41.666667%; - max-width: 41.666667%; - } - .col-sm-6 { - flex: 0 0 50%; - max-width: 50%; - } - .col-sm-7 { - flex: 0 0 58.333333%; - max-width: 58.333333%; - } - .col-sm-8 { - flex: 0 0 66.666667%; - max-width: 66.666667%; - } - .col-sm-9 { - flex: 0 0 75%; - max-width: 75%; - } - .col-sm-10 { - flex: 0 0 83.333333%; - max-width: 83.333333%; - } - .col-sm-11 { - flex: 0 0 91.666667%; - max-width: 91.666667%; - } - .col-sm-12 { - flex: 0 0 100%; - max-width: 100%; - } - .order-sm-first { - order: -1; - } - .order-sm-last { - order: 13; - } - .order-sm-0 { - order: 0; - } - .order-sm-1 { - order: 1; - } - .order-sm-2 { - order: 2; - } - .order-sm-3 { - order: 3; - } - .order-sm-4 { - order: 4; - } - .order-sm-5 { - order: 5; - } - .order-sm-6 { - order: 6; - } - .order-sm-7 { - order: 7; - } - .order-sm-8 { - order: 8; - } - .order-sm-9 { - order: 9; - } - .order-sm-10 { - order: 10; - } - .order-sm-11 { - order: 11; - } - .order-sm-12 { - order: 12; - } - .offset-sm-0, - .col-sm-offset-0 { - margin-left: 0; - } - .offset-sm-1, - .col-sm-offset-1 { - margin-left: 8.333333%; - } - .offset-sm-2, - .col-sm-offset-2 { - margin-left: 16.666667%; - } - .offset-sm-3, - .col-sm-offset-3 { - margin-left: 25%; - } - .offset-sm-4, - .col-sm-offset-4 { - margin-left: 33.333333%; - } - .offset-sm-5, - .col-sm-offset-5 { - margin-left: 41.666667%; - } - .offset-sm-6, - .col-sm-offset-6 { - margin-left: 50%; - } - .offset-sm-7, - .col-sm-offset-7 { - margin-left: 58.333333%; - } - .offset-sm-8, - .col-sm-offset-8 { - margin-left: 66.666667%; - } - .offset-sm-9, - .col-sm-offset-9 { - margin-left: 75%; - } - .offset-sm-10, - .col-sm-offset-10 { - margin-left: 83.333333%; - } - .offset-sm-11, - .col-sm-offset-11 { - margin-left: 91.666667%; - } -} - -@media (min-width: $screen-md) { - .col-md { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; - } - .col-md-auto { - flex: 0 0 auto; - width: auto; - max-width: 100%; - } - .col-md-1 { - flex: 0 0 8.333333%; - max-width: 8.333333%; - } - .col-md-2 { - flex: 0 0 16.666667%; - max-width: 16.666667%; - } - .col-md-3 { - flex: 0 0 25%; - max-width: 25%; - } - .col-md-4 { - flex: 0 0 33.333333%; - max-width: 33.333333%; - } - .col-md-5 { - flex: 0 0 41.666667%; - max-width: 41.666667%; - } - .col-md-6 { - flex: 0 0 50%; - max-width: 50%; - } - .col-md-7 { - flex: 0 0 58.333333%; - max-width: 58.333333%; - } - .col-md-8 { - flex: 0 0 66.666667%; - max-width: 66.666667%; - } - .col-md-9 { - flex: 0 0 75%; - max-width: 75%; - } - .col-md-10 { - flex: 0 0 83.333333%; - max-width: 83.333333%; - } - .col-md-11 { - flex: 0 0 91.666667%; - max-width: 91.666667%; - } - .col-md-12 { - flex: 0 0 100%; - max-width: 100%; - } - .order-md-first { - order: -1; - } - .order-md-last { - order: 13; - } - .order-md-0 { - order: 0; - } - .order-md-1 { - order: 1; - } - .order-md-2 { - order: 2; - } - .order-md-3 { - order: 3; - } - .order-md-4 { - order: 4; - } - .order-md-5 { - order: 5; - } - .order-md-6 { - order: 6; - } - .order-md-7 { - order: 7; - } - .order-md-8 { - order: 8; - } - .order-md-9 { - order: 9; - } - .order-md-10 { - order: 10; - } - .order-md-11 { - order: 11; - } - .order-md-12 { - order: 12; - } - .offset-md-0, - .col-md-offset-0 { - margin-left: 0; - } - .offset-md-1, - .col-md-offset-1 { - margin-left: 8.333333%; - } - .offset-md-2, - .col-md-offset-2 { - margin-left: 16.666667%; - } - .offset-md-3, - .col-md-offset-3 { - margin-left: 25%; - } - .offset-md-4, - .col-md-offset-4 { - margin-left: 33.333333%; - } - .offset-md-5, - .col-md-offset-5 { - margin-left: 41.666667%; - } - .offset-md-6, - .col-md-offset-6 { - margin-left: 50%; - } - .offset-md-7, - .col-md-offset-7 { - margin-left: 58.333333%; - } - .offset-md-8, - .col-md-offset-8 { - margin-left: 66.666667%; - } - .offset-md-9, - .col-md-offset-9 { - margin-left: 75%; - } - .offset-md-10, - .col-md-offset-10 { - margin-left: 83.333333%; - } - .offset-md-11, - .col-md-offset-11 { - margin-left: 91.666667%; - } -} - -@media (min-width: $screen-lg) { - .col-lg { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; - } - .col-lg-auto { - flex: 0 0 auto; - width: auto; - max-width: 100%; - } - .col-lg-1 { - flex: 0 0 8.333333%; - max-width: 8.333333%; - } - .col-lg-2 { - flex: 0 0 16.666667%; - max-width: 16.666667%; - } - .col-lg-3 { - flex: 0 0 25%; - max-width: 25%; - } - .col-lg-4 { - flex: 0 0 33.333333%; - max-width: 33.333333%; - } - .col-lg-5 { - flex: 0 0 41.666667%; - max-width: 41.666667%; - } - .col-lg-6 { - flex: 0 0 50%; - max-width: 50%; - } - .col-lg-7 { - flex: 0 0 58.333333%; - max-width: 58.333333%; - } - .col-lg-8 { - flex: 0 0 66.666667%; - max-width: 66.666667%; - } - .col-lg-9 { - flex: 0 0 75%; - max-width: 75%; - } - .col-lg-10 { - flex: 0 0 83.333333%; - max-width: 83.333333%; - } - .col-lg-11 { - flex: 0 0 91.666667%; - max-width: 91.666667%; - } - .col-lg-12 { - flex: 0 0 100%; - max-width: 100%; - } - .order-lg-first { - order: -1; - } - .order-lg-last { - order: 13; - } - .order-lg-0 { - order: 0; - } - .order-lg-1 { - order: 1; - } - .order-lg-2 { - order: 2; - } - .order-lg-3 { - order: 3; - } - .order-lg-4 { - order: 4; - } - .order-lg-5 { - order: 5; - } - .order-lg-6 { - order: 6; - } - .order-lg-7 { - order: 7; - } - .order-lg-8 { - order: 8; - } - .order-lg-9 { - order: 9; - } - .order-lg-10 { - order: 10; - } - .order-lg-11 { - order: 11; - } - .order-lg-12 { - order: 12; - } - .offset-lg-0, - .col-lg-offset-0 { - margin-left: 0; - } - .offset-lg-1, - .col-lg-offset-1 { - margin-left: 8.333333%; - } - .offset-lg-2, - .col-lg-offset-2 { - margin-left: 16.666667%; - } - .offset-lg-3, - .col-lg-offset-3 { - margin-left: 25%; - } - .offset-lg-4, - .col-lg-offset-4 { - margin-left: 33.333333%; - } - .offset-lg-5, - .col-lg-offset-5 { - margin-left: 41.666667%; - } - .offset-lg-6, - .col-lg-offset-6 { - margin-left: 50%; - } - .offset-lg-7, - .col-lg-offset-7 { - margin-left: 58.333333%; - } - .offset-lg-8, - .col-lg-offset-8 { - margin-left: 66.666667%; - } - .offset-lg-9, - .col-lg-offset-9 { - margin-left: 75%; - } - .offset-lg-10, - .col-lg-offset-10 { - margin-left: 83.333333%; - } - .offset-lg-11, - .col-lg-offset-11 { - margin-left: 91.666667%; - } -} - -@media (min-width: $screen-xl) { - .col-xl { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; - } - .col-xl-auto { - flex: 0 0 auto; - width: auto; - max-width: 100%; - } - .col-xl-1 { - flex: 0 0 8.333333%; - max-width: 8.333333%; - } - .col-xl-2 { - flex: 0 0 16.666667%; - max-width: 16.666667%; - } - .col-xl-3 { - flex: 0 0 25%; - max-width: 25%; - } - .col-xl-4 { - flex: 0 0 33.333333%; - max-width: 33.333333%; - } - .col-xl-5 { - flex: 0 0 41.666667%; - max-width: 41.666667%; - } - .col-xl-6 { - flex: 0 0 50%; - max-width: 50%; - } - .col-xl-7 { - flex: 0 0 58.333333%; - max-width: 58.333333%; - } - .col-xl-8 { - flex: 0 0 66.666667%; - max-width: 66.666667%; - } - .col-xl-9 { - flex: 0 0 75%; - max-width: 75%; - } - .col-xl-10 { - flex: 0 0 83.333333%; - max-width: 83.333333%; - } - .col-xl-11 { - flex: 0 0 91.666667%; - max-width: 91.666667%; - } - .col-xl-12 { - flex: 0 0 100%; - max-width: 100%; - } - .order-xl-first { - order: -1; - } - .order-xl-last { - order: 13; - } - .order-xl-0 { - order: 0; - } - .order-xl-1 { - order: 1; - } - .order-xl-2 { - order: 2; - } - .order-xl-3 { - order: 3; - } - .order-xl-4 { - order: 4; - } - .order-xl-5 { - order: 5; - } - .order-xl-6 { - order: 6; - } - .order-xl-7 { - order: 7; - } - .order-xl-8 { - order: 8; - } - .order-xl-9 { - order: 9; - } - .order-xl-10 { - order: 10; - } - .order-xl-11 { - order: 11; - } - .order-xl-12 { - order: 12; - } - .offset-xl-0, - .col-xl-offset-0 { - margin-left: 0; - } - .offset-xl-1, - .col-xl-offset-1 { - margin-left: 8.333333%; - } - .offset-xl-2, - .col-xl-offset-2 { - margin-left: 16.666667%; - } - .offset-xl-3, - .col-xl-offset-3 { - margin-left: 25%; - } - .offset-xl-4, - .col-xl-offset-4 { - margin-left: 33.333333%; - } - .offset-xl-5, - .col-xl-offset-5 { - margin-left: 41.666667%; - } - .offset-xl-6, - .col-xl-offset-6 { - margin-left: 50%; - } - .offset-xl-7, - .col-xl-offset-7 { - margin-left: 58.333333%; - } - .offset-xl-8, - .col-xl-offset-8 { - margin-left: 66.666667%; - } - .offset-xl-9, - .col-xl-offset-9 { - margin-left: 75%; - } - .offset-xl-10, - .col-xl-offset-10 { - margin-left: 83.333333%; - } - .offset-xl-11, - .col-xl-offset-11 { - margin-left: 91.666667%; - } -} diff --git a/theme_old/styles/web/sass/core/widgets/_listview.scss b/theme_old/styles/web/sass/core/widgets/_listview.scss deleted file mode 100644 index 0a0d367..0000000 --- a/theme_old/styles/web/sass/core/widgets/_listview.scss +++ /dev/null @@ -1,102 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// -/* ========================================================================== - Listview - - Default Mendix Listview Widget. The list view shows a list of objects arranged vertically. Each object is shown using a template -========================================================================== */ -.mx-listview { - // Remove widget padding - padding: 0; - /* Clear search button (overrides load more button stying) */ - // Search bar - .mx-listview-searchbar { - margin-bottom: $gutter-size; - - .btn { - width: auto; - } - } - - /* Load more button */ - & > .btn { - width: 100%; - margin: 10px auto; - } - - & > ul { - margin: 0; - - .mx-listview-empty { - border-style: none; - background-color: transparent; - } - - & > li { - @include transition(); - padding: $listview-padding-top $listview-padding-right $listview-padding-bottom $listview-padding-left; - border-width: 1px 0 0 0; - border-style: solid; - border-color: $grid-border-color; - background-color: $grid-bg; - - &:first-child { - border-radius: 0; // Reset mxui listview style - } - - &:last-child { - border-bottom: 1px solid $grid-border-color; - border-radius: 0; // Reset mxui listview style - } - - &:focus, - &:active { - outline: 0; - background-color: $grid-bg-hover; - } - - &.selected { - background-color: $grid-bg-selected; - } - } - } - - .mx-layoutgrid { - padding-top: 0 !important; - padding-bottom: 0 !important; - } -} - -//== Phone specific -//-------------------------------------------------------------------------------------------------------------------// -.profile-phone .mx-listview { - .mx-listview-searchbar { - margin-bottom: 3px; - background: #FFFFFF; - box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.14); - - input { - padding: 14px 15px; - color: #555555; - border-style: none; - border-radius: 0; - box-shadow: none; - } - - .btn { - padding: 14px 15px; - color: inherit; - border-style: none; - } - } - - & > ul > li { - &:first-child { - border-top: none; - } - } -} diff --git a/theme_old/styles/web/sass/core/widgets/_modals.scss b/theme_old/styles/web/sass/core/widgets/_modals.scss deleted file mode 100644 index 4298f37..0000000 --- a/theme_old/styles/web/sass/core/widgets/_modals.scss +++ /dev/null @@ -1,123 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// -/* ========================================================================== - Modals - - Default Mendix Modals. Modals are streamlined, but flexible, dialog prompts with the minimum required functionality and smart defaults -========================================================================== */ -.modal-dialog { - .modal-content { - border: 1px solid $modal-header-border-color; - border-radius: 4px; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); - - .modal-header { - padding: 15px 20px; - border-bottom-color: $modal-header-border-color; - border-radius: 0; // Because of the class .mx-window-active in mxui.css - background-color: $modal-header-bg; - - h4 { - margin: 0; - color: $modal-header-color; - font-size: 16px; - font-weight: $font-weight-bold; - } - - .close { - margin-top: -3px; - opacity: 1; - /* For IE8 and earlier */ - color: $modal-header-color; - text-shadow: none; - filter: alpha(opacity=100); - } - } - - .modal-body { - padding: 20px; - } - - .modal-footer { - display: flex; - justify-content: flex-end; - margin-top: 0; - padding: 20px; - border-style: none; - } - } -} - -// Default Mendix Window Modal -.mx-window { - // If popup direct child is a dataview it gets the class mx-window-view - &.mx-window-view .mx-window-body { - overflow: hidden; // hide second scrollbar in edit page - padding: 0; - // Dataview in popup - > .mx-dataview > .mx-dataview-content, - > .mx-placeholder > .mx-dataview > .mx-dataview-content { - padding: 20px; - } - - > .mx-dataview > .mx-dataview-controls, - > .mx-placeholder > .mx-dataview > .mx-dataview-controls { - display: flex; - justify-content: flex-end; - margin: 0; - padding: 20px; - text-align: left; - border-top: 1px solid $modal-header-border-color; - } - } - - .mx-dataview-controls { - padding-bottom: 0; - } - - .mx-layoutgrid { - padding-right: 0; - padding-left: 0; - } -} - -// Login modal -.mx-login { - .modal-body { - padding: 0 15px; - } - - .modal-content { - input { - height: 56px; - padding: 12px 12px; - border: 1px solid #EEEEEE; - background: #EEEEEE; - box-shadow: none; - font-size: 16px; - - &:focus { - border-color: #66AFE9; - } - } - } - - .modal-header, - .modal-footer { - border: 0; - } - - button { - font-size: 16px; - } - - h4 { - color: #AAAAAA; - font-size: 20px; - font-weight: $font-weight-bold; - } -} diff --git a/theme_old/styles/web/sass/core/widgets/_navigationbar.scss b/theme_old/styles/web/sass/core/widgets/_navigationbar.scss deleted file mode 100644 index 7845cad..0000000 --- a/theme_old/styles/web/sass/core/widgets/_navigationbar.scss +++ /dev/null @@ -1,152 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Navigation - - Default Mendix Navigation Bar -========================================================================== */ -.mx-navbar { - margin: 0; - border-style: none; - border-radius: 0; - background-color: $navigation-bg; - - ul.nav { - margin: 0; // weird -margin if screen gets small (bootstrap) - - /* Navigation item */ - & > li.mx-navbar-item > a { - display: flex; - align-items: center; - min-height: $topbar-minimalheight; - padding: $navigation-item-padding; - vertical-align: middle; - color: $navigation-color; - border-radius: 0; - font-size: $navigation-font-size; - font-weight: $font-weight-normal; - - /* Dropdown arrow */ - .caret { - border-top-color: $navigation-color; - border-bottom-color: $navigation-color; - } - - &:hover, - &:focus, - &.active { - text-decoration: none; - color: $navigation-color-hover; - background-color: $navigation-bg-hover; - - .caret { - border-top-color: $navigation-color-active; - border-bottom-color: $navigation-color-active; - } - } - - &.active { - color: $navigation-color-active; - background-color: $navigation-bg-active; - } - - /* Dropdown */ - .mx-navbar-submenu::before { - position: absolute; - top: -9px; - left: 15px; - width: 0; - height: 0; - content: ''; - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - border-width: 0 9px 9px 9px; - border-style: solid; - border-color: transparent transparent $navigation-border-color transparent; - } - - // Image - img { - width: 20px; // Default size (so it looks good) - height: auto; - margin-right: 0.5em; - } - - .glyphicon { - top: 0; - margin-right: 0.5em; - vertical-align: middle; - font-size: $navigation-glyph-size; - } - } - - & > .mx-navbar-item.active a { - color: $navigation-color-active; - } - - /* When hovering or the dropdown is open */ - & > .mx-navbar-item > a:hover, - & > .mx-navbar-item > a:focus, - & > .mx-navbar-item.open > a, - & > .mx-navbar-item.open > a:hover, - & > .mx-navbar-item.open > a:focus { - text-decoration: none; - color: $navigation-color-hover; - background-color: $navigation-bg-hover; - - .caret { - border-top-color: $navigation-color-hover; - border-bottom-color: $navigation-color-hover; - } - } - - & > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem.active a { - color: $navigation-sub-color-active; - background-color: $navigation-sub-bg-active; - - .caret { - border-top-color: $navigation-sub-color-active; - border-bottom-color: $navigation-sub-color-active; - } - } - } - @media (max-width: $screen-md) { - ul.nav > li.mx-navbar-item > a { - padding: 10px 20px; - } - .mx-navbar-item.open .dropdown-menu { - padding: 0; - border-radius: 0; - background-color: $navigation-sub-bg; - - & > li.mx-navbar-subitem > a { - padding: 10px 20px; - color: $navigation-sub-color; - border-radius: 0; - font-size: $navigation-sub-font-size; - font-weight: $font-weight-normal; - - &:hover, - &:focus { - color: $navigation-sub-color-hover; - background-color: $navigation-sub-bg-hover; - } - - &.active { - color: $navigation-sub-color-active; - background-color: $navigation-sub-bg-active; - } - } - } - } - - /* remove focus */ - &:focus { - outline: 0; - } -} diff --git a/theme_old/styles/web/sass/core/widgets/_navigationlist.scss b/theme_old/styles/web/sass/core/widgets/_navigationlist.scss deleted file mode 100644 index 0b44c33..0000000 --- a/theme_old/styles/web/sass/core/widgets/_navigationlist.scss +++ /dev/null @@ -1,37 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// -/* ========================================================================== - Navigation List - - Default Mendix Navigation List Widget. A navigation list can be used to attach an action to an entire row. Such a row is called a navigation list item -========================================================================== */ -.mx-navigationlist { - margin: 0; - padding: 0; - list-style: none; - - li.mx-navigationlist-item { - @include transition(); - padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left; - border-width: 1px; - border-style: none none solid none; - border-color: $grid-border-color; - border-radius: 0; - background-color: $grid-bg; - - &:hover, - &:focus { - color: inherit; - background-color: $grid-bg-hover; - } - - &.active { - color: inherit; - background-color: $grid-bg-selected; - } - } -} diff --git a/theme_old/styles/web/sass/core/widgets/_navigationtree.scss b/theme_old/styles/web/sass/core/widgets/_navigationtree.scss deleted file mode 100644 index c5beb0e..0000000 --- a/theme_old/styles/web/sass/core/widgets/_navigationtree.scss +++ /dev/null @@ -1,111 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Navigation - - Default Mendix Navigation Tree -========================================================================== */ -.mx-navigationtree { - background-color: $navigation-bg; - - /* Every navigation item */ - .navbar-inner > ul { - margin: 0; - padding-left: 0; - & > li { - padding: 0; - border-style: none; - & > a { - display: flex; - align-items: center; - height: $navigation-item-height; - padding: $navigation-item-padding; - color: $navigation-color; - border-bottom: 1px solid $navigation-border-color; - border-radius: 0; - background-color: $navigation-bg; - text-shadow: none; - font-size: $navigation-font-size; - font-weight: $font-weight-normal; - .caret { - border-top-color: $navigation-color; - border-bottom-color: $navigation-color; - } - img { - width: 20px; // Default size - height: auto; - margin-right: 0.5em; - } - .glyphicon { - top: 0; - margin-right: 0.5em; - vertical-align: middle; - font-size: $navigation-glyph-size; - } - } - a:hover, - a:focus, - a.active { - text-decoration: none; - color: $navigation-color-hover; - background-color: $navigation-bg-hover; - .caret { - border-top-color: $navigation-color-active; - border-bottom-color: $navigation-color-active; - } - } - a.active { - color: $navigation-color-active; - border-left-color: $navigation-color-active; - background-color: $navigation-bg-active; - } - } - } - - /* Sub navigation item specific */ - li.mx-navigationtree-has-items { - & > ul { - margin: 0; - padding-left: 0; - background-color: $navigation-sub-bg; - li { - margin: 0; - padding: 0; - border: 0; - a { - padding: 12px 20px 12px 25px; - text-decoration: none; - color: $navigation-sub-color; - border: 0; - background-color: $navigation-sub-bg; - text-shadow: none; - font-size: $navigation-sub-font-size; - font-weight: $font-weight-normal; - - &:hover, - &:focus, - &.active { - color: $navigation-sub-color-hover; - outline: 0; - background-color: $navigation-sub-bg-hover; - } - &.active { - color: $navigation-sub-color-active; - border: 0; - background-color: $navigation-sub-bg-active; - } - } - } - } - } - - /* remove focus */ - &:focus { - outline: 0; - } -} diff --git a/theme_old/styles/web/sass/core/widgets/_popupmenu.scss b/theme_old/styles/web/sass/core/widgets/_popupmenu.scss deleted file mode 100644 index f286357..0000000 --- a/theme_old/styles/web/sass/core/widgets/_popupmenu.scss +++ /dev/null @@ -1,119 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Popup Menu - - Default Mendix Popup Menus -========================================================================== */ -.popupmenu { - position: relative; - display: inline-flex; -} - -.popupmenu-trigger { - cursor: pointer; -} - -.popupmenu-menu { - position: absolute; - z-index: 999; - display: none; - flex-direction: column; - width: max-content; - border-radius: 8px; - background-color: $bg-color; - box-shadow: 0 2px 20px 1px rgba(5, 15, 129, 0.05), 0 2px 16px 0 rgba(33, 43, 54, 0.08); - - &.popupmenu-position-left { - top: 0; - left: 0; - transform: translateX(-100%); - } - - &.popupmenu-position-right { - top: 0; - right: 0; - transform: translateX(100%); - } - - &.popupmenu-position-top { - top: 0; - transform: translateY(-100%); - } - - &.popupmenu-position-bottom { - bottom: 0; - transform: translateY(100%); - } - - .popupmenu-basic-item:first-child, - .popupmenu-custom-item:first-child { - border-top-left-radius: 8px; - border-top-right-radius: 8px; - } - - .popupmenu-basic-item:last-child, - .popupmenu-custom-item:last-child { - border-bottom-right-radius: 8px; - border-bottom-left-radius: 8px; - } -} - -.popupmenu-basic-divider { - width: 100%; - height: 1px; - background-color: $brand-default; -} - -.popupmenu-basic-item { - padding: 12px 16px; - color: $font-color-default; - font-size: 14px; - - &:hover, - &:focus, - &:active { - cursor: pointer; - border-color: $bg-color-secondary; - background-color: $bg-color-secondary; - } - - &-inverse { - color: $brand-inverse; - } - - &-primary { - color: $brand-primary; - } - - &-info { - color: $brand-info; - } - - &-success { - color: $brand-success; - } - - &-warning { - color: $brand-warning; - } - - &-danger { - color: $brand-danger; - } -} - -.popupmenu-custom-item { - &:hover, - &:focus, - &:active { - cursor: pointer; - border-color: $bg-color-secondary; - background-color: $bg-color-secondary; - } -} diff --git a/theme_old/styles/web/sass/core/widgets/_progress.scss b/theme_old/styles/web/sass/core/widgets/_progress.scss deleted file mode 100644 index bfdd31c..0000000 --- a/theme_old/styles/web/sass/core/widgets/_progress.scss +++ /dev/null @@ -1,64 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Progress - - Default Mendix Progress Widget. -========================================================================== */ - -.mx-progress { - color: $font-color-default; - background: $bg-color-secondary; - - .mx-progress-message { - color: $font-color-default; - } - - .mx-progress-indicator { - position: relative; - overflow: hidden; - width: 100%; - max-width: 100%; - height: 2px; - margin: auto; - padding: 0; - border-radius: 0; - background: $gray-lighter; - - &:before, - &:after { - position: absolute; - top: 0; - left: 0; - display: block; - width: 50%; - height: 2px; - content: ""; - transform: translate3d(-100%, 0, 0); - background: $brand-primary; - } - - &::before { - animation: loader 2s infinite; - } - - &::after { - animation: loader 2s -2s infinite; - } - } -} - - -@keyframes loader { - 0% { - transform: translate3d(-100%, 0, 0); - } - 100% { - transform: translate3d(200%, 0, 0); - } -} diff --git a/theme_old/styles/web/sass/core/widgets/_radiobuttons.scss b/theme_old/styles/web/sass/core/widgets/_radiobuttons.scss deleted file mode 100644 index 63d0b5b..0000000 --- a/theme_old/styles/web/sass/core/widgets/_radiobuttons.scss +++ /dev/null @@ -1,121 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// -/* ========================================================================== - Radio Buttons - - Default Mendix Radio Button Widget -========================================================================== */ -.mx-radiobuttons.inline .mx-radiogroup { - display: flex; - flex-direction: row; - - .radio { - margin: 0 20px 0 0; - } -} - -.mx-radiobuttons .radio:last-child { - margin-bottom: 0; -} - -.radio { - display: flex !important; // Remove after mxui merge - align-items: center; - margin-top: 0; -} - -input[type='radio'] { - position: relative !important; // Remove after mxui merge - width: 16px; - height: 16px; - margin: 0; - cursor: pointer; - -moz-user-select: none; - -ms-user-select: none; - -o-user-select: none; - -webkit-user-select: none; - user-select: none; - appearance: none; - -moz-appearance: none; - -webkit-appearance: none; - - &::-ms-check { - color: $form-input-border-color; - border-color: $form-input-border-color; - background-color: $form-input-bg; - } - - &:focus::-ms-check, - &:checked::-ms-check { - color: $form-input-border-focus-color; - border-color: $form-input-border-focus-color; - background-color: $form-input-bg-focus; - } - - &:before, - &:after { - position: absolute; - display: block; - transition: all 0.3s ease-in-out; - border-radius: 50%; - } - - &:before { - width: 100%; - height: 100%; - content: ''; - border: 1px solid $form-input-border-color; - background-color: transparent; - } - - &:after { - top: 50%; - left: 50%; - width: 50%; - height: 50%; - transform: translate(-50%, -50%); - pointer-events: none; - background-color: $form-input-border-focus-color; - } - - &:not(:checked):after { - transform: translate(-50%, -50%) scale(0); - opacity: 0; - } - - &:not(:disabled):not(:checked):hover:after { - background-color: $form-input-bg-hover; - } - - &:checked:after, - &:not(:disabled):not(:checked):hover:after { - content: ''; - transform: translate(-50%, -50%) scale(1); - opacity: 1; - } - - &:checked:before { - border-color: $form-input-border-focus-color; - background-color: $form-input-bg; - } - - &:disabled:before { - background-color: $form-input-bg-disabled; - } - - &:checked:disabled:before { - border-color: rgba($form-input-border-focus-color, 0.4); - } - - &:checked:disabled:after { - background-color: rgba($form-input-border-focus-color, 0.4); - } - - & + label { - margin-left: $form-label-gutter; - } -} diff --git a/theme_old/styles/web/sass/core/widgets/_simplemenubar.scss b/theme_old/styles/web/sass/core/widgets/_simplemenubar.scss deleted file mode 100644 index a7f11a5..0000000 --- a/theme_old/styles/web/sass/core/widgets/_simplemenubar.scss +++ /dev/null @@ -1,226 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// -/* ========================================================================== - Navigation - - Default Mendix Simple Menu Bar -========================================================================== */ -.mx-menubar { - padding: 0; - background-color: $navigation-bg; - - ul.mx-menubar-list { - display: flex; - width: 100%; - min-height: 50px; - - li.mx-menubar-item { - margin: 0; - - > a { - display: flex; - overflow: hidden; - align-items: center; - justify-content: center; - height: 100%; - padding: $navigation-item-padding; - white-space: nowrap; - color: $navigation-color; - border-radius: 0; - font-size: $navigation-font-size; - font-weight: $font-weight-normal; - - img { - margin-right: 0.5em; - } - - .glyphicon { - top: -1px; - margin-right: 0.5em; - vertical-align: middle; - font-size: $navigation-glyph-size; - } - } - - a:hover, - a:focus, - &:hover a, - &:focus a, - &.active a { - text-decoration: none; - color: $navigation-color-hover; - background-color: $navigation-bg-hover; - } - - &.active a { - color: $navigation-color-active; - background-color: $navigation-bg-active; - } - } - } - - /* remove focus */ - &:focus { - outline: 0; - } -} - -// Vertical variation specifics -.mx-menubar-vertical { - background-color: $navigation-bg; - - ul.mx-menubar-list { - display: flex; - - li.mx-menubar-item { - display: block; - - a { - border-bottom: 1px solid $navigation-border-color; - } - } - } -} - -// Horizontal variation specifics -.mx-menubar-horizontal { - box-shadow: 2px 0 4px 0 rgba(0, 0, 0, 0.14); - - ul.mx-menubar-list { - li.mx-menubar-item { - width: auto; - - a { - width: 100%; - } - } - } - - /* Two menu items */ - &.menubar-col-6 ul.mx-menubar-list li.mx-menubar-item { - width: 50%; - } - - /* Three menu items */ - &.menubar-col-4 ul.mx-menubar-list li.mx-menubar-item { - width: 33.33333333%; - } - - /* Four menu items */ - &.menubar-col-3 ul.mx-menubar-list li.mx-menubar-item { - width: 25%; - } - - /* Five menu items */ - &.menubar-col-2 ul.mx-menubar-list li.mx-menubar-item { - width: 20%; - } -} - -//== Regions -//## Behavior in the different regions -//-------------------------------------------------------------------------------------------------------------------// -// When used in topbar -.region-topbar { - .mx-menubar { - background-color: $navtopbar-bg; - - ul.mx-menubar-list { - li.mx-menubar-item { - a { - color: $navtopbar-color; - font-size: $navtopbar-font-size; - - .glyphicon { - font-size: $navtopbar-glyph-size; - } - } - - a:hover, - a:focus, - &:hover a, - &:focus a, - &.active a { - color: $navtopbar-color-hover; - background-color: $navtopbar-bg-hover; - } - - &.active a { - color: $navtopbar-color-active; - background-color: $navtopbar-bg-active; - } - } - } - } - - // Vertical variation specifics - .mx-menubar-vertical { - background-color: $navtopbar-bg; - - ul.mx-menubar-list { - li.mx-menubar-item { - a { - height: $navigation-item-height; - border-color: $navtopbar-border-color; - } - } - } - } -} - -// When used in sidebar -.region-sidebar { - .mx-menubar { - background-color: $navsidebar-bg; - - ul.mx-menubar-list { - li.mx-menubar-item { - a { - color: $navsidebar-color; - font-size: $navsidebar-font-size; - - .glyphicon { - font-size: $navsidebar-glyph-size; - } - } - - a:hover, - a:focus, - &:hover a, - &:focus a, - &.active a { - color: $navsidebar-color-hover; - background-color: $navsidebar-bg-hover; - } - - &.active a { - color: $navsidebar-color-active; - background-color: $navsidebar-bg-active; - } - } - } - } - - // Vertical variation specifics - .mx-menubar-vertical { - background-color: $navsidebar-bg; - - ul.mx-menubar-list { - li.mx-menubar-item { - a { - border-color: $navsidebar-border-color; - } - } - } - } -} - -@supports (padding-bottom: env(safe-area-inset-bottom)) { - .mx-menubar { - padding-bottom: env(safe-area-inset-bottom); - } -} \ No newline at end of file diff --git a/theme_old/styles/web/sass/core/widgets/_tabcontainer.scss b/theme_old/styles/web/sass/core/widgets/_tabcontainer.scss deleted file mode 100644 index f6933b5..0000000 --- a/theme_old/styles/web/sass/core/widgets/_tabcontainer.scss +++ /dev/null @@ -1,97 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Tab Container - - Default Mendix Tab Container Widget. Tab containers are used to show information categorized into multiple tab pages. - This can be very useful if the amount of information that has to be displayed is larger than the amount of space on the screen -========================================================================== */ - -.mx-tabcontainer { - .mx-tabcontainer-tabs { - margin-bottom: 20px; - border-color: $tabs-border-color; - & > li > a { - margin-right: 0; - -webkit-transition: all 0.2s ease-in-out; - -moz-transition: all 0.2s ease-in-out; - -o-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; - color: $tabs-color; - font-weight: $font-weight-normal; - &:hover, - &:focus { - background-color: $tabs-bg-hover; - } - } - & > li.active > a, - & > li.active > a:hover, - & > li.active > a:focus { - color: $tabs-color-active; - border: 1px solid $tabs-border-color; - border-bottom-color: transparent; - background-color: $tabs-bg; - } - } -} - -// Tab Styling Specific for mobile -.tab-mobile.mx-tabcontainer { - & > .mx-tabcontainer-tabs { - margin: 0; - text-align: center; - border-style: none; - background-color: $brand-primary; - li { - display: table-cell; - float: none; - width: 1%; - margin: 0; - text-align: center; - border-style: none; - border-radius: 0; - a { - padding: 15px; - text-transform: uppercase; - color: #FFFFFF; - border-width: 0 1px 0 0; - border-style: solid; - border-color: rgba(255, 255, 255, 0.3); - border-radius: 0; - font-size: 12px; - font-weight: $font-weight-normal; - &:hover, - &:focus { - background-color: inherit; - } - } - &:last-child a { - border-right: none; - } - &.active > a, - &.active > a:hover, - &.active > a:focus { - color: #FFFFFF; - border-style: none; - border-radius: 0; - background-color: mix($brand-primary, #000000, 80%); - } - } - } -} - -.mx-tabcontainer-badge { - margin-left: 8px; - border-radius: $font-size-small; - background-color: $label-primary-bg; - color: $label-primary-color; - font-size: $font-size-small; - font-weight: $font-weight-bold; - line-height: 1; - padding: 3px 7px; -} diff --git a/theme_old/styles/web/sass/core/widgets/_tables.scss b/theme_old/styles/web/sass/core/widgets/_tables.scss deleted file mode 100644 index 21c0c33..0000000 --- a/theme_old/styles/web/sass/core/widgets/_tables.scss +++ /dev/null @@ -1,79 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Tables - - Default Mendix Table Widget. Tables can be used to lend structure to a page. They contain a number of rows (tr) and columns, the intersection of which is called a cell (td). Each cell can contain widgets -========================================================================== */ - -th { - font-weight: $font-weight-bold; -} - -html body .mx-page table.mx-table { - th, - td { - &.nopadding { - padding: 0; - } - } -} - -table.mx-table { - > tbody { - /* Table row */ - > tr { - /* Table header */ - > th { - padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom $padding-table-cell-left;s - * { - color: $form-label-color; - font-weight: $font-weight-bold; - font-weight: $form-label-weight; - } - > label { - padding-top: 7px; - padding-bottom: 6px; // Aligns label in the middle if there is no input field next to it. - } - } - /* Table cells */ - > td { - padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom $padding-table-cell-left; - > div > label, - .mx-referenceselector-input-wrapper label { - padding-top: 7px; - padding-bottom: 6px; // Aligns label in the middle if there is no input field next to it. - } - } - } - } -} - -// Default Mendix Table Widget inside TemplateGrid -.mx-templategrid table.mx-table { - > tbody { - > tr { - > th, - > td { - padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom $padding-table-cell-left; - } - } - } -} - -// Default Mendix Table Widget inside Listview -.mx-list table.mx-table { - > tbody { - > tr { - > th, - > td { - padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom $padding-table-cell-left; - } - } - } -} diff --git a/theme_old/styles/web/sass/core/widgets/_templategrids.scss b/theme_old/styles/web/sass/core/widgets/_templategrids.scss deleted file mode 100644 index 35d6fce..0000000 --- a/theme_old/styles/web/sass/core/widgets/_templategrids.scss +++ /dev/null @@ -1,33 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Templategrid - - Default Mendix Templategrid Widget. The template grid shows a list of objects in a tile view. For example, a template grid can show a list of products. The template grid has a lot in common with the data grid. The main difference is that the objects are shown in templates (a sort of small data view) instead of rows -========================================================================== */ - -.mx-templategrid { - .mx-templategrid-content-wrapper { - table-layout: fixed; - } - .mx-templategrid-item { - padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left; - cursor: default; - background-color: $grid-bg; - &:hover { - background-color: transparent; - } - &.selected { - background-color: $grid-bg-selected !important; - } - } - .mx-layoutgrid { - padding-top: 0 !important; - padding-bottom: 0 !important; - } -} \ No newline at end of file diff --git a/theme_old/styles/web/sass/core/widgets/_timeline.scss b/theme_old/styles/web/sass/core/widgets/_timeline.scss deleted file mode 100644 index 638af7b..0000000 --- a/theme_old/styles/web/sass/core/widgets/_timeline.scss +++ /dev/null @@ -1,102 +0,0 @@ -.widget-timeline-date-header { - display: inline-block; - width: 110px; - overflow-wrap: break-word; - padding: 8px; - text-align: center; - border: 1px solid $timeline-border-color; - border-radius: 30px; -} - -.widget-timeline-events-wrapper { - display: flex; - flex: 1; - margin-left: 55px; - padding-top: 35px; - - ul { - padding: 0; - list-style: none; - margin-bottom: 0; - } -} - -.widget-timeline-title { - color: $timeline-color-header; - font-weight: 600; - margin: 0 0 10px 0; -} - -.widget-timeline-description { - color: $timeline-color-detail; -} - -.widget-timeline-event { - position: relative; - margin-left: $timeline-icon-size / 2; - padding-left: $spacing-large; - padding-bottom: 20px; - - &:not(:last-of-type) { - border-left: 1px solid $timeline-border-color; - } - - &.clickable { - cursor: pointer; - transition: background 0.8s; - - &:hover { - .widget-timeline-title { - color: #dadcde; - } - } - } -} - -.widget-timeline-icon-wrapper { - position: absolute; - top: 0; - left: 0; - display: flex; - justify-content: center; - align-items: center; - width: $timeline-icon-size; - height: $timeline-icon-size; - transform: translateX(-50%); - - .glyphicon { - font-size: $timeline-icon-size; - } - - img { - max-width: $timeline-icon-size; - max-height: $timeline-icon-size; - } -} - -.widget-timeline-content-wrapper { - .widget-timeline-date-time-wrapper { - margin-right: 15px; - } - - .widget-timeline-info-wrapper { - flex-direction: column; - } -} - -.widget-timeline-icon-circle { - width: 18px; - height: 18px; - border-radius: 50%; - background-color: $timeline-icon-color; -} - -.widget-timeline-no-divider { - padding-bottom: 0; - padding-top: 0; - margin-left: 0; -} - -.widget-timeline-flex-container { - display: flex; -} diff --git a/theme_old/styles/web/sass/core/widgets/_typography.scss b/theme_old/styles/web/sass/core/widgets/_typography.scss deleted file mode 100644 index 21fa8a0..0000000 --- a/theme_old/styles/web/sass/core/widgets/_typography.scss +++ /dev/null @@ -1,79 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Typography -========================================================================== */ - -p { - line-height: $line-height-base * 1.25; -} - -label { - padding-top: 0; -} - -.mx-title { - margin: $font-header-margin; - color: $font-color-header; - font-size: $font-size-h1; - font-weight: $font-weight-header; -} - -h1, -.h1, -.h1 > * { - font-size: $font-size-h1; -} - -h2, -.h2, -.h2 > * { - font-size: $font-size-h2; -} - -h3, -.h3, -.h3 > * { - font-size: $font-size-h3; -} - -h4, -.h4, -.h4 > * { - font-size: $font-size-h4; -} - -h5, -.h5, -.h5 > * { - font-size: $font-size-h5; -} - -h6, -.h6, -.h6 > * { - font-size: $font-size-h6; -} - -h1, -h2, -h3, -h4, -h5, -h6, -.h1, -.h2, -.h3, -.h4, -.h5, -.h6 { - margin: $font-header-margin; - color: $font-color-header; - font-weight: $font-weight-header; - line-height: 1.3; -} \ No newline at end of file diff --git a/theme_old/styles/web/sass/core/widgetscustom/_dijit-widgets.scss b/theme_old/styles/web/sass/core/widgetscustom/_dijit-widgets.scss deleted file mode 100644 index cf859c1..0000000 --- a/theme_old/styles/web/sass/core/widgetscustom/_dijit-widgets.scss +++ /dev/null @@ -1,184 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* -* Mendix Documentation -* Special styles for presenting components -*/ - -/* -* Dijit Widgets -* -* Default Dojo Dijit Widgets -*/ - -/* - * Dijit Tooltip Widget - * - * Default tooltip used for Mendix widgets - */ - -.mx-tooltip { - .dijitTooltipContainer { - border-width: 1px; - border-color: $gray-light; - border-radius: 4px; - background: #ffffff; - box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - .mx-tooltip-content { - padding: 10px; - } - .form-group { - margin-bottom: 5px; - } - } - .dijitTooltipConnector { - width: 0; - height: 0; - margin-left: -10px; - border-width: 10px 10px 10px 0; - border-style: solid; - border-color: transparent; - border-right-color: $gray-light; - } -} - -/* - * Dijit Border Container - * - * Used in Mendix as split pane containers - */ - -.dijitBorderContainer { - padding: 5px; - background-color: #fcfcfc; - .dijitSplitterV, - .dijitGutterV { - width: 5px; - border: 0; - background: #fcfcfc; - } - .dijitSplitterH, - .dijitGutterH { - height: 5px; - border: 0; - background: #fcfcfc; - } - .dijitSplitterH { - .dijitSplitterThumb { - top: 2px; - width: 19px; - height: 1px; - background: #b0b0b0; - } - } - .dijitSplitterV { - .dijitSplitterThumb { - left: 2px; - width: 1px; - height: 19px; - background: #b0b0b0; - } - } - .dijitSplitContainer-child, - .dijitBorderContainer-child { - border: 1px solid #cccccc; - } - .dijitBorderContainer-dijitTabContainerTop, - .dijitBorderContainer-dijitTabContainerBottom, - .dijitBorderContainer-dijitTabContainerLeft, - .dijitBorderContainer-dijitTabContainerRight { - border: none; - } - .dijitBorderContainer-dijitBorderContainer { - padding: 0; - border: none; - } - .dijitSplitterActive { - /* For IE8 and earlier */ - margin: 0; - opacity: 0.6; - background-color: #aaaaaa; - background-image: none; - font-size: 1px; - filter: alpha(opacity=60); - } - .dijitSplitContainer-dijitContentPane, - .dijitBorderContainer-dijitContentPane { - padding: 5px; - background-color: #ffffff; - } -} - -/* - * Dijit Menu Popup - * - * Used in datepickers and calendar widgets - */ - -.dijitMenuPopup { - margin-top: 10px; - .dijitMenu { - display: block; - width: 200px !important; - margin-top: 0; // No top margin because there is no parent with margin bottom - padding: 12px 10px; - border-radius: 3px; - background: $brand-inverse; - &:after { - position: absolute; - bottom: 100%; - left: 20px; - width: 0; - height: 0; - margin-left: -10px; - content: ' '; - pointer-events: none; - border: medium solid transparent; - border-width: 10px; - border-bottom-color: $brand-inverse; - } - // Menu item - .dijitMenuItem { - background: transparent; - .dijitMenuItemLabel { - display: block; - overflow: hidden; - width: 180px !important; - padding: 10px; - text-overflow: ellipsis; - color: #ffffff; - border-radius: 3px; - } - // Hover - &.dijitMenuItemHover { - background: none; - .dijitMenuItemLabel { - background: $brand-primary; - } - } - } - // New label - .tg_newlabelmenuitem { - .dijitMenuItemLabel { - font-weight: $font-weight-bold; - } - } - // Seperator - .dijitMenuSeparator { - td { - padding: 0; - border-bottom-width: 3px; - } - .dijitMenuSeparatorIconCell { - > div { - margin: 0; //override dijit styling - } - } - } - } -} diff --git a/theme_old/styles/web/sass/core/widgetscustom/_progress-bar-theme.scss b/theme_old/styles/web/sass/core/widgetscustom/_progress-bar-theme.scss deleted file mode 100644 index 7309a06..0000000 --- a/theme_old/styles/web/sass/core/widgetscustom/_progress-bar-theme.scss +++ /dev/null @@ -1,43 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* Based on https://github.com/mendixlabs/star-rating/blob/v1.1.1/src/ui/StarRating.scss */ -div.widget-progress-bar .progress-bar-default { - background-color: $brand-default; -} - -div.widget-progress-bar .progress-bar-primary { - background-color: $brand-primary; -} - -div.widget-progress-bar .progress-bar-success { - background-color: $brand-success; -} - -div.widget-progress-bar .progress-bar-info { - background-color: $brand-info; -} - -div.widget-progress-bar .progress-bar-warning { - background-color: $brand-warning; -} - -div.widget-progress-bar .progress-bar-danger { - background-color: $brand-danger; -} - -div.widget-progress-bar .progress-bar-inverse { - background-color: $brand-inverse; -} - -div.widget-progress-bar-alert.widget-progress-bar-text-contrast .progress-bar { - color: $color-danger-darker; -} - -div.widget-progress-bar-text-contrast .progress-bar { - color: $font-color-default; -} diff --git a/theme_old/styles/web/sass/core/widgetscustom/_progress-circle-theme.scss b/theme_old/styles/web/sass/core/widgetscustom/_progress-circle-theme.scss deleted file mode 100644 index 0c0b385..0000000 --- a/theme_old/styles/web/sass/core/widgetscustom/_progress-circle-theme.scss +++ /dev/null @@ -1,65 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* Based on https://github.com/mendixlabs/progress-circle/tree/master/src/ui/_progress-circle-theme.scss */ -path.widget-progress-circle-path { - stroke: $brand-primary; -} - -.widget-progress-circle-primary { - path.widget-progress-circle-path { - stroke: $brand-primary; - } - .progressbar-text { - color: $brand-primary !important; - } -} - -.widget-progress-circle-info { - path.widget-progress-circle-path { - stroke: $brand-info; - } - .progressbar-text { - color: $brand-info !important; - } -} - -.widget-progress-circle-success { - path.widget-progress-circle-path { - stroke: $brand-success; - } - .progressbar-text { - color: $brand-success !important; - } -} - -.widget-progress-circle-warning { - path.widget-progress-circle-path { - stroke: $brand-warning; - } - .progressbar-text { - color: $brand-warning !important; - } -} - -.widget-progress-circle-danger { - path.widget-progress-circle-path { - stroke: $brand-danger; - } - .progressbar-text { - color: $brand-danger !important; - } -} - -.widget-progress-circle-inverse { - path.widget-progress-circle-path { - stroke: $brand-inverse; - } - .progressbar-text { - color: $brand-inverse !important; - } -} diff --git a/theme_old/styles/web/sass/core/widgetscustom/_range-slider-theme.scss b/theme_old/styles/web/sass/core/widgetscustom/_range-slider-theme.scss deleted file mode 100644 index 0da429b..0000000 --- a/theme_old/styles/web/sass/core/widgetscustom/_range-slider-theme.scss +++ /dev/null @@ -1,59 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -// Based on https://github.com/mendixlabs/range-slider/tree/master/src/ui/_range-slider-theme.scss - -div.widget-range-slider { - .rc-slider-handle, - .rc-slider-dot-active { - border-color: $brand-default; - - &:active { - border-color: $brand-default; - box-shadow: none; - } - - &:hover { - border-color: $brand-default; - } - } - - &.has-error { - .rc-slider-track, - .rc-slider-rail { - background-color: $brand-danger; - } - } -} - -div.widget-range-slider-primary .rc-slider-track { - background-color: $brand-primary; -} - -div.widget-range-slider-info .rc-slider-track { - background-color: $brand-info; -} - -div.widget-range-slider-success .rc-slider-track { - background-color: $brand-success; -} - -div.widget-range-slider-warning .rc-slider-track { - background-color: $brand-warning; -} - -div.widget-range-slider-danger .rc-slider-track { - background-color: $brand-danger; -} - -div.widget-range-slider-inverse .rc-slider-track { - background-color: $brand-inverse; -} - -.rc-slider-tooltip { - z-index: 999; -} \ No newline at end of file diff --git a/theme_old/styles/web/sass/core/widgetscustom/_slider-theme.scss b/theme_old/styles/web/sass/core/widgetscustom/_slider-theme.scss deleted file mode 100644 index 951b79a..0000000 --- a/theme_old/styles/web/sass/core/widgetscustom/_slider-theme.scss +++ /dev/null @@ -1,52 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -// Based on https://github.com/mendixlabs/slider/tree/master/src/ui/_slider-theme.scss - -div.widget-slider { - .rc-slider-handle, - .rc-slider-dot-active { - border-color: $brand-default; - &:active { - border-color: $brand-default; - } - &:hover { - border-color: $brand-default; - } - } - - &.has-error { - .rc-slider-track, - .rc-slider-rail { - background-color: $brand-danger; - } - } -} - -div.widget-slider-primary .rc-slider-track { - background-color: $brand-primary; -} - -div.widget-slider-info .rc-slider-track { - background-color: $brand-info; -} - -div.widget-slider-success .rc-slider-track { - background-color: $brand-success; -} - -div.widget-slider-warning .rc-slider-track { - background-color: $brand-warning; -} - -div.widget-slider-danger .rc-slider-track { - background-color: $brand-danger; -} - -div.widget-slider-inverse .rc-slider-track { - background-color: $brand-inverse; -} diff --git a/theme_old/styles/web/sass/core/widgetscustom/_star-rating-theme.scss b/theme_old/styles/web/sass/core/widgetscustom/_star-rating-theme.scss deleted file mode 100644 index 91eeb86..0000000 --- a/theme_old/styles/web/sass/core/widgetscustom/_star-rating-theme.scss +++ /dev/null @@ -1,35 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* Based on https://github.com/mendixlabs/star-rating/blob/v1.1.1/src/ui/StarRating.scss */ -span.widget-star-rating-full-default { - color: $brand-default; -} - -span.widget-star-rating-full-primary { - color: $brand-primary; -} - -span.widget-star-rating-full-success { - color: $brand-success; -} - -span.widget-star-rating-full-info { - color: $brand-info; -} - -span.widget-star-rating-full-warning { - color: $brand-warning; -} - -span.widget-star-rating-full-danger { - color: $brand-danger; -} - -span.widget-star-rating-full-inverse { - color: $brand-inverse; -} diff --git a/theme_old/styles/web/sass/core/widgetscustom/_switchwidget.scss b/theme_old/styles/web/sass/core/widgetscustom/_switchwidget.scss deleted file mode 100644 index 14dd591..0000000 --- a/theme_old/styles/web/sass/core/widgetscustom/_switchwidget.scss +++ /dev/null @@ -1,157 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -$default-android-color: #6FBEB5; -$default-ios-color: rgb(100, 189, 99); - -@mixin bootstrap-style-ios($brand-style) { - border-color: $brand-style; - background-color: $brand-style; - box-shadow: $brand-style 0 0 0 16px inset; -} - -@mixin bootstrap-style-android($brand-style) { - background-color: lighten($brand-style, 10%); -} - -@mixin ios { - .widget-switch-btn-wrapper { - &.checked { - &.widget-switch-btn-wrapper-default { - @include bootstrap-style-ios($default-ios-color); - } - - &.widget-switch-btn-wrapper-success { - @include bootstrap-style-ios($brand-success); - } - - &.widget-switch-btn-wrapper-info { - @include bootstrap-style-ios($brand-info); - } - - &.widget-switch-btn-wrapper-primary { - @include bootstrap-style-ios($brand-primary); - } - - &.widget-switch-btn-wrapper-warning { - @include bootstrap-style-ios($brand-warning); - } - - &.widget-switch-btn-wrapper-danger { - @include bootstrap-style-ios($brand-danger); - } - - &.widget-switch-btn-wrapper-inverse { - @include bootstrap-style-ios($brand-inverse); - } - } - } -} - -@mixin android { - .widget-switch-btn-wrapper { - &.checked { - &.widget-switch-btn-wrapper-default { - @include bootstrap-style-android($default-android-color); - - .widget-switch-btn { - background: $default-android-color; - } - } - - &.widget-switch-btn-wrapper-success { - @include bootstrap-style-android($brand-success); - - .widget-switch-btn { - background: $brand-success; - } - } - - &.widget-switch-btn-wrapper-info { - @include bootstrap-style-android($brand-info); - - .widget-switch-btn { - background: $brand-info; - } - } - - &.widget-switch-btn-wrapper-primary { - @include bootstrap-style-android($brand-primary); - - .widget-switch-btn { - background: $brand-primary; - } - } - - &.widget-switch-btn-wrapper-warning { - @include bootstrap-style-android($brand-warning); - - .widget-switch-btn { - background: $brand-warning; - } - } - - &.widget-switch-btn-wrapper-danger { - @include bootstrap-style-android($brand-danger); - - .widget-switch-btn { - background: $brand-danger; - } - } - - &.widget-switch-btn-wrapper-inverse { - @include bootstrap-style-android($brand-inverse); - - .widget-switch-btn { - background: $brand-inverse; - } - } - } - } -} - -.widget-switch-btn-wrapper { - &:focus { - outline: 1px solid $brand-primary; - } -} - -div { - &.widget-switch { - &.iOS { - @include ios; - } - - &.android { - @include android; - } - - &.auto { - @include ios; - } - } -} - -html { - div { - &.dj_android { - .widget-switch { - &.auto { - @include android; - } - } - } - - &.dj_ios { - .widget-switch { - &.auto { - @include ios; - } - } - } - } -} diff --git a/theme_old/styles/web/sass/main.scss b/theme_old/styles/web/sass/main.scss deleted file mode 100644 index 53f45f9..0000000 --- a/theme_old/styles/web/sass/main.scss +++ /dev/null @@ -1,104 +0,0 @@ -// Utilities -@import 'core/_legacy/bootstrap/bootstrap'; -@import 'core/_legacy/bootstrap/bootstrap-rtl'; -@import 'core/_legacy/mxui'; - -// Custom variables -@import 'app/custom-variables'; - -//================================== CORE ==================================\\ - -// Default variables -@import 'core/variables'; - -// Base -@import 'core/base/mixins/animations'; -@import 'core/base/mixins/spacing'; -@import 'core/base/mixins/layout-spacing'; -@import 'core/base/mixins/buttons'; -@import 'core/base/mixins/groupbox'; -@import 'core/base/animation'; -@import 'core/base/flex'; -@import 'core/base/spacing'; -@import 'core/base/reset'; -@import 'core/base/base'; -@import 'core/base/login'; - -// Widgets -@import 'core/widgets/inputs'; -@import 'core/widgets/alerts'; -@import 'core/helpers/alerts'; -@import 'core/helpers/backgrounds'; -@import 'core/widgets/buttons'; -@import 'core/helpers/buttons'; -@import 'core/widgets/checkbox'; -@import 'core/widgets/grid'; -@import 'core/widgets/datagrids'; -@import 'core/helpers/datagrids'; -@import 'core/widgets/dataview'; -@import 'core/widgets/datepicker'; -@import 'core/widgets/header'; -@import 'core/widgets/glyphicons'; -@import 'core/widgets/groupbox'; -@import 'core/helpers/groupbox'; -@import 'core/helpers/images'; -@import 'core/widgets/labels'; -@import 'core/helpers/labels'; -@import 'core/widgets/listview'; -@import 'core/helpers/listview'; -@import 'core/widgets/modals'; -@import 'core/widgets/navigationbar'; -@import 'core/helpers/navigationbar'; -@import 'core/widgets/navigationlist'; -@import 'core/widgets/navigationtree'; -@import 'core/helpers/navigationtree'; -@import 'core/widgets/popupmenu'; -@import 'core/widgets/simplemenubar'; -@import 'core/helpers/simplemenubar'; -@import 'core/widgets/radiobuttons'; -@import 'core/widgets/tabcontainer'; -@import 'core/helpers/tabcontainer'; -@import 'core/widgets/tables'; -@import 'core/helpers/tables'; -@import 'core/widgets/templategrids'; -@import 'core/helpers/templategrids'; -@import 'core/widgets/typography'; -@import 'core/helpers/typography'; -@import 'core/widgets/layoutgrid'; -@import 'core/widgets/progress'; -@import 'core/widgets/timeline'; -@import 'core/helpers/helperclasses'; - -// Custom widgets -@import 'core/widgetscustom/dijit-widgets'; -@import 'core/widgetscustom/progress-bar-theme'; -@import 'core/widgetscustom/progress-circle-theme'; -@import 'core/widgetscustom/range-slider-theme'; -@import 'core/widgetscustom/slider-theme'; -@import 'core/widgetscustom/star-rating-theme'; -@import 'core/widgetscustom/switchwidget'; - -//================================= CUSTOM =================================\\ - -// Building blocks -@import 'ui_resources/atlas_ui_resources/buildingblocks/breadcrumb'; -@import 'ui_resources/atlas_ui_resources/buildingblocks/card'; -@import 'ui_resources/atlas_ui_resources/buildingblocks/chat'; -@import 'ui_resources/atlas_ui_resources/buildingblocks/controlgroup'; -@import 'ui_resources/atlas_ui_resources/buildingblocks/pageblocks'; -@import 'ui_resources/atlas_ui_resources/buildingblocks/pageheader'; -@import 'ui_resources/atlas_ui_resources/buildingblocks/heroheader'; -@import 'ui_resources/atlas_ui_resources/buildingblocks/formblock'; -@import 'ui_resources/atlas_ui_resources/buildingblocks/master-detail'; -@import 'ui_resources/atlas_ui_resources/buildingblocks/userprofile'; -@import 'ui_resources/atlas_ui_resources/buildingblocks/wizard'; -@import 'ui_resources/atlas_ui_resources/buildingblocks/timeline'; - -// Layouts -@import 'ui_resources/atlas_ui_resources/layouts/layout-atlas'; -@import 'ui_resources/atlas_ui_resources/layouts/layout-atlas-phone'; -@import 'ui_resources/atlas_ui_resources/layouts/layout-atlas-responsive'; -@import 'ui_resources/atlas_ui_resources/layouts/layout-atlas-tablet'; - -// Custom -@import 'app/custom'; diff --git a/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_breadcrumb.scss b/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_breadcrumb.scss deleted file mode 100644 index b5655be..0000000 --- a/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_breadcrumb.scss +++ /dev/null @@ -1,44 +0,0 @@ -/* ========================================================================== - Breadcrumbs - -========================================================================== */ -.breadcrumb { - //reset - margin: 0; - padding: 0; - border-radius: 0; - background-color: transparent; - font-size: $font-size-default; -} - -//== Elements -//-------------------------------------------------------------------------------------------------------------------// -.breadcrumb-item { - display: inline-block; - margin: 0; - &:last-child { - color: $font-color-default; - a { - text-decoration: none; - } - } -} -.breadcrumb-item + .breadcrumb-item { - &::before { - display: inline-block; - padding-right: 10px; - padding-left: 10px; - content: "/"; - color: $gray-light; - } -} - -//== Variations -//-------------------------------------------------------------------------------------------------------------------// -.breadcrumb-large { - font-size: $font-size-h3; -} -.breadcrumb-underline { - padding-bottom: $gutter-size; - border-bottom: 1px solid $border-color-default; -} diff --git a/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_card.scss b/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_card.scss deleted file mode 100644 index ddfc68d..0000000 --- a/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_card.scss +++ /dev/null @@ -1,337 +0,0 @@ -/* ========================================================================== - Cards - -========================================================================== */ -.card { - padding: 30px; - border: 1px solid $border-color-default; - border-radius: $border-radius-default; - background-color: #FFFFFF; -} - -//== Elements -//-------------------------------------------------------------------------------------------------------------------// -.card-title { - margin-top: 0; -} - -//== Variations -//-------------------------------------------------------------------------------------------------------------------// -.cardaction { - .card-image { - .glyphicon { - font-size: 58px; - } - } -} - -.cardmetrics { - .card-title { - margin-bottom: 0; - } - - .figurecontent { - } - - .card-image { - width: 100px; - height: auto; - // If btn - &.btn { - width: 100px; - height: 100px; - padding: 0; - cursor: default; - pointer-events: none; - font-size: 40px; - } - } - - .card-counter { - margin: 0; - font-size: 64px; - } - - .card-morebutton { - } -} - -.cardinfo { - .card-text { - margin-bottom: $spacing-large; - } -} - -// Used in card info -.textwithicon { - overflow: hidden; - max-width: 100%; - margin-bottom: 15px; - text-overflow: ellipsis; - - .textwithicon-icon, - .textwithicon-text { - display: inline-block; - vertical-align: middle; - } - - .textwithicon-icon { - margin-right: 15px; - padding: 0; - color: $brand-primary; // class .text-primary - border: 0; - background: transparent; - font-size: 23px; - } - - .textwithicon-text { - } -} - -// Used in card info -.socialprofiles { - .socialprofiles-title { - display: block; - margin-bottom: 10px; - font-weight: bold; // class text-bold - } - - .socialprofiles-button { - width: 24px; - height: 24px; - margin-right: 15px; - padding: 0; - border-radius: 24px; - - .glyphicon { - margin: 0; - } - } -} - - -.cardtabs { - padding: 0; -} - -.cardtabs-tabs { - margin: 0; - - ul.mx-tabcontainer-tabs { - display: flex; - margin: 0; - background-color: mix($tabs-border-color, #FFFFFF, 20%); - - li { - flex: 1 1 auto; - text-align: center; - - a, - a:hover, - a:focus { - border-top-width: 0; - border-right-width: 1px; - border-left-width: 0; - } - - &:first-child a { - border-radius: $border-radius-default 0 0 0; - } - - &:last-child a { - border-radius: 0 $border-radius-default 0 0; - } - } - } - - .mx-tabcontainer-pane { - @include get-responsive-spacing-large($type: padding, $direction: all); - } -} - -.carduser { - .card-controls { - } - - .card-title { - } - - .card-detail { - } -} - -.cardgraph { - .card-title { - } -} - -.cardchart { - .card-title { - } -} - -.cardproduct { - padding: 0; - -} - -.cardproduct-header { - position: relative; - overflow: hidden; - height: 200px; - - .card-image { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: auto; - } - -} - -.cardproduct-overlay { - position: absolute; - bottom: 0; - left: 0; - width: 100%; - padding: 20px 30px; - background: rgba(0, 0, 0, 0.60); - -} - -.cardproduct-overlay-category, -.cardproduct-overlay-title { - margin: 0; - color: #FFFFFF; -} - -.cardproduct-footer .col { - padding: 20px 30px; - - .widget-star-rating-font { - font-size: 20px; - } -} - -.cardproduct-name { - margin: 0; -} - -.cardproduct-btn { - display: flex; - align-items: center; - height: 100%; - padding: 30px; - border-left: 1px solid $border-color-default; -} - -.cardproduct2 { - @extend .cardproduct; - - .cardproduct-header { - &::after { - position: absolute; - bottom: 0; - left: 0; - display: block; - width: 100%; - padding: 20px 30px; - content: ""; - background: rgba(0, 0, 0, 0.60); - background: -moz-linear-gradient(top, rgba(255, 255, 255, 0) 0%, rgba(250, 250, 250, 0) 2%, rgba(0, 0, 0, 0.99) 99%, rgba(0, 0, 0, 1) 100%); - background: -webkit-linear-gradient(top, rgba(255, 255, 255, 0) 0%, rgba(250, 250, 250, 0) 2%, rgba(0, 0, 0, 0.99) 99%, rgba(0, 0, 0, 1) 100%); - background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(250, 250, 250, 0) 2%, rgba(0, 0, 0, 0.99) 99%, rgba(0, 0, 0, 1) 100%); - } - } -} - - -.cardproduct3 { - @extend .cardproduct; - - .cardproduct-header { - height: 320px; - - img { - width: 100%; - height: 100%; - object-fit: cover; - } - - } - - .cardproduct-overlay { - min-height: 100px; - padding: 30px; - background: -moz-linear-gradient(top, rgba(255, 255, 255, 0) 0%, rgba(250, 250, 250, 0) 8%, rgba(0, 0, 0, 0.99) 121%, rgba(0, 0, 0, 1) 100%); - background: -webkit-linear-gradient(top, rgba(255, 255, 255, 0) 0%, rgba(250, 250, 250, 0) 8%, rgba(0, 0, 0, 0.99) 121%, rgba(0, 0, 0, 1) 100%); - background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(250, 250, 250, 0) 8%, rgba(0, 0, 0, 0.99) 121%, rgba(0, 0, 0, 1) 100%); - font-size: $font-size-default; - } -} - -.cardshopping { -} - -.carduserlist { -} - -.cardstatus { - padding: 20px; - - .card-linkicon { - font-size: 30px; - } - - .cardstatus-status { - margin-bottom: 5px; - } -} - -.cardpayment { -} - -.cardprogress { -} - -.cardprogress-state { - width: 80px; - height: 80px; - padding: 0; - cursor: default; - pointer-events: none; - border-radius: 100%; - font-size: 28px; -} - -.cardhighlight { - border-top: 4px solid $brand-primary; -} - -.cardchat { - overflow: hidden; - padding: 0; - - .chat { - height: 400px; - } -} - -@media screen and (max-width: $screen-md-max) { - .widget-charts:not([height]), - .widget-charts-line:not([height]) { - padding-bottom: 80% !important; - } -} - - -@media screen and (max-width: $screen-lg-max) { - .cardprogress { - .cardprogress-state { - width: 60px; - height: 60px; - font-size: 24px; - } - } -} diff --git a/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_chat.scss b/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_chat.scss deleted file mode 100644 index 4dba229..0000000 --- a/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_chat.scss +++ /dev/null @@ -1,148 +0,0 @@ -/* ========================================================================== - Chats - -========================================================================== */ -.chat { - display: flex; - flex-direction: column; - height: 100%; - background-color: $bg-color-secondary; -} - -//== Elements -//-------------------------------------------------------------------------------------------------------------------// -.chat-content { - display: flex; - overflow: auto; - flex: 1; - flex-direction: column; - justify-content: flex-end; - - .chat-list { - position: relative; - overflow: auto; - - ul { - display: flex; - flex-direction: column-reverse; - margin-bottom: $m-spacing-large; - } - - li { - padding: 15px 30px; - animation: fadeIn 0.2s; - background-color: transparent; - animation-fill-mode: both; - - &, - &:last-child { - border: 0; - } - } - - .mx-listview-loadMore { - position: absolute; - top: 0; - right: 0; - left: 0; - display: block; - width: 50%; - margin: 15px auto; - color: #FFFFFF; - background-color: $brand-primary; - box-shadow: 0 2px 20px 0 rgba(0, 0, 0, 0.05); - } - } -} - - -.chat-message { - display: flex; -} - -.chat-avatar { - margin: 0 20px 0 0; - border-radius: 50%; -} - -.chat-message-content { - display: inline-flex; - flex-direction: column; -} - -.chat-message-balloon { - position: relative; - display: flex; - flex-direction: column; - padding: 10px 15px; - border-radius: 5px; - background-color: $bg-color; - - &::after { - position: absolute; - top: 10px; - right: 100%; - width: 0; - height: 0; - content: ''; - border: 10px solid transparent; - border-top: 0; - border-right-color: $bg-color; - border-left: 0; - } -} - -.chat-message-time { - padding-top: 2px; - - .form-control-static { - border: 0; - } -} - -.chat-footer { - z-index: 1; - padding: $m-spacing-large; - background-color: $bg-color; - box-shadow: 0 2px 20px 0 rgba(0, 0, 0, 0.05); -} - -.chat-input { - display: flex; - - .chat-textbox { - flex: 1; - margin-right: $spacing-large; - margin-bottom: 0; - - .form-control { - border: 0; - } - } -} - -//== Variations -//-------------------------------------------------------------------------------------------------------------------// -.chat-message-self { - justify-content: flex-end; - - .chat-avatar { - margin: 0 0 0 20px; - } - - .chat-message-balloon { - background-color: $color-primary-lighter; - - &::after { - left: 100%; - border: 10px solid transparent; - border-top: 0; - border-right: 0; - border-left-color: $color-primary-lighter; - } - } - - .chat-message-time { - text-align: right; - } -} diff --git a/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_controlgroup.scss b/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_controlgroup.scss deleted file mode 100644 index 9ce1f84..0000000 --- a/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_controlgroup.scss +++ /dev/null @@ -1,25 +0,0 @@ -/* ========================================================================== - Control Group - - A group of buttons next to eachother -========================================================================== */ -.controlgroup { - .btn, - .btn-group { - margin-right: $spacing-small; - margin-bottom: $spacing-small; - - &:last-child { - margin-right: 0; - } - .btn { - margin-right: 0; - margin-bottom: 0; - } - } - .btn-group { - .btn + .btn { - margin-left: -1px; - } - } -} diff --git a/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_formblock.scss b/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_formblock.scss deleted file mode 100644 index 9ecfc2f..0000000 --- a/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_formblock.scss +++ /dev/null @@ -1,15 +0,0 @@ -/* ========================================================================== - Form Block - - Used in default forms -========================================================================== */ -.formblock { -} - -//== Elements -//-------------------------------------------------------------------------------------------------------------------// -.formblock-title { - margin-bottom: $gutter-size; - padding-bottom: $gutter-size; - border-bottom: 1px solid $border-color-default; -} diff --git a/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_heroheader.scss b/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_heroheader.scss deleted file mode 100644 index f00c387..0000000 --- a/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_heroheader.scss +++ /dev/null @@ -1,99 +0,0 @@ -/* ========================================================================== - Pageheader - -========================================================================== */ -.heroheader { - border-bottom: 1px solid $border-color-default; - background: $header-bg-color; -} - -//== Elements -//-------------------------------------------------------------------------------------------------------------------// -.heroheader-title { - margin: 0 0 10px 0; -} - -.heroheader-subtitle { - margin: 0; - padding: 0 15px; - - &::before { - display: block; - max-width: 330px; - height: 1px; - margin: auto auto 10px auto; - content: ""; - background-color: lighten($border-color-default, 4); - } -} - -//== Variations -//-------------------------------------------------------------------------------------------------------------------// -.heroheader1 { - background-image: $brand-gradient; - - .heroheader-title { - margin-bottom: 10px; - color: #FFFFFF; - } - - .heroheader-subtitle { - padding: 0; - color: #FFFFFF; - - &::before { - display: none; - } - } -} - -.heroheadermap { - padding: 0 !important; -} - -.heroheadermap-controls { - padding: $spacing-large; - background: $header-bg-color; -} - -.heroheaderproduct { - position: relative; - overflow: hidden; - height: 300px; - background-color: #000000; - - .heroheaderproduct-backgroundimage { - position: absolute; - z-index: 0; - top: 0; - width: 100%; - opacity: 0.7; - filter: blur(5px); - } - - .heroheaderproduct-overlay { - position: absolute; - z-index: 1; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - } -} - -.heroheaderexpense { - .heroheaderexpense-title { - font-size: 72px; - } - - .heroheaderexpense-type { - align-items: center; - - &::before { - flex-grow: 1; - height: 1px; - margin-right: 10px; - content: ""; - background-color: #D2D2D2; - } - } -} diff --git a/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_master-detail.scss b/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_master-detail.scss deleted file mode 100644 index 2422239..0000000 --- a/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_master-detail.scss +++ /dev/null @@ -1,46 +0,0 @@ -/* ========================================================================== - Master Detail - - A list with a listening dataview -========================================================================== */ -.masterdetail { - .masterdetail-master { - .controlgroup { - margin-bottom: $gutter-size; - } - - @media (max-width: $screen-lg) { - @include layout-spacing($type: margin, $direction: bottom, $device: responsive); - } - - @media (min-width: $screen-lg) { - border-right: 1px solid $border-color-default; - - .mx-listview-searchbar { - margin: $gutter-size; - } - .controlgroup { - padding: $gutter-size; - border-bottom: 1px solid $border-color-default; - } - } - } - - .masterdetail-detail { - @media (min-width: $screen-lg) { - @include layout-spacing($type: padding, $direction: all, $device: responsive); - } - } -} - -//== Variations -//-------------------------------------------------------------------------------------------------------------------// -.masterdetailvertical { - .masterdetail-master { - @include layout-spacing($type: margin, $direction: bottom, $device: responsive); - } - - .masterdetail-detail { - @include layout-spacing($type: padding, $direction: top, $device: responsive); - } -} diff --git a/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_pageblocks.scss b/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_pageblocks.scss deleted file mode 100644 index a1bfd9a..0000000 --- a/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_pageblocks.scss +++ /dev/null @@ -1,28 +0,0 @@ -/* ========================================================================== - Full page blocks - - Blocks that take up the full width and height -========================================================================== */ - -.fullpageblock { - position: relative; - height: 100%; - min-height: 100%; - - // Helper to make it fullheight - .fullheight { - height: 100% !important; - - & > .mx-dataview-content { - height: inherit !important; - } - } - - .fullpage-overlay { - position: absolute; - z-index: 10; - bottom: 0; - left: 0; - width: 100%; - } -} diff --git a/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_pageheader.scss b/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_pageheader.scss deleted file mode 100644 index 3425161..0000000 --- a/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_pageheader.scss +++ /dev/null @@ -1,59 +0,0 @@ -/* ========================================================================== - Pageheader -========================================================================== */ - -//== Default -//-------------------------------------------------------------------------------------------------------------------// -.pageheader { - border-bottom: 1px solid $border-color-default; - background: $header-bg-color; -} - -// Check if it is part of a inner layoutgrid -.mx-scrollcontainer .mx-placeholder .mx-layoutgrid .pageheader { - @include get-responsive-spacing-large($type: margin, $direction: bottom); - @include get-responsive-spacing-large($type: padding, $direction: bottom); - background: transparent; -} - -//== Elements -//-------------------------------------------------------------------------------------------------------------------// -.pageheader-type { - margin: 0; -} - -.pageheader-title { - margin: 0; -} - -.pageheader-subtitle { - margin: 0; -} - -//== Variations -//-------------------------------------------------------------------------------------------------------------------// -.pageheaderwithcontrols { - .controlgroup { - } -} - -.pageheaderwithimage { - .pageheader-image { - } - .figurecontent { - } -} - -.pageheaderwithimageandcontrols { -} - -.pageheaderwithsearch { - .pageheader-title { - margin-bottom: 1em; - } -} - -.pageheaderwithbreadcrumb { - .breadcrumb { - } -} diff --git a/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_timeline.scss b/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_timeline.scss deleted file mode 100644 index 63f4d65..0000000 --- a/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_timeline.scss +++ /dev/null @@ -1,46 +0,0 @@ -// Timeline -.timeline { - .timeline-header { - display: inline-block; - width: 110px; - padding: 8px; - text-align: center; - border: 1px solid $border-color-default; - border-radius: 30px; - } -} -.timeline-itemwrapper.mx-listview { - margin-bottom: 0; - margin-left: 55px; - padding: $spacing-large 0; - border-left: 1px solid $border-color-default; - & > ul > li { - position: relative; - padding-left: ($gutter-size * 2); - - &::before { - position: absolute; - top: 5px; - left: -5px; - display: block; - width: 10px; - height: 10px; - content: ''; - border-radius: 50%; - background-color: $brand-primary; - } - } - li + li { - margin-top: $spacing-large; - } -} - -//== Variations -//-------------------------------------------------------------------------------------------------------------------// -.timeline2 { - .timeline-itemwrapper.mx-listview { - & > ul > li { - padding-left: $gutter-size; - } - } -} diff --git a/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_userprofile.scss b/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_userprofile.scss deleted file mode 100644 index c4544a9..0000000 --- a/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_userprofile.scss +++ /dev/null @@ -1,12 +0,0 @@ -/* ========================================================================== - User profile blocks - - -========================================================================== */ -.userprofile { - .userprofile-img { - } - .userprofile-title { - } - .userprofile-subtitle { - } -} \ No newline at end of file diff --git a/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_wizard.scss b/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_wizard.scss deleted file mode 100644 index 37df48d..0000000 --- a/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_wizard.scss +++ /dev/null @@ -1,137 +0,0 @@ -$wizard-step-number-size: 60px; -$wizard-step-height: 50px; - -.wizard { - display: flex; - justify-content: space-between; - .wizard-step { - position: relative; - width: 100%; - text-align: center; - &::before { - position: absolute; - z-index: -1; - top: $wizard-step-number-size / 2; - display: block; - width: 100%; - height: 2px; - content: ""; - background-color: $border-color-default; - } - .wizard-step-number { - width: $wizard-step-number-size; - height: $wizard-step-number-size; - border-color: $border-color-default; - border-radius: 50%; - background-color: #FFFFFF; - font-size: 20px; - } - .wizard-step-text { - display: block; - margin-top: 15px; - } - } - - - // States - .wizard-step-active { - .wizard-step-number { - color: #FFFFFF; - border-color: $brand-primary; - background-color: $brand-primary; - } - .wizard-step-text { - color: $brand-primary; - } - } - .wizard-step-visited { - .wizard-step-number { - color: #FFFFFF; - border-color: $brand-success; - background-color: $brand-success; - } - .wizard-step-text { - } - } -} - -.wizardprogress { - display: flex; - justify-content: space-between; - - .wizard-step-text { - width: 100%; - } - - .wizard-step { - position: relative; - width: 100%; - height: $wizard-step-height; - margin-left: 0 - ($wizard-step-height / 2); - padding-left: ($wizard-step-height / 2); - border: 1px solid $border-color-default; - background: #FFFFFF; - - a { - display: block; - overflow: hidden; - width: 100%; - height: 100%; - padding: 14px; - white-space: nowrap; - text-decoration: none; - text-overflow: ellipsis; - color: $font-color-default; - } - &::before, - &::after { - position: absolute; - z-index: 1; - left: 100%; - margin-left: 0 - ($wizard-step-height / 2); - content: " "; - border-style: solid; - border-color: transparent; - } - &::after { - top: 1px; - border-width: (($wizard-step-height / 2) - 1); - border-left-color: #FFFFFF; - } - &::before { - top: 0; - border-width: $wizard-step-height / 2; - border-left-color: $border-color-default; - } - - &:first-child { - margin-left: 0; - padding-left: 0; - border-radius: 5px 0 0 5px; - } - - &:last-child { - border-radius: 0 5px 5px 0; - &::before, - &::after { - display: none; - } - } - } - // States - .wizard-step-active { - background: $brand-primary; - a { - text-decoration: none; - color: #FFFFFF; - } - &::after { - border-left-color: $brand-primary; - } - } - .wizard-step-visited { - a { - color: $link-color; - } - } -} diff --git a/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/layouts/_layout-atlas-phone.scss b/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/layouts/_layout-atlas-phone.scss deleted file mode 100644 index f9d6e9d..0000000 --- a/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/layouts/_layout-atlas-phone.scss +++ /dev/null @@ -1,16 +0,0 @@ -/* ========================================================================== - Atlas layout - - Extra styling for phone layouts -========================================================================== */ -.layout-atlas-phone { - .region-topbar { - min-height: $m-header-height; - border-style: none; - background-color: $m-header-bg; - - &::before { - display: none; - } - } -} diff --git a/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/layouts/_layout-atlas-responsive.scss b/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/layouts/_layout-atlas-responsive.scss deleted file mode 100644 index cc0f4c7..0000000 --- a/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/layouts/_layout-atlas-responsive.scss +++ /dev/null @@ -1,154 +0,0 @@ -/* ========================================================================== - Atlas layout - - Extra styling for responsive layouts -========================================================================== */ -.layout-atlas-responsive-default { - $sidebar-width: 60px; - - @media (min-width: $screen-md) { - .mx-scrollcontainer:not(.mx-scrollcontainer-open) > .region-sidebar { - width: $sidebar-width !important; - - .mx-scrollcontainer-wrapper > .mx-navigationtree ul li { - &.mx-navigationtree-has-items:hover { - a { - background-color: $navsidebar-sub-bg; - } - - ul { - position: absolute; - z-index: 100; - top: 0; - bottom: 0; - left: $sidebar-width; - display: block; - overflow-y: auto; - min-width: 200px; - padding-top: 10px; - } - } - - &.mx-navigationtree-collapsed, - &.mx-navigationtree-has-items { - ul { - display: none; - } - } - } - } - } - - - .mx-scrollcontainer-slide { - - &.mx-scrollcontainer-open > .region-sidebar { - width: $sidebar-width !important; - } - } - - // Push aside for mobile - @media (max-width: $screen-sm-max) { - .mx-scrollcontainer-open:not(.mx-scrollcontainer-slide) { - width: 1100px; - } - - .mx-scrollcontainer-slide .toggle-btn { - display: inline-block !important; - } - } - - // Sidebar - .region-sidebar { - .toggle-btn { - width: $sidebar-width; - height: 60px; - border-color: transparent; - border-radius: 0; - background: transparent; - } - - .mx-scrollcontainer-wrapper > .mx-navigationtree { - .navbar-inner > ul > li { - & > a { - height: $sidebar-width; - // Glyph icon - .glyphicon { - display: flex; - align-items: center; - justify-content: center; - width: 40px; - height: 40px; - margin-left: -5px; - padding: 10px; - border-radius: 3px; - } - - &.active { - .glyphicon { - background: $brand-primary; - } - } - } - } - } - } - - // Topbar - .region-topbar { - } -} - -// Topbar variant -.layout-atlas-responsive-topbar { - .mx-scrollcontainer-slide, - .mx-scrollcontainer-push { - &:not(.mx-scrollcontainer-open) > .region-sidebar { - visibility: hidden; - } - } -} - -// All responsive layouts -.layout-atlas-responsive-default, -.layout-atlas-responsive-topbar { - // Topbar - .region-topbar { - .toggle-btn { - display: none; - - @media (max-width: $screen-sm-max) { - display: inline-block; - } - } - } - - .mx-scrollcontainer-slide { - &:not(.mx-scrollcontainer-open) > .region-sidebar { - overflow: hidden; - } - - &.mx-scrollcontainer-open > .region-sidebar { - - & > .mx-scrollcontainer-wrapper { - position: relative; - } - } - - .region-sidebar > .mx-scrollcontainer-wrapper { - z-index: 2; - background-color: inherit; - } - } -} - -// Fix Safari issue of sidebar disappearing -.profile-tablet { - .mx-scrollcontainer:not(.mx-scrollcontainer-open) > .region-sidebar { - overflow-y: hidden; - - .mx-scrollcontainer-wrapper { - overflow: visible; - } - } -} diff --git a/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/layouts/_layout-atlas-tablet.scss b/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/layouts/_layout-atlas-tablet.scss deleted file mode 100644 index dfa318e..0000000 --- a/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/layouts/_layout-atlas-tablet.scss +++ /dev/null @@ -1,8 +0,0 @@ -/* ========================================================================== - Atlas layout - - Extra styling for tablet layouts -========================================================================== */ -.layout-atlas-tablet { - // tablet -} diff --git a/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/layouts/_layout-atlas.scss b/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/layouts/_layout-atlas.scss deleted file mode 100644 index 150f73d..0000000 --- a/theme_old/styles/web/sass/ui_resources/atlas_ui_resources/layouts/_layout-atlas.scss +++ /dev/null @@ -1,111 +0,0 @@ -/* ========================================================================== - Atlas layout - - The core stucture of all atlas layouts -========================================================================== */ -.layout-atlas { - // Toggle button - .toggle-btn > .glyphicon { - margin: 0; - } - - // Sidebar - .region-sidebar { - background-color: $navsidebar-bg; - - .mx-navigationtree .navbar-inner > ul > li > a { - padding: 0 15px; - - .glyphicon { - margin-right: 10px; - } - } - .toggle-btn { - border-color: transparent; - border-radius: 0; - background: transparent; - } - } - - // Topbar - .region-topbar { - position: relative; - z-index: 1; // Show dropshadow - min-height: $topbar-minimalheight; - border-bottom: 1px solid $navtopbar-border-color; - background-color: $navtopbar-bg; - box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.14); - - &::before { - z-index: 1; - display: block; - width: 100%; - height: 4px; - content: ""; - background-color: $brand-primary; - } - // Topbar Content - .topbar-content { - display: flex; - align-items: center; - min-height: $topbar-minimalheight; - } - - // Toggle btn - .toggle-btn { - margin-right: 15px; - padding: 5px; - } - - // For your company, product, or project name - .navbar-brand { - display: inline-block; - // reset bootstrap - float: none; - height: auto; - padding: 0; - line-height: inherit; - - img { - display: inline-block; - @if $brand-logo !=false { - width: 0; - height: 0; - padding: ($brand-logo-height / 2) ($brand-logo-width / 2); - background-image: url($brand-logo); - background-repeat: no-repeat; - background-position: left center; - background-size: $brand-logo-width; - } @else { - width: auto; - height: $brand-logo-height; - } - } - - a { - margin-left: 5px; - color: $navbar-brand-name; - font-size: 20px; - - &:hover, - &:focus { - text-decoration: none; - } - } - } - - .mx-navbar { - display: inline-block; - margin-left: $gutter-size; - vertical-align: middle; - background: transparent; - - & > .mx-navbar-item { - & > a { - margin-top: 5px; - padding: 0 20px; - } - } - } - } -} diff --git a/theme_old/tsconfig.json b/theme_old/tsconfig.json deleted file mode 100644 index d4829e8..0000000 --- a/theme_old/tsconfig.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "compilerOptions": { - "baseUrl": "./", - "module": "es2015", - "target": "esnext", - "typeRoots": [ - "./node_modules/@types" - ], - "types": [ - "react-native", - "react-native-device-info" - ], - "paths": { - "react-native": [ - "./node_modules/@types/react-native" - ], - "react-native-device-info": [ - "./node_modules/react-native-device-info/lib/typescript" - ] - }, - "lib": [ - "es2017" - ], - "noEmitOnError": true, - "sourceMap": false, - "allowSyntheticDefaultImports": true, - "esModuleInterop": true, - "removeComments": false, - "allowJs": true, - "checkJs": true, - "declaration": false, - "noLib": false, - "watch": false, - "forceConsistentCasingInFileNames": true, - "noFallthroughCasesInSwitch": true, - "strict": true, - "strictFunctionTypes": false, - "skipLibCheck": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "moduleResolution": "node", - "outDir": "./styles/native/js", - "newLine": "CRLF" - }, - "include": [ - "./styles/native/**/*.ts" - ] -} diff --git a/themesource/administration/native/design-properties.json b/themesource/administration/native/design-properties.json new file mode 100644 index 0000000..49d1a20 --- /dev/null +++ b/themesource/administration/native/design-properties.json @@ -0,0 +1,3 @@ +{ + +} diff --git a/themesource/administration/native/main.js b/themesource/administration/native/main.js new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/themesource/administration/native/main.js @@ -0,0 +1 @@ + diff --git a/themesource/administration/web/design-properties.json b/themesource/administration/web/design-properties.json new file mode 100644 index 0000000..49d1a20 --- /dev/null +++ b/themesource/administration/web/design-properties.json @@ -0,0 +1,3 @@ +{ + +} diff --git a/themesource/administration/web/main.scss b/themesource/administration/web/main.scss new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/themesource/administration/web/main.scss @@ -0,0 +1 @@ + diff --git a/themesource/atlas_core/.version b/themesource/atlas_core/.version new file mode 100644 index 0000000..a5c4c76 --- /dev/null +++ b/themesource/atlas_core/.version @@ -0,0 +1 @@ +3.9.0 diff --git a/themesource/atlas_core/native/api.js b/themesource/atlas_core/native/api.js new file mode 100644 index 0000000..f40d0cd --- /dev/null +++ b/themesource/atlas_core/native/api.js @@ -0,0 +1,3 @@ +import adjustFont from "./core/helpers/_functions/adjustfont"; +import { anyColorToRgbString, setColorBasedOnBackground, setContrastScale } from "./core/helpers/_functions/convertcolors"; +export { adjustFont, anyColorToRgbString, setColorBasedOnBackground, setContrastScale }; diff --git a/themesource/atlas_core/native/core/base/flex.js b/themesource/atlas_core/native/core/base/flex.js new file mode 100644 index 0000000..1a0ece0 --- /dev/null +++ b/themesource/atlas_core/native/core/base/flex.js @@ -0,0 +1,203 @@ +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +*/ +// == Flex layout +export const flexMain = { + container: { + // flex 1 will take all available space not taken by flexItems. + flex: 1 + } +}; +export const flexItem = { + container: { + // When flex is -1, the component is normally sized according width and height. + // However, if there's not enough space, the component will shrink to its minWidth and minHeight + flex: -1 + } +}; +export const flexRow = { + container: { + flexDirection: "row" + } +}; +export const flexColumn = { + container: { + flexDirection: "column" + } +}; +export const flexRowReverse = { + container: { + flexDirection: "row-reverse" + } +}; +export const flexColumnReverse = { + container: { + flexDirection: "column-reverse" + } +}; +export const flexWrap = { + container: { + // flexWrap controls whether children can wrap around after they hit the end of a flex container. + flexWrap: "wrap" + } +}; +export const justifyContentStart = { + container: { + // justifyContent aligns children in the main direction. + // For example, if children are flowing vertically, justifyContent controls how they align vertically. + justifyContent: "flex-start" + } +}; +export const justifyContentCenter = { + container: { + // justifyContent aligns children in the main direction. + // For example, if children are flowing vertically, justifyContent controls how they align vertically. + justifyContent: "center" + } +}; +export const justifyContentEnd = { + container: { + // justifyContent aligns children in the main direction. + // For example, if children are flowing vertically, justifyContent controls how they align vertically. + justifyContent: "flex-end" + } +}; +export const justifyContentSpaceBetween = { + container: { + // justifyContent aligns children in the main direction. + // For example, if children are flowing vertically, justifyContent controls how they align vertically. + justifyContent: "space-between" + } +}; +export const justifyContentSpaceAround = { + container: { + // justifyContent aligns children in the main direction. + // For example, if children are flowing vertically, justifyContent controls how they align vertically. + justifyContent: "space-around" + } +}; +export const justifyContentSpaceEvenly = { + container: { + // justifyContent aligns children in the main direction. + // For example, if children are flowing vertically, justifyContent controls how they align vertically. + justifyContent: "space-evenly" + } +}; +export const alignChildrenStart = { + container: { + // alignItems aligns children in the cross direction. + // For example, if children are flowing vertically, alignItems controls how they align horizontally. + alignItems: "flex-start" + } +}; +export const alignChildrenCenter = { + container: { + // alignItems aligns children in the cross direction. + // For example, if children are flowing vertically, alignItems controls how they align horizontally. + alignItems: "center" + } +}; +export const alignChildrenEnd = { + container: { + // alignItems aligns children in the cross direction. + // For example, if children are flowing vertically, alignItems controls how they align horizontally. + alignItems: "flex-end" + } +}; +export const alignChildrenStretch = { + container: { + // alignItems aligns children in the cross direction. + // For example, if children are flowing vertically, alignItems controls how they align horizontally. + alignItems: "stretch" + } +}; +export const alignChildrenBaseline = { + container: { + // alignContent aligns children in the cross direction. + // For example, if children are flowing vertically, alignContent controls how they align horizontally. + alignItems: "baseline" + } +}; +export const childrenCenter = { + container: { + ...justifyContentCenter.container, + ...alignChildrenCenter.container + } +}; +export const alignContentStart = { + container: { + // alignContent aligns rows of children in the cross direction. + // For example, if children are flowing vertically, alignContent controls how they align horizontally. + alignContent: "flex-start" + } +}; +export const alignContentCenter = { + container: { + // alignContent aligns rows of children in the cross direction. + // For example, if children are flowing vertically, alignContent controls how they align horizontally. + alignContent: "center" + } +}; +export const alignContentEnd = { + container: { + // alignContent aligns rows of children in the cross direction. + // For example, if children are flowing vertically, alignContent controls how they align horizontally. + alignContent: "flex-end" + } +}; +export const alignContentStretch = { + container: { + // alignContent aligns rows of children in the cross direction. + // For example, if children are flowing vertically, alignContent controls how they align horizontally. + alignContent: "stretch" + } +}; +export const alignContentSpaceAround = { + container: { + // alignContent aligns rows of children in the cross direction. + // For example, if children are flowing vertically, alignContent controls how they align horizontally. + alignContent: "space-around" + } +}; +export const alignContentSpaceBetween = { + container: { + // alignContent aligns rows of children in the cross direction. + // For example, if children are flowing vertically, alignContent controls how they align horizontally. + alignContent: "space-between" + } +}; +export const alignSelfStart = { + container: { + // controls how a child aligns in the cross direction, overriding the alignItems of the parent. + alignSelf: "flex-start" + } +}; +export const alignSelfCenter = { + container: { + // controls how a child aligns in the cross direction, overriding the alignItems of the parent. + alignSelf: "center" + } +}; +export const alignSelfEnd = { + container: { + // controls how a child aligns in the cross direction, overriding the alignItems of the parent. + alignSelf: "flex-end" + } +}; +export const alignSelfStretch = { + container: { + // controls how a child aligns in the cross direction, overriding the alignItems of the parent. + alignSelf: "stretch" + } +}; +export const alignSelfBaseline = { + container: { + // controls how a child aligns in the cross direction, overriding the alignItems of the parent. + alignSelf: "baseline" + } +}; diff --git a/themesource/atlas_core/native/core/base/spacing.js b/themesource/atlas_core/native/core/base/spacing.js new file mode 100644 index 0000000..de7138c --- /dev/null +++ b/themesource/atlas_core/native/core/base/spacing.js @@ -0,0 +1,503 @@ +import { spacing } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +*/ +// == Inner Spacing +export const spacingInnerSmallest = { + container: { + padding: spacing.smallest + } +}; +export const spacingInnerVerticalSmallest = { + container: { + paddingVertical: spacing.smallest + } +}; +export const spacingInnerHorizontalSmallest = { + container: { + paddingHorizontal: spacing.smallest + } +}; +export const spacingInnerTopSmallest = { + container: { + paddingTop: spacing.smallest + } +}; +export const spacingInnerRightSmallest = { + container: { + paddingRight: spacing.smallest + } +}; +export const spacingInnerLeftSmallest = { + container: { + paddingLeft: spacing.smallest + } +}; +export const spacingInnerBottomSmallest = { + container: { + paddingBottom: spacing.smallest + } +}; +export const spacingInnerSmaller = { + container: { + padding: spacing.smaller + } +}; +export const spacingInnerVerticalSmaller = { + container: { + paddingVertical: spacing.smaller + } +}; +export const spacingInnerHorizontalSmaller = { + container: { + paddingHorizontal: spacing.smaller + } +}; +export const spacingInnerTopSmaller = { + container: { + paddingTop: spacing.smaller + } +}; +export const spacingInnerRightSmaller = { + container: { + paddingRight: spacing.smaller + } +}; +export const spacingInnerLeftSmaller = { + container: { + paddingLeft: spacing.smaller + } +}; +export const spacingInnerBottomSmaller = { + container: { + paddingBottom: spacing.smaller + } +}; +export const spacingInnerSmall = { + container: { + padding: spacing.small + } +}; +export const spacingInnerVerticalSmall = { + container: { + paddingVertical: spacing.small + } +}; +export const spacingInnerHorizontalSmall = { + container: { + paddingHorizontal: spacing.small + } +}; +export const spacingInnerTopSmall = { + container: { + paddingTop: spacing.small + } +}; +export const spacingInnerRightSmall = { + container: { + paddingRight: spacing.small + } +}; +export const spacingInnerLeftSmall = { + container: { + paddingLeft: spacing.small + } +}; +export const spacingInnerBottomSmall = { + container: { + paddingBottom: spacing.small + } +}; +export const spacingInnerMedium = { + container: { + padding: spacing.regular + } +}; +export const spacingInnerVerticalMedium = { + container: { + paddingVertical: spacing.regular + } +}; +export const spacingInnerHorizontalMedium = { + container: { + paddingHorizontal: spacing.regular + } +}; +export const spacingInnerTopMedium = { + container: { + paddingTop: spacing.regular + } +}; +export const spacingInnerRightMedium = { + container: { + paddingRight: spacing.regular + } +}; +export const spacingInnerLeftMedium = { + container: { + paddingLeft: spacing.regular + } +}; +export const spacingInnerBottomMedium = { + container: { + paddingBottom: spacing.regular + } +}; +export const spacingInnerLarge = { + container: { + padding: spacing.large + } +}; +export const spacingInnerVerticalLarge = { + container: { + paddingVertical: spacing.large + } +}; +export const spacingInnerHorizontalLarge = { + container: { + paddingHorizontal: spacing.large + } +}; +export const spacingInnerTopLarge = { + container: { + paddingTop: spacing.large + } +}; +export const spacingInnerRightLarge = { + container: { + paddingRight: spacing.large + } +}; +export const spacingInnerLeftLarge = { + container: { + paddingLeft: spacing.large + } +}; +export const spacingInnerBottomLarge = { + container: { + paddingBottom: spacing.large + } +}; +export const spacingInnerLarger = { + container: { + padding: spacing.larger + } +}; +export const spacingInnerVerticalLarger = { + container: { + paddingVertical: spacing.larger + } +}; +export const spacingInnerHorizontalLarger = { + container: { + paddingHorizontal: spacing.larger + } +}; +export const spacingInnerTopLarger = { + container: { + paddingTop: spacing.larger + } +}; +export const spacingInnerRightLarger = { + container: { + paddingRight: spacing.larger + } +}; +export const spacingInnerLeftLarger = { + container: { + paddingLeft: spacing.larger + } +}; +export const spacingInnerBottomLarger = { + container: { + paddingBottom: spacing.larger + } +}; +export const spacingInnerLargest = { + container: { + padding: spacing.largest + } +}; +export const spacingInnerVerticalLargest = { + container: { + paddingVertical: spacing.largest + } +}; +export const spacingInnerHorizontalLargest = { + container: { + paddingHorizontal: spacing.largest + } +}; +export const spacingInnerTopLargest = { + container: { + paddingTop: spacing.largest + } +}; +export const spacingInnerRightLargest = { + container: { + paddingRight: spacing.largest + } +}; +export const spacingInnerLeftLargest = { + container: { + paddingLeft: spacing.largest + } +}; +export const spacingInnerBottomLargest = { + container: { + paddingBottom: spacing.largest + } +}; +// +// +// == Outer Spacing +export const spacingOuterSmallest = { + container: { + margin: spacing.smallest + } +}; +export const spacingOuterVerticalSmallest = { + container: { + marginVertical: spacing.smallest + } +}; +export const spacingOuterHorizontalSmallest = { + container: { + marginHorizontal: spacing.smallest + } +}; +export const spacingOuterTopSmallest = { + container: { + marginTop: spacing.smallest + } +}; +export const spacingOuterRightSmallest = { + container: { + marginRight: spacing.smallest + } +}; +export const spacingOuterLeftSmallest = { + container: { + marginLeft: spacing.smallest + } +}; +export const spacingOuterBottomSmallest = { + container: { + marginBottom: spacing.smallest + } +}; +export const spacingOuterSmaller = { + container: { + margin: spacing.smaller + } +}; +export const spacingOuterVerticalSmaller = { + container: { + marginVertical: spacing.smaller + } +}; +export const spacingOuterHorizontalSmaller = { + container: { + marginHorizontal: spacing.smaller + } +}; +export const spacingOuterTopSmaller = { + container: { + marginTop: spacing.smaller + } +}; +export const spacingOuterRightSmaller = { + container: { + marginRight: spacing.smaller + } +}; +export const spacingOuterLeftSmaller = { + container: { + marginLeft: spacing.smaller + } +}; +export const spacingOuterBottomSmaller = { + container: { + marginBottom: spacing.smaller + } +}; +export const spacingOuterSmall = { + container: { + margin: spacing.small + } +}; +export const spacingOuterVerticalSmall = { + container: { + marginVertical: spacing.small + } +}; +export const spacingOuterHorizontalSmall = { + container: { + marginHorizontal: spacing.small + } +}; +export const spacingOuterTopSmall = { + container: { + marginTop: spacing.small + } +}; +export const spacingOuterRightSmall = { + container: { + marginRight: spacing.small + } +}; +export const spacingOuterLeftSmall = { + container: { + marginLeft: spacing.small + } +}; +export const spacingOuterBottomSmall = { + container: { + marginBottom: spacing.small + } +}; +export const spacingOuterMedium = { + container: { + margin: spacing.regular + } +}; +export const spacingOuterVerticalMedium = { + container: { + marginVertical: spacing.regular + } +}; +export const spacingOuterHorizontalMedium = { + container: { + marginHorizontal: spacing.regular + } +}; +export const spacingOuterTopMedium = { + container: { + marginTop: spacing.regular + } +}; +export const spacingOuterRightMedium = { + container: { + marginRight: spacing.regular + } +}; +export const spacingOuterLeftMedium = { + container: { + marginLeft: spacing.regular + } +}; +export const spacingOuterBottomMedium = { + container: { + marginBottom: spacing.regular + } +}; +export const spacingOuterLarge = { + container: { + margin: spacing.large + } +}; +export const spacingOuterVerticalLarge = { + container: { + marginVertical: spacing.large + } +}; +export const spacingOuterHorizontalLarge = { + container: { + marginHorizontal: spacing.large + } +}; +export const spacingOuterTopLarge = { + container: { + marginTop: spacing.large + } +}; +export const spacingOuterRightLarge = { + container: { + marginRight: spacing.large + } +}; +export const spacingOuterLeftLarge = { + container: { + marginLeft: spacing.large + } +}; +export const spacingOuterBottomLarge = { + container: { + marginBottom: spacing.large + } +}; +export const spacingOuterLarger = { + container: { + margin: spacing.larger + } +}; +export const spacingOuterVerticalLarger = { + container: { + marginVertical: spacing.larger + } +}; +export const spacingOuterHorizontalLarger = { + container: { + marginHorizontal: spacing.larger + } +}; +export const spacingOuterTopLarger = { + container: { + marginTop: spacing.larger + } +}; +export const spacingOuterRightLarger = { + container: { + marginRight: spacing.larger + } +}; +export const spacingOuterLeftLarger = { + container: { + marginLeft: spacing.larger + } +}; +export const spacingOuterBottomLarger = { + container: { + marginBottom: spacing.larger + } +}; +export const spacingOuterLargest = { + container: { + margin: spacing.largest + } +}; +export const spacingOuterVerticalLargest = { + container: { + marginVertical: spacing.largest + } +}; +export const spacingOuterHorizontalLargest = { + container: { + marginHorizontal: spacing.largest + } +}; +export const spacingOuterTopLargest = { + container: { + marginTop: spacing.largest + } +}; +export const spacingOuterRightLargest = { + container: { + marginRight: spacing.largest + } +}; +export const spacingOuterLeftLargest = { + container: { + marginLeft: spacing.largest + } +}; +export const spacingOuterBottomLargest = { + container: { + marginBottom: spacing.largest + } +}; diff --git a/themesource/atlas_core/native/core/helpers/_functions/adjustfont.js b/themesource/atlas_core/native/core/helpers/_functions/adjustfont.js new file mode 100644 index 0000000..41fb606 --- /dev/null +++ b/themesource/atlas_core/native/core/helpers/_functions/adjustfont.js @@ -0,0 +1,68 @@ +import { Dimensions, PixelRatio } from "react-native"; +const { height, width } = Dimensions.get("window"); +const pixelRatio = PixelRatio.get(); +/** + * + * Adjust the font size based on the screen size + * + * @param {number} size Font size + * + * @return {number} Returns adjusted font size + */ +function adjustFont(size) { + if (pixelRatio === 2) { + // iphone 5s and older Androids + if (width < 360) { + return size * 0.95; + } + // iphone 5 + if (height < 667) { + return size; + } + // iphone 6-6s + else if (height >= 667 && height <= 735) { + return size * 1.15; + } + // older phablets + return size * 1.25; + } + if (pixelRatio === 3) { + // catch Android font scaling on small machines + // where pixel ratio / font scale ratio => 3:3 + if (width <= 360) { + return size; + } + // Catch other weird android width sizings + if (height < 667) { + return size * 1.15; + } + // catch in-between size Androids and scale font up + if (height >= 667 && height <= 735) { + return size * 1.2; + } + // catch larger devices + // ie iphone 6s plus / 7 plus / mi note + return size * 1.27; + } + if (pixelRatio === 3.5) { + // catch Android font scaling on small machines + // where pixel ratio / font scale ratio => 3:3 + if (width <= 360) { + return size; + } + // Catch other smaller android height sizings + if (height < 667) { + return size * 1.2; + } + // catch in-between size Androids and scale font up + if (height >= 667 && height <= 735) { + return size * 1.25; + } + // catch larger phablet devices + return size * 1.4; + } + // if older device ie pixelRatio !== 2 || 3 || 3.5 + return size; +} +// +export { adjustFont as default, height, width }; diff --git a/themesource/atlas_core/native/core/helpers/_functions/colorwords.js b/themesource/atlas_core/native/core/helpers/_functions/colorwords.js new file mode 100644 index 0000000..00e6f4c --- /dev/null +++ b/themesource/atlas_core/native/core/helpers/_functions/colorwords.js @@ -0,0 +1,153 @@ +// +const colors = { + aliceblue: { r: 240, g: 248, b: 255 }, + antiquewhite: { r: 250, g: 235, b: 215 }, + aqua: { r: 0, g: 255, b: 255 }, + aquamarine: { r: 127, g: 255, b: 212 }, + azure: { r: 240, g: 255, b: 255 }, + beige: { r: 245, g: 245, b: 220 }, + bisque: { r: 255, g: 228, b: 196 }, + black: { r: 0, g: 0, b: 0 }, + blanchedalmond: { r: 255, g: 235, b: 205 }, + blue: { r: 0, g: 0, b: 255 }, + blueviolet: { r: 138, g: 43, b: 226 }, + brown: { r: 165, g: 42, b: 42 }, + burlywood: { r: 222, g: 184, b: 135 }, + cadetblue: { r: 95, g: 158, b: 160 }, + chartreuse: { r: 127, g: 255, b: 0 }, + chocolate: { r: 210, g: 105, b: 30 }, + coral: { r: 255, g: 127, b: 80 }, + cornflowerblue: { r: 100, g: 149, b: 237 }, + cornsilk: { r: 255, g: 248, b: 220 }, + crimson: { r: 220, g: 20, b: 60 }, + cyan: { r: 0, g: 255, b: 255 }, + darkblue: { r: 0, g: 0, b: 139 }, + darkcyan: { r: 0, g: 139, b: 139 }, + darkgoldenrod: { r: 184, g: 134, b: 11 }, + darkgray: { r: 169, g: 169, b: 169 }, + darkgreen: { r: 0, g: 100, b: 0 }, + darkgrey: { r: 169, g: 169, b: 169 }, + darkkhaki: { r: 189, g: 183, b: 107 }, + darkmagenta: { r: 139, g: 0, b: 139 }, + darkolivegreen: { r: 85, g: 107, b: 47 }, + darkorange: { r: 255, g: 140, b: 0 }, + darkorchid: { r: 153, g: 50, b: 204 }, + darkred: { r: 139, g: 0, b: 0 }, + darksalmon: { r: 233, g: 150, b: 122 }, + darkseagreen: { r: 143, g: 188, b: 143 }, + darkslateblue: { r: 72, g: 61, b: 139 }, + darkslategray: { r: 47, g: 79, b: 79 }, + darkslategrey: { r: 47, g: 79, b: 79 }, + darkturquoise: { r: 0, g: 206, b: 209 }, + darkviolet: { r: 148, g: 0, b: 211 }, + deeppink: { r: 255, g: 20, b: 147 }, + deepskyblue: { r: 0, g: 191, b: 255 }, + dimgray: { r: 105, g: 105, b: 105 }, + dimgrey: { r: 105, g: 105, b: 105 }, + dodgerblue: { r: 30, g: 144, b: 255 }, + firebrick: { r: 178, g: 34, b: 34 }, + floralwhite: { r: 255, g: 250, b: 240 }, + forestgreen: { r: 34, g: 139, b: 34 }, + fuchsia: { r: 255, g: 0, b: 255 }, + gainsboro: { r: 220, g: 220, b: 220 }, + ghostwhite: { r: 248, g: 248, b: 255 }, + gold: { r: 255, g: 215, b: 0 }, + goldenrod: { r: 218, g: 165, b: 32 }, + gray: { r: 128, g: 128, b: 128 }, + green: { r: 0, g: 128, b: 0 }, + greenyellow: { r: 173, g: 255, b: 47 }, + grey: { r: 128, g: 128, b: 128 }, + honeydew: { r: 240, g: 255, b: 240 }, + hotpink: { r: 255, g: 105, b: 180 }, + indianred: { r: 205, g: 92, b: 92 }, + indigo: { r: 75, g: 0, b: 130 }, + ivory: { r: 255, g: 255, b: 240 }, + khaki: { r: 240, g: 230, b: 140 }, + lavender: { r: 230, g: 230, b: 250 }, + lavenderblush: { r: 255, g: 240, b: 245 }, + lawngreen: { r: 124, g: 252, b: 0 }, + lemonchiffon: { r: 255, g: 250, b: 205 }, + lightblue: { r: 173, g: 216, b: 230 }, + lightcoral: { r: 240, g: 128, b: 128 }, + lightcyan: { r: 224, g: 255, b: 255 }, + lightgoldenrodyellow: { r: 250, g: 250, b: 210 }, + lightgray: { r: 211, g: 211, b: 211 }, + lightgreen: { r: 144, g: 238, b: 144 }, + lightgrey: { r: 211, g: 211, b: 211 }, + lightpink: { r: 255, g: 182, b: 193 }, + lightsalmon: { r: 255, g: 160, b: 122 }, + lightseagreen: { r: 32, g: 178, b: 170 }, + lightskyblue: { r: 135, g: 206, b: 250 }, + lightslategray: { r: 119, g: 136, b: 153 }, + lightslategrey: { r: 119, g: 136, b: 153 }, + lightsteelblue: { r: 176, g: 196, b: 222 }, + lightyellow: { r: 255, g: 255, b: 224 }, + lime: { r: 0, g: 255, b: 0 }, + limegreen: { r: 50, g: 205, b: 50 }, + linen: { r: 250, g: 240, b: 230 }, + magenta: { r: 255, g: 0, b: 255 }, + maroon: { r: 128, g: 0, b: 0 }, + mediumaquamarine: { r: 102, g: 205, b: 170 }, + mediumblue: { r: 0, g: 0, b: 205 }, + mediumorchid: { r: 186, g: 85, b: 211 }, + mediumpurple: { r: 147, g: 112, b: 219 }, + mediumseagreen: { r: 60, g: 179, b: 113 }, + mediumslateblue: { r: 123, g: 104, b: 238 }, + mediumspringgreen: { r: 0, g: 250, b: 154 }, + mediumturquoise: { r: 72, g: 209, b: 204 }, + mediumvioletred: { r: 199, g: 21, b: 133 }, + midnightblue: { r: 25, g: 25, b: 112 }, + mintcream: { r: 245, g: 255, b: 250 }, + mistyrose: { r: 255, g: 228, b: 225 }, + moccasin: { r: 255, g: 228, b: 181 }, + navajowhite: { r: 255, g: 222, b: 173 }, + navy: { r: 0, g: 0, b: 128 }, + oldlace: { r: 253, g: 245, b: 230 }, + olive: { r: 128, g: 128, b: 0 }, + olivedrab: { r: 107, g: 142, b: 35 }, + orange: { r: 255, g: 165, b: 0 }, + orangered: { r: 255, g: 69, b: 0 }, + orchid: { r: 218, g: 112, b: 214 }, + palegoldenrod: { r: 238, g: 232, b: 170 }, + palegreen: { r: 152, g: 251, b: 152 }, + paleturquoise: { r: 175, g: 238, b: 238 }, + palevioletred: { r: 219, g: 112, b: 147 }, + papayawhip: { r: 255, g: 239, b: 213 }, + peachpuff: { r: 255, g: 218, b: 185 }, + peru: { r: 205, g: 133, b: 63 }, + pink: { r: 255, g: 192, b: 203 }, + plum: { r: 221, g: 160, b: 221 }, + powderblue: { r: 176, g: 224, b: 230 }, + purple: { r: 128, g: 0, b: 128 }, + rebeccapurple: { r: 102, g: 51, b: 153 }, + red: { r: 255, g: 0, b: 0 }, + rosybrown: { r: 188, g: 143, b: 143 }, + royalblue: { r: 65, g: 105, b: 225 }, + saddlebrown: { r: 139, g: 69, b: 19 }, + salmon: { r: 250, g: 128, b: 114 }, + sandybrown: { r: 244, g: 164, b: 96 }, + seagreen: { r: 46, g: 139, b: 87 }, + seashell: { r: 255, g: 245, b: 238 }, + sienna: { r: 160, g: 82, b: 45 }, + silver: { r: 192, g: 192, b: 192 }, + skyblue: { r: 135, g: 206, b: 235 }, + slateblue: { r: 106, g: 90, b: 205 }, + slategray: { r: 112, g: 128, b: 144 }, + slategrey: { r: 112, g: 128, b: 144 }, + snow: { r: 255, g: 250, b: 250 }, + springgreen: { r: 0, g: 255, b: 127 }, + steelblue: { r: 70, g: 130, b: 180 }, + tan: { r: 210, g: 180, b: 140 }, + teal: { r: 0, g: 128, b: 128 }, + thistle: { r: 216, g: 191, b: 216 }, + tomato: { r: 255, g: 99, b: 71 }, + turquoise: { r: 64, g: 224, b: 208 }, + violet: { r: 238, g: 130, b: 238 }, + wheat: { r: 245, g: 222, b: 179 }, + white: { r: 255, g: 255, b: 255 }, + whitesmoke: { r: 245, g: 245, b: 245 }, + yellow: { r: 255, g: 255, b: 0 }, + yellowgreen: { r: 154, g: 205, b: 50 } +}; +// +export default colors; diff --git a/themesource/atlas_core/native/core/helpers/_functions/convertcolors.js b/themesource/atlas_core/native/core/helpers/_functions/convertcolors.js new file mode 100644 index 0000000..8d1ff99 --- /dev/null +++ b/themesource/atlas_core/native/core/helpers/_functions/convertcolors.js @@ -0,0 +1,259 @@ +import colors from "./colorwords"; +/** + * + * Converts RGB color to HEX + * + * @param {number || string} r Accepts RGB as string || Accepts R as string or number + * @param {number || string} g Accepts G as string or number + * @param {number || string} b Accepts B as string or number + * + * @return {string} Returns HEX color + */ +function RgbToHex(r, g, b) { + if (typeof r === "string" && !g && !b) { + const color = r.replace(/rgb[(]|[)]/gm, ""); + [r, g, b] = color.split(","); + } + // eslint-disable-next-line no-bitwise + return "#" + ((1 << 24) + (Number(r) << 16) + (Number(g) << 8) + Number(b)).toString(16).slice(1); +} +/** + * + * Converts HEX or HEX Alpha to RGB + * + * @param {string} hex Accepts HEX color + * + * @return {object} Returns RGB color; {r,g,b} + */ +function hexToRgb(hex) { + hex = hex.substring(1); + hex = hex.length === 3 || hex.length === 4 ? [...hex].map(x => x + x).join("") : hex; + return rgbaToRgb({ + r: parseInt("0x" + hex[0] + hex[1], 16), + g: parseInt("0x" + hex[2] + hex[3], 16), + b: parseInt("0x" + hex[4] + hex[5], 16), + a: parseInt("0x" + hex[6] + hex[7], 16) / 255 || 1 + }); +} +/** + * + * Converts any color format to RGB string + * + * @param {string} anyColor Accepts any color format + * + * @return {string} Returns RGB color; `r,g,b` + */ +export function anyColorToRgbString(anyColor) { + const { r, g, b } = checkColor(anyColor); + return [r, g, b].join(","); +} +/** + * + * Converts HSL to RGB color + * + * @param {string} hsl Accepts HSL color + * + * @return {object} Returns RGB color; {r,g,b} + */ +function hslToRgb(hsl) { + const hslArray = hsl + .replace(/hsla?[(]|[%]|[)]/gm, "") + .split(",") + .map(x => x.trim()); + let h = hslArray[0]; + const s = Number(hslArray[1]) / 100; + const l = Number(hslArray[2]) / 100; + const a = 1; + // Strip label and convert to degrees (if necessary) + // eslint-disable-next-line no-bitwise + if (~h.indexOf("deg")) { + h = h.substr(0, h.length - 3); + // eslint-disable-next-line no-bitwise + } + else if (~h.indexOf("rad")) { + h = Math.round(Number(h.substr(0, h.length - 3)) * (180 / Math.PI)); + // eslint-disable-next-line no-bitwise + } + else if (~h.indexOf("turn")) { + h = Math.round(Number(h.substr(0, h.length - 4)) * 360); + } + h = Number(h); + if (h >= 360) { + h %= 360; + } // Keep hue fraction of 360 if h is higher than 360 + let r = 255; + let g = 255; + let b = 255; + const c = (1 - Math.abs(2 * l - 1)) * s; // chroma -> color intensity + const x = c * (1 - Math.abs(((h / 60) % 2) - 1)); // Second largest component (first being chroma) + const m = l - c / 2; // Amount to add to each channel to match lightness + if (0 <= h && h < 60) { + r = c; + g = x; + b = 0; + } + else if (60 <= h && h < 120) { + r = x; + g = c; + b = 0; + } + else if (120 <= h && h < 180) { + r = 0; + g = c; + b = x; + } + else if (180 <= h && h < 240) { + r = 0; + g = x; + b = c; + } + else if (240 <= h && h < 300) { + r = x; + g = 0; + b = c; + } + else if (300 <= h && h < 360) { + r = c; + g = 0; + b = x; + } + return rgbaToRgb({ + r: Math.round((r + m) * 255), + g: Math.round((g + m) * 255), + b: Math.round((b + m) * 255), + a + }); +} +/** + * + * Convert RGB string with HEX or Word inside to RGB object + * + * @param {string} rgb Accepts RGB color as string + * + * @return {object} Returns RGB color; {r,g,b} + */ +function rgbStringToRgb(rgb) { + const color = rgb.replace(/rgb[(]|[)]/gm, ""); + // if RGB has hex color definition + // eslint-disable-next-line no-bitwise + if (~rgb.indexOf("#")) { + return hexToRgb(color); + } + // if RGB has word color definition + else if (!/\d/.test(rgb)) { + return colors[color.toLowerCase()]; + } + // if RGB has RGB color definition + else { + const [r, g, b] = color.split(","); + [r, g, b].forEach(x => x.trim()); + return { r: Number(r), g: Number(g), b: Number(b) }; + } +} +/** + * + * Converts RGB Alpha to RGB object + * + * @param {string} rgba Accepts RGB Alpha color + * + * @return {object} Returns RGB color; {r,g,b} + */ +function rgbaToRgb(rgba) { + let newAlpha = 1; + let RGB = typeof rgba === "object" ? rgba : { r: 255, g: 255, b: 255 }; + const calc = (val) => Math.round(newAlpha * (val / 255) * 255); // Calc best color contrast values + // const calc = val => Math.round((RGB.a * (val / 255) + (RGB.a * ( 0 / 255))) * 255); // Calc best color contrast values + if (typeof rgba === "string") { + const val = rgba.replace(/rgba[(]|[)]/gm, ""); + const color = val.slice(0, val.lastIndexOf(",")).trim(); + const alpha = Number(val.slice(val.lastIndexOf(",") + 1).trim()); + // if RGBA has HEX color definition + if (color[0] === "#") { + RGB = hexToRgb(color); + } + // if RGBA has word color definition + else if (!/\d/.test(color)) { + RGB = colors[color.toLowerCase()]; + } + // if RGBA has RGB color definition + else { + const [r, g, b] = color.split(","); + [r, g, b].forEach(x => Number(x.trim())); + RGB = { r: Number(r), g: Number(g), b: Number(b) }; + } + // RGB.a = alpha; + newAlpha = alpha === 1 ? 1 : Number((1 - alpha).toPrecision(2)); + } + return { r: calc(RGB.r), g: calc(RGB.g), b: calc(RGB.b) }; +} +/** + * + * Check what color format is being used. + * + * @param {string} color Accepts any color format + * + * @return {object} Returns RGB color; {r,g,b} + */ +function checkColor(color) { + if (color in colors) { + return colors[color.toLowerCase()]; + } + else if (color[0] === "#") { + return hexToRgb(color); + // eslint-disable-next-line no-bitwise + } + else if (~color.indexOf("hsl")) { + return hslToRgb(color); + // eslint-disable-next-line no-bitwise + } + else if (~color.indexOf("rgba")) { + return rgbaToRgb(color); + // eslint-disable-next-line no-bitwise + } + else if (~color.indexOf("rgb")) { + return rgbStringToRgb(color); + } + return { r: 255, g: 255, b: 255 }; +} +/** + * + * Set best contrast color based on a (background) color + * + * @param {string} color Accepts any color format + * + * @return {string} Returns RGB Alpha color + */ +export function setColorBasedOnBackground(color) { + const c = checkColor(color); + const RGB = typeof c === "object" ? c : { r: 255, g: 255, b: 255 }; + // https://www.w3.org/TR/AERT/#color-contrast + const o = Math.round((RGB.r * 299 + RGB.g * 587 + RGB.b * 114) / 1000); + return o > 125 ? "rgba(0,0,0,.87)" : "rgba(255,255,255,.87)"; +} +/** + * + * Expects a color and a contrast value between 0 and 1.' + * It will look at the supplied color's brightness and will start the contrast scale either from #000 (black) or #FFF (white). + * This function will work best when you supply a very dark or very bright color. + * It will return a gray color with the desired contrast which is based on the specified color. + * + * @param {string} color Accepts any color format + * @param {number} contrast Accepts a value between 0 and 1 + * + * @return {string} Returns HEX color + */ +export function setContrastScale(contrast, color) { + if (contrast > 1) { + contrast = 1; + } + if (contrast < 0) { + contrast = 0; + } + const max = 256; + const c = checkColor(color); + const { r, g, b } = typeof c === "object" ? c : { r: 255, g: 255, b: 255 }; + // https://www.w3.org/TR/AERT/#color-contrast + const brightness = Math.round((r * 299 + g * 587 + b * 114) / 1000); + const value = Math.round(brightness > max / 2 ? max - max * contrast : max * contrast); + return RgbToHex(value, value, value); +} diff --git a/theme/styles/native/core/helpers/_functions/device.js b/themesource/atlas_core/native/core/helpers/_functions/device.js similarity index 100% rename from theme/styles/native/core/helpers/_functions/device.js rename to themesource/atlas_core/native/core/helpers/_functions/device.js diff --git a/themesource/atlas_core/native/core/helpers/_functions/mergeobjects.js b/themesource/atlas_core/native/core/helpers/_functions/mergeobjects.js new file mode 100644 index 0000000..6385209 --- /dev/null +++ b/themesource/atlas_core/native/core/helpers/_functions/mergeobjects.js @@ -0,0 +1,35 @@ +/** + * Merge 2 objects + * This function will look at every object property of the second object and will override the matching property in the first object + * + * @param {object[]} sources Array of 2 objects + * + * @return {object} Returns merged object + * + */ +export default function (...sources) { + function mergeDeep(target, ...sources) { + function isObject(item) { + return item && typeof item === "object" && !Array.isArray(item); + } + if (!sources.length) { + return target; + } + const source = sources.shift(); + if (isObject(target) && isObject(source)) { + Object.keys(source).forEach(key => { + if (isObject(source[key])) { + if (!target[key]) { + Object.assign(target, { [key]: {} }); + } + mergeDeep(target[key], source[key]); + } + else { + Object.assign(target, { [key]: source[key] || target[key] }); + } + }); + } + return mergeDeep(target, ...sources); + } + return mergeDeep({}, ...sources); +} diff --git a/themesource/atlas_core/native/core/helpers/accordion.js b/themesource/atlas_core/native/core/helpers/accordion.js new file mode 100644 index 0000000..1fbd13d --- /dev/null +++ b/themesource/atlas_core/native/core/helpers/accordion.js @@ -0,0 +1,165 @@ +import { brand, background, fontDefaults, accordion } from "../../variables"; +import merge from "./_functions/mergeobjects"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Accordion + + Default Class For Mendix Accordion Widget +========================================================================== */ +export const accordionPrimary = { + container: {}, + group: { + container: { + borderWidth: 1, + borderColor: brand.primary + }, + header: { + container: { + backgroundColor: brand.primary, + borderColor: brand.primary, + borderBottomWidth: 0 + }, + heading1: { + color: fontDefaults.colorTitleLight + }, + heading2: { + color: fontDefaults.colorTitleLight + }, + heading3: { + color: fontDefaults.colorTitleLight + }, + heading4: { + color: fontDefaults.colorTitleLight + }, + heading5: { + color: fontDefaults.colorTitleLight + }, + heading6: { + color: fontDefaults.colorTitleLight + }, + icon: { + color: fontDefaults.colorTitleLight + } + } + } +}; +export const accordionSecondary = { + container: {}, + group: { + container: { + borderWidth: 1, + borderColor: "#CED0D3" + }, + header: { + container: { + backgroundColor: background.primary, + borderColor: "#CED0D3", + borderBottomWidth: 0 + }, + heading1: { + color: brand.primary + }, + heading2: { + color: brand.primary + }, + heading3: { + color: brand.primary + }, + heading4: { + color: brand.primary + }, + heading5: { + color: brand.primary + }, + heading6: { + color: brand.primary + }, + icon: { + color: brand.primary + } + } + } +}; +export const accordionSuccess = merge(accordionPrimary, { + group: { + container: { + borderColor: brand.success + }, + header: { + container: { + backgroundColor: brand.success, + borderColor: brand.success + } + } + } +}); +export const accordionWarning = merge(accordionPrimary, { + group: { + container: { + borderColor: brand.warning + }, + header: { + container: { + backgroundColor: brand.warning, + borderColor: brand.warning + } + } + } +}); +export const accordionDanger = merge(accordionPrimary, { + group: { + container: { + borderColor: brand.danger + }, + header: { + container: { + backgroundColor: brand.danger, + borderColor: brand.danger + } + } + } +}); +export const accordionLined = { + container: { + borderTopWidth: 1 + }, + group: { + container: { + borderWidth: 0, + borderBottomWidth: 1 + } + } +}; +export const accordionDividerNone = { + container: { + borderWidth: 0, + borderTopWidth: 0 + }, + group: { + container: { + borderWidth: 0, + borderBottomWidth: 0 + } + } +}; +export const accordionCompact = { + group: { + header: { + container: { + paddingVertical: accordion.groupHeader.container.paddingVertical / 2, + paddingHorizontal: accordion.groupHeader.container.paddingHorizontal / 2 + } + }, + content: { + paddingTop: accordion.groupContent.paddingTop / 2, + paddingBottom: accordion.groupContent.paddingBottom / 2, + paddingHorizontal: accordion.groupContent.paddingHorizontal / 2 + } + } +}; diff --git a/themesource/atlas_core/native/core/helpers/activityindicator.js b/themesource/atlas_core/native/core/helpers/activityindicator.js new file mode 100644 index 0000000..c047f47 --- /dev/null +++ b/themesource/atlas_core/native/core/helpers/activityindicator.js @@ -0,0 +1,30 @@ +import { brand } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Activity Indicator + +//== Design Properties +//## Helper classes to change the look and feel of the widget +========================================================================== */ +// Activity indicator Colors +export const activityIndicatorSuccess = { + indicator: { + color: brand.success + } +}; +export const activityIndicatorWarning = { + indicator: { + color: brand.warning + } +}; +export const activityIndicatorDanger = { + indicator: { + color: brand.danger + } +}; diff --git a/themesource/atlas_core/native/core/helpers/backgroundgradient.js b/themesource/atlas_core/native/core/helpers/backgroundgradient.js new file mode 100644 index 0000000..b7b5e4a --- /dev/null +++ b/themesource/atlas_core/native/core/helpers/backgroundgradient.js @@ -0,0 +1,33 @@ +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. +========================================================================== +*/ +// Background Gradient properties +export const backgroundGradient = { + container: {} +}; +export const opacity25 = { + opacity: 25 +}; +export const opacity50 = { + opacity: 50 +}; +export const opacity75 = { + opacity: 75 +}; +export const opacity100 = { + opacity: 100 +}; +export const angle0 = { + angle: 0 +}; +export const angle45 = { + angle: 45 +}; +export const angle90 = { + angle: 90 +}; diff --git a/themesource/atlas_core/native/core/helpers/badge.js b/themesource/atlas_core/native/core/helpers/badge.js new file mode 100644 index 0000000..04eb76e --- /dev/null +++ b/themesource/atlas_core/native/core/helpers/badge.js @@ -0,0 +1,47 @@ +import { badge } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Badge + +//== Design Properties +//## Helper classes to change the look and feel of the widget +========================================================================== */ +// Badge Colors +export const badgePrimary = { + container: { + backgroundColor: badge.primary.backgroundColor + }, + caption: { + color: badge.primary.color + } +}; +export const badgeSuccess = { + container: { + backgroundColor: badge.success.backgroundColor + }, + caption: { + color: badge.success.color + } +}; +export const badgeWarning = { + container: { + backgroundColor: badge.warning.backgroundColor + }, + caption: { + color: badge.warning.color + } +}; +export const badgeDanger = { + container: { + backgroundColor: badge.danger.backgroundColor + }, + caption: { + color: badge.danger.color + } +}; diff --git a/theme/styles/native/core/helpers/barchart.js b/themesource/atlas_core/native/core/helpers/barchart.js similarity index 100% rename from theme/styles/native/core/helpers/barchart.js rename to themesource/atlas_core/native/core/helpers/barchart.js diff --git a/themesource/atlas_core/native/core/helpers/buttons.js b/themesource/atlas_core/native/core/helpers/buttons.js new file mode 100644 index 0000000..08134ac --- /dev/null +++ b/themesource/atlas_core/native/core/helpers/buttons.js @@ -0,0 +1,214 @@ +import { brand, button, contrast, font } from "../../variables"; +import merge from "./_functions/mergeobjects"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Button + +//== Design Properties +//## Helper classes to change the look and feel of the widget +========================================================================== */ +// Button Colors +export const btnSecondary = { + container: { + borderColor: button.secondary.borderColor, + backgroundColor: button.secondary.backgroundColor + }, + icon: { + color: button.secondary.color + }, + caption: { + color: button.secondary.color + } +}; +export const btnSuccess = { + container: { + borderColor: button.success.borderColor, + backgroundColor: button.success.backgroundColor + }, + icon: { + color: button.success.color + }, + caption: { + color: button.success.color + } +}; +export const btnWarning = { + container: { + borderColor: button.warning.borderColor, + backgroundColor: button.warning.backgroundColor + }, + icon: { + color: button.warning.color + }, + caption: { + color: button.warning.color + } +}; +export const btnDanger = { + container: { + borderColor: button.danger.borderColor, + backgroundColor: button.danger.backgroundColor + }, + icon: { + color: button.danger.color + }, + caption: { + color: button.danger.color + } +}; +export const btnPrimaryInversed = { + container: { + borderColor: button.primary.color, + backgroundColor: button.primary.color + }, + icon: { + color: button.primary.backgroundColor + }, + caption: { + color: button.primary.backgroundColor + } +}; +// +// == Extra Classes +// ## Helper classes to change the look and feel of the widget +// -------------------------------------------------------------------------------------------------------------------// +// +// Button Icon Only +export const btnIcon = { + container: { + borderWidth: 0, + backgroundColor: "transparent", + width: font.sizeLarge, + height: font.sizeLarge, + minWidth: undefined, + minHeight: undefined, + paddingVertical: 0, + paddingHorizontal: 0 + }, + icon: { + color: font.colorTitle + }, + caption: { + fontSize: 0 + } +}; +export const btnIconPrimary = merge(btnIcon, { + icon: { + color: button.primary.backgroundColor + } +}); +export const btnIconSecondary = merge(btnIcon, { + icon: { + color: contrast.low + } +}); +export const btnIconSuccess = merge(btnIcon, { + icon: { + color: button.success.backgroundColor + } +}); +export const btnIconWarning = merge(btnIcon, { + icon: { + color: button.warning.backgroundColor + } +}); +export const btnIconDanger = merge(btnIcon, { + icon: { + color: button.danger.backgroundColor + } +}); +export const btnIconWhite = merge(btnIcon, { + icon: { + color: "#FFF" + } +}); +// +export const btnIconGrayRounded = { + container: { + height: 80, + width: 80, + padding: 10, + borderRadius: 20, + borderWidth: 0, + backgroundColor: contrast.lowest + }, + icon: { + size: 30, + color: contrast.high + }, + caption: { + fontSize: 0 + } +}; +// +// Round Button Icon With Background +export const btnIconPrimaryBackground = { + container: { + width: 40, + height: 40, + borderRadius: 20, + paddingVertical: 0, + paddingHorizontal: 0 + }, + icon: { + width: "100%", + height: "100%", + alignItems: "center", + justifyContent: "center", + size: font.sizeLarge, + color: button.primary.color + } +}; +// +// +// Text only +export const btnAsText = { + container: { + maxHeight: 22, + borderWidth: 0, + borderRadius: 0, + rippleColor: contrast.lowest, + backgroundColor: "transparent" + // paddingVertical: 0, + // paddingHorizontal: 0, + }, + icon: { + size: button.icon.size + }, + caption: { + fontWeight: font.weightSemiBold, + fontSize: button.caption.fontSize + } +}; +export const btnAsTextPrimary = merge(btnAsText, { + icon: { + color: brand.primary + }, + caption: { + color: brand.primary + } +}); +export const btnAsTextSecondary = merge(btnAsText, { + icon: { + color: font.colorTitle + }, + caption: { + color: font.colorTitle + } +}); +// +// Button sizes +export const btnLarge = { + icon: { + size: font.size + }, + caption: { + fontSize: font.size + } +}; diff --git a/themesource/atlas_core/native/core/helpers/columnchart.js b/themesource/atlas_core/native/core/helpers/columnchart.js new file mode 100644 index 0000000..b90d1ca --- /dev/null +++ b/themesource/atlas_core/native/core/helpers/columnchart.js @@ -0,0 +1,11 @@ +export const columnChartSquare = { + chart: { + aspectRatio: 1 + } +}; +export const columnChartMaxSpace = { + chart: { + flex: 1, + aspectRatio: undefined + } +}; diff --git a/themesource/atlas_core/native/core/helpers/floatingactionbutton.js b/themesource/atlas_core/native/core/helpers/floatingactionbutton.js new file mode 100644 index 0000000..0f5e777 --- /dev/null +++ b/themesource/atlas_core/native/core/helpers/floatingactionbutton.js @@ -0,0 +1,41 @@ +import { background, brand } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Floating Action Button + +//== Design Properties +//## Helper classes to change the look and feel of the widget +========================================================================== */ +// Floating Action Button Colors +export const floatingActionButtonSecondary = { + button: { + backgroundColor: background.primary + }, + buttonIcon: { + color: brand.primary + } +}; +export const floatingActionButtonSuccess = { + button: { + backgroundColor: brand.success, + borderColor: brand.success + } +}; +export const floatingActionButtonWarning = { + button: { + backgroundColor: brand.warning, + borderColor: brand.warning + } +}; +export const floatingActionButtonDanger = { + button: { + backgroundColor: brand.danger, + borderColor: brand.danger + } +}; diff --git a/themesource/atlas_core/native/core/helpers/gallery.js b/themesource/atlas_core/native/core/helpers/gallery.js new file mode 100644 index 0000000..86bb210 --- /dev/null +++ b/themesource/atlas_core/native/core/helpers/gallery.js @@ -0,0 +1,182 @@ +import { button, border, spacing } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. +========================================================================== +*/ +export const justifyPaginationLeft = { + loadMoreButtonPressableContainer: { + alignSelf: "flex-start" + } +}; +export const justifyPaginationCenter = { + loadMoreButtonPressableContainer: { + alignSelf: "center" + } +}; +export const justifyPaginationRight = { + loadMoreButtonPressableContainer: { + alignSelf: "flex-end" + } +}; +export const listItemBorderHorizontal = { + listItem: { + borderBottomWidth: border.width, + borderTopWidth: border.width, + borderBottomColor: border.color, + borderTopColor: border.color + } +}; +export const listItemBorderVertical = { + listItem: { + borderStartWidth: border.width, + borderEndWidth: border.width, + borderStartColor: border.color, + borderEndColor: border.color + } +}; +export const listItemBorder = { + listItem: { + ...listItemBorderVertical.listItem, + ...listItemBorderHorizontal.listItem + } +}; +export const gridGapInnerSmall = { + listItem: { + padding: spacing.smaller + } +}; +export const gridGapInnerMedium = { + listItem: { + padding: spacing.regular + } +}; +export const gridGapInnerLarge = { + listItem: { + padding: spacing.larger + } +}; +export const gridGapOuterSmall = { + listItem: { + margin: spacing.smaller + } +}; +export const gridGapOuterMedium = { + listItem: { + margin: spacing.regular + } +}; +export const gridGapOuterLarge = { + listItem: { + margin: spacing.larger + } +}; +export const galleryGridAlignSelfStart = { + listItem: { + alignSelf: "flex-start" + } +}; +export const galleryGridAlignSelfCenter = { + listItem: { + alignSelf: "center" + } +}; +export const galleryGridAlignSelfEnd = { + listItem: { + alignSelf: "flex-end" + } +}; +export const galleryGridAlignSelfStretch = { + listItem: { + alignSelf: "stretch" + } +}; +export const galleryGridAlignSelfBaseline = { + listItem: { + alignSelf: "baseline" + } +}; +export const galleryGridFlexRow = { + listItem: { + flexDirection: "row" + } +}; +export const galleryGridFlexWrap = { + listItem: { + flexWrap: "wrap" + } +}; +export const galleryGridJustifyContentStart = { + listItem: { + justifyContent: "flex-start" + } +}; +export const galleryGridJustifyContentCenter = { + listItem: { + justifyContent: "center" + } +}; +export const galleryGridJustifyContentEnd = { + listItem: { + justifyContent: "flex-end" + } +}; +export const galleryGridJustifyContentSpaceBetween = { + listItem: { + justifyContent: "space-between" + } +}; +export const galleryGridJustifyContentSpaceAround = { + listItem: { + justifyContent: "space-around" + } +}; +export const galleryGridJustifyContentSpaceEvenly = { + listItem: { + justifyContent: "space-evenly" + } +}; +export const loadMoreButtonBackgroundSecondary = { + loadMoreButtonPressableContainer: { + borderColor: button.secondary.borderColor, + backgroundColor: button.secondary.backgroundColor + }, + loadMoreButtonCaption: { + color: button.secondary.color + } +}; +export const loadMoreButtonBackgroundSuccess = { + loadMoreButtonPressableContainer: { + borderColor: button.success.borderColor, + backgroundColor: button.success.backgroundColor + }, + loadMoreButtonCaption: { + color: button.success.color + } +}; +export const loadMoreButtonBackgroundWarning = { + loadMoreButtonPressableContainer: { + borderColor: button.warning.borderColor, + backgroundColor: button.warning.backgroundColor + }, + loadMoreButtonCaption: { + color: button.warning.color + } +}; +export const loadMoreButtonBackgroundDanger = { + loadMoreButtonPressableContainer: { + borderColor: button.danger.borderColor, + backgroundColor: button.danger.backgroundColor + }, + loadMoreButtonCaption: { + color: button.danger.color + } +}; +export const loadMoreButtonFixedSize = { + loadMoreButtonPressableContainer: { + alignSelf: "baseline" + } +}; diff --git a/themesource/atlas_core/native/core/helpers/gallerytextfilter.js b/themesource/atlas_core/native/core/helpers/gallerytextfilter.js new file mode 100644 index 0000000..b5751af --- /dev/null +++ b/themesource/atlas_core/native/core/helpers/gallerytextfilter.js @@ -0,0 +1,149 @@ +import { spacing } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. +========================================================================== +*/ +export const galleryTextFilterSpacingOuterTopSmallest = { + textInputContainer: { + marginTop: spacing.smallest + } +}; +export const galleryTextFilterSpacingOuterTopSmaller = { + textInputContainer: { + marginTop: spacing.smaller + } +}; +export const galleryTextFilterSpacingOuterTopSmall = { + textInputContainer: { + marginTop: spacing.small + } +}; +export const galleryTextFilterSpacingOuterTopMedium = { + textInputContainer: { + marginTop: spacing.regular + } +}; +export const galleryTextFilterSpacingOuterTopLarge = { + textInputContainer: { + marginTop: spacing.large + } +}; +export const galleryTextFilterSpacingOuterTopLarger = { + textInputContainer: { + marginTop: spacing.larger + } +}; +export const galleryTextFilterSpacingOuterTopLargest = { + textInputContainer: { + marginTop: spacing.largest + } +}; +export const galleryTextFilterSpacingOuterBottomSmallest = { + textInputContainer: { + marginBottom: spacing.smallest + } +}; +export const galleryTextFilterSpacingOuterBottomSmaller = { + textInputContainer: { + marginBottom: spacing.smaller + } +}; +export const galleryTextFilterSpacingOuterBottomSmall = { + textInputContainer: { + marginBottom: spacing.small + } +}; +export const galleryTextFilterSpacingOuterBottomMedium = { + textInputContainer: { + marginBottom: spacing.regular + } +}; +export const galleryTextFilterSpacingOuterBottomLarge = { + textInputContainer: { + marginBottom: spacing.large + } +}; +export const galleryTextFilterSpacingOuterBottomLarger = { + textInputContainer: { + marginBottom: spacing.larger + } +}; +export const galleryTextFilterSpacingOuterBottomLargest = { + textInputContainer: { + marginBottom: spacing.largest + } +}; +export const galleryTextFilterSpacingOuterRightSmallest = { + textInputContainer: { + marginRight: spacing.smallest + } +}; +export const galleryTextFilterSpacingOuterRightSmaller = { + textInputContainer: { + marginRight: spacing.smaller + } +}; +export const galleryTextFilterSpacingOuterRightSmall = { + textInputContainer: { + marginRight: spacing.small + } +}; +export const galleryTextFilterSpacingOuterRightMedium = { + textInputContainer: { + marginRight: spacing.regular + } +}; +export const galleryTextFilterSpacingOuterRightLarge = { + textInputContainer: { + marginRight: spacing.large + } +}; +export const galleryTextFilterSpacingOuterRightLarger = { + textInputContainer: { + marginRight: spacing.larger + } +}; +export const galleryTextFilterSpacingOuterRightLargest = { + textInputContainer: { + marginRight: spacing.largest + } +}; +export const galleryTextFilterSpacingOuterLeftSmallest = { + textInputContainer: { + marginLeft: spacing.smallest + } +}; +export const galleryTextFilterSpacingOuterLeftSmaller = { + textInputContainer: { + marginLeft: spacing.smaller + } +}; +export const galleryTextFilterSpacingOuterLeftSmall = { + textInputContainer: { + marginLeft: spacing.small + } +}; +export const galleryTextFilterSpacingOuterLeftMedium = { + textInputContainer: { + marginLeft: spacing.regular + } +}; +export const galleryTextFilterSpacingOuterLeftLarge = { + textInputContainer: { + marginLeft: spacing.large + } +}; +export const galleryTextFilterSpacingOuterLeftLarger = { + textInputContainer: { + marginLeft: spacing.larger + } +}; +export const galleryTextFilterSpacingOuterLeftLargest = { + textInputContainer: { + marginLeft: spacing.largest + } +}; diff --git a/themesource/atlas_core/native/core/helpers/helperclasses.js b/themesource/atlas_core/native/core/helpers/helperclasses.js new file mode 100644 index 0000000..f1ae538 --- /dev/null +++ b/themesource/atlas_core/native/core/helpers/helperclasses.js @@ -0,0 +1,111 @@ +import { Platform } from "react-native"; +import { background, border } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +*/ +// Hide on Android +export const hideOnAndroid = { + container: { + display: Platform.select({ ios: "flex", android: "none" }) + } +}; +// Hide on iOS +export const hideOnIos = { + container: { + display: Platform.select({ ios: "none", android: "flex" }) + } +}; +// +// == Background Colors +export const backgroundPrimary = { + container: { + backgroundColor: background.primary + } +}; +export const backgroundSecondary = { + container: { + backgroundColor: background.secondary + } +}; +export const backgroundBrandPrimary = { + container: { + backgroundColor: background.brandPrimary + } +}; +export const backgroundBrandSuccess = { + container: { + backgroundColor: background.brandSuccess + } +}; +export const backgroundBrandWarning = { + container: { + backgroundColor: background.brandWarning + } +}; +export const backgroundBrandDanger = { + container: { + backgroundColor: background.brandDanger + } +}; +export const backgroundBrandInfo = { + container: { + backgroundColor: background.brandInfo + } +}; +// +// borders +export const borderTop = { + container: { + borderColor: border.color, + borderTopWidth: border.width + } +}; +export const borderRight = { + container: { + borderColor: border.color, + borderRightWidth: border.width + } +}; +export const borderBottom = { + container: { + borderColor: border.color, + borderBottomWidth: border.width + } +}; +export const borderRadiusSmall = { + container: { + overflow: "hidden", + borderRadius: border.radiusSmall + } +}; +export const borderRadiusLarge = { + container: { + overflow: "hidden", + borderRadius: border.radiusLarge + } +}; +// +// Positioning +export const absoluteBottom = { + container: { + position: "absolute", + bottom: 0, + width: "100%", + maxWidth: "100%", + zIndex: 99 + } +}; +export const absoluteTop = { + container: { + position: "absolute", + top: 0, + width: "100%", + maxWidth: "100%", + zIndex: 99 + } +}; diff --git a/themesource/atlas_core/native/core/helpers/image.js b/themesource/atlas_core/native/core/helpers/image.js new file mode 100644 index 0000000..d009429 --- /dev/null +++ b/themesource/atlas_core/native/core/helpers/image.js @@ -0,0 +1,142 @@ +import { border, brand, contrast, image } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Image + +//== Design Properties +//## Helper classes to change the look and feel of the widget +========================================================================== */ +// +// +// == Extra Classes +// ## Helper classes to change the look and feel of the widget +// -------------------------------------------------------------------------------------------------------------------// +// Image Overlay +export const imageOverlay = { + container: { + zIndex: 10, + width: "100%", + height: "100%", + position: "absolute", + backgroundColor: "rgba(0,0,0,0.4)" + } +}; +// +// Image Shapes +export const imageSquare = { + image: { + width: "100%", + height: "auto", + aspectRatio: 1, + borderRadius: border.radiusSmall + } +}; +export const imageCircle = { + image: { + width: "100%", + height: "auto", + aspectRatio: 1, + borderRadius: 50000 + } +}; +// Image Sizes +export const imageIcon = { + image: { + maxWidth: image.icon, + maxHeight: image.icon + }, + container: { + maxWidth: image.icon, + maxHeight: image.icon + } +}; +export const imageSmall = { + image: { + maxWidth: image.image.small, + maxHeight: image.image.small + }, + container: { + maxWidth: image.image.small, + maxHeight: image.image.small + } +}; +export const imageMedium = { + image: { + maxWidth: image.image.medium, + maxHeight: image.image.medium + }, + container: { + maxWidth: image.image.medium, + maxHeight: image.image.medium + } +}; +export const imageLarge = { + image: { + maxWidth: image.image.large, + maxHeight: image.image.large + }, + container: { + maxWidth: image.image.large, + maxHeight: image.image.large + } +}; +export const imageLarger = { + image: { + maxWidth: image.image.larger, + maxHeight: image.image.larger + }, + container: { + maxWidth: image.image.larger, + maxHeight: image.image.larger + } +}; +export const imageFullSize = { + image: { + maxWidth: "100%", + maxHeight: "auto" + } +}; +// +// Image / SVG Styles +export const imageIconPrimary = { + image: { + fill: brand.primary, + color: brand.primary + } +}; +export const imageIconSecondary = { + image: { + fill: contrast.low, + color: contrast.low + } +}; +export const imageIconSuccess = { + image: { + fill: brand.success, + color: brand.success + } +}; +export const imageIconWarning = { + image: { + fill: brand.warning, + color: brand.warning + } +}; +export const imageIconDanger = { + image: { + fill: brand.danger, + color: brand.danger + } +}; +export const imageIconInfo = { + image: { + fill: brand.info, + color: brand.info + } +}; diff --git a/themesource/atlas_core/native/core/helpers/introscreen.js b/themesource/atlas_core/native/core/helpers/introscreen.js new file mode 100644 index 0000000..bc3ff89 --- /dev/null +++ b/themesource/atlas_core/native/core/helpers/introscreen.js @@ -0,0 +1,75 @@ +import { backgroundDefaults, brand, fontDefaults } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Intro Screen + +//== Design Properties +//## Helper classes to change the look and feel of the widget +========================================================================== */ +// +// +// == Extra Classes +// ## Helper classes to change the look and feel of the widget +// -------------------------------------------------------------------------------------------------------------------// +const introScreenButton = { + icon: { + // Size and color are allowed + color: fontDefaults.colorTitleDark + }, + caption: { + // All TextStyle properties are allowed + color: fontDefaults.colorTitleDark + } +}; +export const introScreenLightMode = { + fullscreenContainer: { + // All ViewStyle properties are allowed + backgroundColor: backgroundDefaults.primaryLight + }, + popupContainer: { + // All ViewStyle properties are allowed + backgroundColor: backgroundDefaults.primaryLight + }, + paginationText: { + // All TextStyle properties are allowed + color: fontDefaults.colorTitleLight + }, + dotStyle: { + // All ViewStyle properties are allowed + backgroundColor: fontDefaults.colorDisabledLight + }, + activeDotStyle: { + // All ViewStyle properties are allowed + backgroundColor: backgroundDefaults.secondaryDark + }, + // Button styles + paginationAbove: { + buttonSkip: introScreenButton, + buttonPrevious: introScreenButton, + buttonNext: introScreenButton, + buttonDone: introScreenButton + }, + paginationBetween: { + buttonSkip: introScreenButton, + buttonPrevious: introScreenButton, + buttonNext: introScreenButton, + buttonDone: introScreenButton + } +}; +// Background colors +export const introScreenBackgroundBrandPrimary = { + fullscreenContainer: { + // All ViewStyle properties are allowed + backgroundColor: brand.primary + }, + popupContainer: { + // All ViewStyle properties are allowed + backgroundColor: brand.primary + } +}; diff --git a/theme/styles/native/core/helpers/linechart.js b/themesource/atlas_core/native/core/helpers/linechart.js similarity index 100% rename from theme/styles/native/core/helpers/linechart.js rename to themesource/atlas_core/native/core/helpers/linechart.js diff --git a/themesource/atlas_core/native/core/helpers/listview.js b/themesource/atlas_core/native/core/helpers/listview.js new file mode 100644 index 0000000..7fa30dd --- /dev/null +++ b/themesource/atlas_core/native/core/helpers/listview.js @@ -0,0 +1,46 @@ +import { background, border, listView, spacing } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + List View + +//== Design Properties +//## Helper classes to change the look and feel of the widget +========================================================================== */ +// List item dividers +export const listItemBorderBottom = { + listItem: { + borderColor: listView.border.color, + borderBottomWidth: listView.border.width + } +}; +export const listItemBorderRight = { + listItem: { + borderColor: listView.border.color, + borderRightWidth: listView.border.width + } +}; +// +// == Extra Classes +// ## Helper classes to change the look and feel of the widget +// -------------------------------------------------------------------------------------------------------------------// +export const listItemImage = { + container: { + height: 88, + width: 128, + overflow: "hidden", + backgroundColor: background.primary, + borderRadius: border.radiusLarge, + marginRight: spacing.regular + } +}; +export const horizontalListItemCard = { + container: { + width: 280 + } +}; diff --git a/themesource/atlas_core/native/core/helpers/listviewswipe.js b/themesource/atlas_core/native/core/helpers/listviewswipe.js new file mode 100644 index 0000000..31fb38b --- /dev/null +++ b/themesource/atlas_core/native/core/helpers/listviewswipe.js @@ -0,0 +1,38 @@ +import { listViewSwipe } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + List View Swipe + +//== Design Properties +//## Helper classes to change the look and feel of the widget +========================================================================== */ +export const listViewSwipeSmallPanels = { + leftAction: { + // PanelSize & All ViewStyle properties are allowed + panelSize: listViewSwipe.leftAction.panelSizeSmall + }, + rightAction: { + // PanelSize & All ViewStyle properties are allowed + panelSize: listViewSwipe.rightAction.panelSizeSmall + } +}; +export const listViewSwipeLargePanels = { + leftAction: { + // PanelSize & All ViewStyle properties are allowed + panelSize: listViewSwipe.leftAction.panelSizeLarge + }, + rightAction: { + // PanelSize & All ViewStyle properties are allowed + panelSize: listViewSwipe.rightAction.panelSizeLarge + } +}; +// +// == Extra Classes +// ## Helper classes to change the look and feel of the widget +// -------------------------------------------------------------------------------------------------------------------// diff --git a/themesource/atlas_core/native/core/helpers/maps.js b/themesource/atlas_core/native/core/helpers/maps.js new file mode 100644 index 0000000..1c797dc --- /dev/null +++ b/themesource/atlas_core/native/core/helpers/maps.js @@ -0,0 +1,55 @@ +import { border, brand } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Maps + +//== Design Properties +//## Helper classes to change the look and feel of the widget +========================================================================== */ +// Maps Colors +export const mapsSuccess = { + marker: { + color: brand.success + } +}; +export const mapsWarning = { + marker: { + color: brand.warning + } +}; +export const mapsDanger = { + marker: { + color: brand.danger + } +}; +// +// Maps Size +export const mapsSquare = { + container: { + aspectRatio: 1 / 1 + } +}; +export const mapsMaxSpace = { + container: { + flex: 1, + minHeight: 50, + aspectRatio: undefined + } +}; +// +// == Extra Classes +// ## Helper classes to change the look and feel of the widget +// -------------------------------------------------------------------------------------------------------------------// +// Maps Shape +export const mapsRounded = { + container: { + borderRadius: border.radiusSmall, + overflow: "hidden" + } +}; diff --git a/themesource/atlas_core/native/core/helpers/progressbar.js b/themesource/atlas_core/native/core/helpers/progressbar.js new file mode 100644 index 0000000..571e5b9 --- /dev/null +++ b/themesource/atlas_core/native/core/helpers/progressbar.js @@ -0,0 +1,44 @@ +import { brand, progressBar } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Progress Bar + +//== Design Properties +//## Helper classes to change the look and feel of the widget +========================================================================== */ +// Progress Bar Color +export const progressBarSuccess = { + fill: { + backgroundColor: brand.success + } +}; +export const progressBarWarning = { + fill: { + backgroundColor: brand.warning + } +}; +export const progressBarDanger = { + fill: { + backgroundColor: brand.danger + } +}; +// +// Progress Bar Size +export const progressBarSmall = { + bar: { + height: progressBar.bar.heightSmall, + borderRadius: progressBar.bar.heightSmall / 2 + } +}; +export const progressBarLarge = { + bar: { + height: progressBar.bar.heightLarge, + borderRadius: progressBar.bar.heightLarge / 2 + } +}; diff --git a/themesource/atlas_core/native/core/helpers/progresscircle.js b/themesource/atlas_core/native/core/helpers/progresscircle.js new file mode 100644 index 0000000..ca16a0d --- /dev/null +++ b/themesource/atlas_core/native/core/helpers/progresscircle.js @@ -0,0 +1,60 @@ +import { brand, contrast, font } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Progress Circle + +//== Design Properties +//## Helper classes to change the look and feel of the widget +========================================================================== */ +// Progress Circle Color +export const progressCircleSuccess = { + fill: { + backgroundColor: brand.success + }, + text: { + color: brand.success + } +}; +export const progressCircleWarning = { + fill: { + backgroundColor: brand.warning + }, + text: { + color: brand.warning + } +}; +export const progressCircleDanger = { + fill: { + backgroundColor: brand.danger + }, + text: { + color: brand.danger + } +}; +export const progressCircleGray = { + fill: { + backgroundColor: contrast.regular + }, + text: { + color: contrast.regular + } +}; +// +// Sizes +export const progressCircleSmall = { + circle: { + size: 50 + }, + fill: { + width: 3 + }, + text: { + fontSize: font.sizeSmall + } +}; diff --git a/themesource/atlas_core/native/core/helpers/radiobuttons.js b/themesource/atlas_core/native/core/helpers/radiobuttons.js new file mode 100644 index 0000000..c686f2a --- /dev/null +++ b/themesource/atlas_core/native/core/helpers/radiobuttons.js @@ -0,0 +1,91 @@ +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. +========================================================================== +*/ +import { brand } from "../../../../../theme/native/custom-variables"; +// Radio buttons properties +export const radioButtonsPrimary = { + circularButtonStyle: { + borderColor: brand.primary + }, + activeButtonStyle: { + backgroundColor: brand.primary + }, + radioButtonItemTitleStyle: { + color: brand.primary + } +}; +export const radioButtonsSuccess = { + circularButtonStyle: { + borderColor: brand.success + }, + activeButtonStyle: { + backgroundColor: brand.success + }, + radioButtonItemTitleStyle: { + color: brand.success + } +}; +export const radioButtonsWarning = { + circularButtonStyle: { + borderColor: brand.warning + }, + activeButtonStyle: { + backgroundColor: brand.warning + }, + radioButtonItemTitleStyle: { + color: brand.warning + } +}; +export const radioButtonsDanger = { + circularButtonStyle: { + borderColor: brand.danger + }, + activeButtonStyle: { + backgroundColor: brand.danger + }, + radioButtonItemTitleStyle: { + color: brand.danger + } +}; +export const radioButtonsInfo = { + circularButtonStyle: { + borderColor: brand.info + }, + activeButtonStyle: { + backgroundColor: brand.info + }, + radioButtonItemTitleStyle: { + color: brand.info + } +}; +// Radio buttons label properties +export const radioButtonsLabelPrimary = { + labelTextStyle: { + color: brand.primary + } +}; +export const radioButtonsLabelSuccess = { + labelTextStyle: { + color: brand.success + } +}; +export const radioButtonsLabelWarning = { + labelTextStyle: { + color: brand.warning + } +}; +export const radioButtonsLabelDanger = { + labelTextStyle: { + color: brand.danger + } +}; +export const radioButtonsLabelInfo = { + labelTextStyle: { + color: brand.info + } +}; diff --git a/theme/styles/native/core/helpers/rangeslider.js b/themesource/atlas_core/native/core/helpers/rangeslider.js similarity index 100% rename from theme/styles/native/core/helpers/rangeslider.js rename to themesource/atlas_core/native/core/helpers/rangeslider.js diff --git a/themesource/atlas_core/native/core/helpers/slider.js b/themesource/atlas_core/native/core/helpers/slider.js new file mode 100644 index 0000000..fd707ff --- /dev/null +++ b/themesource/atlas_core/native/core/helpers/slider.js @@ -0,0 +1,39 @@ +import { brand } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Slider + +//== Design Properties +//## Helper classes to change the look and feel of the widget +========================================================================== */ +// Slider Color +export const sliderSuccess = { + highlight: { + backgroundColor: brand.success + }, + highlightDisabled: { + backgroundColor: brand.success + } +}; +export const sliderWarning = { + highlight: { + backgroundColor: brand.warning + }, + highlightDisabled: { + backgroundColor: brand.warning + } +}; +export const sliderDanger = { + highlight: { + backgroundColor: brand.danger + }, + highlightDisabled: { + backgroundColor: brand.danger + } +}; diff --git a/themesource/atlas_core/native/core/helpers/switch.js b/themesource/atlas_core/native/core/helpers/switch.js new file mode 100644 index 0000000..b391310 --- /dev/null +++ b/themesource/atlas_core/native/core/helpers/switch.js @@ -0,0 +1,29 @@ +import { brand } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Switch + + Default Class For Mendix Switch Widget +========================================================================== */ +// Switch Color +export const switchSuccess = { + input: { + trackColorOn: brand.success + } +}; +export const switchWarning = { + input: { + trackColorOn: brand.warning + } +}; +export const switchDanger = { + input: { + trackColorOn: brand.danger + } +}; diff --git a/themesource/atlas_core/native/core/helpers/tabcontainer.js b/themesource/atlas_core/native/core/helpers/tabcontainer.js new file mode 100644 index 0000000..08884fe --- /dev/null +++ b/themesource/atlas_core/native/core/helpers/tabcontainer.js @@ -0,0 +1,33 @@ +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Tab Container + +//== Design Properties +//## Helper classes to change the look and feel of the widget +========================================================================== */ +// Enable scroll for the tab bar +export const tabContainerScroll = { + tabBar: { + scrollEnabled: true + } +}; +// +// == Extra Classes +// ## Helper classes to change the look and feel of the widget +// -------------------------------------------------------------------------------------------------------------------// +// Tab container as content of page +export const tabContainerMinimal = { + container: { + backgroundColor: "transparent" + }, + tabBar: { + backgroundColor: "transparent", + elevation: 0 + } +}; diff --git a/themesource/atlas_core/native/core/helpers/textbox.js b/themesource/atlas_core/native/core/helpers/textbox.js new file mode 100644 index 0000000..5309bc4 --- /dev/null +++ b/themesource/atlas_core/native/core/helpers/textbox.js @@ -0,0 +1,34 @@ +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Text Box + +//== Design Properties +//## Helper classes to change the look and feel of the widget +========================================================================== */ +// Text Box Color +export const textInputCapitalizeNone = { + input: { + autoCapitalize: "none" + } +}; +export const textInputCapitalizeCharacters = { + input: { + autoCapitalize: "characters" + } +}; +export const textInputCapitalizeWords = { + input: { + autoCapitalize: "words" + } +}; +export const textInputCapitalizeSentences = { + input: { + autoCapitalize: "sentences" + } +}; diff --git a/themesource/atlas_core/native/core/helpers/typography.js b/themesource/atlas_core/native/core/helpers/typography.js new file mode 100644 index 0000000..9fbdb93 --- /dev/null +++ b/themesource/atlas_core/native/core/helpers/typography.js @@ -0,0 +1,156 @@ +import { brand, font, fontDefaults } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Text + +//== Design Properties +//## Helper classes to change the look and feel of the widget +========================================================================== */ +// Text Colors +export const textTitle = { + text: { + color: font.colorTitle + } +}; +export const textParagraph = { + text: { + color: font.colorParagraph + } +}; +export const textDisabled = { + text: { + color: font.colorDisabled + } +}; +export const textWhite = { + text: { + color: fontDefaults.colorTitleLight + } +}; +export const textBlack = { + text: { + color: fontDefaults.colorTitleDark + } +}; +export const textPrimary = { + text: { + color: brand.primary + } +}; +export const textSuccess = { + text: { + color: brand.success + } +}; +export const textWarning = { + text: { + color: brand.warning + } +}; +export const textDanger = { + text: { + color: brand.danger + } +}; +// +// Text Alignment +export const textLeft = { + text: { + textAlign: "left" + } +}; +export const textCenter = { + text: { + textAlign: "center" + } +}; +export const textRight = { + text: { + textAlign: "right" + } +}; +// +// Text Weights +export const textLight = { + text: { + fontWeight: font.weightLight + } +}; +export const textNormal = { + text: { + fontWeight: font.weightNormal + } +}; +export const textSemiBold = { + text: { + fontWeight: font.weightSemiBold + } +}; +export const textBold = { + text: { + fontWeight: font.weightBold + } +}; +// +// Text Sizes +export const textSmallest = { + text: { + fontSize: font.sizeSmallest, + lineHeight: font.lineHeightSmallest + } +}; +export const textSmall = { + text: { + fontSize: font.sizeSmall, + lineHeight: font.lineHeightSmall + } +}; +export const textLarge = { + text: { + fontSize: font.sizeLarge, + lineHeight: font.lineHeightLarge + } +}; +export const textLargest = { + text: { + fontSize: font.sizeLargest, + lineHeight: font.lineHeightLargest + } +}; +// +// == Extra Classes +// ## Helper classes to change the look and feel of the widget +// -------------------------------------------------------------------------------------------------------------------// +// +// Text Transformations +export const textLowercase = { + text: { + textTransform: "lowercase" + } +}; +export const textUppercase = { + text: { + textTransform: "uppercase" + } +}; +export const textCapitalize = { + text: { + textTransform: "capitalize" + } +}; +export const textUnderline = { + text: { + textDecorationLine: "underline" + } +}; +export const textLineThrough = { + text: { + textDecorationLine: "line-through" + } +}; diff --git a/themesource/atlas_core/native/core/manifest.json b/themesource/atlas_core/native/core/manifest.json new file mode 100644 index 0000000..b6b47f5 --- /dev/null +++ b/themesource/atlas_core/native/core/manifest.json @@ -0,0 +1,4 @@ +{ + "name": "Atlas-UI-Framework", + "version": "3.0.0" +} diff --git a/themesource/atlas_core/native/core/widgets/accordion.js b/themesource/atlas_core/native/core/widgets/accordion.js new file mode 100644 index 0000000..113ca97 --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/accordion.js @@ -0,0 +1,87 @@ +import { accordion } from "../../variables"; +import { TextHeading1, TextHeading2, TextHeading3, TextHeading4, TextHeading5, TextHeading6 } from "./typography"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Activity Indicator + + Default Class For Mendix Activity Indicator Widget +========================================================================== */ +export const com_mendix_widget_native_accordion_Accordion = { + container: { + // All ViewStyle properties are allowed + flexGrow: 1, + backgroundColor: accordion.container.backgroundColor, + borderColor: accordion.container.borderColor + }, + group: { + container: { + // All ViewStyle properties are allowed + borderWidth: 1, + borderColor: accordion.container.borderColor + }, + header: { + container: { + // All ViewStyle properties are allowed + borderColor: accordion.container.borderColor, + flexDirection: "row", + alignItems: "center", + justifyContent: "space-between", + paddingVertical: accordion.groupHeader.container.paddingVertical, + paddingHorizontal: accordion.groupHeader.container.paddingHorizontal + }, + heading1: { + // All TextStyle properties are allowed + ...TextHeading1.text, + fontWeight: "normal", + color: accordion.groupHeader.heading.color + }, + heading2: { + // All TextStyle properties are allowed + ...TextHeading2.text, + fontWeight: "normal", + color: accordion.groupHeader.heading.color + }, + heading3: { + // All TextStyle properties are allowed + ...TextHeading3.text, + fontWeight: "normal", + color: accordion.groupHeader.heading.color + }, + heading4: { + // All TextStyle properties are allowed + ...TextHeading4.text, + fontWeight: "normal", + color: accordion.groupHeader.heading.color + }, + heading5: { + // All TextStyle properties are allowed + ...TextHeading5.text, + fontWeight: "normal", + color: accordion.groupHeader.heading.color + }, + heading6: { + // All TextStyle properties are allowed + ...TextHeading6.text, + fontWeight: "normal", + color: accordion.groupHeader.heading.color + }, + icon: { + // Size, Color and all ViewStyle properties are allowed + size: accordion.groupHeader.icon.size, + color: accordion.groupHeader.icon.color + } + }, + content: { + // All ViewStyle properties are allowed + paddingTop: accordion.groupContent.paddingTop, + paddingBottom: accordion.groupContent.paddingBottom, + paddingHorizontal: accordion.groupContent.paddingHorizontal + } + } +}; diff --git a/themesource/atlas_core/native/core/widgets/activityindicator.js b/themesource/atlas_core/native/core/widgets/activityindicator.js new file mode 100644 index 0000000..1ae32d7 --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/activityindicator.js @@ -0,0 +1,23 @@ +import { brand } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Activity Indicator + + Default Class For Mendix Activity Indicator Widget +========================================================================== */ +export const com_mendix_widget_native_activityindicator_ActivityIndicator = { + container: { + // All ViewStyle properties are allowed + }, + indicator: { + // Color and size are allowed + color: brand.primary, + size: "large" + } +}; diff --git a/themesource/atlas_core/native/core/widgets/animation.js b/themesource/atlas_core/native/core/widgets/animation.js new file mode 100644 index 0000000..4b143de --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/animation.js @@ -0,0 +1,17 @@ +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Animation + + Default Class For Mendix Animation Widget +========================================================================== */ +export const com_mendix_widget_native_animation_Animation = { + container: { + // All ViewStyle properties are allowed + } +}; diff --git a/themesource/atlas_core/native/core/widgets/backgroundgradient.js b/themesource/atlas_core/native/core/widgets/backgroundgradient.js new file mode 100644 index 0000000..4ce87c7 --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/backgroundgradient.js @@ -0,0 +1,21 @@ +import { backgroundGradient } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + BackgroundGradient + + Default Class For Mendix BackgroundGradient Widget +========================================================================== */ +export const com_mendix_widget_native_backgroundgradient_BackgroundGradient = { + container: { + // All ViewStyle properties are allowed + ...backgroundGradient.container + }, + angle: backgroundGradient.angle, + opacity: backgroundGradient.opacity +}; diff --git a/themesource/atlas_core/native/core/widgets/backgroundimage.js b/themesource/atlas_core/native/core/widgets/backgroundimage.js new file mode 100644 index 0000000..40d6829 --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/backgroundimage.js @@ -0,0 +1,19 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. +// +/* ========================================================================== + Background Image + + Default Class For Mendix Background Image Widget +========================================================================== */ +export const com_mendix_widget_native_backgroundimage_BackgroundImage = { + container: { + // All ViewStyle properties are allowed + }, + image: { + // svgColor and all ImageStyle properties are allowed + } +}; diff --git a/themesource/atlas_core/native/core/widgets/badge.js b/themesource/atlas_core/native/core/widgets/badge.js new file mode 100644 index 0000000..260c6da --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/badge.js @@ -0,0 +1,29 @@ +import { badge, font } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Badge + + Default Class For Mendix Badge Widget +========================================================================== */ +export const com_mendix_widget_native_badge_Badge = { + container: { + // All ViewStyle properties are allowed + backgroundColor: badge.default.backgroundColor, + borderRadius: badge.borderRadius, + paddingVertical: badge.paddingVertical, + paddingHorizontal: badge.paddingHorizontal + }, + caption: { + // All TextStyle properties are allowed + color: badge.default.color, + fontFamily: font.family, + fontWeight: badge.fontWeight, + marginTop: -1 + } +}; diff --git a/themesource/atlas_core/native/core/widgets/barchart.js b/themesource/atlas_core/native/core/widgets/barchart.js new file mode 100644 index 0000000..c2b09c0 --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/barchart.js @@ -0,0 +1,166 @@ +import { border, brand, font, spacing } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Bar Chart + + Default Class For Mendix Bar Chart Widget +========================================================================== */ +export const com_mendix_widget_native_barchart_BarChart = { + container: { + // All ViewStyle properties are allowed + }, + errorMessage: { + // All TextStyle properties are allowed + fontFamily: font.family, + fontSize: font.sizeSmall, + fontWeight: font.weightNormal + }, + chart: { + // All ViewStyle properties are allowed + }, + grid: { + /* + Allowed properties: + - backgroundColor (string) + - dashArray (string) + - lineColor (string) + - padding (number) + - paddingBottom (number) + - paddingHorizontal (number) + - paddingLeft (number) + - paddingRight (number) + - paddingTop (number) + - paddingVertical (number) + - width (number) + */ + lineColor: border.color, + paddingBottom: 32, + paddingLeft: 32, + paddingRight: 8, + paddingTop: 8 + }, + xAxis: { + /* + Allowed properties: + - color (string) + - dashArray (string) + - fontFamily (string) + - fontSize (number) + - fontStyle ("normal" or "italic") + - fontWeight ("normal" or "bold" or "100" or "200" or "300" or "400" or "500" or "600" or "700" or "800" or "900") + - lineColor (string) + - width (number) + */ + color: font.colorTitle, + fontFamily: font.family, + fontSize: font.sizeSmall, + fontWeight: font.weightNormal, + label: { + /* + All TextStyle properties are allowed and: + - relativePositionGrid ("bottom" or "right") + */ + color: font.colorParagraph, + alignSelf: "center", + marginHorizontal: 0, + marginVertical: 8, + fontFamily: font.family, + fontSize: font.sizeSmall, + fontWeight: font.weightNormal + }, + lineColor: border.color + }, + yAxis: { + /* + Allowed properties: + - color (string) + - dashArray (string) + - fontFamily (string) + - fontSize (number) + - fontStyle ("normal" or "italic") + - fontWeight ("normal" or "bold" or "100" or "200" or "300" or "400" or "500" or "600" or "700" or "800" or "900") + - lineColor (string) + - width (number) + */ + color: font.colorTitle, + fontFamily: font.family, + fontSize: font.sizeSmall, + fontWeight: font.weightNormal, + label: { + /* + All TextStyle properties are allowed and: + - relativePositionGrid ("top" or "left") + */ + color: font.colorParagraph, + marginHorizontal: 0, + marginVertical: 8, + fontFamily: font.family, + fontSize: font.sizeSmall, + fontWeight: font.weightNormal + }, + lineColor: border.color + }, + bars: { + /* + Allowed properties: + - barColorPalette (string with array of colors separated by ';') + - barsOffset (number) + + */ + barColorPalette: Object.entries(brand) + .reduce((accumulator, [key, value]) => (key.endsWith("Light") ? accumulator : [...accumulator, value]), []) + .join(";"), + barsOffset: 20, + customBarStyles: { + your_static_or_dynamic_attribute_value: { + bar: { + /* + Allowed properties: + - ending (number) + - barColor (string) + - width (number) + */ + }, + label: { + /* + Allowed properties: + - fontFamily (string) + - fontSize (number) + - fontStyle ("normal" or "italic") + - fontWeight ("normal" or "bold" or "100" or "200" or "300" or "400" or "500" or "600" or "700" or "800" or "900") + */ + } + } + } + }, + legend: { + container: { + // All ViewStyle properties are allowed + justifyContent: "flex-start", + marginHorizontal: 0, + marginVertical: spacing.small + }, + item: { + // All ViewStyle properties are allowed + padding: 0, + paddingRight: spacing.regular + }, + indicator: { + // All ViewStyle properties are allowed + marginRight: spacing.small + }, + label: { + // All TextStyle properties are allowed + color: font.colorTitle, + fontFamily: font.family, + fontSize: font.sizeSmall, + fontWeight: font.weightNormal + } + } +}; diff --git a/themesource/atlas_core/native/core/widgets/bottomsheet.js b/themesource/atlas_core/native/core/widgets/bottomsheet.js new file mode 100644 index 0000000..32fe4f8 --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/bottomsheet.js @@ -0,0 +1,67 @@ +import { background, border, brand, contrast, font } from "../../variables"; +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. +// +/* ========================================================================== + Bottom Sheet + + Default Class For Mendix Bottom Sheet Widget +========================================================================== */ +export const com_mendix_widget_native_bottomsheet_BottomSheet = { + container: { + // All ViewStyle properties are allowed + backgroundColor: background.primary, + borderRadius: border.radiusLarge, + elevation: 20, + shadowColor: "#000", + shadowOpacity: 0.1, + shadowRadius: 6, + shadowOffset: { + width: 0, + height: -4 + } + }, + containerWhenExpandedFullscreen: { + // All ViewStyle properties are allowed + height: "100%", + alignSelf: "stretch", + backgroundColor: background.primary + }, + modal: { + // All ViewStyle properties are allowed + margin: 0, + justifyContent: "flex-end" + }, + modalItems: { + container: { + // rippleColor & All TextStyle properties are allowed + height: 50, + marginTop: 0, + rippleColor: contrast.lower, + backgroundColor: background.primary + }, + defaultStyle: { + // All TextStyle properties are allowed + fontSize: 16, + color: font.colorTitle + }, + primaryStyle: { + // All TextStyle properties are allowed + fontSize: 16, + color: brand.primary + }, + dangerStyle: { + // All TextStyle properties are allowed + fontSize: 16, + color: brand.danger + }, + customStyle: { + // All TextStyle properties are allowed + fontSize: 16, + color: font.colorTitle + } + } +}; diff --git a/themesource/atlas_core/native/core/widgets/buttons.js b/themesource/atlas_core/native/core/widgets/buttons.js new file mode 100644 index 0000000..752b2b7 --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/buttons.js @@ -0,0 +1,75 @@ +import { button, font } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Button + + Default Class For Mendix Button Widget +========================================================================== */ +export const ActionButton = { + container: { + // Ripplecolor and all ViewStyle properties are allowed + borderWidth: 1, + borderStyle: "solid", + rippleColor: button.container.rippleColor, + borderColor: button.primary.borderColor, + backgroundColor: button.primary.backgroundColor, + alignItems: "center", + justifyContent: "center", + borderRadius: button.container.borderRadius, + minWidth: button.container.minWidth, + minHeight: button.container.minHeight, + paddingVertical: button.container.paddingVertical, + paddingHorizontal: button.container.paddingHorizontal + }, + containerDisabled: { + // All ViewStyle properties are allowed + borderColor: button.containerDisabled.borderColor, + backgroundColor: button.containerDisabled.backgroundColor + }, + icon: { + // Size and color are allowed + color: button.primary.color, + size: button.icon.size + }, + iconDisabled: { + // Size and color are allowed + color: button.iconDisabled.color + }, + caption: { + // All TextStyle properties are allowed + color: button.primary.color, + fontSize: button.caption.fontSize, + fontFamily: font.family, + fontWeight: button.caption.fontWeight, + lineHeight: font.lineHeight + }, + captionDisabled: { + // All TextStyle properties are allowed + color: button.captionDisabled.color + } +}; +// +// Default style for button inside a header +export const ActionButtonHeader = { + container: { + borderColor: button.header.borderColor, + backgroundColor: button.header.backgroundColor, + paddingLeft: button.header.paddingLeft, + paddingRight: button.header.paddingRight + }, + icon: { + color: button.header.color, + size: button.header.fontSizeIcon + }, + caption: { + color: button.header.color, + fontSize: button.header.fontSize, + fontFamily: font.family + } +}; diff --git a/themesource/atlas_core/native/core/widgets/carousel.js b/themesource/atlas_core/native/core/widgets/carousel.js new file mode 100644 index 0000000..cd2819e --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/carousel.js @@ -0,0 +1,119 @@ +import { brand, contrast, font, spacing } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Button + + Default Class For Mendix Carousel Widget +========================================================================== */ +// Card +const carouselFullWidthLayout = { + slideItem: { + // All ViewStyle properties are allowed + height: 250 + }, + inactiveSlideItem: { + // Only opacity and scale are allowed + }, + pagination: { + container: { + // All ViewStyle properties are allowed + position: "absolute", + bottom: 0, + width: "100%", + justifyContent: "center", + paddingHorizontal: spacing.regular, + paddingBottom: spacing.regular + }, + text: { + // All TextStyle properties are allowed + color: "#FFF", + fontSize: font.size, + fontFamily: font.family, + textAlign: "center", + textShadowColor: "#888", + textShadowRadius: 3, + textShadowOffset: { + width: 0, + height: 1 + } + }, + dotContainerStyle: { + // All ViewStyle properties are allowed + marginHorizontal: 3 + }, + dotStyle: { + // Color and all ViewStyle properties are allowed + color: "#FFF" + }, + inactiveDotStyle: { + // Only opacity, scale and color are allowed + color: "rgba(255, 255, 255, 0.45)", + scale: 1 + } + } +}; +const carouselCardLayout = { + slideItem: { + // All ViewStyle properties are allowed + width: "70%", + height: 250, + padding: 8, + paddingBottom: spacing.regular, + elevation: 1.5, + shadowColor: "#000", + shadowOpacity: 0.5, + shadowRadius: 6, + shadowOffset: { + width: 0, + height: 4 + } + }, + inactiveSlideItem: { + // Only opacity and scale are allowed + opacity: 0.8 + }, + pagination: { + container: { + // All ViewStyle properties are allowed + paddingHorizontal: spacing.regular, + paddingBottom: spacing.smaller + }, + text: { + // All TextStyle properties are allowed + color: font.colorTitle, + fontSize: font.size, + fontFamily: font.family, + textAlign: "center" + }, + dotContainerStyle: { + // All ViewStyle properties are allowed + marginHorizontal: 3 + }, + dotStyle: { + // Color and all ViewStyle properties are allowed + color: brand.primary + }, + inactiveDotStyle: { + // Only opacity, scale and color are allowed + color: contrast.lower, + scale: 1 + } + } +}; +export const com_mendix_widget_native_carousel_Carousel = { + container: { + // All ViewStyle properties are allowed + }, + fullWidthLayout: carouselFullWidthLayout, + cardLayout: carouselCardLayout, + activityIndicator: { + // Only color is allowed + color: font.colorTitle + } +}; diff --git a/themesource/atlas_core/native/core/widgets/checkbox.js b/themesource/atlas_core/native/core/widgets/checkbox.js new file mode 100644 index 0000000..36dbdfd --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/checkbox.js @@ -0,0 +1,99 @@ +import { background, brand, contrast, spacing, checkbox } from "../../variables"; +import { TextBox, TextBoxVertical } from "./textbox"; +import { com_mendix_widget_native_switch_Switch } from "./switch"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + CheckBox + + Default Class For Mendix CheckBox Widget +========================================================================== */ +export const CheckBox = { + container: { + // All ViewStyle properties are allowed + ...TextBox.container, + paddingVertical: spacing.smallest, + justifyContent: "center" + }, + containerDisabled: { + // All ViewStyle properties are allowed + ...TextBox.containerDisabled + }, + label: { + // numberOfLines and all TextStyle properties are allowed + ...TextBox.label + }, + labelDisabled: { + // All TextStyle properties are allowed + ...TextBox.labelDisabled + }, + // the below properties (input, inputDisabled & inputError) are only used when render mode is `switch` + input: { + // thumbColorOn, thumbColorOff, trackColorOn, trackColorOff and all ViewStyle properties are allowed + ...com_mendix_widget_native_switch_Switch.input + }, + inputDisabled: { + // thumbColorOn, thumbColorOff, trackColorOn, trackColorOff and all ViewStyle properties are allowed + ...com_mendix_widget_native_switch_Switch.inputDisabled + }, + inputError: { + // thumbColorOn, thumbColorOff, trackColorOn, trackColorOff and all ViewStyle properties are allowed + ...com_mendix_widget_native_switch_Switch.inputError + }, + // the below properties (checkboxInput, checkboxInputDisabled & checkboxInputError) are only used when render mode is `checkbox` + checkboxInput: { + // color, size & all ViewStyle properties are allowed + ...checkbox.checkboxInput, + justifyContent: "center", + alignItems: "center" + }, + checkboxInputDisabled: { + // color, size & all ViewStyle properties are allowed + ...checkbox.checkboxInputDisabled + }, + checkboxInputError: { + // color, size & all ViewStyle properties are allowed + ...checkbox.checkboxInputError + }, + validationMessage: { + // All TextStyle properties are allowed + ...TextBox.validationMessage, + alignSelf: "stretch" + } +}; +export const CheckBoxVertical = { + container: TextBoxVertical.container, + containerDisabled: TextBoxVertical.containerDisabled, + label: TextBoxVertical.label, + labelDisabled: TextBoxVertical.labelDisabled, + // the below properties (input, inputDisabled & inputError) are only used when render mode is `switch` + input: { + ...CheckBox.input, + alignSelf: "flex-start" + }, + inputDisabled: CheckBox.inputDisabled, + inputError: { + ...TextBoxVertical.inputError, + thumbColorOn: background.primary, + trackColorOn: brand.danger, + thumbColorOff: contrast.low, + trackColorOff: brand.danger + }, + // the below properties (checkboxInput, checkboxInputDisabled & checkboxInputError) are only used when render mode is `checkbox` + checkboxInput: { + ...CheckBox.checkboxInput + }, + checkboxInputDisabled: CheckBox.checkboxInputDisabled, + checkboxInputError: { + ...TextBoxVertical.inputError + }, + validationMessage: { + ...TextBoxVertical.validationMessage, + alignSelf: "stretch" + } +}; diff --git a/themesource/atlas_core/native/core/widgets/colorpicker.js b/themesource/atlas_core/native/core/widgets/colorpicker.js new file mode 100644 index 0000000..dd0aadf --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/colorpicker.js @@ -0,0 +1,20 @@ +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Color Picker + + Default Class For Mendix Color Picker Widget +========================================================================== */ +export const com_mendix_widget_native_colorpicker_ColorPicker = { + container: { + // All ViewStyle properties are allowed + }, + thumbnail: { + // All ViewStyle properties are allowed + } +}; diff --git a/themesource/atlas_core/native/core/widgets/columnchart.js b/themesource/atlas_core/native/core/widgets/columnchart.js new file mode 100644 index 0000000..02a7865 --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/columnchart.js @@ -0,0 +1,119 @@ +var _a, _b, _c, _d; +import { columnChart } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Column Chart + + Default Class For Mendix Column Chart Widget +========================================================================== */ +export const com_mendix_widget_native_columnchart_ColumnChart = { + container: { + // All ViewStyle properties are allowed + ...columnChart.container + }, + errorMessage: { + // All TextStyle properties are allowed + ...columnChart.errorMessage + }, + chart: { + // All ViewStyle properties are allowed + ...columnChart.chart + }, + grid: { + /* + Allowed properties: + - backgroundColor (string) + - dashArray (string) + - lineColor (string) + - padding (number) + - paddingBottom (number) + - paddingHorizontal (number) + - paddingLeft (number) + - paddingRight (number) + - paddingTop (number) + - paddingVertical (number) + - width (number) + */ + ...columnChart.grid + }, + xAxis: { + /* + Allowed properties: + - color (string) + - dashArray (string) + - fontFamily (string) + - fontSize (number) + - fontStyle ("normal" or "italic") + - fontWeight ("normal" or "bold" or "100" or "200" or "300" or "400" or "500" or "600" or "700" or "800" or "900") + - lineColor (string) + - width (number) + - label: All TextStyle properties are allowed and: + -relativePositionGrid ("bottom" or "right") + */ + ...columnChart.xAxis + }, + yAxis: { + /* + Allowed properties: + - color (string) + - dashArray (string) + - fontFamily (string) + - fontSize (number) + - fontStyle ("normal" or "italic") + - fontWeight ("normal" or "bold" or "100" or "200" or "300" or "400" or "500" or "600" or "700" or "800" or "900") + - lineColor (string) + - width (number) + - label: All TextStyle properties are allowed and: + - relativePositionGrid ("top" or "left") + */ + ...columnChart.yAxis + }, + columns: { + /* + Allowed properties: + - columnColorPalette (string with array of colors separated by ';') + - columnsOffset (number) + - customColumnStyles:{ + your_static_or_dynamic_attribute_value:{ + column: + Allowed properties: + - ending (number) + - columnColor (string) + - width (number) + label: + Allowed properties: + - fontFamily (string) + - fontSize (number) + - fontStyle ("normal" or "italic") + - fontWeight ("normal" or "bold" or "100" or "200" or "300" or "400" or "500" or "600" or "700" or "800" or "900") + + } + } + */ + ...columnChart.columns + }, + legend: { + container: { + // All ViewStyle properties are allowed + ...(_a = columnChart.legend) === null || _a === void 0 ? void 0 : _a.container + }, + item: { + // All ViewStyle properties are allowed + ...(_b = columnChart.legend) === null || _b === void 0 ? void 0 : _b.item + }, + indicator: { + // All ViewStyle properties are allowed + ...(_c = columnChart.legend) === null || _c === void 0 ? void 0 : _c.indicator + }, + label: { + // All TextStyle properties are allowed + ...(_d = columnChart.legend) === null || _d === void 0 ? void 0 : _d.label + } + } +}; diff --git a/themesource/atlas_core/native/core/widgets/container.js b/themesource/atlas_core/native/core/widgets/container.js new file mode 100644 index 0000000..3636ff5 --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/container.js @@ -0,0 +1,27 @@ +import { container } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Container + + Default Class For Mendix Container Widget +========================================================================== */ +export const Container = { + container: { + // rippleColor & all ViewStyle properties are allowed + }, + containerDisabled: { + // All ViewStyle properties are allowed + opacity: container.containerDisabled.opacity + } +}; +export const ScrollContainer = { + container: { + // All ViewStyle properties are allowed + } +}; diff --git a/themesource/atlas_core/native/core/widgets/datepicker.js b/themesource/atlas_core/native/core/widgets/datepicker.js new file mode 100644 index 0000000..173d75b --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/datepicker.js @@ -0,0 +1,94 @@ +var _a, _b, _c, _d; +import { background, font, input } from "../../variables"; +import { TextBox, TextBoxVertical } from "./textbox"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Date Picker + + Default Class For Mendix Date Picker Widget +========================================================================== */ +export const DatePicker = { + container: { + // All ViewStyle properties are allowed + ...TextBox.container + }, + containerDisabled: { + // All ViewStyle properties are allowed + ...TextBox.containerDisabled + }, + valueContainerError: { + // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed + color: input.inputError.color, + borderColor: input.inputError.borderColor + }, + label: { + // numberOfLines and all TextStyle properties are allowed + ...TextBox.label + }, + labelDisabled: { + // All TextStyle properties are allowed + ...TextBox.labelDisabled + }, + pickerIOS: { + // All ViewStyle properties & "color" (type: string) are allowed + backgroundColor: background.primary, + color: font.colorTitle + }, + pickerBackdropIOS: { + // All ViewStyle properties are allowed + }, + pickerTopIOS: { + // All ViewStyle properties are allowed + backgroundColor: background.primary + }, + value: { + // All TextStyle properties are allowed + color: input.input.color, + borderColor: input.input.borderColor, + backgroundColor: input.input.backgroundColor, + fontSize: input.input.fontSize, + lineHeight: input.input.lineHeight, + fontFamily: font.family, + borderWidth: input.input.borderWidth, + borderRadius: input.input.borderRadius, + textAlignVertical: "center", + minWidth: input.input.minWidth, + minHeight: input.input.minHeight, + paddingHorizontal: input.input.paddingHorizontal, + paddingVertical: input.input.paddingVertical + }, + valueDisabled: { + // All TextStyle properties are allowed + color: (_a = TextBox.inputDisabled) === null || _a === void 0 ? void 0 : _a.color, + borderColor: (_b = TextBox.inputDisabled) === null || _b === void 0 ? void 0 : _b.borderColor, + backgroundColor: (_c = TextBox.inputDisabled) === null || _c === void 0 ? void 0 : _c.backgroundColor + }, + placeholder: { + // All TextStyle properties are allowed + color: input.input.placeholderTextColor + }, + placeholderDisabled: { + // All TextStyle properties are allowed + color: (_d = TextBox.inputDisabled) === null || _d === void 0 ? void 0 : _d.color + }, + validationMessage: { + // All TextStyle properties are allowed + ...TextBox.validationMessage + } +}; +export const DatePickerVertical = { + container: TextBoxVertical.container, + containerDisabled: TextBoxVertical.containerDisabled, + label: TextBoxVertical.label, + labelDisabled: TextBoxVertical.labelDisabled, + value: DatePicker.value, + valueDisabled: DatePicker.valueDisabled, + placeholder: DatePicker.placeholder, + validationMessage: TextBoxVertical.validationMessage +}; diff --git a/themesource/atlas_core/native/core/widgets/dropdown.js b/themesource/atlas_core/native/core/widgets/dropdown.js new file mode 100644 index 0000000..660af01 --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/dropdown.js @@ -0,0 +1,162 @@ +var _a, _b, _c; +import { font, input } from "../../variables"; +import { TextBox, TextBoxVertical } from "./textbox"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Drop Down + + Default Class For Mendix Drop Down Widget +========================================================================== */ +export const DropDown = { + container: { + // All ViewStyle properties are allowed + ...TextBox.container + }, + containerDisabled: { + // All ViewStyle properties are allowed + ...TextBox.containerDisabled + }, + label: { + // numberOfLines and all TextStyle properties are allowed + ...TextBox.label + }, + labelDisabled: { + // All TextStyle properties are allowed + ...TextBox.labelDisabled + }, + value: { + // All TextStyle properties & placeholderTextColor are allowed + color: input.input.color, + placeholderTextColor: input.input.placeholderTextColor, + fontSize: input.input.fontSize, + lineHeight: input.input.lineHeight, + fontFamily: font.family, + overflow: "hidden", + textAlignVertical: "center" + }, + valueDisabled: { + // All TextStyle properties are allowed + color: (_a = TextBox.inputDisabled) === null || _a === void 0 ? void 0 : _a.color, + borderColor: (_b = TextBox.inputDisabled) === null || _b === void 0 ? void 0 : _b.borderColor, + backgroundColor: (_c = TextBox.inputDisabled) === null || _c === void 0 ? void 0 : _c.backgroundColor + }, + valueFocused: { + // All TextStyle properties are allowed + }, + validationMessage: { + // All TextStyle properties are allowed + ...TextBox.validationMessage + }, + /* New dropdown styles start */ + valueContainer: { + // All ViewStyle properties & rippleColor & activeOpacity & underlayColor are allowed + flexDirection: "row", + justifyContent: "space-between", + alignItems: "center", + rippleColor: input.valueContainer.rippleColor, + borderWidth: input.input.borderWidth, + borderRadius: input.input.borderRadius, + paddingHorizontal: input.input.paddingHorizontal, + paddingVertical: input.input.paddingVertical, + backgroundColor: input.input.backgroundColor, + borderColor: input.input.borderColor, + minWidth: input.input.minWidth, + minHeight: input.input.minHeight + }, + valueContainerDisabled: { + // All ViewStyle properties are allowed + }, + valueContainerFocused: { + // All ViewStyle properties are allowed + }, + valueContainerError: { + // All ViewStyle properties are allowed + color: input.inputError.color, + borderColor: input.inputError.borderColor + }, + iconStyle: { + // All TextStyle properties are allowed + color: input.input.color + }, + menuWrapper: { + // All ViewStyle properties are allowed + borderRadius: input.input.borderRadius, + shadowColor: "#000", + shadowOpacity: 0.2, + shadowRadius: 10, + elevation: 16, + backgroundColor: input.input.backgroundColor + }, + itemContainer: { + // All ViewStyle properties & rippleColor & activeOpacity & underlayColor are allowed + width: "100%", + maxWidth: undefined, + paddingVertical: input.itemContainer.paddingVertical, + paddingHorizontal: input.itemContainer.paddingHorizontal, + backgroundColor: input.itemContainer.backgroundColor, + underlayColor: input.inputContainer.underlayColor, + overflow: "hidden" + }, + item: { + // All TextStyle properties are allowed + color: input.item.color, + fontSize: input.item.fontSize + }, + selectedItem: { + // All TextStyle properties are allowed + color: input.selectedItem.color, + fontSize: input.selectedItem.fontSize, + backgroundColor: "transparent" + }, + selectedItemContainer: { + // All ViewStyle properties are allowed + width: "100%", + maxWidth: undefined, + borderWidth: input.selectedItemContainer.borderWidth, + borderRadius: input.selectedItemContainer.borderRadius, + borderColor: input.selectedItemContainer.borderColor, + backgroundColor: input.selectedItemContainer.backgroundColor + }, + /* New dropdown styles end */ + useUniformDesign: true, + /* Old dropdown styles start */ + pickerIOS: { + // All ViewStyle properties are allowed + backgroundColor: input.input.backgroundColor + }, + pickerItemIOS: { + // All TextStyle properties are allowed + }, + pickerBackdropIOS: { + // All ViewStyle properties are allowed + }, + pickerTopIOS: { + // All ViewStyle properties are allowed + backgroundColor: input.input.backgroundColor + } + /* Old dropdown styles end */ +}; +export const DropDownVertical = { + container: TextBoxVertical.container, + label: TextBoxVertical.label, + value: DropDown.value, + valueFocused: DropDown.valueFocused, + validationMessage: TextBoxVertical.validationMessage, + valueContainer: DropDown.valueContainer, + valueContainerFocused: DropDown.valueContainerFocused, + iconStyle: DropDown.iconStyle, + menuWrapper: DropDown.menuWrapper, + itemContainer: DropDown.itemContainer, + item: DropDown.item, + useUniformDesign: DropDown.useUniformDesign, + pickerIOS: DropDown.pickerIOS, + pickerItemIOS: DropDown.pickerItemIOS, + pickerBackdropIOS: DropDown.pickerBackdropIOS, + pickerTopIOS: DropDown.pickerTopIOS +}; diff --git a/themesource/atlas_core/native/core/widgets/feedback.js b/themesource/atlas_core/native/core/widgets/feedback.js new file mode 100644 index 0000000..85f5e40 --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/feedback.js @@ -0,0 +1,85 @@ +import { Platform } from "react-native"; +import { background, border, brand, button, contrast, font, input } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Feedback + + Default Class For Mendix Feedback Widget +========================================================================== */ +export const com_mendix_widget_native_feedback_Feedback = { + floatingButton: { + // All ViewStyle properties are allowed + borderRadius: 0, + backgroundColor: background.secondary, + borderTopLeftRadius: button.container.borderRadius, + borderBottomLeftRadius: button.container.borderRadius, + elevation: 1.5, + shadowColor: "#000", + shadowOpacity: 0.2, + shadowRadius: 10, + shadowOffset: { + width: 0, + height: 2 + } + }, + dialog: { + // All ViewStyle properties are allowed + backgroundColor: background.primary + }, + title: { + // All TextStyle properties are allowed + color: font.colorTitle, + fontFamily: font.family + }, + textAreaInput: { + // placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed + color: input.input.color, + borderColor: input.input.borderColor, + backgroundColor: input.input.backgroundColor, + selectionColor: input.input.selectionColor, + placeholderTextColor: input.input.placeholderTextColor, + underlineColorAndroid: "transparent", + height: 100, + fontSize: input.input.fontSize, + fontFamily: font.family, + borderRadius: input.input.borderRadius, + borderTopWidth: input.input.borderWidth, + borderBottomWidth: input.input.borderWidth, + borderWidth: Platform.select({ android: border.width }), + textAlignVertical: "top", + paddingVertical: input.input.paddingVertical, + paddingHorizontal: input.input.paddingHorizontal + }, + switchLabel: { + // All TextStyle properties are allowed + color: input.label.color, + fontSize: input.label.fontSize, + fontFamily: font.family + }, + switchInput: { + // thumbColorOn, thumbColorOff, trackColorOn, trackColorOff and all TextStyle properties are allowed + margin: 0, + padding: 0, + marginRight: Platform.select({ ios: 0, android: -5 }), + thumbColorOn: background.primary, + trackColorOn: brand.success, + thumbColorOff: contrast.regular, + trackColorOff: contrast.lower + }, + button: { + // Just these 3 properties are allowed + color: brand.primary, + borderColor: border.color, + borderWidth: border.width // Required for IOS + }, + activityIndicator: { + // Only color is allowed + color: font.colorTitle + } +}; diff --git a/themesource/atlas_core/native/core/widgets/floatingactionbutton.js b/themesource/atlas_core/native/core/widgets/floatingactionbutton.js new file mode 100644 index 0000000..eda9fe7 --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/floatingactionbutton.js @@ -0,0 +1,81 @@ +import { floatingActionButton, font } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Floating Action Button + + Default Class For Mendix Floating Action Button Widget +========================================================================== */ +export const com_mendix_widget_native_floatingactionbutton_FloatingActionButton = { + container: { + // All ViewStyle properties are allowed + margin: floatingActionButton.container.margin + }, + button: { + // Size, ripplecolor and all ViewStyle properties are allowed + size: floatingActionButton.button.size, + height: floatingActionButton.button.size, + width: floatingActionButton.button.size, + rippleColor: floatingActionButton.button.rippleColor, + backgroundColor: floatingActionButton.button.backgroundColor, + borderColor: floatingActionButton.button.borderColor, + borderRadius: floatingActionButton.button.size / 2, + borderWidth: 1, + elevation: 3, + shadowColor: "#000", + shadowOpacity: 0.3, + shadowRadius: 4, + shadowOffset: { + width: 0, + height: 2 + } + }, + buttonIcon: { + // Size and color are allowed + size: floatingActionButton.buttonIcon.size, + color: floatingActionButton.buttonIcon.color + }, + secondaryButton: { + // Size and all ViewStyle properties are allowed + size: floatingActionButton.secondaryButton.size, + backgroundColor: floatingActionButton.secondaryButton.backgroundColor, + elevation: 2, + shadowColor: "#000", + shadowOpacity: 0.3, + shadowRadius: 4, + shadowOffset: { + width: 0, + height: 2 + } + }, + secondaryButtonIcon: { + // Size and color are allowed + size: floatingActionButton.secondaryButtonIcon.size, + color: floatingActionButton.secondaryButtonIcon.color + }, + secondaryButtonCaption: { + // All TextStyle properties are allowed + color: floatingActionButton.secondaryButtonCaption.color, + fontSize: floatingActionButton.secondaryButtonCaption.fontSize, + lineHeight: floatingActionButton.secondaryButtonCaption.fontSize, + fontFamily: font.family + }, + secondaryButtonCaptionContainer: { + // All ViewStyle properties are allowed + backgroundColor: floatingActionButton.secondaryButtonCaptionContainer.backgroundColor, + borderColor: floatingActionButton.secondaryButtonCaptionContainer.borderColor, + marginHorizontal: 5, + elevation: 2, + shadowOpacity: 0.3, + shadowRadius: 4, + shadowOffset: { + width: 0, + height: 2 + } + } +}; diff --git a/themesource/atlas_core/native/core/widgets/gallery.js b/themesource/atlas_core/native/core/widgets/gallery.js new file mode 100644 index 0000000..fd4063d --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/gallery.js @@ -0,0 +1,60 @@ +import { font, button } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Gallery + + Default Class For Mendix Gallery Widget +========================================================================== */ +export const com_mendix_widget_native_gallery_Gallery = { + container: { + // All ViewStyle properties are allowed + }, + emptyPlaceholder: { + // All ViewStyle properties are allowed + }, + firstItem: { + // All ViewStyle properties are allowed + }, + lastItem: { + // All ViewStyle properties are allowed + }, + list: { + // All ViewStyle properties are allowed + }, + listItem: { + // All ViewStyle properties are allowed + }, + loadMoreButtonContainer: { + // All ViewStyle properties are allowed + alignSelf: "stretch" + }, + loadMoreButtonPressableContainer: { + // Ripplecolor and all ViewStyle properties are allowed + borderWidth: 1, + borderStyle: "solid", + rippleColor: button.container.rippleColor, + borderColor: button.primary.borderColor, + backgroundColor: button.primary.backgroundColor, + alignItems: "center", + justifyContent: "center", + borderRadius: button.container.borderRadius, + minWidth: button.container.minWidth, + minHeight: button.container.minHeight, + paddingVertical: button.container.paddingVertical, + paddingHorizontal: button.container.paddingHorizontal + }, + loadMoreButtonCaption: { + // All TextStyle properties are allowed + color: button.primary.color, + fontSize: button.caption.fontSize, + fontFamily: font.family, + fontWeight: button.caption.fontWeight, + lineHeight: font.lineHeight + } +}; diff --git a/themesource/atlas_core/native/core/widgets/gallerytextfilter.js b/themesource/atlas_core/native/core/widgets/gallerytextfilter.js new file mode 100644 index 0000000..197649b --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/gallerytextfilter.js @@ -0,0 +1,43 @@ +import { brand, input, spacing } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Gallery text filter + + Default Class For Mendix Gallery Text Filter Widget +========================================================================== */ +export const com_mendix_widget_native_gallerytextfilter_GalleryTextFilter = { + textInputContainer: { + // All ViewStyle properties are allowed + flexDirection: "row", + justifyContent: "space-between", + borderWidth: input.input.borderWidth, + borderColor: input.input.borderColor, + borderRadius: input.input.borderRadius, + paddingEnd: spacing.small + }, + textInputContainerFocused: { + // All ViewStyle properties are allowed + borderColor: brand.primary + }, + textInput: { + // All TextStyle properties are allowed + height: 40, + marginStart: spacing.regular, + width: "90%", + color: input.input.color, + backgroundColor: input.input.backgroundColor, + selectionColor: input.input.selectionColor, + placeholderTextColor: input.input.placeholderTextColor + }, + textInputClearIcon: { + // All ViewStyle properties are allowed + justifyContent: "center", + alignContent: "center" + } +}; diff --git a/themesource/atlas_core/native/core/widgets/image.js b/themesource/atlas_core/native/core/widgets/image.js new file mode 100644 index 0000000..8c5d2c9 --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/image.js @@ -0,0 +1,55 @@ +import { contrast, image } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Image + + Default Class For Mendix Image Widgets +========================================================================== */ +export const Image = { + container: { + // rippleColor & all ViewStyle properties are allowed + rippleColor: contrast.lowest, + maxWidth: "100%", + maxHeight: "100%" + }, + containerDisabled: { + // All ViewStyle properties are allowed + }, + image: { + // All ImageStyle properties are allowed + maxWidth: "100%", + maxHeight: "100%", + resizeMode: "cover" + }, + imageDisabled: { + // All ImageStyle properties are allowed + opacity: image.imageDisabled.opacity + } +}; +export const ImageViewer = { + container: { + // RippleColor & All ViewStyle properties are allowed + rippleColor: contrast.lowest, + maxWidth: "100%", + maxHeight: "100%" + }, + containerDisabled: { + // All ViewStyle properties are allowed + }, + image: { + // All ImageStyle properties are allowed + maxWidth: "100%", + maxHeight: "100%", + resizeMode: "cover" + }, + imageDisabled: { + // All ImageStyle properties are allowed + opacity: image.imageDisabled.opacity + } +}; diff --git a/themesource/atlas_core/native/core/widgets/introscreen.js b/themesource/atlas_core/native/core/widgets/introscreen.js new file mode 100644 index 0000000..4e2dc34 --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/introscreen.js @@ -0,0 +1,127 @@ +import { isIphoneWithNotch } from "../helpers/_functions/device"; +import { font, spacing, introScreen } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Intro Screen + + Default Class For Mendix Intro Screen Widget +========================================================================== */ +// Button styles when the chose to show the indicator above the buttons +export const introScreenButtonPaginationAbove = { + container: { + // Ripplecolor and all ViewStyle properties are allowed + flex: 1, + flexDirection: "row", + alignSelf: "stretch", + alignItems: "center", + justifyContent: "center", + paddingVertical: introScreen.buttonPaginationAbove.container.paddingVertical, + backgroundColor: introScreen.buttonPaginationAbove.container.backgroundColor + }, + icon: { + // Size and color are allowed + color: introScreen.button.icon.color, + size: introScreen.button.icon.size + }, + caption: { + // All TextStyle properties are allowed + color: introScreen.button.caption.color, + fontSize: introScreen.button.caption.fontSize, + fontFamily: font.family, + fontWeight: introScreen.button.caption.fontWeight, + textTransform: introScreen.button.caption.textTransform, + paddingHorizontal: introScreen.button.caption.paddingHorizontal + } +}; +// Button styles when the chose to show the indicator between the buttons +export const introScreenButtonPaginationBetween = { + container: { + // Ripplecolor and all ViewStyle properties are allowed + flexDirection: "row", + alignItems: "center", + justifyContent: "center" + }, + icon: { + // Size and color are allowed + color: introScreen.button.icon.color, + size: introScreen.button.icon.size + }, + caption: { + // All TextStyle properties are allowed + color: introScreen.button.caption.color, + fontSize: introScreen.button.caption.fontSize, + fontFamily: font.family, + fontWeight: introScreen.button.caption.fontWeight, + textTransform: introScreen.button.caption.textTransform, + paddingHorizontal: introScreen.button.caption.paddingHorizontal + } +}; +// Default styles +export const com_mendix_widget_native_introscreen_IntroScreen = { + fullscreenContainer: { + // All ViewStyle properties are allowed + backgroundColor: introScreen.fullscreenContainer.backgroundColor + }, + popupContainer: { + // All ViewStyle properties are allowed + paddingVertical: introScreen.popupContainer.paddingVertical, + paddingHorizontal: introScreen.popupContainer.paddingHorizontal, + backgroundColor: introScreen.popupContainer.backgroundColor + }, + // Pagination styles + paginationContainer: { + // All ViewStyle properties are allowed + position: "absolute", + left: 0, + right: 0, + width: "100%", + marginTop: spacing.largest, + bottom: isIphoneWithNotch ? 22 : 0, + justifyContent: "space-between", + alignItems: "center" + }, + paginationText: { + // All TextStyle properties are allowed + color: introScreen.pagination.text.color, + fontSize: introScreen.pagination.text.fontSize, + fontFamily: font.family + }, + dotStyle: { + // All ViewStyle properties are allowed + width: introScreen.pagination.dotStyle.size, + height: introScreen.pagination.dotStyle.size, + backgroundColor: introScreen.pagination.dotStyle.backgroundColor + }, + activeDotStyle: { + // All ViewStyle properties are allowed + width: introScreen.pagination.activeDotStyle.size, + height: introScreen.pagination.activeDotStyle.size, + backgroundColor: introScreen.pagination.activeDotStyle.backgroundColor + }, + // Button styles + paginationAbove: { + buttonsContainer: { + // All ViewStyle properties are allowed + flex: 1, + flexDirection: "row", + justifyContent: "center", + width: "100%" + }, + buttonSkip: introScreenButtonPaginationAbove, + buttonPrevious: introScreenButtonPaginationAbove, + buttonNext: introScreenButtonPaginationAbove, + buttonDone: introScreenButtonPaginationAbove + }, + paginationBetween: { + buttonSkip: introScreenButtonPaginationBetween, + buttonPrevious: introScreenButtonPaginationBetween, + buttonNext: introScreenButtonPaginationBetween, + buttonDone: introScreenButtonPaginationBetween + } +}; diff --git a/themesource/atlas_core/native/core/widgets/layoutgrid.js b/themesource/atlas_core/native/core/widgets/layoutgrid.js new file mode 100644 index 0000000..a0c8365 --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/layoutgrid.js @@ -0,0 +1,121 @@ +import { layoutGrid } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Intro Screen + + Default Class For Mendix Layoutgrid Widget +========================================================================== */ +export const LayoutGrid = { + container: {} +}; +export const row = { + container: { + flexDirection: "row", + flexWrap: "wrap", + marginHorizontal: -layoutGrid.gutterSize + } +}; +export const col = { + container: { + flex: 1, + paddingHorizontal: layoutGrid.gutterSize + } +}; +export const colFitToContent = { + container: { + flex: -1, + paddingHorizontal: layoutGrid.gutterSize + } +}; +export const col1 = { + container: { + flexBasis: "8.333%", + paddingHorizontal: layoutGrid.gutterSize + } +}; +export const col2 = { + container: { + flexBasis: "16.666%", + paddingHorizontal: layoutGrid.gutterSize + } +}; +export const col3 = { + container: { + flexBasis: "25%", + paddingHorizontal: layoutGrid.gutterSize + } +}; +export const col4 = { + container: { + flexBasis: "33.333%", + paddingHorizontal: layoutGrid.gutterSize + } +}; +export const col5 = { + container: { + flexBasis: "41.666%", + paddingHorizontal: layoutGrid.gutterSize + } +}; +export const col6 = { + container: { + flexBasis: "50%", + paddingHorizontal: layoutGrid.gutterSize + } +}; +export const col7 = { + container: { + flexBasis: "58.333%", + paddingHorizontal: layoutGrid.gutterSize + } +}; +export const col8 = { + container: { + flexBasis: "66.666%", + paddingHorizontal: layoutGrid.gutterSize + } +}; +export const col9 = { + container: { + flexBasis: "75%", + paddingHorizontal: layoutGrid.gutterSize + } +}; +export const col10 = { + container: { + flexBasis: "83.333%", + paddingHorizontal: layoutGrid.gutterSize + } +}; +export const col11 = { + container: { + flexBasis: "91.666%", + paddingHorizontal: layoutGrid.gutterSize + } +}; +export const col12 = { + container: { + flexBasis: "100%", + paddingHorizontal: layoutGrid.gutterSize + } +}; +export const noGutters = { + container: { + paddingLeft: 0, + paddingRight: 0, + paddingHorizontal: 0 + } +}; +export const noGuttersRow = { + container: { + marginLeft: 0, + marginRight: 0, + marginHorizontal: 0 + } +}; diff --git a/themesource/atlas_core/native/core/widgets/linechart.js b/themesource/atlas_core/native/core/widgets/linechart.js new file mode 100644 index 0000000..99b7ba6 --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/linechart.js @@ -0,0 +1,168 @@ +import { border, brand, font, spacing } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Line Chart + + Default Class For Mendix Line Chart Widget +========================================================================== */ +export const com_mendix_widget_native_linechart_LineChart = { + container: { + // All ViewStyle properties are allowed + }, + errorMessage: { + // All TextStyle properties are allowed + fontFamily: font.family, + fontSize: font.sizeSmall, + fontWeight: font.weightNormal + }, + chart: { + // All ViewStyle properties are allowed + }, + grid: { + /* + Allowed properties: + - backgroundColor (string) + - dashArray (string) + - lineColor (string) + - lineWidth (number) + - padding (number) + - paddingBottom (number) + - paddingHorizontal (number) + - paddingLeft (number) + - paddingRight (number) + - paddingTop (number) + - paddingVertical (number) + */ + lineColor: border.color, + paddingBottom: 32, + paddingLeft: 32, + paddingRight: 8, + paddingTop: 8 + }, + xAxis: { + /* + Allowed properties: + - color (string) + - dashArray (string) + - fontFamily (string) + - fontSize (number) + - fontStyle ("normal" or "italic") + - fontWeight ("normal" or "bold" or "100" or "200" or "300" or "400" or "500" or "600" or "700" or "800" or "900") + - lineColor (string) + - lineWidth (number) + */ + color: font.colorTitle, + fontFamily: font.family, + fontSize: font.sizeSmall, + fontWeight: font.weightNormal, + lineColor: border.color, + label: { + /* + All TextStyle properties are allowed and: + - relativePositionGrid ("bottom" or "right") + */ + color: font.colorParagraph, + alignSelf: "center", + marginHorizontal: 0, + marginVertical: spacing.small, + fontFamily: font.family, + fontSize: font.sizeSmall, + fontWeight: font.weightNormal, + relativePositionGrid: "bottom" + } + }, + yAxis: { + /* + Allowed properties: + - color (string) + - dashArray (string) + - fontFamily (string) + - fontSize (number) + - fontStyle ("normal" or "italic") + - fontWeight ("normal" or "bold" or "100" or "200" or "300" or "400" or "500" or "600" or "700" or "800" or "900") + - lineColor (string) + - lineWidth (number) + */ + color: font.colorTitle, + fontFamily: font.family, + fontSize: font.sizeSmall, + fontWeight: font.weightNormal, + lineColor: border.color, + label: { + /* + All TextStyle properties are allowed and: + - relativePositionGrid ("top" or "left") + */ + color: font.colorParagraph, + marginHorizontal: 0, + marginVertical: spacing.small, + fontFamily: font.family, + fontSize: font.sizeSmall, + fontWeight: font.weightNormal, + relativePositionGrid: "top" + } + }, + lines: { + /* + Allowed properties: + - lineColorPalette (string with array of colors separated by ';') + */ + lineColorPalette: Object.entries(brand) + .reduce((accumulator, [key, value]) => (key.endsWith("Light") ? accumulator : [...accumulator, value]), []) + .join(";"), + customLineStyles: { + any_custom_line_style_name: { + line: { + /* + Allowed properties: + - dashArray (string) + - ending ("flat" or "round") + - lineColor (string) + - lineWidth (number) + */ + }, + markers: { + /* + Allowed properties: + - backgroundColor (string) + - borderColor (string) + - borderWidth (number) + - display ("false" or "underneath" or "onTop") + - size (number) + - symbol ("circle" or "diamond" or "plus" or "minus" or "square" or "star" or "triangleDown" or "triangleUp") + */ + } + } + } + }, + legend: { + container: { + // All ViewStyle properties are allowed + justifyContent: "flex-start", + marginHorizontal: 0, + marginVertical: spacing.small + }, + item: { + // All ViewStyle properties are allowed + padding: 0, + paddingRight: spacing.regular + }, + indicator: { + // All ViewStyle properties are allowed + marginRight: spacing.small + }, + label: { + // All TextStyle properties are allowed + color: font.colorTitle, + fontFamily: font.family, + fontSize: font.sizeSmall, + fontWeight: font.weightNormal + } + } +}; diff --git a/themesource/atlas_core/native/core/widgets/listview.js b/themesource/atlas_core/native/core/widgets/listview.js new file mode 100644 index 0000000..5ec4e2c --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/listview.js @@ -0,0 +1,24 @@ +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + List View + + Default Class For Mendix List View Widget +========================================================================== */ +export const ListView = { + container: { + // All ViewStyle properties are allowed + }, + listItem: { + // All ViewStyle properties are allowed + }, + listItemDisabled: { + // All ViewStyle properties are allowed + opacity: 0.6 + } +}; diff --git a/themesource/atlas_core/native/core/widgets/listviewswipe.js b/themesource/atlas_core/native/core/widgets/listviewswipe.js new file mode 100644 index 0000000..6344352 --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/listviewswipe.js @@ -0,0 +1,38 @@ +import { background, listViewSwipe } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + List View Swipe + + Default Class For Mendix List View Swipe Widget +========================================================================== */ +export const com_mendix_widget_native_listviewswipe_ListViewSwipe = { + container: { + // All ViewStyle properties are allowed + flex: 1, + alignItems: "stretch", + justifyContent: "space-between", + backgroundColor: background.primary + }, + leftAction: { + // PanelSize & All ViewStyle properties are allowed + panelSize: listViewSwipe.leftAction.panelSize, + flex: 1, + flexDirection: "row", + alignItems: "stretch", + backgroundColor: listViewSwipe.leftAction.backgroundColor + }, + rightAction: { + // PanelSize & All ViewStyle properties are allowed + panelSize: listViewSwipe.rightAction.panelSize, + flex: 1, + flexDirection: "row", + alignItems: "stretch", + backgroundColor: listViewSwipe.rightAction.backgroundColor + } +}; diff --git a/themesource/atlas_core/native/core/widgets/maps.js b/themesource/atlas_core/native/core/widgets/maps.js new file mode 100644 index 0000000..1f5e42b --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/maps.js @@ -0,0 +1,33 @@ +import { brand } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Maps + + Default Class For Mendix Maps Widget +========================================================================== */ +export const com_mendix_widget_native_maps_Maps = { + container: { + // All ViewStyle properties are allowed + flex: 1, + maxWidth: "100%", + aspectRatio: 4 / 2 + }, + loadingOverlay: { + // All ViewStyle properties are allowed + }, + loadingIndicator: { + // Only color is allowed + color: brand.primary + }, + marker: { + // Only color & opacity are allowed + color: brand.primary, + opacity: 1 + } +}; diff --git a/themesource/atlas_core/native/core/widgets/navigation.js b/themesource/atlas_core/native/core/widgets/navigation.js new file mode 100644 index 0000000..e77a35c --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/navigation.js @@ -0,0 +1,75 @@ +import { border, font, navigation, spacing } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + BottomBar / ProgressOverlay + + Default Class For Mendix BottomBar and ProgressOverlay +========================================================================== */ +export const navigationStyle = { + bottomBar: { + container: { + // All ViewStyle properties are allowed + backgroundColor: navigation.bottomBar.backgroundColor + }, + label: { + // All TextStyle properties are allowed + color: navigation.bottomBar.color, + fontFamily: font.family, + fontSize: navigation.bottomBar.fontSize + }, + selectedLabel: { + // All TextStyle properties are allowed + color: navigation.bottomBar.selectedTextColor, + fontFamily: font.family, + fontSize: navigation.bottomBar.fontSize + }, + icon: { + // All TextStyle properties are allowed + color: navigation.bottomBar.color, + fontSize: navigation.bottomBar.iconSize + }, + selectedIcon: { + // All TextStyle properties are allowed + color: navigation.bottomBar.selectedIconColor, + fontSize: navigation.bottomBar.iconSize + } + }, + progressOverlay: { + background: { + // All ViewStyle properties are allowed + backgroundColor: navigation.progressOverlay.backgroundColor + }, + container: { + // All ViewStyle properties are allowed + backgroundColor: navigation.progressOverlay.containerBackgroundColor, + paddingHorizontal: spacing.largest, + paddingVertical: spacing.large, + borderRadius: border.radiusSmall, + elevation: navigation.progressOverlay.elevation, + shadowColor: navigation.progressOverlay.shadowColor, + shadowOpacity: navigation.progressOverlay.shadowOpacity, + shadowRadius: navigation.progressOverlay.shadowRadius, + shadowOffset: { + width: 0, + height: 2 + } + }, + activityIndicator: { + // Color, Size & All ViewStyle properties are allowed + color: navigation.progressOverlay.activityIndicatorColor + }, + text: { + // All TextStyle properties are allowed + color: navigation.progressOverlay.color, + marginTop: spacing.small, + fontFamily: font.family, + fontSize: navigation.progressOverlay.fontSize + } + } +}; diff --git a/themesource/atlas_core/native/core/widgets/pagetitle.js b/themesource/atlas_core/native/core/widgets/pagetitle.js new file mode 100644 index 0000000..aa20b25 --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/pagetitle.js @@ -0,0 +1,24 @@ +import { font } from "../../variables"; +import { TextHeading1 } from "./typography"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Page Title + + Default Class For Mendix Page Title Widget +========================================================================== */ +export const PageTitle = { + container: { + // All ViewStyle properties are allowed + }, + text: { + // All TextStyle properties are allowed + ...TextHeading1.text, + color: font.colorTitle + } +}; diff --git a/themesource/atlas_core/native/core/widgets/piedoughnutchart.js b/themesource/atlas_core/native/core/widgets/piedoughnutchart.js new file mode 100644 index 0000000..7639a0c --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/piedoughnutchart.js @@ -0,0 +1,57 @@ +import { brand } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Bar Chart + + Default Class For Mendix Bar Chart Widget +========================================================================== */ +export const com_mendix_widget_native_piedoughnutchart_PieDoughnutChart = { + container: { + // All ViewStyle properties are allowed + flex: 1 + }, + slices: { + /* + Allowed properties: + - colorPalette (string with array of colors separated by ';') + - innerRadius (number) + - padding (number) + - paddingBottom (number) + - paddingHorizontal (number) + - paddingLeft (number) + - paddingRight (number) + - paddingTop (number) + - paddingVertical (number) + */ + padding: 40, + colorPalette: Object.entries(brand) + .reduce((accumulator, [key, value]) => (key.endsWith("Light") ? accumulator : [...accumulator, value]), []) + .join(";"), + customStyles: { + your_defined_key: { + slice: { + /* + Allowed properties: + - color (string) + */ + }, + label: { + /* + Allowed properties: + - color (string) + - fontFamily (string) + - fontSize (number) + - fontStyle ("normal" or "italic") + - fontWeight ("normal" or "bold" or "100" or "200" or "300" or "400" or "500" or "600" or "700" or "800" or "900") + */ + } + } + } + } +}; diff --git a/themesource/atlas_core/native/core/widgets/popupmenu.js b/themesource/atlas_core/native/core/widgets/popupmenu.js new file mode 100644 index 0000000..0cb7700 --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/popupmenu.js @@ -0,0 +1,59 @@ +import { brand, contrast, font, background, border } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Popup Menu + + Default Class For Mendix Popup Menu Widget +========================================================================== */ +export const com_mendix_widget_native_popupmenu_PopupMenu = { + container: { + // All ViewStyle properties are allowed + backgroundColor: background.secondary, + borderRadius: 10, + shadowColor: "#000", + shadowOpacity: 0.2, + shadowRadius: 10, + elevation: 16 + }, + custom: { + container: { + // All ViewStyle properties are allowed + }, + itemStyle: { + rippleColor: contrast.lower + } + }, + basic: { + dividerColor: border.color, + container: { + // All ViewStyle properties are allowed + height: 40 + }, + itemStyle: { + ellipsizeMode: "tail", + rippleColor: contrast.lower, + defaultStyle: { + // All TextStyle properties are allowed + fontSize: font.size, + color: font.colorTitle + }, + primaryStyle: { + // All TextStyle properties are allowed + color: brand.primary + }, + dangerStyle: { + // All TextStyle properties are allowed + color: brand.danger + }, + customStyle: { + // All TextStyle properties are allowed + } + } + } +}; diff --git a/themesource/atlas_core/native/core/widgets/progressbar.js b/themesource/atlas_core/native/core/widgets/progressbar.js new file mode 100644 index 0000000..7e4dc94 --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/progressbar.js @@ -0,0 +1,35 @@ +import { progressBar } from "../../variables"; +import { TextBox } from "./textbox"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Progress Bar + + Default Class For Mendix Progress Bar Widget +========================================================================== */ +export const com_mendix_widget_native_progressbar_ProgressBar = { + container: { + // All ViewStyle properties are allowed + alignSelf: "stretch" + }, + bar: { + // All ViewStyle properties are allowed + height: progressBar.bar.height, + borderWidth: 0, + borderRadius: progressBar.bar.height / 2, + backgroundColor: progressBar.bar.backgroundColor + }, + fill: { + // Only the backgroundColor property is allowed + backgroundColor: progressBar.fill.backgroundColor + }, + validationMessage: { + // All TextStyle properties are allowed + ...TextBox.validationMessage + } +}; diff --git a/themesource/atlas_core/native/core/widgets/progresscircle.js b/themesource/atlas_core/native/core/widgets/progresscircle.js new file mode 100644 index 0000000..a0cd98c --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/progresscircle.js @@ -0,0 +1,41 @@ +import { font, progressCircle } from "../../variables"; +import { TextBox } from "./textbox"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Progress Circle + + Default Class For Mendix Progress Circle Widget +========================================================================== */ +export const com_mendix_widget_native_progresscircle_ProgressCircle = { + container: { + // All ViewStyle properties are allowed + }, + circle: { + // Only the size & borderWidth & borderColor properties are allowed + size: progressCircle.circle.size, + borderWidth: 0 + }, + fill: { + // Only the width & backgroundColor & lineCapRounded properties are allowed + width: progressCircle.fill.width, + lineCapRounded: progressCircle.fill.lineCapRounded, + backgroundColor: progressCircle.fill.backgroundColor + }, + text: { + // All TextStyle properties are allowed + color: progressCircle.text.color, + fontSize: progressCircle.text.fontSize, + fontWeight: progressCircle.text.fontWeight, + fontFamily: font.family + }, + validationMessage: { + // All TextStyle properties are allowed + ...TextBox.validationMessage + } +}; diff --git a/themesource/atlas_core/native/core/widgets/qrcode.js b/themesource/atlas_core/native/core/widgets/qrcode.js new file mode 100644 index 0000000..ce19cdb --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/qrcode.js @@ -0,0 +1,24 @@ +import { background, contrast } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + QR Code + + Default Class For Mendix QR Code Widget +========================================================================== */ +export const com_mendix_widget_native_qrcode_QRCode = { + container: { + // All ViewStyle properties are allowed + }, + qrcode: { + // Only size, color and backgroundColor are allowed + size: 100, + color: contrast.highest, + backgroundColor: background.primary + } +}; diff --git a/themesource/atlas_core/native/core/widgets/radiobuttons.js b/themesource/atlas_core/native/core/widgets/radiobuttons.js new file mode 100644 index 0000000..c60d753 --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/radiobuttons.js @@ -0,0 +1,48 @@ +import { radioButtons } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + RadioButtons + + Default Class For Mendix RadioButtons Widget +========================================================================== */ +export const com_mendix_widget_native_radiobuttons_RadioButtons = { + labelTextStyle: { + // All TextStyle properties are allowed + ...radioButtons.labelTextStyle + }, + radioButtonItemContainerStyle: { + // All ViewStyle properties are allowed + ...radioButtons.radioButtonItemContainerStyle + }, + radioButtonItemContainerHorizontalStyle: { + // All ViewStyle properties are allowed + ...radioButtons.radioButtonItemContainerHorizontalStyle + }, + circularButtonStyle: { + // All ViewStyle properties are allowed + ...radioButtons.circularButtonStyle + }, + activeButtonStyle: { + // All ViewStyle properties are allowed + ...radioButtons.activeButtonStyle + }, + radioButtonItemContainerDisabledStyle: { + // In case radio buttons is not selectable + // All ViewStyle properties are allowed + ...radioButtons.radioButtonItemContainerDisabledStyle + }, + radioButtonItemTitleStyle: { + // All TextStyle properties are allowed + ...radioButtons.radioButtonItemTitleStyle + }, + validationMessage: { + // All TextStyle properties are allowed + ...radioButtons.validationMessage + } +}; diff --git a/theme/styles/native/core/widgets/rangeslider.js b/themesource/atlas_core/native/core/widgets/rangeslider.js similarity index 100% rename from theme/styles/native/core/widgets/rangeslider.js rename to themesource/atlas_core/native/core/widgets/rangeslider.js diff --git a/themesource/atlas_core/native/core/widgets/rating.js b/themesource/atlas_core/native/core/widgets/rating.js new file mode 100644 index 0000000..a6250cf --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/rating.js @@ -0,0 +1,30 @@ +import { spacing, rating } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Rating + + Default Class For Mendix Rating Widget +========================================================================== */ +export const com_mendix_widget_native_rating_Rating = { + container: { + // All ViewStyle properties are allowed + justifyContent: "center" + }, + containerDisabled: { + // All ViewStyle properties are allowed + opacity: rating.containerDisabled.opacity + }, + icon: { + // Size, color, selectedColor & all ViewStyle properties are allowed + size: rating.icon.size, + marginRight: spacing.smaller, + color: rating.icon.color, + selectedColor: rating.icon.selectedColor + } +}; diff --git a/themesource/atlas_core/native/core/widgets/referenceselector.js b/themesource/atlas_core/native/core/widgets/referenceselector.js new file mode 100644 index 0000000..7dc9589 --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/referenceselector.js @@ -0,0 +1,125 @@ +import { DropDown, DropDownVertical } from "./dropdown"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Reference Selector + + Default Class For Mendix Reference Selector Widget +========================================================================== */ +export const ReferenceSelector = { + container: { + // All ViewStyle properties are allowed + ...DropDown.container + }, + containerDisabled: { + // All ViewStyle properties are allowed + ...DropDown.containerDisabled + }, + label: { + // numberOfLines and all TextStyle properties are allowed + ...DropDown.label + }, + labelDisabled: { + // All TextStyle properties are allowed + ...DropDown.labelDisabled + }, + value: { + // All TextStyle properties & placeholderTextColor are allowed + ...DropDown.value + }, + valueDisabled: { + // All TextStyle properties are allowed + ...DropDown.valueDisabled + }, + valueFocused: { + // All TextStyle properties are allowed + ...DropDown.valueFocused + }, + validationMessage: { + // All TextStyle properties are allowed + ...DropDown.validationMessage + }, + /* New dropdown styles start */ + valueContainer: { + // All ViewStyle properties & rippleColor are allowed + ...DropDown.valueContainer + }, + valueContainerDisabled: { + // All ViewStyle properties are allowed + }, + valueContainerFocused: { + // All ViewStyle properties are allowed + ...DropDown.valueContainerFocused + }, + valueContainerError: { + // All ViewStyle properties are allowed + ...DropDown.valueContainerError + }, + iconStyle: { + // All TextStyle properties are allowed + ...DropDown.iconStyle + }, + menuWrapper: { + // All ViewStyle properties are allowed + ...DropDown.menuWrapper + }, + itemContainer: { + // All ViewStyle properties are allowed + ...DropDown.itemContainer + }, + item: { + // All TextStyle properties are allowed + ...DropDown.item + }, + selectedItem: { + // All TextStyle properties are allowed + ...DropDown.selectedItem + }, + selectedItemContainer: { + // All ViewStyle properties are allowed + ...DropDown.selectedItemContainer + }, + /* New dropdown styles end */ + useUniformDesign: DropDown.useUniformDesign, + /* Old dropdown styles start */ + pickerIOS: { + // All ViewStyle properties are allowed + ...DropDown.pickerIOS + }, + pickerItemIOS: { + // All TextStyle properties are allowed + ...DropDown.pickerItemIOS + }, + pickerBackdropIOS: { + // All ViewStyle properties are allowed + ...DropDown.pickerBackdropIOS + }, + pickerTopIOS: { + // All ViewStyle properties are allowed + ...DropDown.pickerTopIOS + } + /* Old dropdown styles end */ +}; +export const ReferenceSelectorVertical = { + container: DropDownVertical.container, + label: DropDownVertical.label, + value: DropDownVertical.value, + valueFocused: DropDownVertical.valueFocused, + validationMessage: DropDownVertical.validationMessage, + valueContainer: DropDownVertical.valueContainer, + valueContainerFocused: DropDownVertical.valueContainerFocused, + iconStyle: DropDownVertical.iconStyle, + menuWrapper: DropDownVertical.menuWrapper, + itemContainer: DropDownVertical.itemContainer, + item: DropDownVertical.item, + useUniformDesign: DropDownVertical.useUniformDesign, + pickerIOS: DropDownVertical.pickerIOS, + pickerItemIOS: DropDownVertical.pickerItemIOS, + pickerBackdropIOS: DropDownVertical.pickerBackdropIOS, + pickerTopIOS: DropDownVertical.pickerTopIOS +}; diff --git a/themesource/atlas_core/native/core/widgets/safeareaview.js b/themesource/atlas_core/native/core/widgets/safeareaview.js new file mode 100644 index 0000000..5d187b5 --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/safeareaview.js @@ -0,0 +1,17 @@ +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Container + + Default Class For Mendix Safe Area View Widget +========================================================================== */ +export const com_mendix_widget_native_safeareaview_SafeAreaView = { + container: { + // All ViewStyle properties are allowed + } +}; diff --git a/themesource/atlas_core/native/core/widgets/slider.js b/themesource/atlas_core/native/core/widgets/slider.js new file mode 100644 index 0000000..2e8f83d --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/slider.js @@ -0,0 +1,76 @@ +import { slider } from "../../variables"; +import { TextBox } from "./textbox"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Slider + + Default Class For Mendix Slider Widget +========================================================================== */ +export const com_mendix_widget_native_slider_Slider = { + container: { + // All ViewStyle properties are allowed + alignSelf: "stretch" + }, + track: { + // All ViewStyle properties are allowed + height: slider.track.height, + backgroundColor: slider.track.backgroundColor + }, + trackDisabled: { + // All ViewStyle properties are allowed + height: slider.track.height, + backgroundColor: slider.trackDisabled.backgroundColor, + opacity: slider.trackDisabled.opacity + }, + highlight: { + // All ViewStyle properties are allowed + height: slider.track.height, + backgroundColor: slider.highlight.backgroundColor + }, + highlightDisabled: { + // All ViewStyle properties are allowed + height: slider.track.height, + backgroundColor: slider.highlightDisabled.backgroundColor + }, + marker: { + // All ViewStyle properties are allowed + backgroundColor: slider.marker.backgroundColor, + width: slider.marker.size, + height: slider.marker.size, + borderRadius: slider.marker.size / 2, + borderColor: slider.marker.borderColor, + elevation: 2, + shadowColor: "#000", + shadowOpacity: 0.1, + shadowOffset: { width: 0, height: 1 } + }, + markerActive: { + // All ViewStyle properties are allowed + width: slider.markerActive.size, + height: slider.markerActive.size, + borderRadius: slider.markerActive.size / 2, + borderWidth: 0 + }, + markerDisabled: { + // All ViewStyle properties are allowed + backgroundColor: slider.markerDisabled.backgroundColor, + width: slider.markerDisabled.size, + height: slider.markerDisabled.size, + borderRadius: slider.markerDisabled.size / 2, + borderColor: slider.markerDisabled.borderColor, + elevation: 2, + shadowColor: "#000", + shadowOpacity: 0.1, + shadowOffset: { width: 0, height: 1 } + }, + validationMessage: { + // All TextStyle properties are allowed + ...TextBox.validationMessage + } +}; diff --git a/themesource/atlas_core/native/core/widgets/switch.js b/themesource/atlas_core/native/core/widgets/switch.js new file mode 100644 index 0000000..402a48a --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/switch.js @@ -0,0 +1,63 @@ +import { Platform } from "react-native"; +import { background, backgroundDefaults, border, brand, font, spacing } from "../../variables"; +import { TextBox } from "./textbox"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Switch + + Default Class For Mendix Switch Widget +========================================================================== */ +export const com_mendix_widget_native_switch_Switch = { + container: { + // All ViewStyle properties are allowed + ...TextBox.container, + paddingVertical: spacing.smallest, + justifyContent: "center" + }, + containerDisabled: { + // All ViewStyle properties are allowed + ...TextBox.containerDisabled + }, + label: { + // numberOfLines and all TextStyle properties are allowed + ...TextBox.label + }, + labelDisabled: { + // All TextStyle properties are allowed + ...TextBox.labelDisabled + }, + input: { + // thumbColorOn, thumbColorOff, trackColorOn, trackColorOff and all TextStyle properties are allowed + backgroundColor: "transparent", + marginRight: Platform.select({ android: -3 }), + thumbColorOn: backgroundDefaults.primaryLight, + trackColorOn: brand.primary, + thumbColorOff: "#FFF", + trackColorOff: border.color + }, + inputDisabled: { + // thumbColorOn, thumbColorOff, trackColorOn, trackColorOff and all TextStyle properties are allowed + thumbColorOn: background.secondary, + trackColorOn: font.colorDisabled, + thumbColorOff: background.secondary, + trackColorOff: border.color + }, + inputError: { + // thumbColorOn, thumbColorOff, trackColorOn, trackColorOff and all TextStyle properties are allowed + thumbColorOn: backgroundDefaults.primaryLight, + trackColorOn: brand.danger, + thumbColorOff: "#FFF", + trackColorOff: brand.danger + }, + validationMessage: { + // All TextStyle properties are allowed + ...TextBox.validationMessage, + alignSelf: "stretch" + } +}; diff --git a/themesource/atlas_core/native/core/widgets/tabcontainer.js b/themesource/atlas_core/native/core/widgets/tabcontainer.js new file mode 100644 index 0000000..1f68372 --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/tabcontainer.js @@ -0,0 +1,71 @@ +import { badge, font, tabContainer } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Tab Container + + Default Class For Mendix Tab Container Widget +========================================================================== */ +export const TabContainer = { + container: { + // All ViewStyle properties are allowed + flex: 1 + }, + tabBar: { + // bounces, pressColor, pressOpacity, scrollEnabled and all ViewStyle properties are allowed + bounces: true, + scrollEnabled: false, + pressOpacity: 0.8, + pressColor: tabContainer.tabBar.pressColor, + backgroundColor: tabContainer.tabBar.backgroundColor, + height: 48, + justifyContent: "center" + }, + indicator: { + // All ViewStyle properties are allowed + backgroundColor: tabContainer.indicator.backgroundColor, + height: tabContainer.indicator.height + }, + tab: { + // All ViewStyle properties are allowed + padding: undefined, + minHeight: undefined, + paddingVertical: tabContainer.tab.paddingVertical + }, + label: { + // All TextStyle properties are allowed + color: tabContainer.label.color, + fontSize: tabContainer.label.fontSize, + fontFamily: font.family, + fontWeight: tabContainer.label.fontWeight, + textTransform: tabContainer.label.textTransform + }, + activeLabel: { + // All TextStyle properties are allowed + color: tabContainer.activeLabel.color, + fontSize: tabContainer.activeLabel.fontSize, + fontFamily: font.family, + fontWeight: tabContainer.activeLabel.fontWeight, + textTransform: tabContainer.activeLabel.textTransform + }, + badgeContainer: { + // All ViewStyle properties are allowed + borderRadius: tabContainer.badgeContainer.borderRadius, + backgroundColor: badge.default.backgroundColor, + paddingVertical: tabContainer.badgeContainer.paddingVertical, + paddingHorizontal: tabContainer.badgeContainer.paddingHorizontal, + marginLeft: 8 + }, + badgeCaption: { + // All TextStyle properties are allowed + fontSize: font.size, + color: badge.default.color, + fontFamily: font.family, + fontWeight: badge.fontWeight + } +}; diff --git a/themesource/atlas_core/native/core/widgets/textarea.js b/themesource/atlas_core/native/core/widgets/textarea.js new file mode 100644 index 0000000..ab4f552 --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/textarea.js @@ -0,0 +1,83 @@ +var _a, _b, _c, _d, _e, _f; +import { TextBox, TextBoxVertical } from "./textbox"; +import { input } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Text Area + + Default Class For Mendix Text Area Widget +========================================================================== */ +export const TextArea = { + container: { + // All ViewStyle properties are allowed + ...TextBox.container + }, + containerDisabled: { + // All ViewStyle properties are allowed + ...TextBox.containerDisabled + }, + label: { + // numberOfLines and all TextStyle properties are allowed + ...TextBox.label, + lineHeight: input.input.lineHeight, + height: "100%", + textAlignVertical: "top", + paddingVertical: (_a = TextBox.input) === null || _a === void 0 ? void 0 : _a.paddingVertical + }, + labelDisabled: { + color: (_b = TextBox.labelDisabled) === null || _b === void 0 ? void 0 : _b.color + }, + input: { + // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed + ...TextBox.input, + textAlignVertical: "top", + paddingTop: (_c = TextBox.input) === null || _c === void 0 ? void 0 : _c.paddingVertical + }, + inputDisabled: { + // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed + backgroundColor: (_d = TextBox.inputDisabled) === null || _d === void 0 ? void 0 : _d.backgroundColor, + borderColor: (_e = TextBox.inputDisabled) === null || _e === void 0 ? void 0 : _e.borderColor, + color: (_f = TextBox.inputDisabled) === null || _f === void 0 ? void 0 : _f.color + }, + inputFocused: { + // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed + }, + inputError: { + // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed + ...TextBox.inputError + }, + validationMessage: { + // All TextStyle properties are allowed + ...TextBox.validationMessage + } +}; +export const TextAreaVertical = { + container: TextBoxVertical.container, + containerDisabled: TextBoxVertical.containerDisabled, + label: { + ...TextBoxVertical.label, + height: undefined, + paddingVertical: undefined, + textAlignVertical: undefined + }, + labelDisabled: { + ...TextBoxVertical.labelDisabled, + height: undefined, + paddingVertical: undefined, + textAlignVertical: undefined + }, + input: { + ...TextBoxVertical.input, + lineHeight: input.input.lineHeight + }, + inputDisabled: TextBoxVertical.inputDisabled, + inputFocused: TextBoxVertical.inputFocused, + inputError: TextBoxVertical.inputError, + validationMessage: TextBoxVertical.validationMessage +}; diff --git a/themesource/atlas_core/native/core/widgets/textbox.js b/themesource/atlas_core/native/core/widgets/textbox.js new file mode 100644 index 0000000..6c1aff1 --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/textbox.js @@ -0,0 +1,108 @@ +import { font, input, spacing } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Text Box + + Default Class For Mendix Text Box Widget +========================================================================== */ +export const TextBox = { + container: { + // All ViewStyle properties are allowed + }, + containerDisabled: { + // All ViewStyle properties are allowed + }, + label: { + // numberOfLines and all TextStyle properties are allowed + numberOfLines: input.label.numberOfLines, + color: input.label.color, + fontSize: input.label.fontSize, + fontFamily: font.family, + textAlign: input.label.textAlign, + marginRight: spacing.small + }, + labelDisabled: { + // TextStyle properties are allowed + color: input.labelDisabled.color + }, + input: { + // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed + color: input.input.color, + borderColor: input.input.borderColor, + backgroundColor: input.input.backgroundColor, + selectionColor: input.input.selectionColor, + placeholderTextColor: input.input.placeholderTextColor, + fontSize: input.input.fontSize, + fontFamily: font.family, + borderWidth: input.input.borderWidth, + borderRadius: input.input.borderRadius, + // textAlignVertical: "center", + minWidth: input.input.minWidth, + minHeight: input.input.minHeight, + paddingHorizontal: input.input.paddingHorizontal, + paddingVertical: input.input.paddingVertical + }, + inputDisabled: { + // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed + color: input.inputDisabled.color, + borderColor: input.inputDisabled.borderColor, + backgroundColor: input.inputDisabled.backgroundColor + }, + inputFocused: { + // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed + }, + inputError: { + // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed + color: input.inputError.color, + borderColor: input.inputError.borderColor, + placeholderTextColor: input.inputError.placeholderTextColor, + underlineColorAndroid: "transparent" + }, + validationMessage: { + // All TextStyle properties are allowed + color: input.validationMessage.color, + fontSize: input.validationMessage.fontSize, + fontFamily: font.family + } +}; +export const TextBoxVertical = { + container: {}, + containerDisabled: {}, + label: { + numberOfLines: input.label.numberOfLines, + color: input.label.color, + fontSize: input.label.fontSize, + fontFamily: font.family, + textAlign: input.label.textAlign, + marginBottom: spacing.small + }, + labelDisabled: { + color: input.labelDisabled.color + }, + input: { + color: input.input.color, + borderColor: input.input.borderColor, + backgroundColor: input.input.backgroundColor, + selectionColor: input.input.selectionColor, + placeholderTextColor: input.input.placeholderTextColor, + fontSize: input.input.fontSize, + fontFamily: font.family, + borderWidth: input.input.borderWidth, + borderRadius: input.input.borderRadius, + // textAlignVertical: "center", + minWidth: input.input.minWidth, + minHeight: input.input.minHeight, + paddingHorizontal: input.input.paddingHorizontal, + paddingVertical: input.input.paddingVertical + }, + inputDisabled: TextBox.inputDisabled, + inputFocused: TextBox.inputFocused, + inputError: TextBox.inputError, + validationMessage: TextBox.validationMessage +}; diff --git a/themesource/atlas_core/native/core/widgets/togglebuttons.js b/themesource/atlas_core/native/core/widgets/togglebuttons.js new file mode 100644 index 0000000..4769dbe --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/togglebuttons.js @@ -0,0 +1,54 @@ +import { background, brand, contrast, font } from "../../variables"; +import { TextBox } from "./textbox"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Segmented Controls + + Default Class For Mendix Segmented Controls Widget +========================================================================== */ +export const com_mendix_widget_native_togglebuttons_ToggleButtons = { + container: { + // All ViewStyle properties are allowed + backgroundColor: background.secondary, + borderRadius: 16, + alignSelf: "stretch" + }, + containerDisabled: { + opacity: 0.6, + alignSelf: "stretch" + }, + button: { + // All ViewStyle properties are allowed + backgroundColor: "transparent", + borderColor: "transparent", + borderRadius: 16 + }, + text: { + // All TextStyle properties are allowed + color: contrast.low, + fontSize: font.size, + fontFamily: font.family + }, + activeButton: { + // All ViewStyle properties are allowed + backgroundColor: brand.primary, + borderColor: brand.primary, + borderRadius: 16 + }, + activeButtonText: { + // All TextStyle properties are allowed + color: "#FFF", + fontSize: font.size, + fontFamily: font.family + }, + validationMessage: { + // All TextStyle properties are allowed + ...TextBox.validationMessage + } +}; diff --git a/themesource/atlas_core/native/core/widgets/typography.js b/themesource/atlas_core/native/core/widgets/typography.js new file mode 100644 index 0000000..3ed8cbe --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/typography.js @@ -0,0 +1,79 @@ +import { font } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Text + + Default Class For Mendix Text Widget +========================================================================== */ +export const Text = { + container: { + // All ViewStyle properties are allowed + }, + text: { + // numberOfLines & All TextStyle properties are allowed + color: font.colorTitle, + fontSize: font.size, + fontFamily: font.family, + lineHeight: font.lineHeight + } +}; +export const TextHeading1 = { + container: {}, + text: { + fontWeight: font.weightSemiBold, + fontSize: font.sizeH1, + fontFamily: font.family, + lineHeight: font.lineHeightH1 + } +}; +export const TextHeading2 = { + container: {}, + text: { + fontWeight: font.weightSemiBold, + fontSize: font.sizeH2, + fontFamily: font.family, + lineHeight: font.lineHeightH2 + } +}; +export const TextHeading3 = { + container: {}, + text: { + fontWeight: font.weightSemiBold, + fontSize: font.sizeH3, + fontFamily: font.family, + lineHeight: font.lineHeightH3 + } +}; +export const TextHeading4 = { + container: {}, + text: { + fontWeight: font.weightSemiBold, + fontSize: font.sizeH4, + fontFamily: font.family, + lineHeight: font.lineHeightH4 + } +}; +export const TextHeading5 = { + container: {}, + text: { + fontWeight: font.weightSemiBold, + fontSize: font.sizeH5, + fontFamily: font.family, + lineHeight: font.lineHeightH5 + } +}; +export const TextHeading6 = { + container: {}, + text: { + fontWeight: font.weightSemiBold, + fontSize: font.sizeH6, + fontFamily: font.family, + lineHeight: font.lineHeightH6 + } +}; diff --git a/themesource/atlas_core/native/core/widgets/videoplayer.js b/themesource/atlas_core/native/core/widgets/videoplayer.js new file mode 100644 index 0000000..caa1dd9 --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/videoplayer.js @@ -0,0 +1,35 @@ +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Video Player + + Default Class For Mendix Video Player Widget +========================================================================== */ +export const com_mendix_widget_native_videoplayer_VideoPlayer = { + container: { + // All ViewStyle properties are allowed + }, + indicator: { + // Only the backgroundColor property is allowed + }, + video: { + // All ViewStyle properties are allowed + }, + fullScreenVideoPlayer: { + // All ViewStyle properties are allowed + }, + controlBtnContainerStyle: { + // All ViewStyle properties are allowed + }, + fullScreenVideoStyle: { + // All ViewStyle properties are allowed + }, + fullScreenActivityIndicatorStyle: { + // All ViewStyle properties are allowed + } +}; diff --git a/themesource/atlas_core/native/core/widgets/webview.js b/themesource/atlas_core/native/core/widgets/webview.js new file mode 100644 index 0000000..e2240c7 --- /dev/null +++ b/themesource/atlas_core/native/core/widgets/webview.js @@ -0,0 +1,26 @@ +import { font } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Web View + + Default Class For Mendix Web View Widget +========================================================================== */ +export const com_mendix_widget_native_webview_WebView = { + container: { + // All ViewStyle properties are allowed + }, + errorContainer: { + // All ViewStyle properties are allowed + }, + errorText: { + // All TextStyle properties are allowed + fontSize: font.size, + fontFamily: font.family + } +}; diff --git a/themesource/atlas_core/native/design-properties.json b/themesource/atlas_core/native/design-properties.json new file mode 100644 index 0000000..e0dd05e --- /dev/null +++ b/themesource/atlas_core/native/design-properties.json @@ -0,0 +1,3292 @@ +{ + "Document": [ + { + "name": "Spacing top", + "type": "Dropdown", + "description": "The spacing above this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerTopSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerTopMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerTopLarger" + } + ] + }, + { + "name": "Spacing bottom", + "type": "Dropdown", + "description": "The spacing below this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerBottomSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerBottomMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerBottomLarger" + } + ] + }, + { + "name": "Spacing left", + "type": "Dropdown", + "description": "The spacing to the left of this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerLeftSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerLeftMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerLeftLarger" + } + ] + }, + { + "name": "Spacing right", + "type": "Dropdown", + "description": "The spacing to the right of this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerRightSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerRightMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerRightLarger" + } + ] + }, + { + "name": "Background color", + "type": "Dropdown", + "description": "Change the background color of the container.", + "options": [ + { + "name": "Background Primary", + "oldNames": ["Primary"], + "class": "backgroundPrimary" + }, + { + "name": "Background Secondary", + "oldNames": ["Gray", "Secondary"], + "class": "backgroundSecondary" + }, + { + "name": "Brand Primary", + "class": "backgroundBrandPrimary" + }, + { + "name": "Brand Success", + "class": "backgroundBrandSuccess" + }, + { + "name": "Brand Warning", + "class": "backgroundBrandWarning" + }, + { + "name": "Brand Danger", + "class": "backgroundBrandDanger" + }, + { + "name": "Brand Info", + "class": "backgroundBrandInfo" + } + ] + }, + { + "name": "Render children horizontal", + "type": "Toggle", + "description": "Determines the direction in which children are rendered.", + "class": "flexRow" + }, + { + "name": "Wrap children", + "type": "Toggle", + "description": "Determines if children can flow into multiple lines if they hit the end of the container.", + "class": "flexWrap" + }, + { + "name": "Align children", + "type": "Dropdown", + "description": "Align children in the opposite direction.", + "options": [ + { + "name": "Start", + "class": "alignChildrenStart" + }, + { + "name": "Center", + "class": "alignChildrenCenter" + }, + { + "name": "End", + "class": "alignChildrenEnd" + }, + { + "name": "Stretch", + "class": "alignChildrenStretch" + }, + { + "name": "Baseline", + "class": "alignChildrenBaseline" + } + ] + }, + { + "name": "Justify content", + "type": "Dropdown", + "description": "Justify content in the active direction.", + "options": [ + { + "name": "Start", + "class": "justifyContentStart" + }, + { + "name": "Center", + "class": "justifyContentCenter" + }, + { + "name": "End", + "class": "justifyContentEnd" + }, + { + "name": "Space between", + "class": "justifyContentSpaceBetween" + }, + { + "name": "Space around", + "class": "justifyContentSpaceAround" + }, + { + "name": "Space evenly", + "class": "justifyContentSpaceEvenly" + } + ] + } + ], + "Page": [ + { + "name": "Hide header bottom border", + "type": "Toggle", + "description": "Hide the bottom border (iOS) and elevation (Android) of the header.", + "class": "pageHeaderBorderNone" + } + ], + "Widget": [ + { + "name": "Spacing top", + "type": "Dropdown", + "description": "The spacing above this element.", + "options": [ + { + "name": "Smallest", + "class": "spacingOuterTopSmallest" + }, + { + "name": "Smaller", + "class": "spacingOuterTopSmaller" + }, + { + "name": "Small", + "class": "spacingOuterTopSmall" + }, + { + "name": "Medium", + "class": "spacingOuterTopMedium" + }, + { + "name": "Large", + "class": "spacingOuterTopLarge" + }, + { + "name": "Larger", + "class": "spacingOuterTopLarger" + }, + { + "name": "Largest", + "class": "spacingOuterTopLargest" + } + ] + }, + { + "name": "Spacing bottom", + "type": "Dropdown", + "description": "The spacing below this element.", + "options": [ + { + "name": "Smallest", + "class": "spacingOuterBottomSmallest" + }, + { + "name": "Smaller", + "class": "spacingOuterBottomSmaller" + }, + { + "name": "Small", + "class": "spacingOuterBottomSmall" + }, + { + "name": "Medium", + "class": "spacingOuterBottomMedium" + }, + { + "name": "Large", + "class": "spacingOuterBottomLarge" + }, + { + "name": "Larger", + "class": "spacingOuterBottomLarger" + }, + { + "name": "Largest", + "class": "spacingOuterBottomLargest" + } + ] + }, + { + "name": "Spacing left", + "type": "Dropdown", + "description": "The spacing to the left of this element.", + "options": [ + { + "name": "Smallest", + "class": "spacingOuterLeftSmallest" + }, + { + "name": "Smaller", + "class": "spacingOuterLeftSmaller" + }, + { + "name": "Small", + "class": "spacingOuterLeftSmall" + }, + { + "name": "Medium", + "class": "spacingOuterLeftMedium" + }, + { + "name": "Large", + "class": "spacingOuterLeftLarge" + }, + { + "name": "Larger", + "class": "spacingOuterLeftLarger" + }, + { + "name": "Largest", + "class": "spacingOuterLeftLargest" + } + ] + }, + { + "name": "Spacing right", + "type": "Dropdown", + "description": "The spacing to the right of this element.", + "options": [ + { + "name": "Smallest", + "class": "spacingOuterRightSmallest" + }, + { + "name": "Smaller", + "class": "spacingOuterRightSmaller" + }, + { + "name": "Small", + "class": "spacingOuterRightSmall" + }, + { + "name": "Medium", + "class": "spacingOuterRightMedium" + }, + { + "name": "Large", + "class": "spacingOuterRightLarge" + }, + { + "name": "Larger", + "class": "spacingOuterRightLarger" + }, + { + "name": "Largest", + "class": "spacingOuterRightLargest" + } + ] + } + ], + "DivContainer": [ + { + "name": "Spacing top", + "type": "Dropdown", + "description": "The spacing above this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerTopSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerTopMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerTopLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterTopSmaller" + }, + { + "name": "Outer medium", + "class": "spacingOuterTopMedium" + }, + { + "name": "Outer large", + "class": "spacingOuterTopLarger" + } + ] + }, + { + "name": "Spacing bottom", + "type": "Dropdown", + "description": "The spacing below this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerBottomSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerBottomMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerBottomLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterBottomSmaller" + }, + { + "name": "Outer medium", + "class": "spacingOuterBottomMedium" + }, + { + "name": "Outer large", + "class": "spacingOuterBottomLarger" + } + ] + }, + { + "name": "Spacing left", + "type": "Dropdown", + "description": "The spacing to the left of this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerLeftSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerLeftMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerLeftLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterLeftSmaller" + }, + { + "name": "Outer medium", + "class": "spacingOuterLeftMedium" + }, + { + "name": "Outer large", + "class": "spacingOuterLeftLarger" + } + ] + }, + { + "name": "Spacing right", + "type": "Dropdown", + "description": "The spacing to the right of this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerRightSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerRightMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerRightLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterRightSmaller" + }, + { + "name": "Outer medium", + "class": "spacingOuterRightMedium" + }, + { + "name": "Outer large", + "class": "spacingOuterRightLarger" + } + ] + }, + { + "name": "Size", + "type": "Dropdown", + "description": "Change the size of the widget relative to its sibling(s).", + "options": [ + { + "name": "Maximum space", + "class": "flexMain" + }, + { + "name": "Minimum space", + "class": "flexItem" + } + ] + }, + { + "name": "Background color", + "type": "Dropdown", + "description": "Change the background color of the container.", + "options": [ + { + "name": "Background Primary", + "oldNames": ["Primary"], + "class": "backgroundPrimary" + }, + { + "name": "Background Secondary", + "oldNames": ["Gray", "Secondary"], + "class": "backgroundSecondary" + }, + { + "name": "Brand Primary", + "class": "backgroundBrandPrimary" + }, + { + "name": "Brand Success", + "class": "backgroundBrandSuccess" + }, + { + "name": "Brand Warning", + "class": "backgroundBrandWarning" + }, + { + "name": "Brand Danger", + "class": "backgroundBrandDanger" + }, + { + "name": "Brand Info", + "class": "backgroundBrandInfo" + } + ] + }, + { + "name": "Align", + "type": "Dropdown", + "description": "Aligns the element. This overrides 'Align children' of the parent.", + "options": [ + { + "name": "Start", + "class": "alignSelfStart" + }, + { + "name": "Center", + "class": "alignSelfCenter" + }, + { + "name": "End", + "class": "alignSelfEnd" + }, + { + "name": "Stretch", + "class": "alignSelfStretch" + }, + { + "name": "Baseline", + "class": "alignSelfBaseline" + } + ] + }, + { + "name": "Render children horizontal", + "type": "Toggle", + "description": "Determines the direction in which children are rendered.", + "class": "flexRow" + }, + { + "name": "Wrap children", + "type": "Toggle", + "description": "Determines if children can flow into multiple lines if they hit the end of the container.", + "class": "flexWrap" + }, + { + "name": "Align children", + "type": "Dropdown", + "description": "Align children in the opposite direction.", + "options": [ + { + "name": "Start", + "class": "alignChildrenStart" + }, + { + "name": "Center", + "class": "alignChildrenCenter" + }, + { + "name": "End", + "class": "alignChildrenEnd" + }, + { + "name": "Stretch", + "class": "alignChildrenStretch" + }, + { + "name": "Baseline", + "class": "alignChildrenBaseline" + } + ] + }, + { + "name": "Justify content", + "type": "Dropdown", + "description": "Justify content in the active direction.", + "options": [ + { + "name": "Start", + "class": "justifyContentStart" + }, + { + "name": "Center", + "class": "justifyContentCenter" + }, + { + "name": "End", + "class": "justifyContentEnd" + }, + { + "name": "Space between", + "class": "justifyContentSpaceBetween" + }, + { + "name": "Space around", + "class": "justifyContentSpaceAround" + }, + { + "name": "Space evenly", + "class": "justifyContentSpaceEvenly" + } + ] + } + ], + "ScrollContainer": [ + { + "name": "Spacing top", + "type": "Dropdown", + "description": "The spacing above this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerTopSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerTopMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerTopLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterTopSmaller" + }, + { + "name": "Outer medium", + "class": "spacingOuterTopMedium" + }, + { + "name": "Outer large", + "class": "spacingOuterTopLarger" + } + ] + }, + { + "name": "Spacing bottom", + "type": "Dropdown", + "description": "The spacing below this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerBottomSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerBottomMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerBottomLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterBottomSmaller" + }, + { + "name": "Outer medium", + "class": "spacingOuterBottomMedium" + }, + { + "name": "Outer large", + "class": "spacingOuterBottomLarger" + } + ] + }, + { + "name": "Spacing left", + "type": "Dropdown", + "description": "The spacing to the left of this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerLeftSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerLeftMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerLeftLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterLeftSmaller" + }, + { + "name": "Outer medium", + "class": "spacingOuterLeftMedium" + }, + { + "name": "Outer large", + "class": "spacingOuterLeftLarger" + } + ] + }, + { + "name": "Spacing right", + "type": "Dropdown", + "description": "The spacing to the right of this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerRightSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerRightMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerRightLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterRightSmaller" + }, + { + "name": "Outer medium", + "class": "spacingOuterRightMedium" + }, + { + "name": "Outer large", + "class": "spacingOuterRightLarger" + } + ] + }, + { + "name": "Size", + "type": "Dropdown", + "description": "Change the size of the widget relative to its sibling(s).", + "options": [ + { + "name": "Maximum space", + "class": "flexMain" + }, + { + "name": "Minimum space", + "class": "flexItem" + } + ] + }, + { + "name": "Background color", + "type": "Dropdown", + "description": "Change the background color of the container.", + "options": [ + { + "name": "Background Primary", + "oldNames": ["Primary"], + "class": "backgroundPrimary" + }, + { + "name": "Background Secondary", + "oldNames": ["Gray", "Secondary"], + "class": "backgroundSecondary" + }, + { + "name": "Brand Primary", + "class": "backgroundBrandPrimary" + }, + { + "name": "Brand Success", + "class": "backgroundBrandSuccess" + }, + { + "name": "Brand Warning", + "class": "backgroundBrandWarning" + }, + { + "name": "Brand Danger", + "class": "backgroundBrandDanger" + }, + { + "name": "Brand Info", + "class": "backgroundBrandInfo" + } + ] + }, + { + "name": "Align", + "type": "Dropdown", + "description": "Aligns the element. This overrides 'Align children' of the parent.", + "options": [ + { + "name": "Start", + "class": "alignSelfStart" + }, + { + "name": "Center", + "class": "alignSelfCenter" + }, + { + "name": "End", + "class": "alignSelfEnd" + }, + { + "name": "Stretch", + "class": "alignSelfStretch" + }, + { + "name": "Baseline", + "class": "alignSelfBaseline" + } + ] + }, + { + "name": "Render children horizontal", + "type": "Toggle", + "description": "Determines the direction in which children are rendered.", + "class": "flexRow" + }, + { + "name": "Wrap children", + "type": "Toggle", + "description": "Determines if children can flow into multiple lines if they hit the end of the container.", + "class": "flexWrap" + }, + { + "name": "Align children", + "type": "Dropdown", + "description": "Align children in the opposite direction.", + "options": [ + { + "name": "Start", + "class": "alignChildrenStart" + }, + { + "name": "Center", + "class": "alignChildrenCenter" + }, + { + "name": "End", + "class": "alignChildrenEnd" + }, + { + "name": "Stretch", + "class": "alignChildrenStretch" + }, + { + "name": "Baseline", + "class": "alignChildrenBaseline" + } + ] + }, + { + "name": "Justify content", + "type": "Dropdown", + "description": "Justify content in the active direction.", + "options": [ + { + "name": "Start", + "class": "justifyContentStart" + }, + { + "name": "Center", + "class": "justifyContentCenter" + }, + { + "name": "End", + "class": "justifyContentEnd" + }, + { + "name": "Space between", + "class": "justifyContentSpaceBetween" + }, + { + "name": "Space around", + "class": "justifyContentSpaceAround" + } + ] + } + ], + "ActionButton": [ + { + "name": "Button style", + "type": "Dropdown", + "description": "Style of the button", + "options": [ + { + "name": "Secondary", + "class": "btnSecondary" + }, + { + "name": "Success", + "class": "btnSuccess" + }, + { + "name": "Warning", + "class": "btnWarning" + }, + { + "name": "Danger", + "class": "btnDanger" + }, + { + "name": "Inversed", + "class": "btnPrimaryInversed" + } + ] + }, + { + "name": "Align", + "type": "Dropdown", + "description": "Aligns the element. This overrides 'Align children' of the parent.", + "options": [ + { + "name": "Start", + "class": "alignSelfStart" + }, + { + "name": "Center", + "class": "alignSelfCenter" + }, + { + "name": "End", + "class": "alignSelfEnd" + }, + { + "name": "Stretch", + "class": "alignSelfStretch" + }, + { + "name": "Baseline", + "class": "alignSelfBaseline" + } + ] + } + ], + "StaticImageViewer": [ + { + "name": "Shape", + "type": "Dropdown", + "description": "Change the shape of the image", + "options": [ + { + "name": "Square", + "class": "imageSquare" + }, + { + "name": "Circle", + "class": "imageCircle" + } + ] + }, + { + "name": "Size", + "type": "Dropdown", + "description": "Make the image smaller or larger.", + "options": [ + { + "name": "Icon", + "class": "imageIcon", + "oldNames": ["imageCircleIcon", "imageSquareIcon"] + }, + { + "name": "Small", + "class": "imageSmall", + "oldNames": ["imageCircleSmall", "imageSquareSmall"] + }, + { + "name": "Medium", + "class": "imageMedium", + "oldNames": ["imageCircleMedium", "imageSquareMedium"] + }, + { + "name": "Large", + "class": "imageLarge", + "oldNames": ["imageCircleLarge", "imageSquareLarge"] + }, + { + "name": "Larger", + "class": "imageLarger", + "oldNames": ["imageCircleLarger", "imageSquareLarger"] + }, + { + "name": "FullSize", + "class": "imageFullSize" + } + ] + } + ], + "DynamicImageViewer": [ + { + "name": "Shape", + "type": "Dropdown", + "description": "Change the shape of the image", + "options": [ + { + "name": "Square", + "class": "imageSquare" + }, + { + "name": "Circle", + "class": "imageCircle" + } + ] + }, + { + "name": "Size", + "type": "Dropdown", + "description": "Make the image smaller or larger.", + "options": [ + { + "name": "Icon", + "class": "imageIcon", + "oldNames": ["imageCircleIcon", "imageSquareIcon"] + }, + { + "name": "Small", + "class": "imageSmall", + "oldNames": ["imageCircleSmall", "imageSquareSmall"] + }, + { + "name": "Medium", + "class": "imageMedium", + "oldNames": ["imageCircleMedium", "imageSquareMedium"] + }, + { + "name": "Large", + "class": "imageLarge", + "oldNames": ["imageCircleLarge", "imageSquareLarge"] + }, + { + "name": "Larger", + "class": "imageLarger", + "oldNames": ["imageCircleLarger", "imageSquareLarger"] + }, + { + "name": "FullSize", + "class": "imageFullSize" + } + ] + } + ], + "DynamicText": [ + { + "name": "Color", + "type": "Dropdown", + "description": "Change the color of text.", + "options": [ + { + "name": "Paragraph", + "class": "textParagraph" + }, + { + "name": "Disabled", + "class": "textDisabled" + }, + { + "name": "White", + "class": "textWhite" + }, + { + "name": "Black", + "class": "textBlack" + }, + { + "name": "Brand primary", + "class": "textPrimary" + }, + { + "name": "Brand success", + "class": "textSuccess" + }, + { + "name": "Brand warning", + "class": "textWarning" + }, + { + "name": "Brand danger", + "class": "textDanger" + } + ] + }, + { + "name": "Size", + "type": "Dropdown", + "description": "Make the text smaller or larger.", + "options": [ + { + "name": "Smallest", + "class": "textSmallest" + }, + { + "name": "Small", + "class": "textSmall" + }, + { + "name": "Large", + "class": "textLarge" + }, + { + "name": "Largest", + "class": "textLargest" + } + ] + }, + { + "name": "Weight", + "type": "Dropdown", + "description": "Emphasize the text with a heavier or lighter font weight", + "options": [ + { + "name": "Default", + "class": "textNormal" + }, + { + "name": "Bold", + "class": "textBold" + } + ] + }, + { + "name": "Decoration", + "type": "Dropdown", + "description": "Decorate the text with an underline or a line through", + "options": [ + { + "name": "Underline", + "class": "textUnderline" + }, + { + "name": "Line Through", + "class": "textLineThrough" + } + ] + }, + { + "name": "Alignment", + "type": "Dropdown", + "description": "Align the text.", + "options": [ + { + "name": "Left", + "class": "textLeft" + }, + { + "name": "Center", + "class": "textCenter" + }, + { + "name": "Right", + "class": "textRight" + } + ] + } + ], + "LayoutGrid": [ + { + "name": "Spacing top", + "type": "Dropdown", + "description": "The spacing above this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerTopSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerTopMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerTopLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterTopSmaller", + "oldNames": ["Small"] + }, + { + "name": "Outer medium", + "class": "spacingOuterTopMedium", + "oldNames": ["Medium"] + }, + { + "name": "Outer large", + "class": "spacingOuterTopLarger", + "oldNames": ["Large"] + } + ] + }, + { + "name": "Spacing bottom", + "type": "Dropdown", + "description": "The spacing below this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerBottomSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerBottomMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerBottomLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterBottomSmaller", + "oldNames": ["Small"] + }, + { + "name": "Outer medium", + "class": "spacingOuterBottomMedium", + "oldNames": ["Medium"] + }, + { + "name": "Outer large", + "class": "spacingOuterBottomLarger", + "oldNames": ["Large"] + } + ] + }, + { + "name": "Spacing left", + "type": "Dropdown", + "description": "The spacing to the left of this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerLeftSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerLeftMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerLeftLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterLeftSmaller", + "oldNames": ["Small"] + }, + { + "name": "Outer medium", + "class": "spacingOuterLeftMedium", + "oldNames": ["Medium"] + }, + { + "name": "Outer large", + "class": "spacingOuterLeftLarger", + "oldNames": ["Large"] + } + ] + }, + { + "name": "Spacing right", + "type": "Dropdown", + "description": "The spacing to the right of this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerRightSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerRightMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerRightLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterRightSmaller", + "oldNames": ["Small"] + }, + { + "name": "Outer medium", + "class": "spacingOuterRightMedium", + "oldNames": ["Medium"] + }, + { + "name": "Outer large", + "class": "spacingOuterRightLarger", + "oldNames": ["Large"] + } + ] + }, + { + "name": "Background color", + "type": "Dropdown", + "description": "Change the background color of the container.", + "options": [ + { + "name": "Background Primary", + "oldNames": ["Primary"], + "class": "backgroundPrimary" + }, + { + "name": "Background Secondary", + "oldNames": ["Gray", "Secondary"], + "class": "backgroundSecondary" + }, + { + "name": "Brand Primary", + "class": "backgroundBrandPrimary" + }, + { + "name": "Brand Success", + "class": "backgroundBrandSuccess" + }, + { + "name": "Brand Warning", + "class": "backgroundBrandWarning" + }, + { + "name": "Brand Danger", + "class": "backgroundBrandDanger" + }, + { + "name": "Brand Info", + "class": "backgroundBrandInfo" + } + ] + } + ], + "LayoutGridRow": [ + { + "name": "Spacing top", + "type": "Dropdown", + "description": "The spacing above this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerTopSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerTopMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerTopLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterTopSmaller" + }, + { + "name": "Outer medium", + "class": "spacingOuterTopMedium" + }, + { + "name": "Outer large", + "class": "spacingOuterTopLarger" + } + ] + }, + { + "name": "Spacing bottom", + "type": "Dropdown", + "description": "The spacing below this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerBottomSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerBottomMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerBottomLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterBottomSmaller" + }, + { + "name": "Outer medium", + "class": "spacingOuterBottomMedium" + }, + { + "name": "Outer large", + "class": "spacingOuterBottomLarger" + } + ] + }, + { + "name": "Spacing left", + "type": "Dropdown", + "description": "The spacing to the left of this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerLeftSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerLeftMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerLeftLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterLeftSmaller" + }, + { + "name": "Outer medium", + "class": "spacingOuterLeftMedium" + }, + { + "name": "Outer large", + "class": "spacingOuterLeftLarger" + } + ] + }, + { + "name": "Spacing right", + "type": "Dropdown", + "description": "The spacing to the right of this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerRightSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerRightMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerRightLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterRightSmaller" + }, + { + "name": "Outer medium", + "class": "spacingOuterRightMedium" + }, + { + "name": "Outer large", + "class": "spacingOuterRightLarger" + } + ] + }, + { + "name": "Background color", + "type": "Dropdown", + "description": "Change the background color of the container.", + "options": [ + { + "name": "Background Primary", + "oldNames": ["Primary"], + "class": "backgroundPrimary" + }, + { + "name": "Background Secondary", + "oldNames": ["Gray", "Secondary"], + "class": "backgroundSecondary" + }, + { + "name": "Brand Primary", + "class": "backgroundBrandPrimary" + }, + { + "name": "Brand Success", + "class": "backgroundBrandSuccess" + }, + { + "name": "Brand Warning", + "class": "backgroundBrandWarning" + }, + { + "name": "Brand Danger", + "class": "backgroundBrandDanger" + }, + { + "name": "Brand Info", + "class": "backgroundBrandInfo" + } + ] + } + ], + "LayoutGridColumn": [ + { + "name": "Background color", + "type": "Dropdown", + "description": "Change the background color of the container.", + "options": [ + { + "name": "Background Primary", + "oldNames": ["Primary"], + "class": "backgroundPrimary" + }, + { + "name": "Background Secondary", + "oldNames": ["Gray", "Secondary"], + "class": "backgroundSecondary" + }, + { + "name": "Brand Primary", + "class": "backgroundBrandPrimary" + }, + { + "name": "Brand Success", + "class": "backgroundBrandSuccess" + }, + { + "name": "Brand Warning", + "class": "backgroundBrandWarning" + }, + { + "name": "Brand Danger", + "class": "backgroundBrandDanger" + }, + { + "name": "Brand Info", + "class": "backgroundBrandInfo" + } + ] + } + ], + "ListView": [ + { + "name": "List item divider", + "type": "Dropdown", + "description": "Give each list item a border.", + "options": [ + { + "name": "Vertical", + "class": "listItemBorderBottom" + }, + { + "name": "Horizontal", + "class": "listItemBorderRight" + } + ] + }, + { + "name": "Background color", + "type": "Dropdown", + "description": "Change the background color of the container.", + "options": [ + { + "name": "Background Primary", + "oldNames": ["Primary"], + "class": "backgroundPrimary" + }, + { + "name": "Background Secondary", + "oldNames": ["Gray", "Secondary"], + "class": "backgroundSecondary" + }, + { + "name": "Brand Primary", + "class": "backgroundBrandPrimary" + }, + { + "name": "Brand Success", + "class": "backgroundBrandSuccess" + }, + { + "name": "Brand Warning", + "class": "backgroundBrandWarning" + }, + { + "name": "Brand Danger", + "class": "backgroundBrandDanger" + }, + { + "name": "Brand Info", + "class": "backgroundBrandInfo" + } + ] + } + ], + "TabContainer": [ + { + "name": "Tab bar scroll", + "type": "Toggle", + "description": "Enable horizontal scroll for the tab bar.", + "class": "tabContainerScroll" + } + ], + "TextBox": [ + { + "name": "Capitalize", + "type": "Dropdown", + "description": "Change the capitalization of the input.", + "options": [ + { + "name": "None", + "class": "textInputCapitalizeNone" + }, + { + "name": "Characters", + "class": "textInputCapitalizeCharacters" + }, + { + "name": "Words", + "class": "textInputCapitalizeWords" + }, + { + "name": "Sentences", + "class": "textInputCapitalizeSentences" + } + ] + } + ], + "TextArea": [ + { + "name": "Capitalize", + "type": "Dropdown", + "description": "Change the capitalization of the input.", + "options": [ + { + "name": "None", + "class": "textInputCapitalizeNone" + }, + { + "name": "Characters", + "class": "textInputCapitalizeCharacters" + }, + { + "name": "Words", + "class": "textInputCapitalizeWords" + }, + { + "name": "Sentences", + "class": "textInputCapitalizeSentences" + } + ] + } + ], + "com.mendix.widget.native.activityindicator.ActivityIndicator": [ + { + "name": "Activity indicator style", + "type": "Dropdown", + "description": "Style of the Activity indicator.", + "options": [ + { + "name": "Success", + "class": "activityIndicatorSuccess" + }, + { + "name": "Warning", + "class": "activityIndicatorWarning" + }, + { + "name": "Danger", + "class": "activityIndicatorDanger" + } + ] + } + ], + "com.mendix.widget.native.animation.Animation": [ + { + "name": "Spacing top", + "type": "Dropdown", + "description": "The spacing above this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerTopSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerTopMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerTopLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterTopSmaller" + }, + { + "name": "Outer medium", + "class": "spacingOuterTopMedium" + }, + { + "name": "Outer large", + "class": "spacingOuterTopLarger" + } + ] + }, + { + "name": "Spacing bottom", + "type": "Dropdown", + "description": "The spacing below this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerBottomSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerBottomMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerBottomLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterBottomSmaller" + }, + { + "name": "Outer medium", + "class": "spacingOuterBottomMedium" + }, + { + "name": "Outer large", + "class": "spacingOuterBottomLarger" + } + ] + }, + { + "name": "Spacing left", + "type": "Dropdown", + "description": "The spacing to the left of this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerLeftSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerLeftMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerLeftLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterLeftSmaller" + }, + { + "name": "Outer medium", + "class": "spacingOuterLeftMedium" + }, + { + "name": "Outer large", + "class": "spacingOuterLeftLarger" + } + ] + }, + { + "name": "Spacing right", + "type": "Dropdown", + "description": "The spacing to the right of this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerRightSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerRightMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerRightLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterRightSmaller" + }, + { + "name": "Outer medium", + "class": "spacingOuterRightMedium" + }, + { + "name": "Outer large", + "class": "spacingOuterRightLarger" + } + ] + }, + { + "name": "Size", + "type": "Dropdown", + "description": "Change the size of the widget relative to its sibling(s).", + "options": [ + { + "name": "Maximum space", + "class": "flexMain" + }, + { + "name": "Minimum space", + "class": "flexItem" + } + ] + }, + { + "name": "Background color", + "type": "Dropdown", + "description": "Change the background color of the container.", + "options": [ + { + "name": "Background Primary", + "oldNames": ["Primary"], + "class": "backgroundPrimary" + }, + { + "name": "Background Secondary", + "oldNames": ["Gray", "Secondary"], + "class": "backgroundSecondary" + }, + { + "name": "Brand Primary", + "class": "backgroundBrandPrimary" + }, + { + "name": "Brand Success", + "class": "backgroundBrandSuccess" + }, + { + "name": "Brand Warning", + "class": "backgroundBrandWarning" + }, + { + "name": "Brand Danger", + "class": "backgroundBrandDanger" + }, + { + "name": "Brand Info", + "class": "backgroundBrandInfo" + } + ] + }, + { + "name": "Align", + "type": "Dropdown", + "description": "Aligns the element. This overrides 'Align children' of the parent.", + "options": [ + { + "name": "Stretch", + "class": "alignSelfStretch" + }, + { + "name": "Start", + "class": "alignSelfStart" + }, + { + "name": "Center", + "class": "alignSelfCenter" + }, + { + "name": "End", + "class": "alignSelfEnd" + } + ] + }, + { + "name": "Render children horizontal", + "type": "Toggle", + "description": "Determines the direction in which children are rendered.", + "class": "flexRow" + }, + { + "name": "Wrap children", + "type": "Toggle", + "description": "Determines if children can flow into multiple lines if they hit the end of the container.", + "class": "flexWrap" + }, + { + "name": "Align children", + "type": "Dropdown", + "description": "Align children in the opposite direction.", + "options": [ + { + "name": "Start", + "class": "alignChildrenStart" + }, + { + "name": "Center", + "class": "alignChildrenCenter" + }, + { + "name": "End", + "class": "alignChildrenEnd" + }, + { + "name": "Stretch", + "class": "alignChildrenStretch" + } + ] + }, + { + "name": "Justify children", + "type": "Dropdown", + "description": "Justify children in the active direction.", + "options": [ + { + "name": "Center", + "class": "justifyChildrenCenter" + }, + { + "name": "End", + "class": "justifyChildrenEnd" + }, + { + "name": "Space between", + "class": "justifyChildrenSpaceBetween" + }, + { + "name": "Space around", + "class": "justifyChildrenSpaceAround" + } + ] + } + ], + "com.mendix.widget.native.accordion.Accordion": [ + { + "name": "Compact", + "type": "Toggle", + "description": "Reduces the spacing in the header and the content.", + "class": "accordionCompact" + }, + { + "name": "Dividers", + "type": "Dropdown", + "description": "Configure the dividers between the groups.", + "options": [ + { + "name": "Lined", + "class": "accordionLined" + }, + { + "name": "None", + "class": "accordionDividerNone" + } + ] + }, + { + "name": "Accordion style", + "type": "Dropdown", + "description": "Style of the Accordion.", + "options": [ + { + "name": "Primary", + "class": "accordionPrimary" + }, + { + "name": "Secondary", + "class": "accordionSecondary" + }, + { + "name": "Success", + "class": "accordionSuccess" + }, + { + "name": "Warning", + "class": "accordionWarning" + }, + { + "name": "Danger", + "class": "accordionDanger" + } + ] + } + ], + "com.mendix.widget.native.badge.Badge": [ + { + "name": "Badge style", + "type": "Dropdown", + "description": "Style of the Badge.", + "options": [ + { + "name": "Primary", + "class": "badgePrimary" + }, + { + "name": "Success", + "class": "badgeSuccess" + }, + { + "name": "Warning", + "class": "badgeWarning" + }, + { + "name": "Danger", + "class": "badgeDanger" + } + ] + } + ], + "com.mendix.widget.native.floatingactionbutton.FloatingActionButton": [ + { + "name": "Style", + "type": "Dropdown", + "description": "Style of the Floating Action Button.", + "options": [ + { + "name": "Secondary", + "class": "floatingActionButtonSecondary" + }, + { + "name": "Success", + "class": "floatingActionButtonSuccess" + }, + { + "name": "Warning", + "class": "floatingActionButtonWarning" + }, + { + "name": "Danger", + "class": "floatingActionButtonDanger" + } + ] + } + ], + "com.mendix.widget.native.linechart.LineChart": [ + { + "name": "Chart size", + "type": "Dropdown", + "description": "Size of the chart.", + "options": [ + { + "name": "Square", + "class": "lineChartSquare" + }, + { + "name": "Maximum space", + "class": "lineChartMaxSpace" + } + ] + } + ], + "com.mendix.widget.native.listviewswipe.ListViewSwipe": [ + { + "name": "Panel size", + "type": "Dropdown", + "description": "Size of the left and right panel.", + "options": [ + { + "name": "Small", + "class": "listViewSwipeSmallPanels" + }, + { + "name": "Large", + "class": "listViewSwipeLargePanels" + } + ] + } + ], + "com.mendix.widget.native.maps.Maps": [ + { + "name": "Maps size", + "type": "Dropdown", + "description": "Size of the maps.", + "options": [ + { + "name": "Square", + "class": "mapsSquare" + }, + { + "name": "Maximum space", + "class": "mapsMaxSpace" + } + ] + }, + { + "name": "Maps marker style", + "type": "Dropdown", + "description": "Style of the marker.", + "options": [ + { + "name": "Success", + "class": "mapsSuccess" + }, + { + "name": "Warning", + "class": "mapsWarning" + }, + { + "name": "Danger", + "class": "mapsDanger" + } + ] + } + ], + "com.mendix.widget.native.barchart.BarChart": [ + { + "name": "Chart size", + "type": "Dropdown", + "description": "Size of the chart.", + "options": [ + { + "name": "Square", + "class": "barChartSquare" + }, + { + "name": "Maximum space", + "class": "barChartMaxSpace" + } + ] + } + ], + "com.mendix.widget.native.columnchart.ColumnChart": [ + { + "name": "Chart size", + "type": "Dropdown", + "description": "Size of the chart.", + "options": [ + { + "name": "Square", + "class": "columnChartSquare" + }, + { + "name": "Maximum space", + "class": "columnChartMaxSpace" + } + ] + } + ], + "com.mendix.widget.native.progressbar.ProgressBar": [ + { + "name": "Progress bar style", + "type": "Dropdown", + "description": "Style of the progress bar.", + "options": [ + { + "name": "Success", + "class": "progressBarSuccess" + }, + { + "name": "Warning", + "class": "progressBarWarning" + }, + { + "name": "Danger", + "class": "progressBarDanger" + } + ] + }, + { + "name": "Progress bar size", + "type": "Dropdown", + "description": "Size of the progress bar.", + "options": [ + { + "name": "Small", + "class": "progressBarSmall" + }, + { + "name": "Large", + "class": "progressBarLarge" + } + ] + } + ], + "com.mendix.widget.native.progresscircle.ProgressCircle": [ + { + "name": "Progress circle style", + "type": "Dropdown", + "description": "Style of the progress circle.", + "options": [ + { + "name": "Success", + "class": "progressCircleSuccess" + }, + { + "name": "Warning", + "class": "progressCircleWarning" + }, + { + "name": "Danger", + "class": "progressCircleDanger" + } + ] + } + ], + "com.mendix.widget.native.rangeslider.RangeSlider": [ + { + "name": "Range Slider style", + "type": "Dropdown", + "description": "Style of the range slider.", + "options": [ + { + "name": "Success", + "class": "rangeSliderSuccess" + }, + { + "name": "Warning", + "class": "rangeSliderWarning" + }, + { + "name": "Danger", + "class": "rangeSliderDanger" + } + ] + } + ], + "com.mendix.widget.native.safeareaview.SafeAreaView": [ + { + "name": "Spacing top", + "type": "Dropdown", + "description": "The spacing above this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerTopSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerTopMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerTopLarger" + } + ] + }, + { + "name": "Spacing bottom", + "type": "Dropdown", + "description": "The spacing below this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerBottomSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerBottomMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerBottomLarger" + } + ] + }, + { + "name": "Spacing left", + "type": "Dropdown", + "description": "The spacing to the left of this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerLeftSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerLeftMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerLeftLarger" + } + ] + }, + { + "name": "Spacing right", + "type": "Dropdown", + "description": "The spacing to the right of this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerRightSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerRightMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerRightLarger" + } + ] + }, + { + "name": "Background color", + "type": "Dropdown", + "description": "Change the background color of the container.", + "options": [ + { + "name": "Background Primary", + "oldNames": ["Primary"], + "class": "backgroundPrimary" + }, + { + "name": "Background Secondary", + "oldNames": ["Gray", "Secondary"], + "class": "backgroundSecondary" + }, + { + "name": "Brand Primary", + "class": "backgroundBrandPrimary" + }, + { + "name": "Brand Success", + "class": "backgroundBrandSuccess" + }, + { + "name": "Brand Warning", + "class": "backgroundBrandWarning" + }, + { + "name": "Brand Danger", + "class": "backgroundBrandDanger" + }, + { + "name": "Brand Info", + "class": "backgroundBrandInfo" + } + ] + }, + { + "name": "Render children horizontal", + "type": "Toggle", + "description": "Determines the direction in which children are rendered.", + "class": "flexRow" + }, + { + "name": "Wrap children", + "type": "Toggle", + "description": "Determines if children can flow into multiple lines if they hit the end of the container.", + "class": "flexWrap" + }, + { + "name": "Align children", + "type": "Dropdown", + "description": "Align children in the opposite direction.", + "options": [ + { + "name": "Start", + "class": "alignChildrenStart" + }, + { + "name": "Center", + "class": "alignChildrenCenter" + }, + { + "name": "End", + "class": "alignChildrenEnd" + }, + { + "name": "Stretch", + "class": "alignChildrenStretch" + }, + { + "name": "Baseline", + "class": "alignChildrenBaseline" + } + ] + }, + { + "name": "Justify content", + "type": "Dropdown", + "description": "Justify content in the active direction.", + "options": [ + { + "name": "Start", + "class": "justifyContentStart" + }, + { + "name": "Center", + "class": "justifyContentCenter" + }, + { + "name": "End", + "class": "justifyContentEnd" + }, + { + "name": "Space between", + "class": "justifyContentSpaceBetween" + }, + { + "name": "Space around", + "class": "justifyContentSpaceAround" + }, + { + "name": "Space evenly", + "class": "justifyContentSpaceEvenly" + } + ] + } + ], + "com.mendix.widget.native.slider.Slider": [ + { + "name": "Slider style", + "type": "Dropdown", + "description": "Style of the slider.", + "options": [ + { + "name": "Success", + "class": "sliderSuccess" + }, + { + "name": "Warning", + "class": "sliderWarning" + }, + { + "name": "Danger", + "class": "sliderDanger" + } + ] + } + ], + "com.mendix.widget.native.switch.Switch": [ + { + "name": "Switch style", + "type": "Dropdown", + "description": "Style of the switch track color.", + "options": [ + { + "name": "Success", + "class": "switchSuccess" + }, + { + "name": "Warning", + "class": "switchWarning" + }, + { + "name": "Danger", + "class": "switchDanger" + } + ] + } + ], + "com.mendix.widget.native.radiobuttons.RadioButtons": [ + { + "name": "Radio button color", + "type": "Dropdown", + "description": "Change the color of radio button.", + "options": [ + { + "name": "Brand Primary", + "class": "radioButtonsPrimary" + }, + { + "name": "Brand Success", + "class": "radioButtonsSuccess" + }, + { + "name": "Brand Warning", + "class": "radioButtonsWarning" + }, + { + "name": "Brand Danger", + "class": "radioButtonsDanger" + }, + { + "name": "Brand Info", + "class": "radioButtonsInfo" + } + ] + }, + { + "name": "Radio button label color", + "type": "Dropdown", + "description": "Change the color of label.", + "options": [ + { + "name": "Brand Primary", + "class": "radioButtonsLabelPrimary" + }, + { + "name": "Brand Success", + "class": "radioButtonsLabelSuccess" + }, + { + "name": "Brand Warning", + "class": "radioButtonsLabelWarning" + }, + { + "name": "Brand Danger", + "class": "radioButtonsLabelDanger" + }, + { + "name": "Brand Info", + "class": "radioButtonsLabelInfo" + } + ] + } + ], + "com.mendix.widget.native.backgroundgradient.BackgroundGradient": [ + { + "name": "Spacing top", + "type": "Dropdown", + "description": "The spacing above this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerTopSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerTopMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerTopLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterTopSmaller" + }, + { + "name": "Outer medium", + "class": "spacingOuterTopMedium" + }, + { + "name": "Outer large", + "class": "spacingOuterTopLarger" + } + ] + }, + { + "name": "Spacing bottom", + "type": "Dropdown", + "description": "The spacing below this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerBottomSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerBottomMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerBottomLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterBottomSmaller" + }, + { + "name": "Outer medium", + "class": "spacingOuterBottomMedium" + }, + { + "name": "Outer large", + "class": "spacingOuterBottomLarger" + } + ] + }, + { + "name": "Spacing left", + "type": "Dropdown", + "description": "The spacing to the left of this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerLeftSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerLeftMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerLeftLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterLeftSmaller" + }, + { + "name": "Outer medium", + "class": "spacingOuterLeftMedium" + }, + { + "name": "Outer large", + "class": "spacingOuterLeftLarger" + } + ] + }, + { + "name": "Spacing right", + "type": "Dropdown", + "description": "The spacing to the right of this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerRightSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerRightMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerRightLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterRightSmaller" + }, + { + "name": "Outer medium", + "class": "spacingOuterRightMedium" + }, + { + "name": "Outer large", + "class": "spacingOuterRightLarger" + } + ] + }, + { + "name": "Size", + "type": "Dropdown", + "description": "Change the size of the widget relative to its sibling(s).", + "options": [ + { + "name": "Maximum space", + "class": "flexMain" + }, + { + "name": "Minimum space", + "class": "flexItem" + } + ] + }, + { + "name": "Align", + "type": "Dropdown", + "description": "Aligns the element. This overrides 'Align children' of the parent.", + "options": [ + { + "name": "Start", + "class": "alignSelfStart" + }, + { + "name": "Center", + "class": "alignSelfCenter" + }, + { + "name": "End", + "class": "alignSelfEnd" + }, + { + "name": "Stretch", + "class": "alignSelfStretch" + }, + { + "name": "Baseline", + "class": "alignSelfBaseline" + } + ] + }, + { + "name": "Render children horizontal", + "type": "Toggle", + "description": "Determines the direction in which children are rendered.", + "class": "flexRow" + }, + { + "name": "Wrap children", + "type": "Toggle", + "description": "Determines if children can flow into multiple lines if they hit the end of the container.", + "class": "flexWrap" + }, + { + "name": "Align children", + "type": "Dropdown", + "description": "Align children in the opposite direction.", + "options": [ + { + "name": "Start", + "class": "alignChildrenStart" + }, + { + "name": "Center", + "class": "alignChildrenCenter" + }, + { + "name": "End", + "class": "alignChildrenEnd" + }, + { + "name": "Stretch", + "class": "alignChildrenStretch" + }, + { + "name": "Baseline", + "class": "alignChildrenBaseline" + } + ] + }, + { + "name": "Justify content", + "type": "Dropdown", + "description": "Justify content in the active direction.", + "options": [ + { + "name": "Start", + "class": "justifyContentStart" + }, + { + "name": "Center", + "class": "justifyContentCenter" + }, + { + "name": "End", + "class": "justifyContentEnd" + }, + { + "name": "Space between", + "class": "justifyContentSpaceBetween" + }, + { + "name": "Space around", + "class": "justifyContentSpaceAround" + }, + { + "name": "Space evenly", + "class": "justifyContentSpaceEvenly" + } + ] + }, + { + "name": "Angle", + "type": "Dropdown", + "description": "Line of direction. A value of 0 is equivalent to top; increasing values rotates clockwise.", + "options": [ + { + "name": "0 degrees", + "class": "angle0" + }, + { + "name": "45 degrees", + "class": "angle45" + }, + { + "name": "90 degrees", + "class": "angle90" + } + ] + }, + { + "name": "Opacity", + "type": "Dropdown", + "description": "Sets the opacity of the element.", + "options": [ + { + "name": "25%", + "class": "opacity25" + }, + { + "name": "50%", + "class": "opacity50" + }, + { + "name": "75%", + "class": "opacity75" + }, + { + "name": "100%", + "class": "opacity100" + } + ] + } + ], + "com.mendix.widget.native.gallery.Gallery": [ + { + "name": "Spacing top", + "type": "Dropdown", + "description": "The spacing above this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerTopSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerTopMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerTopLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterTopSmaller" + }, + { + "name": "Outer medium", + "class": "spacingOuterTopMedium" + }, + { + "name": "Outer large", + "class": "spacingOuterTopLarger" + } + ] + }, + { + "name": "Spacing bottom", + "type": "Dropdown", + "description": "The spacing below this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerBottomSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerBottomMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerBottomLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterBottomSmaller" + }, + { + "name": "Outer medium", + "class": "spacingOuterBottomMedium" + }, + { + "name": "Outer large", + "class": "spacingOuterBottomLarger" + } + ] + }, + { + "name": "Spacing left", + "type": "Dropdown", + "description": "The spacing to the left of this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerLeftSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerLeftMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerLeftLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterLeftSmaller" + }, + { + "name": "Outer medium", + "class": "spacingOuterLeftMedium" + }, + { + "name": "Outer large", + "class": "spacingOuterLeftLarger" + } + ] + }, + { + "name": "Spacing right", + "type": "Dropdown", + "description": "The spacing to the right of this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerRightSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerRightMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerRightLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterRightSmaller" + }, + { + "name": "Outer medium", + "class": "spacingOuterRightMedium" + }, + { + "name": "Outer large", + "class": "spacingOuterRightLarger" + } + ] + }, + { + "name": "Background color", + "type": "Dropdown", + "description": "Change the background color of the container.", + "options": [ + { + "name": "Background Primary", + "oldNames": ["Primary"], + "class": "backgroundPrimary" + }, + { + "name": "Background Secondary", + "oldNames": ["Gray", "Secondary"], + "class": "backgroundSecondary" + }, + { + "name": "Brand Primary", + "class": "backgroundBrandPrimary" + }, + { + "name": "Brand Success", + "class": "backgroundBrandSuccess" + }, + { + "name": "Brand Warning", + "class": "backgroundBrandWarning" + }, + { + "name": "Brand Danger", + "class": "backgroundBrandDanger" + }, + { + "name": "Brand Info", + "class": "backgroundBrandInfo" + } + ] + }, + { + "name": "Size", + "type": "Dropdown", + "description": "Change the size of the widget relative to its sibling(s).", + "options": [ + { + "name": "Maximum space", + "class": "flexMain" + }, + { + "name": "Minimum space", + "class": "flexItem" + } + ] + }, + { + "name": "Align", + "type": "Dropdown", + "description": "Aligns the element. This overrides 'Align children' of the parent.", + "options": [ + { + "name": "Start", + "class": "alignSelfStart" + }, + { + "name": "Center", + "class": "alignSelfCenter" + }, + { + "name": "End", + "class": "alignSelfEnd" + }, + { + "name": "Stretch", + "class": "alignSelfStretch" + }, + { + "name": "Baseline", + "class": "alignSelfBaseline" + } + ] + }, + { + "name": "Render children horizontal", + "type": "Toggle", + "description": "Determines the direction in which children are rendered.", + "class": "galleryGridFlexRow" + }, + { + "name": "Wrap children", + "type": "Toggle", + "description": "Determines if children can flow into multiple lines if they hit the end of the container.", + "class": "galleryGridFlexWrap" + }, + { + "name": "Align children", + "type": "Dropdown", + "description": "Align children in the opposite direction.", + "options": [ + { + "name": "Start", + "class": "galleryGridAlignSelfStart" + }, + { + "name": "Center", + "class": "galleryGridAlignSelfCenter" + }, + { + "name": "End", + "class": "galleryGridAlignSelfEnd" + }, + { + "name": "Stretch", + "class": "galleryGridAlignSelfStretch" + }, + { + "name": "Baseline", + "class": "galleryGridAlignSelfBaseline" + } + ] + }, + { + "name": "Justify content", + "type": "Dropdown", + "description": "Justify content in the active direction.", + "options": [ + { + "name": "Start", + "class": "galleryGridJustifyContentStart" + }, + { + "name": "Center", + "class": "galleryGridJustifyContentCenter" + }, + { + "name": "End", + "class": "galleryGridJustifyContentEnd" + }, + { + "name": "Space between", + "class": "galleryGridJustifyContentSpaceBetween" + }, + { + "name": "Space around", + "class": "galleryGridJustifyContentSpaceAround" + }, + { + "name": "Space evenly", + "class": "galleryGridJustifyContentSpaceEvenly" + } + ] + }, + { + "name": "Justify load more button", + "type": "Dropdown", + "description": "Justify the load more button in the active direction.", + "options": [ + { + "name": "Left", + "class": "justifyPaginationLeft" + }, + { + "name": "Center", + "class": "justifyPaginationCenter" + }, + { + "name": "Right", + "class": "justifyPaginationRight" + } + ] + }, + { + "name": "Load more button style", + "type": "Dropdown", + "description": "Style of the Load more button.", + "options": [ + { + "name": "Secondary", + "class": "loadMoreButtonBackgroundSecondary" + }, + { + "name": "Success", + "class": "loadMoreButtonBackgroundSuccess" + }, + { + "name": "Warning", + "class": "loadMoreButtonBackgroundWarning" + }, + { + "name": "Danger", + "class": "loadMoreButtonBackgroundDanger" + } + ] + }, + { + "name": "Load more button size", + "type": "Dropdown", + "description": "Style of the Load more button.", + "options": [ + { + "name": "Fixed size", + "class": "loadMoreButtonFixedSize" + } + ] + }, + { + "name": "List item divider", + "type": "Dropdown", + "description": "Give each list item a border.", + "options": [ + { + "name": "Vertical", + "class": "listItemBorderHorizontal" + }, + { + "name": "Horizontal", + "class": "listItemBorderVertical" + }, + { + "name": "Both", + "class": "listItemBorder" + } + ] + }, + { + "name": "Grid gap", + "type": "Dropdown", + "description": "The spacing around the list items.", + "options": [ + { + "name": "Inner small", + "class": "gridGapInnerSmall" + }, + { + "name": "Inner medium", + "class": "gridGapInnerMedium" + }, + { + "name": "Inner large", + "class": "gridGapInnerLarge" + }, + { + "name": "Outer small", + "class": "gridGapOuterSmall" + }, + { + "name": "Outer medium", + "class": "gridGapOuterMedium" + }, + { + "name": "Outer large", + "class": "gridGapOuterLarge" + } + ] + } + ], + "com.mendix.widget.native.gallerytextfilter.GalleryTextFilter": [ + { + "name": "Spacing top", + "type": "Dropdown", + "description": "The spacing above this element.", + "options": [ + { + "name": "Smallest", + "class": "galleryTextFilterSpacingOuterTopSmallest" + }, + { + "name": "Smaller", + "class": "galleryTextFilterSpacingOuterTopSmaller" + }, + { + "name": "Small", + "class": "galleryTextFilterSpacingOuterTopSmall" + }, + { + "name": "Medium", + "class": "galleryTextFilterSpacingOuterTopMedium" + }, + { + "name": "Large", + "class": "galleryTextFilterSpacingOuterTopLarge" + }, + { + "name": "Larger", + "class": "galleryTextFilterSpacingOuterTopLarger" + }, + { + "name": "Largest", + "class": "galleryTextFilterSpacingOuterTopLargest" + } + ] + }, + { + "name": "Spacing bottom", + "type": "Dropdown", + "description": "The spacing below this element.", + "options": [ + { + "name": "Smallest", + "class": "galleryTextFilterSpacingOuterBottomSmallest" + }, + { + "name": "Smaller", + "class": "galleryTextFilterSpacingOuterBottomSmaller" + }, + { + "name": "Small", + "class": "galleryTextFilterSpacingOuterBottomSmall" + }, + { + "name": "Medium", + "class": "galleryTextFilterSpacingOuterBottomMedium" + }, + { + "name": "Large", + "class": "galleryTextFilterSpacingOuterBottomLarge" + }, + { + "name": "Larger", + "class": "galleryTextFilterSpacingOuterBottomLarger" + }, + { + "name": "Largest", + "class": "galleryTextFilterSpacingOuterBottomLargest" + } + ] + }, + { + "name": "Spacing left", + "type": "Dropdown", + "description": "The spacing to the left of this element.", + "options": [ + { + "name": "Smallest", + "class": "galleryTextFilterSpacingOuterLeftSmallest" + }, + { + "name": "Smaller", + "class": "galleryTextFilterSpacingOuterLeftSmaller" + }, + { + "name": "Small", + "class": "galleryTextFilterSpacingOuterLeftSmall" + }, + { + "name": "Medium", + "class": "galleryTextFilterSpacingOuterLeftMedium" + }, + { + "name": "Large", + "class": "galleryTextFilterSpacingOuterLeftLarge" + }, + { + "name": "Larger", + "class": "galleryTextFilterSpacingOuterLeftLarger" + }, + { + "name": "Largest", + "class": "galleryTextFilterSpacingOuterLeftLargest" + } + ] + }, + { + "name": "Spacing right", + "type": "Dropdown", + "description": "The spacing to the right of this element.", + "options": [ + { + "name": "Smallest", + "class": "galleryTextFilterSpacingOuterRightSmallest" + }, + { + "name": "Smaller", + "class": "galleryTextFilterSpacingOuterRightSmaller" + }, + { + "name": "Small", + "class": "galleryTextFilterSpacingOuterRightSmall" + }, + { + "name": "Medium", + "class": "galleryTextFilterSpacingOuterRightMedium" + }, + { + "name": "Large", + "class": "galleryTextFilterSpacingOuterRightLarge" + }, + { + "name": "Larger", + "class": "galleryTextFilterSpacingOuterRightLarger" + }, + { + "name": "Largest", + "class": "galleryTextFilterSpacingOuterRightLargest" + } + ] + } + ] +} diff --git a/themesource/atlas_core/native/layouts/layout.js b/themesource/atlas_core/native/layouts/layout.js new file mode 100644 index 0000000..dc2b6e1 --- /dev/null +++ b/themesource/atlas_core/native/layouts/layout.js @@ -0,0 +1,67 @@ +import { NativeModules } from "react-native"; +import { darkMode } from "../../../../theme/native/custom-variables"; +import { background, font, navigation } from "../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Sidebar / Statusbar / Header + + Default Class For Mendix Sidebar, Statusbar and Header +========================================================================== */ +// backgroundColor of the native iOS statusbar can not be changed. +// To fix this we change the barStyle of the statusbar if OS theme is dark and app theme is light (And the other way around). +const isOSDarkMode = NativeModules && + NativeModules.RNDarkMode && + NativeModules.RNDarkMode.initialMode && + NativeModules.RNDarkMode.initialMode === "dark"; +const statusBarStyle = !darkMode && isOSDarkMode + ? "dark-content" + : darkMode && !isOSDarkMode + ? "light-content" + : navigation.statusBar.barStyle; +// +export const Layout = { + sidebar: { + // All ViewStyle properties are allowed + }, + statusBar: { + // Only backgroundColor and barStyle are allowed + backgroundColor: navigation.statusBar.backgroundColor, + barStyle: statusBarStyle + }, + header: { + container: { + // All ViewStyle properties are allowed + backgroundColor: navigation.topBar.backgroundColor, + elevation: 0, + shadowOpacity: 0, + shadowOffset: undefined, + borderBottomWidth: undefined + }, + title: { + // All TextStyle properties are allowed + color: navigation.topBar.titleColor, + fontSize: navigation.topBar.titleFontSize, + fontFamily: font.family, + fontWeight: font.weightBold + }, + backButtonText: { + // All TextStyle properties are allowed + color: navigation.topBar.backButtonColor, + fontFamily: font.family + }, + backButtonIcon: { + // All ImageStyle properties are allowed + tintColor: navigation.topBar.backButtonColor + } + }, + container: { + // All ViewStyle properties are allowed + backgroundColor: background.primary + } +}; diff --git a/themesource/atlas_core/native/layouts/page.js b/themesource/atlas_core/native/layouts/page.js new file mode 100644 index 0000000..71c6e92 --- /dev/null +++ b/themesource/atlas_core/native/layouts/page.js @@ -0,0 +1,53 @@ +import { background, font, navigation } from "../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Page + + Default Class For Mendix Page +========================================================================== */ +export const Page = { + sidebar: { + // All ViewStyle properties are allowed + }, + statusBar: { + // Only backgroundColor and barStyle are allowed + backgroundColor: navigation.statusBar.backgroundColor, + barStyle: navigation.statusBar.barStyle + }, + header: { + container: { + // All ViewStyle properties are allowed + backgroundColor: navigation.topBar.backgroundColor, + elevation: 0, + shadowOpacity: 0, + shadowOffset: undefined, + borderBottomWidth: undefined + }, + title: { + // All TextStyle properties are allowed + color: navigation.topBar.titleColor, + fontSize: navigation.topBar.titleFontSize, + fontFamily: font.family, + fontWeight: font.weightBold + }, + backButtonText: { + // All TextStyle properties are allowed + color: navigation.topBar.backButtonColor, + fontFamily: font.family + }, + backButtonIcon: { + // All ImageStyle properties are allowed + tintColor: navigation.topBar.backButtonColor + } + }, + container: { + // All ViewStyle properties are allowed + backgroundColor: background.primary + } +}; diff --git a/themesource/atlas_core/native/main.js b/themesource/atlas_core/native/main.js new file mode 100644 index 0000000..770045b --- /dev/null +++ b/themesource/atlas_core/native/main.js @@ -0,0 +1,184 @@ +import * as exclusionVariables from "../../../theme/native/exclusion-variables"; +// ================================== CORE ==================================\\ +// +// +// Base +import * as flex from "./core/base/flex"; +import * as spacing from "./core/base/spacing"; +// +// +// Components +import * as widgetsAccordion from "./core/widgets/accordion"; +import * as helpersAccordion from "./core/helpers/accordion"; +import * as widgetsActivityIndicator from "./core/widgets/activityindicator"; +import * as helpersActivityIndicator from "./core/helpers/activityindicator"; +import * as widgetsAnimation from "./core/widgets/animation"; +import * as widgetsBackgroundImage from "./core/widgets/backgroundimage"; +import * as widgetsBadge from "./core/widgets/badge"; +import * as helpersBadge from "./core/helpers/badge"; +import * as widgetsBottomSheet from "./core/widgets/bottomsheet"; +import * as widgetsButtons from "./core/widgets/buttons"; +import * as helpersButtons from "./core/helpers/buttons"; +import * as widgetsCarousel from "./core/widgets/carousel"; +import * as widgetsCheckBox from "./core/widgets/checkbox"; +import * as widgetsColorPicker from "./core/widgets/colorpicker"; +import * as widgetsContainer from "./core/widgets/container"; +import * as widgetsDatePicker from "./core/widgets/datepicker"; +import * as widgetsDropDown from "./core/widgets/dropdown"; +import * as widgetsFeedback from "./core/widgets/feedback"; +import * as widgetsFloatingActionButton from "./core/widgets/floatingactionbutton"; +import * as helpersFloatingActionButton from "./core/helpers/floatingactionbutton"; +import * as widgetsImage from "./core/widgets/image"; +import * as helpersImage from "./core/helpers/image"; +import * as widgetsIntroScreen from "./core/widgets/introscreen"; +import * as helpersIntroScreen from "./core/helpers/introscreen"; +import * as widgetsLayoutGrid from "./core/widgets/layoutgrid"; +import * as widgetsLineChart from "./core/widgets/linechart"; +import * as helpersLineChart from "./core/helpers/linechart"; +import * as widgetsBarChart from "./core/widgets/barchart"; +import * as helpersBarChart from "./core/helpers/barchart"; +import * as widgetsListView from "./core/widgets/listview"; +import * as helpersListView from "./core/helpers/listview"; +import * as widgetsListViewSwipe from "./core/widgets/listviewswipe"; +import * as helpersListViewSwipe from "./core/helpers/listviewswipe"; +import * as widgetsMaps from "./core/widgets/maps"; +import * as helpersMaps from "./core/helpers/maps"; +import * as widgetsNavigation from "./core/widgets/navigation"; +import * as widgetsPageTitle from "./core/widgets/pagetitle"; +import * as widgetsPieDoughnutChart from "./core/widgets/piedoughnutchart"; +import * as widgetsProgressBar from "./core/widgets/progressbar"; +import * as helpersProgressBar from "./core/helpers/progressbar"; +import * as widgetsProgressCircle from "./core/widgets/progresscircle"; +import * as helpersProgressCircle from "./core/helpers/progresscircle"; +import * as widgetsPopUpMenu from "./core/widgets/popupmenu"; +import * as widgetsQRCode from "./core/widgets/qrcode"; +import * as widgetsRangeSlider from "./core/widgets/rangeslider"; +import * as helpersRangeSlider from "./core/helpers/rangeslider"; +import * as widgetsRating from "./core/widgets/rating"; +import * as widgetsReferenceSelector from "./core/widgets/referenceselector"; +import * as widgetsSafeAreaView from "./core/widgets/safeareaview"; +import * as widgetsSlider from "./core/widgets/slider"; +import * as helpersSlider from "./core/helpers/slider"; +import * as widgetsSwitch from "./core/widgets/switch"; +import * as helpersSwitch from "./core/helpers/switch"; +import * as widgetsTabContainer from "./core/widgets/tabcontainer"; +import * as helpersTabContainer from "./core/helpers/tabcontainer"; +import * as widgetsTextArea from "./core/widgets/textarea"; +import * as widgetsTextBox from "./core/widgets/textbox"; +import * as helpersTextBox from "./core/helpers/textbox"; +import * as widgetsToggleButtons from "./core/widgets/togglebuttons"; +import * as widgetsTypography from "./core/widgets/typography"; +import * as helpersTypography from "./core/helpers/typography"; +import * as widgetsVideoPlayer from "./core/widgets/videoplayer"; +import * as widgetsWebView from "./core/widgets/webview"; +import * as helperClasses from "./core/helpers/helperclasses"; +import * as radioButtons from "./core/widgets/radiobuttons"; +import * as helperRadioButtons from "./core/helpers/radiobuttons"; +import * as backgroundGradient from "./core/widgets/backgroundgradient"; +import * as helperBackgroundGradient from "./core/helpers/backgroundgradient"; +import * as widgetsColumnChart from "./core/widgets/columnchart"; +import * as helpersColumnChart from "./core/helpers/columnchart"; +import * as widgetsGallery from "./core/widgets/gallery"; +import * as helpersGallery from "./core/helpers/gallery"; +import * as widgetsGalleryTextFilter from "./core/widgets/gallerytextfilter"; +import * as helpersGalleryTextFilter from "./core/helpers/gallerytextfilter"; +// +// +// ================================= CUSTOM =================================\\ +// +// +// Layouts +import * as layout from "./layouts/layout"; +import * as page from "./layouts/page"; +module.exports = [ + flex, + spacing, + !exclusionVariables.excludeAccordion ? widgetsAccordion : {}, + !exclusionVariables.excludeAccordion && !exclusionVariables.excludeAccordionHelpers ? helpersAccordion : {}, + !exclusionVariables.excludeActivityIndicator ? widgetsActivityIndicator : {}, + !exclusionVariables.excludeActivityIndicator && !exclusionVariables.excludeActivityIndicatorHelpers + ? helpersActivityIndicator + : {}, + !exclusionVariables.excludeAnimation ? widgetsAnimation : {}, + !exclusionVariables.excludeBackgroundImage ? widgetsBackgroundImage : {}, + !exclusionVariables.excludeBadge ? widgetsBadge : {}, + !exclusionVariables.excludeBadge && !exclusionVariables.excludeBadgeHelpers ? helpersBadge : {}, + !exclusionVariables.excludeBottomSheet ? widgetsBottomSheet : {}, + !exclusionVariables.excludeButtons ? widgetsButtons : {}, + !exclusionVariables.excludeButtons && !exclusionVariables.excludeButtonsHelpers ? helpersButtons : {}, + !exclusionVariables.excludeCarousel ? widgetsCarousel : {}, + !exclusionVariables.excludeCheckBox ? widgetsCheckBox : {}, + !exclusionVariables.excludeColorPicker ? widgetsColorPicker : {}, + !exclusionVariables.excludeContainer ? widgetsContainer : {}, + !exclusionVariables.excludeDatePicker ? widgetsDatePicker : {}, + !exclusionVariables.excludeDropDown ? widgetsDropDown : {}, + !exclusionVariables.excludeFeedback ? widgetsFeedback : {}, + !exclusionVariables.excludeFAB ? widgetsFloatingActionButton : {}, + !exclusionVariables.excludeFAB && !exclusionVariables.excludeFABHelpers ? helpersFloatingActionButton : {}, + !exclusionVariables.excludeImage ? widgetsImage : {}, + !exclusionVariables.excludeImage && !exclusionVariables.excludeImageHelpers ? helpersImage : {}, + !exclusionVariables.excludeIntroScreen ? widgetsIntroScreen : {}, + !exclusionVariables.excludeIntroScreen && !exclusionVariables.excludeIntroScreenHelpers ? helpersIntroScreen : {}, + !exclusionVariables.excludeLayoutGrid ? widgetsLayoutGrid : {}, + !exclusionVariables.excludeLineChart ? widgetsLineChart : {}, + !exclusionVariables.excludeLineChart && !exclusionVariables.excludeLineChartHelpers ? helpersLineChart : {}, + !exclusionVariables.excludeBarChart ? widgetsBarChart : {}, + !exclusionVariables.excludeBarChart && !exclusionVariables.excludeBarChartHelpers ? helpersBarChart : {}, + !exclusionVariables.excludeListView ? widgetsListView : {}, + !exclusionVariables.excludeListView && !exclusionVariables.excludeListViewHelpers ? helpersListView : {}, + !exclusionVariables.excludeListViewSwipe ? widgetsListViewSwipe : {}, + !exclusionVariables.excludeListViewSwipe && !exclusionVariables.excludeListViewSwipeHelpers + ? helpersListViewSwipe + : {}, + !exclusionVariables.excludeMaps ? widgetsMaps : {}, + !exclusionVariables.excludeMaps && !exclusionVariables.excludeMapsHelpers ? helpersMaps : {}, + widgetsNavigation, + !exclusionVariables.excludePageTitle ? widgetsPageTitle : {}, + !exclusionVariables.excludePieDoughnutChart ? widgetsPieDoughnutChart : {}, + !exclusionVariables.excludeProgressBar ? widgetsProgressBar : {}, + !exclusionVariables.excludeProgressBar && !exclusionVariables.excludeProgressBarHelpers ? helpersProgressBar : {}, + !exclusionVariables.excludeProgressCircle ? widgetsProgressCircle : {}, + !exclusionVariables.excludeProgressCircle && !exclusionVariables.excludeProgressCircleHelpers + ? helpersProgressCircle + : {}, + !exclusionVariables.excludePopUpMenu ? widgetsPopUpMenu : {}, + !exclusionVariables.excludeQRCode ? widgetsQRCode : {}, + !exclusionVariables.excludeRangeSlider ? widgetsRangeSlider : {}, + !exclusionVariables.excludeRangeSlider && !exclusionVariables.excludeRangeSliderHelpers ? helpersRangeSlider : {}, + !exclusionVariables.excludeRating ? widgetsRating : {}, + !exclusionVariables.excludeReferenceSelector ? widgetsReferenceSelector : {}, + !exclusionVariables.excludeSafeAreaView ? widgetsSafeAreaView : {}, + !exclusionVariables.excludeSlider ? widgetsSlider : {}, + !exclusionVariables.excludeSlider && !exclusionVariables.excludeSliderHelpers ? helpersSlider : {}, + !exclusionVariables.excludeSwitch ? widgetsSwitch : {}, + !exclusionVariables.excludeSwitch && !exclusionVariables.excludeSwitchHelpers ? helpersSwitch : {}, + !exclusionVariables.excludeTabContainer ? widgetsTabContainer : {}, + !exclusionVariables.excludeTabContainer && !exclusionVariables.excludeTabContainerHelpers + ? helpersTabContainer + : {}, + !exclusionVariables.excludeTextArea ? widgetsTextArea : {}, + !exclusionVariables.excludeTextBox ? widgetsTextBox : {}, + !exclusionVariables.excludeTextBox && !exclusionVariables.excludeTextBoxHelpers ? helpersTextBox : {}, + !exclusionVariables.excludeToggleButtons ? widgetsToggleButtons : {}, + !exclusionVariables.excludeTypography ? widgetsTypography : {}, + !exclusionVariables.excludeTypography && !exclusionVariables.excludeTypographyHelpers ? helpersTypography : {}, + !exclusionVariables.excludeVideoPlayer ? widgetsVideoPlayer : {}, + !exclusionVariables.excludeWebView ? widgetsWebView : {}, + !exclusionVariables.excludeHelpers ? helperClasses : {}, + !exclusionVariables.excludeRadioButtons ? radioButtons : {}, + !exclusionVariables.excludeRadioButtons && !exclusionVariables.excludeRadioButtonsHelper ? helperRadioButtons : {}, + !exclusionVariables.excludeBackgroundGradient ? backgroundGradient : {}, + !exclusionVariables.excludeBackgroundGradient && !exclusionVariables.excludeBackgroundGradientHelper + ? helperBackgroundGradient + : {}, + !exclusionVariables.excludeColumnChart ? widgetsColumnChart : {}, + !exclusionVariables.excludeColumnChart && !exclusionVariables.excludeColumnChartHelper ? helpersColumnChart : {}, + !exclusionVariables.excludeGallery ? widgetsGallery : {}, + !exclusionVariables.excludeGallery && !exclusionVariables.excludeGalleryHelper ? helpersGallery : {}, + !exclusionVariables.excludeGalleryTextFilter ? widgetsGalleryTextFilter : {}, + !exclusionVariables.excludeGalleryTextFilter && !exclusionVariables.excludeGalleryTextFilterHelper + ? helpersGalleryTextFilter + : {}, + layout, + page +].reduce((merged, object) => ({ ...merged, ...object }), {}); diff --git a/themesource/atlas_core/native/variables.js b/themesource/atlas_core/native/variables.js new file mode 100644 index 0000000..3d58bd5 --- /dev/null +++ b/themesource/atlas_core/native/variables.js @@ -0,0 +1,759 @@ +import { Platform } from "react-native"; +import * as custom from "../../../theme/native/custom-variables"; +import adjustFont, { height, width } from "./core/helpers/_functions/adjustfont"; +import { anyColorToRgbString, setContrastScale } from "./core/helpers/_functions/convertcolors"; +import merge from "./core/helpers/_functions/mergeobjects"; +// +// +// == Global variables +// ## Variables to be used during styling +// -------------------------------------------------------------------------------------------------------------------// +// System defined read-only values +export const deviceHeight = height; +export const deviceWidth = width; +// +// Brand Style +let brand = { + primary: "#264AE5", + success: "#3CB33D", + warning: "#ECA51C", + danger: "#E33F4E", + info: "#0086D9", + primaryLight: "#F3F5FF", + successLight: "#F1FCF1", + warningLight: "#FFF9E6", + dangerLight: "#FFEEF0", + infoLight: "#ECF9FF" +}; +brand = merge(brand, custom.brand || {}); +// +// Background colors +const backgroundDefaults = { + primaryLight: "#FFF", + primaryDark: "#0A1325", + secondaryLight: "#F8F8F8", + secondaryDark: "#161F30" +}; +let background = { + primary: custom.darkMode ? backgroundDefaults.primaryDark : backgroundDefaults.primaryLight, + secondary: custom.darkMode ? backgroundDefaults.secondaryDark : backgroundDefaults.secondaryLight, + brandPrimary: brand.primary, + brandSuccess: brand.success, + brandWarning: brand.warning, + brandDanger: brand.danger, + brandInfo: brand.info +}; +background = merge(background, custom.background || {}); +// +// Contrast (Gray) colors based on background.primary +let contrast = { + highest: setContrastScale(0.95, background.primary), + higher: setContrastScale(0.8, background.primary), + high: setContrastScale(0.65, background.primary), + regular: setContrastScale(0.5, background.primary), + low: setContrastScale(0.35, background.primary), + lower: setContrastScale(0.2, background.primary), + lowest: setContrastScale(0.05, background.primary) +}; +contrast = merge(contrast, custom.contrast || {}); +// +// Border Style +let border = { + color: custom.darkMode ? "#3B4251" : "#CED0D3", + width: 1, + radiusSmall: 4, + radiusLarge: 8, + radiusLargest: 9999 +}; +border = merge(border, custom.border || {}); +// +// Font Styles +const fontDefaults = { + colorTitleDark: "#0A1326", + colorTitleLight: "#FDFDFD", + colorParagraphDark: "#6C717E", + colorParagraphLight: "#E7E7E9", + colorDisabledDark: "#9DA1A8", + colorDisabledLight: "#9DA1A8" +}; +let font = { + size: adjustFont(14), + sizeSmallest: adjustFont(10), + sizeSmall: adjustFont(12), + sizeLarge: adjustFont(16), + sizeLargest: adjustFont(18), + sizeH1: adjustFont(40), + sizeH2: adjustFont(34), + sizeH3: adjustFont(28), + sizeH4: adjustFont(24), + sizeH5: adjustFont(20), + sizeH6: adjustFont(16), + lineHeight: adjustFont(14) * 1.5, + lineHeightSmallest: adjustFont(10) * 1.5, + lineHeightSmall: adjustFont(12) * 1.5, + lineHeightLarge: adjustFont(16) * 1.5, + lineHeightLargest: adjustFont(18) * 1.5, + lineHeightH1: adjustFont(40) * 1.5, + lineHeightH2: adjustFont(34) * 1.5, + lineHeightH3: adjustFont(28) * 1.5, + lineHeightH4: adjustFont(24) * 1.5, + lineHeightH5: adjustFont(20) * 1.5, + lineHeightH6: adjustFont(16) * 1.5, + colorTitle: custom.darkMode ? fontDefaults.colorTitleLight : fontDefaults.colorTitleDark, + colorParagraph: custom.darkMode ? fontDefaults.colorParagraphLight : fontDefaults.colorParagraphDark, + colorDisabled: custom.darkMode ? fontDefaults.colorDisabledLight : fontDefaults.colorDisabledDark, + weightLight: "100", + weightNormal: "normal", + weightSemiBold: "600", + weightBold: "bold", + family: Platform.select({ ios: "System", android: "normal" }) +}; +font = merge(font, custom.font || {}); +// +// Spacing +let spacing = { + smallest: 2, + smaller: 4, + small: 8, + regular: 16, + large: 24, + larger: 32, + largest: 40 +}; +spacing = merge(spacing, custom.spacing || {}); +// +// Button Styles +let button = { + // Start default styles + container: { + rippleColor: contrast.lowest, + borderRadius: border.radiusLarge, + minWidth: 48, + minHeight: 48, + paddingVertical: spacing.small, + paddingHorizontal: spacing.small + }, + containerDisabled: { + borderColor: border.color, + backgroundColor: border.color + }, + icon: { + size: font.sizeSmall + }, + iconDisabled: { + color: font.colorDisabled + }, + caption: { + fontSize: font.sizeSmall, + fontWeight: font.weightBold + }, + captionDisabled: { + color: font.colorDisabled + }, + // End default styles + header: { + color: contrast.highest, + borderColor: "transparent", + backgroundColor: "transparent", + fontSize: font.sizeSmall, + fontSizeIcon: font.sizeSmall, + paddingLeft: 0, + paddingRight: 10 + }, + primary: { + color: "#FFF", + borderColor: brand.primary, + backgroundColor: brand.primary + }, + secondary: { + color: brand.primary, + borderColor: brand.primary, + backgroundColor: "transparent", + inversedColor: "#FFF" + }, + success: { + color: "#FFF", + borderColor: brand.success, + backgroundColor: brand.success + }, + warning: { + color: "#FFF", + borderColor: brand.warning, + backgroundColor: brand.warning + }, + danger: { + color: "#FFF", + borderColor: brand.danger, + backgroundColor: brand.danger + } +}; +button = merge(button, custom.button || {}); +// +// Input Styles +let input = { + label: { + numberOfLines: 1, + color: font.colorTitle, + fontSize: font.sizeSmall, + textAlign: "left" + }, + labelDisabled: { + color: font.colorTitle + }, + input: { + color: font.colorTitle, + borderColor: contrast.lower, + backgroundColor: background.primary, + selectionColor: contrast.lower, + placeholderTextColor: contrast.low, + fontSize: font.size, + lineHeight: font.lineHeight, + borderWidth: border.width, + borderRadius: border.radiusLarge, + minWidth: 48, + minHeight: 48, + paddingVertical: spacing.small, + paddingHorizontal: spacing.small + }, + inputContainer: { + underlayColor: `rgba(${anyColorToRgbString(contrast.low)},0.4)` + }, + inputDisabled: { + color: font.colorDisabled, + borderColor: border.color, + backgroundColor: background.secondary + }, + inputError: { + color: brand.danger, + borderColor: brand.danger, + placeholderTextColor: brand.danger, + backgroundColor: brand.dangerLight + }, + validationMessage: { + color: brand.danger, + fontSize: font.size + }, + // Only used for the DropDown & ReferenceSelector + valueContainer: { + rippleColor: contrast.lowest + }, + itemContainer: { + paddingVertical: 12, + paddingHorizontal: spacing.regular, + backgroundColor: background.primary + }, + item: { + color: font.colorTitle, + fontSize: font.size + }, + selectedItemContainer: { + borderWidth: border.width, + borderRadius: border.radiusLarge, + borderColor: brand.primary, + backgroundColor: "transparent" + }, + selectedItem: { + color: font.colorTitle, + fontSize: font.size + } +}; +input = merge(input, custom.input || {}); +// +// Image Styles +let image = { + image: { + small: 24, + medium: 40, + large: 56, + larger: 72 + }, + imageDisabled: { + opacity: 0.6 + }, + icon: 16 +}; +image = merge(image, custom.image || {}); +// +// Navigation Styles +let navigation = { + statusBar: { + backgroundColor: background.primary, + barStyle: custom.darkMode ? "light-content" : "dark-content" + }, + topBar: { + backgroundColor: brand.primary, + backButtonColor: "#FFF", + titleColor: "#FFF", + titleFontSize: font.sizeH6 + }, + bottomBar: { + color: contrast.high, + selectedTextColor: brand.primary, + selectedIconColor: brand.primary, + backgroundColor: background.primary, + fontSize: font.sizeSmall, + iconSize: font.sizeSmall + }, + progressOverlay: { + color: font.colorTitle, + activityIndicatorColor: font.colorTitle, + backgroundColor: "rgba(0, 0, 0, 0.5)", + containerBackgroundColor: background.secondary, + fontSize: font.size, + borderRadius: border.radiusSmall, + elevation: 1.5, + shadowColor: "#000", + shadowOpacity: 0.1, + shadowRadius: 10 // Only for iOS + } +}; +navigation = merge(navigation, custom.navigation || {}); +// +// Container Styles +let container = { + containerDisabled: { + opacity: 0.6 + } +}; +container = merge(container, custom.container || {}); +// +// Accordion Styles +let accordion = { + container: { + backgroundColor: background.primary, + borderColor: border.color + }, + groupHeader: { + container: { + paddingVertical: spacing.regular, + paddingHorizontal: spacing.regular + }, + heading: { + color: font.colorTitle + }, + icon: { + size: font.sizeLarge, + color: font.colorTitle + } + }, + groupContent: { + paddingTop: spacing.small, + paddingBottom: spacing.large, + paddingHorizontal: spacing.regular + } +}; +accordion = merge(accordion, custom.accordion || {}); +// +// Badge Styles +let badge = { + fontWeight: font.weightNormal, + borderRadius: border.radiusLarge, + paddingVertical: spacing.smaller, + paddingHorizontal: spacing.small, + default: { + color: contrast.higher, + backgroundColor: contrast.lowest + }, + primary: { + color: brand.primary, + backgroundColor: brand.primaryLight + }, + success: { + color: brand.success, + backgroundColor: brand.successLight + }, + warning: { + color: brand.warning, + backgroundColor: brand.warningLight + }, + danger: { + color: brand.danger, + backgroundColor: brand.dangerLight + } +}; +badge = merge(badge, custom.badge || {}); +// +// Tabcontainer Styles +let tabContainer = { + tabBar: { + pressColor: contrast.lower, + backgroundColor: brand.primary + }, + tab: { + paddingVertical: 12 + }, + indicator: { + backgroundColor: fontDefaults.colorTitleLight, + height: Platform.select({ ios: 2, android: 2 }) + }, + label: { + color: fontDefaults.colorTitleLight, + fontSize: font.size, + fontWeight: font.weightSemiBold, + textTransform: "capitalize" + }, + activeLabel: { + color: fontDefaults.colorTitleLight, + fontSize: font.size, + fontWeight: font.weightSemiBold, + textTransform: "capitalize" + }, + badgeContainer: { + borderRadius: border.radiusLargest, + backgroundColor: badge.default.backgroundColor, + paddingVertical: spacing.smallest, + paddingHorizontal: spacing.small, + marginLeft: 8 + }, + badgeCaption: { + fontSize: font.size, + color: badge.default.color, + fontWeight: badge.fontWeight + } +}; +tabContainer = merge(tabContainer, custom.tabContainer || {}); +// +// Listview Styles +let listView = { + listItemDisabled: { + opacity: 0.6 + }, + border: { + color: border.color, + width: border.width + } +}; +listView = merge(listView, custom.listView || {}); +// +// Checkbox Styles +let checkbox = { + checkboxInput: { + color: brand.primary, + size: 20, + backgroundColor: background.primary, + borderColor: border.color, + borderWidth: border.width, + borderRadius: border.radiusSmall, + width: 40, + height: 40 + }, + checkboxInputDisabled: { + color: brand.primaryLight, + backgroundColor: background.secondary + }, + checkboxInputError: { + color: brand.danger, + borderColor: brand.danger + } +}; +checkbox = merge(checkbox, custom.checkbox || {}); +// +// Layoutgrid Styles +let layoutGrid = { + gutterSize: 16 +}; +layoutGrid = merge(layoutGrid, custom.layoutGrid || {}); +// +// +// Floating Action Button Styles +let floatingActionButton = { + container: { + margin: 30 + }, + button: { + size: 50, + rippleColor: contrast.lowest, + borderColor: brand.primary, + backgroundColor: brand.primary + }, + buttonIcon: { + size: font.sizeLarge, + color: contrast.lowest + }, + secondaryButton: { + size: 30, + backgroundColor: background.secondary + }, + secondaryButtonIcon: { + size: font.sizeSmall, + color: contrast.high + }, + secondaryButtonCaption: { + color: contrast.high, + fontSize: font.sizeSmall + }, + secondaryButtonCaptionContainer: { + backgroundColor: background.primary, + borderColor: background.primary + } +}; +floatingActionButton = merge(floatingActionButton, custom.floatingActionButton || {}); +// +// Intro Screen Styles +let introScreen = { + fullscreenContainer: { + backgroundColor: background.primary + }, + popupContainer: { + paddingVertical: 150, + paddingHorizontal: 50, + backgroundColor: "rgba(0, 0, 0, 0.5)" + }, + pagination: { + text: { + color: font.colorTitle, + fontSize: font.size + }, + dotStyle: { + size: spacing.small, + backgroundColor: contrast.lower + }, + activeDotStyle: { + size: spacing.small, + backgroundColor: font.colorTitle + } + }, + button: { + icon: { + color: font.colorTitle, + size: button.icon.size + }, + caption: { + color: font.colorTitle, + fontSize: button.caption.fontSize, + fontWeight: font.weightBold, + textTransform: "uppercase", + paddingHorizontal: spacing.smallest + } + }, + buttonPaginationAbove: { + container: { + paddingVertical: spacing.regular, + backgroundColor: button.primary.backgroundColor + } + } +}; +introScreen = merge(introScreen, custom.introScreen || {}); +// +// List View Swipe Styles +let listViewSwipe = { + leftAction: { + panelSize: 160, + panelSizeSmall: 80, + panelSizeLarge: 240, + backgroundColor: background.primary + }, + rightAction: { + panelSize: 160, + panelSizeSmall: 80, + panelSizeLarge: 240, + backgroundColor: background.primary + } +}; +listViewSwipe = merge(listViewSwipe, custom.listViewSwipe || {}); +// +// Progress Bar Styles +let progressBar = { + bar: { + height: 8, + heightSmall: 4, + heightLarge: 12, + backgroundColor: contrast.lowest + }, + fill: { + backgroundColor: brand.primary + } +}; +progressBar = merge(progressBar, custom.progressBar || {}); +// +// Progress Circle Styles +let progressCircle = { + circle: { + size: 64 + }, + fill: { + width: 4, + lineCapRounded: true, + backgroundColor: brand.primary + }, + text: { + color: contrast.regular, + fontSize: font.size, + fontWeight: font.weightSemiBold + } +}; +progressCircle = merge(progressCircle, custom.progressCircle || {}); +// +// Rating Styles +let rating = { + containerDisabled: { + opacity: 0.5 + }, + icon: { + size: 24, + color: contrast.lower, + selectedColor: brand.warning + } +}; +rating = merge(rating, custom.rating || {}); +// +// (Range)Slider Styles +let slider = { + track: { + height: 4, + backgroundColor: contrast.lowest + }, + trackDisabled: { + backgroundColor: contrast.lower, + opacity: 0.4 + }, + highlight: { + backgroundColor: brand.primary + }, + highlightDisabled: { + backgroundColor: brand.primary + }, + marker: { + size: 24, + borderColor: contrast.lowest, + backgroundColor: background.secondary + }, + markerActive: { + size: 32 + }, + markerDisabled: { + size: 24, + borderColor: contrast.lowest, + backgroundColor: background.secondary + } +}; +slider = merge(slider, custom.slider || {}); +// +// Radio Buttons +let radioButtons = { + labelTextStyle: { + color: font.colorTitle, + fontSize: font.sizeSmall, + lineHeight: font.lineHeightSmall, + marginBottom: spacing.small + }, + radioButtonItemContainerStyle: { + marginBottom: spacing.small + }, + radioButtonItemContainerDisabledStyle: { + opacity: 0.5 + }, + radioButtonItemContainerHorizontalStyle: { + marginEnd: spacing.small + }, + circularButtonStyle: { + width: 16, + height: 16, + borderRadius: 8, + borderColor: border.color, + marginEnd: spacing.smaller + }, + activeButtonStyle: { + width: 8, + height: 8, + borderRadius: 4, + backgroundColor: brand.primary + }, + radioButtonItemTitleStyle: { + color: font.colorTitle, + fontSize: font.sizeSmall, + lineHeight: font.lineHeightSmall + }, + validationMessage: { + color: brand.danger, + fontSize: font.sizeSmall + } +}; +radioButtons = merge(radioButtons, custom.radioButtons || {}); +// +// Background Gradient +let backgroundGradient = { + container: {}, + angle: 0, + opacity: 100 +}; +backgroundGradient = merge(backgroundGradient, custom.backgroundGradient || {}); +// column chart styles +let columnChart = { + container: {}, + errorMessage: { + fontFamily: font.family, + fontSize: font.sizeSmall, + fontWeight: font.weightNormal + }, + chart: {}, + grid: { + lineColor: border.color + }, + xAxis: { + color: font.colorTitle, + fontFamily: font.family, + fontSize: font.sizeSmall, + fontWeight: font.weightNormal, + label: { + color: font.colorParagraph, + alignSelf: "center", + marginHorizontal: 0, + marginVertical: 8, + fontFamily: font.family, + fontSize: font.sizeSmall, + fontWeight: font.weightNormal + }, + lineColor: border.color + }, + yAxis: { + color: font.colorTitle, + fontFamily: font.family, + fontSize: font.sizeSmall, + fontWeight: font.weightNormal, + label: { + color: font.colorParagraph, + marginHorizontal: 0, + marginVertical: 8, + fontFamily: font.family, + fontSize: font.sizeSmall, + fontWeight: font.weightNormal + }, + lineColor: border.color + }, + columns: { + columnColorPalette: Object.entries(brand) + .reduce((accumulator, [key, value]) => (key.endsWith("Light") ? accumulator : [...accumulator, value]), []) + .join(";"), + columnsOffset: 20, + customColumnStyles: { + your_static_or_dynamic_attribute_value: { + column: {}, + label: {} + } + } + }, + legend: { + container: { + justifyContent: "flex-start", + marginHorizontal: 0, + marginVertical: spacing.small + }, + item: { + padding: 0, + paddingRight: spacing.regular + }, + indicator: { + marginRight: spacing.small + }, + label: { + color: font.colorTitle, + fontFamily: font.family, + fontSize: font.sizeSmall, + fontWeight: font.weightNormal + } + } +}; +columnChart = merge(columnChart, custom.columnChart || {}); +export * from "../../../theme/native/custom-variables"; +export { accordion, brand, backgroundDefaults, background, border, button, contrast, checkbox, fontDefaults, font, input, image, layoutGrid, listView, navigation, spacing, container, tabContainer, badge, floatingActionButton, introScreen, listViewSwipe, progressBar, progressCircle, slider, rating, radioButtons, backgroundGradient, columnChart }; diff --git a/themesource/atlas_core/public/resources/arrow.svg b/themesource/atlas_core/public/resources/arrow.svg new file mode 100644 index 0000000..d289b3a --- /dev/null +++ b/themesource/atlas_core/public/resources/arrow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/themesource/atlas_core/public/resources/fonts/LICENSE.txt b/themesource/atlas_core/public/resources/fonts/LICENSE.txt new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/themesource/atlas_core/public/resources/fonts/LICENSE.txt @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/themesource/atlas_core/public/resources/fonts/OpenSans-Bold.woff b/themesource/atlas_core/public/resources/fonts/OpenSans-Bold.woff new file mode 100644 index 0000000..fe26694 Binary files /dev/null and b/themesource/atlas_core/public/resources/fonts/OpenSans-Bold.woff differ diff --git a/themesource/atlas_core/public/resources/fonts/OpenSans-BoldItalic.woff b/themesource/atlas_core/public/resources/fonts/OpenSans-BoldItalic.woff new file mode 100644 index 0000000..4ff9673 Binary files /dev/null and b/themesource/atlas_core/public/resources/fonts/OpenSans-BoldItalic.woff differ diff --git a/themesource/atlas_core/public/resources/fonts/OpenSans-Italic.woff b/themesource/atlas_core/public/resources/fonts/OpenSans-Italic.woff new file mode 100644 index 0000000..d54cc24 Binary files /dev/null and b/themesource/atlas_core/public/resources/fonts/OpenSans-Italic.woff differ diff --git a/themesource/atlas_core/public/resources/fonts/OpenSans-Light.woff b/themesource/atlas_core/public/resources/fonts/OpenSans-Light.woff new file mode 100644 index 0000000..a823caa Binary files /dev/null and b/themesource/atlas_core/public/resources/fonts/OpenSans-Light.woff differ diff --git a/themesource/atlas_core/public/resources/fonts/OpenSans-LightItalic.woff b/themesource/atlas_core/public/resources/fonts/OpenSans-LightItalic.woff new file mode 100644 index 0000000..fa8d934 Binary files /dev/null and b/themesource/atlas_core/public/resources/fonts/OpenSans-LightItalic.woff differ diff --git a/themesource/atlas_core/public/resources/fonts/OpenSans-Regular.woff b/themesource/atlas_core/public/resources/fonts/OpenSans-Regular.woff new file mode 100644 index 0000000..99c5d47 Binary files /dev/null and b/themesource/atlas_core/public/resources/fonts/OpenSans-Regular.woff differ diff --git a/themesource/atlas_core/public/resources/fonts/OpenSans-SemiBold.woff b/themesource/atlas_core/public/resources/fonts/OpenSans-SemiBold.woff new file mode 100644 index 0000000..50c2bc1 Binary files /dev/null and b/themesource/atlas_core/public/resources/fonts/OpenSans-SemiBold.woff differ diff --git a/themesource/atlas_core/public/resources/fonts/OpenSans-SemiBoldItalic.woff b/themesource/atlas_core/public/resources/fonts/OpenSans-SemiBoldItalic.woff new file mode 100644 index 0000000..a0c3de7 Binary files /dev/null and b/themesource/atlas_core/public/resources/fonts/OpenSans-SemiBoldItalic.woff differ diff --git a/themesource/atlas_core/public/resources/fonts/open-sans.css b/themesource/atlas_core/public/resources/fonts/open-sans.css new file mode 100644 index 0000000..63b2bf6 --- /dev/null +++ b/themesource/atlas_core/public/resources/fonts/open-sans.css @@ -0,0 +1,48 @@ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 700; + src: local('Open Sans'), url('./OpenSans-Bold.woff') format('woff'); +} +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 700; + src: local('Open Sans'), url('./OpenSans-BoldItalic.woff') format('woff'); +} +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 400; + src: local('Open Sans'), url('./OpenSans-Italic.woff') format('woff'); +} +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 300; + src: local('Open Sans'), url('./OpenSans-Light.woff') format('woff'); +} +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 300; + src: local('Open Sans'), url('./OpenSans-LightItalic.woff') format('woff'); +} +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: local('Open Sans'), url('./OpenSans-Regular.woff') format('woff'); +} +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 600; + src: local('Open Sans'), url('./OpenSans-SemiBold.woff') format('woff'); +} +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 600; + src: local('Open Sans'), url('./OpenSans-SemiBoldItalic.woff') format('woff'); +} diff --git a/themesource/atlas_core/public/resources/fonts/open-sans/LICENSE.txt b/themesource/atlas_core/public/resources/fonts/open-sans/LICENSE.txt new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/themesource/atlas_core/public/resources/fonts/open-sans/LICENSE.txt @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-Bold.woff b/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-Bold.woff new file mode 100644 index 0000000..fe26694 Binary files /dev/null and b/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-Bold.woff differ diff --git a/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-BoldItalic.woff b/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-BoldItalic.woff new file mode 100644 index 0000000..4ff9673 Binary files /dev/null and b/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-BoldItalic.woff differ diff --git a/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-Italic.woff b/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-Italic.woff new file mode 100644 index 0000000..d54cc24 Binary files /dev/null and b/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-Italic.woff differ diff --git a/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-Light.woff b/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-Light.woff new file mode 100644 index 0000000..a823caa Binary files /dev/null and b/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-Light.woff differ diff --git a/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-LightItalic.woff b/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-LightItalic.woff new file mode 100644 index 0000000..fa8d934 Binary files /dev/null and b/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-LightItalic.woff differ diff --git a/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-Regular.woff b/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-Regular.woff new file mode 100644 index 0000000..99c5d47 Binary files /dev/null and b/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-Regular.woff differ diff --git a/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-SemiBold.woff b/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-SemiBold.woff new file mode 100644 index 0000000..50c2bc1 Binary files /dev/null and b/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-SemiBold.woff differ diff --git a/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-SemiBoldItalic.woff b/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-SemiBoldItalic.woff new file mode 100644 index 0000000..a0c3de7 Binary files /dev/null and b/themesource/atlas_core/public/resources/fonts/open-sans/OpenSans-SemiBoldItalic.woff differ diff --git a/themesource/atlas_core/public/resources/fonts/open-sans/open-sans.css b/themesource/atlas_core/public/resources/fonts/open-sans/open-sans.css new file mode 100644 index 0000000..63b2bf6 --- /dev/null +++ b/themesource/atlas_core/public/resources/fonts/open-sans/open-sans.css @@ -0,0 +1,48 @@ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 700; + src: local('Open Sans'), url('./OpenSans-Bold.woff') format('woff'); +} +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 700; + src: local('Open Sans'), url('./OpenSans-BoldItalic.woff') format('woff'); +} +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 400; + src: local('Open Sans'), url('./OpenSans-Italic.woff') format('woff'); +} +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 300; + src: local('Open Sans'), url('./OpenSans-Light.woff') format('woff'); +} +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 300; + src: local('Open Sans'), url('./OpenSans-LightItalic.woff') format('woff'); +} +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: local('Open Sans'), url('./OpenSans-Regular.woff') format('woff'); +} +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 600; + src: local('Open Sans'), url('./OpenSans-SemiBold.woff') format('woff'); +} +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 600; + src: local('Open Sans'), url('./OpenSans-SemiBoldItalic.woff') format('woff'); +} diff --git a/theme/styles/web/css/fonts/glyphicons-halflings-regular.woff b/themesource/atlas_core/public/resources/glyphicons-halflings-regular.woff similarity index 100% rename from theme/styles/web/css/fonts/glyphicons-halflings-regular.woff rename to themesource/atlas_core/public/resources/glyphicons-halflings-regular.woff diff --git a/theme/styles/web/css/fonts/glyphicons-halflings-regular.woff2 b/themesource/atlas_core/public/resources/glyphicons-halflings-regular.woff2 similarity index 100% rename from theme/styles/web/css/fonts/glyphicons-halflings-regular.woff2 rename to themesource/atlas_core/public/resources/glyphicons-halflings-regular.woff2 diff --git a/themesource/atlas_core/public/resources/menubar-more-icon.png b/themesource/atlas_core/public/resources/menubar-more-icon.png new file mode 100644 index 0000000..9111d0e Binary files /dev/null and b/themesource/atlas_core/public/resources/menubar-more-icon.png differ diff --git a/themesource/atlas_core/public/resources/progress-indicator.gif b/themesource/atlas_core/public/resources/progress-indicator.gif new file mode 100644 index 0000000..c8c5893 Binary files /dev/null and b/themesource/atlas_core/public/resources/progress-indicator.gif differ diff --git a/themesource/atlas_core/public/resources/swipe-progress.gif b/themesource/atlas_core/public/resources/swipe-progress.gif new file mode 100644 index 0000000..f76d56d Binary files /dev/null and b/themesource/atlas_core/public/resources/swipe-progress.gif differ diff --git a/themesource/atlas_core/public/resources/switcher-toggle.png b/themesource/atlas_core/public/resources/switcher-toggle.png new file mode 100644 index 0000000..85f6519 Binary files /dev/null and b/themesource/atlas_core/public/resources/switcher-toggle.png differ diff --git a/themesource/atlas_core/public/resources/switcher.png b/themesource/atlas_core/public/resources/switcher.png new file mode 100644 index 0000000..6a61a7a Binary files /dev/null and b/themesource/atlas_core/public/resources/switcher.png differ diff --git a/themesource/atlas_core/public/resources/tabcontainer-loading.gif b/themesource/atlas_core/public/resources/tabcontainer-loading.gif new file mode 100644 index 0000000..f76d56d Binary files /dev/null and b/themesource/atlas_core/public/resources/tabcontainer-loading.gif differ diff --git a/themesource/atlas_core/public/resources/ttp.gif b/themesource/atlas_core/public/resources/ttp.gif new file mode 100644 index 0000000..1578b10 Binary files /dev/null and b/themesource/atlas_core/public/resources/ttp.gif differ diff --git a/theme/resources/work-do-more.jpeg b/themesource/atlas_core/public/resources/work-do-more.jpeg similarity index 100% rename from theme/resources/work-do-more.jpeg rename to themesource/atlas_core/public/resources/work-do-more.jpeg diff --git a/themesource/atlas_core/web/_exclusion-variables.scss b/themesource/atlas_core/web/_exclusion-variables.scss new file mode 100644 index 0000000..d7bb67a --- /dev/null +++ b/themesource/atlas_core/web/_exclusion-variables.scss @@ -0,0 +1,82 @@ +// +// DISCLAIMER: +// Do not change this file, because it is core styling. +// + +//== Core style exclusion +$exclude-bootstrap: false; +$exclude-mxui: false; +$exclude-animations: false; +$exclude-flex: false; +$exclude-spacing: false; +$exclude-base: false; +$exclude-login: false; + +//== Widget style exclusion +$exclude-accordion: false; +$exclude-accordion-helpers: false; +$exclude-background-helpers: false; +$exclude-badge: false; +$exclude-badge-button: false; +$exclude-badge-button-helpers: false; +$exclude-barcode-scanner: false; +$exclude-button: false; +$exclude-button-helpers: false; +$exclude-check-box: false; +$exclude-custom-dijit-widget: false; +$exclude-custom-switch: false; +$exclude-data-grid: false; +$exclude-data-grid-helpers: false; +$exclude-data-view: false; +$exclude-data-picker: false; +$exclude-glyphicon: false; +$exclude-grid: false; +$exclude-group-box: false; +$exclude-group-box-helpers: false; +$exclude-header: false; +$exclude-helper-classes: false; +$exclude-input: false; +$exclude-image-helpers: false; +$exclude-label: false; +$exclude-label-helpers: false; +$exclude-layout-grid: false; +$exclude-list-view: false; +$exclude-list-view-helpers: false; +$exclude-modal: false; +$exclude-navigation-bar: false; +$exclude-navigation-bar-helpers: false; +$exclude-navigation-list: false; +$exclude-navigation-tree: false; +$exclude-navigation-tree-helpers: false; +$exclude-pagination: false; +$exclude-pop-up-menu: false; +$exclude-progress: false; +$exclude-progress-bar: false; +$exclude-progress-bar-helpers: false; +$exclude-progress-circle: false; +$exclude-progress-circle-helpers: false; +$exclude-radio-button: false; +$exclude-range-slider: false; +$exclude-range-slider-helpers: false; +$exclude-rating: false; +$exclude-rating-helpers: false; +$exclude-simple-menu-bar: false; +$exclude-simple-menu-bar-helpers: false; +$exclude-slider: false; +$exclude-slider-helpers: false; +$exclude-table: false; +$exclude-table-helpers: false; +$exclude-tab-container: false; +$exclude-tab-container-helpers: false; +$exclude-template-grid: false; +$exclude-template-grid-helpers: false; +$exclude-timeline: false; +$exclude-tooltip: false; +$exclude-typography: false; +$exclude-typography-helpers: false; + +//== Layouts style exclusion +$exclude-layout-atlas: false; +$exclude-layout-atlas-phone: false; +$exclude-layout-atlas-responsive: false; +$exclude-layout-atlas-tablet: false; diff --git a/themesource/atlas_core/web/_variables.scss b/themesource/atlas_core/web/_variables.scss new file mode 100644 index 0000000..ed029cd --- /dev/null +++ b/themesource/atlas_core/web/_variables.scss @@ -0,0 +1,765 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// +// +// ██████╗ █████╗ ███████╗██╗ ██████╗ +// ██╔══██╗██╔══██╗██╔════╝██║██╔════╝ +// ██████╔╝███████║███████╗██║██║ +// ██╔══██╗██╔══██║╚════██║██║██║ +// ██████╔╝██║ ██║███████║██║╚██████╗ +// ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═════╝ +// + +//== Gray Shades +//## Different gray shades to be used for our variables and components +$gray-darker: #3b4251 !default; +$gray-dark: #606671 !default; +$gray: #787d87 !default; +$gray-light: #6c7180 !default; +$gray-primary: #ced0d3 !default; +$gray-lighter: #f8f8f8 !default; + +//== Step 1: Brand Colors +$brand-default: $gray-primary !default; +$brand-primary: #264ae5 !default; +$brand-success: #3cb33d !default; +$brand-warning: #eca51c !default; +$brand-danger: #e33f4e !default; + +$brand-logo: false !default; +$brand-logo-height: 26px !default; +$brand-logo-width: 26px !default; // Only used for CSS brand logo + +//== Step 2: UI Customization + +// Default Font Size & Color +$font-size-default: 14px !default; +$font-color-default: #6c717e !default; + +// Global Border Color +$border-color-default: #ced0d3 !default; +$border-radius-default: 5px !default; + +// Topbar +$topbar-bg: #fff !default; +$topbar-minimalheight: 60px !default; +$topbar-border-color: $border-color-default !default; + +// Topbar mobile +$m-header-height: 45px !default; +$m-header-bg: $brand-primary !default; +$m-header-color: #fff !default; +$m-header-title-size: 16px !default; + +// Navbar Brand Name / For your company, product, or project name (used in layouts/base/) +$navbar-brand-name: $font-color-default !default; + +// Background Colors +// Backgrounds +$bg-color: #f8f8f8 !default; +$bg-color-secondary: #fff !default; + +// Default Link Color +$link-color: $brand-primary !default; +$link-hover-color: darken($link-color, 15%) !default; + +// +// █████╗ ██████╗ ██╗ ██╗ █████╗ ███╗ ██╗ ██████╗███████╗██████╗ +// ██╔══██╗██╔══██╗██║ ██║██╔══██╗████╗ ██║██╔════╝██╔════╝██╔══██╗ +// ███████║██║ ██║██║ ██║███████║██╔██╗ ██║██║ █████╗ ██║ ██║ +// ██╔══██║██║ ██║╚██╗ ██╔╝██╔══██║██║╚██╗██║██║ ██╔══╝ ██║ ██║ +// ██║ ██║██████╔╝ ╚████╔╝ ██║ ██║██║ ╚████║╚██████╗███████╗██████╔╝ +// ╚═╝ ╚═╝╚═════╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝╚══════╝╚═════╝ +// + +//== Typography +//## Change your font family, weight, line-height, headings and more (used in components/typography) + +// Font Family Import (Used for google font plugin in theme creater) +$font-family-import: "resources/fonts/open-sans/open-sans.css" !default; + +// Font Family / False = fallback from Bootstrap (Helvetica Neue) +$font-family-base: "Open Sans", sans-serif !default; + +// Font Sizes +$font-size-large: 18px !default; +$font-size-small: 12px !default; + +// Font Weights +$font-weight-light: 100 !default; +$font-weight-normal: normal !default; +$font-weight-semibold: 600 !default; +$font-weight-bold: bold !default; + +// Font Size Headers +$font-size-h1: 31px !default; +$font-size-h2: 26px !default; +$font-size-h3: 24px !default; +$font-size-h4: 18px !default; +$font-size-h5: $font-size-default !default; +$font-size-h6: 12px !default; + +// Font Weight Headers +$font-weight-header: $font-weight-semibold !default; + +// Line Height +$line-height-base: 1.428571429 !default; + +// Spacing +$font-header-margin: 0 0 8px 0 !default; + +// Text Colors +$font-color-detail: #6c717e !default; +$font-color-header: #0a1326 !default; + +//== Navigation +//## Used in components/navigation + +// Default Navigation styling +$navigation-item-height: unset !default; +$navigation-item-padding: 16px !default; + +$navigation-font-size: $font-size-default !default; +$navigation-sub-font-size: $font-size-small !default; +$navigation-glyph-size: 20px !default; // For glyphicons that you can select in the Mendix Modeler + +$navigation-color: #fff !default; +$navigation-color-hover: #fff !default; +$navigation-color-active: #fff !default; + +$navigation-sub-color: #aaa !default; +$navigation-sub-color-hover: $brand-primary !default; +$navigation-sub-color-active: $brand-primary !default; + +// Navigation Sidebar +$navsidebar-font-size: $font-size-default !default; +$navsidebar-sub-font-size: $font-size-small !default; +$navsidebar-glyph-size: 20px !default; // For glyphicons that you can select in the Mendix Modeler + +$navsidebar-color: #fff !default; +$navsidebar-color-hover: #fff !default; +$navsidebar-color-active: #fff !default; + +$navsidebar-sub-color: #aaa !default; +$navsidebar-sub-color-hover: $brand-primary !default; +$navsidebar-sub-color-active: $brand-primary !default; + +$navsidebar-width-closed: 52px !default; +$navsidebar-width-open: 232px !default; + +// Navigation topbar +$navtopbar-font-size: $font-size-default !default; +$navtopbar-sub-font-size: $font-size-small !default; +$navtopbar-glyph-size: 1.2em !default; // For glyphicons that you can select in the Mendix Modeler + +$navtopbar-bg: $topbar-bg !default; +$navtopbar-bg-hover: darken($navtopbar-bg, 4) !default; +$navtopbar-bg-active: darken($navtopbar-bg, 8) !default; +$navtopbar-color: $font-color-default !default; +$navtopbar-color-hover: $navtopbar-color !default; +$navtopbar-color-active: $navtopbar-color !default; + +$navtopbar-sub-bg: lighten($navtopbar-bg, 4) !default; +$navtopbar-sub-bg-hover: $navtopbar-sub-bg !default; +$navtopbar-sub-bg-active: $navtopbar-sub-bg !default; +$navtopbar-sub-color: #aaa !default; +$navtopbar-sub-color-hover: $brand-primary !default; +$navtopbar-sub-color-active: $brand-primary !default; + +//== Cards +// Shadow color +$shadow-color-border: rgba($gray-primary, 0.5); +$shadow-color: rgba($gray-primary, 0.66); + +//Shadow size +$shadow-small: 0 2px 4px 0; +$shadow-medium: 0 5px 7px 0; +$shadow-large: 0 8px 10px 0; + +//## Used in layouts/base +$navtopbar-border-color: $topbar-border-color !default; + +//== Form +//## Used in components/inputs + +// Values that can be used default | lined +$form-input-style: default !default; + +// Form Label +$form-label-size: $font-size-default !default; +$form-label-weight: $font-weight-semibold !default; +$form-label-gutter: 8px !default; + +// Form Input dimensions +$form-input-height: auto !default; +$form-input-padding-y: 8px !default; +$form-input-padding-x: 8px !default; +$form-input-static-padding-y: 8px !default; +$form-input-static-padding-x: 0 !default; +$form-input-font-size: $form-label-size !default; +$form-input-line-height: $line-height-base !default; +$form-input-border-radius: $border-radius-default !default; + +// Form Input styling +$form-input-bg: #fff !default; +$form-input-bg-focus: #fff !default; +$form-input-bg-hover: $gray-primary !default; +$form-input-bg-disabled: $bg-color !default; +$form-input-color: $font-color-default !default; +$form-input-focus-color: $form-input-color !default; +$form-input-disabled-color: #9da1a8 !default; +$form-input-placeholder-color: #6c717c !default; +$form-input-border-color: $gray-primary !default; +$form-input-border-focus-color: $brand-primary !default; + +// Form Input Static styling +$form-input-static-border-color: $gray-primary !default; + +// Form Group +$form-group-margin-bottom: 16px !default; +$form-group-gutter: 16px !default; + +//== Buttons +//## Define background-color, border-color and text. Used in components/buttons + +// Default button style +$btn-font-size: 14px !default; +$btn-bordered: false !default; // Default value false, set to true if you want this effect +$btn-border-radius: $border-radius-default !default; + +// Button Background Color +$btn-default-bg: #fff !default; +$btn-primary-bg: $brand-primary !default; +$btn-success-bg: $brand-success !default; +$btn-warning-bg: $brand-warning !default; +$btn-danger-bg: $brand-danger !default; + +// Button Border Color +$btn-default-border-color: $gray-primary !default; +$btn-primary-border-color: $brand-primary !default; +$btn-success-border-color: $brand-success !default; +$btn-warning-border-color: $brand-warning !default; +$btn-danger-border-color: $brand-danger !default; + +// Button Text Color +$btn-default-color: $brand-primary !default; +$btn-primary-color: #fff !default; +$btn-success-color: #fff !default; +$btn-warning-color: #fff !default; +$btn-danger-color: #fff !default; + +// Button Icon Color +$btn-default-icon-color: $gray !default; + +// Button Background Color +$btn-default-bg-hover: $btn-default-border-color !default; +$btn-primary-bg-hover: mix($btn-primary-bg, black, 80%) !default; +$btn-success-bg-hover: mix($btn-success-bg, black, 80%) !default; +$btn-warning-bg-hover: mix($btn-warning-bg, black, 80%) !default; +$btn-danger-bg-hover: mix($btn-danger-bg, black, 80%) !default; +$btn-link-bg-hover: $gray-lighter !default; + +//== Header blocks +//## Define look and feel over multible building blocks that serve as header + +$header-min-height: 240px !default; +$header-bg-color: $brand-primary !default; +$header-bgimage-filter: brightness(60%) !default; +$header-text-color: #fff !default; +$header-text-color-detail: rgba(0, 0, 0, 0.2) !default; + +// +// ███████╗██╗ ██╗██████╗ ███████╗██████╗ ████████╗ +// ██╔════╝╚██╗██╔╝██╔══██╗██╔════╝██╔══██╗╚══██╔══╝ +// █████╗ ╚███╔╝ ██████╔╝█████╗ ██████╔╝ ██║ +// ██╔══╝ ██╔██╗ ██╔═══╝ ██╔══╝ ██╔══██╗ ██║ +// ███████╗██╔╝ ██╗██║ ███████╗██║ ██║ ██║ +// ╚══════╝╚═╝ ╚═╝╚═╝ ╚══════╝╚═╝ ╚═╝ ╚═╝ +// + +//== Color variations +//## These variations are used to support several other variables and components + +// Color variations +$color-default-darker: mix($brand-default, black, 60%) !default; +$color-default-dark: mix($brand-default, black, 70%) !default; +$color-default-light: mix($brand-default, white, 20%) !default; +$color-default-lighter: mix($brand-default, white, 10%) !default; + +$color-primary-darker: mix($brand-primary, black, 60%) !default; +$color-primary-dark: mix($brand-primary, black, 70%) !default; +$color-primary-light: mix($brand-primary, white, 20%) !default; +$color-primary-lighter: mix($brand-primary, white, 10%) !default; + +$color-success-darker: mix($brand-success, black, 60%) !default; +$color-success-dark: mix($brand-success, black, 70%) !default; +$color-success-light: mix($brand-success, white, 20%) !default; +$color-success-lighter: mix($brand-success, white, 10%) !default; + +$color-warning-darker: mix($brand-warning, black, 60%) !default; +$color-warning-dark: mix($brand-warning, black, 70%) !default; +$color-warning-light: mix($brand-warning, white, 20%) !default; +$color-warning-lighter: mix($brand-warning, white, 10%) !default; + +$color-danger-darker: mix($brand-danger, black, 60%) !default; +$color-danger-dark: mix($brand-danger, black, 70%) !default; +$color-danger-light: mix($brand-danger, white, 20%) !default; +$color-danger-lighter: mix($brand-danger, white, 10%) !default; + +$brand-gradient: linear-gradient(to right top, #264ae5, #2239c5, #1b29a6, #111988, #03096c) !default; + +//== Grids +//## Used for Datagrid, Templategrid, Listview & Tables (see components folder) + +// Default Border Colors +$grid-border-color: $border-color-default !default; + +// Spacing +// Default +$grid-padding-top: 16px !default; +$grid-padding-right: 16px !default; +$grid-padding-bottom: 16px !default; +$grid-padding-left: 16px !default; + +// Listview +$listview-padding-top: 16px !default; +$listview-padding-right: 16px !default; +$listview-padding-bottom: 16px !default; +$listview-padding-left: 16px !default; + +// Background Colors +$grid-bg: transparent !default; +$grid-bg-header: transparent !default; // Grid Headers +$grid-bg-hover: mix($grid-border-color, #fff, 20%) !default; +$grid-bg-selected: mix($grid-border-color, #fff, 30%) !default; +$grid-bg-selected-hover: mix($grid-border-color, #fff, 50%) !default; + +// Striped Background Color +$grid-bg-striped: mix($grid-border-color, #fff, 10%) !default; + +// Background Footer Color +$grid-footer-bg: $gray-primary !default; + +// Text Color +$grid-selected-color: $font-color-default !default; + +// Paging Colors +$grid-paging-bg: transparent !default; +$grid-paging-bg-hover: transparent !default; +$grid-paging-border-color: transparent !default; +$grid-paging-border-color-hover: transparent !default; +$grid-paging-color: $gray-light !default; +$grid-paging-color-hover: $brand-primary !default; + +//== Tabs +//## Default variables for Tab Container Widget (used in components/tabcontainer) + +// Text Color +$tabs-color: $font-color-detail !default; +$tabs-color-active: $font-color-default !default; +$tabs-lined-color-active: $font-color-default !default; + +$tabs-lined-border-width: 3px !default; + +// Border Color +$tabs-border-color: $border-color-default !default; +$tabs-lined-border-color: $brand-primary !default; + +// Background Color +$tabs-bg: transparent !default; +$tabs-bg-pills: #e7e7e9 !default; +$tabs-bg-hover: lighten($tabs-border-color, 5) !default; +$tabs-bg-active: $brand-primary !default; + +//== Modals +//## Default Mendix Modal, Blocking Modal and Login Modal (used in components/modals) + +// Background Color +$modal-header-bg: transparent !default; + +// Border Color +$modal-header-border-color: $border-color-default !default; + +// Text Color +$modal-header-color: $font-color-default !default; + +//== Dataview +//## Default variables for Dataview Widget (used in components/dataview) + +// Controls +$dataview-controls-bg: transparent !default; +$dataview-controls-border-color: $border-color-default !default; + +// Empty Message +$dataview-emptymessage-bg: $bg-color !default; +$dataview-emptymessage-color: $font-color-default !default; + +//== Alerts +//## Default Bootstrap alerts, not a widget in the Modeler (used in components/alerts) + +// Background Color +$alert-primary-bg: $color-primary-lighter !default; +$alert-secondary-bg: $color-primary-lighter !default; +$alert-success-bg: $color-success-lighter !default; +$alert-warning-bg: $color-warning-lighter !default; +$alert-danger-bg: $color-danger-lighter !default; + +// Text Color +$alert-primary-color: $color-primary-darker !default; +$alert-secondary-color: $color-primary-darker !default; +$alert-success-color: $color-success-darker !default; +$alert-warning-color: $color-warning-darker !default; +$alert-danger-color: $color-danger-darker !default; + +// Border Color +$alert-primary-border-color: $color-primary-dark !default; +$alert-secondary-border-color: $color-primary-dark !default; +$alert-success-border-color: $color-success-dark !default; +$alert-warning-border-color: $color-warning-dark !default; +$alert-danger-border-color: $color-danger-dark !default; + +//== Wizard + +$wizard-step-height: 48px !default; +$wizard-step-number-size: 64px !default; +$wizard-step-number-font-size: $font-size-h3 !default; + +//Wizard states +$wizard-default: #fff !default; +$wizard-active: $brand-primary !default; +$wizard-visited: $brand-success !default; + +//Wizard step states +$wizard-default-bg: $wizard-default !default; +$wizard-default-color: $wizard-default !default; +$wizard-default-step-color: $font-color-default !default; +$wizard-default-border-color: $border-color-default !default; + +$wizard-active-bg: $wizard-active !default; +$wizard-active-color: $wizard-default !default; +$wizard-active-step-color: $wizard-active !default; +$wizard-active-border-color: $wizard-active !default; + +$wizard-visited-bg: $wizard-visited !default; +$wizard-visited-color: $wizard-default !default; +$wizard-visited-step-color: $wizard-visited !default; +$wizard-visited-border-color: $wizard-visited !default; + +//== Labels +//## Default Bootstrap Labels, not a widget in the Modeler (used in components/labels) + +// Background Color +$label-default-bg: $brand-default !default; +$label-primary-bg: $brand-primary !default; +$label-success-bg: $brand-success !default; +$label-warning-bg: $brand-warning !default; +$label-danger-bg: $brand-danger !default; + +// Border Color +$label-default-border-color: $brand-default !default; +$label-primary-border-color: $brand-primary !default; +$label-success-border-color: $brand-success !default; +$label-warning-border-color: $brand-warning !default; +$label-danger-border-color: $brand-danger !default; + +// Text Color +$label-default-color: $font-color-default !default; +$label-primary-color: #fff !default; +$label-success-color: #fff !default; +$label-warning-color: #fff !default; +$label-danger-color: #fff !default; + +//== Groupbox +//## Default variables for Groupbox Widget (used in components/groupbox) + +// Background Color +$groupbox-default-bg: $gray-primary !default; +$groupbox-primary-bg: $brand-primary !default; +$groupbox-success-bg: $brand-success !default; +$groupbox-warning-bg: $brand-warning !default; +$groupbox-danger-bg: $brand-danger !default; +$groupbox-white-bg: #fff !default; + +// Text Color +$groupbox-default-color: $font-color-default !default; +$groupbox-primary-color: #fff !default; +$groupbox-success-color: #fff !default; +$groupbox-warning-color: #fff !default; +$groupbox-danger-color: #fff !default; +$groupbox-white-color: $font-color-default !default; + +//== Callout (groupbox) Colors +//## Extended variables for Groupbox Widget (used in components/groupbox) + +// Text and Border Color +$callout-default-color: $font-color-default !default; +$callout-primary-color: $brand-primary !default; +$callout-success-color: $brand-success !default; +$callout-warning-color: $brand-warning !default; +$callout-danger-color: $brand-danger !default; + +// Background Color +$callout-default-bg: $color-default-lighter !default; +$callout-primary-bg: $color-primary-lighter !default; +$callout-success-bg: $color-success-lighter !default; +$callout-warning-bg: $color-warning-lighter !default; +$callout-danger-bg: $color-danger-lighter !default; + +//== Timeline +//## Extended variables for Timeline Widget +// Colors +$timeline-icon-color: $brand-primary !default; +$timeline-border-color: $border-color-default !default; +$timeline-event-time-color: $brand-primary !default; + +// Sizes +$timeline-icon-size: 18px !default; +$timeline-image-size: 36px !default; + +//Timeline grouping +$timeline-grouping-size: 120px !default; +$timeline-grouping-border-radius: 30px !default; +$timeline-grouping-border-color: $timeline-border-color !default; + +//== Accordions +//## Extended variables for Accordion Widget + +// Default +$accordion-header-default-bg: $bg-color-secondary !default; +$accordion-header-default-bg-hover: $bg-color !default; +$accordion-header-default-color: $font-color-header !default; +$accordion-default-border-color: $border-color-default !default; + +$accordion-bg-striped: $grid-bg-striped !default; +$accordion-bg-striped-hover: $grid-bg-selected !default; + +// Semantic background colors +$accordion-header-primary-bg: $btn-primary-bg !default; +$accordion-header-secondary-bg: $btn-default-bg !default; +$accordion-header-success-bg: $btn-success-bg !default; +$accordion-header-warning-bg: $btn-warning-bg !default; +$accordion-header-danger-bg: $btn-danger-bg !default; + +$accordion-header-primary-bg-hover: $btn-primary-bg-hover !default; +$accordion-header-secondary-bg-hover: $btn-default-bg-hover !default; +$accordion-header-success-bg-hover: $btn-success-bg-hover !default; +$accordion-header-warning-bg-hover: $btn-warning-bg-hover !default; +$accordion-header-danger-bg-hover: $btn-danger-bg-hover !default; + +// Semantic text colors +$accordion-header-primary-color: $btn-primary-color !default; +$accordion-header-secondary-color: $btn-default-color !default; +$accordion-header-success-color: $btn-success-color !default; +$accordion-header-warning-color: $btn-warning-color !default; +$accordion-header-danger-color: $btn-danger-color !default; + +// Semantic border colors +$accordion-primary-border-color: $btn-primary-border-color !default; +$accordion-secondary-border-color: $btn-default-border-color !default; +$accordion-success-border-color: $btn-success-border-color !default; +$accordion-warning-border-color: $btn-warning-border-color !default; +$accordion-danger-border-color: $btn-danger-border-color !default; + +//== Spacing +//## Advanced layout options (used in base/mixins/default-spacing) + +// Smallest spacing +$spacing-smallest: 2px !default; + +// Smaller spacing +$spacing-smaller: 4px !default; + +// Small spacing +$spacing-small: 8px !default; + +// Medium spacing +$spacing-medium: 16px !default; +$t-spacing-medium: 16px !default; +$m-spacing-medium: 16px !default; + +// Large spacing +$spacing-large: 24px !default; +$t-spacing-large: 24px !default; +$m-spacing-large: 16px !default; + +// Larger spacing +$spacing-larger: 32px !default; + +// Largest spacing +$spacing-largest: 48px !default; + +// Layout spacing +$layout-spacing-top: 24px !default; +$layout-spacing-right: 24px !default; +$layout-spacing-bottom: 24px !default; +$layout-spacing-left: 24px !default; + +$t-layout-spacing-top: 24px !default; +$t-layout-spacing-right: 24px !default; +$t-layout-spacing-bottom: 24px !default; +$t-layout-spacing-left: 24px !default; + +$m-layout-spacing-top: 16px !default; +$m-layout-spacing-right: 16px !default; +$m-layout-spacing-bottom: 16px !default; +$m-layout-spacing-left: 16px !default; + +// Combined layout spacing +$layout-spacing: $layout-spacing-top $layout-spacing-right $layout-spacing-bottom $layout-spacing-left !default; +$m-layout-spacing: $m-layout-spacing-top $m-layout-spacing-right $m-layout-spacing-bottom $m-layout-spacing-left !default; +$t-layout-spacing: $t-layout-spacing-top $t-layout-spacing-right $t-layout-spacing-bottom $t-layout-spacing-left !default; + +// Gutter size +$gutter-size: 8px !default; + +//== Tables +//## Table spacing options (used in components/tables) + +$padding-table-cell-top: 8px !default; +$padding-table-cell-bottom: 8px !default; +$padding-table-cell-left: 8px !default; +$padding-table-cell-right: 8px !default; + +//== Media queries breakpoints +//## Define the breakpoints at which your layout will change, adapting to different screen sizes. + +$screen-xs: 480px !default; +$screen-sm: 576px !default; +$screen-md: 768px !default; +$screen-lg: 992px !default; +$screen-xl: 1200px !default; + +// So media queries don't overlap when required, provide a maximum (used for max-width) +$screen-xs-max: calc(#{$screen-sm} - 1px) !default; +$screen-sm-max: calc(#{$screen-md} - 1px) !default; +$screen-md-max: calc(#{$screen-lg} - 1px) !default; +$screen-lg-max: calc(#{$screen-xl} - 1px) !default; + +//== Settings +//## Enable or disable your desired framework features +// Use of !important +$important-flex: true !default; // ./base/flex.scss +$important-spacing: true !default; // ./base/spacing.scss +$important-helpers: true !default; // ./helpers/helperclasses.scss + +//===== Legacy variables ===== + +//== Step 1: Brand Colors +$brand-inverse: #24276c !default; +$brand-info: #0086d9 !default; + +//== Step 2: UI Customization +// Sidebar +$sidebar-bg: $brand-inverse !default; + +//== Navigation +//## Used in components/navigation + +// Default Navigation styling +$navigation-bg: $brand-inverse !default; +$navigation-bg-hover: lighten($navigation-bg, 4) !default; +$navigation-bg-active: lighten($navigation-bg, 8) !default; + +$navigation-sub-bg: darken($navigation-bg, 4) !default; +$navigation-sub-bg-hover: $navigation-sub-bg !default; +$navigation-sub-bg-active: $navigation-sub-bg !default; + +$navigation-border-color: $navigation-bg-hover !default; + +// Navigation Sidebar +$navsidebar-bg: $sidebar-bg !default; +$navsidebar-bg-hover: darken($navsidebar-bg, 4) !default; +$navsidebar-bg-active: darken($navsidebar-bg, 8) !default; + +$navsidebar-sub-bg: darken($navsidebar-bg, 4) !default; +$navsidebar-sub-bg-hover: $navsidebar-sub-bg !default; +$navsidebar-sub-bg-active: $navsidebar-sub-bg !default; + +$navsidebar-border-color: $navsidebar-bg-hover !default; + +//== Form +//## Used in components/inputs + +// Form Label +$form-label-color: $brand-inverse !default; + +//== Buttons +//## Define background-color, border-color and text. Used in components/buttons + +// Button Background Color +$btn-inverse-bg: $brand-inverse !default; +$btn-info-bg: $brand-info !default; + +// Button Border Color +$btn-inverse-border-color: $brand-inverse !default; +$btn-info-border-color: $brand-info !default; + +// Button Text Color +$btn-inverse-color: #fff !default; +$btn-info-color: #fff !default; + +// Button Background Color +$btn-inverse-bg-hover: mix($btn-inverse-bg, white, 80%) !default; +$btn-info-bg-hover: mix($btn-info-bg, black, 80%) !default; + +//== Color variations +//## These variations are used to support several other variables and components + +// Color variations +$color-inverse-darker: mix($brand-inverse, black, 60%) !default; +$color-inverse-dark: mix($brand-inverse, black, 70%) !default; +$color-inverse-light: mix($brand-inverse, white, 40%) !default; +$color-inverse-lighter: mix($brand-inverse, white, 20%) !default; + +$color-info-darker: mix($brand-info, black, 60%) !default; +$color-info-dark: mix($brand-info, black, 70%) !default; +$color-info-light: mix($brand-info, white, 60%) !default; +$color-info-lighter: mix($brand-info, white, 20%) !default; + +//== Alerts +//## Default Bootstrap alerts, not a widget in the Modeler (used in components/alerts) + +// Background Color +$alert-info-bg: $color-primary-lighter !default; + +// Text Color +$alert-info-color: $color-primary-darker !default; + +// Border Color +$alert-info-border-color: $color-primary-dark !default; +//== Labels +//## Default Bootstrap Labels, not a widget in the Modeler (used in components/labels) + +// Background Color +$label-info-bg: $brand-info !default; +$label-inverse-bg: $brand-inverse !default; + +// Border Color +$label-info-border-color: $brand-info !default; +$label-inverse-border-color: $brand-inverse !default; + +// Text Color +$label-info-color: #fff !default; +$label-inverse-color: #fff !default; + +//== Groupbox +//## Default variables for Groupbox Widget (used in components/groupbox) + +// Background Color +$groupbox-inverse-bg: $brand-inverse !default; +$groupbox-info-bg: $brand-info !default; + +// Text Color +$groupbox-inverse-color: #fff !default; +$groupbox-info-color: #fff !default; +//== Callout (groupbox) Colors +//## Extended variables for Groupbox Widget (used in components/groupbox) + +// Text and Border Color +$callout-info-color: $brand-info !default; + +// Background Color +$callout-info-bg: $color-info-lighter !default; diff --git a/themesource/atlas_core/web/core/_legacy/_mxui.scss b/themesource/atlas_core/web/core/_legacy/_mxui.scss new file mode 100644 index 0000000..1e7a2b1 --- /dev/null +++ b/themesource/atlas_core/web/core/_legacy/_mxui.scss @@ -0,0 +1,3582 @@ +/* @preserve + Copyright (c) 2005-2016, Mendix bv. All rights reserved. + See mxclientsystem/licenses.txt for third party licenses that apply. +*/ + +/* + Essential styles that themes can inherit. + In other words, works but doesn't look great. +*/ + +@mixin mxui() { + /**** + GENERIC PIECES + ****/ + + .dijitReset { + /* Use this style to null out padding, margin, border in your template elements + so that page specific styles don't break them. + - Use in all TABLE, TR and TD tags. + */ + margin: 0; + border: 0; + padding: 0; + font: inherit; + line-height: normal; + color: inherit; + } + .dj_a11y .dijitReset { + -moz-appearance: none; /* remove predefined high-contrast styling in Firefox */ + } + + .dijitInline { + /* To inline block elements. + Similar to InlineBox below, but this has fewer side-effects in Moz. + Also, apparently works on a DIV as well as a FIELDSET. + */ + display: inline-block; /* webkit and FF3 */ + border: 0; + padding: 0; + vertical-align: middle; + } + + table.dijitInline { + /* To inline tables with a given width set */ + display: inline-table; + box-sizing: content-box; + } + + .dijitHidden { + /* To hide unselected panes in StackContainer etc. */ + position: absolute; /* remove from normal document flow to simulate display: none */ + visibility: hidden; /* hide element from view, but don't break scrolling, see #18612 */ + } + .dijitHidden * { + visibility: hidden !important; /* hide visibility:visible descendants of class=dijitHidden nodes, see #18799 */ + } + + .dijitVisible { + /* To show selected pane in StackContainer etc. */ + display: block !important; /* override user's display:none setting via style setting or indirectly via class */ + position: relative; /* to support setting width/height, see #2033 */ + visibility: visible; + } + + .dj_ie6 .dijitComboBox .dijitInputContainer, + .dijitInputContainer { + /* for positioning of placeHolder */ + overflow: hidden; + float: none !important; /* needed to squeeze the INPUT in */ + position: relative; + } + .dj_ie7 .dijitInputContainer { + float: left !important; /* needed by IE to squeeze the INPUT in */ + clear: left; + display: inline-block !important; /* to fix wrong text alignment in textdir=rtl text box */ + } + + .dj_ie .dijitSelect input, + .dj_ie input.dijitTextBox, + .dj_ie .dijitTextBox input { + font-size: 100%; + } + .dijitSelect .dijitButtonText { + float: left; + vertical-align: top; + } + table.dijitSelect { + padding: 0 !important; /* messes up border alignment */ + border-collapse: separate; /* so jsfiddle works with Normalized CSS checked */ + } + .dijitTextBox .dijitSpinnerButtonContainer, + .dijitTextBox .dijitArrowButtonContainer, + .dijitValidationTextBox .dijitValidationContainer { + float: right; + text-align: center; + } + .dijitSelect input.dijitInputField, + .dijitTextBox input.dijitInputField { + /* override unreasonable user styling of buttons and icons */ + padding-left: 0 !important; + padding-right: 0 !important; + } + .dijitValidationTextBox .dijitValidationContainer { + display: none; + } + + .dijitTeeny { + font-size: 1px; + line-height: 1px; + } + + .dijitOffScreen { + /* these class attributes should supersede any inline positioning style */ + position: absolute !important; + left: -10000px !important; + top: -10000px !important; + } + + /* + * Popup items have a wrapper div (dijitPopup) + * with the real popup inside, and maybe an iframe too + */ + .dijitPopup { + position: absolute; + background-color: transparent; + margin: 0; + border: 0; + padding: 0; + -webkit-overflow-scrolling: touch; + } + + .dijitPositionOnly { + /* Null out all position-related properties */ + padding: 0 !important; + border: 0 !important; + background-color: transparent !important; + background-image: none !important; + height: auto !important; + width: auto !important; + } + + .dijitNonPositionOnly { + /* Null position-related properties */ + float: none !important; + position: static !important; + margin: 0 0 0 0 !important; + vertical-align: middle !important; + } + + .dijitBackgroundIframe { + /* iframe used to prevent problems with PDF or other applets overlaying menus etc */ + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + z-index: -1; + border: 0; + padding: 0; + margin: 0; + } + + .dijitDisplayNone { + /* hide something. Use this as a class rather than element.style so another class can override */ + display: none !important; + } + + .dijitContainer { + /* for all layout containers */ + overflow: hidden; /* need on IE so something can be reduced in size, and so scrollbars aren't temporarily displayed when resizing */ + } + + /**** + A11Y + ****/ + .dj_a11y .dijitIcon, + .dj_a11y div.dijitArrowButtonInner, /* is this only for Spinner? if so, it should be deleted */ + .dj_a11y span.dijitArrowButtonInner, + .dj_a11y img.dijitArrowButtonInner, + .dj_a11y .dijitCalendarIncrementControl, + .dj_a11y .dijitTreeExpando { + /* hide icon nodes in high contrast mode; when necessary they will be replaced by character equivalents + * exception for input.dijitArrowButtonInner, because the icon and character are controlled by the same node */ + display: none; + } + .dijitSpinner div.dijitArrowButtonInner { + display: block; /* override previous rule */ + } + + .dj_a11y .dijitA11ySideArrow { + display: inline !important; /* display text instead */ + cursor: pointer; + } + + /* + * Since we can't use shading in a11y mode, and since the underline indicates today's date, + * use a border to show the selected date. + * Avoid screen jitter when switching selected date by compensating for the selected node's + * border w/padding on other nodes. + */ + .dj_a11y .dijitCalendarDateLabel { + padding: 1px; + border: 0px !important; + } + .dj_a11y .dijitCalendarSelectedDate .dijitCalendarDateLabel { + border-style: solid !important; + border-width: 1px !important; + padding: 0; + } + .dj_a11y .dijitCalendarDateTemplate { + padding-bottom: 0.1em !important; /* otherwise bottom border doesn't appear on IE */ + border: 0px !important; + } + .dj_a11y .dijitButtonNode { + border: black outset medium !important; + + /* In claro, hovering a toolbar button reduces padding and adds a border. + * Not needed in a11y mode since Toolbar buttons always have a border. + */ + padding: 0 !important; + } + .dj_a11y .dijitArrowButton { + padding: 0 !important; + } + + .dj_a11y .dijitButtonContents { + margin: 0.15em; /* Margin needed to make focus outline visible */ + } + + .dj_a11y .dijitTextBoxReadOnly .dijitInputField, + .dj_a11y .dijitTextBoxReadOnly .dijitButtonNode { + border-style: outset !important; + border-width: medium !important; + border-color: #999 !important; + color: #999 !important; + } + + /* button inner contents - labels, icons etc. */ + .dijitButtonNode * { + vertical-align: middle; + } + .dijitSelect .dijitArrowButtonInner, + .dijitButtonNode .dijitArrowButtonInner { + /* the arrow icon node */ + background: no-repeat center; + width: 12px; + height: 12px; + direction: ltr; /* needed by IE/RTL */ + } + + /**** + 3-element borders: ( dijitLeft + dijitStretch + dijitRight ) + These were added for rounded corners on dijit.form.*Button but never actually used. + ****/ + + .dijitLeft { + /* Left part of a 3-element border */ + background-position: left top; + background-repeat: no-repeat; + } + + .dijitStretch { + /* Middle (stretchy) part of a 3-element border */ + white-space: nowrap; /* MOW: move somewhere else */ + background-repeat: repeat-x; + } + + .dijitRight { + /* Right part of a 3-element border */ + background-position: right top; + background-repeat: no-repeat; + } + + /* Buttons */ + .dj_gecko .dj_a11y .dijitButtonDisabled .dijitButtonNode { + opacity: 0.5; + } + + .dijitToggleButton, + .dijitButton, + .dijitDropDownButton, + .dijitComboButton { + /* outside of button */ + margin: 0.2em; + vertical-align: middle; + } + + .dijitButtonContents { + display: block; /* to make focus border rectangular */ + } + td.dijitButtonContents { + display: table-cell; /* but don't affect Select, ComboButton */ + } + + .dijitButtonNode img { + /* make text and images line up cleanly */ + vertical-align: middle; + /*margin-bottom:.2em;*/ + } + + .dijitToolbar .dijitComboButton { + /* because Toolbar only draws a border around the hovered thing */ + border-collapse: separate; + } + + .dijitToolbar .dijitToggleButton, + .dijitToolbar .dijitButton, + .dijitToolbar .dijitDropDownButton, + .dijitToolbar .dijitComboButton { + margin: 0; + } + + .dijitToolbar .dijitButtonContents { + /* just because it used to be this way */ + padding: 1px 2px; + } + + .dj_webkit .dijitToolbar .dijitDropDownButton { + padding-left: 0.3em; + } + .dj_gecko .dijitToolbar .dijitButtonNode::-moz-focus-inner { + padding: 0; + } + + .dijitSelect { + border: 1px solid gray; + } + .dijitButtonNode { + /* Node that is acting as a button -- may or may not be a BUTTON element */ + border: 1px solid gray; + margin: 0; + line-height: normal; + vertical-align: middle; + text-align: center; + white-space: nowrap; + } + .dj_webkit .dijitSpinner .dijitSpinnerButtonContainer { + /* apparent WebKit bug where messing with the font coupled with line-height:normal X 2 (dijitReset & dijitButtonNode) + can be different than just a single line-height:normal, visible in InlineEditBox/Spinner */ + line-height: inherit; + } + .dijitTextBox .dijitButtonNode { + border-width: 0; + } + + .dijitSelect, + .dijitSelect *, + .dijitButtonNode, + .dijitButtonNode * { + cursor: pointer; + -webkit-tap-highlight-color: transparent; + } + + .dj_ie .dijitButtonNode { + /* ensure hasLayout */ + zoom: 1; + } + + .dj_ie .dijitButtonNode button { + /* + disgusting hack to get rid of spurious padding around button elements + on IE. MSIE is truly the web's boat anchor. + */ + overflow: visible; + } + + div.dijitArrowButton { + float: right; + } + + /****** + TextBox related. + Everything that has an +*******/ + + .dijitTextBox { + border: solid black 1px; + width: 15em; /* need to set default size on outer node since inner nodes say and
    . user can override */ + vertical-align: middle; + } + + .dijitTextBoxReadOnly, + .dijitTextBoxDisabled { + color: gray; + } + .dj_safari .dijitTextBoxDisabled input { + color: #b0b0b0; /* because Safari lightens disabled input/textarea no matter what color you specify */ + } + .dj_safari textarea.dijitTextAreaDisabled { + color: #333; /* because Safari lightens disabled input/textarea no matter what color you specify */ + } + .dj_gecko .dijitTextBoxReadOnly input.dijitInputField, /* disable arrow and validation presentation inputs but allow real input for text selection */ + .dj_gecko .dijitTextBoxDisabled input { + -moz-user-input: none; /* prevent focus of disabled textbox buttons */ + } + + .dijitPlaceHolder { + /* hint text that appears in a textbox until user starts typing */ + color: #aaaaaa; + font-style: italic; + position: absolute; + top: 0; + left: 0; + white-space: nowrap; + pointer-events: none; /* so cut/paste context menu shows up when right clicking */ + } + + .dijitTimeTextBox { + width: 8em; + } + + /* rules for webkit to deal with fuzzy blue focus border */ + .dijitTextBox input:focus { + outline: none; /* blue fuzzy line looks wrong on combobox or something w/validation icon showing */ + } + .dijitTextBoxFocused { + outline: 5px -webkit-focus-ring-color; + } + + .dijitSelect input, + .dijitTextBox input { + float: left; /* needed by IE to remove secret margin */ + } + .dj_ie6 input.dijitTextBox, + .dj_ie6 .dijitTextBox input { + float: none; + } + .dijitInputInner { + /* for when an is embedded inside an inline-block
    with a size and border */ + border: 0 !important; + background-color: transparent !important; + width: 100% !important; + /* IE dislikes horizontal tweaking combined with width:100% so punish everyone for consistency */ + padding-left: 0 !important; + padding-right: 0 !important; + margin-left: 0 !important; + margin-right: 0 !important; + } + .dj_a11y .dijitTextBox input { + margin: 0 !important; + } + .dijitValidationTextBoxError input.dijitValidationInner, + .dijitSelect input, + .dijitTextBox input.dijitArrowButtonInner { + /* used to display arrow icon/validation icon, or in arrow character in high contrast mode. + * The css below is a trick to hide the character in non-high-contrast mode + */ + text-indent: -2em !important; + direction: ltr !important; + text-align: left !important; + height: auto !important; + } + .dj_ie .dijitSelect input, + .dj_ie .dijitTextBox input, + .dj_ie input.dijitTextBox { + overflow-y: visible; /* inputs need help expanding when padding is added or line-height is adjusted */ + line-height: normal; /* strict mode */ + } + .dijitSelect .dijitSelectLabel span { + line-height: 100%; + } + .dj_ie .dijitSelect .dijitSelectLabel { + line-height: normal; + } + .dj_ie6 .dijitSelect .dijitSelectLabel, + .dj_ie7 .dijitSelect .dijitSelectLabel, + .dj_ie8 .dijitSelect .dijitSelectLabel, + .dj_iequirks .dijitSelect .dijitSelectLabel, + .dijitSelect td, + .dj_ie6 .dijitSelect input, + .dj_iequirks .dijitSelect input, + .dj_ie6 .dijitSelect .dijitValidationContainer, + .dj_ie6 .dijitTextBox input, + .dj_ie6 input.dijitTextBox, + .dj_iequirks .dijitTextBox input.dijitValidationInner, + .dj_iequirks .dijitTextBox input.dijitArrowButtonInner, + .dj_iequirks .dijitTextBox input.dijitSpinnerButtonInner, + .dj_iequirks .dijitTextBox input.dijitInputInner, + .dj_iequirks input.dijitTextBox { + line-height: 100%; /* IE7 problem where the icon is vertically way too low w/o this */ + } + .dj_a11y input.dijitValidationInner, + .dj_a11y input.dijitArrowButtonInner { + /* (in high contrast mode) revert rules from above so character displays */ + text-indent: 0 !important; + width: 1em !important; + color: black !important; + } + .dijitValidationTextBoxError .dijitValidationContainer { + display: inline; + cursor: default; + } + + /* ComboBox & Spinner */ + + .dijitSpinner .dijitSpinnerButtonContainer, + .dijitComboBox .dijitArrowButtonContainer { + /* dividing line between input area and up/down button(s) for ComboBox and Spinner */ + border-width: 0 0 0 1px !important; /* !important needed due to wayward ".theme .dijitButtonNode" rules */ + } + .dj_a11y .dijitSelect .dijitArrowButtonContainer, + .dijitToolbar .dijitComboBox .dijitArrowButtonContainer { + /* overrides above rule plus mirror-image rule in dijit_rtl.css to have no divider when ComboBox in Toolbar */ + border-width: 0 !important; + } + + .dijitComboBoxMenu { + /* Drop down menu is implemented as
    • ... but we don't want circles before each item */ + list-style-type: none; + } + .dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode { + /* dividing line between input area and up/down button(s) for ComboBox and Spinner */ + border-width: 0; + } + .dj_ie .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode { + clear: both; /* IE workaround */ + } + + .dj_ie .dijitToolbar .dijitComboBox { + /* make combobox buttons align properly with other buttons in a toolbar */ + vertical-align: middle; + } + + /* Spinner */ + + .dijitTextBox .dijitSpinnerButtonContainer { + width: 1em; + position: relative !important; + overflow: hidden; + } + .dijitSpinner .dijitSpinnerButtonInner { + width: 1em; + visibility: hidden !important; /* just a sizing element */ + overflow-x: hidden; + } + .dijitComboBox .dijitButtonNode, + .dijitSpinnerButtonContainer .dijitButtonNode { + border-width: 0; + } + .dj_a11y .dijitSpinnerButtonContainer .dijitButtonNode { + border-width: 0px !important; + border-style: solid !important; + } + .dj_a11y .dijitTextBox .dijitSpinnerButtonContainer, + .dj_a11y .dijitSpinner .dijitArrowButtonInner, + .dj_a11y .dijitSpinnerButtonContainer input { + width: 1em !important; + } + .dj_a11y .dijitSpinner .dijitArrowButtonInner { + margin: 0 auto !important; /* should auto-center */ + } + .dj_ie .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { + padding-left: 0.3em !important; + padding-right: 0.3em !important; + margin-left: 0.3em !important; + margin-right: 0.3em !important; + width: 1.4em !important; + } + .dj_ie7 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { + padding-left: 0 !important; /* manually center INPUT: character is .5em and total width = 1em */ + padding-right: 0 !important; + width: 1em !important; + } + .dj_ie6 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { + margin-left: 0.1em !important; + margin-right: 0.1em !important; + width: 1em !important; + } + .dj_iequirks .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { + margin-left: 0 !important; + margin-right: 0 !important; + width: 2em !important; + } + .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton { + /* note: .dijitInputLayoutContainer makes this rule override .dijitArrowButton settings + * for dijit.form.Button + */ + padding: 0; + position: absolute !important; + right: 0; + float: none; + height: 50%; + width: 100%; + bottom: auto; + left: 0; + right: auto; + } + .dj_iequirks .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton { + width: auto; + } + .dj_a11y .dijitSpinnerButtonContainer .dijitArrowButton { + overflow: visible !important; + } + .dijitSpinner .dijitSpinnerButtonContainer .dijitDownArrowButton { + top: 50%; + border-top-width: 1px !important; + } + .dijitSpinner .dijitSpinnerButtonContainer .dijitUpArrowButton { + top: 0; + } + .dijitSpinner .dijitArrowButtonInner { + margin: auto; + overflow-x: hidden; + height: 100% !important; + } + .dj_iequirks .dijitSpinner .dijitArrowButtonInner { + height: auto !important; + } + .dijitSpinner .dijitArrowButtonInner .dijitInputField { + transform: scale(0.5); + transform-origin: left top; + padding-top: 0; + padding-bottom: 0; + padding-left: 0 !important; + padding-right: 0 !important; + width: 100%; + visibility: hidden; + } + .dj_ie .dijitSpinner .dijitArrowButtonInner .dijitInputField { + zoom: 50%; /* emulate transform: scale(0.5) */ + } + .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButtonInner { + overflow: hidden; + } + + .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton { + width: 100%; + } + .dj_iequirks .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton { + width: 1em; /* matches .dj_a11y .dijitTextBox .dijitSpinnerButtonContainer rule - 100% is the whole screen width in quirks */ + } + .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { + vertical-align: top; + visibility: visible; + } + .dj_a11y .dijitSpinnerButtonContainer { + width: 1em; + } + + /**** + dijit.form.CheckBox + & + dijit.form.RadioButton + ****/ + + .dijitCheckBox, + .dijitRadio, + .dijitCheckBoxInput { + padding: 0; + border: 0; + width: 16px; + height: 16px; + background-position: center center; + background-repeat: no-repeat; + overflow: hidden; + } + + .dijitCheckBox input, + .dijitRadio input { + margin: 0; + padding: 0; + display: block; + } + + .dijitCheckBoxInput { + /* place the actual input on top, but invisible */ + opacity: 0; + } + + .dj_ie .dijitCheckBoxInput { + filter: alpha(opacity=0); + } + + .dj_a11y .dijitCheckBox, + .dj_a11y .dijitRadio { + /* in a11y mode we display the native checkbox (not the icon), so don't restrict the size */ + width: auto !important; + height: auto !important; + } + .dj_a11y .dijitCheckBoxInput { + opacity: 1; + filter: none; + width: auto; + height: auto; + } + + .dj_a11y .dijitFocusedLabel { + /* for checkboxes or radio buttons in high contrast mode, use border rather than outline to indicate focus (outline does not work in FF)*/ + border: 1px dotted; + outline: 0px !important; + } + + /**** + dijit.ProgressBar + ****/ + + .dijitProgressBar { + z-index: 0; /* so z-index settings below have no effect outside of the ProgressBar */ + } + .dijitProgressBarEmpty { + /* outer container and background of the bar that's not finished yet*/ + position: relative; + overflow: hidden; + border: 1px solid black; /* a11y: border necessary for high-contrast mode */ + z-index: 0; /* establish a stacking context for this progress bar */ + } + + .dijitProgressBarFull { + /* outer container for background of bar that is finished */ + position: absolute; + overflow: hidden; + z-index: -1; + top: 0; + width: 100%; + } + .dj_ie6 .dijitProgressBarFull { + height: 1.6em; + } + + .dijitProgressBarTile { + /* inner container for finished portion */ + position: absolute; + overflow: hidden; + top: 0; + left: 0; + bottom: 0; + right: 0; + margin: 0; + padding: 0; + width: 100%; /* needed for IE/quirks */ + height: auto; + background-color: #aaa; + background-attachment: fixed; + } + + .dj_a11y .dijitProgressBarTile { + /* a11y: The border provides visibility in high-contrast mode */ + border-width: 2px; + border-style: solid; + background-color: transparent !important; + } + + .dj_ie6 .dijitProgressBarTile { + /* width:auto works in IE6 with position:static but not position:absolute */ + position: static; + /* height:auto or 100% does not work in IE6 */ + height: 1.6em; + } + + .dijitProgressBarIndeterminate .dijitProgressBarTile { + /* animated gif for 'indeterminate' mode */ + } + + .dijitProgressBarIndeterminateHighContrastImage { + display: none; + } + + .dj_a11y .dijitProgressBarIndeterminate .dijitProgressBarIndeterminateHighContrastImage { + display: block; + position: absolute; + top: 0; + bottom: 0; + margin: 0; + padding: 0; + width: 100%; + height: auto; + } + + .dijitProgressBarLabel { + display: block; + position: static; + width: 100%; + text-align: center; + background-color: transparent !important; + } + + /**** + dijit.Tooltip + ****/ + + .dijitTooltip { + position: absolute; + z-index: 2000; + display: block; + /* make visible but off screen */ + left: 0; + top: -10000px; + overflow: visible; + } + + .dijitTooltipContainer { + border: solid black 2px; + background: #b8b5b5; + color: black; + font-size: small; + } + + .dijitTooltipFocusNode { + padding: 2px 2px 2px 2px; + } + + .dijitTooltipConnector { + position: absolute; + } + .dj_a11y .dijitTooltipConnector { + display: none; /* won't show b/c it's background-image; hide to avoid border gap */ + } + + .dijitTooltipData { + display: none; + } + + /* Layout widgets. This is essential CSS to make layout work (it isn't "styling" CSS) + make sure that the position:absolute in dijitAlign* overrides other classes */ + + .dijitLayoutContainer { + position: relative; + display: block; + overflow: hidden; + } + + .dijitAlignTop, + .dijitAlignBottom, + .dijitAlignLeft, + .dijitAlignRight { + position: absolute; + overflow: hidden; + } + + body .dijitAlignClient { + position: absolute; + } + + /* + * BorderContainer + * + * .dijitBorderContainer is a stylized layout where panes have border and margin. + * .dijitBorderContainerNoGutter is a raw layout. + */ + .dijitBorderContainer, + .dijitBorderContainerNoGutter { + position: relative; + overflow: hidden; + z-index: 0; /* so z-index settings below have no effect outside of the BorderContainer */ + } + + .dijitBorderContainerPane, + .dijitBorderContainerNoGutterPane { + position: absolute !important; /* !important to override position:relative in dijitTabContainer etc. */ + z-index: 2; /* above the splitters so that off-by-one browser errors don't cover up border of pane */ + } + + .dijitBorderContainer > .dijitTextArea { + /* On Safari, for SimpleTextArea inside a BorderContainer, + don't want to display the grip to resize */ + resize: none; + } + + .dijitGutter { + /* gutter is just a place holder for empty space between panes in BorderContainer */ + position: absolute; + font-size: 1px; /* needed by IE6 even though div is empty, otherwise goes to 15px */ + } + + /* SplitContainer + + 'V' == container that splits vertically (up/down) + 'H' = horizontal (left/right) +*/ + + .dijitSplitter { + position: absolute; + overflow: hidden; + z-index: 10; /* above the panes so that splitter focus is visible on FF, see #7583*/ + background-color: #fff; + border-color: gray; + border-style: solid; + border-width: 0; + } + .dj_ie .dijitSplitter { + z-index: 1; /* behind the panes so that pane borders aren't obscured see test_Gui.html/[14392] */ + } + + .dijitSplitterActive { + z-index: 11 !important; + } + + .dijitSplitterCover { + position: absolute; + z-index: -1; + top: 0; + left: 0; + width: 100%; + height: 100%; + } + + .dijitSplitterCoverActive { + z-index: 3 !important; + } + + /* #6945: stop mouse events */ + .dj_ie .dijitSplitterCover { + background: white; + opacity: 0; + } + .dj_ie6 .dijitSplitterCover, + .dj_ie7 .dijitSplitterCover, + .dj_ie8 .dijitSplitterCover { + filter: alpha(opacity=0); + } + + .dijitSplitterH { + height: 7px; + border-top: 1px; + border-bottom: 1px; + cursor: row-resize; + -webkit-tap-highlight-color: transparent; + } + .dijitSplitterV { + width: 7px; + border-left: 1px; + border-right: 1px; + cursor: col-resize; + -webkit-tap-highlight-color: transparent; + } + .dijitSplitContainer { + position: relative; + overflow: hidden; + display: block; + } + + .dijitSplitPane { + position: absolute; + } + + .dijitSplitContainerSizerH, + .dijitSplitContainerSizerV { + position: absolute; + font-size: 1px; + background-color: ThreeDFace; + border: 1px solid; + border-color: ThreeDHighlight ThreeDShadow ThreeDShadow ThreeDHighlight; + margin: 0; + } + + .dijitSplitContainerSizerH .thumb, + .dijitSplitterV .dijitSplitterThumb { + overflow: hidden; + position: absolute; + top: 49%; + } + + .dijitSplitContainerSizerV .thumb, + .dijitSplitterH .dijitSplitterThumb { + position: absolute; + left: 49%; + } + + .dijitSplitterShadow, + .dijitSplitContainerVirtualSizerH, + .dijitSplitContainerVirtualSizerV { + font-size: 1px; + background-color: ThreeDShadow; + opacity: 0.5; + margin: 0; + } + + .dijitSplitContainerSizerH, + .dijitSplitContainerVirtualSizerH { + cursor: col-resize; + } + + .dijitSplitContainerSizerV, + .dijitSplitContainerVirtualSizerV { + cursor: row-resize; + } + + .dj_a11y .dijitSplitterH { + border-top: 1px solid #d3d3d3 !important; + border-bottom: 1px solid #d3d3d3 !important; + } + .dj_a11y .dijitSplitterV { + border-left: 1px solid #d3d3d3 !important; + border-right: 1px solid #d3d3d3 !important; + } + + /* ContentPane */ + + .dijitContentPane { + display: block; + overflow: auto; /* if we don't have this (or overflow:hidden), then Widget.resizeTo() doesn't make sense for ContentPane */ + -webkit-overflow-scrolling: touch; + } + + .dijitContentPaneSingleChild { + /* + * if the ContentPane holds a single layout widget child which is being sized to match the content pane, + * then the ContentPane should never get a scrollbar (but it does due to browser bugs, see #9449 + */ + overflow: hidden; + } + + .dijitContentPaneLoading .dijitIconLoading, + .dijitContentPaneError .dijitIconError { + margin-right: 9px; + } + + /* TitlePane and Fieldset */ + + .dijitTitlePane { + display: block; + overflow: hidden; + } + .dijitFieldset { + border: 1px solid gray; + } + .dijitTitlePaneTitle, + .dijitFieldsetTitle { + cursor: pointer; + -webkit-tap-highlight-color: transparent; + } + .dijitTitlePaneTitleFixedOpen, + .dijitTitlePaneTitleFixedClosed, + .dijitFieldsetTitleFixedOpen, + .dijitFieldsetTitleFixedClosed { + /* TitlePane or Fieldset that cannot be toggled */ + cursor: default; + } + .dijitTitlePaneTitle * { + vertical-align: middle; + } + .dijitTitlePane .dijitArrowNodeInner, + .dijitFieldset .dijitArrowNodeInner { + /* normally, hide arrow text in favor of icon */ + display: none; + } + .dj_a11y .dijitTitlePane .dijitArrowNodeInner, + .dj_a11y .dijitFieldset .dijitArrowNodeInner { + /* ... except in a11y mode, then show text arrow */ + display: inline; + font-family: monospace; /* because - and + are different widths */ + } + .dj_a11y .dijitTitlePane .dijitArrowNode, + .dj_a11y .dijitFieldset .dijitArrowNode { + /* ... and hide icon (TODO: just point dijitIcon class on the icon, and it hides automatically) */ + display: none; + } + .dijitTitlePaneTitleFixedOpen .dijitArrowNode, + .dijitTitlePaneTitleFixedOpen .dijitArrowNodeInner, + .dijitTitlePaneTitleFixedClosed .dijitArrowNode, + .dijitTitlePaneTitleFixedClosed .dijitArrowNodeInner, + .dijitFieldsetTitleFixedOpen .dijitArrowNode, + .dijitFieldsetTitleFixedOpen .dijitArrowNodeInner, + .dijitFieldsetTitleFixedClosed .dijitArrowNode, + .dijitFieldsetTitleFixedClosed .dijitArrowNodeInner { + /* don't show the open close icon or text arrow; it makes the user think the pane is closable */ + display: none !important; /* !important to override above a11y rules to show text arrow */ + } + + .dj_ie6 .dijitTitlePaneContentOuter, + .dj_ie6 .dijitTitlePane .dijitTitlePaneTitle { + /* force hasLayout to ensure borders etc, show up */ + zoom: 1; + } + + /* Color Palette + * Sizes designed so that table cell positions match icons in underlying image, + * which appear at 20x20 intervals. + */ + + .dijitColorPalette { + border: 1px solid #999; + background: #fff; + position: relative; + } + + .dijitColorPalette .dijitPaletteTable { + /* Table that holds the palette cells, and overlays image file with color swatches. + * padding/margin to align table with image. + */ + padding: 2px 3px 3px 3px; + position: relative; + overflow: hidden; + outline: 0; + border-collapse: separate; + } + .dj_ie6 .dijitColorPalette .dijitPaletteTable, + .dj_ie7 .dijitColorPalette .dijitPaletteTable, + .dj_iequirks .dijitColorPalette .dijitPaletteTable { + /* using padding above so that focus border isn't cutoff on moz/webkit, + * but using margin on IE because padding doesn't seem to work + */ + padding: 0; + margin: 2px 3px 3px 3px; + } + + .dijitColorPalette .dijitPaletteCell { + /*
    in the */ + font-size: 1px; + vertical-align: middle; + text-align: center; + background: none; + } + .dijitColorPalette .dijitPaletteImg { + /* Called dijitPaletteImg for back-compat, this actually wraps the color swatch with a border and padding */ + padding: 1px; /* white area between gray border and color swatch */ + border: 1px solid #999; + margin: 2px 1px; + cursor: default; + font-size: 1px; /* prevent from getting bigger just to hold a character */ + } + .dj_gecko .dijitColorPalette .dijitPaletteImg { + padding-bottom: 0; /* workaround rendering glitch on FF, it adds an extra pixel at the bottom */ + } + .dijitColorPalette .dijitColorPaletteSwatch { + /* the actual part where the color is */ + width: 14px; + height: 12px; + } + .dijitPaletteTable td { + padding: 0; + } + .dijitColorPalette .dijitPaletteCell:hover .dijitPaletteImg { + /* hovered color swatch */ + border: 1px solid #000; + } + + .dijitColorPalette .dijitPaletteCell:active .dijitPaletteImg, + .dijitColorPalette .dijitPaletteTable .dijitPaletteCellSelected .dijitPaletteImg { + border: 2px solid #000; + margin: 1px 0; /* reduce margin to compensate for increased border */ + } + + .dj_a11y .dijitColorPalette .dijitPaletteTable, + .dj_a11y .dijitColorPalette .dijitPaletteTable * { + /* table cells are to catch events, but the swatches are in the PaletteImg behind the table */ + background-color: transparent !important; + } + + /* AccordionContainer */ + + .dijitAccordionContainer { + border: 1px solid #b7b7b7; + border-top: 0 !important; + } + .dijitAccordionTitle { + cursor: pointer; + -webkit-tap-highlight-color: transparent; + } + .dijitAccordionTitleSelected { + cursor: default; + } + + /* images off, high-contrast mode styles */ + .dijitAccordionTitle .arrowTextUp, + .dijitAccordionTitle .arrowTextDown { + display: none; + font-size: 0.65em; + font-weight: normal !important; + } + + .dj_a11y .dijitAccordionTitle .arrowTextUp, + .dj_a11y .dijitAccordionTitleSelected .arrowTextDown { + display: inline; + } + + .dj_a11y .dijitAccordionTitleSelected .arrowTextUp { + display: none; + } + + .dijitAccordionChildWrapper { + /* this is the node whose height is adjusted */ + overflow: hidden; + } + + /* Calendar */ + + .dijitCalendarContainer table { + width: auto; /* in case user has specified a width for the TABLE nodes, see #10553 */ + clear: both; /* clear margin created for left/right month arrows; needed on IE10 for CalendarLite */ + } + .dijitCalendarContainer th, + .dijitCalendarContainer td { + padding: 0; + vertical-align: middle; + } + + .dijitCalendarMonthContainer { + text-align: center; + } + .dijitCalendarDecrementArrow { + float: left; + } + .dijitCalendarIncrementArrow { + float: right; + } + + .dijitCalendarYearLabel { + white-space: nowrap; /* make sure previous, current, and next year appear on same row */ + } + + .dijitCalendarNextYear { + margin: 0 0 0 0.55em; + } + + .dijitCalendarPreviousYear { + margin: 0 0.55em 0 0; + } + + .dijitCalendarIncrementControl { + vertical-align: middle; + } + + .dijitCalendarIncrementControl, + .dijitCalendarDateTemplate, + .dijitCalendarMonthLabel, + .dijitCalendarPreviousYear, + .dijitCalendarNextYear { + cursor: pointer; + -webkit-tap-highlight-color: transparent; + } + + .dijitCalendarDisabledDate { + color: gray; + text-decoration: line-through; + cursor: default; + } + + .dijitSpacer { + /* don't display it, but make it affect the width */ + position: relative; + height: 1px; + overflow: hidden; + visibility: hidden; + } + + /* Styling for month drop down list */ + + .dijitCalendarMonthMenu .dijitCalendarMonthLabel { + text-align: center; + } + + /* Menu */ + + .dijitMenu { + border: 1px solid black; + background-color: white; + } + .dijitMenuTable { + border-collapse: collapse; + border-width: 0; + background-color: white; + } + + /* workaround for webkit bug #8427, remove this when it is fixed upstream */ + .dj_webkit .dijitMenuTable td[colspan="2"] { + border-right: hidden; + } + + .dijitMenuItem { + text-align: left; + white-space: nowrap; + padding: 0.1em 0.2em; + cursor: pointer; + -webkit-tap-highlight-color: transparent; + } + + /* +No need to show a focus border since it's obvious from the shading, and there's a .dj_a11y .dijitMenuItemSelected +rule below that handles the high contrast case when there's no shading. +Hiding the focus border also works around webkit bug https://code.google.com/p/chromium/issues/detail?id=125779. +*/ + .dijitMenuItem:focus { + outline: none; + } + + .dijitMenuPassive .dijitMenuItemHover, + .dijitMenuItemSelected { + /* + * dijitMenuItemHover refers to actual mouse over + * dijitMenuItemSelected is used after a menu has been "activated" by + * clicking it, tabbing into it, or being opened from a parent menu, + * and denotes that the menu item has focus or that focus is on a child + * menu + */ + background-color: black; + color: white; + } + + .dijitMenuItemIcon, + .dijitMenuExpand { + background-repeat: no-repeat; + } + + .dijitMenuItemDisabled * { + /* for a disabled menu item, just set it to mostly transparent */ + opacity: 0.5; + cursor: default; + } + .dj_ie .dj_a11y .dijitMenuItemDisabled, + .dj_ie .dj_a11y .dijitMenuItemDisabled *, + .dj_ie .dijitMenuItemDisabled * { + color: gray; + filter: alpha(opacity=35); + } + + .dijitMenuItemLabel { + vertical-align: middle; + } + + .dj_a11y .dijitMenuItemSelected { + border: 1px dotted black !important; /* for 2.0 use outline instead, to prevent jitter */ + } + + .dj_a11y .dijitMenuItemSelected .dijitMenuItemLabel { + border-width: 1px; + border-style: solid; + } + .dj_ie8 .dj_a11y .dijitMenuItemLabel { + position: static; + } + + .dijitMenuExpandA11y { + display: none; + } + .dj_a11y .dijitMenuExpandA11y { + display: inline; + } + + .dijitMenuSeparator td { + border: 0; + padding: 0; + } + + /* separator can be two pixels -- set border of either one to 0 to have only one */ + .dijitMenuSeparatorTop { + height: 50%; + margin: 0; + margin-top: 3px; + font-size: 1px; + } + + .dijitMenuSeparatorBottom { + height: 50%; + margin: 0; + margin-bottom: 3px; + font-size: 1px; + } + + /* CheckedMenuItem and RadioMenuItem */ + .dijitMenuItemIconChar { + display: none; /* don't display except in high contrast mode */ + visibility: hidden; /* for high contrast mode when menuitem is unchecked: leave space for when it is checked */ + } + .dj_a11y .dijitMenuItemIconChar { + display: inline; /* display character in high contrast mode, since icon doesn't show */ + } + .dijitCheckedMenuItemChecked .dijitMenuItemIconChar, + .dijitRadioMenuItemChecked .dijitMenuItemIconChar { + visibility: visible; /* menuitem is checked */ + } + .dj_ie .dj_a11y .dijitMenuBar .dijitMenuItem { + /* so bottom border of MenuBar appears on IE7 in high-contrast mode */ + margin: 0; + } + + /* StackContainer */ + + .dijitStackController .dijitToggleButtonChecked * { + cursor: default; /* because pressing it has no effect */ + } + + /*** +TabContainer + +Main class hierarchy: + +.dijitTabContainer - the whole TabContainer + .dijitTabController / .dijitTabListContainer-top - wrapper for tab buttons, scroll buttons + .dijitTabListWrapper / .dijitTabContainerTopStrip - outer wrapper for tab buttons (normal width) + .nowrapTabStrip / .dijitTabContainerTop-tabs - inner wrapper for tab buttons (50K width) + .dijitTabPaneWrapper - wrapper for content panes, has all borders except the one between content and tabs +***/ + + .dijitTabContainer { + z-index: 0; /* so z-index settings below have no effect outside of the TabContainer */ + overflow: visible; /* prevent off-by-one-pixel errors from hiding bottom border (opposite tab labels) */ + } + .dj_ie6 .dijitTabContainer { + /* workaround IE6 problem when tall content overflows TabContainer, see editor/test_FullScreen.html */ + overflow: hidden; + } + .dijitTabContainerNoLayout { + width: 100%; /* otherwise ScrollingTabController goes to 50K pixels wide */ + } + + .dijitTabContainerBottom-tabs, + .dijitTabContainerTop-tabs, + .dijitTabContainerLeft-tabs, + .dijitTabContainerRight-tabs { + z-index: 1; + overflow: visible !important; /* so tabs can cover up border adjacent to container */ + } + + .dijitTabController { + z-index: 1; + } + .dijitTabContainerBottom-container, + .dijitTabContainerTop-container, + .dijitTabContainerLeft-container, + .dijitTabContainerRight-container { + z-index: 0; + overflow: hidden; + border: 1px solid black; + } + .nowrapTabStrip { + width: 50000px; + display: block; + position: relative; + text-align: left; /* just in case ancestor has non-standard setting */ + z-index: 1; + } + .dijitTabListWrapper { + overflow: hidden; + z-index: 1; + } + + .dj_a11y .tabStripButton img { + /* hide the icons (or rather the empty space where they normally appear) because text will appear instead */ + display: none; + } + + .dijitTabContainerTop-tabs { + border-bottom: 1px solid black; + } + .dijitTabContainerTop-container { + border-top: 0; + } + + .dijitTabContainerLeft-tabs { + border-right: 1px solid black; + float: left; /* needed for IE7 RTL mode */ + } + .dijitTabContainerLeft-container { + border-left: 0; + } + + .dijitTabContainerBottom-tabs { + border-top: 1px solid black; + } + .dijitTabContainerBottom-container { + border-bottom: 0; + } + + .dijitTabContainerRight-tabs { + border-left: 1px solid black; + float: left; /* needed for IE7 RTL mode */ + } + .dijitTabContainerRight-container { + border-right: 0; + } + + div.dijitTabDisabled, + .dj_ie div.dijitTabDisabled { + cursor: auto; + } + + .dijitTab { + position: relative; + cursor: pointer; + -webkit-tap-highlight-color: transparent; + white-space: nowrap; + z-index: 3; + } + .dijitTab * { + /* make tab icons and close icon line up w/text */ + vertical-align: middle; + } + .dijitTabChecked { + cursor: default; /* because clicking will have no effect */ + } + + .dijitTabContainerTop-tabs .dijitTab { + top: 1px; /* to overlap border on .dijitTabContainerTop-tabs */ + } + .dijitTabContainerBottom-tabs .dijitTab { + top: -1px; /* to overlap border on .dijitTabContainerBottom-tabs */ + } + .dijitTabContainerLeft-tabs .dijitTab { + left: 1px; /* to overlap border on .dijitTabContainerLeft-tabs */ + } + .dijitTabContainerRight-tabs .dijitTab { + left: -1px; /* to overlap border on .dijitTabContainerRight-tabs */ + } + + .dijitTabContainerTop-tabs .dijitTab, + .dijitTabContainerBottom-tabs .dijitTab { + /* Inline-block */ + display: inline-block; /* webkit and FF3 */ + } + + .tabStripButton { + z-index: 12; + } + + .dijitTabButtonDisabled .tabStripButton { + display: none; + } + + .dijitTabCloseButton { + margin-left: 1em; + } + + .dijitTabCloseText { + display: none; + } + + .dijitTab .tabLabel { + /* make sure tabs w/close button and w/out close button are same height, even w/small (<15px) font. + * assumes <=15px height for close button icon. + */ + min-height: 15px; + display: inline-block; + } + .dijitNoIcon { + /* applied to / node when there is no icon specified */ + display: none; + } + .dj_ie6 .dijitTab .dijitNoIcon { + /* because min-height (on .tabLabel, above) doesn't work on IE6 */ + display: inline; + height: 15px; + width: 1px; + } + + /* images off, high-contrast mode styles */ + + .dj_a11y .dijitTabCloseButton { + background-image: none !important; + width: auto !important; + height: auto !important; + } + + .dj_a11y .dijitTabCloseText { + display: inline; + } + + .dijitTabPane, + .dijitStackContainer-child, + .dijitAccordionContainer-child { + /* children of TabContainer, StackContainer, and AccordionContainer shouldn't have borders + * b/c a border is already there from the TabContainer/StackContainer/AccordionContainer itself. + */ + border: none !important; + } + + /* InlineEditBox */ + .dijitInlineEditBoxDisplayMode { + border: 1px solid transparent; /* so keyline (border) on hover can appear without screen jump */ + cursor: text; + } + + .dj_a11y .dijitInlineEditBoxDisplayMode, + .dj_ie6 .dijitInlineEditBoxDisplayMode { + /* except that IE6 doesn't support transparent borders, nor does high contrast mode */ + border: none; + } + + .dijitInlineEditBoxDisplayModeHover, + .dj_a11y .dijitInlineEditBoxDisplayModeHover, + .dj_ie6 .dijitInlineEditBoxDisplayModeHover { + /* An InlineEditBox in view mode (click this to edit the text) */ + background-color: #e2ebf2; + border: solid 1px black; + } + + .dijitInlineEditBoxDisplayModeDisabled { + cursor: default; + } + + /* Tree */ + .dijitTree { + overflow: auto; /* for scrollbars when Tree has a height setting, and to prevent wrapping around float elements, see #11491 */ + -webkit-tap-highlight-color: transparent; + } + + .dijitTreeContainer { + float: left; /* for correct highlighting during horizontal scroll, see #16132 */ + } + + .dijitTreeIndent { + /* amount to indent each tree node (relative to parent node) */ + width: 19px; + } + + .dijitTreeRow, + .dijitTreeContent { + white-space: nowrap; + } + + .dj_ie .dijitTreeLabel:focus { + /* workaround IE9 behavior where down arrowing through TreeNodes doesn't show focus outline */ + outline: 1px dotted black; + } + + .dijitTreeRow img { + /* make the expando and folder icons line up with the label */ + vertical-align: middle; + } + + .dijitTreeContent { + cursor: default; + } + + .dijitExpandoText { + display: none; + } + + .dj_a11y .dijitExpandoText { + display: inline; + padding-left: 10px; + padding-right: 10px; + font-family: monospace; + border-style: solid; + border-width: thin; + cursor: pointer; + } + + .dijitTreeLabel { + margin: 0 4px; + } + + /* Dialog */ + + .dijitDialog { + position: absolute; + z-index: 999; + overflow: hidden; /* override overflow: auto; from ContentPane to make dragging smoother */ + } + + .dijitDialogTitleBar { + cursor: move; + } + .dijitDialogFixed .dijitDialogTitleBar { + cursor: default; + } + .dijitDialogCloseIcon { + cursor: pointer; + -webkit-tap-highlight-color: transparent; + } + .dijitDialogPaneContent { + -webkit-overflow-scrolling: touch; + } + .dijitDialogUnderlayWrapper { + position: absolute; + left: 0; + top: 0; + z-index: 998; + display: none; + background: transparent !important; + } + + .dijitDialogUnderlay { + background: #eee; + opacity: 0.5; + } + + .dj_ie .dijitDialogUnderlay { + filter: alpha(opacity=50); + } + + /* images off, high-contrast mode styles */ + .dj_a11y .dijitSpinnerButtonContainer, + .dj_a11y .dijitDialog { + opacity: 1 !important; + background-color: white !important; + } + + .dijitDialog .closeText { + display: none; + /* for the onhover border in high contrast on IE: */ + position: absolute; + } + + .dj_a11y .dijitDialog .closeText { + display: inline; + } + + /* Slider */ + + .dijitSliderMoveable { + z-index: 99; + position: absolute !important; + display: block; + vertical-align: middle; + } + + .dijitSliderMoveableH { + right: 0; + } + .dijitSliderMoveableV { + right: 50%; + } + + .dj_a11y div.dijitSliderImageHandle, + .dijitSliderImageHandle { + margin: 0; + padding: 0; + position: relative !important; + border: 8px solid gray; + width: 0; + height: 0; + cursor: pointer; + -webkit-tap-highlight-color: transparent; + } + .dj_iequirks .dj_a11y .dijitSliderImageHandle { + font-size: 0; + } + .dj_ie7 .dijitSliderImageHandle { + overflow: hidden; /* IE7 workaround to make slider handle VISIBLE in non-a11y mode */ + } + .dj_ie7 .dj_a11y .dijitSliderImageHandle { + overflow: visible; /* IE7 workaround to make slider handle VISIBLE in a11y mode */ + } + .dj_a11y .dijitSliderFocused .dijitSliderImageHandle { + border: 4px solid #000; + height: 8px; + width: 8px; + } + + .dijitSliderImageHandleV { + top: -8px; + right: -50%; + } + + .dijitSliderImageHandleH { + left: 50%; + top: -5px; + vertical-align: top; + } + + .dijitSliderBar { + border-style: solid; + border-color: black; + cursor: pointer; + -webkit-tap-highlight-color: transparent; + } + + .dijitSliderBarContainerV { + position: relative; + height: 100%; + z-index: 1; + } + + .dijitSliderBarContainerH { + position: relative; + z-index: 1; + } + + .dijitSliderBarH { + height: 4px; + border-width: 1px 0; + } + + .dijitSliderBarV { + width: 4px; + border-width: 0 1px; + } + + .dijitSliderProgressBar { + background-color: red; + z-index: 1; + } + + .dijitSliderProgressBarV { + position: static !important; + height: 0; + vertical-align: top; + text-align: left; + } + + .dijitSliderProgressBarH { + position: absolute !important; + width: 0; + vertical-align: middle; + overflow: visible; + } + + .dijitSliderRemainingBar { + overflow: hidden; + background-color: transparent; + z-index: 1; + } + + .dijitSliderRemainingBarV { + height: 100%; + text-align: left; + } + + .dijitSliderRemainingBarH { + width: 100% !important; + } + + /* the slider bumper is the space consumed by the slider handle when it hangs over an edge */ + .dijitSliderBumper { + overflow: hidden; + z-index: 1; + } + + .dijitSliderBumperV { + width: 4px; + height: 8px; + border-width: 0 1px; + } + + .dijitSliderBumperH { + width: 8px; + height: 4px; + border-width: 1px 0; + } + + .dijitSliderBottomBumper, + .dijitSliderLeftBumper { + background-color: red; + } + + .dijitSliderTopBumper, + .dijitSliderRightBumper { + background-color: transparent; + } + + .dijitSliderDecoration { + text-align: center; + } + + .dijitSliderDecorationC, + .dijitSliderDecorationV { + position: relative; /* needed for IE+quirks+RTL+vertical (rendering bug) but add everywhere for custom styling consistency but this messes up IE horizontal sliders */ + } + + .dijitSliderDecorationH { + width: 100%; + } + + .dijitSliderDecorationV { + height: 100%; + white-space: nowrap; + } + + .dijitSliderButton { + font-family: monospace; + margin: 0; + padding: 0; + display: block; + } + + .dj_a11y .dijitSliderButtonInner { + visibility: visible !important; + } + + .dijitSliderButtonContainer { + text-align: center; + height: 0; /* ??? */ + } + .dijitSliderButtonContainer * { + cursor: pointer; + -webkit-tap-highlight-color: transparent; + } + + .dijitSlider .dijitButtonNode { + padding: 0; + display: block; + } + + .dijitRuleContainer { + position: relative; + overflow: visible; + } + + .dijitRuleContainerV { + height: 100%; + line-height: 0; + float: left; + text-align: left; + } + + .dj_opera .dijitRuleContainerV { + line-height: 2%; + } + + .dj_ie .dijitRuleContainerV { + line-height: normal; + } + + .dj_gecko .dijitRuleContainerV { + margin: 0 0 1px 0; /* mozilla bug workaround for float:left,height:100% block elements */ + } + + .dijitRuleMark { + position: absolute; + border: 1px solid black; + line-height: 0; + height: 100%; + } + + .dijitRuleMarkH { + width: 0; + border-top-width: 0 !important; + border-bottom-width: 0 !important; + border-left-width: 0 !important; + } + + .dijitRuleLabelContainer { + position: absolute; + } + + .dijitRuleLabelContainerH { + text-align: center; + display: inline-block; + } + + .dijitRuleLabelH { + position: relative; + left: -50%; + } + + .dijitRuleLabelV { + /* so that long labels don't overflow to multiple rows, or overwrite slider itself */ + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + } + + .dijitRuleMarkV { + height: 0; + border-right-width: 0 !important; + border-bottom-width: 0 !important; + border-left-width: 0 !important; + width: 100%; + left: 0; + } + + .dj_ie .dijitRuleLabelContainerV { + margin-top: -0.55em; + } + + .dj_a11y .dijitSliderReadOnly, + .dj_a11y .dijitSliderDisabled { + opacity: 0.6; + } + .dj_ie .dj_a11y .dijitSliderReadOnly .dijitSliderBar, + .dj_ie .dj_a11y .dijitSliderDisabled .dijitSliderBar { + filter: alpha(opacity=40); + } + + /* + and - Slider buttons: override theme settings to display icons */ + .dj_a11y .dijitSlider .dijitSliderButtonContainer div { + font-family: monospace; /* otherwise hyphen is larger and more vertically centered */ + font-size: 1em; + line-height: 1em; + height: auto; + width: auto; + margin: 0 4px; + } + + /* Icon-only buttons (often in toolbars) still display the text in high-contrast mode */ + .dj_a11y .dijitButtonContents .dijitButtonText, + .dj_a11y .dijitTab .tabLabel { + display: inline !important; + } + .dj_a11y .dijitSelect .dijitButtonText { + display: inline-block !important; + } + + /* TextArea, SimpleTextArea */ + .dijitTextArea { + width: 100%; + overflow-y: auto; /* w/out this IE's SimpleTextArea goes to overflow: scroll */ + } + .dijitTextArea[cols] { + width: auto; /* SimpleTextArea cols */ + } + .dj_ie .dijitTextAreaCols { + width: auto; + } + + .dijitExpandingTextArea { + /* for auto exanding textarea (called Textarea currently, rename for 2.0) don't want to display the grip to resize */ + resize: none; + } + + /* Toolbar + * Note that other toolbar rules (for objects in toolbars) are scattered throughout this file. + */ + + .dijitToolbarSeparator { + height: 18px; + width: 5px; + padding: 0 1px; + margin: 0; + } + + /* Editor */ + .dijitIEFixedToolbar { + position: absolute; + /* top:0; */ + top: expression(eval((document.documentElement||document.body) .scrollTop)); + } + + .dijitEditor { + display: block; /* prevents glitch on FF with InlineEditBox, see #8404 */ + } + + .dijitEditorDisabled, + .dijitEditorReadOnly { + color: gray; + } + + /* TimePicker */ + + .dijitTimePicker { + background-color: white; + } + .dijitTimePickerItem { + cursor: pointer; + -webkit-tap-highlight-color: transparent; + } + .dijitTimePickerItemHover { + background-color: gray; + color: white; + } + .dijitTimePickerItemSelected { + font-weight: bold; + color: #333; + background-color: #b7cdee; + } + .dijitTimePickerItemDisabled { + color: gray; + text-decoration: line-through; + } + + .dijitTimePickerItemInner { + text-align: center; + border: 0; + padding: 2px 8px 2px 8px; + } + + .dijitTimePickerTick, + .dijitTimePickerMarker { + border-bottom: 1px solid gray; + } + + .dijitTimePicker .dijitDownArrowButton { + border-top: none !important; + } + + .dijitTimePickerTick { + color: #ccc; + } + + .dijitTimePickerMarker { + color: black; + background-color: #ccc; + } + + .dj_a11y .dijitTimePickerItemSelected .dijitTimePickerItemInner { + border: solid 4px black; + } + .dj_a11y .dijitTimePickerItemHover .dijitTimePickerItemInner { + border: dashed 4px black; + } + + .dijitToggleButtonIconChar { + /* character (instead of icon) to show that ToggleButton is checked */ + display: none !important; + } + .dj_a11y .dijitToggleButton .dijitToggleButtonIconChar { + display: inline !important; + visibility: hidden; + } + .dj_ie6 .dijitToggleButtonIconChar, + .dj_ie6 .tabStripButton .dijitButtonText { + font-family: "Arial Unicode MS"; /* otherwise the a11y character (checkmark, arrow, etc.) appears as a box */ + } + .dj_a11y .dijitToggleButtonChecked .dijitToggleButtonIconChar { + display: inline !important; /* In high contrast mode, display the check symbol */ + visibility: visible !important; + } + + .dijitArrowButtonChar { + display: none !important; + } + .dj_a11y .dijitArrowButtonChar { + display: inline !important; + } + + .dj_a11y .dijitDropDownButton .dijitArrowButtonInner, + .dj_a11y .dijitComboButton .dijitArrowButtonInner { + display: none !important; + } + + /* Select */ + .dj_a11y .dijitSelect { + border-collapse: separate !important; + border-width: 1px; + border-style: solid; + } + .dj_ie .dijitSelect { + vertical-align: middle; /* Set this back for what we hack in dijit inline */ + } + .dj_ie6 .dijitSelect .dijitValidationContainer, + .dj_ie8 .dijitSelect .dijitButtonText { + vertical-align: top; + } + .dj_ie6 .dijitTextBox .dijitInputContainer, + .dj_iequirks .dijitTextBox .dijitInputContainer, + .dj_ie6 .dijitTextBox .dijitArrowButtonInner, + .dj_ie6 .dijitSpinner .dijitSpinnerButtonInner, + .dijitSelect .dijitSelectLabel { + vertical-align: baseline; + } + + .dijitNumberTextBox { + text-align: left; + direction: ltr; + } + + .dijitNumberTextBox .dijitInputInner { + text-align: inherit; /* input */ + } + + .dijitNumberTextBox input.dijitInputInner, + .dijitCurrencyTextBox input.dijitInputInner, + .dijitSpinner input.dijitInputInner { + text-align: right; + } + + .dj_ie8 .dijitNumberTextBox input.dijitInputInner, + .dj_ie9 .dijitNumberTextBox input.dijitInputInner, + .dj_ie8 .dijitCurrencyTextBox input.dijitInputInner, + .dj_ie9 .dijitCurrencyTextBox input.dijitInputInner, + .dj_ie8 .dijitSpinner input.dijitInputInner, + .dj_ie9 .dijitSpinner input.dijitInputInner { + /* workaround bug where caret invisible in empty textboxes */ + padding-right: 1px !important; + } + + .dijitToolbar .dijitSelect { + margin: 0; + } + .dj_webkit .dijitToolbar .dijitSelect { + padding-left: 0.3em; + } + .dijitSelect .dijitButtonContents { + padding: 0; + white-space: nowrap; + text-align: left; + border-style: none solid none none; + border-width: 1px; + } + .dijitSelectFixedWidth .dijitButtonContents { + width: 100%; + } + + .dijitSelectMenu .dijitMenuItemIcon { + /* avoid blank area in left side of menu (since we have no icons) */ + display: none; + } + .dj_ie6 .dijitSelectMenu .dijitMenuItemLabel, + .dj_ie7 .dijitSelectMenu .dijitMenuItemLabel { + /* Set back to static due to bug in ie6/ie7 - See Bug #9651 */ + position: static; + } + + /* Fix the baseline of our label (for multi-size font elements) */ + .dijitSelectLabel * { + vertical-align: baseline; + } + + /* Styling for the currently-selected option (rich text can mess this up) */ + .dijitSelectSelectedOption * { + font-weight: bold; + } + + /* Fix the styling of the dropdown menu to be more combobox-like */ + .dijitSelectMenu { + border-width: 1px; + } + + /* Used in cases, such as FullScreen plugin, when we need to force stuff to static positioning. */ + .dijitForceStatic { + position: static !important; + } + + /**** Disabled cursor *****/ + .dijitReadOnly *, + .dijitDisabled *, + .dijitReadOnly, + .dijitDisabled { + /* a region the user would be able to click on, but it's disabled */ + cursor: default; + } + + /* Drag and Drop */ + .dojoDndItem { + padding: 2px; /* will be replaced by border during drag over (dojoDndItemBefore, dojoDndItemAfter) */ + + /* Prevent magnifying-glass text selection icon to appear on mobile webkit as it causes a touchout event */ + -webkit-touch-callout: none; + -webkit-user-select: none; /* Disable selection/Copy of UIWebView */ + } + .dojoDndHorizontal .dojoDndItem { + /* make contents of horizontal container be side by side, rather than vertical */ + display: inline-block; + } + + .dojoDndItemBefore, + .dojoDndItemAfter { + border: 0px solid #369; + } + .dojoDndItemBefore { + border-width: 2px 0 0 0; + padding: 0 2px 2px 2px; + } + .dojoDndItemAfter { + border-width: 0 0 2px 0; + padding: 2px 2px 0 2px; + } + .dojoDndHorizontal .dojoDndItemBefore { + border-width: 0 0 0 2px; + padding: 2px 2px 2px 0; + } + .dojoDndHorizontal .dojoDndItemAfter { + border-width: 0 2px 0 0; + padding: 2px 0 2px 2px; + } + + .dojoDndItemOver { + cursor: pointer; + } + .dj_gecko .dijitArrowButtonInner input, + .dj_gecko input.dijitArrowButtonInner { + -moz-user-focus: ignore; + } + .dijitFocused .dijitMenuItemShortcutKey { + text-decoration: underline; + } + + /* Dijit custom styling */ + .dijitBorderContainer { + height: 350px; + } + .dijitTooltipContainer { + background: #fff; + border: 1px solid #ccc; + border-radius: 6px; + } + .dijitContentPane { + box-sizing: content-box; + overflow: auto !important; + /* Widgets like the data grid pass their scroll + offset to the parent if there is not enough room to display a scroll bar + in the widget itself, so do not hide the overflow. */ + } + + /* Global Bootstrap changes */ + + /* Client defaults and helpers */ + .mx-dataview-content, + .mx-scrollcontainer-wrapper:not(.mx-scrollcontainer-nested), + .mx-tabcontainer-content, + .mx-grid-content { + -webkit-overflow-scrolling: touch; + } + html, + body, + #content { + height: 100%; + } + #content > .mx-page { + width: 100%; + min-height: 100%; + } + + .mx-left-aligned { + text-align: left; + } + .mx-right-aligned { + text-align: right; + } + .mx-center-aligned { + text-align: center; + } + + .mx-table { + width: 100%; + } + .mx-table th, + .mx-table td { + padding: 8px; + vertical-align: top; + } + .mx-table th.nopadding, + .mx-table td.nopadding { + padding: 0; + } + + .mx-offscreen { + /* When position relative is not set IE doesn't properly render when this class is removed + * with the effect that elements are not displayed or are not clickable. + */ + position: relative; + height: 0; + overflow: hidden; + } + + .mx-ie-event-shield { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: -1; + } + + .mx-swipe-navigation-progress { + position: absolute; + height: 54px; + width: 54px; + top: calc(50% - 27px); + left: calc(50% - 27px); + background: url(resources/swipe-progress.gif); + } + + /* Bacause we use checkboxes without labels, align them with other widgets. */ + input[type="checkbox"] { + margin: 9px 0; + } + + .mx-checkbox input[type="checkbox"] { + margin-left: 0; + margin-right: 8px; + position: static; + } + + .form-vertical .form-group.mx-checkbox input[type="checkbox"] { + display: block; + } + + .form-vertical .form-group.mx-checkbox.label-after input[type="checkbox"] { + display: inline-block; + } + + .form-horizontal .form-group.no-columns { + padding-left: 15px; + padding-right: 15px; + } + + .mx-radiobuttons.inline .radio { + display: inline-block; + margin-right: 20px; + } + + .mx-radiobuttons .radio input[type="radio"] { + /* Reset bootstrap rules */ + position: static; + margin-right: 8px; + margin-left: 0; + } + + .mx-radiobuttons .radio label { + /* Reset bootstrap rules */ + padding-left: 0; + } + + .alert { + margin-top: 8px; + margin-bottom: 10px; + white-space: pre-line; + } + + //.mx-compound-control { + // display: flex; + //} + + //.mx-compound-control button { + // margin-left: 5px; + //} + // + //[dir="rtl"] .mx-compound-control button { + // margin-left: 0; + // margin-right: 5px; + //} + + .mx-tooltip { + margin: 10px; + } + .mx-tooltip-content { + width: 400px; + overflow-y: auto; + } + .mx-tooltip-prepare { + height: 24px; + padding: 8px; + background: transparent url(resources/ttp.gif) no-repeat scroll center center; + } + .mx-tooltip-content .table th, + .mx-tooltip-content .table td { + padding: 2px 8px; + } + + .mx-tabcontainer-pane { + height: 100%; + } + .mx-tabcontainer-content.loading { + min-height: 48px; + background: url(resources/tabcontainer-loading.gif) no-repeat center center; + background-size: 32px 32px; + } + .mx-tabcontainer-tabs { + margin-bottom: 8px; + } + .mx-tabcontainer-tabs li { + position: relative; + } + .mx-tabcontainer-indicator { + position: absolute; + background: #f2dede; + border-radius: 8px; + color: #b94a48; + top: 0px; + right: -5px; + width: 16px; + height: 16px; + line-height: 16px; + text-align: center; + vertical-align: middle; + font-size: 10px; + font-weight: 600; + z-index: 1; /* indicator should not hide behind other tab */ + } + + /* base structure */ + .mx-grid { + padding: 8px; + overflow: hidden; /* to prevent any margin from escaping grid and foobaring our size calculations */ + } + .mx-grid-controlbar, + .mx-grid-searchbar { + display: flex; + justify-content: space-between; + flex-wrap: wrap; + } + .mx-grid-controlbar .mx-button, + .mx-grid-search-controls .mx-button { + margin-bottom: 8px; + } + + .mx-grid-search-controls .mx-button + .mx-button, + .mx-grid-controlbar .mx-button + .mx-button { + margin-left: 0.3em; + } + + [dir="rtl"] .mx-grid-search-controls .mx-button + .mx-button, + [dir="rtl"] .mx-grid-controlbar .mx-button + .mx-button { + margin-left: 0; + margin-right: 0.3em; + } + + .mx-grid-pagingbar, + .mx-grid-search-controls { + display: flex; + white-space: nowrap; + align-items: baseline; + margin-left: auto; + } + + .mx-grid-toolbar, + .mx-grid-search-inputs { + margin-right: 5px; + flex: 1; + } + + [dir="rtl"] .mx-grid-toolbar, + [dir="rtl"] .mx-grid-search-inputs { + margin-left: 5px; + margin-right: 0px; + } + [dir="rtl"] .mx-grid-pagingbar, + [dir="rtl"] .mx-grid-search-controls { + margin-left: 0px; + margin-right: auto; + } + + .mx-grid-paging-status { + padding: 0 8px 5px; + } + + /* search fields */ + .mx-grid-search-item { + display: inline-block; + vertical-align: top; + margin-bottom: 8px; + } + .mx-grid-search-label { + width: 110px; + padding: 0 5px; + text-align: right; + display: inline-block; + vertical-align: top; + overflow: hidden; + } + [dir="rtl"] .mx-grid-search-label { + text-align: left; + } + .mx-grid-search-input { + width: 150px; + padding: 0 5px; + display: inline-block; + vertical-align: top; + } + .mx-grid-search-message { + flex-basis: 100%; + } + + /* widget combinations */ + .mx-dataview .mx-grid { + border: 1px solid #ddd; + border-radius: 3px; + } + + .mx-calendar { + z-index: 1000; + } + + .mx-calendar-month-dropdown-options { + position: absolute; + } + + .mx-calendar, + .mx-calendar-month-dropdown { + user-select: none; + } + + .mx-calendar-month-current { + display: inline-block; + } + + .mx-calendar-month-spacer { + position: relative; + height: 0px; + overflow: hidden; + visibility: hidden; + } + + .mx-calendar, + .mx-calendar-month-dropdown-options { + border: 1px solid lightgrey; + background-color: white; + } + + .mx-datagrid tr { + cursor: pointer; + } + + .mx-datagrid tr.mx-datagrid-row-empty { + cursor: default; + } + + .mx-datagrid table { + width: 100%; + max-width: 100%; + table-layout: fixed; + margin-bottom: 0; + } + + .mx-datagrid th, + .mx-datagrid td { + padding: 8px; + line-height: 1.42857143; + vertical-align: bottom; + border: 1px solid #ddd; + } + + /* head */ + .mx-datagrid th { + position: relative; /* Required for the positioning of the column resizers */ + border-bottom-width: 2px; + } + .mx-datagrid-head-caption { + overflow: hidden; + white-space: nowrap; + } + .mx-datagrid-sort-icon { + float: right; + padding-left: 5px; + } + [dir="rtl"] .mx-datagrid-sort-icon { + float: left; + padding: 0 5px 0 0; + } + .mx-datagrid-column-resizer { + position: absolute; + top: 0; + left: -6px; + width: 10px; + height: 100%; + cursor: col-resize; + } + [dir="rtl"] .mx-datagrid-column-resizer { + left: auto; + right: -6px; + } + + /* body */ + .mx-datagrid tbody tr:first-child td { + border-top: none; + } + //.mx-datagrid tbody tr:nth-child(2n+1) td { + // background-color: #f9f9f9; + //} + .mx-datagrid tbody .selected td { + background-color: #eee; + } + .mx-datagrid-data-wrapper { + overflow: hidden; + white-space: nowrap; + } + .mx-datagrid tbody img { + max-width: 16px; + max-height: 16px; + } + .mx-datagrid input, + .mx-datagrid select, + .mx-datagrid textarea { + cursor: auto; + } + + /* foot */ + .mx-datagrid tfoot th, + .mx-datagrid tfoot td { + padding: 3px 8px; + } + .mx-datagrid tfoot th { + border-top: 1px solid #ddd; + } + .mx-datagrid.mx-content-loading .mx-content-loader { + display: inline-block; + width: 90%; + animation: placeholderGradient 1s linear infinite; + border-radius: 4px; + background: #f5f5f5; + background: repeating-linear-gradient(to right, #f5f5f5 0%, #f5f5f5 5%, #f9f9f9 50%, #f5f5f5 95%, #f5f5f5 100%); + background-size: 200px 100px; + animation-fill-mode: both; + } + @keyframes placeholderGradient { + 0% { + background-position: 100px 0; + } + 100% { + background-position: -100px 0; + } + } + + .mx-datagrid-table-resizing th, + .mx-datagrid-table-resizing td { + cursor: col-resize !important; + } + + .mx-templategrid-content-wrapper { + display: table; + width: 100%; + border-collapse: collapse; + box-sizing: border-box; + } + .mx-templategrid-row { + display: table-row; + } + .mx-templategrid-item { + padding: 5px; + display: table-cell; + border: 1px solid #ddd; + cursor: pointer; + box-sizing: border-box; + } + .mx-templategrid-empty { + display: table-cell; + } + .mx-templategrid-item.selected { + background-color: #f5f5f5; + } + .mx-templategrid-item .mx-table th, + .mx-templategrid-item .mx-table td { + padding: 2px 8px; + } + + .mx-scrollcontainer-horizontal { + width: 100%; + display: table; + table-layout: fixed; + } + .mx-scrollcontainer-horizontal > div { + display: table-cell; + vertical-align: top; + } + //.mx-scrollcontainer-wrapper { + // padding: 10px; + //} + .mx-scrollcontainer-nested { + padding: 0; + } + .mx-scrollcontainer-fixed > .mx-scrollcontainer-middle > .mx-scrollcontainer-wrapper, + .mx-scrollcontainer-fixed > .mx-scrollcontainer-left > .mx-scrollcontainer-wrapper, + .mx-scrollcontainer-fixed > .mx-scrollcontainer-center > .mx-scrollcontainer-wrapper, + .mx-scrollcontainer-fixed > .mx-scrollcontainer-right > .mx-scrollcontainer-wrapper { + overflow: auto; + } + + .mx-scrollcontainer-move-in { + transition: left 250ms ease-out; + } + .mx-scrollcontainer-move-out { + transition: left 250ms ease-in; + } + .mx-scrollcontainer-shrink .mx-scrollcontainer-toggleable { + transition-property: width; + } + + .mx-scrollcontainer-toggleable { + background-color: #fff; + } + //.mx-scrollcontainer-slide > .mx-scrollcontainer-toggleable > .mx-scrollcontainer-wrapper { + // position: relative; + // z-index: 1; + // background-color: inherit; + //} + .mx-scrollcontainer-push { + position: relative; + } + .mx-scrollcontainer-shrink > .mx-scrollcontainer-toggleable { + overflow: hidden; + } + .mx-scrollcontainer-push.mx-scrollcontainer-open > div, + .mx-scrollcontainer-slide.mx-scrollcontainer-open > div { + pointer-events: none; + } + .mx-scrollcontainer-push.mx-scrollcontainer-open > .mx-scrollcontainer-toggleable, + .mx-scrollcontainer-slide.mx-scrollcontainer-open > .mx-scrollcontainer-toggleable { + pointer-events: auto; + } + + .mx-navbar-item img, + .mx-navbar-subitem img { + height: 16px; + } + + .mx-navigationtree .navbar-inner { + padding-left: 0; + padding-right: 0; + } + .mx-navigationtree ul { + list-style: none; + } + //.mx-navigationtree ul li { + // border-bottom: 1px solid #dfe6ea; + //} + //.mx-navigationtree li:last-child { + // border-style: none; + //} + .mx-navigationtree a { + display: block; + padding: 5px 10px; + color: #777; + text-shadow: 0 1px 0 #fff; + text-decoration: none; + } + .mx-navigationtree a.active { + color: #fff; + text-shadow: none; + background: #3498db; + border-radius: 3px; + } + .mx-navigationtree .mx-navigationtree-collapsed ul { + display: none; + } + .mx-navigationtree ul { + margin: 0; + padding: 0; + } + //.mx-navigationtree ul li { + // padding: 5px 0; + //} + .mx-navigationtree ul li ul { + padding: 0; + margin-left: 10px; + } + .mx-navigationtree ul li ul li { + margin-left: 8px; + padding: 5px 0; + } + [dir="rtl"] .mx-navigationtree ul li ul li { + margin-left: auto; + margin-right: 8px; + } + .mx-navigationtree ul li ul li ul li { + font-size: 10px; + padding-top: 3px; + padding-bottom: 3px; + } + .mx-navigationtree ul li ul li ul li img { + vertical-align: top; + } + + .mx-link img, + .mx-button img { + height: 16px; + } + .mx-link { + padding: 6px 12px; + display: inline-block; + cursor: pointer; + } + + .mx-groupbox { + margin-bottom: 10px; + } + .mx-groupbox-header { + margin: 0; + padding: 10px 15px; + color: #eee; + background: #333; + font-size: inherit; + line-height: inherit; + border-radius: 4px 4px 0 0; + } + .mx-groupbox-collapsible > .mx-groupbox-header { + cursor: pointer; + } + .mx-groupbox.collapsed > .mx-groupbox-header { + border-radius: 4px; + } + .mx-groupbox-body { + padding: 8px; + border: 1px solid #ddd; + border-radius: 4px; + } + .mx-groupbox.collapsed > .mx-groupbox-body { + display: none; + } + .mx-groupbox-header + .mx-groupbox-body { + border-top: none; + border-radius: 0 0 4px 4px; + } + .mx-groupbox-collapse-icon { + float: right; + } + [dir="rtl"] .mx-groupbox-collapse-icon { + float: left; + } + + .mx-dataview { + position: relative; + } + .mx-dataview-controls { + padding: 19px 20px 12px; + background-color: #f5f5f5; + border-top: 1px solid #eee; + } + + .mx-dataview-controls .mx-button { + margin-bottom: 8px; + } + + .mx-dataview-controls .mx-button + .mx-button { + margin-left: 0.3em; + } + + .mx-dataview-message { + background: #fff; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + } + .mx-dataview-message > div { + display: table; + width: 100%; + height: 100%; + } + .mx-dataview-message > div > p { + display: table-cell; + text-align: center; + vertical-align: middle; + } + + /* Top-level data view in window is a special case, handle it as such. */ + .mx-window-view .mx-window-body { + padding: 0; + } + .mx-window-view .mx-window-body > .mx-dataview > .mx-dataview-content, + .mx-window-view .mx-window-body > .mx-placeholder > .mx-dataview > .mx-dataview-content { + padding: 15px; + } + .mx-window-view .mx-window-body > .mx-dataview > .mx-dataview-controls, + .mx-window-view .mx-window-body > .mx-placeholder > .mx-dataview > .mx-dataview-controls { + border-radius: 0px 0px 6px 6px; + } + + .mx-dialog { + position: fixed; + left: auto; + right: auto; + padding: 0; + width: 500px; + /* If the margin is set to auto, IE9 reports the calculated value of the + * margin as the actual value. Other browsers will just report 0. Eliminate + * this difference by setting margin to 0 for every browser. */ + margin: 0; + } + .mx-dialog-header { + cursor: move; + } + .mx-dialog-body { + overflow: auto; + } + + .mx-window { + position: fixed; + left: auto; + right: auto; + padding: 0; + width: 600px; + /* If the margin is set to auto, IE9 reports the calculated value of the + * margin as the actual value. Other browsers will just report 0. Eliminate + * this difference by setting margin to 0 for every browser. */ + margin: 0; + } + .mx-window-content { + height: 100%; + overflow: hidden; + } + .mx-window-active .mx-window-header { + background-color: #f5f5f5; + border-radius: 6px 6px 0 0; + } + .mx-window-header { + cursor: move; + } + .mx-window-body { + overflow: auto; + } + + .mx-dropdown-list * { + cursor: pointer; + } + .mx-dropdown-list img { + width: 35px; + vertical-align: middle; + margin-right: 10px; + } + [dir="rtl"] .mx-dropdown-list img { + margin-left: 10px; + margin-right: auto; + } + + .mx-dropdown-list { + padding: 0; + list-style: none; + } + .mx-dropdown-list > li { + padding: 5px 10px 10px; + border: 1px #ddd; + border-style: solid solid none; + background-color: #fff; + } + .mx-dropdown-list > li:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; + } + .mx-dropdown-list > li:last-child { + border-bottom-style: solid; + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + } + .mx-dropdown-list-striped > li:nth-child(2n + 1) { + background: #f9f9f9; + } + .mx-dropdown-list > li:hover { + background: #f5f5f5; + } + + .mx-header { + position: relative; + padding: 9px; + background: #333; + text-align: center; + } + .mx-header-center { + display: inline-block; + color: #eee; + line-height: 30px; /* height of buttons */ + } + body[dir="ltr"] .mx-header-left, + body[dir="rtl"] .mx-header-right { + position: absolute; + top: 9px; + left: 9px; + } + body[dir="ltr"] .mx-header-right, + body[dir="rtl"] .mx-header-left { + position: absolute; + top: 9px; + right: 9px; + } + + .mx-title { + margin-bottom: 0px; + margin-top: 0px; + } + + .mx-listview { + padding: 8px; + } + .mx-listview > ul { + padding: 0px; + list-style: none; + } + // .mx-listview > ul > li { + // padding: 5px 10px 10px; + // border: 1px #ddd; + // border-style: solid solid none; + // background-color: #fff; + // outline: none; + // } + // .mx-listview > ul > li:first-child { + // border-top-left-radius: 4px; + // border-top-right-radius: 4px; + // } + // .mx-listview > ul > li:last-child { + // border-bottom-style: solid; + // border-bottom-left-radius: 4px; + // border-bottom-right-radius: 4px; + // } + //.mx-listview li:nth-child(2n+1) { + // background: #f9f9f9; + //} + //.mx-listview li:nth-child(2n+1):hover { + // background: #f5f5f5; + //} + .mx-listview > ul > li.selected { + // background: #eee; + } + .mx-listview-clickable > ul > li { + cursor: pointer; + } + .mx-listview-empty { + color: #999; + text-align: center; + } + .mx-listview .mx-listview-loading { + padding: 10px; + line-height: 0; + text-align: center; + } + .mx-listview-searchbar { + display: flex; + margin-bottom: 10px; + } + .mx-listview-searchbar > input { + width: 100%; + } + .mx-listview-searchbar > button { + margin-left: 5px; + } + [dir="rtl"] .mx-listview-searchbar > button { + margin-left: 0; + margin-right: 5px; + } + .mx-listview-selection { + display: table-cell; + vertical-align: middle; + padding: 0 15px 0 5px; + } + [dir="rtl"] .mx-listview-selection { + padding: 0 5px 0 15px; + } + .mx-listview-selectable .mx-listview-content { + display: table-cell; + vertical-align: middle; + width: 100%; + } + .mx-listview .selected { + background: #def; + } + .mx-listview .mx-table th, + .mx-listview .mx-table td { + padding: 2px; + } + + .mx-login .form-control { + margin-top: 10px; + } + + .mx-menubar { + padding: 8px; + } + .mx-menubar-icon { + height: 16px; + } + .mx-menubar-more-icon { + display: inline-block; + width: 16px; + height: 16px; + background: url(resources/menubar-more-icon.png) no-repeat center center; + background-size: 16px 16px; + vertical-align: middle; + } + + .mx-navigationlist { + padding: 8px; + } + .mx-navigationlist li:hover, + .mx-navigationlist li:focus, + .mx-navigationlist li.active { + color: #fff; + background-color: #3498db; + } + .mx-navigationlist * { + cursor: pointer; + } + .mx-navigationlist .table th, + .mx-navigationlist .table td { + padding: 2px; + } + + .mx-progress { + position: fixed; + top: 30%; + left: 0; + right: 0; + margin: auto; + width: 250px; + max-width: 90%; + background: #333; + opacity: 0.8; + z-index: 5000; + border-radius: 4px; + padding: 20px 15px; + transition: opacity 0.4s ease-in-out; + } + .mx-progress-hidden { + opacity: 0; + } + .mx-progress-message { + color: #fff; + text-align: center; + margin-bottom: 15px; + } + .mx-progress-empty .mx-progress-message { + display: none; + } + .mx-progress-indicator { + width: 70px; + height: 10px; + margin: auto; + background: url(resources/progress-indicator.gif); + } + + .mx-reload-notification { + position: fixed; + z-index: 1001; + top: 0; + width: 100%; + padding: 1rem; + + border: 1px solid hsl(200, 96%, 41%); + background-color: hsl(200, 96%, 44%); + + box-shadow: 0 5px 20px rgba(1, 37, 55, 0.16); + color: white; + + text-align: center; + font-size: 14px; + } + + .mx-resizer-n, + .mx-resizer-s { + position: absolute; + left: 0; + width: 100%; + height: 10px; + } + .mx-resizer-n { + top: -5px; + cursor: n-resize; + } + .mx-resizer-s { + bottom: -5px; + cursor: s-resize; + } + + .mx-resizer-e, + .mx-resizer-w { + position: absolute; + top: 0; + width: 10px; + height: 100%; + } + .mx-resizer-e { + right: -5px; + cursor: e-resize; + } + .mx-resizer-w { + left: -5px; + cursor: w-resize; + } + + .mx-resizer-nw, + .mx-resizer-ne, + .mx-resizer-sw, + .mx-resizer-se { + position: absolute; + width: 20px; + height: 20px; + } + + .mx-resizer-nw, + .mx-resizer-ne { + top: -5px; + } + .mx-resizer-sw, + .mx-resizer-se { + bottom: -5px; + } + .mx-resizer-nw, + .mx-resizer-sw { + left: -5px; + } + .mx-resizer-ne, + .mx-resizer-se { + right: -5px; + } + + .mx-resizer-nw { + cursor: nw-resize; + } + .mx-resizer-ne { + cursor: ne-resize; + } + .mx-resizer-sw { + cursor: sw-resize; + } + .mx-resizer-se { + cursor: se-resize; + } + + .mx-text { + white-space: pre-line; + } + + .mx-textarea textarea { + resize: none; + overflow-y: hidden; + } + .mx-textarea .mx-textarea-noresize { + height: auto; + resize: vertical; + overflow-y: auto; + } + .mx-textarea .mx-textarea-counter { + font-size: smaller; + } + .mx-textarea .form-control-static { + white-space: pre-line; + } + + .mx-underlay { + position: fixed; + top: 0; + width: 100%; + height: 100%; + z-index: 1000; + opacity: 0.5; + background-color: #333; + } + + .mx-imagezoom { + position: absolute; + display: table; + width: 100%; + height: 100%; + background-color: #999; + } + .mx-imagezoom-wrapper { + display: table-cell; + text-align: center; + vertical-align: middle; + } + .mx-imagezoom-image { + max-width: none; + } + + .mx-dropdown li { + padding: 3px 20px; + cursor: pointer; + } + .mx-dropdown label { + padding: 0; + color: #333; + white-space: nowrap; + cursor: pointer; + } + .mx-dropdown input { + margin: 0; + vertical-align: middle; + cursor: pointer; + } + .mx-dropdown .selected { + background: #f8f8f8; + } + //.mx-selectbox { + // text-align: left; + //} + //.mx-selectbox-caret-wrapper { + // float: right; + // height: 100%; + //} + + .mx-demouserswitcher { + position: fixed; + top: 0; + right: 0; + width: 360px; + height: 100%; + z-index: 20000; + box-shadow: -1px 0 5px rgba(28, 59, 86, 0.2); + } + .mx-demouserswitcher-content { + padding: 80px 40px 20px; + height: 100%; + color: #387ea2; + font-size: 14px; + overflow: auto; + background: url(resources/switcher.png) top right no-repeat #1b3149; + /* background-attachement local is not supported on IE8 + * when this is part of background the complete background is ignored */ + background-attachment: local; + } + .mx-demouserswitcher ul { + padding: 0; + margin-top: 25px; + list-style-type: none; + border-top: 1px solid #496076; + } + .mx-demouserswitcher a { + display: block; + padding: 10px 0; + color: #387ea2; + border-bottom: 1px solid #496076; + } + .mx-demouserswitcher h2 { + margin: 20px 0 5px; + color: #5bc4fe; + font-size: 28px; + } + .mx-demouserswitcher h3 { + margin: 0 0 2px; + color: #5bc4fe; + font-size: 18px; + font-weight: normal; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + } + .mx-demouserswitcher .active h3 { + color: #11efdb; + } + .mx-demouserswitcher p { + margin-bottom: 0; + } + .mx-demouserswitcher-toggle { + position: absolute; + top: 25%; + left: -35px; + width: 35px; + height: 38px; + margin-top: -40px; + cursor: pointer; + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; + box-shadow: -1px 0 5px rgba(28, 59, 86, 0.2); + background: url(resources/switcher-toggle.png) center center no-repeat #1b3149; + } + + /* master details screen for mobile */ + .mx-master-detail-screen { + top: 0; + left: 0; + overflow: auto; + width: 100%; + height: 100%; + position: absolute; + background-color: white; + will-change: transform; + } + + .mx-master-detail-screen .mx-master-detail-details { + padding: 15px; + } + + .mx-master-detail-screen-header { + position: relative; + overflow: auto; + border-bottom: 1px solid #ccc; + background-color: #f7f7f7; + } + + .mx-master-detail-screen-header-caption { + text-align: center; + font-size: 17px; + line-height: 24px; + font-weight: 600; + } + + .mx-master-detail-screen-header-close { + position: absolute; + left: 0; + top: 0; + height: 100%; + width: 50px; + border: none; + background: transparent; + color: #007aff; + } + + body[dir="rtl"] .mx-master-detail-screen-header-close { + right: 0; + left: auto; + } + + .mx-master-detail-screen-header-close::before { + content: "\2039"; + font-size: 52px; + line-height: 24px; + } + + /* classes for content page */ + .mx-master-detail-content-fix { + height: 100vh; + overflow: hidden; + } + + .mx-master-detail-content-hidden { + transform: translateX(-200%); + } + + body[dir="rtl"] .mx-master-detail-content-hidden { + transform: translateX(200%); + } + .reportingReport { + padding: 5px; + border: 1px solid #ddd; + border-radius: 3px; + } + + .reportingReportParameter th { + text-align: right; + } + + .reportingDateRange table { + width: 100%; + table-layout: fixed; + } + .reportingDateRange th { + padding: 5px; + text-align: right; + background-color: #eee; + } + .reportingDateRange td { + padding: 5px; + } + + .mx-reportmatrix table { + width: 100%; + max-width: 100%; + table-layout: fixed; + margin-bottom: 0; + } + + .mx-reportmatrix th, + .mx-reportmatrix td { + padding: 8px; + line-height: 1.42857143; + vertical-align: bottom; + border: 1px solid #ddd; + } + + .mx-reportmatrix tbody tr:first-child td { + border-top: none; + } + + .mx-reportmatrix tbody tr:nth-child(2n + 1) td { + background-color: #f9f9f9; + } + + .mx-reportmatrix tbody img { + max-width: 16px; + max-height: 16px; + } + + @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) { + .dijitInline { + zoom: 1; /* set hasLayout:true to mimic inline-block */ + display: inline; /* don't use .dj_ie since that increases the priority */ + vertical-align: auto; /* makes TextBox,Button line up w/native counterparts on IE6 */ + } + + .dj_ie6 .dijitComboBox .dijitInputContainer, + .dijitInputContainer { + zoom: 1; + } + + .dijitRight { + /* Right part of a 3-element border */ + display: inline; /* IE7 sizes to outer size w/o this */ + } + + .dijitButtonNode { + vertical-align: auto; + } + + .dijitTextBox { + overflow: hidden; /* #6027, #6067 */ + } + + .dijitPlaceHolder { + filter: ""; /* make this show up in IE6 after the rendering of the widget */ + } + + .dijitValidationTextBoxError input.dijitValidationInner, + .dijitSelect input, + .dijitTextBox input.dijitArrowButtonInner { + text-indent: 0 !important; + letter-spacing: -5em !important; + text-align: right !important; + } + + .dj_a11y input.dijitValidationInner, + .dj_a11y input.dijitArrowButtonInner { + text-align: left !important; + } + + .dijitSpinner .dijitSpinnerButtonContainer .dijitUpArrowButton { + bottom: 50%; /* otherwise (on some machines) top arrow icon too close to splitter border (IE6/7) */ + } + + .dijitTabContainerTop-tabs .dijitTab, + .dijitTabContainerBottom-tabs .dijitTab { + zoom: 1; /* set hasLayout:true to mimic inline-block */ + display: inline; /* don't use .dj_ie since that increases the priority */ + } + + .dojoDndHorizontal .dojoDndItem { + /* make contents of horizontal container be side by side, rather than vertical */ + display: inline; + } + } +} + +/* WARNING: IE9 limits nested imports to three levels deep: http://jorgealbaladejo.com/2011/05/28/internet-explorer-limits-nested-import-css-statements */ + +/* dijit base */ + +/* mendix base */ + +/* widgets */ + +/* reporting */ + +/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9kb2pvL2Rpaml0L3RoZW1lcy9kaWppdC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS9iYXNlLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL2Zvcm1zLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9Ub29sdGlwLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9UYWJDb250YWluZXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L19HcmlkLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9DYWxlbmRhci5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvRGF0YUdyaWQuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RlbXBsYXRlR3JpZC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvU2Nyb2xsQ29udGFpbmVyLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9OYXZiYXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L05hdmlnYXRpb25UcmVlLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9CdXR0b24uY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L0dyb3VwQm94LmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9EYXRhVmlldy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvRGlhbG9nLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9XaW5kb3cuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L0Ryb3BEb3duLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9IZWFkZXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RpdGxlLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9MaXN0Vmlldy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvTG9naW5EaWFsb2cuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L01lbnVCYXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L05hdmlnYXRpb25MaXN0LmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9Qcm9ncmVzcy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvUmVsb2FkTm90aWZpY2F0aW9uLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9SZXNpemFibGUuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RleHQuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RleHRBcmVhLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9VbmRlcmxheS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvSW1hZ2Vab29tLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9TZWxlY3RCb3guY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L0RlbW9Vc2VyU3dpdGNoZXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L01hc3RlckRldGFpbC5jc3MiLCJ3ZWJwYWNrOi8vLy4vcmVwb3J0aW5nL3VpL3dpZGdldC9SZXBvcnQuY3NzIiwid2VicGFjazovLy8uL3JlcG9ydGluZy91aS93aWRnZXQvUmVwb3J0UGFyYW1ldGVyLmNzcyIsIndlYnBhY2s6Ly8vLi9yZXBvcnRpbmcvdWkvd2lkZ2V0L0RhdGVSYW5nZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vcmVwb3J0aW5nL3VpL3dpZGdldC9SZXBvcnRNYXRyaXguY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvbXh1aS5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7Ozs7QUFJQTtBQUNBO0FBQ0E7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QUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QjtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkIsd0JBQXdCO0FBQ3hCLFdBQVc7QUFDWDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLHlDQUF5QztBQUN4RDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLHdCQUF3QixvQkFBb0I7O0FBRTVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZjs7QUFFQTtBQUNBO0FBQ0EsK0JBQStCO0FBQy9CLFlBQVk7QUFDWjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQ7QUFDakQsMEJBQTBCO0FBQzFCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0EsYUFBYTtBQUNiLGFBQWEsd0RBQXdEO0FBQ3JFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0Esd0JBQXdCO0FBQ3hCOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtB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QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxrQkFBa0I7QUFDbEI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7QUFFQTtBQUNBLGdCQUFnQjtBQUNoQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQztBQUNqQztBQUNBO0FBQ0EsNEJBQTRCO0FBQzVCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHFCQUFxQjtBQUNyQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxpQkFBaUI7O0FBRWpCO0FBQ0E7QUFDQSwyQkFBMkI7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdnNFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQzs7O0FDOUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUN6REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0M7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmOztBQzdCQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JGQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQzFCQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLDhCQUE4QjtBQUN0QyxVQUFVLCtCQUErQjtBQUN6Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUN0R0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyREE7QUFDQTtBQUNBO0FBQ0E7OztBQ0hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RCQTtBQUNBO0FBQ0E7QUFDQTs7QUNIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN0VBO0FBQ0E7QUFDQTs7QUNGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQztBQUNBO0FBQ0E7O0FDYkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDZkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DO0FBQ25DOztBQy9CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JFQTtBQUNBO0FBQ0E7O0FDRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDZEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUM7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQzs7QUMvREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxDO0FDaEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ05BO0FBQ0E7QUFDQTs7QUNGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDWEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDekJBOztBQUVBOztBQUVBOztBQUVBOztBQUVBIiwiZmlsZSI6Im14dWkvdWkvbXh1aS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuXHRFc3NlbnRpYWwgc3R5bGVzIHRoYXQgdGhlbWVzIGNhbiBpbmhlcml0LlxuXHRJbiBvdGhlciB3b3Jkcywgd29ya3MgYnV0IGRvZXNuJ3QgbG9vayBncmVhdC5cbiovXG5cblxuXG4vKioqKlxuXHRcdEdFTkVSSUMgUElFQ0VTXG4gKioqKi9cblxuLmRpaml0UmVzZXQge1xuXHQvKiBVc2UgdGhpcyBzdHlsZSB0byBudWxsIG91dCBwYWRkaW5nLCBtYXJnaW4sIGJvcmRlciBpbiB5b3VyIHRlbXBsYXRlIGVsZW1lbnRzXG5cdFx0c28gdGhhdCBwYWdlIHNwZWNpZmljIHN0eWxlcyBkb24ndCBicmVhayB0aGVtLlxuXHRcdC0gVXNlIGluIGFsbCBUQUJMRSwgVFIgYW5kIFREIHRhZ3MuXG5cdCovXG5cdG1hcmdpbjowO1xuXHRib3JkZXI6MDtcblx0cGFkZGluZzowO1xuXHRmb250OiBpbmhlcml0O1xuXHRsaW5lLWhlaWdodDpub3JtYWw7XG5cdGNvbG9yOiBpbmhlcml0O1xufVxuLmRqX2ExMXkgLmRpaml0UmVzZXQge1xuXHQtbW96LWFwcGVhcmFuY2U6IG5vbmU7IC8qIHJlbW92ZSBwcmVkZWZpbmVkIGhpZ2gtY29udHJhc3Qgc3R5bGluZyBpbiBGaXJlZm94ICovXG59XG5cbi5kaWppdElubGluZSB7XG5cdC8qICBUbyBpbmxpbmUgYmxvY2sgZWxlbWVudHMuXG5cdFx0U2ltaWxhciB0byBJbmxpbmVCb3ggYmVsb3csIGJ1dCB0aGlzIGhhcyBmZXdlciBzaWRlLWVmZmVjdHMgaW4gTW96LlxuXHRcdEFsc28sIGFwcGFyZW50bHkgd29ya3Mgb24gYSBESVYgYXMgd2VsbCBhcyBhIEZJRUxEU0VULlxuXHQqL1xuXHRkaXNwbGF5OmlubGluZS1ibG9jaztcdFx0XHQvKiB3ZWJraXQgYW5kIEZGMyAqL1xuXHQjem9vbTogMTsgLyogc2V0IGhhc0xheW91dDp0cnVlIHRvIG1pbWljIGlubGluZS1ibG9jayAqL1xuXHQjZGlzcGxheTppbmxpbmU7IC8qIGRvbid0IHVzZSAuZGpfaWUgc2luY2UgdGhhdCBpbmNyZWFzZXMgdGhlIHByaW9yaXR5ICovXG5cdGJvcmRlcjowO1xuXHRwYWRkaW5nOjA7XG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0I3ZlcnRpY2FsLWFsaWduOiBhdXRvO1x0LyogbWFrZXMgVGV4dEJveCxCdXR0b24gbGluZSB1cCB3L25hdGl2ZSBjb3VudGVycGFydHMgb24gSUU2ICovXG59XG5cbnRhYmxlLmRpaml0SW5saW5lIHtcblx0LyogVG8gaW5saW5lIHRhYmxlcyB3aXRoIGEgZ2l2ZW4gd2lkdGggc2V0ICovXG5cdGRpc3BsYXk6aW5saW5lLXRhYmxlO1xuXHRib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cblxuLmRpaml0SGlkZGVuIHtcblx0LyogVG8gaGlkZSB1bnNlbGVjdGVkIHBhbmVzIGluIFN0YWNrQ29udGFpbmVyIGV0Yy4gKi9cblx0cG9zaXRpb246IGFic29sdXRlOyAvKiByZW1vdmUgZnJvbSBub3JtYWwgZG9jdW1lbnQgZmxvdyB0byBzaW11bGF0ZSBkaXNwbGF5OiBub25lICovXG5cdHZpc2liaWxpdHk6IGhpZGRlbjsgLyogaGlkZSBlbGVtZW50IGZyb20gdmlldywgYnV0IGRvbid0IGJyZWFrIHNjcm9sbGluZywgc2VlICMxODYxMiAqL1xufVxuLmRpaml0SGlkZGVuICoge1xuXHR2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDsgLyogaGlkZSB2aXNpYmlsaXR5OnZpc2libGUgZGVzY2VuZGFudHMgb2YgY2xhc3M9ZGlqaXRIaWRkZW4gbm9kZXMsIHNlZSAjMTg3OTkgKi9cbn1cblxuLmRpaml0VmlzaWJsZSB7XG5cdC8qIFRvIHNob3cgc2VsZWN0ZWQgcGFuZSBpbiBTdGFja0NvbnRhaW5lciBldGMuICovXG5cdGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHQvKiBvdmVycmlkZSB1c2VyJ3MgZGlzcGxheTpub25lIHNldHRpbmcgdmlhIHN0eWxlIHNldHRpbmcgb3IgaW5kaXJlY3RseSB2aWEgY2xhc3MgKi9cblx0cG9zaXRpb246IHJlbGF0aXZlO1x0XHRcdC8qIHRvIHN1cHBvcnQgc2V0dGluZyB3aWR0aC9oZWlnaHQsIHNlZSAjMjAzMyAqL1xuXHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuXG4uZGpfaWU2IC5kaWppdENvbWJvQm94IC5kaWppdElucHV0Q29udGFpbmVyLFxuLmRpaml0SW5wdXRDb250YWluZXIge1xuXHQvKiBmb3IgcG9zaXRpb25pbmcgb2YgcGxhY2VIb2xkZXIgKi9cblx0I3pvb206IDE7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGZsb2F0OiBub25lICFpbXBvcnRhbnQ7IC8qIG5lZWRlZCB0byBzcXVlZXplIHRoZSBJTlBVVCBpbiAqL1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uZGpfaWU3IC5kaWppdElucHV0Q29udGFpbmVyIHtcblx0ZmxvYXQ6IGxlZnQgIWltcG9ydGFudDsgLyogbmVlZGVkIGJ5IElFIHRvIHNxdWVlemUgdGhlIElOUFVUIGluICovXG5cdGNsZWFyOiBsZWZ0O1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgLyogdG8gZml4IHdyb25nIHRleHQgYWxpZ25tZW50IGluIHRleHRkaXI9cnRsIHRleHQgYm94ICovXG59XG5cbi5kal9pZSAuZGlqaXRTZWxlY3QgaW5wdXQsXG4uZGpfaWUgaW5wdXQuZGlqaXRUZXh0Qm94LFxuLmRqX2llIC5kaWppdFRleHRCb3ggaW5wdXQge1xuXHRmb250LXNpemU6IDEwMCU7XG59XG4uZGlqaXRTZWxlY3QgLmRpaml0QnV0dG9uVGV4dCB7XG5cdGZsb2F0OiBsZWZ0O1xuXHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuVEFCTEUuZGlqaXRTZWxlY3Qge1xuXHRwYWRkaW5nOiAwICFpbXBvcnRhbnQ7IC8qIG1lc3NlcyB1cCBib3JkZXIgYWxpZ25tZW50ICovXG5cdGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7IC8qIHNvIGpzZmlkZGxlIHdvcmtzIHdpdGggTm9ybWFsaXplZCBDU1MgY2hlY2tlZCAqL1xufVxuLmRpaml0VGV4dEJveCAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyLFxuLmRpaml0VGV4dEJveCAuZGlqaXRBcnJvd0J1dHRvbkNvbnRhaW5lcixcbi5kaWppdFZhbGlkYXRpb25UZXh0Qm94IC5kaWppdFZhbGlkYXRpb25Db250YWluZXIge1xuXHRmbG9hdDogcmlnaHQ7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5kaWppdFNlbGVjdCBpbnB1dC5kaWppdElucHV0RmllbGQsXG4uZGlqaXRUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRGaWVsZCB7XG5cdC8qIG92ZXJyaWRlIHVucmVhc29uYWJsZSB1c2VyIHN0eWxpbmcgb2YgYnV0dG9ucyBhbmQgaWNvbnMgKi9cblx0cGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbn1cbi5kaWppdFZhbGlkYXRpb25UZXh0Qm94IC5kaWppdFZhbGlkYXRpb25Db250YWluZXIge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uZGlqaXRUZWVueSB7XG5cdGZvbnQtc2l6ZToxcHg7XG5cdGxpbmUtaGVpZ2h0OjFweDtcbn1cblxuLmRpaml0T2ZmU2NyZWVuIHsgLyogdGhlc2UgY2xhc3MgYXR0cmlidXRlcyBzaG91bGQgc3VwZXJzZWRlIGFueSBpbmxpbmUgcG9zaXRpb25pbmcgc3R5bGUgKi9cblx0cG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG5cdGxlZnQ6IC0xMDAwMHB4ICFpbXBvcnRhbnQ7XG5cdHRvcDogLTEwMDAwcHggIWltcG9ydGFudDtcbn1cblxuLypcbiAqIFBvcHVwIGl0ZW1zIGhhdmUgYSB3cmFwcGVyIGRpdiAoZGlqaXRQb3B1cClcbiAqIHdpdGggdGhlIHJlYWwgcG9wdXAgaW5zaWRlLCBhbmQgbWF5YmUgYW4gaWZyYW1lIHRvb1xuICovXG4uZGlqaXRQb3B1cCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdG1hcmdpbjogMDtcblx0Ym9yZGVyOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHQtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG5cbi5kaWppdFBvc2l0aW9uT25seSB7XG5cdC8qIE51bGwgb3V0IGFsbCBwb3NpdGlvbi1yZWxhdGVkIHByb3BlcnRpZXMgKi9cblx0cGFkZGluZzogMCAhaW1wb3J0YW50O1xuXHRib3JkZXI6IDAgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcblx0d2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLmRpaml0Tm9uUG9zaXRpb25Pbmx5IHtcblx0LyogTnVsbCBwb3NpdGlvbi1yZWxhdGVkIHByb3BlcnRpZXMgKi9cblx0ZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcblx0cG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuXHRtYXJnaW46IDAgMCAwIDAgIWltcG9ydGFudDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50O1xufVxuXG4uZGlqaXRCYWNrZ3JvdW5kSWZyYW1lIHtcblx0LyogaWZyYW1lIHVzZWQgdG8gcHJldmVudCBwcm9ibGVtcyB3aXRoIFBERiBvciBvdGhlciBhcHBsZXRzIG92ZXJsYXlpbmcgbWVudXMgZXRjICovXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogMDtcblx0dG9wOiAwO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHR6LWluZGV4OiAtMTtcblx0Ym9yZGVyOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHRtYXJnaW46IDA7XG59XG5cbi5kaWppdERpc3BsYXlOb25lIHtcblx0LyogaGlkZSBzb21ldGhpbmcuICBVc2UgdGhpcyBhcyBhIGNsYXNzIHJhdGhlciB0aGFuIGVsZW1lbnQuc3R5bGUgc28gYW5vdGhlciBjbGFzcyBjYW4gb3ZlcnJpZGUgKi9cblx0ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdENvbnRhaW5lciB7XG5cdC8qIGZvciBhbGwgbGF5b3V0IGNvbnRhaW5lcnMgKi9cblx0b3ZlcmZsb3c6IGhpZGRlbjtcdC8qIG5lZWQgb24gSUUgc28gc29tZXRoaW5nIGNhbiBiZSByZWR1Y2VkIGluIHNpemUsIGFuZCBzbyBzY3JvbGxiYXJzIGFyZW4ndCB0ZW1wb3JhcmlseSBkaXNwbGF5ZWQgd2hlbiByZXNpemluZyAqL1xufVxuXG4vKioqKlxuXHRcdEExMVlcbiAqKioqL1xuLmRqX2ExMXkgLmRpaml0SWNvbixcbi5kal9hMTF5IGRpdi5kaWppdEFycm93QnV0dG9uSW5uZXIsIC8qIGlzIHRoaXMgb25seSBmb3IgU3Bpbm5lcj8gIGlmIHNvLCBpdCBzaG91bGQgYmUgZGVsZXRlZCAqL1xuLmRqX2ExMXkgc3Bhbi5kaWppdEFycm93QnV0dG9uSW5uZXIsXG4uZGpfYTExeSBpbWcuZGlqaXRBcnJvd0J1dHRvbklubmVyLFxuLmRqX2ExMXkgLmRpaml0Q2FsZW5kYXJJbmNyZW1lbnRDb250cm9sLFxuLmRqX2ExMXkgLmRpaml0VHJlZUV4cGFuZG8ge1xuXHQvKiBoaWRlIGljb24gbm9kZXMgaW4gaGlnaCBjb250cmFzdCBtb2RlOyB3aGVuIG5lY2Vzc2FyeSB0aGV5IHdpbGwgYmUgcmVwbGFjZWQgYnkgY2hhcmFjdGVyIGVxdWl2YWxlbnRzXG5cdCAqIGV4Y2VwdGlvbiBmb3IgaW5wdXQuZGlqaXRBcnJvd0J1dHRvbklubmVyLCBiZWNhdXNlIHRoZSBpY29uIGFuZCBjaGFyYWN0ZXIgYXJlIGNvbnRyb2xsZWQgYnkgdGhlIHNhbWUgbm9kZSAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuLmRpaml0U3Bpbm5lciBkaXYuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0ZGlzcGxheTogYmxvY2s7IC8qIG92ZXJyaWRlIHByZXZpb3VzIHJ1bGUgKi9cbn1cblxuLmRqX2ExMXkgLmRpaml0QTExeVNpZGVBcnJvdyB7XG5cdGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyAvKiBkaXNwbGF5IHRleHQgaW5zdGVhZCAqL1xuXHRjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8qXG4gKiBTaW5jZSB3ZSBjYW4ndCB1c2Ugc2hhZGluZyBpbiBhMTF5IG1vZGUsIGFuZCBzaW5jZSB0aGUgdW5kZXJsaW5lIGluZGljYXRlcyB0b2RheSdzIGRhdGUsXG4gKiB1c2UgYSBib3JkZXIgdG8gc2hvdyB0aGUgc2VsZWN0ZWQgZGF0ZS5cbiAqIEF2b2lkIHNjcmVlbiBqaXR0ZXIgd2hlbiBzd2l0Y2hpbmcgc2VsZWN0ZWQgZGF0ZSBieSBjb21wZW5zYXRpbmcgZm9yIHRoZSBzZWxlY3RlZCBub2RlJ3NcbiAqIGJvcmRlciB3L3BhZGRpbmcgb24gb3RoZXIgbm9kZXMuXG4gKi9cbi5kal9hMTF5IC5kaWppdENhbGVuZGFyRGF0ZUxhYmVsIHtcblx0cGFkZGluZzogMXB4O1xuXHRib3JkZXI6IDBweCAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0Q2FsZW5kYXJTZWxlY3RlZERhdGUgLmRpaml0Q2FsZW5kYXJEYXRlTGFiZWwge1xuXHRib3JkZXItc3R5bGU6IHNvbGlkICFpbXBvcnRhbnQ7XG5cdGJvcmRlci13aWR0aDogMXB4ICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmc6IDA7XG59XG4uZGpfYTExeSAuZGlqaXRDYWxlbmRhckRhdGVUZW1wbGF0ZSB7XG5cdHBhZGRpbmctYm90dG9tOiAwLjFlbSAhaW1wb3J0YW50O1x0Lyogb3RoZXJ3aXNlIGJvdHRvbSBib3JkZXIgZG9lc24ndCBhcHBlYXIgb24gSUUgKi9cblx0Ym9yZGVyOiAwcHggIWltcG9ydGFudDtcbn1cbi5kal9hMTF5IC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXI6IGJsYWNrIG91dHNldCBtZWRpdW0gIWltcG9ydGFudDtcblxuXHQvKiBJbiBjbGFybywgaG92ZXJpbmcgYSB0b29sYmFyIGJ1dHRvbiByZWR1Y2VzIHBhZGRpbmcgYW5kIGFkZHMgYSBib3JkZXIuXG5cdCAqIE5vdCBuZWVkZWQgaW4gYTExeSBtb2RlIHNpbmNlIFRvb2xiYXIgYnV0dG9ucyBhbHdheXMgaGF2ZSBhIGJvcmRlci5cblx0ICovXG5cdHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbn1cbi5kal9hMTF5IC5kaWppdEFycm93QnV0dG9uIHtcblx0cGFkZGluZzogMCAhaW1wb3J0YW50O1xufVxuXG4uZGpfYTExeSAuZGlqaXRCdXR0b25Db250ZW50cyB7XG5cdG1hcmdpbjogMC4xNWVtOyAvKiBNYXJnaW4gbmVlZGVkIHRvIG1ha2UgZm9jdXMgb3V0bGluZSB2aXNpYmxlICovXG59XG5cbi5kal9hMTF5IC5kaWppdFRleHRCb3hSZWFkT25seSAuZGlqaXRJbnB1dEZpZWxkLFxuLmRqX2ExMXkgLmRpaml0VGV4dEJveFJlYWRPbmx5IC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXItc3R5bGU6IG91dHNldCFpbXBvcnRhbnQ7XG5cdGJvcmRlci13aWR0aDogbWVkaXVtIWltcG9ydGFudDtcblx0Ym9yZGVyLWNvbG9yOiAjOTk5ICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiM5OTkgIWltcG9ydGFudDtcbn1cblxuLyogYnV0dG9uIGlubmVyIGNvbnRlbnRzIC0gbGFiZWxzLCBpY29ucyBldGMuICovXG4uZGlqaXRCdXR0b25Ob2RlICoge1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmRpaml0U2VsZWN0IC5kaWppdEFycm93QnV0dG9uSW5uZXIsXG4uZGlqaXRCdXR0b25Ob2RlIC5kaWppdEFycm93QnV0dG9uSW5uZXIge1xuXHQvKiB0aGUgYXJyb3cgaWNvbiBub2RlICovXG5cdGJhY2tncm91bmQ6IG5vLXJlcGVhdCBjZW50ZXI7XG5cdHdpZHRoOiAxMnB4O1xuXHRoZWlnaHQ6IDEycHg7XG5cdGRpcmVjdGlvbjogbHRyOyAvKiBuZWVkZWQgYnkgSUUvUlRMICovXG59XG5cbi8qKioqXG5cdDMtZWxlbWVudCBib3JkZXJzOiAgKCBkaWppdExlZnQgKyBkaWppdFN0cmV0Y2ggKyBkaWppdFJpZ2h0IClcblx0VGhlc2Ugd2VyZSBhZGRlZCBmb3Igcm91bmRlZCBjb3JuZXJzIG9uIGRpaml0LmZvcm0uKkJ1dHRvbiBidXQgbmV2ZXIgYWN0dWFsbHkgdXNlZC5cbiAqKioqL1xuXG4uZGlqaXRMZWZ0IHtcblx0LyogTGVmdCBwYXJ0IG9mIGEgMy1lbGVtZW50IGJvcmRlciAqL1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgdG9wO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XG59XG5cbi5kaWppdFN0cmV0Y2gge1xuXHQvKiBNaWRkbGUgKHN0cmV0Y2h5KSBwYXJ0IG9mIGEgMy1lbGVtZW50IGJvcmRlciAqL1xuXHR3aGl0ZS1zcGFjZTpub3dyYXA7XHRcdFx0LyogTU9XOiBtb3ZlIHNvbWV3aGVyZSBlbHNlICovXG5cdGJhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14O1xufVxuXG4uZGlqaXRSaWdodCB7XG5cdC8qIFJpZ2h0IHBhcnQgb2YgYSAzLWVsZW1lbnQgYm9yZGVyICovXG5cdCNkaXNwbGF5OmlubGluZTtcdFx0XHRcdC8qIElFNyBzaXplcyB0byBvdXRlciBzaXplIHcvbyB0aGlzICovXG5cdGJhY2tncm91bmQtcG9zaXRpb246cmlnaHQgdG9wO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XG59XG5cbi8qIEJ1dHRvbnMgKi9cbi5kal9nZWNrbyAuZGpfYTExeSAuZGlqaXRCdXR0b25EaXNhYmxlZCAuZGlqaXRCdXR0b25Ob2RlIHtcblx0b3BhY2l0eTogMC41O1xufVxuXG4uZGlqaXRUb2dnbGVCdXR0b24sXG4uZGlqaXRCdXR0b24sXG4uZGlqaXREcm9wRG93bkJ1dHRvbixcbi5kaWppdENvbWJvQnV0dG9uIHtcblx0Lyogb3V0c2lkZSBvZiBidXR0b24gKi9cblx0bWFyZ2luOiAwLjJlbTtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHRkaXNwbGF5OiBibG9jaztcdFx0LyogdG8gbWFrZSBmb2N1cyBib3JkZXIgcmVjdGFuZ3VsYXIgKi9cbn1cbnRkLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHRkaXNwbGF5OiB0YWJsZS1jZWxsO1x0LyogYnV0IGRvbid0IGFmZmVjdCBTZWxlY3QsIENvbWJvQnV0dG9uICovXG59XG5cbi5kaWppdEJ1dHRvbk5vZGUgaW1nIHtcblx0LyogbWFrZSB0ZXh0IGFuZCBpbWFnZXMgbGluZSB1cCBjbGVhbmx5ICovXG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0LyptYXJnaW4tYm90dG9tOi4yZW07Ki9cbn1cblxuLmRpaml0VG9vbGJhciAuZGlqaXRDb21ib0J1dHRvbiB7XG5cdC8qIGJlY2F1c2UgVG9vbGJhciBvbmx5IGRyYXdzIGEgYm9yZGVyIGFyb3VuZCB0aGUgaG92ZXJlZCB0aGluZyAqL1xuXHRib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xufVxuXG4uZGlqaXRUb29sYmFyIC5kaWppdFRvZ2dsZUJ1dHRvbixcbi5kaWppdFRvb2xiYXIgLmRpaml0QnV0dG9uLFxuLmRpaml0VG9vbGJhciAuZGlqaXREcm9wRG93bkJ1dHRvbixcbi5kaWppdFRvb2xiYXIgLmRpaml0Q29tYm9CdXR0b24ge1xuXHRtYXJnaW46IDA7XG59XG5cbi5kaWppdFRvb2xiYXIgLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHQvKiBqdXN0IGJlY2F1c2UgaXQgdXNlZCB0byBiZSB0aGlzIHdheSAqL1xuXHRwYWRkaW5nOiAxcHggMnB4O1xufVxuXG5cbi5kal93ZWJraXQgLmRpaml0VG9vbGJhciAuZGlqaXREcm9wRG93bkJ1dHRvbiB7XG5cdHBhZGRpbmctbGVmdDogMC4zZW07XG59XG4uZGpfZ2Vja28gLmRpaml0VG9vbGJhciAuZGlqaXRCdXR0b25Ob2RlOjotbW96LWZvY3VzLWlubmVyIHtcblx0cGFkZGluZzowO1xufVxuXG4uZGlqaXRTZWxlY3Qge1xuXHRib3JkZXI6MXB4IHNvbGlkIGdyYXk7XG59XG4uZGlqaXRCdXR0b25Ob2RlIHtcblx0LyogTm9kZSB0aGF0IGlzIGFjdGluZyBhcyBhIGJ1dHRvbiAtLSBtYXkgb3IgbWF5IG5vdCBiZSBhIEJVVFRPTiBlbGVtZW50ICovXG5cdGJvcmRlcjoxcHggc29saWQgZ3JheTtcblx0bWFyZ2luOjA7XG5cdGxpbmUtaGVpZ2h0Om5vcm1hbDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0I3ZlcnRpY2FsLWFsaWduOiBhdXRvO1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5kal93ZWJraXQgLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIHtcblx0LyogYXBwYXJlbnQgV2ViS2l0IGJ1ZyB3aGVyZSBtZXNzaW5nIHdpdGggdGhlIGZvbnQgY291cGxlZCB3aXRoIGxpbmUtaGVpZ2h0Om5vcm1hbCBYIDIgKGRpaml0UmVzZXQgJiBkaWppdEJ1dHRvbk5vZGUpXG5cdGNhbiBiZSBkaWZmZXJlbnQgdGhhbiBqdXN0IGEgc2luZ2xlIGxpbmUtaGVpZ2h0Om5vcm1hbCwgdmlzaWJsZSBpbiBJbmxpbmVFZGl0Qm94L1NwaW5uZXIgKi9cblx0bGluZS1oZWlnaHQ6aW5oZXJpdDtcbn1cbi5kaWppdFRleHRCb3ggLmRpaml0QnV0dG9uTm9kZSB7XG5cdGJvcmRlci13aWR0aDogMDtcbn1cblxuLmRpaml0U2VsZWN0LFxuLmRpaml0U2VsZWN0ICosXG4uZGlqaXRCdXR0b25Ob2RlLFxuLmRpaml0QnV0dG9uTm9kZSAqIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uZGpfaWUgLmRpaml0QnV0dG9uTm9kZSB7XG5cdC8qIGVuc3VyZSBoYXNMYXlvdXQgKi9cblx0em9vbTogMTtcbn1cblxuLmRqX2llIC5kaWppdEJ1dHRvbk5vZGUgYnV0dG9uIHtcblx0Lypcblx0XHRkaXNndXN0aW5nIGhhY2sgdG8gZ2V0IHJpZCBvZiBzcHVyaW91cyBwYWRkaW5nIGFyb3VuZCBidXR0b24gZWxlbWVudHNcblx0XHRvbiBJRS4gTVNJRSBpcyB0cnVseSB0aGUgd2ViJ3MgYm9hdCBhbmNob3IuXG5cdCovXG5cdG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG5kaXYuZGlqaXRBcnJvd0J1dHRvbiB7XG5cdGZsb2F0OiByaWdodDtcbn1cblxuLyoqKioqKlxuXHRUZXh0Qm94IHJlbGF0ZWQuXG5cdEV2ZXJ5dGhpbmcgdGhhdCBoYXMgYW4gPGlucHV0PlxuKioqKioqKi9cblxuLmRpaml0VGV4dEJveCB7XG5cdGJvcmRlcjogc29saWQgYmxhY2sgMXB4O1xuXHQjb3ZlcmZsb3c6IGhpZGRlbjsgLyogIzYwMjcsICM2MDY3ICovXG5cdHdpZHRoOiAxNWVtO1x0LyogbmVlZCB0byBzZXQgZGVmYXVsdCBzaXplIG9uIG91dGVyIG5vZGUgc2luY2UgaW5uZXIgbm9kZXMgc2F5IDxpbnB1dCBzdHlsZT1cIndpZHRoOjEwMCVcIj4gYW5kIDx0ZCB3aWR0aD0xMDAlPi4gIHVzZXIgY2FuIG92ZXJyaWRlICovXG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5kaWppdFRleHRCb3hSZWFkT25seSxcbi5kaWppdFRleHRCb3hEaXNhYmxlZCB7XG5cdGNvbG9yOiBncmF5O1xufVxuLmRqX3NhZmFyaSAuZGlqaXRUZXh0Qm94RGlzYWJsZWQgaW5wdXQge1xuXHRjb2xvcjogI0IwQjBCMDsgLyogYmVjYXVzZSBTYWZhcmkgbGlnaHRlbnMgZGlzYWJsZWQgaW5wdXQvdGV4dGFyZWEgbm8gbWF0dGVyIHdoYXQgY29sb3IgeW91IHNwZWNpZnkgKi9cbn1cbi5kal9zYWZhcmkgdGV4dGFyZWEuZGlqaXRUZXh0QXJlYURpc2FibGVkIHtcblx0Y29sb3I6ICMzMzM7IC8qIGJlY2F1c2UgU2FmYXJpIGxpZ2h0ZW5zIGRpc2FibGVkIGlucHV0L3RleHRhcmVhIG5vIG1hdHRlciB3aGF0IGNvbG9yIHlvdSBzcGVjaWZ5ICovXG59XG4uZGpfZ2Vja28gLmRpaml0VGV4dEJveFJlYWRPbmx5IGlucHV0LmRpaml0SW5wdXRGaWVsZCwgLyogZGlzYWJsZSBhcnJvdyBhbmQgdmFsaWRhdGlvbiBwcmVzZW50YXRpb24gaW5wdXRzIGJ1dCBhbGxvdyByZWFsIGlucHV0IGZvciB0ZXh0IHNlbGVjdGlvbiAqL1xuLmRqX2dlY2tvIC5kaWppdFRleHRCb3hEaXNhYmxlZCBpbnB1dCB7XG5cdC1tb3otdXNlci1pbnB1dDogbm9uZTsgLyogcHJldmVudCBmb2N1cyBvZiBkaXNhYmxlZCB0ZXh0Ym94IGJ1dHRvbnMgKi9cbn1cblxuLmRpaml0UGxhY2VIb2xkZXIge1xuXHQvKiBoaW50IHRleHQgdGhhdCBhcHBlYXJzIGluIGEgdGV4dGJveCB1bnRpbCB1c2VyIHN0YXJ0cyB0eXBpbmcgKi9cblx0Y29sb3I6ICNBQUFBQUE7XG5cdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdCNmaWx0ZXI6IFwiXCI7IC8qIG1ha2UgdGhpcyBzaG93IHVwIGluIElFNiBhZnRlciB0aGUgcmVuZGVyaW5nIG9mIHRoZSB3aWRnZXQgKi9cblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7ICAgLyogc28gY3V0L3Bhc3RlIGNvbnRleHQgbWVudSBzaG93cyB1cCB3aGVuIHJpZ2h0IGNsaWNraW5nICovXG59XG5cbi5kaWppdFRpbWVUZXh0Qm94IHtcblx0d2lkdGg6IDhlbTtcbn1cblxuLyogcnVsZXMgZm9yIHdlYmtpdCB0byBkZWFsIHdpdGggZnV6enkgYmx1ZSBmb2N1cyBib3JkZXIgKi9cbi5kaWppdFRleHRCb3ggaW5wdXQ6Zm9jdXMge1xuXHRvdXRsaW5lOiBub25lO1x0LyogYmx1ZSBmdXp6eSBsaW5lIGxvb2tzIHdyb25nIG9uIGNvbWJvYm94IG9yIHNvbWV0aGluZyB3L3ZhbGlkYXRpb24gaWNvbiBzaG93aW5nICovXG59XG4uZGlqaXRUZXh0Qm94Rm9jdXNlZCB7XG5cdG91dGxpbmU6IDVweCAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XG59XG5cbi5kaWppdFNlbGVjdCBpbnB1dCxcbi5kaWppdFRleHRCb3ggaW5wdXQge1xuXHRmbG9hdDogbGVmdDsgLyogbmVlZGVkIGJ5IElFIHRvIHJlbW92ZSBzZWNyZXQgbWFyZ2luICovXG59XG4uZGpfaWU2IGlucHV0LmRpaml0VGV4dEJveCxcbi5kal9pZTYgLmRpaml0VGV4dEJveCBpbnB1dCB7XG5cdGZsb2F0OiBub25lO1xufVxuLmRpaml0SW5wdXRJbm5lciB7XG5cdC8qIGZvciB3aGVuIGFuIDxpbnB1dD4gaXMgZW1iZWRkZWQgaW5zaWRlIGFuIGlubGluZS1ibG9jayA8ZGl2PiB3aXRoIGEgc2l6ZSBhbmQgYm9yZGVyICovXG5cdGJvcmRlcjowICFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblx0d2lkdGg6MTAwJSAhaW1wb3J0YW50O1xuXHQvKiBJRSBkaXNsaWtlcyBob3Jpem9udGFsIHR3ZWFraW5nIGNvbWJpbmVkIHdpdGggd2lkdGg6MTAwJSBzbyBwdW5pc2ggZXZlcnlvbmUgZm9yIGNvbnNpc3RlbmN5ICovXG5cdHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0VGV4dEJveCBpbnB1dCB7XG5cdG1hcmdpbjogMCAhaW1wb3J0YW50O1xufVxuLmRpaml0VmFsaWRhdGlvblRleHRCb3hFcnJvciBpbnB1dC5kaWppdFZhbGlkYXRpb25Jbm5lcixcbi5kaWppdFNlbGVjdCBpbnB1dCxcbi5kaWppdFRleHRCb3ggaW5wdXQuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0LyogPGlucHV0PiB1c2VkIHRvIGRpc3BsYXkgYXJyb3cgaWNvbi92YWxpZGF0aW9uIGljb24sIG9yIGluIGFycm93IGNoYXJhY3RlciBpbiBoaWdoIGNvbnRyYXN0IG1vZGUuXG5cdCAqIFRoZSBjc3MgYmVsb3cgaXMgYSB0cmljayB0byBoaWRlIHRoZSBjaGFyYWN0ZXIgaW4gbm9uLWhpZ2gtY29udHJhc3QgbW9kZVxuXHQgKi9cblx0dGV4dC1pbmRlbnQ6IC0yZW0gIWltcG9ydGFudDtcblx0ZGlyZWN0aW9uOiBsdHIgIWltcG9ydGFudDtcblx0dGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcblx0I3RleHQtaW5kZW50OiAwICFpbXBvcnRhbnQ7XG5cdCNsZXR0ZXItc3BhY2luZzogLTVlbSAhaW1wb3J0YW50O1xuXHQjdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDtcbn1cbi5kal9pZSAuZGlqaXRTZWxlY3QgaW5wdXQsXG4uZGpfaWUgLmRpaml0VGV4dEJveCBpbnB1dCxcbi5kal9pZSBpbnB1dC5kaWppdFRleHRCb3gge1xuXHRvdmVyZmxvdy15OiB2aXNpYmxlOyAvKiBpbnB1dHMgbmVlZCBoZWxwIGV4cGFuZGluZyB3aGVuIHBhZGRpbmcgaXMgYWRkZWQgb3IgbGluZS1oZWlnaHQgaXMgYWRqdXN0ZWQgKi9cblx0bGluZS1oZWlnaHQ6IG5vcm1hbDsgLyogc3RyaWN0IG1vZGUgKi9cbn1cbi5kaWppdFNlbGVjdCAuZGlqaXRTZWxlY3RMYWJlbCBzcGFuIHtcblx0bGluZS1oZWlnaHQ6IDEwMCU7XG59XG4uZGpfaWUgLmRpaml0U2VsZWN0IC5kaWppdFNlbGVjdExhYmVsIHtcblx0bGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cbi5kal9pZTYgLmRpaml0U2VsZWN0IC5kaWppdFNlbGVjdExhYmVsLFxuLmRqX2llNyAuZGlqaXRTZWxlY3QgLmRpaml0U2VsZWN0TGFiZWwsXG4uZGpfaWU4IC5kaWppdFNlbGVjdCAuZGlqaXRTZWxlY3RMYWJlbCxcbi5kal9pZXF1aXJrcyAuZGlqaXRTZWxlY3QgLmRpaml0U2VsZWN0TGFiZWwsXG4uZGlqaXRTZWxlY3QgdGQsXG4uZGpfaWU2IC5kaWppdFNlbGVjdCBpbnB1dCxcbi5kal9pZXF1aXJrcyAuZGlqaXRTZWxlY3QgaW5wdXQsXG4uZGpfaWU2IC5kaWppdFNlbGVjdCAuZGlqaXRWYWxpZGF0aW9uQ29udGFpbmVyLFxuLmRqX2llNiAuZGlqaXRUZXh0Qm94IGlucHV0LFxuLmRqX2llNiBpbnB1dC5kaWppdFRleHRCb3gsXG4uZGpfaWVxdWlya3MgLmRpaml0VGV4dEJveCBpbnB1dC5kaWppdFZhbGlkYXRpb25Jbm5lcixcbi5kal9pZXF1aXJrcyAuZGlqaXRUZXh0Qm94IGlucHV0LmRpaml0QXJyb3dCdXR0b25Jbm5lcixcbi5kal9pZXF1aXJrcyAuZGlqaXRUZXh0Qm94IGlucHV0LmRpaml0U3Bpbm5lckJ1dHRvbklubmVyLFxuLmRqX2llcXVpcmtzIC5kaWppdFRleHRCb3ggaW5wdXQuZGlqaXRJbnB1dElubmVyLFxuLmRqX2llcXVpcmtzIGlucHV0LmRpaml0VGV4dEJveCB7XG5cdGxpbmUtaGVpZ2h0OiAxMDAlOyAvKiBJRTcgcHJvYmxlbSB3aGVyZSB0aGUgaWNvbiBpcyB2ZXJ0aWNhbGx5IHdheSB0b28gbG93IHcvbyB0aGlzICovXG59XG4uZGpfYTExeSBpbnB1dC5kaWppdFZhbGlkYXRpb25Jbm5lcixcbi5kal9hMTF5IGlucHV0LmRpaml0QXJyb3dCdXR0b25Jbm5lciB7XG5cdC8qIChpbiBoaWdoIGNvbnRyYXN0IG1vZGUpIHJldmVydCBydWxlcyBmcm9tIGFib3ZlIHNvIGNoYXJhY3RlciBkaXNwbGF5cyAqL1xuXHR0ZXh0LWluZGVudDogMCAhaW1wb3J0YW50O1xuXHR3aWR0aDogMWVtICFpbXBvcnRhbnQ7XG5cdCN0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiBibGFjayAhaW1wb3J0YW50O1xufVxuLmRpaml0VmFsaWRhdGlvblRleHRCb3hFcnJvciAuZGlqaXRWYWxpZGF0aW9uQ29udGFpbmVyIHtcblx0ZGlzcGxheTogaW5saW5lO1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qIENvbWJvQm94ICYgU3Bpbm5lciAqL1xuXG4uZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIsXG4uZGlqaXRDb21ib0JveCAuZGlqaXRBcnJvd0J1dHRvbkNvbnRhaW5lciB7XG5cdC8qIGRpdmlkaW5nIGxpbmUgYmV0d2VlbiBpbnB1dCBhcmVhIGFuZCB1cC9kb3duIGJ1dHRvbihzKSBmb3IgQ29tYm9Cb3ggYW5kIFNwaW5uZXIgKi9cblx0Ym9yZGVyLXdpZHRoOiAwIDAgMCAxcHggIWltcG9ydGFudDsgLyogIWltcG9ydGFudCBuZWVkZWQgZHVlIHRvIHdheXdhcmQgXCIudGhlbWUgLmRpaml0QnV0dG9uTm9kZVwiIHJ1bGVzICovXG59XG4uZGpfYTExeSAuZGlqaXRTZWxlY3QgLmRpaml0QXJyb3dCdXR0b25Db250YWluZXIsXG4uZGlqaXRUb29sYmFyIC5kaWppdENvbWJvQm94IC5kaWppdEFycm93QnV0dG9uQ29udGFpbmVyIHtcblx0Lyogb3ZlcnJpZGVzIGFib3ZlIHJ1bGUgcGx1cyBtaXJyb3ItaW1hZ2UgcnVsZSBpbiBkaWppdF9ydGwuY3NzIHRvIGhhdmUgbm8gZGl2aWRlciB3aGVuIENvbWJvQm94IGluIFRvb2xiYXIgKi9cblx0Ym9yZGVyLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdENvbWJvQm94TWVudSB7XG5cdC8qIERyb3AgZG93biBtZW51IGlzIGltcGxlbWVudGVkIGFzIDx1bD4gPGxpLz4gPGxpLz4gLi4uIGJ1dCB3ZSBkb24ndCB3YW50IGNpcmNsZXMgYmVmb3JlIGVhY2ggaXRlbSAqL1xuXHRsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0QnV0dG9uTm9kZSB7XG5cdC8qIGRpdmlkaW5nIGxpbmUgYmV0d2VlbiBpbnB1dCBhcmVhIGFuZCB1cC9kb3duIGJ1dHRvbihzKSBmb3IgQ29tYm9Cb3ggYW5kIFNwaW5uZXIgKi9cblx0Ym9yZGVyLXdpZHRoOiAwO1xufVxuLmRqX2llIC5kal9hMTF5IC5kaWppdFNwaW5uZXIgLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciAuZGlqaXRCdXR0b25Ob2RlIHtcblx0Y2xlYXI6IGJvdGg7IC8qIElFIHdvcmthcm91bmQgKi9cbn1cblxuLmRqX2llIC5kaWppdFRvb2xiYXIgLmRpaml0Q29tYm9Cb3gge1xuXHQvKiBtYWtlIGNvbWJvYm94IGJ1dHRvbnMgYWxpZ24gcHJvcGVybHkgd2l0aCBvdGhlciBidXR0b25zIGluIGEgdG9vbGJhciAqL1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4vKiBTcGlubmVyICovXG5cbi5kaWppdFRleHRCb3ggLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciB7XG5cdHdpZHRoOiAxZW07XG5cdHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uSW5uZXIge1xuXHR3aWR0aDoxZW07XG5cdHZpc2liaWxpdHk6aGlkZGVuICFpbXBvcnRhbnQ7IC8qIGp1c3QgYSBzaXppbmcgZWxlbWVudCAqL1xuXHRvdmVyZmxvdy14OmhpZGRlbjtcbn1cbi5kaWppdENvbWJvQm94IC5kaWppdEJ1dHRvbk5vZGUsXG4uZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXItd2lkdGg6IDA7XG59XG4uZGpfYTExeSAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXItd2lkdGg6IDBweCAhaW1wb3J0YW50O1xuXHRib3JkZXItc3R5bGU6IHNvbGlkICFpbXBvcnRhbnQ7XG59XG4uZGpfYTExeSAuZGlqaXRUZXh0Qm94IC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIsXG4uZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIsXG4uZGpfYTExeSAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIGlucHV0IHtcblx0d2lkdGg6IDFlbSAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0bWFyZ2luOiAwIGF1dG8gIWltcG9ydGFudDsgLyogc2hvdWxkIGF1dG8tY2VudGVyICovXG59XG4uZGpfaWUgLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHRwYWRkaW5nLWxlZnQ6IDAuM2VtICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctcmlnaHQ6IDAuM2VtICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1sZWZ0OiAwLjNlbSAhaW1wb3J0YW50O1xuXHRtYXJnaW4tcmlnaHQ6IDAuM2VtICFpbXBvcnRhbnQ7XG5cdHdpZHRoOiAxLjRlbSAhaW1wb3J0YW50O1xufVxuLmRqX2llNyAuZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIgLmRpaml0SW5wdXRGaWVsZCB7XG5cdHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50OyAvKiBtYW51YWxseSBjZW50ZXIgSU5QVVQ6IGNoYXJhY3RlciBpcyAuNWVtIGFuZCB0b3RhbCB3aWR0aCA9IDFlbSAqL1xuXHRwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG5cdHdpZHRoOiAxZW0gIWltcG9ydGFudDtcbn1cbi5kal9pZTYgLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHRtYXJnaW4tbGVmdDogMC4xZW0gIWltcG9ydGFudDtcblx0bWFyZ2luLXJpZ2h0OiAwLjFlbSAhaW1wb3J0YW50O1xuXHR3aWR0aDogMWVtICFpbXBvcnRhbnQ7XG59XG4uZGpfaWVxdWlya3MgLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHRtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuXHRtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcblx0d2lkdGg6IDJlbSAhaW1wb3J0YW50O1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEFycm93QnV0dG9uIHtcblx0Lyogbm90ZTogLmRpaml0SW5wdXRMYXlvdXRDb250YWluZXIgbWFrZXMgdGhpcyBydWxlIG92ZXJyaWRlIC5kaWppdEFycm93QnV0dG9uIHNldHRpbmdzXG5cdCAqIGZvciBkaWppdC5mb3JtLkJ1dHRvblxuXHQgKi9cblx0cGFkZGluZzogMDtcblx0cG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG5cdHJpZ2h0OiAwO1xuXHRmbG9hdDogbm9uZTtcblx0aGVpZ2h0OiA1MCU7XG5cdHdpZHRoOiAxMDAlO1xuXHRib3R0b206IGF1dG87XG5cdGxlZnQ6IDA7XG5cdHJpZ2h0OiBhdXRvO1xufVxuLmRqX2llcXVpcmtzIC5kaWppdFNwaW5uZXIgLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciAuZGlqaXRBcnJvd0J1dHRvbiB7XG5cdHdpZHRoOiBhdXRvO1xufVxuLmRqX2ExMXkgLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciAuZGlqaXRBcnJvd0J1dHRvbiB7XG5cdG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0RG93bkFycm93QnV0dG9uIHtcblx0dG9wOiA1MCU7XG5cdGJvcmRlci10b3Atd2lkdGg6IDFweCAhaW1wb3J0YW50O1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdFVwQXJyb3dCdXR0b24ge1xuXHQjYm90dG9tOiA1MCU7XHQvKiBvdGhlcndpc2UgKG9uIHNvbWUgbWFjaGluZXMpIHRvcCBhcnJvdyBpY29uIHRvbyBjbG9zZSB0byBzcGxpdHRlciBib3JkZXIgKElFNi83KSAqL1xuXHR0b3A6IDA7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIge1xuXHRtYXJnaW46IGF1dG87XG5cdG92ZXJmbG93LXg6IGhpZGRlbjtcblx0aGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG59XG4uZGpfaWVxdWlya3MgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0aGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIgLmRpaml0SW5wdXRGaWVsZCB7XG5cdC1tb3otdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuXHQtbW96LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciB0b3A7XG5cdC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuXHQtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciB0b3A7XG5cdC1vLXRyYW5zZm9ybTogc2NhbGUoMC41KTtcblx0LW8tdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIHRvcDtcblx0dHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuXHR0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDtcblx0cGFkZGluZy10b3A6IDA7XG5cdHBhZGRpbmctYm90dG9tOiAwO1xuXHRwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcblx0cGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuXHR3aWR0aDogMTAwJTtcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLmRqX2llIC5kaWppdFNwaW5uZXIgLmRpaml0QXJyb3dCdXR0b25Jbm5lciAuZGlqaXRJbnB1dEZpZWxkIHtcblx0em9vbTogNTAlOyAvKiBlbXVsYXRlIHRyYW5zZm9ybTogc2NhbGUoMC41KSAqL1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIge1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0QXJyb3dCdXR0b24ge1xuXHR3aWR0aDogMTAwJTtcbn1cbi5kal9pZXF1aXJrcyAuZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0QXJyb3dCdXR0b24ge1xuXHR3aWR0aDogMWVtOyAvKiBtYXRjaGVzIC5kal9hMTF5IC5kaWppdFRleHRCb3ggLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciBydWxlIC0gMTAwJSBpcyB0aGUgd2hvbGUgc2NyZWVuIHdpZHRoIGluIHF1aXJrcyAqL1xufVxuLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHR2ZXJ0aWNhbC1hbGlnbjp0b3A7XG5cdHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4uZGpfYTExeSAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIHtcblx0d2lkdGg6IDFlbTtcbn1cblxuLyoqKipcblx0XHRkaWppdC5mb3JtLkNoZWNrQm94XG4gXHQgJlxuICBcdFx0ZGlqaXQuZm9ybS5SYWRpb0J1dHRvblxuICoqKiovXG5cbi5kaWppdENoZWNrQm94LFxuLmRpaml0UmFkaW8sXG4uZGlqaXRDaGVja0JveElucHV0IHtcblx0cGFkZGluZzogMDtcblx0Ym9yZGVyOiAwO1xuXHR3aWR0aDogMTZweDtcblx0aGVpZ2h0OiAxNnB4O1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciBjZW50ZXI7XG5cdGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmRpaml0Q2hlY2tCb3ggaW5wdXQsXG4uZGlqaXRSYWRpbyBpbnB1dCB7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbi5kaWppdENoZWNrQm94SW5wdXQge1xuXHQvKiBwbGFjZSB0aGUgYWN0dWFsIGlucHV0IG9uIHRvcCwgYnV0IGludmlzaWJsZSAqL1xuXHRvcGFjaXR5OiAwO1xufVxuXG4uZGpfaWUgLmRpaml0Q2hlY2tCb3hJbnB1dCB7XG5cdGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTtcbn1cblxuLmRqX2ExMXkgLmRpaml0Q2hlY2tCb3gsXG4uZGpfYTExeSAuZGlqaXRSYWRpbyB7XG5cdC8qIGluIGExMXkgbW9kZSB3ZSBkaXNwbGF5IHRoZSBuYXRpdmUgY2hlY2tib3ggKG5vdCB0aGUgaWNvbiksIHNvIGRvbid0IHJlc3RyaWN0IHRoZSBzaXplICovXG5cdHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG5cdGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0Q2hlY2tCb3hJbnB1dCB7XG5cdG9wYWNpdHk6IDE7XG5cdGZpbHRlcjogbm9uZTtcblx0d2lkdGg6IGF1dG87XG5cdGhlaWdodDogYXV0bztcbn1cblxuLmRqX2ExMXkgLmRpaml0Rm9jdXNlZExhYmVsIHtcblx0LyogZm9yIGNoZWNrYm94ZXMgb3IgcmFkaW8gYnV0dG9ucyBpbiBoaWdoIGNvbnRyYXN0IG1vZGUsIHVzZSBib3JkZXIgcmF0aGVyIHRoYW4gb3V0bGluZSB0byBpbmRpY2F0ZSBmb2N1cyAob3V0bGluZSBkb2VzIG5vdCB3b3JrIGluIEZGKSovXG5cdGJvcmRlcjogMXB4IGRvdHRlZDtcblx0b3V0bGluZTogMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi8qKioqXG5cdFx0ZGlqaXQuUHJvZ3Jlc3NCYXJcbiAqKioqL1xuXG4uZGlqaXRQcm9ncmVzc0JhciB7XG4gICAgei1pbmRleDogMDsgLyogc28gei1pbmRleCBzZXR0aW5ncyBiZWxvdyBoYXZlIG5vIGVmZmVjdCBvdXRzaWRlIG9mIHRoZSBQcm9ncmVzc0JhciAqL1xufVxuLmRpaml0UHJvZ3Jlc3NCYXJFbXB0eSB7XG5cdC8qIG91dGVyIGNvbnRhaW5lciBhbmQgYmFja2dyb3VuZCBvZiB0aGUgYmFyIHRoYXQncyBub3QgZmluaXNoZWQgeWV0Ki9cblx0cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuO1xuXHRib3JkZXI6MXB4IHNvbGlkIGJsYWNrOyBcdC8qIGExMXk6IGJvcmRlciBuZWNlc3NhcnkgZm9yIGhpZ2gtY29udHJhc3QgbW9kZSAqL1xuXHR6LWluZGV4OjA7XHRcdFx0LyogZXN0YWJsaXNoIGEgc3RhY2tpbmcgY29udGV4dCBmb3IgdGhpcyBwcm9ncmVzcyBiYXIgKi9cbn1cblxuLmRpaml0UHJvZ3Jlc3NCYXJGdWxsIHtcblx0Lyogb3V0ZXIgY29udGFpbmVyIGZvciBiYWNrZ3JvdW5kIG9mIGJhciB0aGF0IGlzIGZpbmlzaGVkICovXG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHRvdmVyZmxvdzpoaWRkZW47XG5cdHotaW5kZXg6LTE7XG5cdHRvcDowO1xuXHR3aWR0aDoxMDAlO1xufVxuLmRqX2llNiAuZGlqaXRQcm9ncmVzc0JhckZ1bGwge1xuXHRoZWlnaHQ6MS42ZW07XG59XG5cbi5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIGlubmVyIGNvbnRhaW5lciBmb3IgZmluaXNoZWQgcG9ydGlvbiAqL1xuXHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0b3ZlcmZsb3c6aGlkZGVuO1xuXHR0b3A6MDtcblx0bGVmdDowO1xuXHRib3R0b206MDtcblx0cmlnaHQ6MDtcblx0bWFyZ2luOjA7XG5cdHBhZGRpbmc6MDtcblx0d2lkdGg6IDEwMCU7ICAgIC8qIG5lZWRlZCBmb3IgSUUvcXVpcmtzICovXG5cdGhlaWdodDphdXRvO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiNhYWE7XG5cdGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG59XG5cbi5kal9hMTF5IC5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIGExMXk6ICBUaGUgYm9yZGVyIHByb3ZpZGVzIHZpc2liaWxpdHkgaW4gaGlnaC1jb250cmFzdCBtb2RlICovXG5cdGJvcmRlci13aWR0aDoycHg7XG5cdGJvcmRlci1zdHlsZTpzb2xpZDtcblx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4uZGpfaWU2IC5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIHdpZHRoOmF1dG8gd29ya3MgaW4gSUU2IHdpdGggcG9zaXRpb246c3RhdGljIGJ1dCBub3QgcG9zaXRpb246YWJzb2x1dGUgKi9cblx0cG9zaXRpb246c3RhdGljO1xuXHQvKiBoZWlnaHQ6YXV0byBvciAxMDAlIGRvZXMgbm90IHdvcmsgaW4gSUU2ICovXG5cdGhlaWdodDoxLjZlbTtcbn1cblxuLmRpaml0UHJvZ3Jlc3NCYXJJbmRldGVybWluYXRlIC5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIGFuaW1hdGVkIGdpZiBmb3IgJ2luZGV0ZXJtaW5hdGUnIG1vZGUgKi9cbn1cblxuLmRpaml0UHJvZ3Jlc3NCYXJJbmRldGVybWluYXRlSGlnaENvbnRyYXN0SW1hZ2Uge1xuXHRkaXNwbGF5Om5vbmU7XG59XG5cbi5kal9hMTF5IC5kaWppdFByb2dyZXNzQmFySW5kZXRlcm1pbmF0ZSAuZGlqaXRQcm9ncmVzc0JhckluZGV0ZXJtaW5hdGVIaWdoQ29udHJhc3RJbWFnZSB7XG5cdGRpc3BsYXk6YmxvY2s7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHR0b3A6MDtcblx0Ym90dG9tOjA7XG5cdG1hcmdpbjowO1xuXHRwYWRkaW5nOjA7XG5cdHdpZHRoOjEwMCU7XG5cdGhlaWdodDphdXRvO1xufVxuXG4uZGlqaXRQcm9ncmVzc0JhckxhYmVsIHtcblx0ZGlzcGxheTpibG9jaztcblx0cG9zaXRpb246c3RhdGljO1xuXHR3aWR0aDoxMDAlO1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4vKioqKlxuXHRcdGRpaml0LlRvb2x0aXBcbiAqKioqL1xuXG4uZGlqaXRUb29sdGlwIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiAyMDAwO1xuXHRkaXNwbGF5OiBibG9jaztcblx0LyogbWFrZSB2aXNpYmxlIGJ1dCBvZmYgc2NyZWVuICovXG5cdGxlZnQ6IDA7XG5cdHRvcDogLTEwMDAwcHg7XG5cdG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4uZGlqaXRUb29sdGlwQ29udGFpbmVyIHtcblx0Ym9yZGVyOiBzb2xpZCBibGFjayAycHg7XG5cdGJhY2tncm91bmQ6ICNiOGI1YjU7XG5cdGNvbG9yOiBibGFjaztcblx0Zm9udC1zaXplOiBzbWFsbDtcbn1cblxuLmRpaml0VG9vbHRpcEZvY3VzTm9kZSB7XG5cdHBhZGRpbmc6IDJweCAycHggMnB4IDJweDtcbn1cblxuLmRpaml0VG9vbHRpcENvbm5lY3RvciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5kal9hMTF5IC5kaWppdFRvb2x0aXBDb25uZWN0b3Ige1xuXHRkaXNwbGF5OiBub25lO1x0Lyogd29uJ3Qgc2hvdyBiL2MgaXQncyBiYWNrZ3JvdW5kLWltYWdlOyBoaWRlIHRvIGF2b2lkIGJvcmRlciBnYXAgKi9cbn1cblxuLmRpaml0VG9vbHRpcERhdGEge1xuXHRkaXNwbGF5Om5vbmU7XG59XG5cbi8qIExheW91dCB3aWRnZXRzLiBUaGlzIGlzIGVzc2VudGlhbCBDU1MgdG8gbWFrZSBsYXlvdXQgd29yayAoaXQgaXNuJ3QgXCJzdHlsaW5nXCIgQ1NTKVxuICAgbWFrZSBzdXJlIHRoYXQgdGhlIHBvc2l0aW9uOmFic29sdXRlIGluIGRpaml0QWxpZ24qIG92ZXJyaWRlcyBvdGhlciBjbGFzc2VzICovXG5cbi5kaWppdExheW91dENvbnRhaW5lciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5kaWppdEFsaWduVG9wLFxuLmRpaml0QWxpZ25Cb3R0b20sXG4uZGlqaXRBbGlnbkxlZnQsXG4uZGlqaXRBbGlnblJpZ2h0IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5ib2R5IC5kaWppdEFsaWduQ2xpZW50IHsgcG9zaXRpb246IGFic29sdXRlOyB9XG5cbi8qXG4gKiBCb3JkZXJDb250YWluZXJcbiAqXG4gKiAuZGlqaXRCb3JkZXJDb250YWluZXIgaXMgYSBzdHlsaXplZCBsYXlvdXQgd2hlcmUgcGFuZXMgaGF2ZSBib3JkZXIgYW5kIG1hcmdpbi5cbiAqIC5kaWppdEJvcmRlckNvbnRhaW5lck5vR3V0dGVyIGlzIGEgcmF3IGxheW91dC5cbiAqL1xuLmRpaml0Qm9yZGVyQ29udGFpbmVyLCAuZGlqaXRCb3JkZXJDb250YWluZXJOb0d1dHRlciB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuICAgIHotaW5kZXg6IDA7IC8qIHNvIHotaW5kZXggc2V0dGluZ3MgYmVsb3cgaGF2ZSBubyBlZmZlY3Qgb3V0c2lkZSBvZiB0aGUgQm9yZGVyQ29udGFpbmVyICovXG59XG5cbi5kaWppdEJvcmRlckNvbnRhaW5lclBhbmUsXG4uZGlqaXRCb3JkZXJDb250YWluZXJOb0d1dHRlclBhbmUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcdC8qICFpbXBvcnRhbnQgdG8gb3ZlcnJpZGUgcG9zaXRpb246cmVsYXRpdmUgaW4gZGlqaXRUYWJDb250YWluZXIgZXRjLiAqL1xuXHR6LWluZGV4OiAyO1x0XHQvKiBhYm92ZSB0aGUgc3BsaXR0ZXJzIHNvIHRoYXQgb2ZmLWJ5LW9uZSBicm93c2VyIGVycm9ycyBkb24ndCBjb3ZlciB1cCBib3JkZXIgb2YgcGFuZSAqL1xufVxuXG4uZGlqaXRCb3JkZXJDb250YWluZXIgPiAuZGlqaXRUZXh0QXJlYSB7XG5cdC8qIE9uIFNhZmFyaSwgZm9yIFNpbXBsZVRleHRBcmVhIGluc2lkZSBhIEJvcmRlckNvbnRhaW5lcixcblx0XHRkb24ndCB3YW50IHRvIGRpc3BsYXkgdGhlIGdyaXAgdG8gcmVzaXplICovXG5cdHJlc2l6ZTogbm9uZTtcbn1cblxuLmRpaml0R3V0dGVyIHtcblx0LyogZ3V0dGVyIGlzIGp1c3QgYSBwbGFjZSBob2xkZXIgZm9yIGVtcHR5IHNwYWNlIGJldHdlZW4gcGFuZXMgaW4gQm9yZGVyQ29udGFpbmVyICovXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0Zm9udC1zaXplOiAxcHg7XHRcdC8qIG5lZWRlZCBieSBJRTYgZXZlbiB0aG91Z2ggZGl2IGlzIGVtcHR5LCBvdGhlcndpc2UgZ29lcyB0byAxNXB4ICovXG59XG5cbi8qIFNwbGl0Q29udGFpbmVyXG5cblx0J1YnID09IGNvbnRhaW5lciB0aGF0IHNwbGl0cyB2ZXJ0aWNhbGx5ICh1cC9kb3duKVxuXHQnSCcgPSBob3Jpem9udGFsIChsZWZ0L3JpZ2h0KVxuKi9cblxuLmRpaml0U3BsaXR0ZXIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHotaW5kZXg6IDEwO1x0XHQvKiBhYm92ZSB0aGUgcGFuZXMgc28gdGhhdCBzcGxpdHRlciBmb2N1cyBpcyB2aXNpYmxlIG9uIEZGLCBzZWUgIzc1ODMqL1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRib3JkZXItY29sb3I6IGdyYXk7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci13aWR0aDogMDtcbn1cbi5kal9pZSAuZGlqaXRTcGxpdHRlciB7XG5cdHotaW5kZXg6IDE7XHQvKiBiZWhpbmQgdGhlIHBhbmVzIHNvIHRoYXQgcGFuZSBib3JkZXJzIGFyZW4ndCBvYnNjdXJlZCBzZWUgdGVzdF9HdWkuaHRtbC9bMTQzOTJdICovXG59XG5cbi5kaWppdFNwbGl0dGVyQWN0aXZlIHtcblx0ei1pbmRleDogMTEgIWltcG9ydGFudDtcbn1cblxuLmRpaml0U3BsaXR0ZXJDb3ZlciB7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHR6LWluZGV4Oi0xO1xuXHR0b3A6MDtcblx0bGVmdDowO1xuXHR3aWR0aDoxMDAlO1xuXHRoZWlnaHQ6MTAwJTtcbn1cblxuLmRpaml0U3BsaXR0ZXJDb3ZlckFjdGl2ZSB7XG5cdHotaW5kZXg6MyAhaW1wb3J0YW50O1xufVxuXG4vKiAjNjk0NTogc3RvcCBtb3VzZSBldmVudHMgKi9cbi5kal9pZSAuZGlqaXRTcGxpdHRlckNvdmVyIHtcblx0YmFja2dyb3VuZDogd2hpdGU7XG5cdG9wYWNpdHk6IDA7XG59XG4uZGpfaWU2IC5kaWppdFNwbGl0dGVyQ292ZXIsXG4uZGpfaWU3IC5kaWppdFNwbGl0dGVyQ292ZXIsXG4uZGpfaWU4IC5kaWppdFNwbGl0dGVyQ292ZXIge1xuXHRmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MCk7XG59XG5cbi5kaWppdFNwbGl0dGVySCB7XG5cdGhlaWdodDogN3B4O1xuXHRib3JkZXItdG9wOjFweDtcblx0Ym9yZGVyLWJvdHRvbToxcHg7XG5cdGN1cnNvcjogcm93LXJlc2l6ZTtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5kaWppdFNwbGl0dGVyViB7XG5cdHdpZHRoOiA3cHg7XG5cdGJvcmRlci1sZWZ0OjFweDtcblx0Ym9yZGVyLXJpZ2h0OjFweDtcblx0Y3Vyc29yOiBjb2wtcmVzaXplO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmRpaml0U3BsaXRDb250YWluZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uZGlqaXRTcGxpdFBhbmUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbi5kaWppdFNwbGl0Q29udGFpbmVyU2l6ZXJILFxuLmRpaml0U3BsaXRDb250YWluZXJTaXplclYge1xuXHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0Zm9udC1zaXplOiAxcHg7XG5cdGJhY2tncm91bmQtY29sb3I6IFRocmVlREZhY2U7XG5cdGJvcmRlcjogMXB4IHNvbGlkO1xuXHRib3JkZXItY29sb3I6IFRocmVlREhpZ2hsaWdodCBUaHJlZURTaGFkb3cgVGhyZWVEU2hhZG93IFRocmVlREhpZ2hsaWdodDtcblx0bWFyZ2luOiAwO1xufVxuXG4uZGlqaXRTcGxpdENvbnRhaW5lclNpemVySCAudGh1bWIsIC5kaWppdFNwbGl0dGVyViAuZGlqaXRTcGxpdHRlclRodW1iIHtcblx0b3ZlcmZsb3c6aGlkZGVuO1xuXHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0dG9wOjQ5JTtcbn1cblxuLmRpaml0U3BsaXRDb250YWluZXJTaXplclYgLnRodW1iLCAuZGlqaXRTcGxpdHRlckggLmRpaml0U3BsaXR0ZXJUaHVtYiB7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHRsZWZ0OjQ5JTtcbn1cblxuLmRpaml0U3BsaXR0ZXJTaGFkb3csXG4uZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplckgsXG4uZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplclYge1xuXHRmb250LXNpemU6IDFweDtcblx0YmFja2dyb3VuZC1jb2xvcjogVGhyZWVEU2hhZG93O1xuXHQtbW96LW9wYWNpdHk6IDAuNTtcblx0b3BhY2l0eTogMC41O1xuXHRmaWx0ZXI6IEFscGhhKE9wYWNpdHk9NTApO1xuXHRtYXJnaW46IDA7XG59XG5cbi5kaWppdFNwbGl0Q29udGFpbmVyU2l6ZXJILCAuZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplckgge1xuXHRjdXJzb3I6IGNvbC1yZXNpemU7XG59XG5cbi5kaWppdFNwbGl0Q29udGFpbmVyU2l6ZXJWLCAuZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplclYge1xuXHRjdXJzb3I6IHJvdy1yZXNpemU7XG59XG5cbi5kal9hMTF5IC5kaWppdFNwbGl0dGVySCB7XG5cdGJvcmRlci10b3A6MXB4IHNvbGlkICNkM2QzZDMgIWltcG9ydGFudDtcblx0Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2QzZDNkMyAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0U3BsaXR0ZXJWIHtcblx0Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNkM2QzZDMgIWltcG9ydGFudDtcblx0Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjZDNkM2QzICFpbXBvcnRhbnQ7XG59XG5cbi8qIENvbnRlbnRQYW5lICovXG5cbi5kaWppdENvbnRlbnRQYW5lIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG92ZXJmbG93OiBhdXRvO1x0LyogaWYgd2UgZG9uJ3QgaGF2ZSB0aGlzIChvciBvdmVyZmxvdzpoaWRkZW4pLCB0aGVuIFdpZGdldC5yZXNpemVUbygpIGRvZXNuJ3QgbWFrZSBzZW5zZSBmb3IgQ29udGVudFBhbmUgKi9cblx0LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuXG4uZGlqaXRDb250ZW50UGFuZVNpbmdsZUNoaWxkIHtcblx0Lypcblx0ICogaWYgdGhlIENvbnRlbnRQYW5lIGhvbGRzIGEgc2luZ2xlIGxheW91dCB3aWRnZXQgY2hpbGQgd2hpY2ggaXMgYmVpbmcgc2l6ZWQgdG8gbWF0Y2ggdGhlIGNvbnRlbnQgcGFuZSxcblx0ICogdGhlbiB0aGUgQ29udGVudFBhbmUgc2hvdWxkIG5ldmVyIGdldCBhIHNjcm9sbGJhciAoYnV0IGl0IGRvZXMgZHVlIHRvIGJyb3dzZXIgYnVncywgc2VlICM5NDQ5XG5cdCAqL1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZGlqaXRDb250ZW50UGFuZUxvYWRpbmcgLmRpaml0SWNvbkxvYWRpbmcsXG4uZGlqaXRDb250ZW50UGFuZUVycm9yIC5kaWppdEljb25FcnJvciB7XG5cdG1hcmdpbi1yaWdodDogOXB4O1xufVxuXG4vKiBUaXRsZVBhbmUgYW5kIEZpZWxkc2V0ICovXG5cbi5kaWppdFRpdGxlUGFuZSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuLmRpaml0RmllbGRzZXQge1xuXHRib3JkZXI6IDFweCBzb2xpZCBncmF5O1xufVxuLmRpaml0VGl0bGVQYW5lVGl0bGUsIC5kaWppdEZpZWxkc2V0VGl0bGUge1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZGlqaXRUaXRsZVBhbmVUaXRsZUZpeGVkT3BlbiwgLmRpaml0VGl0bGVQYW5lVGl0bGVGaXhlZENsb3NlZCxcbi5kaWppdEZpZWxkc2V0VGl0bGVGaXhlZE9wZW4sIC5kaWppdEZpZWxkc2V0VGl0bGVGaXhlZENsb3NlZCB7XG5cdC8qIFRpdGxlUGFuZSBvciBGaWVsZHNldCB0aGF0IGNhbm5vdCBiZSB0b2dnbGVkICovXG5cdGN1cnNvcjogZGVmYXVsdDtcbn1cbi5kaWppdFRpdGxlUGFuZVRpdGxlICoge1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmRpaml0VGl0bGVQYW5lIC5kaWppdEFycm93Tm9kZUlubmVyLCAuZGlqaXRGaWVsZHNldCAuZGlqaXRBcnJvd05vZGVJbm5lciB7XG5cdC8qIG5vcm1hbGx5LCBoaWRlIGFycm93IHRleHQgaW4gZmF2b3Igb2YgaWNvbiAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuLmRqX2ExMXkgLmRpaml0VGl0bGVQYW5lIC5kaWppdEFycm93Tm9kZUlubmVyLCAuZGpfYTExeSAuZGlqaXRGaWVsZHNldCAuZGlqaXRBcnJvd05vZGVJbm5lciB7XG5cdC8qIC4uLiBleGNlcHQgaW4gYTExeSBtb2RlLCB0aGVuIHNob3cgdGV4dCBhcnJvdyAqL1xuXHRkaXNwbGF5OiBpbmxpbmU7XG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XHRcdC8qIGJlY2F1c2UgLSBhbmQgKyBhcmUgZGlmZmVyZW50IHdpZHRocyAqL1xufVxuLmRqX2ExMXkgLmRpaml0VGl0bGVQYW5lIC5kaWppdEFycm93Tm9kZSwgLmRqX2ExMXkgLmRpaml0RmllbGRzZXQgLmRpaml0QXJyb3dOb2RlIHtcblx0LyogLi4uIGFuZCBoaWRlIGljb24gKFRPRE86IGp1c3QgcG9pbnQgZGlqaXRJY29uIGNsYXNzIG9uIHRoZSBpY29uLCBhbmQgaXQgaGlkZXMgYXV0b21hdGljYWxseSkgKi9cblx0ZGlzcGxheTogbm9uZTtcbn1cbi5kaWppdFRpdGxlUGFuZVRpdGxlRml4ZWRPcGVuIC5kaWppdEFycm93Tm9kZSwgLmRpaml0VGl0bGVQYW5lVGl0bGVGaXhlZE9wZW4gLmRpaml0QXJyb3dOb2RlSW5uZXIsXG4uZGlqaXRUaXRsZVBhbmVUaXRsZUZpeGVkQ2xvc2VkIC5kaWppdEFycm93Tm9kZSwgLmRpaml0VGl0bGVQYW5lVGl0bGVGaXhlZENsb3NlZCAuZGlqaXRBcnJvd05vZGVJbm5lcixcbi5kaWppdEZpZWxkc2V0VGl0bGVGaXhlZE9wZW4gLmRpaml0QXJyb3dOb2RlLCAuZGlqaXRGaWVsZHNldFRpdGxlRml4ZWRPcGVuIC5kaWppdEFycm93Tm9kZUlubmVyLFxuLmRpaml0RmllbGRzZXRUaXRsZUZpeGVkQ2xvc2VkIC5kaWppdEFycm93Tm9kZSwgLmRpaml0RmllbGRzZXRUaXRsZUZpeGVkQ2xvc2VkIC5kaWppdEFycm93Tm9kZUlubmVyIHtcblx0LyogZG9uJ3Qgc2hvdyB0aGUgb3BlbiBjbG9zZSBpY29uIG9yIHRleHQgYXJyb3c7IGl0IG1ha2VzIHRoZSB1c2VyIHRoaW5rIHRoZSBwYW5lIGlzIGNsb3NhYmxlICovXG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcdC8qICFpbXBvcnRhbnQgdG8gb3ZlcnJpZGUgYWJvdmUgYTExeSBydWxlcyB0byBzaG93IHRleHQgYXJyb3cgKi9cbn1cblxuLmRqX2llNiAuZGlqaXRUaXRsZVBhbmVDb250ZW50T3V0ZXIsXG4uZGpfaWU2IC5kaWppdFRpdGxlUGFuZSAuZGlqaXRUaXRsZVBhbmVUaXRsZSB7XG5cdC8qIGZvcmNlIGhhc0xheW91dCB0byBlbnN1cmUgYm9yZGVycyBldGMsIHNob3cgdXAgKi9cblx0em9vbTogMTtcbn1cblxuLyogQ29sb3IgUGFsZXR0ZVxuICogU2l6ZXMgZGVzaWduZWQgc28gdGhhdCB0YWJsZSBjZWxsIHBvc2l0aW9ucyBtYXRjaCBpY29ucyBpbiB1bmRlcmx5aW5nIGltYWdlLFxuICogd2hpY2ggYXBwZWFyIGF0IDIweDIwIGludGVydmFscy5cbiAqL1xuXG4uZGlqaXRDb2xvclBhbGV0dGUge1xuXHRib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuXHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5kaWppdENvbG9yUGFsZXR0ZSAuZGlqaXRQYWxldHRlVGFibGUge1xuXHQvKiBUYWJsZSB0aGF0IGhvbGRzIHRoZSBwYWxldHRlIGNlbGxzLCBhbmQgb3ZlcmxheXMgaW1hZ2UgZmlsZSB3aXRoIGNvbG9yIHN3YXRjaGVzLlxuXHQgKiBwYWRkaW5nL21hcmdpbiB0byBhbGlnbiB0YWJsZSB3aXRoIGltYWdlLlxuXHQgKi9cblx0cGFkZGluZzogMnB4IDNweCAzcHggM3B4O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdG91dGxpbmU6IDA7XG5cdGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG59XG4uZGpfaWU2IC5kaWppdENvbG9yUGFsZXR0ZSAuZGlqaXRQYWxldHRlVGFibGUsXG4uZGpfaWU3IC5kaWppdENvbG9yUGFsZXR0ZSAuZGlqaXRQYWxldHRlVGFibGUsXG4uZGpfaWVxdWlya3MgLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVUYWJsZSB7XG5cdC8qIHVzaW5nIHBhZGRpbmcgYWJvdmUgc28gdGhhdCBmb2N1cyBib3JkZXIgaXNuJ3QgY3V0b2ZmIG9uIG1vei93ZWJraXQsXG5cdCAqIGJ1dCB1c2luZyBtYXJnaW4gb24gSUUgYmVjYXVzZSBwYWRkaW5nIGRvZXNuJ3Qgc2VlbSB0byB3b3JrXG5cdCAqL1xuXHRwYWRkaW5nOiAwO1xuXHRtYXJnaW46IDJweCAzcHggM3B4IDNweDtcbn1cblxuLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVDZWxsIHtcblx0LyogPHRkPiBpbiB0aGUgPHRhYmxlPiAqL1xuXHRmb250LXNpemU6IDFweDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRiYWNrZ3JvdW5kOiBub25lO1xufVxuLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVJbWcge1xuXHQvKiBDYWxsZWQgZGlqaXRQYWxldHRlSW1nIGZvciBiYWNrLWNvbXBhdCwgdGhpcyBhY3R1YWxseSB3cmFwcyB0aGUgY29sb3Igc3dhdGNoIHdpdGggYSBib3JkZXIgYW5kIHBhZGRpbmcgKi9cblx0cGFkZGluZzogMXB4O1x0XHQvKiB3aGl0ZSBhcmVhIGJldHdlZW4gZ3JheSBib3JkZXIgYW5kIGNvbG9yIHN3YXRjaCAqL1xuXHRib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuXHRtYXJnaW46IDJweCAxcHg7XG5cdGN1cnNvcjogZGVmYXVsdDtcblx0Zm9udC1zaXplOiAxcHg7XHRcdC8qIHByZXZlbnQgPHNwYW4+IGZyb20gZ2V0dGluZyBiaWdnZXIganVzdCB0byBob2xkIGEgY2hhcmFjdGVyICovXG59XG4uZGpfZ2Vja28gLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVJbWcge1xuXHRwYWRkaW5nLWJvdHRvbTogMDtcdC8qIHdvcmthcm91bmQgcmVuZGVyaW5nIGdsaXRjaCBvbiBGRiwgaXQgYWRkcyBhbiBleHRyYSBwaXhlbCBhdCB0aGUgYm90dG9tICovXG59XG4uZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0Q29sb3JQYWxldHRlU3dhdGNoIHtcblx0LyogdGhlIGFjdHVhbCBwYXJ0IHdoZXJlIHRoZSBjb2xvciBpcyAqL1xuXHR3aWR0aDogMTRweDtcblx0aGVpZ2h0OiAxMnB4O1xufVxuLmRpaml0UGFsZXR0ZVRhYmxlIHRkIHtcblx0XHRwYWRkaW5nOiAwO1xufVxuLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVDZWxsOmhvdmVyIC5kaWppdFBhbGV0dGVJbWcge1xuXHQvKiBob3ZlcmVkIGNvbG9yIHN3YXRjaCAqL1xuXHRib3JkZXI6IDFweCBzb2xpZCAjMDAwO1xufVxuXG4uZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0UGFsZXR0ZUNlbGw6YWN0aXZlIC5kaWppdFBhbGV0dGVJbWcsXG4uZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0UGFsZXR0ZVRhYmxlIC5kaWppdFBhbGV0dGVDZWxsU2VsZWN0ZWQgLmRpaml0UGFsZXR0ZUltZyB7XG5cdGJvcmRlcjogMnB4IHNvbGlkICMwMDA7XG5cdG1hcmdpbjogMXB4IDA7XHQvKiByZWR1Y2UgbWFyZ2luIHRvIGNvbXBlbnNhdGUgZm9yIGluY3JlYXNlZCBib3JkZXIgKi9cbn1cblxuXG4uZGpfYTExeSAuZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0UGFsZXR0ZVRhYmxlLFxuLmRqX2ExMXkgLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVUYWJsZSAqIHtcblx0LyogdGFibGUgY2VsbHMgYXJlIHRvIGNhdGNoIGV2ZW50cywgYnV0IHRoZSBzd2F0Y2hlcyBhcmUgaW4gdGhlIFBhbGV0dGVJbWcgYmVoaW5kIHRoZSB0YWJsZSAqL1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4vKiBBY2NvcmRpb25Db250YWluZXIgKi9cblxuLmRpaml0QWNjb3JkaW9uQ29udGFpbmVyIHtcblx0Ym9yZGVyOjFweCBzb2xpZCAjYjdiN2I3O1xuXHRib3JkZXItdG9wOjAgIWltcG9ydGFudDtcbn1cbi5kaWppdEFjY29yZGlvblRpdGxlIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmRpaml0QWNjb3JkaW9uVGl0bGVTZWxlY3RlZCB7XG5cdGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLyogaW1hZ2VzIG9mZiwgaGlnaC1jb250cmFzdCBtb2RlIHN0eWxlcyAqL1xuLmRpaml0QWNjb3JkaW9uVGl0bGUgLmFycm93VGV4dFVwLFxuLmRpaml0QWNjb3JkaW9uVGl0bGUgLmFycm93VGV4dERvd24ge1xuXHRkaXNwbGF5OiBub25lO1xuXHRmb250LXNpemU6IDAuNjVlbTtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbCAhaW1wb3J0YW50O1xufVxuXG4uZGpfYTExeSAuZGlqaXRBY2NvcmRpb25UaXRsZSAuYXJyb3dUZXh0VXAsXG4uZGpfYTExeSAuZGlqaXRBY2NvcmRpb25UaXRsZVNlbGVjdGVkIC5hcnJvd1RleHREb3duIHtcblx0ZGlzcGxheTogaW5saW5lO1xufVxuXG4uZGpfYTExeSAuZGlqaXRBY2NvcmRpb25UaXRsZVNlbGVjdGVkIC5hcnJvd1RleHRVcCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kaWppdEFjY29yZGlvbkNoaWxkV3JhcHBlciB7XG5cdC8qIHRoaXMgaXMgdGhlIG5vZGUgd2hvc2UgaGVpZ2h0IGlzIGFkanVzdGVkICovXG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIENhbGVuZGFyICovXG5cbi5kaWppdENhbGVuZGFyQ29udGFpbmVyIHRhYmxlIHtcblx0d2lkdGg6IGF1dG87XHQvKiBpbiBjYXNlIHVzZXIgaGFzIHNwZWNpZmllZCBhIHdpZHRoIGZvciB0aGUgVEFCTEUgbm9kZXMsIHNlZSAjMTA1NTMgKi9cblx0Y2xlYXI6IGJvdGg7ICAgIC8qIGNsZWFyIG1hcmdpbiBjcmVhdGVkIGZvciBsZWZ0L3JpZ2h0IG1vbnRoIGFycm93czsgbmVlZGVkIG9uIElFMTAgZm9yIENhbGVuZGFyTGl0ZSAqL1xufVxuLmRpaml0Q2FsZW5kYXJDb250YWluZXIgdGgsIC5kaWppdENhbGVuZGFyQ29udGFpbmVyIHRkIHtcblx0cGFkZGluZzogMDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmRpaml0Q2FsZW5kYXJNb250aENvbnRhaW5lciB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5kaWppdENhbGVuZGFyRGVjcmVtZW50QXJyb3cge1xuXHRmbG9hdDogbGVmdDtcbn1cbi5kaWppdENhbGVuZGFySW5jcmVtZW50QXJyb3cge1xuXHRmbG9hdDogcmlnaHQ7XG59XG5cbi5kaWppdENhbGVuZGFyWWVhckxhYmVsIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyAgICAvKiBtYWtlIHN1cmUgcHJldmlvdXMsIGN1cnJlbnQsIGFuZCBuZXh0IHllYXIgYXBwZWFyIG9uIHNhbWUgcm93ICovXG59XG5cbi5kaWppdENhbGVuZGFyTmV4dFllYXIge1xuXHRtYXJnaW46MCAwIDAgMC41NWVtO1xufVxuXG4uZGlqaXRDYWxlbmRhclByZXZpb3VzWWVhciB7XG5cdG1hcmdpbjowIDAuNTVlbSAwIDA7XG59XG5cbi5kaWppdENhbGVuZGFySW5jcmVtZW50Q29udHJvbCB7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5kaWppdENhbGVuZGFySW5jcmVtZW50Q29udHJvbCxcbi5kaWppdENhbGVuZGFyRGF0ZVRlbXBsYXRlLFxuLmRpaml0Q2FsZW5kYXJNb250aExhYmVsLFxuLmRpaml0Q2FsZW5kYXJQcmV2aW91c1llYXIsXG4uZGlqaXRDYWxlbmRhck5leHRZZWFyIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uZGlqaXRDYWxlbmRhckRpc2FibGVkRGF0ZSB7XG5cdGNvbG9yOiBncmF5O1xuXHR0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcblx0Y3Vyc29yOiBkZWZhdWx0O1xufVxuXG4uZGlqaXRTcGFjZXIge1xuXHQvKiBkb24ndCBkaXNwbGF5IGl0LCBidXQgbWFrZSBpdCBhZmZlY3QgdGhlIHdpZHRoICovXG4gIFx0cG9zaXRpb246IHJlbGF0aXZlO1xuICBcdGhlaWdodDogMXB4O1xuICBcdG92ZXJmbG93OiBoaWRkZW47XG4gIFx0dmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4vKiBTdHlsaW5nIGZvciBtb250aCBkcm9wIGRvd24gbGlzdCAqL1xuXG4uZGlqaXRDYWxlbmRhck1vbnRoTWVudSAuZGlqaXRDYWxlbmRhck1vbnRoTGFiZWwge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcbn1cblxuLyogTWVudSAqL1xuXG4uZGlqaXRNZW51IHtcblx0Ym9yZGVyOjFweCBzb2xpZCBibGFjaztcblx0YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtcbn1cbi5kaWppdE1lbnVUYWJsZSB7XG5cdGJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtcblx0Ym9yZGVyLXdpZHRoOjA7XG5cdGJhY2tncm91bmQtY29sb3I6d2hpdGU7XG59XG5cbi8qIHdvcmthcm91bmQgZm9yIHdlYmtpdCBidWcgIzg0MjcsIHJlbW92ZSB0aGlzIHdoZW4gaXQgaXMgZml4ZWQgdXBzdHJlYW0gKi9cbi5kal93ZWJraXQgLmRpaml0TWVudVRhYmxlIHRkW2NvbHNwYW49XCIyXCJde1xuXHRib3JkZXItcmlnaHQ6aGlkZGVuO1xufVxuXG4uZGlqaXRNZW51SXRlbSB7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdHBhZGRpbmc6LjFlbSAuMmVtO1xuXHRjdXJzb3I6cG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLypcbk5vIG5lZWQgdG8gc2hvdyBhIGZvY3VzIGJvcmRlciBzaW5jZSBpdCdzIG9idmlvdXMgZnJvbSB0aGUgc2hhZGluZywgYW5kIHRoZXJlJ3MgYSAuZGpfYTExeSAuZGlqaXRNZW51SXRlbVNlbGVjdGVkXG5ydWxlIGJlbG93IHRoYXQgaGFuZGxlcyB0aGUgaGlnaCBjb250cmFzdCBjYXNlIHdoZW4gdGhlcmUncyBubyBzaGFkaW5nLlxuSGlkaW5nIHRoZSBmb2N1cyBib3JkZXIgYWxzbyB3b3JrcyBhcm91bmQgd2Via2l0IGJ1ZyBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9MTI1Nzc5LlxuKi9cbi5kaWppdE1lbnVJdGVtOmZvY3VzIHtcblx0b3V0bGluZTogbm9uZVxufVxuXG4uZGlqaXRNZW51UGFzc2l2ZSAuZGlqaXRNZW51SXRlbUhvdmVyLFxuLmRpaml0TWVudUl0ZW1TZWxlY3RlZCB7XG5cdC8qXG5cdCAqIGRpaml0TWVudUl0ZW1Ib3ZlciByZWZlcnMgdG8gYWN0dWFsIG1vdXNlIG92ZXJcblx0ICogZGlqaXRNZW51SXRlbVNlbGVjdGVkIGlzIHVzZWQgYWZ0ZXIgYSBtZW51IGhhcyBiZWVuIFwiYWN0aXZhdGVkXCIgYnlcblx0ICogY2xpY2tpbmcgaXQsIHRhYmJpbmcgaW50byBpdCwgb3IgYmVpbmcgb3BlbmVkIGZyb20gYSBwYXJlbnQgbWVudSxcblx0ICogYW5kIGRlbm90ZXMgdGhhdCB0aGUgbWVudSBpdGVtIGhhcyBmb2N1cyBvciB0aGF0IGZvY3VzIGlzIG9uIGEgY2hpbGRcblx0ICogbWVudVxuXHQgKi9cblx0YmFja2dyb3VuZC1jb2xvcjpibGFjaztcblx0Y29sb3I6d2hpdGU7XG59XG5cbi5kaWppdE1lbnVJdGVtSWNvbiwgLmRpaml0TWVudUV4cGFuZCB7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG5cbi5kaWppdE1lbnVJdGVtRGlzYWJsZWQgKiB7XG5cdC8qIGZvciBhIGRpc2FibGVkIG1lbnUgaXRlbSwganVzdCBzZXQgaXQgdG8gbW9zdGx5IHRyYW5zcGFyZW50ICovXG5cdG9wYWNpdHk6MC41O1xuXHRjdXJzb3I6ZGVmYXVsdDtcbn1cbi5kal9pZSAuZGpfYTExeSAuZGlqaXRNZW51SXRlbURpc2FibGVkLFxuLmRqX2llIC5kal9hMTF5IC5kaWppdE1lbnVJdGVtRGlzYWJsZWQgKixcbi5kal9pZSAuZGlqaXRNZW51SXRlbURpc2FibGVkICoge1xuXHRjb2xvcjogZ3JheTtcblx0ZmlsdGVyOiBhbHBoYShvcGFjaXR5PTM1KTtcbn1cblxuLmRpaml0TWVudUl0ZW1MYWJlbCB7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5kal9hMTF5IC5kaWppdE1lbnVJdGVtU2VsZWN0ZWQge1xuXHRib3JkZXI6IDFweCBkb3R0ZWQgYmxhY2sgIWltcG9ydGFudDtcdC8qIGZvciAyLjAgdXNlIG91dGxpbmUgaW5zdGVhZCwgdG8gcHJldmVudCBqaXR0ZXIgKi9cbn1cblxuLmRqX2ExMXkgLmRpaml0TWVudUl0ZW1TZWxlY3RlZCAuZGlqaXRNZW51SXRlbUxhYmVsIHtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG59XG4uZGpfaWU4IC5kal9hMTF5IC5kaWppdE1lbnVJdGVtTGFiZWwge1xuXHRwb3NpdGlvbjpzdGF0aWM7XG59XG5cbi5kaWppdE1lbnVFeHBhbmRBMTF5IHtcblx0ZGlzcGxheTogbm9uZTtcbn1cbi5kal9hMTF5IC5kaWppdE1lbnVFeHBhbmRBMTF5IHtcblx0ZGlzcGxheTogaW5saW5lO1xufVxuXG4uZGlqaXRNZW51U2VwYXJhdG9yIHRkIHtcblx0Ym9yZGVyOiAwO1xuXHRwYWRkaW5nOiAwO1xufVxuXG4vKiBzZXBhcmF0b3IgY2FuIGJlIHR3byBwaXhlbHMgLS0gc2V0IGJvcmRlciBvZiBlaXRoZXIgb25lIHRvIDAgdG8gaGF2ZSBvbmx5IG9uZSAqL1xuLmRpaml0TWVudVNlcGFyYXRvclRvcCB7XG5cdGhlaWdodDogNTAlO1xuXHRtYXJnaW46IDA7XG5cdG1hcmdpbi10b3A6M3B4O1xuXHRmb250LXNpemU6IDFweDtcbn1cblxuLmRpaml0TWVudVNlcGFyYXRvckJvdHRvbSB7XG5cdGhlaWdodDogNTAlO1xuXHRtYXJnaW46IDA7XG5cdG1hcmdpbi1ib3R0b206M3B4O1xuXHRmb250LXNpemU6IDFweDtcbn1cblxuLyogQ2hlY2tlZE1lbnVJdGVtIGFuZCBSYWRpb01lbnVJdGVtICovXG4uZGlqaXRNZW51SXRlbUljb25DaGFyIHtcblx0ZGlzcGxheTogbm9uZTtcdFx0LyogZG9uJ3QgZGlzcGxheSBleGNlcHQgaW4gaGlnaCBjb250cmFzdCBtb2RlICovXG5cdHZpc2liaWxpdHk6IGhpZGRlbjtcdC8qIGZvciBoaWdoIGNvbnRyYXN0IG1vZGUgd2hlbiBtZW51aXRlbSBpcyB1bmNoZWNrZWQ6IGxlYXZlIHNwYWNlIGZvciB3aGVuIGl0IGlzIGNoZWNrZWQgKi9cbn1cbi5kal9hMTF5IC5kaWppdE1lbnVJdGVtSWNvbkNoYXIge1xuXHRkaXNwbGF5OiBpbmxpbmU7XHQvKiBkaXNwbGF5IGNoYXJhY3RlciBpbiBoaWdoIGNvbnRyYXN0IG1vZGUsIHNpbmNlIGljb24gZG9lc24ndCBzaG93ICovXG59XG4uZGlqaXRDaGVja2VkTWVudUl0ZW1DaGVja2VkIC5kaWppdE1lbnVJdGVtSWNvbkNoYXIsXG4uZGlqaXRSYWRpb01lbnVJdGVtQ2hlY2tlZCAuZGlqaXRNZW51SXRlbUljb25DaGFyIHtcblx0dmlzaWJpbGl0eTogdmlzaWJsZTsgLyogbWVudWl0ZW0gaXMgY2hlY2tlZCAqL1xufVxuLmRqX2llIC5kal9hMTF5IC5kaWppdE1lbnVCYXIgLmRpaml0TWVudUl0ZW0ge1xuXHQvKiBzbyBib3R0b20gYm9yZGVyIG9mIE1lbnVCYXIgYXBwZWFycyBvbiBJRTcgaW4gaGlnaC1jb250cmFzdCBtb2RlICovXG5cdG1hcmdpbjogMDtcbn1cblxuLyogU3RhY2tDb250YWluZXIgKi9cblxuLmRpaml0U3RhY2tDb250cm9sbGVyIC5kaWppdFRvZ2dsZUJ1dHRvbkNoZWNrZWQgKiB7XG5cdGN1cnNvcjogZGVmYXVsdDtcdC8qIGJlY2F1c2UgcHJlc3NpbmcgaXQgaGFzIG5vIGVmZmVjdCAqL1xufVxuXG4vKioqXG5UYWJDb250YWluZXJcblxuTWFpbiBjbGFzcyBoaWVyYXJjaHk6XG5cbi5kaWppdFRhYkNvbnRhaW5lciAtIHRoZSB3aG9sZSBUYWJDb250YWluZXJcbiAgIC5kaWppdFRhYkNvbnRyb2xsZXIgLyAuZGlqaXRUYWJMaXN0Q29udGFpbmVyLXRvcCAtIHdyYXBwZXIgZm9yIHRhYiBidXR0b25zLCBzY3JvbGwgYnV0dG9uc1xuXHQgLmRpaml0VGFiTGlzdFdyYXBwZXIgLyAuZGlqaXRUYWJDb250YWluZXJUb3BTdHJpcCAtIG91dGVyIHdyYXBwZXIgZm9yIHRhYiBidXR0b25zIChub3JtYWwgd2lkdGgpXG5cdFx0Lm5vd3JhcFRhYlN0cmlwIC8gLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMgLSBpbm5lciB3cmFwcGVyIGZvciB0YWIgYnV0dG9ucyAoNTBLIHdpZHRoKVxuICAgLmRpaml0VGFiUGFuZVdyYXBwZXIgLSB3cmFwcGVyIGZvciBjb250ZW50IHBhbmVzLCBoYXMgYWxsIGJvcmRlcnMgZXhjZXB0IHRoZSBvbmUgYmV0d2VlbiBjb250ZW50IGFuZCB0YWJzXG4qKiovXG5cbi5kaWppdFRhYkNvbnRhaW5lciB7XG4gICAgei1pbmRleDogMDsgLyogc28gei1pbmRleCBzZXR0aW5ncyBiZWxvdyBoYXZlIG5vIGVmZmVjdCBvdXRzaWRlIG9mIHRoZSBUYWJDb250YWluZXIgKi9cbiAgICBvdmVyZmxvdzogdmlzaWJsZTsgLyogcHJldmVudCBvZmYtYnktb25lLXBpeGVsIGVycm9ycyBmcm9tIGhpZGluZyBib3R0b20gYm9yZGVyIChvcHBvc2l0ZSB0YWIgbGFiZWxzKSAqL1xufVxuLmRqX2llNiAuZGlqaXRUYWJDb250YWluZXIge1xuICAgIC8qIHdvcmthcm91bmQgSUU2IHByb2JsZW0gd2hlbiB0YWxsIGNvbnRlbnQgb3ZlcmZsb3dzIFRhYkNvbnRhaW5lciwgc2VlIGVkaXRvci90ZXN0X0Z1bGxTY3JlZW4uaHRtbCAqL1xuICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxufVxuLmRpaml0VGFiQ29udGFpbmVyTm9MYXlvdXQge1xuXHR3aWR0aDogMTAwJTtcdC8qIG90aGVyd2lzZSBTY3JvbGxpbmdUYWJDb250cm9sbGVyIGdvZXMgdG8gNTBLIHBpeGVscyB3aWRlICovXG59XG5cbi5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS10YWJzLFxuLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMsXG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LXRhYnMsXG4uZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzIHtcbiAgICB6LWluZGV4OiAxO1xuXHRvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50OyAgLyogc28gdGFicyBjYW4gY292ZXIgdXAgYm9yZGVyIGFkamFjZW50IHRvIGNvbnRhaW5lciAqL1xufVxuXG4uZGlqaXRUYWJDb250cm9sbGVyIHtcbiAgICB6LWluZGV4OiAxO1xufVxuLmRpaml0VGFiQ29udGFpbmVyQm90dG9tLWNvbnRhaW5lcixcbi5kaWppdFRhYkNvbnRhaW5lclRvcC1jb250YWluZXIsXG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LWNvbnRhaW5lcixcbi5kaWppdFRhYkNvbnRhaW5lclJpZ2h0LWNvbnRhaW5lciB7XG5cdHotaW5kZXg6MDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0Ym9yZGVyOiAxcHggc29saWQgYmxhY2s7XG59XG4ubm93cmFwVGFiU3RyaXAge1xuXHR3aWR0aDogNTAwMDBweDtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyAgLyoganVzdCBpbiBjYXNlIGFuY2VzdG9yIGhhcyBub24tc3RhbmRhcmQgc2V0dGluZyAqL1xuICAgIHotaW5kZXg6IDE7XG59XG4uZGlqaXRUYWJMaXN0V3JhcHBlciB7XG5cdG92ZXJmbG93OiBoaWRkZW47XG4gICAgei1pbmRleDogMTtcbn1cblxuLmRqX2ExMXkgLnRhYlN0cmlwQnV0dG9uIGltZyB7XG5cdC8qIGhpZGUgdGhlIGljb25zIChvciByYXRoZXIgdGhlIGVtcHR5IHNwYWNlIHdoZXJlIHRoZXkgbm9ybWFsbHkgYXBwZWFyKSBiZWNhdXNlIHRleHQgd2lsbCBhcHBlYXIgaW5zdGVhZCAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJUb3AtdGFicyB7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBibGFjaztcbn1cbi5kaWppdFRhYkNvbnRhaW5lclRvcC1jb250YWluZXIge1xuXHRib3JkZXItdG9wOiAwO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LXRhYnMge1xuXHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCBibGFjaztcblx0ZmxvYXQ6IGxlZnQ7ICAgIC8qIG5lZWRlZCBmb3IgSUU3IFJUTCBtb2RlICovXG59XG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LWNvbnRhaW5lciB7XG5cdGJvcmRlci1sZWZ0OiAwO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJCb3R0b20tdGFicyB7XG5cdGJvcmRlci10b3A6IDFweCBzb2xpZCBibGFjaztcbn1cbi5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS1jb250YWluZXIge1xuXHRib3JkZXItYm90dG9tOiAwO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzIHtcblx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCBibGFjaztcblx0ZmxvYXQ6IGxlZnQ7ICAgIC8qIG5lZWRlZCBmb3IgSUU3IFJUTCBtb2RlICovXG59XG4uZGlqaXRUYWJDb250YWluZXJSaWdodC1jb250YWluZXIge1xuXHRib3JkZXItcmlnaHQ6IDA7XG59XG5cbmRpdi5kaWppdFRhYkRpc2FibGVkLCAuZGpfaWUgZGl2LmRpaml0VGFiRGlzYWJsZWQge1xuXHRjdXJzb3I6IGF1dG87XG59XG5cbi5kaWppdFRhYiB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRjdXJzb3I6cG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcblx0d2hpdGUtc3BhY2U6bm93cmFwO1xuXHR6LWluZGV4OjM7XG59XG4uZGlqaXRUYWIgKiB7XG5cdC8qIG1ha2UgdGFiIGljb25zIGFuZCBjbG9zZSBpY29uIGxpbmUgdXAgdy90ZXh0ICovXG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4uZGlqaXRUYWJDaGVja2VkIHtcblx0Y3Vyc29yOiBkZWZhdWx0O1x0LyogYmVjYXVzZSBjbGlja2luZyB3aWxsIGhhdmUgbm8gZWZmZWN0ICovXG59XG5cbi5kaWppdFRhYkNvbnRhaW5lclRvcC10YWJzIC5kaWppdFRhYiB7XG5cdHRvcDogMXB4O1x0LyogdG8gb3ZlcmxhcCBib3JkZXIgb24gLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMgKi9cbn1cbi5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS10YWJzIC5kaWppdFRhYiB7XG5cdHRvcDogLTFweDtcdC8qIHRvIG92ZXJsYXAgYm9yZGVyIG9uIC5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS10YWJzICovXG59XG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LXRhYnMgLmRpaml0VGFiIHtcblx0bGVmdDogMXB4O1x0LyogdG8gb3ZlcmxhcCBib3JkZXIgb24gLmRpaml0VGFiQ29udGFpbmVyTGVmdC10YWJzICovXG59XG4uZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzIC5kaWppdFRhYiB7XG5cdGxlZnQ6IC0xcHg7XHQvKiB0byBvdmVybGFwIGJvcmRlciBvbiAuZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzICovXG59XG5cblxuLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMgLmRpaml0VGFiLFxuLmRpaml0VGFiQ29udGFpbmVyQm90dG9tLXRhYnMgLmRpaml0VGFiIHtcblx0LyogSW5saW5lLWJsb2NrICovXG5cdGRpc3BsYXk6aW5saW5lLWJsb2NrO1x0XHRcdC8qIHdlYmtpdCBhbmQgRkYzICovXG5cdCN6b29tOiAxOyAvKiBzZXQgaGFzTGF5b3V0OnRydWUgdG8gbWltaWMgaW5saW5lLWJsb2NrICovXG5cdCNkaXNwbGF5OmlubGluZTsgLyogZG9uJ3QgdXNlIC5kal9pZSBzaW5jZSB0aGF0IGluY3JlYXNlcyB0aGUgcHJpb3JpdHkgKi9cbn1cblxuLnRhYlN0cmlwQnV0dG9uIHtcblx0ei1pbmRleDogMTI7XG59XG5cbi5kaWppdFRhYkJ1dHRvbkRpc2FibGVkIC50YWJTdHJpcEJ1dHRvbiB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cblxuLmRpaml0VGFiQ2xvc2VCdXR0b24ge1xuXHRtYXJnaW4tbGVmdDogMWVtO1xufVxuXG4uZGlqaXRUYWJDbG9zZVRleHQge1xuXHRkaXNwbGF5Om5vbmU7XG59XG5cbi5kaWppdFRhYiAudGFiTGFiZWwge1xuXHQvKiBtYWtlIHN1cmUgdGFicyB3L2Nsb3NlIGJ1dHRvbiBhbmQgdy9vdXQgY2xvc2UgYnV0dG9uIGFyZSBzYW1lIGhlaWdodCwgZXZlbiB3L3NtYWxsICg8MTVweCkgZm9udC5cblx0ICogYXNzdW1lcyA8PTE1cHggaGVpZ2h0IGZvciBjbG9zZSBidXR0b24gaWNvbi5cblx0ICovXG5cdG1pbi1oZWlnaHQ6IDE1cHg7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5kaWppdE5vSWNvbiB7XG5cdC8qIGFwcGxpZWQgdG8gPGltZz4vPHNwYW4+IG5vZGUgd2hlbiB0aGVyZSBpcyBubyBpY29uIHNwZWNpZmllZCAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuLmRqX2llNiAuZGlqaXRUYWIgLmRpaml0Tm9JY29uIHtcblx0LyogYmVjYXVzZSBtaW4taGVpZ2h0IChvbiAudGFiTGFiZWwsIGFib3ZlKSBkb2Vzbid0IHdvcmsgb24gSUU2ICovXG5cdGRpc3BsYXk6IGlubGluZTtcblx0aGVpZ2h0OiAxNXB4O1xuXHR3aWR0aDogMXB4O1xufVxuXG4vKiBpbWFnZXMgb2ZmLCBoaWdoLWNvbnRyYXN0IG1vZGUgc3R5bGVzICovXG5cbi5kal9hMTF5IC5kaWppdFRhYkNsb3NlQnV0dG9uIHtcblx0YmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuXHR3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLmRqX2ExMXkgLmRpaml0VGFiQ2xvc2VUZXh0IHtcblx0ZGlzcGxheTogaW5saW5lO1xufVxuXG4uZGlqaXRUYWJQYW5lLFxuLmRpaml0U3RhY2tDb250YWluZXItY2hpbGQsXG4uZGlqaXRBY2NvcmRpb25Db250YWluZXItY2hpbGQge1xuXHQvKiBjaGlsZHJlbiBvZiBUYWJDb250YWluZXIsIFN0YWNrQ29udGFpbmVyLCBhbmQgQWNjb3JkaW9uQ29udGFpbmVyIHNob3VsZG4ndCBoYXZlIGJvcmRlcnNcblx0ICogYi9jIGEgYm9yZGVyIGlzIGFscmVhZHkgdGhlcmUgZnJvbSB0aGUgVGFiQ29udGFpbmVyL1N0YWNrQ29udGFpbmVyL0FjY29yZGlvbkNvbnRhaW5lciBpdHNlbGYuXG5cdCAqL1xuICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiBJbmxpbmVFZGl0Qm94ICovXG4uZGlqaXRJbmxpbmVFZGl0Qm94RGlzcGxheU1vZGUge1xuXHRib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcdC8qIHNvIGtleWxpbmUgKGJvcmRlcikgb24gaG92ZXIgY2FuIGFwcGVhciB3aXRob3V0IHNjcmVlbiBqdW1wICovXG5cdGN1cnNvcjogdGV4dDtcbn1cblxuLmRqX2ExMXkgLmRpaml0SW5saW5lRWRpdEJveERpc3BsYXlNb2RlLFxuLmRqX2llNiAuZGlqaXRJbmxpbmVFZGl0Qm94RGlzcGxheU1vZGUge1xuXHQvKiBleGNlcHQgdGhhdCBJRTYgZG9lc24ndCBzdXBwb3J0IHRyYW5zcGFyZW50IGJvcmRlcnMsIG5vciBkb2VzIGhpZ2ggY29udHJhc3QgbW9kZSAqL1xuXHRib3JkZXI6IG5vbmU7XG59XG5cbi5kaWppdElubGluZUVkaXRCb3hEaXNwbGF5TW9kZUhvdmVyLFxuLmRqX2ExMXkgLmRpaml0SW5saW5lRWRpdEJveERpc3BsYXlNb2RlSG92ZXIsXG4uZGpfaWU2IC5kaWppdElubGluZUVkaXRCb3hEaXNwbGF5TW9kZUhvdmVyIHtcblx0LyogQW4gSW5saW5lRWRpdEJveCBpbiB2aWV3IG1vZGUgKGNsaWNrIHRoaXMgdG8gZWRpdCB0aGUgdGV4dCkgKi9cblx0YmFja2dyb3VuZC1jb2xvcjogI2UyZWJmMjtcblx0Ym9yZGVyOiBzb2xpZCAxcHggYmxhY2s7XG59XG5cbi5kaWppdElubGluZUVkaXRCb3hEaXNwbGF5TW9kZURpc2FibGVkIHtcblx0Y3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKiBUcmVlICovXG4uZGlqaXRUcmVlIHtcblx0b3ZlcmZsb3c6IGF1dG87XHQvKiBmb3Igc2Nyb2xsYmFycyB3aGVuIFRyZWUgaGFzIGEgaGVpZ2h0IHNldHRpbmcsIGFuZCB0byBwcmV2ZW50IHdyYXBwaW5nIGFyb3VuZCBmbG9hdCBlbGVtZW50cywgc2VlICMxMTQ5MSAqL1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uZGlqaXRUcmVlQ29udGFpbmVyIHtcblx0ZmxvYXQ6IGxlZnQ7XHQvKiBmb3IgY29ycmVjdCBoaWdobGlnaHRpbmcgZHVyaW5nIGhvcml6b250YWwgc2Nyb2xsLCBzZWUgIzE2MTMyICovXG59XG5cbi5kaWppdFRyZWVJbmRlbnQge1xuXHQvKiBhbW91bnQgdG8gaW5kZW50IGVhY2ggdHJlZSBub2RlIChyZWxhdGl2ZSB0byBwYXJlbnQgbm9kZSkgKi9cblx0d2lkdGg6IDE5cHg7XG59XG5cbi5kaWppdFRyZWVSb3csIC5kaWppdFRyZWVDb250ZW50IHtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmRqX2llIC5kaWppdFRyZWVMYWJlbDpmb2N1cyB7XG5cdC8qIHdvcmthcm91bmQgSUU5IGJlaGF2aW9yIHdoZXJlIGRvd24gYXJyb3dpbmcgdGhyb3VnaCBUcmVlTm9kZXMgZG9lc24ndCBzaG93IGZvY3VzIG91dGxpbmUgKi9cblx0b3V0bGluZTogMXB4IGRvdHRlZCBibGFjaztcbn1cblxuLmRpaml0VHJlZVJvdyBpbWcge1xuXHQvKiBtYWtlIHRoZSBleHBhbmRvIGFuZCBmb2xkZXIgaWNvbnMgbGluZSB1cCB3aXRoIHRoZSBsYWJlbCAqL1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uZGlqaXRUcmVlQ29udGVudCB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4uZGlqaXRFeHBhbmRvVGV4dCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kal9hMTF5IC5kaWppdEV4cGFuZG9UZXh0IHtcblx0ZGlzcGxheTogaW5saW5lO1xuXHRwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cdHBhZGRpbmctcmlnaHQ6IDEwcHg7XG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci13aWR0aDogdGhpbjtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZGlqaXRUcmVlTGFiZWwge1xuXHRtYXJnaW46IDAgNHB4O1xufVxuXG4vKiBEaWFsb2cgKi9cblxuLmRpaml0RGlhbG9nIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiA5OTk7XG5cdG92ZXJmbG93OiBoaWRkZW47XHQvKiBvdmVycmlkZSBvdmVyZmxvdzogYXV0bzsgZnJvbSBDb250ZW50UGFuZSB0byBtYWtlIGRyYWdnaW5nIHNtb290aGVyICovXG59XG5cbi5kaWppdERpYWxvZ1RpdGxlQmFyIHtcblx0Y3Vyc29yOiBtb3ZlO1xufVxuLmRpaml0RGlhbG9nRml4ZWQgLmRpaml0RGlhbG9nVGl0bGVCYXIge1xuXHRjdXJzb3I6ZGVmYXVsdDtcbn1cbi5kaWppdERpYWxvZ0Nsb3NlSWNvbiB7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5kaWppdERpYWxvZ1BhbmVDb250ZW50IHtcblx0LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuLmRpaml0RGlhbG9nVW5kZXJsYXlXcmFwcGVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAwO1xuXHR0b3A6IDA7XG5cdHotaW5kZXg6IDk5ODtcblx0ZGlzcGxheTogbm9uZTtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cblxuLmRpaml0RGlhbG9nVW5kZXJsYXkge1xuXHRiYWNrZ3JvdW5kOiAjZWVlO1xuXHRvcGFjaXR5OiAwLjU7XG59XG5cbi5kal9pZSAuZGlqaXREaWFsb2dVbmRlcmxheSB7XG5cdGZpbHRlcjogYWxwaGEob3BhY2l0eT01MCk7XG59XG5cbi8qIGltYWdlcyBvZmYsIGhpZ2gtY29udHJhc3QgbW9kZSBzdHlsZXMgKi9cbi5kal9hMTF5IC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIsXG4uZGpfYTExeSAuZGlqaXREaWFsb2cge1xuXHRvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdERpYWxvZyAuY2xvc2VUZXh0IHtcblx0ZGlzcGxheTpub25lO1xuXHQvKiBmb3IgdGhlIG9uaG92ZXIgYm9yZGVyIGluIGhpZ2ggY29udHJhc3Qgb24gSUU6ICovXG5cdHBvc2l0aW9uOmFic29sdXRlO1xufVxuXG4uZGpfYTExeSAuZGlqaXREaWFsb2cgLmNsb3NlVGV4dCB7XG5cdGRpc3BsYXk6aW5saW5lO1xufVxuXG4vKiBTbGlkZXIgKi9cblxuLmRpaml0U2xpZGVyTW92ZWFibGUge1xuXHR6LWluZGV4Ojk5O1xuXHRwb3NpdGlvbjphYnNvbHV0ZSAhaW1wb3J0YW50O1xuXHRkaXNwbGF5OmJsb2NrO1xuXHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XG59XG5cbi5kaWppdFNsaWRlck1vdmVhYmxlSCB7XG5cdHJpZ2h0OjA7XG59XG4uZGlqaXRTbGlkZXJNb3ZlYWJsZVYge1xuXHRyaWdodDo1MCU7XG59XG5cbi5kal9hMTF5IGRpdi5kaWppdFNsaWRlckltYWdlSGFuZGxlLFxuLmRpaml0U2xpZGVySW1hZ2VIYW5kbGUge1xuXHRtYXJnaW46MDtcblx0cGFkZGluZzowO1xuXHRwb3NpdGlvbjpyZWxhdGl2ZSAhaW1wb3J0YW50O1xuXHRib3JkZXI6OHB4IHNvbGlkIGdyYXk7XG5cdHdpZHRoOjA7XG5cdGhlaWdodDowO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZGpfaWVxdWlya3MgLmRqX2ExMXkgLmRpaml0U2xpZGVySW1hZ2VIYW5kbGUge1xuXHRmb250LXNpemU6IDA7XG59XG4uZGpfaWU3IC5kaWppdFNsaWRlckltYWdlSGFuZGxlIHtcblx0b3ZlcmZsb3c6IGhpZGRlbjsgLyogSUU3IHdvcmthcm91bmQgdG8gbWFrZSBzbGlkZXIgaGFuZGxlIFZJU0lCTEUgaW4gbm9uLWExMXkgbW9kZSAqL1xufVxuLmRqX2llNyAuZGpfYTExeSAuZGlqaXRTbGlkZXJJbWFnZUhhbmRsZSB7XG5cdG92ZXJmbG93OiB2aXNpYmxlOyAvKiBJRTcgd29ya2Fyb3VuZCB0byBtYWtlIHNsaWRlciBoYW5kbGUgVklTSUJMRSBpbiBhMTF5IG1vZGUgKi9cbn1cbi5kal9hMTF5IC5kaWppdFNsaWRlckZvY3VzZWQgLmRpaml0U2xpZGVySW1hZ2VIYW5kbGUge1xuXHRib3JkZXI6NHB4IHNvbGlkICMwMDA7XG5cdGhlaWdodDo4cHg7XG5cdHdpZHRoOjhweDtcbn1cblxuLmRpaml0U2xpZGVySW1hZ2VIYW5kbGVWIHtcblx0dG9wOi04cHg7XG5cdHJpZ2h0OiAtNTAlO1xufVxuXG4uZGlqaXRTbGlkZXJJbWFnZUhhbmRsZUgge1xuXHRsZWZ0OjUwJTtcblx0dG9wOi01cHg7XG5cdHZlcnRpY2FsLWFsaWduOnRvcDtcbn1cblxuLmRpaml0U2xpZGVyQmFyIHtcblx0Ym9yZGVyLXN0eWxlOnNvbGlkO1xuXHRib3JkZXItY29sb3I6YmxhY2s7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmRpaml0U2xpZGVyQmFyQ29udGFpbmVyViB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRoZWlnaHQ6MTAwJTtcblx0ei1pbmRleDoxO1xufVxuXG4uZGlqaXRTbGlkZXJCYXJDb250YWluZXJIIHtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdHotaW5kZXg6MTtcbn1cblxuLmRpaml0U2xpZGVyQmFySCB7XG5cdGhlaWdodDo0cHg7XG5cdGJvcmRlci13aWR0aDoxcHggMDtcbn1cblxuLmRpaml0U2xpZGVyQmFyViB7XG5cdHdpZHRoOjRweDtcblx0Ym9yZGVyLXdpZHRoOjAgMXB4O1xufVxuXG4uZGlqaXRTbGlkZXJQcm9ncmVzc0JhciB7XG5cdGJhY2tncm91bmQtY29sb3I6cmVkO1xuXHR6LWluZGV4OjE7XG59XG5cbi5kaWppdFNsaWRlclByb2dyZXNzQmFyViB7XG5cdHBvc2l0aW9uOnN0YXRpYyAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6MDtcblx0dmVydGljYWwtYWxpZ246dG9wO1xuXHR0ZXh0LWFsaWduOmxlZnQ7XG59XG5cbi5kaWppdFNsaWRlclByb2dyZXNzQmFySCB7XG5cdHBvc2l0aW9uOmFic29sdXRlICFpbXBvcnRhbnQ7XG5cdHdpZHRoOjA7XG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0b3ZlcmZsb3c6dmlzaWJsZTtcbn1cblxuLmRpaml0U2xpZGVyUmVtYWluaW5nQmFyIHtcblx0b3ZlcmZsb3c6aGlkZGVuO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O1xuXHR6LWluZGV4OjE7XG59XG5cbi5kaWppdFNsaWRlclJlbWFpbmluZ0JhclYge1xuXHRoZWlnaHQ6MTAwJTtcblx0dGV4dC1hbGlnbjpsZWZ0O1xufVxuXG4uZGlqaXRTbGlkZXJSZW1haW5pbmdCYXJIIHtcblx0d2lkdGg6MTAwJSAhaW1wb3J0YW50O1xufVxuXG4vKiB0aGUgc2xpZGVyIGJ1bXBlciBpcyB0aGUgc3BhY2UgY29uc3VtZWQgYnkgdGhlIHNsaWRlciBoYW5kbGUgd2hlbiBpdCBoYW5ncyBvdmVyIGFuIGVkZ2UgKi9cbi5kaWppdFNsaWRlckJ1bXBlciB7XG5cdG92ZXJmbG93OmhpZGRlbjtcblx0ei1pbmRleDoxO1xufVxuXG4uZGlqaXRTbGlkZXJCdW1wZXJWIHtcblx0d2lkdGg6NHB4O1xuXHRoZWlnaHQ6OHB4O1xuXHRib3JkZXItd2lkdGg6MCAxcHg7XG59XG5cbi5kaWppdFNsaWRlckJ1bXBlckgge1xuXHR3aWR0aDo4cHg7XG5cdGhlaWdodDo0cHg7XG5cdGJvcmRlci13aWR0aDoxcHggMDtcbn1cblxuLmRpaml0U2xpZGVyQm90dG9tQnVtcGVyLFxuLmRpaml0U2xpZGVyTGVmdEJ1bXBlciB7XG5cdGJhY2tncm91bmQtY29sb3I6cmVkO1xufVxuXG4uZGlqaXRTbGlkZXJUb3BCdW1wZXIsXG4uZGlqaXRTbGlkZXJSaWdodEJ1bXBlciB7XG5cdGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7XG59XG5cbi5kaWppdFNsaWRlckRlY29yYXRpb24ge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcbn1cblxuLmRpaml0U2xpZGVyRGVjb3JhdGlvbkMsXG4uZGlqaXRTbGlkZXJEZWNvcmF0aW9uViB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogbmVlZGVkIGZvciBJRStxdWlya3MrUlRMK3ZlcnRpY2FsIChyZW5kZXJpbmcgYnVnKSBidXQgYWRkIGV2ZXJ5d2hlcmUgZm9yIGN1c3RvbSBzdHlsaW5nIGNvbnNpc3RlbmN5IGJ1dCB0aGlzIG1lc3NlcyB1cCBJRSBob3Jpem9udGFsIHNsaWRlcnMgKi9cbn1cblxuLmRpaml0U2xpZGVyRGVjb3JhdGlvbkgge1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLmRpaml0U2xpZGVyRGVjb3JhdGlvblYge1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5kaWppdFNsaWRlckJ1dHRvbiB7XG5cdGZvbnQtZmFtaWx5Om1vbm9zcGFjZTtcblx0bWFyZ2luOjA7XG5cdHBhZGRpbmc6MDtcblx0ZGlzcGxheTpibG9jaztcbn1cblxuLmRqX2ExMXkgLmRpaml0U2xpZGVyQnV0dG9uSW5uZXIge1xuXHR2aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDtcbn1cblxuLmRpaml0U2xpZGVyQnV0dG9uQ29udGFpbmVyIHtcblx0dGV4dC1hbGlnbjpjZW50ZXI7XG5cdGhlaWdodDowO1x0LyogPz8/ICovXG59XG4uZGlqaXRTbGlkZXJCdXR0b25Db250YWluZXIgKiB7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmRpaml0U2xpZGVyIC5kaWppdEJ1dHRvbk5vZGUge1xuXHRwYWRkaW5nOjA7XG5cdGRpc3BsYXk6YmxvY2s7XG59XG5cbi5kaWppdFJ1bGVDb250YWluZXIge1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0b3ZlcmZsb3c6dmlzaWJsZTtcbn1cblxuLmRpaml0UnVsZUNvbnRhaW5lclYge1xuXHRoZWlnaHQ6MTAwJTtcblx0bGluZS1oZWlnaHQ6MDtcblx0ZmxvYXQ6bGVmdDtcblx0dGV4dC1hbGlnbjpsZWZ0O1xufVxuXG4uZGpfb3BlcmEgLmRpaml0UnVsZUNvbnRhaW5lclYge1xuXHRsaW5lLWhlaWdodDoyJTtcbn1cblxuLmRqX2llIC5kaWppdFJ1bGVDb250YWluZXJWIHtcblx0bGluZS1oZWlnaHQ6bm9ybWFsO1xufVxuXG4uZGpfZ2Vja28gLmRpaml0UnVsZUNvbnRhaW5lclYge1xuXHRtYXJnaW46MCAwIDFweCAwOyAvKiBtb3ppbGxhIGJ1ZyB3b3JrYXJvdW5kIGZvciBmbG9hdDpsZWZ0LGhlaWdodDoxMDAlIGJsb2NrIGVsZW1lbnRzICovXG59XG5cbi5kaWppdFJ1bGVNYXJrIHtcblx0cG9zaXRpb246YWJzb2x1dGU7XG5cdGJvcmRlcjoxcHggc29saWQgYmxhY2s7XG5cdGxpbmUtaGVpZ2h0OjA7XG5cdGhlaWdodDoxMDAlO1xufVxuXG4uZGlqaXRSdWxlTWFya0gge1xuXHR3aWR0aDowO1xuXHRib3JkZXItdG9wLXdpZHRoOjAgIWltcG9ydGFudDtcblx0Ym9yZGVyLWJvdHRvbS13aWR0aDowICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1sZWZ0LXdpZHRoOjAgIWltcG9ydGFudDtcbn1cblxuLmRpaml0UnVsZUxhYmVsQ29udGFpbmVyIHtcblx0cG9zaXRpb246YWJzb2x1dGU7XG59XG5cbi5kaWppdFJ1bGVMYWJlbENvbnRhaW5lckgge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG59XG5cbi5kaWppdFJ1bGVMYWJlbEgge1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0bGVmdDotNTAlO1xufVxuXG4uZGlqaXRSdWxlTGFiZWxWIHtcblx0Lyogc28gdGhhdCBsb25nIGxhYmVscyBkb24ndCBvdmVyZmxvdyB0byBtdWx0aXBsZSByb3dzLCBvciBvdmVyd3JpdGUgc2xpZGVyIGl0c2VsZiAqL1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmRpaml0UnVsZU1hcmtWIHtcblx0aGVpZ2h0OjA7XG5cdGJvcmRlci1yaWdodC13aWR0aDowICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1ib3R0b20td2lkdGg6MCAhaW1wb3J0YW50O1xuXHRib3JkZXItbGVmdC13aWR0aDowICFpbXBvcnRhbnQ7XG5cdHdpZHRoOjEwMCU7XG5cdGxlZnQ6MDtcbn1cblxuLmRqX2llIC5kaWppdFJ1bGVMYWJlbENvbnRhaW5lclYge1xuXHRtYXJnaW4tdG9wOi0uNTVlbTtcbn1cblxuLmRqX2ExMXkgLmRpaml0U2xpZGVyUmVhZE9ubHksXG4uZGpfYTExeSAuZGlqaXRTbGlkZXJEaXNhYmxlZCB7XG5cdG9wYWNpdHk6MC42O1xufVxuLmRqX2llIC5kal9hMTF5IC5kaWppdFNsaWRlclJlYWRPbmx5IC5kaWppdFNsaWRlckJhcixcbi5kal9pZSAuZGpfYTExeSAuZGlqaXRTbGlkZXJEaXNhYmxlZCAuZGlqaXRTbGlkZXJCYXIge1xuXHRmaWx0ZXI6IGFscGhhKG9wYWNpdHk9NDApO1xufVxuXG4vKiArIGFuZCAtIFNsaWRlciBidXR0b25zOiBvdmVycmlkZSB0aGVtZSBzZXR0aW5ncyB0byBkaXNwbGF5IGljb25zICovXG4uZGpfYTExeSAuZGlqaXRTbGlkZXIgLmRpaml0U2xpZGVyQnV0dG9uQ29udGFpbmVyIGRpdiB7XG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7IC8qIG90aGVyd2lzZSBoeXBoZW4gaXMgbGFyZ2VyIGFuZCBtb3JlIHZlcnRpY2FsbHkgY2VudGVyZWQgKi9cblx0Zm9udC1zaXplOiAxZW07XG5cdGxpbmUtaGVpZ2h0OiAxZW07XG5cdGhlaWdodDogYXV0bztcblx0d2lkdGg6IGF1dG87XG5cdG1hcmdpbjogMCA0cHg7XG59XG5cbi8qIEljb24tb25seSBidXR0b25zIChvZnRlbiBpbiB0b29sYmFycykgc3RpbGwgZGlzcGxheSB0aGUgdGV4dCBpbiBoaWdoLWNvbnRyYXN0IG1vZGUgKi9cbi5kal9hMTF5IC5kaWppdEJ1dHRvbkNvbnRlbnRzIC5kaWppdEJ1dHRvblRleHQsXG4uZGpfYTExeSAuZGlqaXRUYWIgLnRhYkxhYmVsIHtcblx0ZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG59XG4uZGpfYTExeSAuZGlqaXRTZWxlY3QgLmRpaml0QnV0dG9uVGV4dCB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xufVxuXG4vKiBUZXh0QXJlYSwgU2ltcGxlVGV4dEFyZWEgKi9cbi5kaWppdFRleHRBcmVhIHtcblx0d2lkdGg6MTAwJTtcblx0b3ZlcmZsb3cteTogYXV0bztcdC8qIHcvb3V0IHRoaXMgSUUncyBTaW1wbGVUZXh0QXJlYSBnb2VzIHRvIG92ZXJmbG93OiBzY3JvbGwgKi9cbn1cbi5kaWppdFRleHRBcmVhW2NvbHNdIHtcblx0d2lkdGg6YXV0bzsgLyogU2ltcGxlVGV4dEFyZWEgY29scyAqL1xufVxuLmRqX2llIC5kaWppdFRleHRBcmVhQ29scyB7XG5cdHdpZHRoOmF1dG87XG59XG5cbi5kaWppdEV4cGFuZGluZ1RleHRBcmVhIHtcblx0LyogZm9yIGF1dG8gZXhhbmRpbmcgdGV4dGFyZWEgKGNhbGxlZCBUZXh0YXJlYSBjdXJyZW50bHksIHJlbmFtZSBmb3IgMi4wKSBkb24ndCB3YW50IHRvIGRpc3BsYXkgdGhlIGdyaXAgdG8gcmVzaXplICovXG5cdHJlc2l6ZTogbm9uZTtcbn1cblxuXG4vKiBUb29sYmFyXG4gKiBOb3RlIHRoYXQgb3RoZXIgdG9vbGJhciBydWxlcyAoZm9yIG9iamVjdHMgaW4gdG9vbGJhcnMpIGFyZSBzY2F0dGVyZWQgdGhyb3VnaG91dCB0aGlzIGZpbGUuXG4gKi9cblxuLmRpaml0VG9vbGJhclNlcGFyYXRvciB7XG5cdGhlaWdodDogMThweDtcblx0d2lkdGg6IDVweDtcblx0cGFkZGluZzogMCAxcHg7XG5cdG1hcmdpbjogMDtcbn1cblxuLyogRWRpdG9yICovXG4uZGlqaXRJRUZpeGVkVG9vbGJhciB7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHQvKiB0b3A6MDsgKi9cblx0dG9wOiBleHByZXNzaW9uKGV2YWwoKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudHx8ZG9jdW1lbnQuYm9keSkuc2Nyb2xsVG9wKSk7XG59XG5cbi5kaWppdEVkaXRvciB7XG5cdGRpc3BsYXk6IGJsb2NrO1x0LyogcHJldmVudHMgZ2xpdGNoIG9uIEZGIHdpdGggSW5saW5lRWRpdEJveCwgc2VlICM4NDA0ICovXG59XG5cbi5kaWppdEVkaXRvckRpc2FibGVkLFxuLmRpaml0RWRpdG9yUmVhZE9ubHkge1xuXHRjb2xvcjogZ3JheTtcbn1cblxuLyogVGltZVBpY2tlciAqL1xuXG4uZGlqaXRUaW1lUGlja2VyIHtcblx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uZGlqaXRUaW1lUGlja2VySXRlbSB7XG5cdGN1cnNvcjpwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmRpaml0VGltZVBpY2tlckl0ZW1Ib3ZlciB7XG5cdGJhY2tncm91bmQtY29sb3I6Z3JheTtcblx0Y29sb3I6d2hpdGU7XG59XG4uZGlqaXRUaW1lUGlja2VySXRlbVNlbGVjdGVkIHtcblx0Zm9udC13ZWlnaHQ6Ym9sZDtcblx0Y29sb3I6IzMzMztcblx0YmFja2dyb3VuZC1jb2xvcjojYjdjZGVlO1xufVxuLmRpaml0VGltZVBpY2tlckl0ZW1EaXNhYmxlZCB7XG5cdGNvbG9yOmdyYXk7XG5cdHRleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2g7XG59XG5cbi5kaWppdFRpbWVQaWNrZXJJdGVtSW5uZXIge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0Ym9yZGVyOjA7XG5cdHBhZGRpbmc6MnB4IDhweCAycHggOHB4O1xufVxuXG4uZGlqaXRUaW1lUGlja2VyVGljayxcbi5kaWppdFRpbWVQaWNrZXJNYXJrZXIge1xuXHRib3JkZXItYm90dG9tOjFweCBzb2xpZCBncmF5O1xufVxuXG4uZGlqaXRUaW1lUGlja2VyIC5kaWppdERvd25BcnJvd0J1dHRvbiB7XG5cdGJvcmRlci10b3A6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmRpaml0VGltZVBpY2tlclRpY2sge1xuXHRjb2xvcjojQ0NDO1xufVxuXG4uZGlqaXRUaW1lUGlja2VyTWFya2VyIHtcblx0Y29sb3I6YmxhY2s7XG5cdGJhY2tncm91bmQtY29sb3I6I0NDQztcbn1cblxuLmRqX2ExMXkgLmRpaml0VGltZVBpY2tlckl0ZW1TZWxlY3RlZCAuZGlqaXRUaW1lUGlja2VySXRlbUlubmVyIHtcblx0Ym9yZGVyOiBzb2xpZCA0cHggYmxhY2s7XG59XG4uZGpfYTExeSAuZGlqaXRUaW1lUGlja2VySXRlbUhvdmVyIC5kaWppdFRpbWVQaWNrZXJJdGVtSW5uZXIge1xuXHRib3JkZXI6IGRhc2hlZCA0cHggYmxhY2s7XG59XG5cblxuLmRpaml0VG9nZ2xlQnV0dG9uSWNvbkNoYXIge1xuXHQvKiBjaGFyYWN0ZXIgKGluc3RlYWQgb2YgaWNvbikgdG8gc2hvdyB0aGF0IFRvZ2dsZUJ1dHRvbiBpcyBjaGVja2VkICovXG5cdGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0VG9nZ2xlQnV0dG9uIC5kaWppdFRvZ2dsZUJ1dHRvbkljb25DaGFyIHtcblx0ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudDtcblx0dmlzaWJpbGl0eTpoaWRkZW47XG59XG4uZGpfaWU2IC5kaWppdFRvZ2dsZUJ1dHRvbkljb25DaGFyLCAuZGpfaWU2IC50YWJTdHJpcEJ1dHRvbiAuZGlqaXRCdXR0b25UZXh0IHtcblx0Zm9udC1mYW1pbHk6IFwiQXJpYWwgVW5pY29kZSBNU1wiO1x0Lyogb3RoZXJ3aXNlIHRoZSBhMTF5IGNoYXJhY3RlciAoY2hlY2ttYXJrLCBhcnJvdywgZXRjLikgYXBwZWFycyBhcyBhIGJveCAqL1xufVxuLmRqX2ExMXkgLmRpaml0VG9nZ2xlQnV0dG9uQ2hlY2tlZCAuZGlqaXRUb2dnbGVCdXR0b25JY29uQ2hhciB7XG5cdGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyAvKiBJbiBoaWdoIGNvbnRyYXN0IG1vZGUsIGRpc3BsYXkgdGhlIGNoZWNrIHN5bWJvbCAqL1xuXHR2aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDtcbn1cblxuLmRpaml0QXJyb3dCdXR0b25DaGFyIHtcblx0ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG59XG4uZGpfYTExeSAuZGlqaXRBcnJvd0J1dHRvbkNoYXIge1xuXHRkaXNwbGF5OmlubGluZSAhaW1wb3J0YW50O1xufVxuXG4uZGpfYTExeSAuZGlqaXREcm9wRG93bkJ1dHRvbiAuZGlqaXRBcnJvd0J1dHRvbklubmVyLFxuLmRqX2ExMXkgLmRpaml0Q29tYm9CdXR0b24gLmRpaml0QXJyb3dCdXR0b25Jbm5lciB7XG5cdGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiBTZWxlY3QgKi9cbi5kal9hMTF5IC5kaWppdFNlbGVjdCB7XG5cdGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGUgIWltcG9ydGFudDtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG59XG4uZGpfaWUgLmRpaml0U2VsZWN0IHtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTsgLyogU2V0IHRoaXMgYmFjayBmb3Igd2hhdCB3ZSBoYWNrIGluIGRpaml0IGlubGluZSAqL1xufVxuLmRqX2llNiAuZGlqaXRTZWxlY3QgLmRpaml0VmFsaWRhdGlvbkNvbnRhaW5lcixcbi5kal9pZTggLmRpaml0U2VsZWN0IC5kaWppdEJ1dHRvblRleHQge1xuXHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLmRqX2llNiAuZGlqaXRUZXh0Qm94IC5kaWppdElucHV0Q29udGFpbmVyLFxuLmRqX2llcXVpcmtzIC5kaWppdFRleHRCb3ggLmRpaml0SW5wdXRDb250YWluZXIsXG4uZGpfaWU2IC5kaWppdFRleHRCb3ggLmRpaml0QXJyb3dCdXR0b25Jbm5lcixcbi5kal9pZTYgLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uSW5uZXIsXG4uZGlqaXRTZWxlY3QgLmRpaml0U2VsZWN0TGFiZWwge1xuXHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi5kaWppdE51bWJlclRleHRCb3gge1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRkaXJlY3Rpb246IGx0cjtcbn1cblxuLmRpaml0TnVtYmVyVGV4dEJveCAuZGlqaXRJbnB1dElubmVyIHtcblx0dGV4dC1hbGlnbjogaW5oZXJpdDsgLyogaW5wdXQgKi9cbn1cblxuLmRpaml0TnVtYmVyVGV4dEJveCBpbnB1dC5kaWppdElucHV0SW5uZXIsXG4uZGlqaXRDdXJyZW5jeVRleHRCb3ggaW5wdXQuZGlqaXRJbnB1dElubmVyLFxuLmRpaml0U3Bpbm5lciBpbnB1dC5kaWppdElucHV0SW5uZXIge1xuXHR0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLmRqX2llOCAuZGlqaXROdW1iZXJUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRJbm5lciwgLmRqX2llOSAuZGlqaXROdW1iZXJUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRJbm5lcixcbi5kal9pZTggLmRpaml0Q3VycmVuY3lUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRJbm5lciwgLmRqX2llOSAuZGlqaXRDdXJyZW5jeVRleHRCb3ggaW5wdXQuZGlqaXRJbnB1dElubmVyLFxuLmRqX2llOCAuZGlqaXRTcGlubmVyIGlucHV0LmRpaml0SW5wdXRJbm5lciwgLmRqX2llOSAuZGlqaXRTcGlubmVyIGlucHV0LmRpaml0SW5wdXRJbm5lciB7XG5cdC8qIHdvcmthcm91bmQgYnVnIHdoZXJlIGNhcmV0IGludmlzaWJsZSBpbiBlbXB0eSB0ZXh0Ym94ZXMgKi9cblx0cGFkZGluZy1yaWdodDogMXB4ICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdFRvb2xiYXIgLmRpaml0U2VsZWN0IHtcblx0bWFyZ2luOiAwO1xufVxuLmRqX3dlYmtpdCAuZGlqaXRUb29sYmFyIC5kaWppdFNlbGVjdCB7XG5cdHBhZGRpbmctbGVmdDogMC4zZW07XG59XG4uZGlqaXRTZWxlY3QgLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHRwYWRkaW5nOiAwO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRib3JkZXItc3R5bGU6IG5vbmUgc29saWQgbm9uZSBub25lO1xuXHRib3JkZXItd2lkdGg6IDFweDtcbn1cbi5kaWppdFNlbGVjdEZpeGVkV2lkdGggLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLmRpaml0U2VsZWN0TWVudSAuZGlqaXRNZW51SXRlbUljb24ge1xuXHQvKiBhdm9pZCBibGFuayBhcmVhIGluIGxlZnQgc2lkZSBvZiBtZW51IChzaW5jZSB3ZSBoYXZlIG5vIGljb25zKSAqL1xuXHRkaXNwbGF5Om5vbmU7XG59XG4uZGpfaWU2IC5kaWppdFNlbGVjdE1lbnUgLmRpaml0TWVudUl0ZW1MYWJlbCxcbi5kal9pZTcgLmRpaml0U2VsZWN0TWVudSAuZGlqaXRNZW51SXRlbUxhYmVsIHtcblx0LyogU2V0IGJhY2sgdG8gc3RhdGljIGR1ZSB0byBidWcgaW4gaWU2L2llNyAtIFNlZSBCdWcgIzk2NTEgKi9cblx0cG9zaXRpb246IHN0YXRpYztcbn1cblxuLyogRml4IHRoZSBiYXNlbGluZSBvZiBvdXIgbGFiZWwgKGZvciBtdWx0aS1zaXplIGZvbnQgZWxlbWVudHMpICovXG4uZGlqaXRTZWxlY3RMYWJlbCAqXG57XG5cdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLyogU3R5bGluZyBmb3IgdGhlIGN1cnJlbnRseS1zZWxlY3RlZCBvcHRpb24gKHJpY2ggdGV4dCBjYW4gbWVzcyB0aGlzIHVwKSAqL1xuLmRpaml0U2VsZWN0U2VsZWN0ZWRPcHRpb24gKiB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKiBGaXggdGhlIHN0eWxpbmcgb2YgdGhlIGRyb3Bkb3duIG1lbnUgdG8gYmUgbW9yZSBjb21ib2JveC1saWtlICovXG4uZGlqaXRTZWxlY3RNZW51IHtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG59XG5cbi8qIFVzZWQgaW4gY2FzZXMsIHN1Y2ggYXMgRnVsbFNjcmVlbiBwbHVnaW4sIHdoZW4gd2UgbmVlZCB0byBmb3JjZSBzdHVmZiB0byBzdGF0aWMgcG9zaXRpb25pbmcuICovXG4uZGlqaXRGb3JjZVN0YXRpYyB7XG5cdHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbn1cblxuLyoqKiogRGlzYWJsZWQgY3Vyc29yICoqKioqL1xuLmRpaml0UmVhZE9ubHkgKixcbi5kaWppdERpc2FibGVkICosXG4uZGlqaXRSZWFkT25seSxcbi5kaWppdERpc2FibGVkIHtcblx0LyogYSByZWdpb24gdGhlIHVzZXIgd291bGQgYmUgYWJsZSB0byBjbGljayBvbiwgYnV0IGl0J3MgZGlzYWJsZWQgKi9cblx0Y3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKiBEcmFnIGFuZCBEcm9wICovXG4uZG9qb0RuZEl0ZW0ge1xuICAgIHBhZGRpbmc6IDJweDsgIC8qIHdpbGwgYmUgcmVwbGFjZWQgYnkgYm9yZGVyIGR1cmluZyBkcmFnIG92ZXIgKGRvam9EbmRJdGVtQmVmb3JlLCBkb2pvRG5kSXRlbUFmdGVyKSAqL1xuXG5cdC8qIFByZXZlbnQgbWFnbmlmeWluZy1nbGFzcyB0ZXh0IHNlbGVjdGlvbiBpY29uIHRvIGFwcGVhciBvbiBtb2JpbGUgd2Via2l0IGFzIGl0IGNhdXNlcyBhIHRvdWNob3V0IGV2ZW50ICovXG5cdC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcblx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsgLyogRGlzYWJsZSBzZWxlY3Rpb24vQ29weSBvZiBVSVdlYlZpZXcgKi9cbn1cbi5kb2pvRG5kSG9yaXpvbnRhbCAuZG9qb0RuZEl0ZW0ge1xuICAgIC8qIG1ha2UgY29udGVudHMgb2YgaG9yaXpvbnRhbCBjb250YWluZXIgYmUgc2lkZSBieSBzaWRlLCByYXRoZXIgdGhhbiB2ZXJ0aWNhbCAqL1xuICAgICNkaXNwbGF5OiBpbmxpbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uZG9qb0RuZEl0ZW1CZWZvcmUsXG4uZG9qb0RuZEl0ZW1BZnRlciB7XG5cdGJvcmRlcjogMHB4IHNvbGlkICMzNjk7XG59XG4uZG9qb0RuZEl0ZW1CZWZvcmUge1xuICAgIGJvcmRlci13aWR0aDogMnB4IDAgMCAwO1xuICAgIHBhZGRpbmc6IDAgMnB4IDJweCAycHg7XG59XG4uZG9qb0RuZEl0ZW1BZnRlciB7XG4gICAgYm9yZGVyLXdpZHRoOiAwIDAgMnB4IDA7XG4gICAgcGFkZGluZzogMnB4IDJweCAwIDJweDtcbn1cbi5kb2pvRG5kSG9yaXpvbnRhbCAuZG9qb0RuZEl0ZW1CZWZvcmUge1xuICAgIGJvcmRlci13aWR0aDogMCAwIDAgMnB4O1xuICAgIHBhZGRpbmc6IDJweCAycHggMnB4IDA7XG59XG4uZG9qb0RuZEhvcml6b250YWwgLmRvam9EbmRJdGVtQWZ0ZXIge1xuICAgIGJvcmRlci13aWR0aDogMCAycHggMCAwO1xuICAgIHBhZGRpbmc6IDJweCAwIDJweCAycHg7XG59XG5cbi5kb2pvRG5kSXRlbU92ZXIge1xuXHRjdXJzb3I6cG9pbnRlcjtcbn1cbi5kal9nZWNrbyAuZGlqaXRBcnJvd0J1dHRvbklubmVyIElOUFVULFxuLmRqX2dlY2tvIElOUFVULmRpaml0QXJyb3dCdXR0b25Jbm5lciB7XG5cdC1tb3otdXNlci1mb2N1czppZ25vcmU7XG59XG4uZGlqaXRGb2N1c2VkIC5kaWppdE1lbnVJdGVtU2hvcnRjdXRLZXkge1xuXHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbiIsIi8qIERpaml0IGN1c3RvbSBzdHlsaW5nICovXG4uZGlqaXRCb3JkZXJDb250YWluZXIge1xuICAgIGhlaWdodDogMzUwcHg7XG59XG4uZGlqaXRUb29sdGlwQ29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuLmRpaml0Q29udGVudFBhbmUge1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIG92ZXJmbG93OiBhdXRvICFpbXBvcnRhbnQ7IC8qIFdpZGdldHMgbGlrZSB0aGUgZGF0YSBncmlkIHBhc3MgdGhlaXIgc2Nyb2xsXG4gICAgb2Zmc2V0IHRvIHRoZSBwYXJlbnQgaWYgdGhlcmUgaXMgbm90IGVub3VnaCByb29tIHRvIGRpc3BsYXkgYSBzY3JvbGwgYmFyXG4gICAgaW4gdGhlIHdpZGdldCBpdHNlbGYsIHNvIGRvIG5vdCBoaWRlIHRoZSBvdmVyZmxvdy4gKi9cbn1cblxuLyogR2xvYmFsIEJvb3RzdHJhcCBjaGFuZ2VzICovXG5cbi8qIENsaWVudCBkZWZhdWx0cyBhbmQgaGVscGVycyAqL1xuLm14LWRhdGF2aWV3LWNvbnRlbnQsIC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlcjpub3QoLm14LXNjcm9sbGNvbnRhaW5lci1uZXN0ZWQpLCAubXgtdGFiY29udGFpbmVyLWNvbnRlbnQsIC5teC1ncmlkLWNvbnRlbnQge1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cbmh0bWwsIGJvZHksICNjb250ZW50IHtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG4jY29udGVudCA+IC5teC1wYWdlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xufVxuXG4ubXgtbGVmdC1hbGlnbmVkIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLm14LXJpZ2h0LWFsaWduZWQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLm14LWNlbnRlci1hbGlnbmVkIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5teC10YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4ubXgtdGFibGUgdGgsXG4ubXgtdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLm14LXRhYmxlIHRoLm5vcGFkZGluZyxcbi5teC10YWJsZSB0ZC5ub3BhZGRpbmcge1xuXHRwYWRkaW5nOiAwO1xufVxuXG4ubXgtb2Zmc2NyZWVuIHtcbiAgICAvKiBXaGVuIHBvc2l0aW9uIHJlbGF0aXZlIGlzIG5vdCBzZXQgSUUgZG9lc24ndCBwcm9wZXJseSByZW5kZXIgd2hlbiB0aGlzIGNsYXNzIGlzIHJlbW92ZWRcbiAgICAgKiB3aXRoIHRoZSBlZmZlY3QgdGhhdCBlbGVtZW50cyBhcmUgbm90IGRpc3BsYXllZCBvciBhcmUgbm90IGNsaWNrYWJsZS5cbiAgICAqL1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm14LWllLWV2ZW50LXNoaWVsZCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB6LWluZGV4OiAtMTtcbn1cblxuLm14LXN3aXBlLW5hdmlnYXRpb24tcHJvZ3Jlc3Mge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IDU0cHg7XG4gICAgd2lkdGg6IDU0cHg7XG4gICAgdG9wOiBjYWxjKDUwJSAtIDI3cHgpO1xuICAgIGxlZnQ6IGNhbGMoNTAlIC0gMjdweCk7XG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaE5nQTJBUE1BQVAvLy93QUFBSGg0ZUJ3Y0hBNE9EdGpZMkZSVVZOemMzTVRFeEVoSVNJcUtpZ0FBQUFBQUFBQUFBQUFBQUFBQUFDSDVCQWtLQUFBQUlmNGFRM0psWVhSbFpDQjNhWFJvSUdGcVlYaHNiMkZrTG1sdVptOEFJZjhMVGtWVVUwTkJVRVV5TGpBREFRQUFBQ3dBQUFBQU5nQTJBQUFFeXhESVNhdTlPT3ZOdS85Z0tJNWt5U0VKUVNTSTZVcUtLaFBLV3lMejNOcGltcXNKbnVnM0U0YUlNaVBJOXdzcVBUamlUbGt3cUF3RlRDeFhleFlHczBIMmdnSk9MWUxCUURDeTVnd213WXg5SkpyQXNzSFFYc0tyOUNGdU0zQWxjakowSUFkK0JBTUhMbWxySkFkdUJvNVBsNWlabXB1Y25aNmZjV3FJbUpDamFIT1poaXFtRkl1QWw2NFpzWml6RjZvRXJFSzN1Uk9sbTc2Z3djTER4TVhHeDhYQWo2SWt1NCtvSXJVazBoL1UwV0Vqem5IUUlzcWhrY2pCM3NuY3hkYkM1K0xseWN6aDdrOFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRNRU1oSnE3MDQ2ODI3LzJBb2ptUnBubVZoRUlSUm9HY3hzT3p3d3VSS3N3Wk83anZmQ0VnVGluUzduaEYwbU5FR2h3c2l3VW9nbHBTRHpoQzFLSWlLa1dBd0VKZ1FSTllWSk5pWlNkUjBJdVNzbGRKRlVKMHd1T01KSVcwMGJ5TnhSSE9CWklRamFHbHJXQnhmUUdHUUhsTlZqNVdhbTV5ZG5wOUxZMldib29zV2dpeW1RcWdFcWhON2ZaQ3dHYk95TzdFWHJLNDR1aHFscElxZ3dzUEV4Y2JIeU1lL0tNc2l2U2JQZExjbnRkSlAxTlBPYmlmUmlhUE13Y25DemNyYnlOWEc2TVhkeHVUaTd6NFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRPRU1oSnE3MDQ2ODI3LzJBb2ptUnBubWlxQXNJd0NLc3BFRFFCeCtOUUV3T2U3ejFmYUZhN0NVR3QxMUZZTU5BTUJWTFNTQ3JvYW9Qb2NFY1ZPWGNFZytoS0M1TEF0VEhRaEthSmlMUnU2THNUdjEzeTBJSE1PeXc5QjE4R2ZuK0Zob2VJaVlvWkNBazBDUWlMRmdwb0NobFRSd2h0QkpFV2NEWkNqbTBKRjN4bU1adHVGcVpDcVFRWG4za29vbWlrc0hpWm01MlNBSlJnbHJ3VGpZKzd3Y2JIeU1uS0U1Z296VzljSjdFL1dDZXNhdFVtMTF0RjB0RWp6eks0eTRuaHh0UEkyOGJxd2VqSTV1VHhKaEVBSWZrRUNRb0FBQUFzQUFBQUFEWUFOZ0FBQk1zUXlFbXJ2VGpyemJ2L1lDaU9aR21lYUtvQ3dqQUlxeWtRTkFISDQxQVRBNTd2UFY5b1Zyc0pRYTNYY1lsS0dtV3VKM0luRlJGcDFZNnVGaXh0YVYzUWwzY2FoejlYMnltZDdUaFRiNlo4VHEvYjcvaTh2R0NnR1FvYWNVSUZab0FYYkVkOU93UUdHR1pIaXpXT1FKQ1JCQmlJUW9vN2paaFJTd2RtQjNvVUI0b0dvNlNxcTZ5dE1RZ0pOQWtJckFxUkNpT0NJd2lXQkxSVFJTV3hsZ2toanlTOU5NYVV5TWxEVk1LOXhVT2ZKYnlXdjNxMmk3aEx1aFd3c3RsQ21hdkg1c3lyNWVyVnJ1NDRFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWlaY2dVR05BWUZKSk1pQldhZ1E0TWxuVHNFQmlLTElxczFya0Ftc1RSV3FDU3FPNjFXa1JrSUNUUUpDQmNIWmdkSENyRUt4cW9HeVVJSXRnVEZlc0syQ1h2VXQzcmNCSHZZc2RwNjA3Yldlc3VyelpYQncrZ2lFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWdTQ0FrMENRaVdDanMwQ3BRSW9qV2ZKWk1kbktjRUNhcURJSzQxWGtBaHREUzJYQ0d0cDdBa2p4Nm1ycW5Ca1NLaG9xUVhCUVkwQmdWTG01M0dGUVZtMHBUUG9nYVZ0Tit1bGR3NzNwUUhaZ2VXQjl3RzZwa29FUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2dktVU0Nsa0RnTFFvN05BcC9Fd2lDTlg1Q2NSWjdpQVFKaTFRWGp6VkNacFNWQkpkQUY0NklrVDVzRjRlUGlxSlJHWUdDaElXR2puMnVzck8wdFhZRkJqUUdCYlFGWnJ4UVNpSzVnZ1l5a3lHVkpwakpqOHVkSWNRN3hpV2pJUWRtQjJ1cEl3ZkVCdHEySG95ejFyUE01OURseUxUazR1OHBFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3a1JDVm9Db1dtOWhCTEZqcWFBZGhEVEdyUGtOSDZTV1VLQ3UvTjJ3cldTcmhiOG9HbHFZQWljSFpPSU5ETUhHOTdlWFhvZFVsTlZWbGRnUzRhS2k0eU5qbzhGQmpRR0JZOFhCV3MwQTVWUVhSbVNVd2FkWlJob1VKazhwV0duY2hlZ082SkNlRFlZQjZnREIxYWVHUWVnQnJtV3djTER4TVhHeDF5QUtic2lzNEVnemo5c0o3ZlNtdFN0UTZReTI4M0tLTXpJamVIRTBjYlY1OW5sM2NYazR1OG9FUUE3KTtcbn1cblxuIiwiLyogQmFjYXVzZSB3ZSB1c2UgY2hlY2tib3hlcyB3aXRob3V0IGxhYmVscywgYWxpZ24gdGhlbSB3aXRoIG90aGVyIHdpZGdldHMuICovXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIG1hcmdpbjogOXB4IDA7XG59XG5cbi5teC1jaGVja2JveCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG59XG5cbi5mb3JtLXZlcnRpY2FsIC5mb3JtLWdyb3VwLm14LWNoZWNrYm94IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5mb3JtLXZlcnRpY2FsIC5mb3JtLWdyb3VwLm14LWNoZWNrYm94LmxhYmVsLWFmdGVyIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uZm9ybS1ob3Jpem9udGFsIC5mb3JtLWdyb3VwLm5vLWNvbHVtbnMge1xuICAgIHBhZGRpbmctbGVmdDogMTVweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xufVxuXG4ubXgtcmFkaW9idXR0b25zLmlubGluZSAucmFkaW8ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG59XG5cbi5teC1yYWRpb2J1dHRvbnMgLnJhZGlvIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgLyogUmVzZXQgYm9vdHN0cmFwIHJ1bGVzICovXG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLm14LXJhZGlvYnV0dG9ucyAucmFkaW8gbGFiZWwge1xuICAgIC8qIFJlc2V0IGJvb3RzdHJhcCBydWxlcyAqL1xuICAgIHBhZGRpbmctbGVmdDogMDtcbn1cblxuLmFsZXJ0IHtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7XG59XG5cbi5teC1jb21wb3VuZC1jb250cm9sIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xufVxuXG4ubXgtY29tcG91bmQtY29udHJvbCBidXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG59XG5cbltkaXI9XCJydGxcIl0gLm14LWNvbXBvdW5kLWNvbnRyb2wgYnV0dG9uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbiIsIi5teC10b29sdGlwIHtcbiAgICBtYXJnaW46IDEwcHg7XG59XG4ubXgtdG9vbHRpcC1jb250ZW50IHtcbiAgICB3aWR0aDogNDAwcHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbn1cbi5teC10b29sdGlwLXByZXBhcmUge1xuICAgIGhlaWdodDogMjRweDtcbiAgICBwYWRkaW5nOiA4cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKGRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEdBQVlBTVFkQUtYWjhuZkY2NFRMN1F1WDNGZTQ1emFxNGhPYjNmTDYvZnI5L3JyaTlkWHQrWnJVOEN5bTRVbXk1Y0hsOXVQeisySzg2T2oxL056dytyRGQ5TTNxK0pEUTcyckE2aU9pMyszNC9FQ3U0OGpvOXgyZjNnV1YyLy8vL3dBQUFBQUFBQ0gvQzA1RlZGTkRRVkJGTWk0d0F3RUFBQUFoL3d0WVRWQWdSR0YwWVZoTlVEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU5pMWpNVFF3SURjNUxqRTJNRFExTVN3Z01qQXhOeTh3TlM4d05pMHdNVG93T0RveU1TQWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JTWldZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlZKbFppTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRnZ0tFMWhZMmx1ZEc5emFDa2lJSGh0Y0UxTk9rbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZSVUpGTmtVNE5FWkNORVZETVRGRk9EazNNREJCTlVVMVJVTTRRamczUVRVaUlIaHRjRTFOT2tSdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNlJVSkZOa1U0TlRCQ05FVkRNVEZGT0RrM01EQkJOVVUxUlVNNFFqZzNRVFVpUGlBOGVHMXdUVTA2UkdWeWFYWmxaRVp5YjIwZ2MzUlNaV1k2YVc1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRwRlFrVTJSVGcwUkVJMFJVTXhNVVU0T1Rjd01FRTFSVFZGUXpoQ09EZEJOU0lnYzNSU1pXWTZaRzlqZFcxbGJuUkpSRDBpZUcxd0xtUnBaRHBGUWtVMlJUZzBSVUkwUlVNeE1VVTRPVGN3TUVFMVJUVkZRemhDT0RkQk5TSXZQaUE4TDNKa1pqcEVaWE5qY21sd2RHbHZiajRnUEM5eVpHWTZVa1JHUGlBOEwzZzZlRzF3YldWMFlUNGdQRDk0Y0dGamEyVjBJR1Z1WkQwaWNpSS9QZ0gvL3YzOCsvcjUrUGYyOWZUejh2SHc3Kzd0N092cTZlam41dVhrNCtMaDROL2UzZHpiMnRuWTE5YlYxTlBTMGREUHpzM015OHJKeU1mR3hjVER3c0hBdjc2OXZMdTZ1YmkzdHJXMHM3S3hzSyt1cmF5cnFxbW9wNmFscEtPaW9hQ2ZucDJjbTVxWm1KZVdsWlNUa3BHUWo0Nk5qSXVLaVlpSGhvV0VnNEtCZ0g5K2ZYeDdlbmw0ZDNaMWRITnljWEJ2Ym0xc2EycHBhR2RtWldSalltRmdYMTVkWEZ0YVdWaFhWbFZVVTFKUlVFOU9UVXhMU2tsSVIwWkZSRU5DUVVBL1BqMDhPem81T0RjMk5UUXpNakV3THk0dExDc3FLU2duSmlVa0l5SWhJQjhlSFJ3Ykdoa1lGeFlWRkJNU0VSQVBEZzBNQ3dvSkNBY0dCUVFEQWdFQUFDSDVCQVVFQUIwQUxBQUFBQUFZQUJnQUFBVWNZQ2VPWkdtZWFLcXViT3UrY0N6UGRHM2ZlSzd2Zk8vL3dPQXJCQUFoK1FRRkJBQWRBQ3dBQUFBQUFRQUJBQUFGQTJBWEFnQWgrUVFGQkFBZEFDd1VBQXdBQVFBQ0FBQUZBeURUaEFBaCtRUUZCQUFkQUN3VEFBc0FBZ0FHQUFBRkMyQVhkRnhuZE1UUU1WMElBQ0g1QkFVRUFCMEFMQkVBQ3dBRUFBZ0FBQVVSWUNjMllpbHlvcldkVm1jTnA4aTBYUWdBSWZrRUJRUUFIUUFzRHdBT0FBWUFCZ0FBQlE5Z0ozYUJNWjRqaDQ0V0I0bkZjSVlBSWZrRUNRUUFIUUFzRFFBUEFBZ0FCZ0FBQlJGZ0o0NGRSSGJCcVlvcEdRd2NPUmhxQ0FBaCtRUUpCQUFkQUN3QUFBQUFHQUFZQUFBRkxXQW5qbVJwbm1pcXJtenJ2bkFzejNSdDMzaXVrOEpnRHdRYlIyaWhCVGlOV1c4WTR6aDlHaGxnUnkyRkFBQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZNMkFuam1ScG5taXFybXpydm5Bc3ozUnQzMmh6YzN0U0M3emFZT2VvY1NBMFlNWlZJUWtHd1JhUVE2VjJpaklBYnFzS0FRQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZObUFuam1ScG5taXFybXpydm5Bc3ozUnQzMmh6Yy90VVY3eWFJV01MMGppRVZRVUZMS3dDSEVPcFlqQ3lNcHlzbGloYjRMNnJFQUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGT21BbmptUnBubWlxcm16cnZuQXN6M1J0MzJoemN6dFFWN3phcG1BTG1vQXNqZzdGTUI0NWpGV0RzeWxWTnM1VmdjUHRFbU8rQ202c0NnRUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCVDlnSjQ1a2FaNW9xcTVzNjc1d0xNOTBiZDhvY1hPQ3plMm14c2ExWVp4K0xRN2cxRUNxT0prVWc3TkljWXlxNXJDMGdicW1uSENZc1lRdGU3aDBLZ1FBSWZrRUNRUUFIUUFzQUFBQUFCZ0FHQUFBQlVSZ0o0NWthWjVvcXE1czY3NXdMTTkwYmQ4b1lRWXdKNVNjbmluNElwSVlGOWNsV1ZvWVY1ekZLZk5FY1RLcFN4WElURkc3SXkyMnhlQ1l6eGNwVFBxajRONm9FQUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGU21BbmptUnBubWlxcm16cnZuQXN6M1ROYm5iQXdZUzV2NXdBcWZKekZVZEhWckt6WWJnWU9OK2t4YW1jQ2dQV29KRGFaRk9EYUtyQWNaWVlIRzVydzJtN04xWllSUmkzMlZjaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVlBZQ2VPWkdtZWFLcXViT3UrY0N6UDVVYlFJb2QzZ3I3N3JodkpBbXh4TEtVaVM5bmhURjVNQThQRk1KaDZMbzdneEJpd0JsUFV4cHNhYkZZTVRwaVVYcXNFQm81OGJ0akN0aGI3YnI4S0FRQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZVMkFuam1ScG5taXFybXpydmpETFhERXBjRFZwWlBtSTk1MGJVUFJ6UVVxUVlvdHpKQ2xaejhsenhabVVEQVZYd1hDYW9yeWRDM2Rsb0tFTTQzTWFkZUZrU3dXT2VSVXdjTzU0UXlBbU9BcUdnQzBoQUNINUJBVUVBQjBBTEFBQUFBQVlBQmdBQUFWWFlDZU9aR21lYUtxdWJMdHVsbnNhaG14dXRVMEduRjRPRFIrcEp4VHhpaUpDemhYNzJRYUVIZEUxSFZWWkhNQXY0OG9NVE1jV0ozRENzUXliMUdBNSs2bzJIRzRwdzBtekFnTU9aNURmazIwQlVYOUloQzBoQUNINUJBa0VBQjBBTEFJQUF3QVVBQk1BQUFVL1lDZUsxdENNYUpweWhPcU93L2JPOUd6VmM0dnY5YzJuc2w5QVpQaDFpajZqY3JRUW5YYlBEc1E0SFFWcFYxUld0VTFGUjE5WDlWZ1VqV20rWkNvRUFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVmJZQ2VPWkdtZWFLcU9GckdpeE1CeHpHc2FuR3VidzdhZkJ0K3ZST0FNVGJsanlhaGtNWnVkaG5BWEtFbUhtOFp5K0JRdHVpL09ZcWw3RlUvZ1ZQSTJUVzBNcVo1cU0xamh5cU1pM0R6amJEWjllRFlRRFZwalVJZy9JUUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGWUdBbmptUnBubWlxaWxXWFpjUnFFaHczWE5jZ2t3WUg3U2ZPQlhneURJa2xHdExrVzVZNFRoSkJGeFZsamtCQjZZcThaRXBVWUpnRkpYSmFwT1lPVXBhMlY1eVl5U2k3R0ZKQzFlVmRWSlBZZHpJME5qZ0ROWEpFQkYrSVZZMUFJUUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGWldBbmptUnBubWlxaWtKWEZNUnFOaHhuTUlWUngvTEFXYWFBck1OaERGRUQ0M0hHV1o1K3pwS2dHUzBacXFTQ2Npa2NhWjA0RXVHNk5QQkcxR01hRFJ4YTFpS2F1bkZLeWhpRFZGSEZnSnQ4YlNSdmVUSTBOZ3dNT2h4MFRnUXZIUzFZa2xFaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVm1ZQ2VPWkdtZWFLcUtRY01VeldwbUhMZDF4VlpuY2pjTUFWUGdwMXB3Q2lyR0RUVkE5azZad1JQRm1aNENWV3Vwc2RTT1h0cmdWMXRna0xqV1RZeVVmYlpISExFTU81UDJCanhUVTFhd240NHFCVzhtQzBSQ2hpczBOZ1U1TzFZdFptdGVrNU1oQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFWbllDZU9aR21lYUtxS1FYWmQyV29XSEhkMURWTVhjc1VOSjRHQnMrTHdVclFLeWlpam5RcEFXY2R3NGdTa3FBQVJlM0p4VDdkdngwS0NmYjBqTk5aTTJtTGRJeXRXTzR2S0JzY1NjK1ZjNXA5d1ZYWWtBUU9CS0RRMkdTNDdYeTB2SFZkaWs1UWlJUUFoK1FRRkJBQWRBQ3dBQUFBQUdBQVlBQUFGYm1BbmptUnBubWlxaWxheGJjVnFNaHpIZEExdHl3Sm5uQUlEUjZEaVpGUVpUc29vUzU0WVAxbkhjQ3NOcFNJbHlhTEZjZ0trUWhWcjJwQkZpOUttY1c2WVIrSXpJMGJxU3UxWm9qZFJnbUtwSjB3clRpaUNLSVFvUFZFbFFYZ29PZ3dOT1RWalVpMW1kR2VhbXlVaEFDSDVCQVVFQUIwQUxBSUFBZ0FVQUJRQUFBVmJZQ2VPa01HZG5BR05MSWx5dy9DdWJjZWNXWjJkVEhzYk5aYXBKNEtrZ2kwVDdZU3NNWTI1Sm10WDRraWRKdXVWaFJwc1dUTFlkeFRXamsrbXNTZ0ZIVk03ekcvY0NMd3FSei9wMElmVDhZSkdYV1VjTkVoVktDbzFJUUFoK1FRRkJBQWRBQ3dCQUFFQUZnQVdBQUFGWjJBbmptUFZCV1NxbmdaSGNnYTZqc2JyMG5OMTEyVEZjNmFVNnpZYnBtckVXY2ZGTzRrRXloSFUyYWsxbzlYc0VydHlCYm1xWUpKN1E0MnhMaG00MlBsaVRUc3QxeXBTYzZkcUpGa3VHazVWQWtZcE9pSlhiVDlLVnh4Smhpb0JMUytOVVNaMktpRUFJZmtFQ1FRQUhRQXNBUUFCQUJZQUZnQUFCV3BnSjQ2aWxWMVgxazFrUzE2Y3kxMHUyY1MxeURVMU0zSUVFZ0hYOGRsR3dWcXl3L3ZsY2tSYVovbE1TbVBFcDY0VHM0aW8ycVJKcXoyUm42aHpMcVd1cWI1dEtyWTk3MGpCU3BHVTI5Nk9tbE01UzRBaVJseFVReU9HTmxreWhDNHdNbnRrSmlncUxDNGhBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVYrWUNlT1pHbWVwVlZjVjlaTjZMbHhkRTF2OGRqWWZOM0VEQnVFQkxFeFRqdmE4RlNrL1VxMW5DaEttbkdXdVNadVJKVjJ1aGFsbDh1eGlESzBNZG5WdWFUVlg4NUY1T2JBNC9NTzJnNm5zZU5ZVWsxbVUyOWVYUjFXZ1NoYUpBdUlLSkFkU1ZlTVBpZEJrRTAwUnlpVVBaZFNWajFiYWhZWkxCbUVkM0FoQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFXQllDZU9aR21lcFZWY1Y5Rk42TGx4ZEUxdjhkallmTjNFakpyQlpLZ3hUanRhVE9BejFYS2lKMm5HRVVDakhOeUlOcngyaXB5UlJlbnRNRGtXVVlGY3ByazZGN2FYZGhIRncrVU9YUzIvdXJkVlpXY2tYR1ZnVTMweE55UUxVamsxQ3lWSmdTZG5IRDhtUVlVa0FtQWNSeWlUUFUxUVZEMWFaU29zQldsNXJoMGhBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVdDWUNlT1pHbWVwVlZjVjlGTjZMbHhkRTF2OGRqWWZOM0VqTnJGZEtreFRqdk9JRGVnL1VxMFphN1Q1SlJtMXFub1JxSU50WjFpdG1PaGdVYzBpNmhnUG5kb3JuRDc3QldKM1cvT2x6MEd3OUY5VXdCcEloTjFZSGNqV0hRY09GMUtXbFVtU1FNQU1WVlBKVUdISXdCaUhFY29TVDAybVRGWVBZNW5LaXd1TUhodUlRQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZlbUFuam1ScG5xV1ZNVXlHdmhjbnovTDFqZzJ0ejgxYnpLNVNabFk0NVRpR20wSFdLOG1TdDg2U1U0cFJvNklhU1JiRURxOGRpd3k3NVZoRVgvS0lLMktNMVIwWm8vMVd5OUYxTWpzTDF2ZjNYaklUSTFaMkhEWmxVRXA1SWtlS0oxTk5KVCtBSTE4Y1JTaEhPelNTTUp5SGNHRXJMUjJEb25BaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVjlZQ2VPWkdtZVpkQXdUSU8rRnlmUDh2V09CRDFjMTBBVHI4SU1Zb0xNQ3FjY3h3YVRBVXUxbXlqR0tWR2xvMmlXUThSMmpGVlJRT2JkQmtRTnpxQXM4bzBZUzNZbnhoREJtV1Y2ZHMzMnVUcGpZV1ZrVzExWVlDUlhYbHBiZUUyQ09Jd25WRThsUWpLR0kyQWNTQzg2UEQ0elhsUTBrbGhuTEg5eWNpRUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCWDFnSjQ1a2FaNWwwQlJGZzc0TUo4OHk4NDRFZlhYWlJST3ZqR3h3RWd4a21WT09rd3pLZ0NYa1RTVGtsR0xFcWVob0c4bTBwSzhvSUFaM1pBRlJnN016ZDN5akF0UE40eFJFY25yOUxtTFQ0V05sWUdoZUhBSnVnbGhtWEZGelUxVW1TMDBvVlZBbFZWa2xSbEl2T2hrOU5HQXhORE5kWmlvZExYcDZJUUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGZ0dBbmptUnBucVhRRkZrbm9HakJ6ZlJjd0NORUR4M1JaUU1hQk5hWWJWQ2JXZU9rNCtCNnM5UE05K3hFU2JKanRaTzhqYTViQUZqQTRXMUZ3WmVJMHpyL25LSU1oK3BteCtGdWdoM2FQc3ZwWlc0ZFFTUmdXNFpaWjEwbFUxVjZlRG1OTUk5REprVWNXaVpKa0ZJekF4aytRRUpWTWpVMFhtY3ZHYUNDclIwaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVjZZQ2VPWkdtZXBkQmxHWUcrR1NmUGN2YU8xcnk1UWJmTmxoZEJWa0FWWks2VDdOWUpMRTJ5SHJQekhNV0swODdSTnFwbXF3TE9KanY2cVVTY0pIbG81WkJKSEc1TVNuWnkyZThPSGoxK203dHViMTVYWkZzbFVWK0JKRG1LS0U0Y1FTWkRIRmdtUjJrM09qd0VQMTR3TkRSY1pDb3NIV2Q1YnlFQUlma0VDUVFBSFFBc0FBQUFBQmdBR0FBQUJYcGdKNDVrYVo1bDFXVk5wNkpueHMzMG5NRmpRQmR1RnhTMEFJd3dHeFpSbkFGT05PQUlTOGRsSnlxU0VhUWk0bTFFbFVZckhCNVdCQ1J4eG1hSXFNRjVqY0d0RGh2TmpVK2ZZOTBJTEI2WHVXZG9WRlpqV2xDQlhvaG1Ta3ROZUNSRUhGY25rWk1uT2pNOEtqOUJVakkxTkZ0b0VBMHRiblJqSVFBaCtRUUpCQUFkQUN3QUFBQUFHQUFZQUFBRmdHQW5qbVJwbmlaRWRCYnFObHdzeDQwN0NyR3hkbE5IR0RHQkM4SVp1QUlEam90anNJbUF3bExST1VxV1lBR3FLTUNwalpqYUVaREUyWVU3U3BFbGZhNXdXajcydVN3aXlNTjBFYWR5N3JoSEMzZGFIQXRmVFdkakkxaGhYRjVmUmxwV0ptQk9pU2xGV1NkSUhCQXVPRXc3UFQ4eFdqQXpNbzVoRml0d2ZYMGhBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVYxWUNlT1pHbWVwa1YwQWVvU1hDekhxeXRXOFVWTzNSWGJIWTdCWnVCWVRqZ2QwSGNTQWtmRkV1dzVXbkJxSW82UzJ1T1FPQzF1ZGhUd2lqc1RzR2g2RG1MTlozaTVIUXpYei9PUjlzd2NzYmxYSlU1VVVTVkpUejRWS0VJTEtBdEZSeWc0ZXlNOFBuQTJNRE15V0Z3QkJDc0FkR0loQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFWellDZU9aR21lWmdCMUFlb1NBeWZQQStHU2NWWldHVGZjQWM3bGR1RzBUaHpkclZQZ25BYkRwZWp5SXhHYzBoSEhOaG9vczUxTVZZUUZrMGRCcy9ZSUtaczVxN082QXhlbDUyNU9SVjF4ZTlWaVZtNVNXeVZRWUZSSUJWSk5LRUZSS0VWSEtEazdQV00zTURNMFhHWXFjWE5xSVFBaCtRUUpCQUFkQUN3QUFBQUFHQUFZQUFBRmQyQW5qbVJwbm1iUVdkMkVvdERBY1lZeEQ5QkxEZ05oRWp4ZGdKUFJaVGlxRThlbkUzRk9nMkpUbEJtVVl0TmRidFRMam9Da3AzY2s3Z2pLWTQ1Z1pCaXpSNWEydTJOZ09lZWQ4Z1R0NWJoRVhXTmdPMjQ0SlZGZVZTWUxTMU1FZkdGU0tFZE5QRXdrUUZaVE1UTTFOMXRqYXl4L2VGa2hBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVZvWUNlT1pHbWVwdEFGYU50WkJtY3dUR3hZN21nWXA3QzdBZzdFQmVHMGpMa1ZzbVFZSmpzUUhnbjIxT0YwVlpKVXRNd3VmVm1kU3NRSWswZUJzcG5CRW0yejcyNjFheGhYd1NNcTNOU3NSazl5UnloQlRpaEZkaWMvS1lvNU1ESTBObVlkS20yU1dTRUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCV3hnSjQ1a2FaNW0xUVZvdXhvYzB6UU1aN0N1YURBb1k3Z1ZUazRnUkJWekhjN0VaQkFnUllJZktjQjdpcW9qcVZWSE9tNlBGZXlXb1JJMXRxT3pDSWZ1cUsvdERubmt0WG9OaTdaMjFXYXdkVTVQVVNkMUxZVWlRWUVvUkRrN1BYc3RBVEF5TkRaL1ZwZHhUeUVBSWZrRUNRUUFIUUFzQUFBQUFCZ0FHQUFBQldOZ0o0NWthWjVtMVFsbzJ3V2IwWFJRWTJ5Qk8yN3oyV3c2ZzY0alJCa2NRK0xFQkV5S21xTkF6emw5T2tsUTRuVlVGRldwcXRWMkJCa0p5bU8wZDl5cGRxL3ZyRE1yM1g2MThOUGJaVmlhRm50NkN5NDhLRDlKTURJME5qaGpLaXhzV3lFQUlma0VDUVFBSFFBc0FBQUFBQmdBR0FBQUJWaGdKNDVrYVo3bTBnbG91MjdGMmxuRjVwSTJhdVV0M3dNb24wc29JZzVMQXN1dHBNUXRUYjdZa3lRVk5hZldFUXRMMnNxNDN5ejQycWxpemNhYmtMeGtkOUxCRTd5VUJzeUxhcmYxUG9JcFdUVmdJaXdxZ2xnaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVlpZQ2VPWkdtZXA5QUJhTnN4aE5xcGpPeSt0c25jeGQzMUtLQlBTTnI1UnNaUjdyaE1Ia1ZPd3BQVUlDMmZyT21wSXVKcVI5N1pWenlTZnF2SXNaTThiV3JYSXFKTFRxS2I3TVdyU0FCSHdUb0xZbjArWGdwalV5RUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCVkZnSjQ1a2FaNW5oYTVqWm9sSloyVXNTYVBBdlJKMXg2Ty9YdERXSTVZQVJaS3FsVFNLWHMxb2JTSmFTcSttbUlpSzVjcXVVSkd1T2NhYXlqVzBMemtzdFUvdmtwclpxOUNRSFdURzJ1U2JleUVBSWZrRUNRUUFIUUFzQUFBQUFCZ0FHQUFBQlVsZ0o0NWthWjVuaGE0anBJcE9CN0Vrd2Rwc1FIYzYydSsvMms0NExNcU1MZVF1cHV4TVJJdW05QlNGVGErZGwyaW01R0pMdUdLWUZNeXR5dEt4U2IzeWlpcnU0clA2WllVQUFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVTVZQ2VPWkdtZUo0Q3VZMUNxS2l1Nk1ydlVkNjJiOU43dnRaOFBTQ3dtUkxHaU1yVkVKWnZMMzdNcGxGV2hwWnpOaW0zeGxxcGpseFVDQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFVM1lDZU9aR21lNklTdTRtSzY3RmpGTkoyc2Q2M0g4MTdEUHFCdlNDeUtWRVdrY1lrUzZweE1VUys2azFCWDAxT1dCWVhxbE5kVENBQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZMR0Fuam1ScG5taXFvdFBxdm5Bc3oySkxxL2F0Ny96cDlNRGdLQmNqQ284OHhVdXBNNmFjVHRnUGFRb0JBQ0g1QkFVRUFCMEFMQUFBQUFBWUFCZ0FBQVVqWUNlT1pHbWVhS3F1Yk91K2NMeFNjbTNmZUk3VGV0L3p2cUJ3eUFLV2pDOGtNUVFBT3c9PSkgbm8tcmVwZWF0IHNjcm9sbCBjZW50ZXIgY2VudGVyO1xufVxuLm14LXRvb2x0aXAtY29udGVudCAudGFibGUgdGgsXG4ubXgtdG9vbHRpcC1jb250ZW50IC50YWJsZSB0ZCB7XG4gICAgcGFkZGluZzogMnB4IDhweDtcbn1cbiIsIi5teC10YWJjb250YWluZXItcGFuZSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuLm14LXRhYmNvbnRhaW5lci1jb250ZW50LmxvYWRpbmcge1xuICAgIG1pbi1oZWlnaHQ6IDQ4cHg7XG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaE5nQTJBUE1BQVAvLy93QUFBSGg0ZUJ3Y0hBNE9EdGpZMkZSVVZOemMzTVRFeEVoSVNJcUtpZ0FBQUFBQUFBQUFBQUFBQUFBQUFDSDVCQWtLQUFBQUlmNGFRM0psWVhSbFpDQjNhWFJvSUdGcVlYaHNiMkZrTG1sdVptOEFJZjhMVGtWVVUwTkJVRVV5TGpBREFRQUFBQ3dBQUFBQU5nQTJBQUFFeXhESVNhdTlPT3ZOdS85Z0tJNWt5U0VKUVNTSTZVcUtLaFBLV3lMejNOcGltcXNKbnVnM0U0YUlNaVBJOXdzcVBUamlUbGt3cUF3RlRDeFhleFlHczBIMmdnSk9MWUxCUURDeTVnd213WXg5SkpyQXNzSFFYc0tyOUNGdU0zQWxjakowSUFkK0JBTUhMbWxySkFkdUJvNVBsNWlabXB1Y25aNmZjV3FJbUpDamFIT1poaXFtRkl1QWw2NFpzWml6RjZvRXJFSzN1Uk9sbTc2Z3djTER4TVhHeDhYQWo2SWt1NCtvSXJVazBoL1UwV0Vqem5IUUlzcWhrY2pCM3NuY3hkYkM1K0xseWN6aDdrOFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRNRU1oSnE3MDQ2ODI3LzJBb2ptUnBubVZoRUlSUm9HY3hzT3p3d3VSS3N3Wk83anZmQ0VnVGluUzduaEYwbU5FR2h3c2l3VW9nbHBTRHpoQzFLSWlLa1dBd0VKZ1FSTllWSk5pWlNkUjBJdVNzbGRKRlVKMHd1T01KSVcwMGJ5TnhSSE9CWklRamFHbHJXQnhmUUdHUUhsTlZqNVdhbTV5ZG5wOUxZMldib29zV2dpeW1RcWdFcWhON2ZaQ3dHYk95TzdFWHJLNDR1aHFscElxZ3dzUEV4Y2JIeU1lL0tNc2l2U2JQZExjbnRkSlAxTlBPYmlmUmlhUE13Y25DemNyYnlOWEc2TVhkeHVUaTd6NFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRPRU1oSnE3MDQ2ODI3LzJBb2ptUnBubWlxQXNJd0NLc3BFRFFCeCtOUUV3T2U3ejFmYUZhN0NVR3QxMUZZTU5BTUJWTFNTQ3JvYW9Qb2NFY1ZPWGNFZytoS0M1TEF0VEhRaEthSmlMUnU2THNUdjEzeTBJSE1PeXc5QjE4R2ZuK0Zob2VJaVlvWkNBazBDUWlMRmdwb0NobFRSd2h0QkpFV2NEWkNqbTBKRjN4bU1adHVGcVpDcVFRWG4za29vbWlrc0hpWm01MlNBSlJnbHJ3VGpZKzd3Y2JIeU1uS0U1Z296VzljSjdFL1dDZXNhdFVtMTF0RjB0RWp6eks0eTRuaHh0UEkyOGJxd2VqSTV1VHhKaEVBSWZrRUNRb0FBQUFzQUFBQUFEWUFOZ0FBQk1zUXlFbXJ2VGpyemJ2L1lDaU9aR21lYUtvQ3dqQUlxeWtRTkFISDQxQVRBNTd2UFY5b1Zyc0pRYTNYY1lsS0dtV3VKM0luRlJGcDFZNnVGaXh0YVYzUWwzY2FoejlYMnltZDdUaFRiNlo4VHEvYjcvaTh2R0NnR1FvYWNVSUZab0FYYkVkOU93UUdHR1pIaXpXT1FKQ1JCQmlJUW9vN2paaFJTd2RtQjNvVUI0b0dvNlNxcTZ5dE1RZ0pOQWtJckFxUkNpT0NJd2lXQkxSVFJTV3hsZ2toanlTOU5NYVV5TWxEVk1LOXhVT2ZKYnlXdjNxMmk3aEx1aFd3c3RsQ21hdkg1c3lyNWVyVnJ1NDRFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWlaY2dVR05BWUZKSk1pQldhZ1E0TWxuVHNFQmlLTElxczFya0Ftc1RSV3FDU3FPNjFXa1JrSUNUUUpDQmNIWmdkSENyRUt4cW9HeVVJSXRnVEZlc0syQ1h2VXQzcmNCSHZZc2RwNjA3Yldlc3VyelpYQncrZ2lFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWdTQ0FrMENRaVdDanMwQ3BRSW9qV2ZKWk1kbktjRUNhcURJSzQxWGtBaHREUzJYQ0d0cDdBa2p4Nm1ycW5Ca1NLaG9xUVhCUVkwQmdWTG01M0dGUVZtMHBUUG9nYVZ0Tit1bGR3NzNwUUhaZ2VXQjl3RzZwa29FUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2dktVU0Nsa0RnTFFvN05BcC9Fd2lDTlg1Q2NSWjdpQVFKaTFRWGp6VkNacFNWQkpkQUY0NklrVDVzRjRlUGlxSlJHWUdDaElXR2puMnVzck8wdFhZRkJqUUdCYlFGWnJ4UVNpSzVnZ1l5a3lHVkpwakpqOHVkSWNRN3hpV2pJUWRtQjJ1cEl3ZkVCdHEySG95ejFyUE01OURseUxUazR1OHBFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3a1JDVm9Db1dtOWhCTEZqcWFBZGhEVEdyUGtOSDZTV1VLQ3UvTjJ3cldTcmhiOG9HbHFZQWljSFpPSU5ETUhHOTdlWFhvZFVsTlZWbGRnUzRhS2k0eU5qbzhGQmpRR0JZOFhCV3MwQTVWUVhSbVNVd2FkWlJob1VKazhwV0duY2hlZ082SkNlRFlZQjZnREIxYWVHUWVnQnJtV3djTER4TVhHeDF5QUtic2lzNEVnemo5c0o3ZlNtdFN0UTZReTI4M0tLTXpJamVIRTBjYlY1OW5sM2NYazR1OG9FUUE3KSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDMycHggMzJweDtcbn1cbi5teC10YWJjb250YWluZXItdGFicyB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuLm14LXRhYmNvbnRhaW5lci10YWJzIGxpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ubXgtdGFiY29udGFpbmVyLWluZGljYXRvciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQ6ICNmMmRlZGU7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGNvbG9yOiAjYjk0YTQ4O1xuICAgIHRvcDogMHB4O1xuICAgIHJpZ2h0OiAtNXB4O1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB6LWluZGV4OiAxOyAvKiBpbmRpY2F0b3Igc2hvdWxkIG5vdCBoaWRlIGJlaGluZCBvdGhlciB0YWIgKi9cbn1cbiIsIi8qIGJhc2Ugc3RydWN0dXJlICovXG4ubXgtZ3JpZCB7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47IC8qIHRvIHByZXZlbnQgYW55IG1hcmdpbiBmcm9tIGVzY2FwaW5nIGdyaWQgYW5kIGZvb2JhcmluZyBvdXIgc2l6ZSBjYWxjdWxhdGlvbnMgKi9cbn1cbi5teC1ncmlkLWNvbnRyb2xiYXIsIC5teC1ncmlkLXNlYXJjaGJhciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZmxleC13cmFwOiB3cmFwO1xufVxuLm14LWdyaWQtY29udHJvbGJhciAubXgtYnV0dG9uLFxuLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIC5teC1idXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbn1cblxuLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIC5teC1idXR0b24gKyAubXgtYnV0dG9uLFxuLm14LWdyaWQtY29udHJvbGJhciAubXgtYnV0dG9uICsgLm14LWJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDAuM2VtO1xufVxuXG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXNlYXJjaC1jb250cm9scyAubXgtYnV0dG9uICsgLm14LWJ1dHRvbixcbltkaXI9XCJydGxcIl0gLm14LWdyaWQtY29udHJvbGJhciAubXgtYnV0dG9uICsgLm14LWJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjNlbTtcbn1cblxuLm14LWdyaWQtcGFnaW5nYmFyLFxuLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG4ubXgtZ3JpZC10b29sYmFyLCAubXgtZ3JpZC1zZWFyY2gtaW5wdXRzIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICBmbGV4OiAxO1xufVxuXG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXRvb2xiYXIsXG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXNlYXJjaC1pbnB1dHMge1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAwcHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXBhZ2luZ2JhcixcbltkaXI9XCJydGxcIl0gLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIHtcbiAgICBtYXJnaW4tbGVmdDogMHB4O1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLm14LWdyaWQtcGFnaW5nLXN0YXR1cyB7XG4gICAgcGFkZGluZzogMCA4cHggNXB4O1xufVxuXG4vKiBzZWFyY2ggZmllbGRzICovXG4ubXgtZ3JpZC1zZWFyY2gtaXRlbSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuLm14LWdyaWQtc2VhcmNoLWxhYmVsIHtcbiAgICB3aWR0aDogMTEwcHg7XG4gICAgcGFkZGluZzogMCA1cHg7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbltkaXI9XCJydGxcIl0gLm14LWdyaWQtc2VhcmNoLWxhYmVsIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLm14LWdyaWQtc2VhcmNoLWlucHV0IHtcbiAgICB3aWR0aDogMTUwcHg7XG4gICAgcGFkZGluZzogMCA1cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4ubXgtZ3JpZC1zZWFyY2gtbWVzc2FnZSB7XG4gICAgZmxleC1iYXNpczogMTAwJTtcbn1cblxuLyogd2lkZ2V0IGNvbWJpbmF0aW9ucyAqL1xuLm14LWRhdGF2aWV3IC5teC1ncmlkIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbiIsIi5teC1jYWxlbmRhciB7XG4gICAgei1pbmRleDogMTAwMDtcbn1cblxuLm14LWNhbGVuZGFyLW1vbnRoLWRyb3Bkb3duLW9wdGlvbnMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLm14LWNhbGVuZGFyLCAubXgtY2FsZW5kYXItbW9udGgtZHJvcGRvd24ge1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4ubXgtY2FsZW5kYXItbW9udGgtY3VycmVudCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4ubXgtY2FsZW5kYXItbW9udGgtc3BhY2VyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5teC1jYWxlbmRhciwgLm14LWNhbGVuZGFyLW1vbnRoLWRyb3Bkb3duLW9wdGlvbnMge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JleTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbiIsIi5teC1kYXRhZ3JpZCB0ciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubXgtZGF0YWdyaWQgdHIubXgtZGF0YWdyaWQtcm93LWVtcHR5IHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5teC1kYXRhZ3JpZCB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLm14LWRhdGFncmlkIHRoLCAubXgtZGF0YWdyaWQgdGQge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG59XG5cbi8qIGhlYWQgKi9cbi5teC1kYXRhZ3JpZCB0aCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBSZXF1aXJlZCBmb3IgdGhlIHBvc2l0aW9uaW5nIG9mIHRoZSBjb2x1bW4gcmVzaXplcnMgKi9cbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAycHg7XG59XG4ubXgtZGF0YWdyaWQtaGVhZC1jYXB0aW9uIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ubXgtZGF0YWdyaWQtc29ydC1pY29uIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1kYXRhZ3JpZC1zb3J0LWljb24ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmc6IDAgNXB4IDAgMDtcbn1cbi5teC1kYXRhZ3JpZC1jb2x1bW4tcmVzaXplciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAtNnB4O1xuICAgIHdpZHRoOiAxMHB4O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBjdXJzb3I6IGNvbC1yZXNpemU7XG59XG5bZGlyPVwicnRsXCJdIC5teC1kYXRhZ3JpZC1jb2x1bW4tcmVzaXplciB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogLTZweDtcbn1cblxuLyogYm9keSAqL1xuLm14LWRhdGFncmlkIHRib2R5IHRyOmZpcnN0LWNoaWxkIHRkIHtcbiAgICBib3JkZXItdG9wOiBub25lO1xufVxuLm14LWRhdGFncmlkIHRib2R5IHRyOm50aC1jaGlsZCgybisxKSB0ZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcbn1cbi5teC1kYXRhZ3JpZCB0Ym9keSAuc2VsZWN0ZWQgdGQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG59XG4ubXgtZGF0YWdyaWQtZGF0YS13cmFwcGVyIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ubXgtZGF0YWdyaWQgdGJvZHkgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDE2cHg7XG4gICAgbWF4LWhlaWdodDogMTZweDtcbn1cbi5teC1kYXRhZ3JpZCBpbnB1dCxcbi5teC1kYXRhZ3JpZCBzZWxlY3QsXG4ubXgtZGF0YWdyaWQgdGV4dGFyZWEge1xuICAgIGN1cnNvcjogYXV0bztcbn1cblxuLyogZm9vdCAqL1xuLm14LWRhdGFncmlkIHRmb290IHRoLFxuLm14LWRhdGFncmlkIHRmb290IHRkIHtcbiAgICBwYWRkaW5nOiAzcHggOHB4O1xufVxuLm14LWRhdGFncmlkIHRmb290IHRoIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDtcbn1cbi5teC1kYXRhZ3JpZC5teC1jb250ZW50LWxvYWRpbmcgLm14LWNvbnRlbnQtbG9hZGVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDkwJTtcbiAgICBhbmltYXRpb246IHBsYWNlaG9sZGVyR3JhZGllbnQgMXMgbGluZWFyIGluZmluaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiAjRjVGNUY1O1xuICAgIGJhY2tncm91bmQ6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNGNUY1RjUgMCUsICNGNUY1RjUgNSUsICNGOUY5RjkgNTAlLCAjRjVGNUY1IDk1JSwgI0Y1RjVGNSAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDIwMHB4IDEwMHB4O1xuICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG59XG5Aa2V5ZnJhbWVzIHBsYWNlaG9sZGVyR3JhZGllbnQge1xuICAgIDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwcHggMDsgfVxuICAgIDEwMCUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTAwcHggMDsgfVxufVxuXG4ubXgtZGF0YWdyaWQtdGFibGUtcmVzaXppbmcgdGgsXG4ubXgtZGF0YWdyaWQtdGFibGUtcmVzaXppbmcgdGQge1xuICAgIGN1cnNvcjogY29sLXJlc2l6ZSAhaW1wb3J0YW50O1xufVxuIiwiLm14LXRlbXBsYXRlZ3JpZC1jb250ZW50LXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5teC10ZW1wbGF0ZWdyaWQtcm93IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3c7XG59XG4ubXgtdGVtcGxhdGVncmlkLWl0ZW0ge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4ubXgtdGVtcGxhdGVncmlkLWVtcHR5IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuLm14LXRlbXBsYXRlZ3JpZC1pdGVtLnNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xufVxuLm14LXRlbXBsYXRlZ3JpZC1pdGVtIC5teC10YWJsZSB0aCxcbi5teC10ZW1wbGF0ZWdyaWQtaXRlbSAubXgtdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDJweCA4cHg7XG59XG4iLCIubXgtc2Nyb2xsY29udGFpbmVyLWhvcml6b250YWwge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG59XG4ubXgtc2Nyb2xsY29udGFpbmVyLWhvcml6b250YWwgPiBkaXYge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi5teC1zY3JvbGxjb250YWluZXItd3JhcHBlciB7XG4gICAgcGFkZGluZzogMTBweDtcbn1cbi5teC1zY3JvbGxjb250YWluZXItbmVzdGVkIHtcbiAgICBwYWRkaW5nOiAwO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1maXhlZCA+IC5teC1zY3JvbGxjb250YWluZXItbWlkZGxlID4gLm14LXNjcm9sbGNvbnRhaW5lci13cmFwcGVyLFxuLm14LXNjcm9sbGNvbnRhaW5lci1maXhlZCA+IC5teC1zY3JvbGxjb250YWluZXItbGVmdCA+IC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlcixcbi5teC1zY3JvbGxjb250YWluZXItZml4ZWQgPiAubXgtc2Nyb2xsY29udGFpbmVyLWNlbnRlciA+IC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlcixcbi5teC1zY3JvbGxjb250YWluZXItZml4ZWQgPiAubXgtc2Nyb2xsY29udGFpbmVyLXJpZ2h0ID4gLm14LXNjcm9sbGNvbnRhaW5lci13cmFwcGVyIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cblxuLm14LXNjcm9sbGNvbnRhaW5lci1tb3ZlLWluIHtcbiAgICB0cmFuc2l0aW9uOiBsZWZ0IDI1MG1zIGVhc2Utb3V0O1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1tb3ZlLW91dCB7XG4gICAgdHJhbnNpdGlvbjogbGVmdCAyNTBtcyBlYXNlLWluO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1zaHJpbmsgLm14LXNjcm9sbGNvbnRhaW5lci10b2dnbGVhYmxlIHtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB3aWR0aDtcbn1cblxuLm14LXNjcm9sbGNvbnRhaW5lci10b2dnbGVhYmxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1zbGlkZSA+IC5teC1zY3JvbGxjb250YWluZXItdG9nZ2xlYWJsZSA+IC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbn1cbi5teC1zY3JvbGxjb250YWluZXItcHVzaCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1zaHJpbmsgPiAubXgtc2Nyb2xsY29udGFpbmVyLXRvZ2dsZWFibGUge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG4ubXgtc2Nyb2xsY29udGFpbmVyLXB1c2gubXgtc2Nyb2xsY29udGFpbmVyLW9wZW4gPiBkaXYsXG4ubXgtc2Nyb2xsY29udGFpbmVyLXNsaWRlLm14LXNjcm9sbGNvbnRhaW5lci1vcGVuID4gZGl2IHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5teC1zY3JvbGxjb250YWluZXItcHVzaC5teC1zY3JvbGxjb250YWluZXItb3BlbiA+IC5teC1zY3JvbGxjb250YWluZXItdG9nZ2xlYWJsZSxcbi5teC1zY3JvbGxjb250YWluZXItc2xpZGUubXgtc2Nyb2xsY29udGFpbmVyLW9wZW4gPiAubXgtc2Nyb2xsY29udGFpbmVyLXRvZ2dsZWFibGUge1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuIiwiLm14LW5hdmJhci1pdGVtIGltZyxcbi5teC1uYXZiYXItc3ViaXRlbSBpbWcge1xuICAgIGhlaWdodDogMTZweDtcbn1cblxuIiwiLm14LW5hdmlnYXRpb250cmVlIC5uYXZiYXItaW5uZXIge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xufVxuLm14LW5hdmlnYXRpb250cmVlIHVsIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuLm14LW5hdmlnYXRpb250cmVlIHVsIGxpIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RmZTZlYTtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSBsaTpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG4ubXgtbmF2aWdhdGlvbnRyZWUgYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgY29sb3I6ICM3Nzc7XG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgI2ZmZjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4ubXgtbmF2aWdhdGlvbnRyZWUgYS5hY3RpdmUge1xuICAgIGNvbG9yOiAjRkZGO1xuICAgIHRleHQtc2hhZG93OiBub25lO1xuICAgIGJhY2tncm91bmQ6ICMzNDk4REI7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuLm14LW5hdmlnYXRpb250cmVlIC5teC1uYXZpZ2F0aW9udHJlZS1jb2xsYXBzZWQgdWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4ubXgtbmF2aWdhdGlvbnRyZWUgdWwge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xufVxuLm14LW5hdmlnYXRpb250cmVlIHVsIGxpIHtcbiAgICBwYWRkaW5nOiA1cHggMDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCBsaSB7XG4gICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICBwYWRkaW5nOiA1cHggMDtcbn1cbltkaXI9XCJydGxcIl0gLm14LW5hdmlnYXRpb250cmVlIHVsIGxpIHVsIGxpIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCBsaSB1bCBsaSB7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIHBhZGRpbmctdG9wOiAzcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDNweDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCBsaSB1bCBsaSBpbWcge1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4iLCIubXgtbGluayBpbWcsXG4ubXgtYnV0dG9uIGltZyB7XG4gICAgaGVpZ2h0OiAxNnB4O1xufVxuLm14LWxpbmsge1xuICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbiIsIi5teC1ncm91cGJveCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi5teC1ncm91cGJveC1oZWFkZXIge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gICAgY29sb3I6ICNlZWU7XG4gICAgYmFja2dyb3VuZDogIzMzMztcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4IDRweCAwIDA7XG59XG4ubXgtZ3JvdXBib3gtY29sbGFwc2libGUgPiAubXgtZ3JvdXBib3gtaGVhZGVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubXgtZ3JvdXBib3guY29sbGFwc2VkID4gLm14LWdyb3VwYm94LWhlYWRlciB7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLm14LWdyb3VwYm94LWJvZHkge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5teC1ncm91cGJveC5jb2xsYXBzZWQgPiAubXgtZ3JvdXBib3gtYm9keSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbi5teC1ncm91cGJveC1oZWFkZXIgKyAubXgtZ3JvdXBib3gtYm9keSB7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgNHB4IDRweDtcbn1cbi5teC1ncm91cGJveC1jb2xsYXBzZS1pY29uIHtcbiAgICBmbG9hdDogcmlnaHQ7XG59XG5bZGlyPVwicnRsXCJdIC5teC1ncm91cGJveC1jb2xsYXBzZS1pY29uIHtcbiAgICBmbG9hdDogbGVmdDtcbn1cbiIsIi5teC1kYXRhdmlldyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLm14LWRhdGF2aWV3LWNvbnRyb2xzIHtcbiAgICBwYWRkaW5nOiAxOXB4IDIwcHggMTJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWVlO1xufVxuXG4ubXgtZGF0YXZpZXctY29udHJvbHMgLm14LWJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG4ubXgtZGF0YXZpZXctY29udHJvbHMgLm14LWJ1dHRvbiArIC5teC1idXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiAwLjNlbTtcbn1cblxuLm14LWRhdGF2aWV3LW1lc3NhZ2Uge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbn1cbi5teC1kYXRhdmlldy1tZXNzYWdlID4gZGl2IHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG4ubXgtZGF0YXZpZXctbWVzc2FnZSA+IGRpdiA+IHAge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi8qIFRvcC1sZXZlbCBkYXRhIHZpZXcgaW4gd2luZG93IGlzIGEgc3BlY2lhbCBjYXNlLCBoYW5kbGUgaXQgYXMgc3VjaC4gKi9cbi5teC13aW5kb3ctdmlldyAubXgtd2luZG93LWJvZHkge1xuICAgIHBhZGRpbmc6IDA7XG59XG4ubXgtd2luZG93LXZpZXcgLm14LXdpbmRvdy1ib2R5ID4gLm14LWRhdGF2aWV3ID4gLm14LWRhdGF2aWV3LWNvbnRlbnQsXG4ubXgtd2luZG93LXZpZXcgLm14LXdpbmRvdy1ib2R5ID4gLm14LXBsYWNlaG9sZGVyID4gLm14LWRhdGF2aWV3ID4gLm14LWRhdGF2aWV3LWNvbnRlbnQge1xuICAgIHBhZGRpbmc6IDE1cHg7XG59XG4ubXgtd2luZG93LXZpZXcgLm14LXdpbmRvdy1ib2R5ID4gLm14LWRhdGF2aWV3ID4gLm14LWRhdGF2aWV3LWNvbnRyb2xzLFxuLm14LXdpbmRvdy12aWV3IC5teC13aW5kb3ctYm9keSA+IC5teC1wbGFjZWhvbGRlciA+IC5teC1kYXRhdmlldyA+IC5teC1kYXRhdmlldy1jb250cm9scyB7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4IDBweCA2cHggNnB4O1xufVxuIiwiLm14LWRpYWxvZyB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogNTAwcHg7XG4gICAgLyogSWYgdGhlIG1hcmdpbiBpcyBzZXQgdG8gYXV0bywgSUU5IHJlcG9ydHMgdGhlIGNhbGN1bGF0ZWQgdmFsdWUgb2YgdGhlXG4gICAgICogbWFyZ2luIGFzIHRoZSBhY3R1YWwgdmFsdWUuIE90aGVyIGJyb3dzZXJzIHdpbGwganVzdCByZXBvcnQgMC4gRWxpbWluYXRlXG4gICAgICogdGhpcyBkaWZmZXJlbmNlIGJ5IHNldHRpbmcgbWFyZ2luIHRvIDAgZm9yIGV2ZXJ5IGJyb3dzZXIuICovXG4gICAgbWFyZ2luOiAwO1xufVxuLm14LWRpYWxvZy1oZWFkZXIge1xuICAgIGN1cnNvcjogbW92ZTtcbn1cbi5teC1kaWFsb2ctYm9keSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG59XG4iLCIubXgtd2luZG93IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiA2MDBweDtcbiAgICAvKiBJZiB0aGUgbWFyZ2luIGlzIHNldCB0byBhdXRvLCBJRTkgcmVwb3J0cyB0aGUgY2FsY3VsYXRlZCB2YWx1ZSBvZiB0aGVcbiAgICAgKiBtYXJnaW4gYXMgdGhlIGFjdHVhbCB2YWx1ZS4gT3RoZXIgYnJvd3NlcnMgd2lsbCBqdXN0IHJlcG9ydCAwLiBFbGltaW5hdGVcbiAgICAgKiB0aGlzIGRpZmZlcmVuY2UgYnkgc2V0dGluZyBtYXJnaW4gdG8gMCBmb3IgZXZlcnkgYnJvd3Nlci4gKi9cbiAgICBtYXJnaW46IDA7XG59XG4ubXgtd2luZG93LWNvbnRlbnQge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLm14LXdpbmRvdy1hY3RpdmUgLm14LXdpbmRvdy1oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4IDZweCAwIDA7XG59XG4ubXgtd2luZG93LWhlYWRlciB7XG4gICAgY3Vyc29yOiBtb3ZlO1xufVxuLm14LXdpbmRvdy1ib2R5IHtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cbiIsIi5teC1kcm9wZG93bi1saXN0ICoge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1kcm9wZG93bi1saXN0IGltZyB7XG4gICAgd2lkdGg6IDM1cHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1kcm9wZG93bi1saXN0IGltZyB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4ubXgtZHJvcGRvd24tbGlzdCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuLm14LWRyb3Bkb3duLWxpc3QgPiBsaSB7XG4gICAgcGFkZGluZzogNXB4IDEwcHggMTBweDtcbiAgICBib3JkZXI6IDFweCAjZGRkO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLm14LWRyb3Bkb3duLWxpc3QgPiBsaTpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4O1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7XG59XG4ubXgtZHJvcGRvd24tbGlzdCA+IGxpOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xufVxuLm14LWRyb3Bkb3duLWxpc3Qtc3RyaXBlZCA+IGxpOm50aC1jaGlsZCgybisxKSB7XG4gICAgYmFja2dyb3VuZDogI2Y5ZjlmOTtcbn1cbi5teC1kcm9wZG93bi1saXN0ID4gbGk6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7XG59XG4iLCIubXgtaGVhZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogOXB4O1xuICAgIGJhY2tncm91bmQ6ICMzMzM7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLm14LWhlYWRlci1jZW50ZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBjb2xvcjogI2VlZTtcbiAgICBsaW5lLWhlaWdodDogMzBweDsgLyogaGVpZ2h0IG9mIGJ1dHRvbnMgKi9cbn1cbmJvZHlbZGlyPVwibHRyXCJdIC5teC1oZWFkZXItbGVmdCxcbmJvZHlbZGlyPVwicnRsXCJdIC5teC1oZWFkZXItcmlnaHQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDlweDtcbiAgICBsZWZ0OiA5cHg7XG59XG5ib2R5W2Rpcj1cImx0clwiXSAubXgtaGVhZGVyLXJpZ2h0LFxuYm9keVtkaXI9XCJydGxcIl0gLm14LWhlYWRlci1sZWZ0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA5cHg7XG4gICAgcmlnaHQ6IDlweDtcbn1cbiIsIi5teC10aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIG1hcmdpbi10b3A6IDBweDtcbn1cbiIsIi5teC1saXN0dmlldyB7XG4gICAgcGFkZGluZzogOHB4O1xufVxuLm14LWxpc3R2aWV3ID4gdWwge1xuICAgIHBhZGRpbmc6IDBweDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuLm14LWxpc3R2aWV3ID4gdWwgPiBsaSB7XG4gICAgcGFkZGluZzogNXB4IDEwcHggMTBweDtcbiAgICBib3JkZXI6IDFweCAjZGRkO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG4ubXgtbGlzdHZpZXcgPiB1bCA+IGxpOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweDtcbn1cbi5teC1saXN0dmlldyA+IHVsID4gbGk6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4O1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7XG59XG4ubXgtbGlzdHZpZXcgbGk6bnRoLWNoaWxkKDJuKzEpIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjlmOWY5O1xufVxuLm14LWxpc3R2aWV3IGxpOm50aC1jaGlsZCgybisxKTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2Y1ZjVmNTtcbn1cbi5teC1saXN0dmlldyA+IHVsID4gbGkuc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQ6ICNlZWU7XG59XG4ubXgtbGlzdHZpZXctY2xpY2thYmxlIHVsICoge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1saXN0dmlldy1lbXB0eSB7XG4gICAgY29sb3I6ICM5OTk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLm14LWxpc3R2aWV3IC5teC1saXN0dmlldy1sb2FkaW5nIHtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5teC1saXN0dmlldy1zZWFyY2hiYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi5teC1saXN0dmlldy1zZWFyY2hiYXIgPiBpbnB1dCB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4ubXgtbGlzdHZpZXctc2VhcmNoYmFyID4gYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xufVxuW2Rpcj1cInJ0bFwiXSAubXgtbGlzdHZpZXctc2VhcmNoYmFyID4gYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbi5teC1saXN0dmlldy1zZWxlY3Rpb24ge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBwYWRkaW5nOiAwIDE1cHggMCA1cHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1saXN0dmlldy1zZWxlY3Rpb24ge1xuICAgIHBhZGRpbmc6IDAgNXB4IDAgMTVweDtcbn1cbi5teC1saXN0dmlldy1zZWxlY3RhYmxlIC5teC1saXN0dmlldy1jb250ZW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4ubXgtbGlzdHZpZXcgLnNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZGVmO1xufVxuLm14LWxpc3R2aWV3IC5teC10YWJsZSB0aCxcbi5teC1saXN0dmlldyAubXgtdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDJweDtcbn1cbiIsIi5teC1sb2dpbiAuZm9ybS1jb250cm9sIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuIiwiLm14LW1lbnViYXIge1xuICAgIHBhZGRpbmc6IDhweDtcbn1cbi5teC1tZW51YmFyLWljb24ge1xuICAgIGhlaWdodDogMTZweDtcbn1cbi5teC1tZW51YmFyLW1vcmUtaWNvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDTUFBQUFqQ0FZQUFBQWUyYk5aQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFLTkpSRUZVZU5waS9QLy9QOE5nQVV3TWd3aU1PbWJVTWFPT0dYWE1xR05HSFRQWUhNT0NUZkRzMmJNZVFLb09pSTFCWENCdU1qWTIza0ZyZFl6b1RRaWdSbThndFFXTEcwT0JCcXlobFRwYzBkU09JeFRyYUt3T3EyUFVjV2hXcDdFNnJJNjVpVVB6VFJxcncrcVlHaHlhbTJpc0R0TXh3RVMxQ1VnRkFmRnhxQkNJRGtKUGJOUldoelUzalJaNm80NFpkY3lvWTBZZE0rcVlVY2NNVXNjQUJCZ0FVWHBFakUvQnMvSUFBQUFBU1VWT1JLNUNZSUk9KSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDE2cHggMTZweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuIiwiLm14LW5hdmlnYXRpb25saXN0IHtcbiAgICBwYWRkaW5nOiA4cHg7XG59XG4ubXgtbmF2aWdhdGlvbmxpc3QgbGk6aG92ZXIsXG4ubXgtbmF2aWdhdGlvbmxpc3QgbGk6Zm9jdXMsXG4ubXgtbmF2aWdhdGlvbmxpc3QgbGkuYWN0aXZlIHtcbiAgICBjb2xvcjogI0ZGRjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OERCO1xufVxuLm14LW5hdmlnYXRpb25saXN0ICoge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1uYXZpZ2F0aW9ubGlzdCAudGFibGUgdGgsXG4ubXgtbmF2aWdhdGlvbmxpc3QgLnRhYmxlIHRkIHtcbiAgICBwYWRkaW5nOiAycHg7XG59XG4iLCIubXgtcHJvZ3Jlc3Mge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDMwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICB3aWR0aDogMjUwcHg7XG4gICAgbWF4LXdpZHRoOiA5MCU7XG4gICAgYmFja2dyb3VuZDogIzMzMztcbiAgICBvcGFjaXR5OiAwLjg7XG4gICAgei1pbmRleDogNTAwMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgcGFkZGluZzogMjBweCAxNXB4O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBlYXNlLWluLW91dDtcbn1cbi5teC1wcm9ncmVzcy1oaWRkZW4ge1xuICAgIG9wYWNpdHk6IDA7XG59XG4ubXgtcHJvZ3Jlc3MtbWVzc2FnZSB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG59XG4ubXgtcHJvZ3Jlc3MtZW1wdHkgLm14LXByb2dyZXNzLW1lc3NhZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4ubXgtcHJvZ3Jlc3MtaW5kaWNhdG9yIHtcbiAgICB3aWR0aDogNzBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIGJhY2tncm91bmQ6IHVybChkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhSZ0FLQU1RQUFEbzZPb0dCZ1ZwYVduQndjSTZPanF5c3JGSlNVbVJrWkQ4L1AweE1UTTdPenFlbnAxaFlXRjFkWFVoSVNISnljb2VIaDB0TFMxZFhWNmlvcU0vUHoyVmxaVDA5UFRjM04wQkFRSVdGaGRiVzFseGNYSzJ0clVGQlFUTXpNd0FBQUNIL0MwNUZWRk5EUVZCRk1pNHdBd0VBQUFBaCtRUUVEQUFBQUN3QUFBQUFSZ0FLQUFBRms2RG5YUmFHV1plb3JxU0pybkI3cHJBcXY3VjQweDdRL1VCQXpnZjhDV3ZFNGhHV0RBNkx4aEVVeU5OTmYxWHBOWHU1ZHJoZWt0Y0NzNHpMNTVYNVNsYVBNVjRNREg2VnIraFR1d29QMVl2NFJTWnhjNE4zaFh1SGYzRnJVMjBxakZDT0lwQkZraDZVUUphWVB5aGhNWjRzb0RhaVZsczlVMHNyVFZGSXFFOVFxU3FySFVzN09Ub2xNN2NqdVRnNXRyZkFJUUFoK1FRRURBQUFBQ3dBQUFBQUNnQUtBQUFGSktEbkhZV2lGSWZvUVZyclFxTXJhK1RzbG5acjV0ckpvN3dVYXdZVFZRb1VDa29VQWdBaCtRUUVEQUFBQUN3QUFBQUFHUUFLQUFBRldhRG5NY1N5RUpLb3JrZWhLTVdoUGx4dFA2c0thWHdQZVJLYmtNUElIWHBJellFd3RCRnloV1N2c0dqV0ZqbUZsS2VvV3JFcjdWYkJ0RDVYMFcyQllTVWF0MG9QYllqTGVYYkpuNGcwbVJDS2RpSVZCUlFVTVNJaEFDSDVCQVFNQUFBQUxBQUFBQUFvQUFvQUFBV0tvT2NsUXhBTWthaXVETEVzaExUT1I2RW94YUUyV2U4M005R0RReXcrZ2g2SVpzbUVlQ0srYUNZeGt4U3ZIQWFOeWRVY0JsTGZZRWJBRmdtelFwZFpDSVI3Z2RuQ1RGek1GT3Vsd3YyT3IrWjBkaXQ0ZVFwZ2IyTXJaWFJvSzJwNUJRbHZVek1NZEZsYmVUbzhVa0JCUTFoSFFVcGRUaUlrSmdOVVNCNHRFeE1FV3F3VkJSUVVPU0loQUNINUJBUU1BQUFBTEFBQUFBQTNBQW9BQUFXOG9PY2hoaUFZaUtpdXlSQUVRN1RPRExFc2hEU3ZSNkVvaFlQS3NTa2FIVHRQSThOc05wSVBqblQ2U0VJMDJDeGtaT3h1VXF0SWM1eEp6Q1RUTkljeE8yVGZtb1BCYXpUTUJ1VG1ZRVpRVHdrekJYQlpCUUowUlFJekFYbE1BVE1MZmxJTE13cURXQXFHaDRrcmk0eU9LNUNSa3l1VmxncHpoM1lyZUl4N0szMlJnQ3VDbGdVSWgxOHpDWXhsTkpGcmJaWnhIa1JlU0R0TFpFODdVV3BWTzFkd1d5SVlKU2RnU1MwdkEyWkpIalVURXdSczNoVUZGQlJCSWlFQUlma0VCQXdBQUFBc0FBQUFBRVlBQ2dBQUJmQ2c1MTBXaGxtWHFLNklJUWdHc3M3SkVBUkROSzhNc1N3RXlVNTFLQ2dVaFlNSzBHazZBVVBIWmtwMURCdVpyTFl4ZkhDKzRNY1FvaW1iSVNPbnVwTmlVZDhiMlNxaXJXY1NNd2w0ejJITURtYUJHZ2NXYTA0V013WndWQVl6QTNaYUF6TUVmR0FFTXdXQ1pnVVloazBZTXdLTFV3SXpBWkJaQVRNTGxWOExNd3FhWlFxZG5xQXJvcU9sSzZlb3FpdXNyYThyc2JJS2haNklLNHFqalN1UHFKSXJsSzJYSzVteUJSZWViRE1JbzNFMHFIY3pESzE5ZjdLREhreHJVRHRTY0ZZN1dIWmNPMTU4WWp0a2dtZ2lKRXlnR0NJQ2d3c1ljb2JVdURFQUQ4RWVFeVlROEVPd1FnRUtGSktJQ0FFQUlma0VCQXdBQUFBc0R3QUFBRGNBQ2dBQUJicWc1MTBXaGxtWHFLNklJUWdHc3M3SkVBUkROSzhNc1N3RWlRclFLUm9CTzQ5ancydzZrbzJNZE5wSVBqalk3R05rN0haU3JLWjRJMXRGcHVoTVlpYkp1amtNaTlkb21SbkdUY05za0o0T1pnUnZXUVFZYzBVWU13SjRUQUl6QVgxU0FUTUxnbGdMaFlhSUs0cUxqU3VQa0pJcmxKVUxjb1oxSzNlTGVpdDhrSDhyZ1pVRUY0WmZNd2lMWkRTUWFqTU1sWEFlUkY1SU8wdGpUenRSYVZVN1YyOWJJaVFtS0VraUdDNHdaVWsxTndOcjJEMFRFd1FNSWlFQUlma0VCQXdBQUFBc0hnQUFBQ2dBQ2dBQUJZZWc1MTBXaGxtWHFLNklJUWdHc3M3SkVBUkRwQUpkN3dNemtXTkRMRHFDbmtabXlXeU1mTkJPaWxXc2JtU3JDSE9iU1ZpaVBzdk1ZQzBhWmdNdWM0QUI5ekF6UVprb21BWFV5MERiRFYvSjUzVXJkM2dCWDI1aUsyUnpaeXRwZUFNWGJsSXpDSE5YTkhoZEhqeFJRRUZEVmtkQlNseE9JaVFtS0VnaUdDNHdXRWcxTndNSklpRUFJZmtFQkF3QUFBQXNMUUFBQUJrQUNnQUFCVldnNTEwV2hsbVhxSzZJSVFnR29nSmRiUU9yNm14ODc0eTJZQ2ZGNmhrM0NJdlFac2taamowRFpsbkQ1QVJRbm1CS3RhNndXWUdTMmx3OXM0WUxkWmhEWkpFZW1oQ1g4K3lPUHhISmhLcXJNQzR3TWg0aEFDSDVCQVFNQUFBQUxEd0FBQUFLQUFvQUFBVWlvT2RkRm9aWmwrZ0JYZXNDb3l0MzVPeVdkbXZtM2NtanZCUnJCaE9SVENoUkNBQTcpO1xufVxuIiwiLm14LXJlbG9hZC1ub3RpZmljYXRpb24ge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiAxMDAxO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxcmVtO1xuXG4gICAgYm9yZGVyOiAxcHggc29saWQgaHNsKDIwMCwgOTYlLCA0MSUpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgyMDAsIDk2JSwgNDQlKTtcblxuICAgIGJveC1zaGFkb3c6IDAgNXB4IDIwcHggcmdiYSgxLCAzNywgNTUsIDAuMTYpO1xuICAgIGNvbG9yOiB3aGl0ZTtcblxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDE0cHg7XG59XG4iLCIubXgtcmVzaXplci1uLFxuLm14LXJlc2l6ZXItcyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMHB4O1xufVxuLm14LXJlc2l6ZXItbiB7XG4gICAgdG9wOiAtNXB4O1xuICAgIGN1cnNvcjogbi1yZXNpemU7XG59XG4ubXgtcmVzaXplci1zIHtcbiAgICBib3R0b206IC01cHg7XG4gICAgY3Vyc29yOiBzLXJlc2l6ZTtcbn1cblxuLm14LXJlc2l6ZXItZSxcbi5teC1yZXNpemVyLXcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDEwcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuLm14LXJlc2l6ZXItZSB7XG4gICAgcmlnaHQ6IC01cHg7XG4gICAgY3Vyc29yOiBlLXJlc2l6ZTtcbn1cbi5teC1yZXNpemVyLXcge1xuICAgIGxlZnQ6IC01cHg7XG4gICAgY3Vyc29yOiB3LXJlc2l6ZTtcbn1cblxuLm14LXJlc2l6ZXItbncsXG4ubXgtcmVzaXplci1uZSxcbi5teC1yZXNpemVyLXN3LFxuLm14LXJlc2l6ZXItc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG59XG5cbi5teC1yZXNpemVyLW53LFxuLm14LXJlc2l6ZXItbmUge1xuICAgIHRvcDogLTVweDtcbn1cbi5teC1yZXNpemVyLXN3LFxuLm14LXJlc2l6ZXItc2Uge1xuICAgIGJvdHRvbTogLTVweDtcbn1cbi5teC1yZXNpemVyLW53LFxuLm14LXJlc2l6ZXItc3cge1xuICAgIGxlZnQ6IC01cHg7XG59XG4ubXgtcmVzaXplci1uZSxcbi5teC1yZXNpemVyLXNlIHtcbiAgICByaWdodDogLTVweDtcbn1cblxuLm14LXJlc2l6ZXItbncge1xuICAgIGN1cnNvcjogbnctcmVzaXplO1xufVxuLm14LXJlc2l6ZXItbmUge1xuICAgIGN1cnNvcjogbmUtcmVzaXplO1xufVxuLm14LXJlc2l6ZXItc3cge1xuICAgIGN1cnNvcjogc3ctcmVzaXplO1xufVxuLm14LXJlc2l6ZXItc2Uge1xuICAgIGN1cnNvcjogc2UtcmVzaXplO1xufVxuIiwiLm14LXRleHQge1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtbGluZTtcbn1cbiIsIi5teC10ZXh0YXJlYSB0ZXh0YXJlYSB7XG4gICAgcmVzaXplOiBub25lO1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbn1cbi5teC10ZXh0YXJlYSAubXgtdGV4dGFyZWEtbm9yZXNpemUge1xuICAgIGhlaWdodDogYXV0bztcbiAgICByZXNpemU6IHZlcnRpY2FsO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG59XG4ubXgtdGV4dGFyZWEgLm14LXRleHRhcmVhLWNvdW50ZXIge1xuICAgIGZvbnQtc2l6ZTogc21hbGxlcjtcbn1cbi5teC10ZXh0YXJlYSAuZm9ybS1jb250cm9sLXN0YXRpYyB7XG4gICAgd2hpdGUtc3BhY2U6IHByZS1saW5lO1xufVxuIiwiLm14LXVuZGVybGF5IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB6LWluZGV4OiAxMDAwO1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xufVxuIiwiLm14LWltYWdlem9vbSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTk5O1xufVxuLm14LWltYWdlem9vbS13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLm14LWltYWdlem9vbS1pbWFnZSB7XG4gICAgbWF4LXdpZHRoOiBub25lO1xufVxuIiwiLm14LWRyb3Bkb3duIGxpIHtcbiAgICBwYWRkaW5nOiAzcHggMjBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubXgtZHJvcGRvd24gbGFiZWwge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubXgtZHJvcGRvd24gaW5wdXQge1xuICAgIG1hcmdpbjogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1kcm9wZG93biAuc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQ6ICNmOGY4Zjg7XG59XG4ubXgtc2VsZWN0Ym94IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLm14LXNlbGVjdGJveC1jYXJldC13cmFwcGVyIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuIiwiLm14LWRlbW91c2Vyc3dpdGNoZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogMzYwcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHotaW5kZXg6IDIwMDAwO1xuICAgIGJveC1zaGFkb3c6IC0xcHggMCA1cHggcmdiYSgyOCw1OSw4NiwuMik7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlci1jb250ZW50IHtcbiAgICBwYWRkaW5nOiA4MHB4IDQwcHggMjBweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgY29sb3I6ICMzODdlYTI7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIGJhY2tncm91bmQ6IHVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU9nQUFBQmdDQVlBQUFBWFNqN05BQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlScFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1TXkxak1ERXhJRFkyTGpFME5UWTJNU3dnTWpBeE1pOHdNaTh3TmkweE5EbzFOam95TnlBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVOVE5pQW9UV0ZqYVc1MGIzTm9LU0lnZUcxd1RVMDZTVzV6ZEdGdVkyVkpSRDBpZUcxd0xtbHBaRG8wTXprd09UUkVNRFEyTkVZeE1VVTBRVFE0TVVJNU5UTkdNVVEzUXpFNU55SWdlRzF3VFUwNlJHOWpkVzFsYm5SSlJEMGllRzF3TG1ScFpEbzBNemt3T1RSRU1UUTJORVl4TVVVMFFUUTRNVUk1TlROR01VUTNRekU1TnlJK0lEeDRiWEJOVFRwRVpYSnBkbVZrUm5KdmJTQnpkRkpsWmpwcGJuTjBZVzVqWlVsRVBTSjRiWEF1YVdsa09qYzBSRU15TVVaR05EWTBRekV4UlRSQk5EZ3hRamsxTTBZeFJEZERNVGszSWlCemRGSmxaanBrYjJOMWJXVnVkRWxFUFNKNGJYQXVaR2xrT2pjMFJFTXlNakF3TkRZMFF6RXhSVFJCTkRneFFqazFNMFl4UkRkRE1UazNJaTgrSUR3dmNtUm1Pa1JsYzJOeWFYQjBhVzl1UGlBOEwzSmtaanBTUkVZK0lEd3ZlRHA0YlhCdFpYUmhQaUE4UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrZzF0Umx3QUFFRkZKUkVGVWVOcnNuWWwzVmNVZHgyZHU4ckpESUpDd0NnalZhclZvc1ZYYzZqbldubnBJUWxKV2w2T0NyUFlma2gxY2l1d2xMRm81dFQzbFZKUlZFVVVFUlFRSlM0Q1FRRWpDUzk3MCs1Mlo5M0lUREd1Uzk4ajcvVGp6N3IyL2U5OTlaTzU4N205K003K1owY05YYnNxS2FUTmVLVlZvbEttT0tiWDM5RXNWS2wxRVY2MklLSzN3QjV1SGNZZy8zM3lDNHgybS9FMmpSRVNTTE1HSmw4dXZZcnNIaWR1aFNBK21Vd2FZaWhsUk0zSEdPdXp1Wlg0Zy9SbHBpdDY4TkZ1S2gwalNEWWd4emxBTVc3V3BDQmIwNlJqTmlEWUh6azZ2UEpaMm1iRnArYStKTEN4b0hyYm5vVnB0eW1lZGxXSWlrblJBS1VOWFZRMERvT01BcUlKMlg4MzB5cFBwQitteVFsL2xIWTNES0xaYlRmbnNMNldvaUNRZFVNcmdWVlZqQWVoSWFHTXhaWGFlbi83WGMybVpNWnVYVm1MenFGSTJmL1lCMm85TTJleW9GQm1ScEFKS0tWbTk4UkZvUndCUUZzZ2RnTFErVFNFZEIwQkxzWnNCUUd1d3Y4NlV6VGtqeFVZa3FZQlNpbGR2SEFkQWgyRzNDUloxUisyMFNRM3BDZW1TZ2RpVUFkQlJBTFFGKzl1UWRnTlVhZVVWU1I2Z2xBR3IvL0U0Tm9NQWFBTjgweDExMHlZMXBXMUdiVmxDdi9SMy92QVE5amVac3JsWHBBaUpkS2NFTnpqUDdoZFU3VlErMGhOOTFxeVBwR3RHd2Yrc3dvYmRNWmVRSGtENm05Nnk2SDRwUWlKSnM2RGVpa1pnUVIrSEJTMUNsYmZXYVBQWjVhbFRXdFBYa2k0dXNGVmVaUjV3Q3ZhZm1vOU42YnlyVXB4RWVoeFFTdjgxRzNJQUtDQTFoUUQwSFBaM1hVbGpTQjJvaTU3QjVua0FpbHFJdVlEOWpZRDB1QlFwa1I0SGxGSzRaa01lQUIwUFFQTUI2TmxXWlhZM1Q1MGFTM05JaXdIb2l3QjBqSEw5TWJ1UVBoRnJLdExqZ0ZMZ2crWUQwUEdnTWcrQW5zRjJUelROSWJXWnVIVWhxcnpxOS82dzFqWWdsYzcvVVlxWFNJOENTaWxZdTQ0VzlDa0F5bXJ2S2ZpbmUxdW5URE1DNmNJaDJQd0o2VmNBbFBteEY5YjFYMmJDL0NZcFppSTlCaWdsRDVDMnVyamRiQUJhRGRVK2dUUnNUWTJ6cHRxMitQNFRrSDRqT1NQU1k0QlNzdGV1TFFDZ1R3UFFMQnhXd3ovZFo2Wk1GMGd0cEF0S3NIa0JnTWE3WVk0QTJnL05oTGRxSlhkRWVnUlFTb1NRYXNQV3pBZ0FQVVZMQ2toamtxMCtjejljOEFRMlR5TDFVeTVzY2p2U0RvRGFLcmtqMHUyQVVqTFdyV0cvNEZNQWxPTW56K0NPZTh6a2x3VFNOa2laTHhNQTZDTmV4UzZaandEcEVja2RrVzRIMUVPYUQwQ2Z3bTRPN3NqeGs0UlVyRVE3VU4rK2p5OHlwSHU5Nmp1a2p3SHFCY2tka1c0RjFONW8zV3FHQTQ3SEhmT1VEUTgwdTgza2x3WFNhMEY5RnBzL0lQVlZkcnlwK3N4WGU2VzFWNlQ3QUUxQXFnMzlybndmWGJNTGtNb1l5bXNoemNYbUw4cU9ON1hDb1B2L0lPMEZxT0llaUhRUG9QYUc2MWZsT1F0aGFDSHE4QXM3emFSWG1pV3JmeEhVVWI3YUcyL3Q1Y0NFYmVLZmluUWJvQjdTSE44WDJCKy93SEdrbndOU0daclZPYWkveGVZeHBGRmU5Wk5peU9DRXR5UzJWd0R0bnE1THZmNkRMRnZvdE9HQVovaFhCcEMrZWtteS9JYitLV0V0OGFyRFNQOEdxS2NsZHdUUTdvQTBFNy9BUWM2RGZUL2dia0I2WHJMOXVwQnE1VUlHQ1dxaGNrSDRqRVQ2TDBDdGtSd1NRTHYrUnphczVOdytuRDRscG9MWUY2Ynl0V3JKK2h1Q0NqZEJ2YURhZ3ZBOXFCcWd6aGRRQmRDdWh2VHY3S2dmQVVENWd3Y0I2VkhKL3BzQ2xZMXR6M2tmMVQ0eWIxRzNBMVNaczFjQTdWSkl4d0xRa2Q0Z0hIV2d2aTd4dTdjRXFuNHNaRkhwbzM0S1VLVXhTUUR0b2gvYytONFFWMjJ6djN0S2FmV0ZxWGhkQWhwdUd0UUZCUFdQb2FvdnM1S0EvZy9waUNtZEx5ODhBZlNPSVdYd09BTWFzZ0RvUmV6dk1oVnZTRi9wcllIS1lJZW5rZTREb0lPOG1sWGVuVGo3bFNtZEp3RWlBdWlkUVBwdXZ2V3JORnNxRGNQY2RnTFNlbmtrdDVHWFd4YzhZMEZWeXJzUG1uM09YQXhxRjBDVnJpMEI5TFlocFFYbDhncTBBQzJLWTBvclpzak03YmNQS2h2aXhtSnZqRmZSZFRpbzJMMGxFNW9Kb0xmOW42aDZoMzJsdy8xVUlkOEMwaC9rMGR3SnFBdHBTVG5wK0VNaExhdS91NUVPbU5LNUVwZ3ZnTjR5cEhqekcxZEYwK29rOXZlYmlUT2w4ZWpPUUdXZ0EwZk9qTURSQ0srK0NwLzFBTFpmbXJLNUp5U1hCTkJiZ0hURllNVVJIbHBGQUdpZHJacE5uTmtvajZrcllGM0V5Q1NtKzFYaWtXdXVYTWVsRmZlYnNqbmlxd3FnTndWcEhnQmw1RkYvKzdaWFpvK1orS2FFQjNZZHFNVUE5RkZ2VmUveGFnNXhvMXZ4RlhTSFpKbEZBZlQ2LzZsTkt6SUJKZ3ZSRU8rWEhnU2tFbm5VMWZtOFpUR0h1VDNTd1ZkbEZmZ1FmVldrbzZaOHRyZ1pBbWhub0M1SDRURWp2RjlhYmYzUzhsa3Q4dGk2SEZUT216UlcyVVdoOUppMktqQUhrdXR2bFdzSlBvYThGMWdGMEk2UUxodGlDNDlXV1FDMHdmcWw1YlBFWCtvMldKZjBBNkQwVlVjck8zK1NqcDlxeFA1M09FZGdmMENOUmw2VUFtZ0MwbHlVRTFyVFltWDc5c3dCVkwya0JiSzc4MzN6RXVTMy9vMXlBOGtkcks2NHdFZlZkRGtZQzN6WVRKd3BMOHgwQnJTdHdDeWxYM3FQTHlYSFVWNitObVhpSS9WUTNoZmg4MEZrL1JoblhST1dsUS9qRkk2UFlJOE5UVCtiaWhreXIxSTZBdW9MQ254U3d5cFlnREp5R2Z0N1Rka2NDUkhzNlJxTjBteGdZdklOVEFucjJvejlZOHExQ2g4MUZXK2NreHhMSTBCOTFhdkErNlVEVUNyNHR2NEdrQjZUeDVrTVdKZHJWd1cyalV0czBCc1JzcTY4NGhMMFA5a2Fqd08zeGxTK0ppTnVlak9nb1FZTnh2SEcrL0k0Ync4NzNHVnR6bVErazZvVnVUNFdlTFNIZFdBb01JSWZET1Evb1dMQno2d09RMWN0c3o3MlVrQWRwSXM1bFFvYk1qaEZTQ09BWlFpYlZLdFNCdGgzKzNyTE9zcUhHN29KMFdKQi9BcldnR284cktkd0xWKzBaMlErNVY0Q3FJYzBSN2wrdkVIZUVUcUtsL1VoVXpwWEdwQlM3Vmx0ZkkvRERJY0QwT0hLTnZqcFVhR3pjVDgyNXNNUUFhcytBeDBEL1dzQ3BldlNiWm5MWGdGb0NOUnd3RDJiL3I4QXBIV0NSUW8vc3cwcmFVcUxMYlJLRHdXTWpNY2UxdWJISnFCbHErQlZEMm9OZEJmd3hRc1pTbk1GZ3d0WHBrNXBFa0R2Q2tnWGNRVEhRNjRCaVc5aXc3NjY3MDNwUEdtWXVGdWU0Zm9QTXF6dmFxZHIxU1dBa2RYaVlvRFp6NE5xb1NYWkdSN2tER01IcWRkQ1YwOUxpLzJMZ2RGczNlZHhQYTY2Y25aNjVWMFJYUEhraXUyWitMdnp0VkY5ZWgyZ2lZZThkWkdiUmRDOWZpOHFOaUNWenBQdW1MdFlNdGF0eWZLZ011Qy9DREFXQWRBaXhhM1JPUTVlRHpDM1JzY3RiOXdlTjBGM09YQWhqQTJFRnNlMHZFM2FUcTZ1bTNDdVVSdE4vemVLL1didGZPU3IwTVZDOTJvKzlPcUw3ZnA2SDM1L1c0RC9VN1pPL0xvT3NNMENaTmhxNkRsQ1MwZXd6Y1YxT2REeC81dURxN0d2OHFETGc0N1Yvd0p0MjFPMG5iK3gxd0xxSVVYVnlUeWc3QUs2ZHNRR1Y3cUdOWjB2SGVtOVRQcXNXYy9DM1E5UUZhTFFzeFpWQ1BnNHdWcGZIUGZWZGtFdmxVRm9BMTkxMWlHSTQ1K0JyVmJHd1ZZSnRQVzFzRnRkK0Y2MEJTRkE3ZFpDMW5hWDBIVWQ3aGZTYVJzdGh4ZUlVZlg2K2NXZjI3UEdmeG9kUDhKV3U3MlkxYnR6aVd2dE9XTkxmZnc2NC8vRmRIdy9acjhUaTkveG11KzA3Y2V2aVlYMEhmZGpmcjhWKzYzdDlQRy9NUDZ5TVNyeFZ6TmxYL2JXMU9wb1JiOVVMYmwxMTE3YnlYSGlDWVpmWnAzcE81N3JvTHZ6MTg2MUtuTVQxNFIxNWdiWG1jN3VwYS96M2M3T2RhSnZhOFc5d2JYdGZGQjFuU3F1dWdrTG1nTmRRVUNMcFRRdFZXN2dMRyt1dDFxd2FMQnVSc1BhcVlqZFY1cGZoU1hVR2FGNzBaSUhIUUJsOGJ3YUFyUlZXOHRMQkRRdE5NTWpvOVpTRzFwc1o3bHhkYU5tNzROUnNPaWFzZWFYdlRXM3hUa3pMVjZ2elFYN0FTbG5zMmZrQzZ0RXo2ck14dStSQjBkVU5FZGFldE5IbW55NmF5UkltMGNUemF0QitsVFppQmI3a3VNc2VNK3BTRk94bEZzUkFUUjFRTjJQengzS2RZNjdWY0V6bThhcHpPWnNLUTRpS2RlTzBwc2JpVzc0eDMrNGdGVmVocVRSNTRDUFlEalc4YmlaOEpaMHlZZ0lvQ2tDS1dkbzU0aU1JYjQxb2hicGEwQjZVWXFIaUFDYU9xQnlYbDVhMC9pYW5Cd1EvaTFBbGVCN0VRRTBkVUI5bXpHOUkrTWVLOUozaXZQeFNMVlhSQUJOR1VnNTN2UkJaVVBOckxEdjlLQ3NjQzBpZ0tZV3FFT1ZuWXZIOXAxU3pucFFaUTRlRVFFMGhVQmxueWtqa2ZLOGY4b1pBZzREVkJsb0xDS0FwZ2lrakxwNlNDVkNCcmthbS9vZTZVZUFLbE5RaWdpZ0tRSXFBN0RaZnpyRXEyaEZqOUNxQWxRSndoY1JRRk1FMUJMdm41WjRGY2Nqc3NYM3BMVDRpZ2lncVFNcUc1TFlMVFBRcXk1NVVFOExxQ0lDYU9xQVN0K1U4K3dNOEtwNlgvVTlKYUNLQ0tDcEErcG83NThXdFZsVWZkaUJPbDh5VzBRQVRSRlE2WjhPZGFEcWVOV1hyYjdWQUZVYWswUUUwTlFCVlE4SlZYMjVZdmdQeXFqanBuUytEQllYRVVCVEE5UUZJNzFGZFkxSmhxdUhxeCtaQUtwTTBpd2lnS1lJcUlSMEJBQ056K1JBSzNxQ3kvbVowbmtOa2tNaUFtZ3FaUHpXQlFSMGxFb0U1TnNaenhpTXozVTNhd0NyWkpLSUFKb0NvREl5NlY2L2JrbGNMbmxRVHdKVThWTUZVSkhrZzdxUXNiN3NvcUZsalhmUlJIMzE5eWRUT3ZleTVKSUFLcElhc0RMZ1liaUhWZmx1bXZOSXg3ajZseW1iSzkwMEFxaElDb0JhcU5xVzdYTmliSEErcDJNNUFWREZxZ3FnSXNrSGRaRmZ4Vm9OQnFBRFEyZHFQYXpWcG15T2ROVUlvQ0pKZjJCYkZ0RS92Y2Y1cWJyQXE5bVFkTnI3cStkTTJXeDVxQUtvU1BKaFhVdy9sZjJxZzBKYUxtMVFEVXQ3MHBUUGxxbERCVkNSRkFBMTExdFZWSC8xQU8rclVoajRjQkk2d0RwTC9GVUJWQ1Q1c0M3aFVvdkR1SDZtY3NzdXFsQ3cvaWttd0NycnBBcWdJa2wvdUp1WERGUnVPWG5DV2hBNjAyQmhOWW9ydnRXWmlXOUtaZ21nSXNtRmRTbGg5ZU5VN2NLMjhXb3cxNkxrZEtKbkZFTU1KODZVeUNVQlZDUzVzQzRyc3JBYU93U3VNTFNJTGdNZ3p1SDRETTZkTlJVenJraHVDYUFpeVN3QW01YWg2cXZaQ2x5c3dwRkxiWTFNTlRobUVQOTVVL0dHOUxVS29DTEpnM1U1NDRFQnF5N3gxalUzQWF4RDlxSUg5anlPYWszbDYxSWRGa0JGa2xZNHFsYjBkVmJWZHQyRSsxcUphOHdCcXhramZJSEpWTDRtRTNnTG9DTEpnZlVkcnNaTzMzV0FiUlZPaEJ3bS9GY1VwS0FlMk5aNlM0dXR2bXdtdlNLWko0Q0s5SGpCMmZndWdlM25yU3ZCTFFHZ3JwbXA3YXFvQTlWYTJqb2dYR2Ntdjl3b3VTZUFpdlE0c08vQmxBWjlBV2gvSFBiMzhCWjBxQlpUb2haV1oyWHJzVjhQZllPWk1sMkcwQW1nSWoxYXVEYXNqSVJnN1FjUTZkUG1ocXJGWVgvMkNtR0ZEV1pJNHFWQTZVc0VOenAxYWt3QUZSSHBxUUszL29Nc2ZIS2NLMU5mR3pSaFZKODRySUcvTG5EZ21zQUZValJrdUxWdkdqS01qWUpxZ0w2eGJ0cmtxQUFxSXRMZGhYRGRhbktaajcwK2dRdEp4RmIzSWJpQkJ6ZkRYd3RBUGNCVzN4SzRlWWFiQXFPNWJmUkFOMnUzNmx3ejlNMm5YNnE0SzYzdytCWGJBd0ZVSkdVbHNuYXRCbkE1QUM0L3d3S3M4Z0VvdDNtQnF5cEhFaGEzUGJpSlNqVDFnWnZiQ2RCcXprVWNoWTdIVVczWGVOVlJmNzVGRzgxdUl1T09OZThZWmZVYjMydnRjTytXUTYrKzJBNmNoOS9meHAvTTFDWitsZjNNME81ckVmd21WUkZ0VCtsTWZHVGFZNlBwQm1UaW9peXY1M0dXTWpwYjIvTUNxTWhkS29Wck5tUTZVRlV1QU1peFd3ZHVGZ3AzTm81em9NOEtQRnR4Yk9NdzZ3N1ZhdjFMa0p2UTkwSjYzY2tMb1FPZzdWNFV2NlR2N0Q0QWxQc3hBVlNrMTh2UVZWVzBTckJJT3N0YnM0aTNaaEZ2aGVQV2pEWHB3QjNyd0ZvNW83QzErakJFc0pUV0lvWjF4bG5oZG9DMmF0ZngxSUxmdEZ0M2JQVnhxMjJ0dWJmYVVhKy9Da0NiZDg3NFkvVC9BZ3dBMk1pN0hkQWUraWtBQUFBQVNVVk9SSzVDWUlJPSkgdG9wIHJpZ2h0IG5vLXJlcGVhdCAjMWIzMTQ5O1xuICAgIC8qIGJhY2tncm91bmQtYXR0YWNoZW1lbnQgbG9jYWwgaXMgbm90IHN1cHBvcnRlZCBvbiBJRThcbiAgICAgKiB3aGVuIHRoaXMgaXMgcGFydCBvZiBiYWNrZ3JvdW5kIHRoZSBjb21wbGV0ZSBiYWNrZ3JvdW5kIGlzIGlnbm9yZWQgKi9cbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGxvY2FsO1xufVxuLm14LWRlbW91c2Vyc3dpdGNoZXIgdWwge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luLXRvcDogMjVweDtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM0OTYwNzY7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlciBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgY29sb3I6ICMzODdlYTI7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM0OTYwNzY7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlciBoMiB7XG4gICAgbWFyZ2luOiAyMHB4IDAgNXB4O1xuICAgIGNvbG9yOiAjNWJjNGZlO1xuICAgIGZvbnQtc2l6ZTogMjhweDtcbn1cbi5teC1kZW1vdXNlcnN3aXRjaGVyIGgzIHtcbiAgICBtYXJnaW46IDAgMCAycHg7XG4gICAgY29sb3I6ICM1YmM0ZmU7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuLm14LWRlbW91c2Vyc3dpdGNoZXIgLmFjdGl2ZSBoMyB7XG4gICAgY29sb3I6ICMxMWVmZGI7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlciBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLm14LWRlbW91c2Vyc3dpdGNoZXItdG9nZ2xlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAyNSU7XG4gICAgbGVmdDogLTM1cHg7XG4gICAgd2lkdGg6IDM1cHg7XG4gICAgaGVpZ2h0OiAzOHB4O1xuICAgIG1hcmdpbi10b3A6IC00MHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xuICAgIGJveC1zaGFkb3c6IC0xcHggMCA1cHggcmdiYSgyOCw1OSw4NiwuMik7XG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQklBQUFBU0NBWUFBQUJXem81WEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeVJwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVNeTFqTURFeElEWTJMakUwTlRZMk1Td2dNakF4TWk4d01pOHdOaTB4TkRvMU5qb3lOeUFnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5UTmlBb1RXRmphVzUwYjNOb0tTSWdlRzF3VFUwNlNXNXpkR0Z1WTJWSlJEMGllRzF3TG1scFpEbzNORVJETWpGR1JEUTJORU14TVVVMFFUUTRNVUk1TlROR01VUTNRekU1TnlJZ2VHMXdUVTA2Ukc5amRXMWxiblJKUkQwaWVHMXdMbVJwWkRvM05FUkRNakZHUlRRMk5FTXhNVVUwUVRRNE1VSTVOVE5HTVVRM1F6RTVOeUkrSUR4NGJYQk5UVHBFWlhKcGRtVmtSbkp2YlNCemRGSmxaanBwYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2pjMFJFTXlNVVpDTkRZMFF6RXhSVFJCTkRneFFqazFNMFl4UkRkRE1UazNJaUJ6ZEZKbFpqcGtiMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPamMwUkVNeU1VWkRORFkwUXpFeFJUUkJORGd4UWprMU0wWXhSRGRETVRrM0lpOCtJRHd2Y21SbU9rUmxjMk55YVhCMGFXOXVQaUE4TDNKa1pqcFNSRVkrSUR3dmVEcDRiWEJ0WlhSaFBpQThQM2h3WVdOclpYUWdaVzVrUFNKeUlqOCsxWm92TkFBQUFXZEpSRUZVZU5xTTFNMHJSRkVZeC9FN1k1cUlRcE9VYklpeW1RV3lzQmd2SlZKSzJWZ3J5WlF0S1NVTFplbFBzQjBMWmFOWmpKVU5LMUZza0pxVXZDUzNOQXNaYzN6UDlOemlPT2ZlZWVwVGM4L2M4K3ZjOHhaVFNubU9ha0VHS2R6Z0RCWFh5NTRPTXNTd2pwTDZXOWNZc3J4ZlpXdmNVdTd5MFZkTFVDYytWWGdkMm9MaXhwZk9JT21GMTdUdEhUT296WXV1cEN4QWFOQjlEVUVmZURVYkU4YnpFWHhaZXJQMDBsOGhoM0xVaUhUSU1yNk45ajJrc1lvaWh2LzFkZXlMU1Z6S0ttMWpFVytXZlpWMkxmOGdza2pJY3djV3BPTSsrcEhDRlBMb3NnV3RvQ3lkN2pDUE9qemhHSEhMeURQWTFhY2hhSmhEeFJqNnJCd0pYVXVvTjBJRzhJSXY3T2lHQmp4YWR2QUlUdVQzcmV4NmMwU2JLQVNmbG5VY0JUM0pUVGhBanlXa0dVVnNCRUVGUjVDZXJ6WHBOSWFjckZJckpuQ0JCM211QnZraEIxVFAyN2hNL0x2eDN6bDZneEhxdTZjNzRraVU4SXhHaktKZExyclQzeGZkandBREFKYU14UDJidkQyQkFBQUFBRWxGVGtTdVFtQ0MpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0ICMxYjMxNDk7XG59XG4iLCIvKiBtYXN0ZXIgZGV0YWlscyBzY3JlZW4gZm9yIG1vYmlsZSAqL1xuLm14LW1hc3Rlci1kZXRhaWwtc2NyZWVuIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG59XG5cbi5teC1tYXN0ZXItZGV0YWlsLXNjcmVlbiAubXgtbWFzdGVyLWRldGFpbC1kZXRhaWxzIHtcbiAgICBwYWRkaW5nOiAxNXB4O1xufVxuXG4ubXgtbWFzdGVyLWRldGFpbC1zY3JlZW4taGVhZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNztcbn1cblxuLm14LW1hc3Rlci1kZXRhaWwtc2NyZWVuLWhlYWRlci1jYXB0aW9uIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxN3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5teC1tYXN0ZXItZGV0YWlsLXNjcmVlbi1oZWFkZXItY2xvc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDUwcHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjMDA3YWZmO1xufVxuXG5ib2R5W2Rpcj1cInJ0bFwiXSAubXgtbWFzdGVyLWRldGFpbC1zY3JlZW4taGVhZGVyLWNsb3NlIHtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiBhdXRvO1xufVxuXG4ubXgtbWFzdGVyLWRldGFpbC1zY3JlZW4taGVhZGVyLWNsb3NlOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFwyMDM5XCI7XG4gICAgZm9udC1zaXplOiA1MnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xufVxuXG4vKiBjbGFzc2VzIGZvciBjb250ZW50IHBhZ2UgKi9cbi5teC1tYXN0ZXItZGV0YWlsLWNvbnRlbnQtZml4IHtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5teC1tYXN0ZXItZGV0YWlsLWNvbnRlbnQtaGlkZGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwMCUpO1xufVxuXG5ib2R5W2Rpcj1cInJ0bFwiXSAubXgtbWFzdGVyLWRldGFpbC1jb250ZW50LWhpZGRlbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwMCUpO1xufSIsIi5yZXBvcnRpbmdSZXBvcnQge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIC1tb3otYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbiIsIi5yZXBvcnRpbmdSZXBvcnRQYXJhbWV0ZXIgdGgge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuIiwiLnJlcG9ydGluZ0RhdGVSYW5nZSB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbn1cbi5yZXBvcnRpbmdEYXRlUmFuZ2UgdGgge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xufVxuLnJlcG9ydGluZ0RhdGVSYW5nZSB0ZCB7XG4gICAgcGFkZGluZzogNXB4O1xufVxuIiwiLm14LXJlcG9ydG1hdHJpeCB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLm14LXJlcG9ydG1hdHJpeCB0aCwgLm14LXJlcG9ydG1hdHJpeCB0ZCB7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbn1cblxuLm14LXJlcG9ydG1hdHJpeCB0Ym9keSB0cjpmaXJzdC1jaGlsZCB0ZCB7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbn1cblxuLm14LXJlcG9ydG1hdHJpeCB0Ym9keSB0cjpudGgtY2hpbGQoMm4rMSkgdGQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG59XG5cbi5teC1yZXBvcnRtYXRyaXggdGJvZHkgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDE2cHg7XG4gICAgbWF4LWhlaWdodDogMTZweDtcbn1cbiIsIi8qIFdBUk5JTkc6IElFOSBsaW1pdHMgbmVzdGVkIGltcG9ydHMgdG8gdGhyZWUgbGV2ZWxzIGRlZXA6IGh0dHA6Ly9qb3JnZWFsYmFsYWRlam8uY29tLzIwMTEvMDUvMjgvaW50ZXJuZXQtZXhwbG9yZXItbGltaXRzLW5lc3RlZC1pbXBvcnQtY3NzLXN0YXRlbWVudHMgKi9cblxuLyogZGlqaXQgYmFzZSAqL1xuXG4vKiBtZW5kaXggYmFzZSAqL1xuXG4vKiB3aWRnZXRzICovXG5cbi8qIHJlcG9ydGluZyAqL1xuIl0sInNvdXJjZVJvb3QiOiIifQ==*/ diff --git a/themesource/atlas_core/web/core/_legacy/bootstrap/_bootstrap-rtl.scss b/themesource/atlas_core/web/core/_legacy/bootstrap/_bootstrap-rtl.scss new file mode 100644 index 0000000..3bf6ffa --- /dev/null +++ b/themesource/atlas_core/web/core/_legacy/bootstrap/_bootstrap-rtl.scss @@ -0,0 +1,1741 @@ +/******************************************************************************* + * bootstrap-rtl (version 3.3.4) + * Author: Morteza Ansarinia (http://github.com/morteza) + * Created on: August 13,2015 + * Project: bootstrap-rtl + * Copyright: Unlicensed Public Domain + *******************************************************************************/ +@mixin bootstrap-rtl() { + [dir="rtl"] { + .flip.text-left { + text-align: right; + } + + .flip.text-right { + text-align: left; + } + + .list-unstyled { + padding-right: 0; + padding-left: initial; + } + + .list-inline { + padding-right: 0; + padding-left: initial; + margin-right: -5px; + margin-left: 0; + } + + dd { + margin-right: 0; + margin-left: initial; + } + + @media (min-width: 768px) { + .dl-horizontal dt { + float: right; + clear: right; + text-align: left; + } + .dl-horizontal dd { + margin-right: 180px; + margin-left: 0; + } + } + + blockquote { + border-right: 5px solid #eeeeee; + border-left: 0; + } + + .blockquote-reverse, + blockquote.pull-left { + padding-left: 15px; + padding-right: 0; + border-left: 5px solid #eeeeee; + border-right: 0; + text-align: left; + } + + .col-xs-1, + .col-sm-1, + .col-md-1, + .col-lg-1, + .col-xs-2, + .col-sm-2, + .col-md-2, + .col-lg-2, + .col-xs-3, + .col-sm-3, + .col-md-3, + .col-lg-3, + .col-xs-4, + .col-sm-4, + .col-md-4, + .col-lg-4, + .col-xs-5, + .col-sm-5, + .col-md-5, + .col-lg-5, + .col-xs-6, + .col-sm-6, + .col-md-6, + .col-lg-6, + .col-xs-7, + .col-sm-7, + .col-md-7, + .col-lg-7, + .col-xs-8, + .col-sm-8, + .col-md-8, + .col-lg-8, + .col-xs-9, + .col-sm-9, + .col-md-9, + .col-lg-9, + .col-xs-10, + .col-sm-10, + .col-md-10, + .col-lg-10, + .col-xs-11, + .col-sm-11, + .col-md-11, + .col-lg-11, + .col-xs-12, + .col-sm-12, + .col-md-12, + .col-lg-12 { + position: relative; + min-height: 1px; + padding-left: 15px; + padding-right: 15px; + } + + .col-xs-1, + .col-xs-2, + .col-xs-3, + .col-xs-4, + .col-xs-5, + .col-xs-6, + .col-xs-7, + .col-xs-8, + .col-xs-9, + .col-xs-10, + .col-xs-11, + .col-xs-12 { + float: right; + } + + .col-xs-12 { + width: 100%; + } + + .col-xs-11 { + width: 91.66666667%; + } + + .col-xs-10 { + width: 83.33333333%; + } + + .col-xs-9 { + width: 75%; + } + + .col-xs-8 { + width: 66.66666667%; + } + + .col-xs-7 { + width: 58.33333333%; + } + + .col-xs-6 { + width: 50%; + } + + .col-xs-5 { + width: 41.66666667%; + } + + .col-xs-4 { + width: 33.33333333%; + } + + .col-xs-3 { + width: 25%; + } + + .col-xs-2 { + width: 16.66666667%; + } + + .col-xs-1 { + width: 8.33333333%; + } + + .col-xs-pull-12 { + left: 100%; + right: auto; + } + + .col-xs-pull-11 { + left: 91.66666667%; + right: auto; + } + + .col-xs-pull-10 { + left: 83.33333333%; + right: auto; + } + + .col-xs-pull-9 { + left: 75%; + right: auto; + } + + .col-xs-pull-8 { + left: 66.66666667%; + right: auto; + } + + .col-xs-pull-7 { + left: 58.33333333%; + right: auto; + } + + .col-xs-pull-6 { + left: 50%; + right: auto; + } + + .col-xs-pull-5 { + left: 41.66666667%; + right: auto; + } + + .col-xs-pull-4 { + left: 33.33333333%; + right: auto; + } + + .col-xs-pull-3 { + left: 25%; + right: auto; + } + + .col-xs-pull-2 { + left: 16.66666667%; + right: auto; + } + + .col-xs-pull-1 { + left: 8.33333333%; + right: auto; + } + + .col-xs-pull-0 { + left: auto; + right: auto; + } + + .col-xs-push-12 { + right: 100%; + left: 0; + } + + .col-xs-push-11 { + right: 91.66666667%; + left: 0; + } + + .col-xs-push-10 { + right: 83.33333333%; + left: 0; + } + + .col-xs-push-9 { + right: 75%; + left: 0; + } + + .col-xs-push-8 { + right: 66.66666667%; + left: 0; + } + + .col-xs-push-7 { + right: 58.33333333%; + left: 0; + } + + .col-xs-push-6 { + right: 50%; + left: 0; + } + + .col-xs-push-5 { + right: 41.66666667%; + left: 0; + } + + .col-xs-push-4 { + right: 33.33333333%; + left: 0; + } + + .col-xs-push-3 { + right: 25%; + left: 0; + } + + .col-xs-push-2 { + right: 16.66666667%; + left: 0; + } + + .col-xs-push-1 { + right: 8.33333333%; + left: 0; + } + + .col-xs-push-0 { + right: auto; + left: 0; + } + + .col-xs-offset-12 { + margin-right: 100%; + margin-left: 0; + } + + .col-xs-offset-11 { + margin-right: 91.66666667%; + margin-left: 0; + } + + .col-xs-offset-10 { + margin-right: 83.33333333%; + margin-left: 0; + } + + .col-xs-offset-9 { + margin-right: 75%; + margin-left: 0; + } + + .col-xs-offset-8 { + margin-right: 66.66666667%; + margin-left: 0; + } + + .col-xs-offset-7 { + margin-right: 58.33333333%; + margin-left: 0; + } + + .col-xs-offset-6 { + margin-right: 50%; + margin-left: 0; + } + + .col-xs-offset-5 { + margin-right: 41.66666667%; + margin-left: 0; + } + + .col-xs-offset-4 { + margin-right: 33.33333333%; + margin-left: 0; + } + + .col-xs-offset-3 { + margin-right: 25%; + margin-left: 0; + } + + .col-xs-offset-2 { + margin-right: 16.66666667%; + margin-left: 0; + } + + .col-xs-offset-1 { + margin-right: 8.33333333%; + margin-left: 0; + } + + .col-xs-offset-0 { + margin-right: 0%; + margin-left: 0; + } + + @media (min-width: 768px) { + .col-sm-1, + .col-sm-2, + .col-sm-3, + .col-sm-4, + .col-sm-5, + .col-sm-6, + .col-sm-7, + .col-sm-8, + .col-sm-9, + .col-sm-10, + .col-sm-11, + .col-sm-12 { + float: right; + } + .col-sm-12 { + width: 100%; + } + .col-sm-11 { + width: 91.66666667%; + } + .col-sm-10 { + width: 83.33333333%; + } + .col-sm-9 { + width: 75%; + } + .col-sm-8 { + width: 66.66666667%; + } + .col-sm-7 { + width: 58.33333333%; + } + .col-sm-6 { + width: 50%; + } + .col-sm-5 { + width: 41.66666667%; + } + .col-sm-4 { + width: 33.33333333%; + } + .col-sm-3 { + width: 25%; + } + .col-sm-2 { + width: 16.66666667%; + } + .col-sm-1 { + width: 8.33333333%; + } + .col-sm-pull-12 { + left: 100%; + right: auto; + } + .col-sm-pull-11 { + left: 91.66666667%; + right: auto; + } + .col-sm-pull-10 { + left: 83.33333333%; + right: auto; + } + .col-sm-pull-9 { + left: 75%; + right: auto; + } + .col-sm-pull-8 { + left: 66.66666667%; + right: auto; + } + .col-sm-pull-7 { + left: 58.33333333%; + right: auto; + } + .col-sm-pull-6 { + left: 50%; + right: auto; + } + .col-sm-pull-5 { + left: 41.66666667%; + right: auto; + } + .col-sm-pull-4 { + left: 33.33333333%; + right: auto; + } + .col-sm-pull-3 { + left: 25%; + right: auto; + } + .col-sm-pull-2 { + left: 16.66666667%; + right: auto; + } + .col-sm-pull-1 { + left: 8.33333333%; + right: auto; + } + .col-sm-pull-0 { + left: auto; + right: auto; + } + .col-sm-push-12 { + right: 100%; + left: 0; + } + .col-sm-push-11 { + right: 91.66666667%; + left: 0; + } + .col-sm-push-10 { + right: 83.33333333%; + left: 0; + } + .col-sm-push-9 { + right: 75%; + left: 0; + } + .col-sm-push-8 { + right: 66.66666667%; + left: 0; + } + .col-sm-push-7 { + right: 58.33333333%; + left: 0; + } + .col-sm-push-6 { + right: 50%; + left: 0; + } + .col-sm-push-5 { + right: 41.66666667%; + left: 0; + } + .col-sm-push-4 { + right: 33.33333333%; + left: 0; + } + .col-sm-push-3 { + right: 25%; + left: 0; + } + .col-sm-push-2 { + right: 16.66666667%; + left: 0; + } + .col-sm-push-1 { + right: 8.33333333%; + left: 0; + } + .col-sm-push-0 { + right: auto; + left: 0; + } + .col-sm-offset-12 { + margin-right: 100%; + margin-left: 0; + } + .col-sm-offset-11 { + margin-right: 91.66666667%; + margin-left: 0; + } + .col-sm-offset-10 { + margin-right: 83.33333333%; + margin-left: 0; + } + .col-sm-offset-9 { + margin-right: 75%; + margin-left: 0; + } + .col-sm-offset-8 { + margin-right: 66.66666667%; + margin-left: 0; + } + .col-sm-offset-7 { + margin-right: 58.33333333%; + margin-left: 0; + } + .col-sm-offset-6 { + margin-right: 50%; + margin-left: 0; + } + .col-sm-offset-5 { + margin-right: 41.66666667%; + margin-left: 0; + } + .col-sm-offset-4 { + margin-right: 33.33333333%; + margin-left: 0; + } + .col-sm-offset-3 { + margin-right: 25%; + margin-left: 0; + } + .col-sm-offset-2 { + margin-right: 16.66666667%; + margin-left: 0; + } + .col-sm-offset-1 { + margin-right: 8.33333333%; + margin-left: 0; + } + .col-sm-offset-0 { + margin-right: 0%; + margin-left: 0; + } + } + @media (min-width: 992px) { + .col-md-1, + .col-md-2, + .col-md-3, + .col-md-4, + .col-md-5, + .col-md-6, + .col-md-7, + .col-md-8, + .col-md-9, + .col-md-10, + .col-md-11, + .col-md-12 { + float: right; + } + .col-md-12 { + width: 100%; + } + .col-md-11 { + width: 91.66666667%; + } + .col-md-10 { + width: 83.33333333%; + } + .col-md-9 { + width: 75%; + } + .col-md-8 { + width: 66.66666667%; + } + .col-md-7 { + width: 58.33333333%; + } + .col-md-6 { + width: 50%; + } + .col-md-5 { + width: 41.66666667%; + } + .col-md-4 { + width: 33.33333333%; + } + .col-md-3 { + width: 25%; + } + .col-md-2 { + width: 16.66666667%; + } + .col-md-1 { + width: 8.33333333%; + } + .col-md-pull-12 { + left: 100%; + right: auto; + } + .col-md-pull-11 { + left: 91.66666667%; + right: auto; + } + .col-md-pull-10 { + left: 83.33333333%; + right: auto; + } + .col-md-pull-9 { + left: 75%; + right: auto; + } + .col-md-pull-8 { + left: 66.66666667%; + right: auto; + } + .col-md-pull-7 { + left: 58.33333333%; + right: auto; + } + .col-md-pull-6 { + left: 50%; + right: auto; + } + .col-md-pull-5 { + left: 41.66666667%; + right: auto; + } + .col-md-pull-4 { + left: 33.33333333%; + right: auto; + } + .col-md-pull-3 { + left: 25%; + right: auto; + } + .col-md-pull-2 { + left: 16.66666667%; + right: auto; + } + .col-md-pull-1 { + left: 8.33333333%; + right: auto; + } + .col-md-pull-0 { + left: auto; + right: auto; + } + .col-md-push-12 { + right: 100%; + left: 0; + } + .col-md-push-11 { + right: 91.66666667%; + left: 0; + } + .col-md-push-10 { + right: 83.33333333%; + left: 0; + } + .col-md-push-9 { + right: 75%; + left: 0; + } + .col-md-push-8 { + right: 66.66666667%; + left: 0; + } + .col-md-push-7 { + right: 58.33333333%; + left: 0; + } + .col-md-push-6 { + right: 50%; + left: 0; + } + .col-md-push-5 { + right: 41.66666667%; + left: 0; + } + .col-md-push-4 { + right: 33.33333333%; + left: 0; + } + .col-md-push-3 { + right: 25%; + left: 0; + } + .col-md-push-2 { + right: 16.66666667%; + left: 0; + } + .col-md-push-1 { + right: 8.33333333%; + left: 0; + } + .col-md-push-0 { + right: auto; + left: 0; + } + .col-md-offset-12 { + margin-right: 100%; + margin-left: 0; + } + .col-md-offset-11 { + margin-right: 91.66666667%; + margin-left: 0; + } + .col-md-offset-10 { + margin-right: 83.33333333%; + margin-left: 0; + } + .col-md-offset-9 { + margin-right: 75%; + margin-left: 0; + } + .col-md-offset-8 { + margin-right: 66.66666667%; + margin-left: 0; + } + .col-md-offset-7 { + margin-right: 58.33333333%; + margin-left: 0; + } + .col-md-offset-6 { + margin-right: 50%; + margin-left: 0; + } + .col-md-offset-5 { + margin-right: 41.66666667%; + margin-left: 0; + } + .col-md-offset-4 { + margin-right: 33.33333333%; + margin-left: 0; + } + .col-md-offset-3 { + margin-right: 25%; + margin-left: 0; + } + .col-md-offset-2 { + margin-right: 16.66666667%; + margin-left: 0; + } + .col-md-offset-1 { + margin-right: 8.33333333%; + margin-left: 0; + } + .col-md-offset-0 { + margin-right: 0%; + margin-left: 0; + } + } + @media (min-width: 1200px) { + .col-lg-1, + .col-lg-2, + .col-lg-3, + .col-lg-4, + .col-lg-5, + .col-lg-6, + .col-lg-7, + .col-lg-8, + .col-lg-9, + .col-lg-10, + .col-lg-11, + .col-lg-12 { + float: right; + } + .col-lg-12 { + width: 100%; + } + .col-lg-11 { + width: 91.66666667%; + } + .col-lg-10 { + width: 83.33333333%; + } + .col-lg-9 { + width: 75%; + } + .col-lg-8 { + width: 66.66666667%; + } + .col-lg-7 { + width: 58.33333333%; + } + .col-lg-6 { + width: 50%; + } + .col-lg-5 { + width: 41.66666667%; + } + .col-lg-4 { + width: 33.33333333%; + } + .col-lg-3 { + width: 25%; + } + .col-lg-2 { + width: 16.66666667%; + } + .col-lg-1 { + width: 8.33333333%; + } + .col-lg-pull-12 { + left: 100%; + right: auto; + } + .col-lg-pull-11 { + left: 91.66666667%; + right: auto; + } + .col-lg-pull-10 { + left: 83.33333333%; + right: auto; + } + .col-lg-pull-9 { + left: 75%; + right: auto; + } + .col-lg-pull-8 { + left: 66.66666667%; + right: auto; + } + .col-lg-pull-7 { + left: 58.33333333%; + right: auto; + } + .col-lg-pull-6 { + left: 50%; + right: auto; + } + .col-lg-pull-5 { + left: 41.66666667%; + right: auto; + } + .col-lg-pull-4 { + left: 33.33333333%; + right: auto; + } + .col-lg-pull-3 { + left: 25%; + right: auto; + } + .col-lg-pull-2 { + left: 16.66666667%; + right: auto; + } + .col-lg-pull-1 { + left: 8.33333333%; + right: auto; + } + .col-lg-pull-0 { + left: auto; + right: auto; + } + .col-lg-push-12 { + right: 100%; + left: 0; + } + .col-lg-push-11 { + right: 91.66666667%; + left: 0; + } + .col-lg-push-10 { + right: 83.33333333%; + left: 0; + } + .col-lg-push-9 { + right: 75%; + left: 0; + } + .col-lg-push-8 { + right: 66.66666667%; + left: 0; + } + .col-lg-push-7 { + right: 58.33333333%; + left: 0; + } + .col-lg-push-6 { + right: 50%; + left: 0; + } + .col-lg-push-5 { + right: 41.66666667%; + left: 0; + } + .col-lg-push-4 { + right: 33.33333333%; + left: 0; + } + .col-lg-push-3 { + right: 25%; + left: 0; + } + .col-lg-push-2 { + right: 16.66666667%; + left: 0; + } + .col-lg-push-1 { + right: 8.33333333%; + left: 0; + } + .col-lg-push-0 { + right: auto; + left: 0; + } + .col-lg-offset-12 { + margin-right: 100%; + margin-left: 0; + } + .col-lg-offset-11 { + margin-right: 91.66666667%; + margin-left: 0; + } + .col-lg-offset-10 { + margin-right: 83.33333333%; + margin-left: 0; + } + .col-lg-offset-9 { + margin-right: 75%; + margin-left: 0; + } + .col-lg-offset-8 { + margin-right: 66.66666667%; + margin-left: 0; + } + .col-lg-offset-7 { + margin-right: 58.33333333%; + margin-left: 0; + } + .col-lg-offset-6 { + margin-right: 50%; + margin-left: 0; + } + .col-lg-offset-5 { + margin-right: 41.66666667%; + margin-left: 0; + } + .col-lg-offset-4 { + margin-right: 33.33333333%; + margin-left: 0; + } + .col-lg-offset-3 { + margin-right: 25%; + margin-left: 0; + } + .col-lg-offset-2 { + margin-right: 16.66666667%; + margin-left: 0; + } + .col-lg-offset-1 { + margin-right: 8.33333333%; + margin-left: 0; + } + .col-lg-offset-0 { + margin-right: 0%; + margin-left: 0; + } + } + + caption { + text-align: right; + } + + th:not(.mx-left-aligned) { + text-align: right; + } + + @media screen and (max-width: 767px) { + .table-responsive > .table-bordered { + border: 0; + } + .table-responsive > .table-bordered > thead > tr > th:first-child, + .table-responsive > .table-bordered > tbody > tr > th:first-child, + .table-responsive > .table-bordered > tfoot > tr > th:first-child, + .table-responsive > .table-bordered > thead > tr > td:first-child, + .table-responsive > .table-bordered > tbody > tr > td:first-child, + .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-right: 0; + border-left: initial; + } + .table-responsive > .table-bordered > thead > tr > th:last-child, + .table-responsive > .table-bordered > tbody > tr > th:last-child, + .table-responsive > .table-bordered > tfoot > tr > th:last-child, + .table-responsive > .table-bordered > thead > tr > td:last-child, + .table-responsive > .table-bordered > tbody > tr > td:last-child, + .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-left: 0; + border-right: initial; + } + } + + .radio label, + .checkbox label { + padding-right: 20px; + padding-left: initial; + } + + .radio input[type="radio"], + .radio-inline input[type="radio"], + .checkbox input[type="checkbox"], + .checkbox-inline input[type="checkbox"] { + margin-right: -20px; + margin-left: auto; + } + + .radio-inline, + .checkbox-inline { + padding-right: 20px; + padding-left: 0; + } + + .radio-inline + .radio-inline, + .checkbox-inline + .checkbox-inline { + margin-right: 10px; + margin-left: 0; + } + + .has-feedback .form-control { + padding-left: 42.5px; + padding-right: 12px; + } + + .form-control-feedback { + left: 0; + right: auto; + } + + @media (min-width: 768px) { + .form-inline label { + padding-right: 0; + padding-left: initial; + } + .form-inline .radio input[type="radio"], + .form-inline .checkbox input[type="checkbox"] { + margin-right: 0; + margin-left: auto; + } + } + @media (min-width: 768px) { + .form-horizontal .control-label { + text-align: left; + } + } + + .form-horizontal .has-feedback .form-control-feedback { + left: 15px; + right: auto; + } + + .caret { + margin-right: 2px; + margin-left: 0; + } + + .dropdown-menu { + right: 0; + left: auto; + float: left; + text-align: right; + } + + .dropdown-menu.pull-right { + left: 0; + right: auto; + float: right; + } + + .dropdown-menu-right { + left: auto; + right: 0; + } + + .dropdown-menu-left { + left: 0; + right: auto; + } + + @media (min-width: 768px) { + .navbar-right .dropdown-menu { + left: auto; + right: 0; + } + .navbar-right .dropdown-menu-left { + left: 0; + right: auto; + } + } + + .btn-group > .btn, + .btn-group-vertical > .btn { + float: right; + } + + .btn-group .btn + .btn, + .btn-group .btn + .btn-group, + .btn-group .btn-group + .btn, + .btn-group .btn-group + .btn-group { + margin-right: -1px; + margin-left: 0px; + } + + .btn-toolbar { + margin-right: -5px; + margin-left: 0px; + } + + .btn-toolbar .btn-group, + .btn-toolbar .input-group { + float: right; + } + + .btn-toolbar > .btn, + .btn-toolbar > .btn-group, + .btn-toolbar > .input-group { + margin-right: 5px; + margin-left: 0px; + } + + .btn-group > .btn:first-child { + margin-right: 0; + } + + .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 0; + border-top-left-radius: 0; + } + + .btn-group > .btn:last-child:not(:first-child), + .btn-group > .dropdown-toggle:not(:first-child) { + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; + border-bottom-right-radius: 0; + border-top-right-radius: 0; + } + + .btn-group > .btn-group { + float: right; + } + + .btn-group.btn-group-justified > .btn, + .btn-group.btn-group-justified > .btn-group { + float: none; + } + + .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-top-right-radius: 4px; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 0; + border-top-left-radius: 0; + } + + .btn-group > .btn-group:last-child > .btn:first-child { + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; + border-bottom-right-radius: 0; + border-top-right-radius: 0; + } + + .btn .caret { + margin-right: 0; + } + + .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-right: 0; + } + + .input-group .form-control { + float: right; + } + + .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: 4px; + border-top-right-radius: 4px; + border-bottom-left-radius: 0; + border-top-left-radius: 0; + } + + .input-group-addon:first-child { + border-left: 0px; + border-right: 1px solid; + } + + .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: 4px; + border-top-left-radius: 4px; + border-bottom-right-radius: 0; + border-top-right-radius: 0; + } + + .input-group-addon:last-child { + border-left-width: 1px; + border-left-style: solid; + border-right: 0px; + } + + .input-group-btn > .btn + .btn { + margin-right: -1px; + margin-left: auto; + } + + .input-group-btn:first-child > .btn, + .input-group-btn:first-child > .btn-group { + margin-left: -1px; + margin-right: auto; + } + + .input-group-btn:last-child > .btn, + .input-group-btn:last-child > .btn-group { + margin-right: -1px; + margin-left: auto; + } + + .nav { + padding-right: 0; + padding-left: initial; + } + + .nav-tabs > li { + float: right; + } + + .nav-tabs > li > a { + margin-left: auto; + margin-right: -2px; + border-radius: 4px 4px 0 0; + } + + .nav-pills > li { + float: right; + } + + .nav-pills > li > a { + border-radius: 4px; + } + + .nav-pills > li + li { + margin-right: 2px; + margin-left: auto; + } + + .nav-stacked > li { + float: none; + } + + .nav-stacked > li + li { + margin-right: 0; + margin-left: auto; + } + + .nav-justified > .dropdown .dropdown-menu { + right: auto; + } + + .nav-tabs-justified > li > a { + margin-left: 0; + margin-right: auto; + } + + @media (min-width: 768px) { + .nav-tabs-justified > li > a { + border-radius: 4px 4px 0 0; + } + } + @media (min-width: 768px) { + .navbar-header { + float: right; + } + } + + .navbar-collapse { + padding-right: 15px; + padding-left: 15px; + } + + .navbar-brand { + float: right; + } + + @media (min-width: 768px) { + .navbar > .container .navbar-brand, + .navbar > .container-fluid .navbar-brand { + margin-right: -15px; + margin-left: auto; + } + } + + .navbar-toggle { + float: left; + margin-left: 15px; + margin-right: auto; + } + + @media (max-width: 767px) { + .navbar-nav .open .dropdown-menu > li > a, + .navbar-nav .open .dropdown-menu .dropdown-header { + padding: 5px 25px 5px 15px; + } + } + @media (min-width: 768px) { + .navbar-nav { + float: right; + } + .navbar-nav > li { + float: right; + } + } + @media (min-width: 768px) { + .navbar-left.flip { + float: right !important; + } + .navbar-right:last-child { + margin-left: -15px; + margin-right: auto; + } + .navbar-right.flip { + float: left !important; + margin-left: -15px; + margin-right: auto; + } + .navbar-right .dropdown-menu { + left: 0; + right: auto; + } + } + @media (min-width: 768px) { + .navbar-text { + float: right; + } + .navbar-text.navbar-right:last-child { + margin-left: 0; + margin-right: auto; + } + } + + .pagination { + padding-right: 0; + } + + .pagination > li > a, + .pagination > li > span { + float: right; + margin-right: -1px; + margin-left: 0px; + } + + .pagination > li:first-child > a, + .pagination > li:first-child > span { + margin-left: 0; + border-bottom-right-radius: 4px; + border-top-right-radius: 4px; + border-bottom-left-radius: 0; + border-top-left-radius: 0; + } + + .pagination > li:last-child > a, + .pagination > li:last-child > span { + margin-right: -1px; + border-bottom-left-radius: 4px; + border-top-left-radius: 4px; + border-bottom-right-radius: 0; + border-top-right-radius: 0; + } + + .pager { + padding-right: 0; + padding-left: initial; + } + + .pager .next > a, + .pager .next > span { + float: left; + } + + .pager .previous > a, + .pager .previous > span { + float: right; + } + + .nav-pills > li > a > .badge { + margin-left: 0px; + margin-right: 3px; + } + + .list-group-item > .badge { + float: left; + } + + .list-group-item > .badge + .badge { + margin-left: 5px; + margin-right: auto; + } + + .alert-dismissable, + .alert-dismissible { + padding-left: 35px; + padding-right: 15px; + } + + .alert-dismissable .close, + .alert-dismissible .close { + right: auto; + left: -21px; + } + + .progress-bar { + float: right; + } + + .media > .pull-left { + margin-right: 10px; + } + + .media > .pull-left.flip { + margin-right: 0; + margin-left: 10px; + } + + .media > .pull-right { + margin-left: 10px; + } + + .media > .pull-right.flip { + margin-left: 0; + margin-right: 10px; + } + + .media-right, + .media > .pull-right { + padding-right: 10px; + padding-left: initial; + } + + .media-left, + .media > .pull-left { + padding-left: 10px; + padding-right: initial; + } + + .media-list { + padding-right: 0; + padding-left: initial; + list-style: none; + } + + .list-group { + padding-right: 0; + padding-left: initial; + } + + .panel > .table:first-child > thead:first-child > tr:first-child td:first-child, + .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, + .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, + .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, + .panel > .table:first-child > thead:first-child > tr:first-child th:first-child, + .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, + .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, + .panel + > .table-responsive:first-child + > .table:first-child + > tbody:first-child + > tr:first-child + th:first-child { + border-top-right-radius: 3px; + border-top-left-radius: 0; + } + + .panel > .table:first-child > thead:first-child > tr:first-child td:last-child, + .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, + .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, + .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, + .panel > .table:first-child > thead:first-child > tr:first-child th:last-child, + .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, + .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, + .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { + border-top-left-radius: 3px; + border-top-right-radius: 0; + } + + .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, + .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, + .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, + .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, + .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, + .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, + .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, + .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { + border-bottom-left-radius: 3px; + border-top-right-radius: 0; + } + + .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, + .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, + .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, + .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, + .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, + .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, + .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, + .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { + border-bottom-right-radius: 3px; + border-top-left-radius: 0; + } + + .panel > .table-bordered > thead > tr > th:first-child, + .panel > .table-responsive > .table-bordered > thead > tr > th:first-child, + .panel > .table-bordered > tbody > tr > th:first-child, + .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, + .panel > .table-bordered > tfoot > tr > th:first-child, + .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, + .panel > .table-bordered > thead > tr > td:first-child, + .panel > .table-responsive > .table-bordered > thead > tr > td:first-child, + .panel > .table-bordered > tbody > tr > td:first-child, + .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, + .panel > .table-bordered > tfoot > tr > td:first-child, + .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-right: 0; + border-left: none; + } + + .panel > .table-bordered > thead > tr > th:last-child, + .panel > .table-responsive > .table-bordered > thead > tr > th:last-child, + .panel > .table-bordered > tbody > tr > th:last-child, + .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, + .panel > .table-bordered > tfoot > tr > th:last-child, + .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, + .panel > .table-bordered > thead > tr > td:last-child, + .panel > .table-responsive > .table-bordered > thead > tr > td:last-child, + .panel > .table-bordered > tbody > tr > td:last-child, + .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, + .panel > .table-bordered > tfoot > tr > td:last-child, + .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: none; + border-left: 0; + } + + .embed-responsive .embed-responsive-item, + .embed-responsive iframe, + .embed-responsive embed, + .embed-responsive object { + right: 0; + left: auto; + } + + .close { + float: left; + } + + .modal-footer { + text-align: left; + } + + .modal-footer.flip { + text-align: right; + } + + .modal-footer .btn + .btn { + margin-left: auto; + margin-right: 5px; + } + + .modal-footer .btn-group .btn + .btn { + margin-right: -1px; + margin-left: auto; + } + + .modal-footer .btn-block + .btn-block { + margin-right: 0; + margin-left: auto; + } + + .popover { + left: auto; + text-align: right; + } + + .popover.top > .arrow { + right: 50%; + left: auto; + margin-right: -11px; + margin-left: auto; + } + + .popover.top > .arrow:after { + margin-right: -10px; + margin-left: auto; + } + + .popover.bottom > .arrow { + right: 50%; + left: auto; + margin-right: -11px; + margin-left: auto; + } + + .popover.bottom > .arrow:after { + margin-right: -10px; + margin-left: auto; + } + + .carousel-control { + right: 0; + bottom: 0; + } + + .carousel-control.left { + right: auto; + left: 0; + background-image: -webkit-linear-gradient( + left, + color-stop(rgba(0, 0, 0, 0.5) 0%), + color-stop(rgba(0, 0, 0, 0.0001) 100%) + ); + background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); + } + + .carousel-control.right { + left: auto; + right: 0; + background-image: -webkit-linear-gradient( + left, + color-stop(rgba(0, 0, 0, 0.0001) 0%), + color-stop(rgba(0, 0, 0, 0.5) 100%) + ); + background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); + } + + .carousel-control .icon-prev, + .carousel-control .glyphicon-chevron-left { + left: 50%; + right: auto; + margin-right: -10px; + } + + .carousel-control .icon-next, + .carousel-control .glyphicon-chevron-right { + right: 50%; + left: auto; + margin-left: -10px; + } + + .carousel-indicators { + right: 50%; + left: 0; + margin-right: -30%; + margin-left: 0; + padding-left: 0; + } + + @media screen and (min-width: 768px) { + .carousel-control .glyphicon-chevron-left, + .carousel-control .icon-prev { + margin-left: 0; + margin-right: -15px; + } + .carousel-control .glyphicon-chevron-right, + .carousel-control .icon-next { + margin-left: 0; + margin-right: -15px; + } + .carousel-caption { + left: 20%; + right: 20%; + padding-bottom: 30px; + } + } + + .pull-right.flip { + float: left !important; + } + + .pull-left.flip { + float: right !important; + } + } +} diff --git a/themesource/atlas_core/web/core/_legacy/bootstrap/_bootstrap.scss b/themesource/atlas_core/web/core/_legacy/bootstrap/_bootstrap.scss new file mode 100644 index 0000000..304deb6 --- /dev/null +++ b/themesource/atlas_core/web/core/_legacy/bootstrap/_bootstrap.scss @@ -0,0 +1,6821 @@ +/*! + * Bootstrap v3.3.4 (http://getbootstrap.com) + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + +@mixin bootstrap() { + /*! normalize.css v3.0.2 | MIT License | git.io/normalize */ + html { + font-family: sans-serif; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; + } + body { + margin: 0; + } + article, + aside, + details, + figcaption, + figure, + footer, + header, + hgroup, + main, + menu, + nav, + section, + summary { + display: block; + } + audio, + canvas, + progress, + video { + display: inline-block; + vertical-align: baseline; + } + audio:not([controls]) { + display: none; + height: 0; + } + [hidden], + template { + display: none; + } + a { + background-color: transparent; + } + a:active, + a:hover { + outline: 0; + } + abbr[title] { + border-bottom: 1px dotted; + } + b, + strong { + font-weight: bold; + } + dfn { + font-style: italic; + } + h1 { + margin: 0.67em 0; + font-size: 2em; + } + mark { + color: #000; + background: #ff0; + } + small { + font-size: 80%; + } + sub, + sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; + } + sup { + top: -0.5em; + } + sub { + bottom: -0.25em; + } + img { + border: 0; + } + svg:not(:root) { + overflow: hidden; + } + figure { + margin: 1em 40px; + } + hr { + height: 0; + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + } + pre { + overflow: auto; + } + code, + kbd, + pre, + samp { + font-family: monospace, monospace; + font-size: 1em; + } + button, + input, + optgroup, + select, + textarea { + margin: 0; + font: inherit; + color: inherit; + } + button { + overflow: visible; + } + button, + select { + text-transform: none; + } + button, + html input[type="button"], + input[type="reset"], + input[type="submit"] { + -webkit-appearance: button; + cursor: pointer; + } + //button[disabled], + //html input[disabled] { + // cursor: default; + //} + button::-moz-focus-inner, + input::-moz-focus-inner { + padding: 0; + border: 0; + } + input { + line-height: normal; + } + input[type="checkbox"], + input[type="radio"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + padding: 0; + } + input[type="number"]::-webkit-inner-spin-button, + input[type="number"]::-webkit-outer-spin-button { + height: auto; + } + input[type="search"] { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + -webkit-appearance: textfield; + } + input[type="search"]::-webkit-search-cancel-button, + input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; + } + fieldset { + padding: 0.35em 0.625em 0.75em; + margin: 0 2px; + border: 1px solid #c0c0c0; + } + legend { + padding: 0; + border: 0; + } + textarea { + overflow: auto; + } + optgroup { + font-weight: bold; + } + table { + border-spacing: 0; + border-collapse: collapse; + } + td, + th { + padding: 0; + } + /*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ + @media print { + *, + *:before, + *:after { + color: #000 !important; + text-shadow: none !important; + background: transparent !important; + -webkit-box-shadow: none !important; + box-shadow: none !important; + } + a, + a:visited { + text-decoration: underline; + } + a[href]:after { + content: " (" attr(href) ")"; + } + abbr[title]:after { + content: " (" attr(title) ")"; + } + a[href^="#"]:after, + a[href^="javascript:"]:after { + content: ""; + } + pre, + blockquote { + border: 1px solid #999; + + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + tr, + img { + page-break-inside: avoid; + } + img { + max-width: 100% !important; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } + select { + background: #fff !important; + } + .navbar { + display: none; + } + .btn > .caret, + .dropup > .btn > .caret { + border-top-color: #000 !important; + } + .label { + border: 1px solid #000; + } + .table { + border-collapse: collapse !important; + } + .table td, + .table th { + background-color: #fff !important; + } + .table-bordered th, + .table-bordered td { + border: 1px solid #ddd !important; + } + } + @font-face { + font-family: "Glyphicons Halflings"; + src: url("./resources/glyphicons-halflings-regular.woff2") format("woff2"); + } + .glyphicon { + position: relative; + top: 1px; + display: inline-block; + font-family: "Glyphicons Halflings"; + font-style: normal; + font-weight: normal; + line-height: 1; + + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + } + .glyphicon-asterisk:before { + content: "\2a"; + } + .glyphicon-plus:before { + content: "\2b"; + } + .glyphicon-euro:before, + .glyphicon-eur:before { + content: "\20ac"; + } + .glyphicon-minus:before { + content: "\2212"; + } + .glyphicon-cloud:before { + content: "\2601"; + } + .glyphicon-envelope:before { + content: "\2709"; + } + .glyphicon-pencil:before { + content: "\270f"; + } + .glyphicon-glass:before { + content: "\e001"; + } + .glyphicon-music:before { + content: "\e002"; + } + .glyphicon-search:before { + content: "\e003"; + } + .glyphicon-heart:before { + content: "\e005"; + } + .glyphicon-star:before { + content: "\e006"; + } + .glyphicon-star-empty:before { + content: "\e007"; + } + .glyphicon-user:before { + content: "\e008"; + } + .glyphicon-film:before { + content: "\e009"; + } + .glyphicon-th-large:before { + content: "\e010"; + } + .glyphicon-th:before { + content: "\e011"; + } + .glyphicon-th-list:before { + content: "\e012"; + } + .glyphicon-ok:before { + content: "\e013"; + } + .glyphicon-remove:before { + content: "\e014"; + } + .glyphicon-zoom-in:before { + content: "\e015"; + } + .glyphicon-zoom-out:before { + content: "\e016"; + } + .glyphicon-off:before { + content: "\e017"; + } + .glyphicon-signal:before { + content: "\e018"; + } + .glyphicon-cog:before { + content: "\e019"; + } + .glyphicon-trash:before { + content: "\e020"; + } + .glyphicon-home:before { + content: "\e021"; + } + .glyphicon-file:before { + content: "\e022"; + } + .glyphicon-time:before { + content: "\e023"; + } + .glyphicon-road:before { + content: "\e024"; + } + .glyphicon-download-alt:before { + content: "\e025"; + } + .glyphicon-download:before { + content: "\e026"; + } + .glyphicon-upload:before { + content: "\e027"; + } + .glyphicon-inbox:before { + content: "\e028"; + } + .glyphicon-play-circle:before { + content: "\e029"; + } + .glyphicon-repeat:before { + content: "\e030"; + } + .glyphicon-refresh:before { + content: "\e031"; + } + .glyphicon-list-alt:before { + content: "\e032"; + } + .glyphicon-lock:before { + content: "\e033"; + } + .glyphicon-flag:before { + content: "\e034"; + } + .glyphicon-headphones:before { + content: "\e035"; + } + .glyphicon-volume-off:before { + content: "\e036"; + } + .glyphicon-volume-down:before { + content: "\e037"; + } + .glyphicon-volume-up:before { + content: "\e038"; + } + .glyphicon-qrcode:before { + content: "\e039"; + } + .glyphicon-barcode:before { + content: "\e040"; + } + .glyphicon-tag:before { + content: "\e041"; + } + .glyphicon-tags:before { + content: "\e042"; + } + .glyphicon-book:before { + content: "\e043"; + } + .glyphicon-bookmark:before { + content: "\e044"; + } + .glyphicon-print:before { + content: "\e045"; + } + .glyphicon-camera:before { + content: "\e046"; + } + .glyphicon-font:before { + content: "\e047"; + } + .glyphicon-bold:before { + content: "\e048"; + } + .glyphicon-italic:before { + content: "\e049"; + } + .glyphicon-text-height:before { + content: "\e050"; + } + .glyphicon-text-width:before { + content: "\e051"; + } + .glyphicon-align-left:before { + content: "\e052"; + } + .glyphicon-align-center:before { + content: "\e053"; + } + .glyphicon-align-right:before { + content: "\e054"; + } + .glyphicon-align-justify:before { + content: "\e055"; + } + .glyphicon-list:before { + content: "\e056"; + } + .glyphicon-indent-left:before { + content: "\e057"; + } + .glyphicon-indent-right:before { + content: "\e058"; + } + .glyphicon-facetime-video:before { + content: "\e059"; + } + .glyphicon-picture:before { + content: "\e060"; + } + .glyphicon-map-marker:before { + content: "\e062"; + } + .glyphicon-adjust:before { + content: "\e063"; + } + .glyphicon-tint:before { + content: "\e064"; + } + .glyphicon-edit:before { + content: "\e065"; + } + .glyphicon-share:before { + content: "\e066"; + } + .glyphicon-check:before { + content: "\e067"; + } + .glyphicon-move:before { + content: "\e068"; + } + .glyphicon-step-backward:before { + content: "\e069"; + } + .glyphicon-fast-backward:before { + content: "\e070"; + } + .glyphicon-backward:before { + content: "\e071"; + } + .glyphicon-play:before { + content: "\e072"; + } + .glyphicon-pause:before { + content: "\e073"; + } + .glyphicon-stop:before { + content: "\e074"; + } + .glyphicon-forward:before { + content: "\e075"; + } + .glyphicon-fast-forward:before { + content: "\e076"; + } + .glyphicon-step-forward:before { + content: "\e077"; + } + .glyphicon-eject:before { + content: "\e078"; + } + .glyphicon-chevron-left:before { + content: "\e079"; + } + .glyphicon-chevron-right:before { + content: "\e080"; + } + .glyphicon-plus-sign:before { + content: "\e081"; + } + .glyphicon-minus-sign:before { + content: "\e082"; + } + .glyphicon-remove-sign:before { + content: "\e083"; + } + .glyphicon-ok-sign:before { + content: "\e084"; + } + .glyphicon-question-sign:before { + content: "\e085"; + } + .glyphicon-info-sign:before { + content: "\e086"; + } + .glyphicon-screenshot:before { + content: "\e087"; + } + .glyphicon-remove-circle:before { + content: "\e088"; + } + .glyphicon-ok-circle:before { + content: "\e089"; + } + .glyphicon-ban-circle:before { + content: "\e090"; + } + .glyphicon-arrow-left:before { + content: "\e091"; + } + .glyphicon-arrow-right:before { + content: "\e092"; + } + .glyphicon-arrow-up:before { + content: "\e093"; + } + .glyphicon-arrow-down:before { + content: "\e094"; + } + .glyphicon-share-alt:before { + content: "\e095"; + } + .glyphicon-resize-full:before { + content: "\e096"; + } + .glyphicon-resize-small:before { + content: "\e097"; + } + .glyphicon-exclamation-sign:before { + content: "\e101"; + } + .glyphicon-gift:before { + content: "\e102"; + } + .glyphicon-leaf:before { + content: "\e103"; + } + .glyphicon-fire:before { + content: "\e104"; + } + .glyphicon-eye-open:before { + content: "\e105"; + } + .glyphicon-eye-close:before { + content: "\e106"; + } + .glyphicon-warning-sign:before { + content: "\e107"; + } + .glyphicon-plane:before { + content: "\e108"; + } + .glyphicon-calendar:before { + content: "\e109"; + } + .glyphicon-random:before { + content: "\e110"; + } + .glyphicon-comment:before { + content: "\e111"; + } + .glyphicon-magnet:before { + content: "\e112"; + } + .glyphicon-chevron-up:before { + content: "\e113"; + } + .glyphicon-chevron-down:before { + content: "\e114"; + } + .glyphicon-retweet:before { + content: "\e115"; + } + .glyphicon-shopping-cart:before { + content: "\e116"; + } + .glyphicon-folder-close:before { + content: "\e117"; + } + .glyphicon-folder-open:before { + content: "\e118"; + } + .glyphicon-resize-vertical:before { + content: "\e119"; + } + .glyphicon-resize-horizontal:before { + content: "\e120"; + } + .glyphicon-hdd:before { + content: "\e121"; + } + .glyphicon-bullhorn:before { + content: "\e122"; + } + .glyphicon-bell:before { + content: "\e123"; + } + .glyphicon-certificate:before { + content: "\e124"; + } + .glyphicon-thumbs-up:before { + content: "\e125"; + } + .glyphicon-thumbs-down:before { + content: "\e126"; + } + .glyphicon-hand-right:before { + content: "\e127"; + } + .glyphicon-hand-left:before { + content: "\e128"; + } + .glyphicon-hand-up:before { + content: "\e129"; + } + .glyphicon-hand-down:before { + content: "\e130"; + } + .glyphicon-circle-arrow-right:before { + content: "\e131"; + } + .glyphicon-circle-arrow-left:before { + content: "\e132"; + } + .glyphicon-circle-arrow-up:before { + content: "\e133"; + } + .glyphicon-circle-arrow-down:before { + content: "\e134"; + } + .glyphicon-globe:before { + content: "\e135"; + } + .glyphicon-wrench:before { + content: "\e136"; + } + .glyphicon-tasks:before { + content: "\e137"; + } + .glyphicon-filter:before { + content: "\e138"; + } + .glyphicon-briefcase:before { + content: "\e139"; + } + .glyphicon-fullscreen:before { + content: "\e140"; + } + .glyphicon-dashboard:before { + content: "\e141"; + } + .glyphicon-paperclip:before { + content: "\e142"; + } + .glyphicon-heart-empty:before { + content: "\e143"; + } + .glyphicon-link:before { + content: "\e144"; + } + .glyphicon-phone:before { + content: "\e145"; + } + .glyphicon-pushpin:before { + content: "\e146"; + } + .glyphicon-usd:before { + content: "\e148"; + } + .glyphicon-gbp:before { + content: "\e149"; + } + .glyphicon-sort:before { + content: "\e150"; + } + .glyphicon-sort-by-alphabet:before { + content: "\e151"; + } + .glyphicon-sort-by-alphabet-alt:before { + content: "\e152"; + } + .glyphicon-sort-by-order:before { + content: "\e153"; + } + .glyphicon-sort-by-order-alt:before { + content: "\e154"; + } + .glyphicon-sort-by-attributes:before { + content: "\e155"; + } + .glyphicon-sort-by-attributes-alt:before { + content: "\e156"; + } + .glyphicon-unchecked:before { + content: "\e157"; + } + .glyphicon-expand:before { + content: "\e158"; + } + .glyphicon-collapse-down:before { + content: "\e159"; + } + .glyphicon-collapse-up:before { + content: "\e160"; + } + .glyphicon-log-in:before { + content: "\e161"; + } + .glyphicon-flash:before { + content: "\e162"; + } + .glyphicon-log-out:before { + content: "\e163"; + } + .glyphicon-new-window:before { + content: "\e164"; + } + .glyphicon-record:before { + content: "\e165"; + } + .glyphicon-save:before { + content: "\e166"; + } + .glyphicon-open:before { + content: "\e167"; + } + .glyphicon-saved:before { + content: "\e168"; + } + .glyphicon-import:before { + content: "\e169"; + } + .glyphicon-export:before { + content: "\e170"; + } + .glyphicon-send:before { + content: "\e171"; + } + .glyphicon-floppy-disk:before { + content: "\e172"; + } + .glyphicon-floppy-saved:before { + content: "\e173"; + } + .glyphicon-floppy-remove:before { + content: "\e174"; + } + .glyphicon-floppy-save:before { + content: "\e175"; + } + .glyphicon-floppy-open:before { + content: "\e176"; + } + .glyphicon-credit-card:before { + content: "\e177"; + } + .glyphicon-transfer:before { + content: "\e178"; + } + .glyphicon-cutlery:before { + content: "\e179"; + } + .glyphicon-header:before { + content: "\e180"; + } + .glyphicon-compressed:before { + content: "\e181"; + } + .glyphicon-earphone:before { + content: "\e182"; + } + .glyphicon-phone-alt:before { + content: "\e183"; + } + .glyphicon-tower:before { + content: "\e184"; + } + .glyphicon-stats:before { + content: "\e185"; + } + .glyphicon-sd-video:before { + content: "\e186"; + } + .glyphicon-hd-video:before { + content: "\e187"; + } + .glyphicon-subtitles:before { + content: "\e188"; + } + .glyphicon-sound-stereo:before { + content: "\e189"; + } + .glyphicon-sound-dolby:before { + content: "\e190"; + } + .glyphicon-sound-5-1:before { + content: "\e191"; + } + .glyphicon-sound-6-1:before { + content: "\e192"; + } + .glyphicon-sound-7-1:before { + content: "\e193"; + } + .glyphicon-copyright-mark:before { + content: "\e194"; + } + .glyphicon-registration-mark:before { + content: "\e195"; + } + .glyphicon-cloud-download:before { + content: "\e197"; + } + .glyphicon-cloud-upload:before { + content: "\e198"; + } + .glyphicon-tree-conifer:before { + content: "\e199"; + } + .glyphicon-tree-deciduous:before { + content: "\e200"; + } + .glyphicon-cd:before { + content: "\e201"; + } + .glyphicon-save-file:before { + content: "\e202"; + } + .glyphicon-open-file:before { + content: "\e203"; + } + .glyphicon-level-up:before { + content: "\e204"; + } + .glyphicon-copy:before { + content: "\e205"; + } + .glyphicon-paste:before { + content: "\e206"; + } + .glyphicon-alert:before { + content: "\e209"; + } + .glyphicon-equalizer:before { + content: "\e210"; + } + .glyphicon-king:before { + content: "\e211"; + } + .glyphicon-queen:before { + content: "\e212"; + } + .glyphicon-pawn:before { + content: "\e213"; + } + .glyphicon-bishop:before { + content: "\e214"; + } + .glyphicon-knight:before { + content: "\e215"; + } + .glyphicon-baby-formula:before { + content: "\e216"; + } + .glyphicon-tent:before { + content: "\26fa"; + } + .glyphicon-blackboard:before { + content: "\e218"; + } + .glyphicon-bed:before { + content: "\e219"; + } + .glyphicon-apple:before { + content: "\f8ff"; + } + .glyphicon-erase:before { + content: "\e221"; + } + .glyphicon-hourglass:before { + content: "\231b"; + } + .glyphicon-lamp:before { + content: "\e223"; + } + .glyphicon-duplicate:before { + content: "\e224"; + } + .glyphicon-piggy-bank:before { + content: "\e225"; + } + .glyphicon-scissors:before { + content: "\e226"; + } + .glyphicon-bitcoin:before { + content: "\e227"; + } + .glyphicon-btc:before { + content: "\e227"; + } + .glyphicon-xbt:before { + content: "\e227"; + } + .glyphicon-yen:before { + content: "\00a5"; + } + .glyphicon-jpy:before { + content: "\00a5"; + } + .glyphicon-ruble:before { + content: "\20bd"; + } + .glyphicon-rub:before { + content: "\20bd"; + } + .glyphicon-scale:before { + content: "\e230"; + } + .glyphicon-ice-lolly:before { + content: "\e231"; + } + .glyphicon-ice-lolly-tasted:before { + content: "\e232"; + } + .glyphicon-education:before { + content: "\e233"; + } + .glyphicon-option-horizontal:before { + content: "\e234"; + } + .glyphicon-option-vertical:before { + content: "\e235"; + } + .glyphicon-menu-hamburger:before { + content: "\e236"; + } + .glyphicon-modal-window:before { + content: "\e237"; + } + .glyphicon-oil:before { + content: "\e238"; + } + .glyphicon-grain:before { + content: "\e239"; + } + .glyphicon-sunglasses:before { + content: "\e240"; + } + .glyphicon-text-size:before { + content: "\e241"; + } + .glyphicon-text-color:before { + content: "\e242"; + } + .glyphicon-text-background:before { + content: "\e243"; + } + .glyphicon-object-align-top:before { + content: "\e244"; + } + .glyphicon-object-align-bottom:before { + content: "\e245"; + } + .glyphicon-object-align-horizontal:before { + content: "\e246"; + } + .glyphicon-object-align-left:before { + content: "\e247"; + } + .glyphicon-object-align-vertical:before { + content: "\e248"; + } + .glyphicon-object-align-right:before { + content: "\e249"; + } + .glyphicon-triangle-right:before { + content: "\e250"; + } + .glyphicon-triangle-left:before { + content: "\e251"; + } + .glyphicon-triangle-bottom:before { + content: "\e252"; + } + .glyphicon-triangle-top:before { + content: "\e253"; + } + .glyphicon-console:before { + content: "\e254"; + } + .glyphicon-superscript:before { + content: "\e255"; + } + .glyphicon-subscript:before { + content: "\e256"; + } + .glyphicon-menu-left:before { + content: "\e257"; + } + .glyphicon-menu-right:before { + content: "\e258"; + } + .glyphicon-menu-down:before { + content: "\e259"; + } + .glyphicon-menu-up:before { + content: "\e260"; + } + * { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + *:before, + *:after { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + html { + font-size: 10px; + + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + } + body { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 1.42857143; + color: #333; + background-color: #fff; + } + input, + button, + select, + textarea { + font-family: inherit; + font-size: inherit; + line-height: inherit; + } + a { + color: #337ab7; + text-decoration: none; + } + a:hover, + a:focus { + color: #23527c; + text-decoration: underline; + } + a:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; + } + figure { + margin: 0; + } + img { + vertical-align: middle; + } + .img-responsive, + .thumbnail > img, + .thumbnail a > img, + .carousel-inner > .item > img, + .carousel-inner > .item > a > img { + display: block; + max-width: 100%; + height: auto; + } + .img-rounded { + border-radius: 6px; + } + .img-thumbnail { + display: inline-block; + max-width: 100%; + height: auto; + padding: 4px; + line-height: 1.42857143; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 4px; + -webkit-transition: all 0.2s ease-in-out; + -o-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; + } + .img-circle { + border-radius: 50%; + } + hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-top: 1px solid #eee; + } + .sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; + } + .sr-only-focusable:active, + .sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; + } + [role="button"] { + cursor: pointer; + } + h1, + h2, + h3, + h4, + h5, + h6, + .h1, + .h2, + .h3, + .h4, + .h5, + .h6 { + font-family: inherit; + font-weight: 500; + line-height: 1.1; + color: inherit; + } + h1 small, + h2 small, + h3 small, + h4 small, + h5 small, + h6 small, + .h1 small, + .h2 small, + .h3 small, + .h4 small, + .h5 small, + .h6 small, + h1 .small, + h2 .small, + h3 .small, + h4 .small, + h5 .small, + h6 .small, + .h1 .small, + .h2 .small, + .h3 .small, + .h4 .small, + .h5 .small, + .h6 .small { + font-weight: normal; + line-height: 1; + color: #777; + } + h1, + .h1, + h2, + .h2, + h3, + .h3 { + margin-top: 20px; + margin-bottom: 10px; + } + h1 small, + .h1 small, + h2 small, + .h2 small, + h3 small, + .h3 small, + h1 .small, + .h1 .small, + h2 .small, + .h2 .small, + h3 .small, + .h3 .small { + font-size: 65%; + } + h4, + .h4, + h5, + .h5, + h6, + .h6 { + margin-top: 10px; + margin-bottom: 10px; + } + h4 small, + .h4 small, + h5 small, + .h5 small, + h6 small, + .h6 small, + h4 .small, + .h4 .small, + h5 .small, + .h5 .small, + h6 .small, + .h6 .small { + font-size: 75%; + } + h1, + .h1 { + font-size: 36px; + } + h2, + .h2 { + font-size: 30px; + } + h3, + .h3 { + font-size: 24px; + } + h4, + .h4 { + font-size: 18px; + } + h5, + .h5 { + font-size: 14px; + } + h6, + .h6 { + font-size: 12px; + } + p { + margin: 0 0 10px; + } + .lead { + margin-bottom: 20px; + font-size: 16px; + font-weight: 300; + line-height: 1.4; + } + @media (min-width: 768px) { + .lead { + font-size: 21px; + } + } + small, + .small { + font-size: 85%; + } + mark, + .mark { + padding: 0.2em; + background-color: #fcf8e3; + } + .text-left { + text-align: left; + } + .text-right { + text-align: right; + } + .text-center { + text-align: center; + } + .text-justify { + text-align: justify; + } + .text-nowrap { + white-space: nowrap; + } + .text-lowercase { + text-transform: lowercase; + } + .text-uppercase { + text-transform: uppercase; + } + .text-capitalize { + text-transform: capitalize; + } + .text-muted { + color: #777; + } + .text-primary { + color: #337ab7; + } + a.text-primary:hover { + color: #286090; + } + .text-success { + color: #3c763d; + } + a.text-success:hover { + color: #2b542c; + } + .text-info { + color: #31708f; + } + a.text-info:hover { + color: #245269; + } + .text-warning { + color: #8a6d3b; + } + a.text-warning:hover { + color: #66512c; + } + .text-danger { + color: #a94442; + } + a.text-danger:hover { + color: #843534; + } + .bg-primary { + color: #fff; + background-color: #337ab7; + } + a.bg-primary:hover { + background-color: #286090; + } + .bg-success { + background-color: #dff0d8; + } + a.bg-success:hover { + background-color: #c1e2b3; + } + .bg-info { + background-color: #d9edf7; + } + a.bg-info:hover { + background-color: #afd9ee; + } + .bg-warning { + background-color: #fcf8e3; + } + a.bg-warning:hover { + background-color: #f7ecb5; + } + .bg-danger { + background-color: #f2dede; + } + a.bg-danger:hover { + background-color: #e4b9b9; + } + .page-header { + padding-bottom: 9px; + margin: 40px 0 20px; + border-bottom: 1px solid #eee; + } + ul, + ol { + margin-top: 0; + margin-bottom: 10px; + } + ul ul, + ol ul, + ul ol, + ol ol { + margin-bottom: 0; + } + .list-unstyled { + padding-left: 0; + list-style: none; + } + .list-inline { + padding-left: 0; + margin-left: -5px; + list-style: none; + } + .list-inline > li { + display: inline-block; + padding-right: 5px; + padding-left: 5px; + } + dl { + margin-top: 0; + margin-bottom: 20px; + } + dt, + dd { + line-height: 1.42857143; + } + dt { + font-weight: bold; + } + dd { + margin-left: 0; + } + @media (min-width: 768px) { + .dl-horizontal dt { + float: left; + width: 160px; + overflow: hidden; + clear: left; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap; + } + .dl-horizontal dd { + margin-left: 180px; + } + } + abbr[title], + abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted #777; + } + .initialism { + font-size: 90%; + text-transform: uppercase; + } + blockquote { + padding: 10px 20px; + margin: 0 0 20px; + font-size: 17.5px; + border-left: 5px solid #eee; + } + blockquote p:last-child, + blockquote ul:last-child, + blockquote ol:last-child { + margin-bottom: 0; + } + blockquote footer, + blockquote small, + blockquote .small { + display: block; + font-size: 80%; + line-height: 1.42857143; + color: #777; + } + blockquote footer:before, + blockquote small:before, + blockquote .small:before { + content: "\2014 \00A0"; + } + .blockquote-reverse, + blockquote.pull-right { + padding-right: 15px; + padding-left: 0; + text-align: right; + border-right: 5px solid #eee; + border-left: 0; + } + .blockquote-reverse footer:before, + blockquote.pull-right footer:before, + .blockquote-reverse small:before, + blockquote.pull-right small:before, + .blockquote-reverse .small:before, + blockquote.pull-right .small:before { + content: ""; + } + .blockquote-reverse footer:after, + blockquote.pull-right footer:after, + .blockquote-reverse small:after, + blockquote.pull-right small:after, + .blockquote-reverse .small:after, + blockquote.pull-right .small:after { + content: "\00A0 \2014"; + } + address { + margin-bottom: 20px; + font-style: normal; + line-height: 1.42857143; + } + code, + kbd, + pre, + samp { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + } + code { + padding: 2px 4px; + font-size: 90%; + color: #c7254e; + background-color: #f9f2f4; + border-radius: 4px; + } + kbd { + padding: 2px 4px; + font-size: 90%; + color: #fff; + background-color: #333; + border-radius: 3px; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); + } + kbd kbd { + padding: 0; + font-size: 100%; + font-weight: bold; + -webkit-box-shadow: none; + box-shadow: none; + } + pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 1.42857143; + color: #333; + word-break: break-all; + word-wrap: break-word; + background-color: #f5f5f5; + border: 1px solid #ccc; + border-radius: 4px; + } + pre code { + padding: 0; + font-size: inherit; + color: inherit; + white-space: pre-wrap; + background-color: transparent; + border-radius: 0; + } + .pre-scrollable { + max-height: 340px; + overflow-y: scroll; + } + .container { + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; + } + @media (min-width: 768px) { + .container { + width: 750px; + } + } + @media (min-width: 992px) { + .container { + width: 970px; + } + } + @media (min-width: 1200px) { + .container { + width: 1170px; + } + } + .container-fluid { + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; + } + .row { + margin-right: -15px; + margin-left: -15px; + } + //.col-xs-1, + //.col-sm-1, + //.col-md-1, + //.col-lg-1, + //.col-xs-2, + //.col-sm-2, + //.col-md-2, + //.col-lg-2, + //.col-xs-3, + //.col-sm-3, + //.col-md-3, + //.col-lg-3, + //.col-xs-4, + //.col-sm-4, + //.col-md-4, + //.col-lg-4, + //.col-xs-5, + //.col-sm-5, + //.col-md-5, + //.col-lg-5, + //.col-xs-6, + //.col-sm-6, + //.col-md-6, + //.col-lg-6, + //.col-xs-7, + //.col-sm-7, + //.col-md-7, + //.col-lg-7, + //.col-xs-8, + //.col-sm-8, + //.col-md-8, + //.col-lg-8, + //.col-xs-9, + //.col-sm-9, + //.col-md-9, + //.col-lg-9, + //.col-xs-10, + //.col-sm-10, + //.col-md-10, + //.col-lg-10, + //.col-xs-11, + //.col-sm-11, + //.col-md-11, + //.col-lg-11, + //.col-xs-12, + //.col-sm-12, + //.col-md-12, + //.col-lg-12 { + // position: relative; + // min-height: 1px; + // padding-right: 15px; + // padding-left: 15px; + //} + //.col-xs-1, + //.col-xs-2, + //.col-xs-3, + //.col-xs-4, + //.col-xs-5, + //.col-xs-6, + //.col-xs-7, + //.col-xs-8, + //.col-xs-9, + //.col-xs-10, + //.col-xs-11, + //.col-xs-12 { + // float: left; + //} + //.col-xs-12 { + // width: 100%; + //} + //.col-xs-11 { + // width: 91.66666667%; + //} + //.col-xs-10 { + // width: 83.33333333%; + //} + //.col-xs-9 { + // width: 75%; + //} + //.col-xs-8 { + // width: 66.66666667%; + //} + //.col-xs-7 { + // width: 58.33333333%; + //} + //.col-xs-6 { + // width: 50%; + //} + //.col-xs-5 { + // width: 41.66666667%; + //} + //.col-xs-4 { + // width: 33.33333333%; + //} + //.col-xs-3 { + // width: 25%; + //} + //.col-xs-2 { + // width: 16.66666667%; + //} + //.col-xs-1 { + // width: 8.33333333%; + //} + //.col-xs-pull-12 { + // right: 100%; + //} + //.col-xs-pull-11 { + // right: 91.66666667%; + //} + //.col-xs-pull-10 { + // right: 83.33333333%; + //} + //.col-xs-pull-9 { + // right: 75%; + //} + //.col-xs-pull-8 { + // right: 66.66666667%; + //} + //.col-xs-pull-7 { + // right: 58.33333333%; + //} + //.col-xs-pull-6 { + // right: 50%; + //} + //.col-xs-pull-5 { + // right: 41.66666667%; + //} + //.col-xs-pull-4 { + // right: 33.33333333%; + //} + //.col-xs-pull-3 { + // right: 25%; + //} + //.col-xs-pull-2 { + // right: 16.66666667%; + //} + //.col-xs-pull-1 { + // right: 8.33333333%; + //} + //.col-xs-pull-0 { + // right: auto; + //} + //.col-xs-push-12 { + // left: 100%; + //} + //.col-xs-push-11 { + // left: 91.66666667%; + //} + //.col-xs-push-10 { + // left: 83.33333333%; + //} + //.col-xs-push-9 { + // left: 75%; + //} + //.col-xs-push-8 { + // left: 66.66666667%; + //} + //.col-xs-push-7 { + // left: 58.33333333%; + //} + //.col-xs-push-6 { + // left: 50%; + //} + //.col-xs-push-5 { + // left: 41.66666667%; + //} + //.col-xs-push-4 { + // left: 33.33333333%; + //} + //.col-xs-push-3 { + // left: 25%; + //} + //.col-xs-push-2 { + // left: 16.66666667%; + //} + //.col-xs-push-1 { + // left: 8.33333333%; + //} + //.col-xs-push-0 { + // left: auto; + //} + //.col-xs-offset-12 { + // margin-left: 100%; + //} + //.col-xs-offset-11 { + // margin-left: 91.66666667%; + //} + //.col-xs-offset-10 { + // margin-left: 83.33333333%; + //} + //.col-xs-offset-9 { + // margin-left: 75%; + //} + //.col-xs-offset-8 { + // margin-left: 66.66666667%; + //} + //.col-xs-offset-7 { + // margin-left: 58.33333333%; + //} + //.col-xs-offset-6 { + // margin-left: 50%; + //} + //.col-xs-offset-5 { + // margin-left: 41.66666667%; + //} + //.col-xs-offset-4 { + // margin-left: 33.33333333%; + //} + //.col-xs-offset-3 { + // margin-left: 25%; + //} + //.col-xs-offset-2 { + // margin-left: 16.66666667%; + //} + //.col-xs-offset-1 { + // margin-left: 8.33333333%; + //} + //.col-xs-offset-0 { + // margin-left: 0; + //} + //@media (min-width: 768px) { + // .col-sm-1, + // .col-sm-2, + // .col-sm-3, + // .col-sm-4, + // .col-sm-5, + // .col-sm-6, + // .col-sm-7, + // .col-sm-8, + // .col-sm-9, + // .col-sm-10, + // .col-sm-11, + // .col-sm-12 { + // float: left; + // } + // .col-sm-12 { + // width: 100%; + // } + // .col-sm-11 { + // width: 91.66666667%; + // } + // .col-sm-10 { + // width: 83.33333333%; + // } + // .col-sm-9 { + // width: 75%; + // } + // .col-sm-8 { + // width: 66.66666667%; + // } + // .col-sm-7 { + // width: 58.33333333%; + // } + // .col-sm-6 { + // width: 50%; + // } + // .col-sm-5 { + // width: 41.66666667%; + // } + // .col-sm-4 { + // width: 33.33333333%; + // } + // .col-sm-3 { + // width: 25%; + // } + // .col-sm-2 { + // width: 16.66666667%; + // } + // .col-sm-1 { + // width: 8.33333333%; + // } + // .col-sm-pull-12 { + // right: 100%; + // } + // .col-sm-pull-11 { + // right: 91.66666667%; + // } + // .col-sm-pull-10 { + // right: 83.33333333%; + // } + // .col-sm-pull-9 { + // right: 75%; + // } + // .col-sm-pull-8 { + // right: 66.66666667%; + // } + // .col-sm-pull-7 { + // right: 58.33333333%; + // } + // .col-sm-pull-6 { + // right: 50%; + // } + // .col-sm-pull-5 { + // right: 41.66666667%; + // } + // .col-sm-pull-4 { + // right: 33.33333333%; + // } + // .col-sm-pull-3 { + // right: 25%; + // } + // .col-sm-pull-2 { + // right: 16.66666667%; + // } + // .col-sm-pull-1 { + // right: 8.33333333%; + // } + // .col-sm-pull-0 { + // right: auto; + // } + // .col-sm-push-12 { + // left: 100%; + // } + // .col-sm-push-11 { + // left: 91.66666667%; + // } + // .col-sm-push-10 { + // left: 83.33333333%; + // } + // .col-sm-push-9 { + // left: 75%; + // } + // .col-sm-push-8 { + // left: 66.66666667%; + // } + // .col-sm-push-7 { + // left: 58.33333333%; + // } + // .col-sm-push-6 { + // left: 50%; + // } + // .col-sm-push-5 { + // left: 41.66666667%; + // } + // .col-sm-push-4 { + // left: 33.33333333%; + // } + // .col-sm-push-3 { + // left: 25%; + // } + // .col-sm-push-2 { + // left: 16.66666667%; + // } + // .col-sm-push-1 { + // left: 8.33333333%; + // } + // .col-sm-push-0 { + // left: auto; + // } + // .col-sm-offset-12 { + // margin-left: 100%; + // } + // .col-sm-offset-11 { + // margin-left: 91.66666667%; + // } + // .col-sm-offset-10 { + // margin-left: 83.33333333%; + // } + // .col-sm-offset-9 { + // margin-left: 75%; + // } + // .col-sm-offset-8 { + // margin-left: 66.66666667%; + // } + // .col-sm-offset-7 { + // margin-left: 58.33333333%; + // } + // .col-sm-offset-6 { + // margin-left: 50%; + // } + // .col-sm-offset-5 { + // margin-left: 41.66666667%; + // } + // .col-sm-offset-4 { + // margin-left: 33.33333333%; + // } + // .col-sm-offset-3 { + // margin-left: 25%; + // } + // .col-sm-offset-2 { + // margin-left: 16.66666667%; + // } + // .col-sm-offset-1 { + // margin-left: 8.33333333%; + // } + // .col-sm-offset-0 { + // margin-left: 0; + // } + //} + //@media (min-width: 992px) { + // .col-md-1, + // .col-md-2, + // .col-md-3, + // .col-md-4, + // .col-md-5, + // .col-md-6, + // .col-md-7, + // .col-md-8, + // .col-md-9, + // .col-md-10, + // .col-md-11, + // .col-md-12 { + // float: left; + // } + // .col-md-12 { + // width: 100%; + // } + // .col-md-11 { + // width: 91.66666667%; + // } + // .col-md-10 { + // width: 83.33333333%; + // } + // .col-md-9 { + // width: 75%; + // } + // .col-md-8 { + // width: 66.66666667%; + // } + // .col-md-7 { + // width: 58.33333333%; + // } + // .col-md-6 { + // width: 50%; + // } + // .col-md-5 { + // width: 41.66666667%; + // } + // .col-md-4 { + // width: 33.33333333%; + // } + // .col-md-3 { + // width: 25%; + // } + // .col-md-2 { + // width: 16.66666667%; + // } + // .col-md-1 { + // width: 8.33333333%; + // } + // .col-md-pull-12 { + // right: 100%; + // } + // .col-md-pull-11 { + // right: 91.66666667%; + // } + // .col-md-pull-10 { + // right: 83.33333333%; + // } + // .col-md-pull-9 { + // right: 75%; + // } + // .col-md-pull-8 { + // right: 66.66666667%; + // } + // .col-md-pull-7 { + // right: 58.33333333%; + // } + // .col-md-pull-6 { + // right: 50%; + // } + // .col-md-pull-5 { + // right: 41.66666667%; + // } + // .col-md-pull-4 { + // right: 33.33333333%; + // } + // .col-md-pull-3 { + // right: 25%; + // } + // .col-md-pull-2 { + // right: 16.66666667%; + // } + // .col-md-pull-1 { + // right: 8.33333333%; + // } + // .col-md-pull-0 { + // right: auto; + // } + // .col-md-push-12 { + // left: 100%; + // } + // .col-md-push-11 { + // left: 91.66666667%; + // } + // .col-md-push-10 { + // left: 83.33333333%; + // } + // .col-md-push-9 { + // left: 75%; + // } + // .col-md-push-8 { + // left: 66.66666667%; + // } + // .col-md-push-7 { + // left: 58.33333333%; + // } + // .col-md-push-6 { + // left: 50%; + // } + // .col-md-push-5 { + // left: 41.66666667%; + // } + // .col-md-push-4 { + // left: 33.33333333%; + // } + // .col-md-push-3 { + // left: 25%; + // } + // .col-md-push-2 { + // left: 16.66666667%; + // } + // .col-md-push-1 { + // left: 8.33333333%; + // } + // .col-md-push-0 { + // left: auto; + // } + // .col-md-offset-12 { + // margin-left: 100%; + // } + // .col-md-offset-11 { + // margin-left: 91.66666667%; + // } + // .col-md-offset-10 { + // margin-left: 83.33333333%; + // } + // .col-md-offset-9 { + // margin-left: 75%; + // } + // .col-md-offset-8 { + // margin-left: 66.66666667%; + // } + // .col-md-offset-7 { + // margin-left: 58.33333333%; + // } + // .col-md-offset-6 { + // margin-left: 50%; + // } + // .col-md-offset-5 { + // margin-left: 41.66666667%; + // } + // .col-md-offset-4 { + // margin-left: 33.33333333%; + // } + // .col-md-offset-3 { + // margin-left: 25%; + // } + // .col-md-offset-2 { + // margin-left: 16.66666667%; + // } + // .col-md-offset-1 { + // margin-left: 8.33333333%; + // } + // .col-md-offset-0 { + // margin-left: 0; + // } + //} + //@media (min-width: 1200px) { + // .col-lg-1, + // .col-lg-2, + // .col-lg-3, + // .col-lg-4, + // .col-lg-5, + // .col-lg-6, + // .col-lg-7, + // .col-lg-8, + // .col-lg-9, + // .col-lg-10, + // .col-lg-11, + // .col-lg-12 { + // float: left; + // } + // .col-lg-12 { + // width: 100%; + // } + // .col-lg-11 { + // width: 91.66666667%; + // } + // .col-lg-10 { + // width: 83.33333333%; + // } + // .col-lg-9 { + // width: 75%; + // } + // .col-lg-8 { + // width: 66.66666667%; + // } + // .col-lg-7 { + // width: 58.33333333%; + // } + // .col-lg-6 { + // width: 50%; + // } + // .col-lg-5 { + // width: 41.66666667%; + // } + // .col-lg-4 { + // width: 33.33333333%; + // } + // .col-lg-3 { + // width: 25%; + // } + // .col-lg-2 { + // width: 16.66666667%; + // } + // .col-lg-1 { + // width: 8.33333333%; + // } + // .col-lg-pull-12 { + // right: 100%; + // } + // .col-lg-pull-11 { + // right: 91.66666667%; + // } + // .col-lg-pull-10 { + // right: 83.33333333%; + // } + // .col-lg-pull-9 { + // right: 75%; + // } + // .col-lg-pull-8 { + // right: 66.66666667%; + // } + // .col-lg-pull-7 { + // right: 58.33333333%; + // } + // .col-lg-pull-6 { + // right: 50%; + // } + // .col-lg-pull-5 { + // right: 41.66666667%; + // } + // .col-lg-pull-4 { + // right: 33.33333333%; + // } + // .col-lg-pull-3 { + // right: 25%; + // } + // .col-lg-pull-2 { + // right: 16.66666667%; + // } + // .col-lg-pull-1 { + // right: 8.33333333%; + // } + // .col-lg-pull-0 { + // right: auto; + // } + // .col-lg-push-12 { + // left: 100%; + // } + // .col-lg-push-11 { + // left: 91.66666667%; + // } + // .col-lg-push-10 { + // left: 83.33333333%; + // } + // .col-lg-push-9 { + // left: 75%; + // } + // .col-lg-push-8 { + // left: 66.66666667%; + // } + // .col-lg-push-7 { + // left: 58.33333333%; + // } + // .col-lg-push-6 { + // left: 50%; + // } + // .col-lg-push-5 { + // left: 41.66666667%; + // } + // .col-lg-push-4 { + // left: 33.33333333%; + // } + // .col-lg-push-3 { + // left: 25%; + // } + // .col-lg-push-2 { + // left: 16.66666667%; + // } + // .col-lg-push-1 { + // left: 8.33333333%; + // } + // .col-lg-push-0 { + // left: auto; + // } + // .col-lg-offset-12 { + // margin-left: 100%; + // } + // .col-lg-offset-11 { + // margin-left: 91.66666667%; + // } + // .col-lg-offset-10 { + // margin-left: 83.33333333%; + // } + // .col-lg-offset-9 { + // margin-left: 75%; + // } + // .col-lg-offset-8 { + // margin-left: 66.66666667%; + // } + // .col-lg-offset-7 { + // margin-left: 58.33333333%; + // } + // .col-lg-offset-6 { + // margin-left: 50%; + // } + // .col-lg-offset-5 { + // margin-left: 41.66666667%; + // } + // .col-lg-offset-4 { + // margin-left: 33.33333333%; + // } + // .col-lg-offset-3 { + // margin-left: 25%; + // } + // .col-lg-offset-2 { + // margin-left: 16.66666667%; + // } + // .col-lg-offset-1 { + // margin-left: 8.33333333%; + // } + // .col-lg-offset-0 { + // margin-left: 0; + // } + //} + table { + background-color: transparent; + } + caption { + padding-top: 8px; + padding-bottom: 8px; + color: #777; + text-align: left; + } + th { + text-align: left; + } + .table { + width: 100%; + max-width: 100%; + margin-bottom: 20px; + } + .table > thead > tr > th, + .table > tbody > tr > th, + .table > tfoot > tr > th, + .table > thead > tr > td, + .table > tbody > tr > td, + .table > tfoot > tr > td { + padding: 8px; + line-height: 1.42857143; + vertical-align: top; + border-top: 1px solid #ddd; + } + .table > thead > tr > th { + vertical-align: bottom; + border-bottom: 2px solid #ddd; + } + .table > caption + thead > tr:first-child > th, + .table > colgroup + thead > tr:first-child > th, + .table > thead:first-child > tr:first-child > th, + .table > caption + thead > tr:first-child > td, + .table > colgroup + thead > tr:first-child > td, + .table > thead:first-child > tr:first-child > td { + border-top: 0; + } + .table > tbody + tbody { + border-top: 2px solid #ddd; + } + .table .table { + background-color: #fff; + } + .table-condensed > thead > tr > th, + .table-condensed > tbody > tr > th, + .table-condensed > tfoot > tr > th, + .table-condensed > thead > tr > td, + .table-condensed > tbody > tr > td, + .table-condensed > tfoot > tr > td { + padding: 5px; + } + .table-bordered { + border: 1px solid #ddd; + } + .table-bordered > thead > tr > th, + .table-bordered > tbody > tr > th, + .table-bordered > tfoot > tr > th, + .table-bordered > thead > tr > td, + .table-bordered > tbody > tr > td, + .table-bordered > tfoot > tr > td { + border: 1px solid #ddd; + } + .table-bordered > thead > tr > th, + .table-bordered > thead > tr > td { + border-bottom-width: 2px; + } + .table-striped > tbody > tr:nth-of-type(odd) { + background-color: #f9f9f9; + } + .table-hover > tbody > tr:hover { + background-color: #f5f5f5; + } + table col[class*="col-"] { + position: static; + display: table-column; + float: none; + } + table td[class*="col-"], + table th[class*="col-"] { + position: static; + display: table-cell; + float: none; + } + .table > thead > tr > td.active, + .table > tbody > tr > td.active, + .table > tfoot > tr > td.active, + .table > thead > tr > th.active, + .table > tbody > tr > th.active, + .table > tfoot > tr > th.active, + .table > thead > tr.active > td, + .table > tbody > tr.active > td, + .table > tfoot > tr.active > td, + .table > thead > tr.active > th, + .table > tbody > tr.active > th, + .table > tfoot > tr.active > th { + background-color: #f5f5f5; + } + .table-hover > tbody > tr > td.active:hover, + .table-hover > tbody > tr > th.active:hover, + .table-hover > tbody > tr.active:hover > td, + .table-hover > tbody > tr:hover > .active, + .table-hover > tbody > tr.active:hover > th { + background-color: #e8e8e8; + } + .table > thead > tr > td.success, + .table > tbody > tr > td.success, + .table > tfoot > tr > td.success, + .table > thead > tr > th.success, + .table > tbody > tr > th.success, + .table > tfoot > tr > th.success, + .table > thead > tr.success > td, + .table > tbody > tr.success > td, + .table > tfoot > tr.success > td, + .table > thead > tr.success > th, + .table > tbody > tr.success > th, + .table > tfoot > tr.success > th { + background-color: #dff0d8; + } + .table-hover > tbody > tr > td.success:hover, + .table-hover > tbody > tr > th.success:hover, + .table-hover > tbody > tr.success:hover > td, + .table-hover > tbody > tr:hover > .success, + .table-hover > tbody > tr.success:hover > th { + background-color: #d0e9c6; + } + .table > thead > tr > td.info, + .table > tbody > tr > td.info, + .table > tfoot > tr > td.info, + .table > thead > tr > th.info, + .table > tbody > tr > th.info, + .table > tfoot > tr > th.info, + .table > thead > tr.info > td, + .table > tbody > tr.info > td, + .table > tfoot > tr.info > td, + .table > thead > tr.info > th, + .table > tbody > tr.info > th, + .table > tfoot > tr.info > th { + background-color: #d9edf7; + } + .table-hover > tbody > tr > td.info:hover, + .table-hover > tbody > tr > th.info:hover, + .table-hover > tbody > tr.info:hover > td, + .table-hover > tbody > tr:hover > .info, + .table-hover > tbody > tr.info:hover > th { + background-color: #c4e3f3; + } + .table > thead > tr > td.warning, + .table > tbody > tr > td.warning, + .table > tfoot > tr > td.warning, + .table > thead > tr > th.warning, + .table > tbody > tr > th.warning, + .table > tfoot > tr > th.warning, + .table > thead > tr.warning > td, + .table > tbody > tr.warning > td, + .table > tfoot > tr.warning > td, + .table > thead > tr.warning > th, + .table > tbody > tr.warning > th, + .table > tfoot > tr.warning > th { + background-color: #fcf8e3; + } + .table-hover > tbody > tr > td.warning:hover, + .table-hover > tbody > tr > th.warning:hover, + .table-hover > tbody > tr.warning:hover > td, + .table-hover > tbody > tr:hover > .warning, + .table-hover > tbody > tr.warning:hover > th { + background-color: #faf2cc; + } + .table > thead > tr > td.danger, + .table > tbody > tr > td.danger, + .table > tfoot > tr > td.danger, + .table > thead > tr > th.danger, + .table > tbody > tr > th.danger, + .table > tfoot > tr > th.danger, + .table > thead > tr.danger > td, + .table > tbody > tr.danger > td, + .table > tfoot > tr.danger > td, + .table > thead > tr.danger > th, + .table > tbody > tr.danger > th, + .table > tfoot > tr.danger > th { + background-color: #f2dede; + } + .table-hover > tbody > tr > td.danger:hover, + .table-hover > tbody > tr > th.danger:hover, + .table-hover > tbody > tr.danger:hover > td, + .table-hover > tbody > tr:hover > .danger, + .table-hover > tbody > tr.danger:hover > th { + background-color: #ebcccc; + } + .table-responsive { + min-height: 0.01%; + overflow-x: auto; + } + @media screen and (max-width: 767px) { + .table-responsive { + width: 100%; + margin-bottom: 15px; + overflow-y: hidden; + -ms-overflow-style: -ms-autohiding-scrollbar; + border: 1px solid #ddd; + } + .table-responsive > .table { + margin-bottom: 0; + } + .table-responsive > .table > thead > tr > th, + .table-responsive > .table > tbody > tr > th, + .table-responsive > .table > tfoot > tr > th, + .table-responsive > .table > thead > tr > td, + .table-responsive > .table > tbody > tr > td, + .table-responsive > .table > tfoot > tr > td { + white-space: nowrap; + } + .table-responsive > .table-bordered { + border: 0; + } + .table-responsive > .table-bordered > thead > tr > th:first-child, + .table-responsive > .table-bordered > tbody > tr > th:first-child, + .table-responsive > .table-bordered > tfoot > tr > th:first-child, + .table-responsive > .table-bordered > thead > tr > td:first-child, + .table-responsive > .table-bordered > tbody > tr > td:first-child, + .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; + } + .table-responsive > .table-bordered > thead > tr > th:last-child, + .table-responsive > .table-bordered > tbody > tr > th:last-child, + .table-responsive > .table-bordered > tfoot > tr > th:last-child, + .table-responsive > .table-bordered > thead > tr > td:last-child, + .table-responsive > .table-bordered > tbody > tr > td:last-child, + .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; + } + .table-responsive > .table-bordered > tbody > tr:last-child > th, + .table-responsive > .table-bordered > tfoot > tr:last-child > th, + .table-responsive > .table-bordered > tbody > tr:last-child > td, + .table-responsive > .table-bordered > tfoot > tr:last-child > td { + border-bottom: 0; + } + } + fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; + } + legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: inherit; + color: #333; + border: 0; + border-bottom: 1px solid #e5e5e5; + } + label { + display: inline-block; + max-width: 100%; + margin-bottom: 5px; + font-weight: bold; + } + input[type="search"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + input[type="radio"], + input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + line-height: normal; + } + input[type="file"] { + display: block; + } + input[type="range"] { + display: block; + width: 100%; + } + select[multiple], + select[size] { + height: auto; + } + input[type="file"]:focus, + input[type="radio"]:focus, + input[type="checkbox"]:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; + } + output { + display: block; + padding-top: 7px; + font-size: 14px; + line-height: 1.42857143; + color: #555; + } + //.form-control { + // display: block; + // width: 100%; + // height: 34px; + // padding: 6px 12px; + // font-size: 14px; + // line-height: 1.42857143; + // color: #555; + // background-color: #fff; + // background-image: none; + // border: 1px solid #ccc; + // border-radius: 4px; + // -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + // box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + // -webkit-transition: border-color ease-in-out 0.15s, -webkit-box-shadow ease-in-out 0.15s; + // -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; + // transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; + //} + //.form-control:focus { + // border-color: #66afe9; + // outline: 0; + // -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); + // box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); + //} + //.form-control::-moz-placeholder { + // color: #999; + // opacity: 1; + //} + //.form-control:-ms-input-placeholder { + // color: #999; + //} + //.form-control::-webkit-input-placeholder { + // color: #999; + //} + //.form-control[disabled], + //.form-control[readonly], + //fieldset[disabled] .form-control { + // background-color: #eee; + // opacity: 1; + //} + //.form-control[disabled], + //fieldset[disabled] .form-control { + // cursor: not-allowed; + //} + //textarea.form-control { + // height: auto; + //} + //input[type='search'] { + // -webkit-appearance: none; + //} + // @media screen and (-webkit-min-device-pixel-ratio: 0) { + // input[type='date'], + // input[type='time'], + // input[type='datetime-local'], + // input[type='month'] { + // line-height: 34px; + // } + // input[type='date'].input-sm, + // input[type='time'].input-sm, + // input[type='datetime-local'].input-sm, + // input[type='month'].input-sm, + // .input-group-sm input[type='date'], + // .input-group-sm input[type='time'], + // .input-group-sm input[type='datetime-local'], + // .input-group-sm input[type='month'] { + // line-height: 30px; + // } + // input[type='date'].input-lg, + // input[type='time'].input-lg, + // input[type='datetime-local'].input-lg, + // input[type='month'].input-lg, + // .input-group-lg input[type='date'], + // .input-group-lg input[type='time'], + // .input-group-lg input[type='datetime-local'], + // .input-group-lg input[type='month'] { + // line-height: 46px; + // } + // } + //.form-group { + // margin-bottom: 15px; + //} + .radio, + .checkbox { + position: relative; + display: block; + margin-top: 10px; + margin-bottom: 10px; + } + .radio label, + .checkbox label { + min-height: 20px; + padding-left: 20px; + margin-bottom: 0; + font-weight: normal; + cursor: pointer; + } + .radio input[type="radio"], + .radio-inline input[type="radio"], + .checkbox input[type="checkbox"], + .checkbox-inline input[type="checkbox"] { + position: absolute; + margin-top: 4px \9; + margin-left: -20px; + } + .radio + .radio, + .checkbox + .checkbox { + margin-top: -5px; + } + .radio-inline, + .checkbox-inline { + position: relative; + display: inline-block; + padding-left: 20px; + margin-bottom: 0; + font-weight: normal; + vertical-align: middle; + cursor: pointer; + } + .radio-inline + .radio-inline, + .checkbox-inline + .checkbox-inline { + margin-top: 0; + margin-left: 10px; + } + input[type="radio"][disabled], + input[type="checkbox"][disabled], + input[type="radio"].disabled, + input[type="checkbox"].disabled, + fieldset[disabled] input[type="radio"], + fieldset[disabled] input[type="checkbox"] { + cursor: not-allowed; + } + .radio-inline.disabled, + .checkbox-inline.disabled, + fieldset[disabled] .radio-inline, + fieldset[disabled] .checkbox-inline { + cursor: not-allowed; + } + .radio.disabled label, + .checkbox.disabled label, + fieldset[disabled] .radio label, + fieldset[disabled] .checkbox label { + cursor: not-allowed; + } + .form-control-static { + min-height: 34px; + padding-top: 7px; + padding-bottom: 7px; + margin-bottom: 0; + } + .form-control-static.input-lg, + .form-control-static.input-sm { + padding-right: 0; + padding-left: 0; + } + .input-sm { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; + } + select.input-sm { + height: 30px; + line-height: 30px; + } + textarea.input-sm, + select[multiple].input-sm { + height: auto; + } + .form-group-sm .form-control { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; + } + select.form-group-sm .form-control { + height: 30px; + line-height: 30px; + } + textarea.form-group-sm .form-control, + select[multiple].form-group-sm .form-control { + height: auto; + } + .form-group-sm .form-control-static { + height: 30px; + min-height: 32px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + } + .input-lg { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; + } + select.input-lg { + height: 46px; + line-height: 46px; + } + textarea.input-lg, + select[multiple].input-lg { + height: auto; + } + .form-group-lg .form-control { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; + } + select.form-group-lg .form-control { + height: 46px; + line-height: 46px; + } + textarea.form-group-lg .form-control, + select[multiple].form-group-lg .form-control { + height: auto; + } + .form-group-lg .form-control-static { + height: 46px; + min-height: 38px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + } + .has-feedback { + position: relative; + } + .has-feedback .form-control { + padding-right: 42.5px; + } + .form-control-feedback { + position: absolute; + top: 0; + right: 0; + z-index: 2; + display: block; + width: 34px; + height: 34px; + line-height: 34px; + text-align: center; + pointer-events: none; + } + .input-lg + .form-control-feedback { + width: 46px; + height: 46px; + line-height: 46px; + } + .input-sm + .form-control-feedback { + width: 30px; + height: 30px; + line-height: 30px; + } + .has-success .help-block, + .has-success .control-label, + .has-success .radio, + .has-success .checkbox, + .has-success .radio-inline, + .has-success .checkbox-inline, + .has-success.radio label, + .has-success.checkbox label, + .has-success.radio-inline label, + .has-success.checkbox-inline label { + color: #3c763d; + } + .has-success .form-control { + border-color: #3c763d; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + } + .has-success .form-control:focus { + border-color: #2b542c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; + } + .has-success .input-group-addon { + color: #3c763d; + background-color: #dff0d8; + border-color: #3c763d; + } + .has-success .form-control-feedback { + color: #3c763d; + } + .has-warning .help-block, + .has-warning .control-label, + .has-warning .radio, + .has-warning .checkbox, + .has-warning .radio-inline, + .has-warning .checkbox-inline, + .has-warning.radio label, + .has-warning.checkbox label, + .has-warning.radio-inline label, + .has-warning.checkbox-inline label { + color: #8a6d3b; + } + .has-warning .form-control { + border-color: #8a6d3b; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + } + .has-warning .form-control:focus { + border-color: #66512c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; + } + .has-warning .input-group-addon { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #8a6d3b; + } + .has-warning .form-control-feedback { + color: #8a6d3b; + } + .has-error .help-block, + .has-error .control-label, + .has-error .radio, + .has-error .checkbox, + .has-error .radio-inline, + .has-error .checkbox-inline, + .has-error.radio label, + .has-error.checkbox label, + .has-error.radio-inline label, + .has-error.checkbox-inline label { + color: #a94442; + } + .has-error .form-control { + border-color: #a94442; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + } + .has-error .form-control:focus { + border-color: #843534; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; + } + .has-error .input-group-addon { + color: #a94442; + background-color: #f2dede; + border-color: #a94442; + } + .has-error .form-control-feedback { + color: #a94442; + } + .has-feedback label ~ .form-control-feedback { + top: 25px; + } + .has-feedback label.sr-only ~ .form-control-feedback { + top: 0; + } + .help-block { + display: block; + margin-top: 5px; + margin-bottom: 10px; + color: #737373; + } + @media (min-width: 768px) { + .form-inline .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .form-inline .form-control-static { + display: inline-block; + } + .form-inline .input-group { + display: inline-table; + vertical-align: middle; + } + .form-inline .input-group .input-group-addon, + .form-inline .input-group .input-group-btn, + .form-inline .input-group .form-control { + width: auto; + } + .form-inline .input-group > .form-control { + width: 100%; + } + .form-inline .control-label { + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .radio, + .form-inline .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .radio label, + .form-inline .checkbox label { + padding-left: 0; + } + .form-inline .radio input[type="radio"], + .form-inline .checkbox input[type="checkbox"] { + position: relative; + margin-left: 0; + } + .form-inline .has-feedback .form-control-feedback { + top: 0; + } + } + .form-horizontal .radio, + .form-horizontal .checkbox, + .form-horizontal .radio-inline, + .form-horizontal .checkbox-inline { + padding-top: 7px; + margin-top: 0; + margin-bottom: 0; + } + .form-horizontal .radio, + .form-horizontal .checkbox { + min-height: 27px; + } + .form-horizontal .form-group { + margin-right: -15px; + margin-left: -15px; + } + @media (min-width: 768px) { + .form-horizontal .control-label { + padding-top: 7px; + margin-bottom: 0; + text-align: right; + } + } + .form-horizontal .has-feedback .form-control-feedback { + right: 15px; + } + @media (min-width: 768px) { + .form-horizontal .form-group-lg .control-label { + padding-top: 14.333333px; + } + } + @media (min-width: 768px) { + .form-horizontal .form-group-sm .control-label { + padding-top: 6px; + } + } + .btn { + display: inline-block; + padding: 6px 12px; + margin-bottom: 0; + font-size: 14px; + font-weight: normal; + line-height: 1.42857143; + text-align: center; + white-space: nowrap; + vertical-align: middle; + -ms-touch-action: manipulation; + touch-action: manipulation; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-image: none; + border: 1px solid transparent; + border-radius: 4px; + } + .btn:focus, + .btn:active:focus, + .btn.active:focus, + .btn.focus, + .btn:active.focus, + .btn.active.focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; + } + .btn:hover, + .btn:focus, + .btn.focus { + color: #333; + text-decoration: none; + } + .btn:active, + .btn.active { + background-image: none; + outline: 0; + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + } + .btn.disabled, + .btn[disabled], + fieldset[disabled] .btn { + pointer-events: none; + cursor: not-allowed; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + box-shadow: none; + opacity: 0.65; + } + .btn-default { + color: #333; + background-color: #fff; + border-color: #ccc; + } + .btn-default:hover, + .btn-default:focus, + .btn-default.focus, + .btn-default:active, + .btn-default.active, + .open > .dropdown-toggle.btn-default { + color: #333; + background-color: #e6e6e6; + border-color: #adadad; + } + .btn-default:active, + .btn-default.active, + .open > .dropdown-toggle.btn-default { + background-image: none; + } + .btn-default.disabled, + .btn-default[disabled], + fieldset[disabled] .btn-default, + .btn-default.disabled:hover, + .btn-default[disabled]:hover, + fieldset[disabled] .btn-default:hover, + .btn-default.disabled:focus, + .btn-default[disabled]:focus, + fieldset[disabled] .btn-default:focus, + .btn-default.disabled.focus, + .btn-default[disabled].focus, + fieldset[disabled] .btn-default.focus, + .btn-default.disabled:active, + .btn-default[disabled]:active, + fieldset[disabled] .btn-default:active, + .btn-default.disabled.active, + .btn-default[disabled].active, + fieldset[disabled] .btn-default.active { + background-color: #fff; + border-color: #ccc; + } + .btn-default .badge { + color: #fff; + background-color: #333; + } + .btn-primary { + color: #fff; + background-color: #337ab7; + border-color: #2e6da4; + } + .btn-primary:hover, + .btn-primary:focus, + .btn-primary.focus, + .btn-primary:active, + .btn-primary.active, + .open > .dropdown-toggle.btn-primary { + color: #fff; + background-color: #286090; + border-color: #204d74; + } + .btn-primary:active, + .btn-primary.active, + .open > .dropdown-toggle.btn-primary { + background-image: none; + } + .btn-primary.disabled, + .btn-primary[disabled], + fieldset[disabled] .btn-primary, + .btn-primary.disabled:hover, + .btn-primary[disabled]:hover, + fieldset[disabled] .btn-primary:hover, + .btn-primary.disabled:focus, + .btn-primary[disabled]:focus, + fieldset[disabled] .btn-primary:focus, + .btn-primary.disabled.focus, + .btn-primary[disabled].focus, + fieldset[disabled] .btn-primary.focus, + .btn-primary.disabled:active, + .btn-primary[disabled]:active, + fieldset[disabled] .btn-primary:active, + .btn-primary.disabled.active, + .btn-primary[disabled].active, + fieldset[disabled] .btn-primary.active { + background-color: #337ab7; + border-color: #2e6da4; + } + .btn-primary .badge { + color: #337ab7; + background-color: #fff; + } + .btn-success { + color: #fff; + background-color: #5cb85c; + border-color: #4cae4c; + } + .btn-success:hover, + .btn-success:focus, + .btn-success.focus, + .btn-success:active, + .btn-success.active, + .open > .dropdown-toggle.btn-success { + color: #fff; + background-color: #449d44; + border-color: #398439; + } + .btn-success:active, + .btn-success.active, + .open > .dropdown-toggle.btn-success { + background-image: none; + } + .btn-success.disabled, + .btn-success[disabled], + fieldset[disabled] .btn-success, + .btn-success.disabled:hover, + .btn-success[disabled]:hover, + fieldset[disabled] .btn-success:hover, + .btn-success.disabled:focus, + .btn-success[disabled]:focus, + fieldset[disabled] .btn-success:focus, + .btn-success.disabled.focus, + .btn-success[disabled].focus, + fieldset[disabled] .btn-success.focus, + .btn-success.disabled:active, + .btn-success[disabled]:active, + fieldset[disabled] .btn-success:active, + .btn-success.disabled.active, + .btn-success[disabled].active, + fieldset[disabled] .btn-success.active { + background-color: #5cb85c; + border-color: #4cae4c; + } + .btn-success .badge { + color: #5cb85c; + background-color: #fff; + } + .btn-info { + color: #fff; + background-color: #5bc0de; + border-color: #46b8da; + } + .btn-info:hover, + .btn-info:focus, + .btn-info.focus, + .btn-info:active, + .btn-info.active, + .open > .dropdown-toggle.btn-info { + color: #fff; + background-color: #31b0d5; + border-color: #269abc; + } + .btn-info:active, + .btn-info.active, + .open > .dropdown-toggle.btn-info { + background-image: none; + } + .btn-info.disabled, + .btn-info[disabled], + fieldset[disabled] .btn-info, + .btn-info.disabled:hover, + .btn-info[disabled]:hover, + fieldset[disabled] .btn-info:hover, + .btn-info.disabled:focus, + .btn-info[disabled]:focus, + fieldset[disabled] .btn-info:focus, + .btn-info.disabled.focus, + .btn-info[disabled].focus, + fieldset[disabled] .btn-info.focus, + .btn-info.disabled:active, + .btn-info[disabled]:active, + fieldset[disabled] .btn-info:active, + .btn-info.disabled.active, + .btn-info[disabled].active, + fieldset[disabled] .btn-info.active { + background-color: #5bc0de; + border-color: #46b8da; + } + .btn-info .badge { + color: #5bc0de; + background-color: #fff; + } + .btn-warning { + color: #fff; + background-color: #f0ad4e; + border-color: #eea236; + } + .btn-warning:hover, + .btn-warning:focus, + .btn-warning.focus, + .btn-warning:active, + .btn-warning.active, + .open > .dropdown-toggle.btn-warning { + color: #fff; + background-color: #ec971f; + border-color: #d58512; + } + .btn-warning:active, + .btn-warning.active, + .open > .dropdown-toggle.btn-warning { + background-image: none; + } + .btn-warning.disabled, + .btn-warning[disabled], + fieldset[disabled] .btn-warning, + .btn-warning.disabled:hover, + .btn-warning[disabled]:hover, + fieldset[disabled] .btn-warning:hover, + .btn-warning.disabled:focus, + .btn-warning[disabled]:focus, + fieldset[disabled] .btn-warning:focus, + .btn-warning.disabled.focus, + .btn-warning[disabled].focus, + fieldset[disabled] .btn-warning.focus, + .btn-warning.disabled:active, + .btn-warning[disabled]:active, + fieldset[disabled] .btn-warning:active, + .btn-warning.disabled.active, + .btn-warning[disabled].active, + fieldset[disabled] .btn-warning.active { + background-color: #f0ad4e; + border-color: #eea236; + } + .btn-warning .badge { + color: #f0ad4e; + background-color: #fff; + } + .btn-danger { + color: #fff; + background-color: #d9534f; + border-color: #d43f3a; + } + .btn-danger:hover, + .btn-danger:focus, + .btn-danger.focus, + .btn-danger:active, + .btn-danger.active, + .open > .dropdown-toggle.btn-danger { + color: #fff; + background-color: #c9302c; + border-color: #ac2925; + } + .btn-danger:active, + .btn-danger.active, + .open > .dropdown-toggle.btn-danger { + background-image: none; + } + .btn-danger.disabled, + .btn-danger[disabled], + fieldset[disabled] .btn-danger, + .btn-danger.disabled:hover, + .btn-danger[disabled]:hover, + fieldset[disabled] .btn-danger:hover, + .btn-danger.disabled:focus, + .btn-danger[disabled]:focus, + fieldset[disabled] .btn-danger:focus, + .btn-danger.disabled.focus, + .btn-danger[disabled].focus, + fieldset[disabled] .btn-danger.focus, + .btn-danger.disabled:active, + .btn-danger[disabled]:active, + fieldset[disabled] .btn-danger:active, + .btn-danger.disabled.active, + .btn-danger[disabled].active, + fieldset[disabled] .btn-danger.active { + background-color: #d9534f; + border-color: #d43f3a; + } + .btn-danger .badge { + color: #d9534f; + background-color: #fff; + } + .btn-link { + font-weight: normal; + color: #337ab7; + border-radius: 0; + } + .btn-link, + .btn-link:active, + .btn-link.active, + .btn-link[disabled], + fieldset[disabled] .btn-link { + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; + } + .btn-link, + .btn-link:hover, + .btn-link:focus, + .btn-link:active { + border-color: transparent; + } + .btn-link:hover, + .btn-link:focus { + color: #23527c; + text-decoration: underline; + background-color: transparent; + } + .btn-link[disabled]:hover, + fieldset[disabled] .btn-link:hover, + .btn-link[disabled]:focus, + fieldset[disabled] .btn-link:focus { + color: #777; + text-decoration: none; + } + .btn-lg, + .btn-group-lg > .btn { + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; + } + .btn-sm, + .btn-group-sm > .btn { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; + } + .btn-xs, + .btn-group-xs > .btn { + padding: 1px 5px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; + } + //.btn-block { + // display: block; + // width: 100%; + //} + //.btn-block + .btn-block { + // margin-top: 5px; + //} + //input[type='submit'].btn-block, + //input[type='reset'].btn-block, + //input[type='button'].btn-block { + // width: 100%; + //} + .fade { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + -o-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; + } + .fade.in { + opacity: 1; + } + .collapse { + display: none; + } + .collapse.in { + display: block; + } + tr.collapse.in { + display: table-row; + } + tbody.collapse.in { + display: table-row-group; + } + .collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition-timing-function: ease; + -o-transition-timing-function: ease; + transition-timing-function: ease; + -webkit-transition-duration: 0.35s; + -o-transition-duration: 0.35s; + transition-duration: 0.35s; + -webkit-transition-property: height, visibility; + -o-transition-property: height, visibility; + transition-property: height, visibility; + } + .caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: 4px dashed; + border-right: 4px solid transparent; + border-left: 4px solid transparent; + } + .dropup, + .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; + font-size: 14px; + text-align: left; + list-style: none; + background-color: #fff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 4px; + -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + } + .dropdown-menu.pull-right { + right: 0; + left: auto; + } + .dropdown-menu .divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; + } + .dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 1.42857143; + color: #333; + white-space: nowrap; + } + .dropdown-menu > li > a:hover, + .dropdown-menu > li > a:focus { + color: #262626; + text-decoration: none; + background-color: #f5f5f5; + } + .dropdown-menu > .active > a, + .dropdown-menu > .active > a:hover, + .dropdown-menu > .active > a:focus { + color: #fff; + text-decoration: none; + background-color: #337ab7; + outline: 0; + } + .dropdown-menu > .disabled > a, + .dropdown-menu > .disabled > a:hover, + .dropdown-menu > .disabled > a:focus { + color: #777; + } + .dropdown-menu > .disabled > a:hover, + .dropdown-menu > .disabled > a:focus { + text-decoration: none; + cursor: not-allowed; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + } + .open > .dropdown-menu { + display: block; + } + .open > a { + outline: 0; + } + .dropdown-menu-right { + right: 0; + left: auto; + } + .dropdown-menu-left { + right: auto; + left: 0; + } + .dropdown-header { + display: block; + padding: 3px 20px; + font-size: 12px; + line-height: 1.42857143; + color: #777; + white-space: nowrap; + } + .dropdown-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 990; + } + .pull-right > .dropdown-menu { + right: 0; + left: auto; + } + .dropup .caret, + .navbar-fixed-bottom .dropdown .caret { + content: ""; + border-top: 0; + border-bottom: 4px solid; + } + .dropup .dropdown-menu, + .navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 2px; + } + @media (min-width: 768px) { + .navbar-right .dropdown-menu { + right: 0; + left: auto; + } + .navbar-right .dropdown-menu-left { + right: auto; + left: 0; + } + } + .btn-group, + .btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle; + } + .btn-group > .btn, + .btn-group-vertical > .btn { + position: relative; + float: left; + } + .btn-group > .btn:hover, + .btn-group-vertical > .btn:hover, + .btn-group > .btn:focus, + .btn-group-vertical > .btn:focus, + .btn-group > .btn:active, + .btn-group-vertical > .btn:active, + .btn-group > .btn.active, + .btn-group-vertical > .btn.active { + z-index: 2; + } + .btn-group .btn + .btn, + .btn-group .btn + .btn-group, + .btn-group .btn-group + .btn, + .btn-group .btn-group + .btn-group { + margin-left: -1px; + } + .btn-toolbar { + margin-left: -5px; + } + .btn-toolbar .btn-group, + .btn-toolbar .input-group { + float: left; + } + .btn-toolbar > .btn, + .btn-toolbar > .btn-group, + .btn-toolbar > .input-group { + margin-left: 5px; + } + .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0; + } + .btn-group > .btn:first-child { + margin-left: 0; + } + .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + .btn-group > .btn:last-child:not(:first-child), + .btn-group > .dropdown-toggle:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + .btn-group > .btn-group { + float: left; + } + .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; + } + .btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child, + .btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + .btn-group .dropdown-toggle:active, + .btn-group.open .dropdown-toggle { + outline: 0; + } + .btn-group > .btn + .dropdown-toggle { + padding-right: 8px; + padding-left: 8px; + } + .btn-group > .btn-lg + .dropdown-toggle { + padding-right: 12px; + padding-left: 12px; + } + .btn-group.open .dropdown-toggle { + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + } + .btn-group.open .dropdown-toggle.btn-link { + -webkit-box-shadow: none; + box-shadow: none; + } + .btn .caret { + margin-left: 0; + } + .btn-lg .caret { + border-width: 5px 5px 0; + border-bottom-width: 0; + } + .dropup .btn-lg .caret { + border-width: 0 5px 5px; + } + .btn-group-vertical > .btn, + .btn-group-vertical > .btn-group, + .btn-group-vertical > .btn-group > .btn { + display: block; + float: none; + width: 100%; + max-width: 100%; + } + .btn-group-vertical > .btn-group > .btn { + float: none; + } + .btn-group-vertical > .btn + .btn, + .btn-group-vertical > .btn + .btn-group, + .btn-group-vertical > .btn-group + .btn, + .btn-group-vertical > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0; + } + .btn-group-vertical > .btn:not(:first-child):not(:last-child) { + border-radius: 0; + } + .btn-group-vertical > .btn:first-child:not(:last-child) { + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; + } + .btn-group-vertical > .btn:last-child:not(:first-child) { + border-top-left-radius: 0; + border-top-right-radius: 0; + border-bottom-left-radius: 4px; + } + .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-left-radius: 0; + border-top-right-radius: 0; + } + .btn-group-justified { + display: table; + width: 100%; + table-layout: fixed; + border-collapse: separate; + } + .btn-group-justified > .btn, + .btn-group-justified > .btn-group { + display: table-cell; + float: none; + width: 1%; + } + .btn-group-justified > .btn-group .btn { + width: 100%; + } + .btn-group-justified > .btn-group .dropdown-menu { + left: auto; + } + [data-toggle="buttons"] > .btn input[type="radio"], + [data-toggle="buttons"] > .btn-group > .btn input[type="radio"], + [data-toggle="buttons"] > .btn input[type="checkbox"], + [data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; + } + .input-group { + position: relative; + display: table; + border-collapse: separate; + } + .input-group[class*="col-"] { + float: none; + padding-right: 0; + padding-left: 0; + } + .input-group .form-control { + position: relative; + z-index: 2; + float: left; + width: 100%; + margin-bottom: 0; + } + .input-group-lg > .form-control, + .input-group-lg > .input-group-addon, + .input-group-lg > .input-group-btn > .btn { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; + } + select.input-group-lg > .form-control, + select.input-group-lg > .input-group-addon, + select.input-group-lg > .input-group-btn > .btn { + height: 46px; + line-height: 46px; + } + textarea.input-group-lg > .form-control, + textarea.input-group-lg > .input-group-addon, + textarea.input-group-lg > .input-group-btn > .btn, + select[multiple].input-group-lg > .form-control, + select[multiple].input-group-lg > .input-group-addon, + select[multiple].input-group-lg > .input-group-btn > .btn { + height: auto; + } + .input-group-sm > .form-control, + .input-group-sm > .input-group-addon, + .input-group-sm > .input-group-btn > .btn { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; + } + select.input-group-sm > .form-control, + select.input-group-sm > .input-group-addon, + select.input-group-sm > .input-group-btn > .btn { + height: 30px; + line-height: 30px; + } + textarea.input-group-sm > .form-control, + textarea.input-group-sm > .input-group-addon, + textarea.input-group-sm > .input-group-btn > .btn, + select[multiple].input-group-sm > .form-control, + select[multiple].input-group-sm > .input-group-addon, + select[multiple].input-group-sm > .input-group-btn > .btn { + height: auto; + } + .input-group-addon, + .input-group-btn, + .input-group .form-control { + display: table-cell; + } + .input-group-addon:not(:first-child):not(:last-child), + .input-group-btn:not(:first-child):not(:last-child), + .input-group .form-control:not(:first-child):not(:last-child) { + border-radius: 0; + } + .input-group-addon, + .input-group-btn { + width: 1%; + white-space: nowrap; + vertical-align: middle; + } + .input-group-addon { + padding: 6px 12px; + font-size: 14px; + font-weight: normal; + line-height: 1; + color: #555; + text-align: center; + background-color: #eee; + border: 1px solid #ccc; + border-radius: 4px; + } + .input-group-addon.input-sm { + padding: 5px 10px; + font-size: 12px; + border-radius: 3px; + } + .input-group-addon.input-lg { + padding: 10px 16px; + font-size: 18px; + border-radius: 6px; + } + .input-group-addon input[type="radio"], + .input-group-addon input[type="checkbox"] { + margin-top: 0; + } + .input-group .form-control:first-child, + .input-group-addon:first-child, + .input-group-btn:first-child > .btn, + .input-group-btn:first-child > .btn-group > .btn, + .input-group-btn:first-child > .dropdown-toggle, + .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), + .input-group-btn:last-child > .btn-group:not(:last-child) > .btn { + border-top-right-radius: 0; + border-bottom-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-top-left-radius: 0; + border-bottom-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 { + padding-left: 0; + margin-bottom: 0; + list-style: none; + } + .nav > li { + position: relative; + display: block; + } + .nav > li > a { + position: relative; + display: block; + padding: 10px 15px; + } + .nav > li > a:hover, + .nav > li > a:focus { + text-decoration: none; + background-color: #eee; + } + .nav > li.disabled > a { + color: #777; + } + .nav > li.disabled > a:hover, + .nav > li.disabled > a:focus { + color: #777; + text-decoration: none; + cursor: not-allowed; + background-color: transparent; + } + .nav .open > a, + .nav .open > a:hover, + .nav .open > a:focus { + background-color: #eee; + border-color: #337ab7; + } + .nav .nav-divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; + } + .nav > li > a > img { + max-width: none; + } + .nav-tabs { + border-bottom: 1px solid #ddd; + } + .nav-tabs > li { + float: left; + margin-bottom: -1px; + } + .nav-tabs > li > a { + margin-right: 2px; + line-height: 1.42857143; + border: 1px solid transparent; + border-radius: 4px 4px 0 0; + } + .nav-tabs > li > a:hover { + border-color: #eee #eee #ddd; + } + .nav-tabs > li.active > a, + .nav-tabs > li.active > a:hover, + .nav-tabs > li.active > a:focus { + color: #555; + cursor: default; + background-color: #fff; + border: 1px solid #ddd; + border-bottom-color: transparent; + } + .nav-tabs.nav-justified { + width: 100%; + border-bottom: 0; + } + .nav-tabs.nav-justified > li { + float: none; + } + .nav-tabs.nav-justified > li > a { + margin-bottom: 5px; + text-align: center; + } + .nav-tabs.nav-justified > .dropdown .dropdown-menu { + top: auto; + left: auto; + } + @media (min-width: 768px) { + .nav-tabs.nav-justified > li { + display: table-cell; + width: 1%; + } + .nav-tabs.nav-justified > li > a { + margin-bottom: 0; + } + } + .nav-tabs.nav-justified > li > a { + margin-right: 0; + border-radius: 4px; + } + .nav-tabs.nav-justified > .active > a, + .nav-tabs.nav-justified > .active > a:hover, + .nav-tabs.nav-justified > .active > a:focus { + border: 1px solid #ddd; + } + @media (min-width: 768px) { + .nav-tabs.nav-justified > li > a { + border-bottom: 1px solid #ddd; + border-radius: 4px 4px 0 0; + } + .nav-tabs.nav-justified > .active > a, + .nav-tabs.nav-justified > .active > a:hover, + .nav-tabs.nav-justified > .active > a:focus { + border-bottom-color: #fff; + } + } + .nav-pills > li { + float: left; + } + .nav-pills > li > a { + border-radius: 4px; + } + .nav-pills > li + li { + margin-left: 2px; + } + .nav-pills > li.active > a, + .nav-pills > li.active > a:hover, + .nav-pills > li.active > a:focus { + color: #fff; + background-color: #337ab7; + } + .nav-stacked > li { + float: none; + } + .nav-stacked > li + li { + margin-top: 2px; + margin-left: 0; + } + .nav-justified { + width: 100%; + } + .nav-justified > li { + float: none; + } + .nav-justified > li > a { + margin-bottom: 5px; + text-align: center; + } + .nav-justified > .dropdown .dropdown-menu { + top: auto; + left: auto; + } + @media (min-width: 768px) { + .nav-justified > li { + display: table-cell; + width: 1%; + } + .nav-justified > li > a { + margin-bottom: 0; + } + } + .nav-tabs-justified { + border-bottom: 0; + } + .nav-tabs-justified > li > a { + margin-right: 0; + border-radius: 4px; + } + .nav-tabs-justified > .active > a, + .nav-tabs-justified > .active > a:hover, + .nav-tabs-justified > .active > a:focus { + border: 1px solid #ddd; + } + @media (min-width: 768px) { + .nav-tabs-justified > li > a { + border-bottom: 1px solid #ddd; + border-radius: 4px 4px 0 0; + } + .nav-tabs-justified > .active > a, + .nav-tabs-justified > .active > a:hover, + .nav-tabs-justified > .active > a:focus { + border-bottom-color: #fff; + } + } + .tab-content > .tab-pane { + display: none; + } + .tab-content > .active { + display: block; + } + .nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0; + } + .navbar { + position: relative; + min-height: 50px; + margin-bottom: 20px; + border: 1px solid transparent; + } + @media (min-width: 768px) { + .navbar { + border-radius: 4px; + } + } + @media (min-width: 768px) { + .navbar-header { + float: left; + } + } + .navbar-collapse { + padding-right: 15px; + padding-left: 15px; + overflow-x: visible; + -webkit-overflow-scrolling: touch; + border-top: 1px solid transparent; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); + } + .navbar-collapse.in { + overflow-y: auto; + } + @media (min-width: 768px) { + .navbar-collapse { + width: auto; + border-top: 0; + -webkit-box-shadow: none; + 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-right: 0; + padding-left: 0; + } + } + .navbar-fixed-top .navbar-collapse, + .navbar-fixed-bottom .navbar-collapse { + max-height: 340px; + } + @media (max-device-width: 480px) and (orientation: landscape) { + .navbar-fixed-top .navbar-collapse, + .navbar-fixed-bottom .navbar-collapse { + max-height: 200px; + } + } + .container > .navbar-header, + .container-fluid > .navbar-header, + .container > .navbar-collapse, + .container-fluid > .navbar-collapse { + margin-right: -15px; + margin-left: -15px; + } + @media (min-width: 768px) { + .container > .navbar-header, + .container-fluid > .navbar-header, + .container > .navbar-collapse, + .container-fluid > .navbar-collapse { + margin-right: 0; + margin-left: 0; + } + } + .navbar-static-top { + z-index: 1000; + border-width: 0 0 1px; + } + @media (min-width: 768px) { + .navbar-static-top { + border-radius: 0; + } + } + .navbar-fixed-top, + .navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; + } + @media (min-width: 768px) { + .navbar-fixed-top, + .navbar-fixed-bottom { + border-radius: 0; + } + } + .navbar-fixed-top { + top: 0; + border-width: 0 0 1px; + } + .navbar-fixed-bottom { + bottom: 0; + margin-bottom: 0; + border-width: 1px 0 0; + } + .navbar-brand { + float: left; + height: 50px; + padding: 15px 15px; + font-size: 18px; + line-height: 20px; + } + .navbar-brand:hover, + .navbar-brand:focus { + text-decoration: none; + } + .navbar-brand > img { + display: block; + } + @media (min-width: 768px) { + .navbar > .container .navbar-brand, + .navbar > .container-fluid .navbar-brand { + margin-left: -15px; + } + } + .navbar-toggle { + position: relative; + float: right; + padding: 9px 10px; + margin-top: 8px; + margin-right: 15px; + margin-bottom: 8px; + background-color: transparent; + background-image: none; + border: 1px solid transparent; + border-radius: 4px; + } + .navbar-toggle:focus { + outline: 0; + } + .navbar-toggle .icon-bar { + display: block; + width: 22px; + height: 2px; + border-radius: 1px; + } + .navbar-toggle .icon-bar + .icon-bar { + margin-top: 4px; + } + @media (min-width: 768px) { + .navbar-toggle { + display: none; + } + } + .navbar-nav { + margin: 7.5px -15px; + } + .navbar-nav > li > a { + padding-top: 10px; + padding-bottom: 10px; + line-height: 20px; + } + @media (max-width: 767px) { + .navbar-nav .open .dropdown-menu { + position: static; + float: none; + width: auto; + margin-top: 0; + background-color: transparent; + border: 0; + -webkit-box-shadow: none; + box-shadow: none; + } + .navbar-nav .open .dropdown-menu > li > a, + .navbar-nav .open .dropdown-menu .dropdown-header { + padding: 5px 15px 5px 25px; + } + .navbar-nav .open .dropdown-menu > li > a { + line-height: 20px; + } + .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-nav .open .dropdown-menu > li > a:focus { + background-image: none; + } + } + @media (min-width: 768px) { + .navbar-nav { + float: left; + margin: 0; + } + .navbar-nav > li { + float: left; + } + .navbar-nav > li > a { + padding-top: 15px; + padding-bottom: 15px; + } + } + .navbar-form { + padding: 10px 15px; + margin-top: 8px; + margin-right: -15px; + margin-bottom: 8px; + margin-left: -15px; + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + } + @media (min-width: 768px) { + .navbar-form .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .navbar-form .form-control-static { + display: inline-block; + } + .navbar-form .input-group { + display: inline-table; + vertical-align: middle; + } + .navbar-form .input-group .input-group-addon, + .navbar-form .input-group .input-group-btn, + .navbar-form .input-group .form-control { + width: auto; + } + .navbar-form .input-group > .form-control { + width: 100%; + } + .navbar-form .control-label { + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .radio, + .navbar-form .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .radio label, + .navbar-form .checkbox label { + padding-left: 0; + } + .navbar-form .radio input[type="radio"], + .navbar-form .checkbox input[type="checkbox"] { + position: relative; + margin-left: 0; + } + .navbar-form .has-feedback .form-control-feedback { + top: 0; + } + } + @media (max-width: 767px) { + .navbar-form .form-group { + margin-bottom: 5px; + } + .navbar-form .form-group:last-child { + margin-bottom: 0; + } + } + @media (min-width: 768px) { + .navbar-form { + width: auto; + padding-top: 0; + padding-bottom: 0; + margin-right: 0; + margin-left: 0; + border: 0; + -webkit-box-shadow: none; + box-shadow: none; + } + } + .navbar-nav > li > .dropdown-menu { + margin-top: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; + } + .navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { + margin-bottom: 0; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; + } + .navbar-btn { + margin-top: 8px; + margin-bottom: 8px; + } + .navbar-btn.btn-sm { + margin-top: 10px; + margin-bottom: 10px; + } + .navbar-btn.btn-xs { + margin-top: 14px; + margin-bottom: 14px; + } + .navbar-text { + margin-top: 15px; + margin-bottom: 15px; + } + @media (min-width: 768px) { + .navbar-text { + float: left; + margin-right: 15px; + margin-left: 15px; + } + } + @media (min-width: 768px) { + .navbar-left { + float: left !important; + } + .navbar-right { + float: right !important; + margin-right: -15px; + } + .navbar-right ~ .navbar-right { + margin-right: 0; + } + } + .navbar-default { + background-color: #f8f8f8; + border-color: #e7e7e7; + } + .navbar-default .navbar-brand { + color: #777; + } + .navbar-default .navbar-brand:hover, + .navbar-default .navbar-brand:focus { + color: #5e5e5e; + background-color: transparent; + } + .navbar-default .navbar-text { + color: #777; + } + .navbar-default .navbar-nav > li > a { + color: #777; + } + .navbar-default .navbar-nav > li > a:hover, + .navbar-default .navbar-nav > li > a:focus { + color: #333; + background-color: transparent; + } + .navbar-default .navbar-nav > .active > a, + .navbar-default .navbar-nav > .active > a:hover, + .navbar-default .navbar-nav > .active > a:focus { + color: #555; + background-color: #e7e7e7; + } + .navbar-default .navbar-nav > .disabled > a, + .navbar-default .navbar-nav > .disabled > a:hover, + .navbar-default .navbar-nav > .disabled > a:focus { + color: #ccc; + background-color: transparent; + } + .navbar-default .navbar-toggle { + border-color: #ddd; + } + .navbar-default .navbar-toggle:hover, + .navbar-default .navbar-toggle:focus { + background-color: #ddd; + } + .navbar-default .navbar-toggle .icon-bar { + background-color: #888; + } + .navbar-default .navbar-collapse, + .navbar-default .navbar-form { + border-color: #e7e7e7; + } + .navbar-default .navbar-nav > .open > a, + .navbar-default .navbar-nav > .open > a:hover, + .navbar-default .navbar-nav > .open > a:focus { + color: #555; + background-color: #e7e7e7; + } + @media (max-width: 767px) { + .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: #333; + 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: #555; + background-color: #e7e7e7; + } + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #ccc; + background-color: transparent; + } + } + .navbar-default .navbar-link { + color: #777; + } + .navbar-default .navbar-link:hover { + color: #333; + } + .navbar-default .btn-link { + color: #777; + } + .navbar-default .btn-link:hover, + .navbar-default .btn-link:focus { + color: #333; + } + .navbar-default .btn-link[disabled]:hover, + fieldset[disabled] .navbar-default .btn-link:hover, + .navbar-default .btn-link[disabled]:focus, + fieldset[disabled] .navbar-default .btn-link:focus { + color: #ccc; + } + .navbar-inverse { + background-color: #222; + border-color: #080808; + } + .navbar-inverse .navbar-brand { + color: #9d9d9d; + } + .navbar-inverse .navbar-brand:hover, + .navbar-inverse .navbar-brand:focus { + color: #fff; + background-color: transparent; + } + .navbar-inverse .navbar-text { + color: #9d9d9d; + } + .navbar-inverse .navbar-nav > li > a { + color: #9d9d9d; + } + .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: #080808; + } + .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 { + color: #fff; + background-color: #080808; + } + @media (max-width: 767px) { + .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { + border-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu .divider { + background-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { + color: #9d9d9d; + } + .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: #080808; + } + .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: #9d9d9d; + } + .navbar-inverse .navbar-link:hover { + color: #fff; + } + .navbar-inverse .btn-link { + color: #9d9d9d; + } + .navbar-inverse .btn-link:hover, + .navbar-inverse .btn-link:focus { + color: #fff; + } + .navbar-inverse .btn-link[disabled]:hover, + fieldset[disabled] .navbar-inverse .btn-link:hover, + .navbar-inverse .btn-link[disabled]:focus, + fieldset[disabled] .navbar-inverse .btn-link:focus { + color: #444; + } + .breadcrumb { + padding: 8px 15px; + margin-bottom: 20px; + list-style: none; + background-color: #f5f5f5; + border-radius: 4px; + } + .breadcrumb > li { + display: inline-block; + } + .breadcrumb > li + li:before { + padding: 0 5px; + color: #ccc; + content: "/\00a0"; + } + .breadcrumb > .active { + color: #777; + } + .pagination { + display: inline-block; + padding-left: 0; + margin: 20px 0; + border-radius: 4px; + } + .pagination > li { + display: inline; + } + .pagination > li > a, + .pagination > li > span { + position: relative; + float: left; + padding: 6px 12px; + margin-left: -1px; + line-height: 1.42857143; + color: #337ab7; + text-decoration: none; + background-color: #fff; + border: 1px solid #ddd; + } + .pagination > li:first-child > a, + .pagination > li:first-child > span { + margin-left: 0; + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; + } + .pagination > li:last-child > a, + .pagination > li:last-child > span { + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; + } + .pagination > li > a:hover, + .pagination > li > span:hover, + .pagination > li > a:focus, + .pagination > li > span:focus { + color: #23527c; + background-color: #eee; + border-color: #ddd; + } + .pagination > .active > a, + .pagination > .active > span, + .pagination > .active > a:hover, + .pagination > .active > span:hover, + .pagination > .active > a:focus, + .pagination > .active > span:focus { + z-index: 2; + color: #fff; + cursor: default; + background-color: #337ab7; + border-color: #337ab7; + } + .pagination > .disabled > span, + .pagination > .disabled > span:hover, + .pagination > .disabled > span:focus, + .pagination > .disabled > a, + .pagination > .disabled > a:hover, + .pagination > .disabled > a:focus { + color: #777; + cursor: not-allowed; + background-color: #fff; + border-color: #ddd; + } + .pagination-lg > li > a, + .pagination-lg > li > span { + padding: 10px 16px; + font-size: 18px; + } + .pagination-lg > li:first-child > a, + .pagination-lg > li:first-child > span { + border-top-left-radius: 6px; + border-bottom-left-radius: 6px; + } + .pagination-lg > li:last-child > a, + .pagination-lg > li:last-child > span { + border-top-right-radius: 6px; + border-bottom-right-radius: 6px; + } + .pagination-sm > li > a, + .pagination-sm > li > span { + padding: 5px 10px; + font-size: 12px; + } + .pagination-sm > li:first-child > a, + .pagination-sm > li:first-child > span { + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; + } + .pagination-sm > li:last-child > a, + .pagination-sm > li:last-child > span { + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; + } + .pager { + padding-left: 0; + margin: 20px 0; + text-align: center; + list-style: none; + } + .pager li { + display: inline; + } + .pager li > a, + .pager li > span { + display: inline-block; + padding: 5px 14px; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 15px; + } + .pager li > a:hover, + .pager li > a:focus { + text-decoration: none; + background-color: #eee; + } + .pager .next > a, + .pager .next > span { + float: right; + } + .pager .previous > a, + .pager .previous > span { + float: left; + } + .pager .disabled > a, + .pager .disabled > a:hover, + .pager .disabled > a:focus, + .pager .disabled > span { + color: #777; + cursor: not-allowed; + background-color: #fff; + } + .label { + display: inline; + padding: 0.2em 0.6em 0.3em; + font-size: 75%; + font-weight: bold; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: 0.25em; + } + a.label:hover, + a.label:focus { + color: #fff; + text-decoration: none; + cursor: pointer; + } + .label:empty { + display: none; + } + .btn .label { + position: relative; + top: -1px; + } + .label-default { + background-color: #777; + } + .label-default[href]:hover, + .label-default[href]:focus { + background-color: #5e5e5e; + } + .label-primary { + background-color: #337ab7; + } + .label-primary[href]:hover, + .label-primary[href]:focus { + background-color: #286090; + } + .label-success { + background-color: #5cb85c; + } + .label-success[href]:hover, + .label-success[href]:focus { + background-color: #449d44; + } + .label-info { + background-color: #5bc0de; + } + .label-info[href]:hover, + .label-info[href]:focus { + background-color: #31b0d5; + } + .label-warning { + background-color: #f0ad4e; + } + .label-warning[href]:hover, + .label-warning[href]:focus { + background-color: #ec971f; + } + .label-danger { + background-color: #d9534f; + } + .label-danger[href]:hover, + .label-danger[href]:focus { + background-color: #c9302c; + } + .badge { + display: inline-block; + min-width: 10px; + padding: 3px 7px; + font-size: 12px; + font-weight: bold; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + background-color: #777; + border-radius: 10px; + } + .badge:empty { + display: none; + } + .btn .badge { + position: relative; + top: -1px; + } + .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; + } + .list-group-item.active > .badge, + .nav-pills > .active > a > .badge { + color: #337ab7; + background-color: #fff; + } + .list-group-item > .badge { + float: right; + } + .list-group-item > .badge + .badge { + margin-right: 5px; + } + .nav-pills > li > a > .badge { + margin-left: 3px; + } + .jumbotron { + padding: 30px 15px; + margin-bottom: 30px; + color: inherit; + background-color: #eee; + } + .jumbotron h1, + .jumbotron .h1 { + color: inherit; + } + .jumbotron p { + margin-bottom: 15px; + font-size: 21px; + font-weight: 200; + } + .jumbotron > hr { + border-top-color: #d5d5d5; + } + .container .jumbotron, + .container-fluid .jumbotron { + border-radius: 6px; + } + .jumbotron .container { + max-width: 100%; + } + @media screen and (min-width: 768px) { + .jumbotron { + padding: 48px 0; + } + .container .jumbotron, + .container-fluid .jumbotron { + padding-right: 60px; + padding-left: 60px; + } + .jumbotron h1, + .jumbotron .h1 { + font-size: 63px; + } + } + .thumbnail { + display: block; + padding: 4px; + margin-bottom: 20px; + line-height: 1.42857143; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 4px; + -webkit-transition: border 0.2s ease-in-out; + -o-transition: border 0.2s ease-in-out; + transition: border 0.2s ease-in-out; + } + .thumbnail > img, + .thumbnail a > img { + margin-right: auto; + margin-left: auto; + } + a.thumbnail:hover, + a.thumbnail:focus, + a.thumbnail.active { + border-color: #337ab7; + } + .thumbnail .caption { + padding: 9px; + color: #333; + } + .alert { + padding: 15px; + margin-bottom: 20px; + border: 1px solid transparent; + border-radius: 4px; + } + .alert h4 { + margin-top: 0; + color: inherit; + } + .alert .alert-link { + font-weight: bold; + } + .alert > p, + .alert > ul { + margin-bottom: 0; + } + .alert > p + p { + margin-top: 5px; + } + .alert-dismissable, + .alert-dismissible { + padding-right: 35px; + } + .alert-dismissable .close, + .alert-dismissible .close { + position: relative; + top: -2px; + right: -21px; + color: inherit; + } + .alert-success { + color: #3c763d; + background-color: #dff0d8; + border-color: #d6e9c6; + } + .alert-success hr { + border-top-color: #c9e2b3; + } + .alert-success .alert-link { + color: #2b542c; + } + .alert-info { + color: #31708f; + background-color: #d9edf7; + border-color: #bce8f1; + } + .alert-info hr { + border-top-color: #a6e1ec; + } + .alert-info .alert-link { + color: #245269; + } + .alert-warning { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #faebcc; + } + .alert-warning hr { + border-top-color: #f7e1b5; + } + .alert-warning .alert-link { + color: #66512c; + } + .alert-danger { + color: #a94442; + background-color: #f2dede; + border-color: #ebccd1; + } + .alert-danger hr { + border-top-color: #e4b9c0; + } + .alert-danger .alert-link { + color: #843534; + } + //@-webkit-keyframes progress-bar-stripes { + // from { + // background-position: 40px 0; + // } + // to { + // background-position: 0 0; + // } + //} + //@-o-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 { + // height: 20px; + // margin-bottom: 20px; + // overflow: hidden; + // background-color: #f5f5f5; + // border-radius: 4px; + // -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + // box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + //} + //.progress-bar { + // float: left; + // width: 0; + // height: 100%; + // font-size: 12px; + // line-height: 20px; + // color: #fff; + // text-align: center; + // background-color: #337ab7; + // -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; + // -o-transition: width 0.6s ease; + // transition: width 0.6s ease; + //} + //.progress-striped .progress-bar, + //.progress-bar-striped { + // background-image: -webkit-linear-gradient( + // 45deg, + // rgba(255, 255, 255, 0.15) 25%, + // transparent 25%, + // transparent 50%, + // rgba(255, 255, 255, 0.15) 50%, + // rgba(255, 255, 255, 0.15) 75%, + // transparent 75%, + // transparent + // ); + // background-image: -o-linear-gradient( + // 45deg, + // rgba(255, 255, 255, 0.15) 25%, + // transparent 25%, + // transparent 50%, + // rgba(255, 255, 255, 0.15) 50%, + // rgba(255, 255, 255, 0.15) 75%, + // transparent 75%, + // transparent + // ); + // background-image: linear-gradient( + // 45deg, + // rgba(255, 255, 255, 0.15) 25%, + // transparent 25%, + // transparent 50%, + // rgba(255, 255, 255, 0.15) 50%, + // rgba(255, 255, 255, 0.15) 75%, + // transparent 75%, + // transparent + // ); + // -webkit-background-size: 40px 40px; + // background-size: 40px 40px; + //} + //.progress.active .progress-bar, + //.progress-bar.active { + // -webkit-animation: progress-bar-stripes 2s linear infinite; + // -o-animation: progress-bar-stripes 2s linear infinite; + // animation: progress-bar-stripes 2s linear infinite; + //} + //.progress-bar-success { + // background-color: #5cb85c; + //} + //.progress-striped .progress-bar-success { + // background-image: -webkit-linear-gradient( + // 45deg, + // rgba(255, 255, 255, 0.15) 25%, + // transparent 25%, + // transparent 50%, + // rgba(255, 255, 255, 0.15) 50%, + // rgba(255, 255, 255, 0.15) 75%, + // transparent 75%, + // transparent + // ); + // background-image: -o-linear-gradient( + // 45deg, + // rgba(255, 255, 255, 0.15) 25%, + // transparent 25%, + // transparent 50%, + // rgba(255, 255, 255, 0.15) 50%, + // rgba(255, 255, 255, 0.15) 75%, + // transparent 75%, + // transparent + // ); + // background-image: linear-gradient( + // 45deg, + // rgba(255, 255, 255, 0.15) 25%, + // transparent 25%, + // transparent 50%, + // rgba(255, 255, 255, 0.15) 50%, + // rgba(255, 255, 255, 0.15) 75%, + // transparent 75%, + // transparent + // ); + //} + //.progress-bar-info { + // background-color: #5bc0de; + //} + //.progress-striped .progress-bar-info { + // background-image: -webkit-linear-gradient( + // 45deg, + // rgba(255, 255, 255, 0.15) 25%, + // transparent 25%, + // transparent 50%, + // rgba(255, 255, 255, 0.15) 50%, + // rgba(255, 255, 255, 0.15) 75%, + // transparent 75%, + // transparent + // ); + // background-image: -o-linear-gradient( + // 45deg, + // rgba(255, 255, 255, 0.15) 25%, + // transparent 25%, + // transparent 50%, + // rgba(255, 255, 255, 0.15) 50%, + // rgba(255, 255, 255, 0.15) 75%, + // transparent 75%, + // transparent + // ); + // background-image: linear-gradient( + // 45deg, + // rgba(255, 255, 255, 0.15) 25%, + // transparent 25%, + // transparent 50%, + // rgba(255, 255, 255, 0.15) 50%, + // rgba(255, 255, 255, 0.15) 75%, + // transparent 75%, + // transparent + // ); + //} + //.progress-bar-warning { + // background-color: #f0ad4e; + //} + //.progress-striped .progress-bar-warning { + // background-image: -webkit-linear-gradient( + // 45deg, + // rgba(255, 255, 255, 0.15) 25%, + // transparent 25%, + // transparent 50%, + // rgba(255, 255, 255, 0.15) 50%, + // rgba(255, 255, 255, 0.15) 75%, + // transparent 75%, + // transparent + // ); + // background-image: -o-linear-gradient( + // 45deg, + // rgba(255, 255, 255, 0.15) 25%, + // transparent 25%, + // transparent 50%, + // rgba(255, 255, 255, 0.15) 50%, + // rgba(255, 255, 255, 0.15) 75%, + // transparent 75%, + // transparent + // ); + // background-image: linear-gradient( + // 45deg, + // rgba(255, 255, 255, 0.15) 25%, + // transparent 25%, + // transparent 50%, + // rgba(255, 255, 255, 0.15) 50%, + // rgba(255, 255, 255, 0.15) 75%, + // transparent 75%, + // transparent + // ); + //} + //.progress-bar-danger { + // background-color: #d9534f; + //} + //.progress-striped .progress-bar-danger { + // background-image: -webkit-linear-gradient( + // 45deg, + // rgba(255, 255, 255, 0.15) 25%, + // transparent 25%, + // transparent 50%, + // rgba(255, 255, 255, 0.15) 50%, + // rgba(255, 255, 255, 0.15) 75%, + // transparent 75%, + // transparent + // ); + // background-image: -o-linear-gradient( + // 45deg, + // rgba(255, 255, 255, 0.15) 25%, + // transparent 25%, + // transparent 50%, + // rgba(255, 255, 255, 0.15) 50%, + // rgba(255, 255, 255, 0.15) 75%, + // transparent 75%, + // transparent + // ); + // background-image: linear-gradient( + // 45deg, + // rgba(255, 255, 255, 0.15) 25%, + // transparent 25%, + // transparent 50%, + // rgba(255, 255, 255, 0.15) 50%, + // rgba(255, 255, 255, 0.15) 75%, + // transparent 75%, + // transparent + // ); + //} + .media { + margin-top: 15px; + } + .media:first-child { + margin-top: 0; + } + .media, + .media-body { + overflow: hidden; + zoom: 1; + } + .media-body { + width: 10000px; + } + .media-object { + display: block; + } + .media-right, + .media > .pull-right { + padding-left: 10px; + } + .media-left, + .media > .pull-left { + padding-right: 10px; + } + .media-left, + .media-right, + .media-body { + display: table-cell; + vertical-align: top; + } + .media-middle { + vertical-align: middle; + } + .media-bottom { + vertical-align: bottom; + } + .media-heading { + margin-top: 0; + margin-bottom: 5px; + } + .media-list { + padding-left: 0; + list-style: none; + } + .list-group { + padding-left: 0; + margin-bottom: 20px; + } + .list-group-item { + position: relative; + display: block; + padding: 10px 15px; + margin-bottom: -1px; + background-color: #fff; + border: 1px solid #ddd; + } + .list-group-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; + } + .list-group-item:last-child { + margin-bottom: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; + } + a.list-group-item { + color: #555; + } + a.list-group-item .list-group-item-heading { + color: #333; + } + a.list-group-item:hover, + a.list-group-item:focus { + color: #555; + text-decoration: none; + background-color: #f5f5f5; + } + .list-group-item.disabled, + .list-group-item.disabled:hover, + .list-group-item.disabled:focus { + color: #777; + cursor: not-allowed; + background-color: #eee; + } + .list-group-item.disabled .list-group-item-heading, + .list-group-item.disabled:hover .list-group-item-heading, + .list-group-item.disabled:focus .list-group-item-heading { + color: inherit; + } + .list-group-item.disabled .list-group-item-text, + .list-group-item.disabled:hover .list-group-item-text, + .list-group-item.disabled:focus .list-group-item-text { + color: #777; + } + .list-group-item.active, + .list-group-item.active:hover, + .list-group-item.active:focus { + z-index: 2; + color: #fff; + background-color: #337ab7; + border-color: #337ab7; + } + .list-group-item.active .list-group-item-heading, + .list-group-item.active:hover .list-group-item-heading, + .list-group-item.active:focus .list-group-item-heading, + .list-group-item.active .list-group-item-heading > small, + .list-group-item.active:hover .list-group-item-heading > small, + .list-group-item.active:focus .list-group-item-heading > small, + .list-group-item.active .list-group-item-heading > .small, + .list-group-item.active:hover .list-group-item-heading > .small, + .list-group-item.active:focus .list-group-item-heading > .small { + color: inherit; + } + .list-group-item.active .list-group-item-text, + .list-group-item.active:hover .list-group-item-text, + .list-group-item.active:focus .list-group-item-text { + color: #c7ddef; + } + .list-group-item-success { + color: #3c763d; + background-color: #dff0d8; + } + a.list-group-item-success { + color: #3c763d; + } + a.list-group-item-success .list-group-item-heading { + color: inherit; + } + a.list-group-item-success:hover, + a.list-group-item-success:focus { + color: #3c763d; + background-color: #d0e9c6; + } + a.list-group-item-success.active, + a.list-group-item-success.active:hover, + a.list-group-item-success.active:focus { + color: #fff; + background-color: #3c763d; + border-color: #3c763d; + } + .list-group-item-info { + color: #31708f; + background-color: #d9edf7; + } + a.list-group-item-info { + color: #31708f; + } + a.list-group-item-info .list-group-item-heading { + color: inherit; + } + a.list-group-item-info:hover, + a.list-group-item-info:focus { + color: #31708f; + background-color: #c4e3f3; + } + a.list-group-item-info.active, + a.list-group-item-info.active:hover, + a.list-group-item-info.active:focus { + color: #fff; + background-color: #31708f; + border-color: #31708f; + } + .list-group-item-warning { + color: #8a6d3b; + background-color: #fcf8e3; + } + a.list-group-item-warning { + color: #8a6d3b; + } + a.list-group-item-warning .list-group-item-heading { + color: inherit; + } + a.list-group-item-warning:hover, + a.list-group-item-warning:focus { + color: #8a6d3b; + background-color: #faf2cc; + } + a.list-group-item-warning.active, + a.list-group-item-warning.active:hover, + a.list-group-item-warning.active:focus { + color: #fff; + background-color: #8a6d3b; + border-color: #8a6d3b; + } + .list-group-item-danger { + color: #a94442; + background-color: #f2dede; + } + a.list-group-item-danger { + color: #a94442; + } + a.list-group-item-danger .list-group-item-heading { + color: inherit; + } + a.list-group-item-danger:hover, + a.list-group-item-danger:focus { + color: #a94442; + background-color: #ebcccc; + } + a.list-group-item-danger.active, + a.list-group-item-danger.active:hover, + a.list-group-item-danger.active:focus { + color: #fff; + background-color: #a94442; + border-color: #a94442; + } + .list-group-item-heading { + margin-top: 0; + margin-bottom: 5px; + } + .list-group-item-text { + margin-bottom: 0; + line-height: 1.3; + } + .panel { + margin-bottom: 20px; + background-color: #fff; + border: 1px solid transparent; + border-radius: 4px; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); + } + .panel-body { + padding: 15px; + } + .panel-heading { + padding: 10px 15px; + border-bottom: 1px solid transparent; + border-top-left-radius: 3px; + border-top-right-radius: 3px; + } + .panel-heading > .dropdown .dropdown-toggle { + color: inherit; + } + .panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: 16px; + color: inherit; + } + .panel-title > a, + .panel-title > small, + .panel-title > .small, + .panel-title > small > a, + .panel-title > .small > a { + color: inherit; + } + .panel-footer { + padding: 10px 15px; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; + } + .panel > .list-group, + .panel > .panel-collapse > .list-group { + margin-bottom: 0; + } + .panel > .list-group .list-group-item, + .panel > .panel-collapse > .list-group .list-group-item { + border-width: 1px 0; + border-radius: 0; + } + .panel > .list-group:first-child .list-group-item:first-child, + .panel > .panel-collapse > .list-group:first-child .list-group-item:first-child { + border-top: 0; + border-top-left-radius: 3px; + border-top-right-radius: 3px; + } + .panel > .list-group:last-child .list-group-item:last-child, + .panel > .panel-collapse > .list-group:last-child .list-group-item:last-child { + border-bottom: 0; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; + } + .panel-heading + .list-group .list-group-item:first-child { + border-top-width: 0; + } + .list-group + .panel-footer { + border-top-width: 0; + } + .panel > .table, + .panel > .table-responsive > .table, + .panel > .panel-collapse > .table { + margin-bottom: 0; + } + .panel > .table caption, + .panel > .table-responsive > .table caption, + .panel > .panel-collapse > .table caption { + padding-right: 15px; + padding-left: 15px; + } + .panel > .table:first-child, + .panel > .table-responsive:first-child > .table:first-child { + border-top-left-radius: 3px; + border-top-right-radius: 3px; + } + .panel > .table:first-child > thead:first-child > tr:first-child, + .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child, + .panel > .table:first-child > tbody:first-child > tr:first-child, + .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child { + border-top-left-radius: 3px; + border-top-right-radius: 3px; + } + .panel > .table:first-child > thead:first-child > tr:first-child td:first-child, + .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, + .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, + .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, + .panel > .table:first-child > thead:first-child > tr:first-child th:first-child, + .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, + .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, + .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { + border-top-left-radius: 3px; + } + .panel > .table:first-child > thead:first-child > tr:first-child td:last-child, + .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, + .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, + .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, + .panel > .table:first-child > thead:first-child > tr:first-child th:last-child, + .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, + .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, + .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { + border-top-right-radius: 3px; + } + .panel > .table:last-child, + .panel > .table-responsive:last-child > .table:last-child { + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; + } + .panel > .table:last-child > tbody:last-child > tr:last-child, + .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child, + .panel > .table:last-child > tfoot:last-child > tr:last-child, + .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child { + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; + } + .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, + .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, + .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, + .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, + .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, + .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, + .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, + .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { + border-bottom-left-radius: 3px; + } + .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, + .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, + .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, + .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, + .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, + .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, + .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, + .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { + border-bottom-right-radius: 3px; + } + .panel > .panel-body + .table, + .panel > .panel-body + .table-responsive, + .panel > .table + .panel-body, + .panel > .table-responsive + .panel-body { + border-top: 1px solid #ddd; + } + .panel > .table > tbody:first-child > tr:first-child th, + .panel > .table > tbody:first-child > tr:first-child td { + border-top: 0; + } + .panel > .table-bordered, + .panel > .table-responsive > .table-bordered { + border: 0; + } + .panel > .table-bordered > thead > tr > th:first-child, + .panel > .table-responsive > .table-bordered > thead > tr > th:first-child, + .panel > .table-bordered > tbody > tr > th:first-child, + .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, + .panel > .table-bordered > tfoot > tr > th:first-child, + .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, + .panel > .table-bordered > thead > tr > td:first-child, + .panel > .table-responsive > .table-bordered > thead > tr > td:first-child, + .panel > .table-bordered > tbody > tr > td:first-child, + .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, + .panel > .table-bordered > tfoot > tr > td:first-child, + .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; + } + .panel > .table-bordered > thead > tr > th:last-child, + .panel > .table-responsive > .table-bordered > thead > tr > th:last-child, + .panel > .table-bordered > tbody > tr > th:last-child, + .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, + .panel > .table-bordered > tfoot > tr > th:last-child, + .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, + .panel > .table-bordered > thead > tr > td:last-child, + .panel > .table-responsive > .table-bordered > thead > tr > td:last-child, + .panel > .table-bordered > tbody > tr > td:last-child, + .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, + .panel > .table-bordered > tfoot > tr > td:last-child, + .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; + } + .panel > .table-bordered > thead > tr:first-child > td, + .panel > .table-responsive > .table-bordered > thead > tr:first-child > td, + .panel > .table-bordered > tbody > tr:first-child > td, + .panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, + .panel > .table-bordered > thead > tr:first-child > th, + .panel > .table-responsive > .table-bordered > thead > tr:first-child > th, + .panel > .table-bordered > tbody > tr:first-child > th, + .panel > .table-responsive > .table-bordered > tbody > tr:first-child > th { + border-bottom: 0; + } + .panel > .table-bordered > tbody > tr:last-child > td, + .panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, + .panel > .table-bordered > tfoot > tr:last-child > td, + .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, + .panel > .table-bordered > tbody > tr:last-child > th, + .panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, + .panel > .table-bordered > tfoot > tr:last-child > th, + .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { + border-bottom: 0; + } + .panel > .table-responsive { + margin-bottom: 0; + border: 0; + } + .panel-group { + margin-bottom: 20px; + } + .panel-group .panel { + margin-bottom: 0; + border-radius: 4px; + } + .panel-group .panel + .panel { + margin-top: 5px; + } + .panel-group .panel-heading { + border-bottom: 0; + } + .panel-group .panel-heading + .panel-collapse > .panel-body, + .panel-group .panel-heading + .panel-collapse > .list-group { + border-top: 1px solid #ddd; + } + .panel-group .panel-footer { + border-top: 0; + } + .panel-group .panel-footer + .panel-collapse .panel-body { + border-bottom: 1px solid #ddd; + } + .panel-default { + border-color: #ddd; + } + .panel-default > .panel-heading { + color: #333; + background-color: #f5f5f5; + border-color: #ddd; + } + .panel-default > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #ddd; + } + .panel-default > .panel-heading .badge { + color: #f5f5f5; + background-color: #333; + } + .panel-default > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #ddd; + } + .panel-primary { + border-color: #337ab7; + } + .panel-primary > .panel-heading { + color: #fff; + background-color: #337ab7; + border-color: #337ab7; + } + .panel-primary > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #337ab7; + } + .panel-primary > .panel-heading .badge { + color: #337ab7; + background-color: #fff; + } + .panel-primary > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #337ab7; + } + .panel-success { + border-color: #d6e9c6; + } + .panel-success > .panel-heading { + color: #3c763d; + background-color: #dff0d8; + border-color: #d6e9c6; + } + .panel-success > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #d6e9c6; + } + .panel-success > .panel-heading .badge { + color: #dff0d8; + background-color: #3c763d; + } + .panel-success > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #d6e9c6; + } + .panel-info { + border-color: #bce8f1; + } + .panel-info > .panel-heading { + color: #31708f; + background-color: #d9edf7; + border-color: #bce8f1; + } + .panel-info > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #bce8f1; + } + .panel-info > .panel-heading .badge { + color: #d9edf7; + background-color: #31708f; + } + .panel-info > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #bce8f1; + } + .panel-warning { + border-color: #faebcc; + } + .panel-warning > .panel-heading { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #faebcc; + } + .panel-warning > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #faebcc; + } + .panel-warning > .panel-heading .badge { + color: #fcf8e3; + background-color: #8a6d3b; + } + .panel-warning > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #faebcc; + } + .panel-danger { + border-color: #ebccd1; + } + .panel-danger > .panel-heading { + color: #a94442; + background-color: #f2dede; + border-color: #ebccd1; + } + .panel-danger > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #ebccd1; + } + .panel-danger > .panel-heading .badge { + color: #f2dede; + background-color: #a94442; + } + .panel-danger > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #ebccd1; + } + .embed-responsive { + position: relative; + display: block; + height: 0; + padding: 0; + overflow: hidden; + } + .embed-responsive .embed-responsive-item, + .embed-responsive iframe, + .embed-responsive embed, + .embed-responsive object, + .embed-responsive video { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + border: 0; + } + .embed-responsive-16by9 { + padding-bottom: 56.25%; + } + .embed-responsive-4by3 { + padding-bottom: 75%; + } + .well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + } + .well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15); + } + .well-lg { + padding: 24px; + border-radius: 6px; + } + .well-sm { + padding: 9px; + border-radius: 3px; + } + .close { + float: right; + font-size: 21px; + font-weight: bold; + line-height: 1; + color: #000; + text-shadow: 0 1px 0 #fff; + filter: alpha(opacity=20); + opacity: 0.2; + } + .close:hover, + .close:focus { + color: #000; + text-decoration: none; + cursor: pointer; + filter: alpha(opacity=50); + opacity: 0.5; + } + button.close { + -webkit-appearance: none; + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + } + .modal-open { + overflow: hidden; + } + .modal { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1050; + display: none; + overflow: hidden; + -webkit-overflow-scrolling: touch; + outline: 0; + } + .modal.fade .modal-dialog { + -webkit-transition: -webkit-transform 0.3s ease-out; + -o-transition: -o-transform 0.3s ease-out; + transition: transform 0.3s ease-out; + -webkit-transform: translate(0, -25%); + -ms-transform: translate(0, -25%); + -o-transform: translate(0, -25%); + transform: translate(0, -25%); + } + .modal.in .modal-dialog { + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + -o-transform: translate(0, 0); + transform: translate(0, 0); + } + .modal-open .modal { + overflow-x: hidden; + overflow-y: auto; + } + .modal-dialog { + position: relative; + width: auto; + margin: 10px; + } + .modal-content { + position: relative; + background-color: #fff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 6px; + outline: 0; + -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + } + .modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000; + } + .modal-backdrop.fade { + filter: alpha(opacity=0); + opacity: 0; + } + .modal-backdrop.in { + filter: alpha(opacity=50); + opacity: 0.5; + } + .modal-header { + min-height: 16.42857143px; + padding: 15px; + border-bottom: 1px solid #e5e5e5; + } + .modal-header .close { + margin-top: -2px; + } + .modal-title { + margin: 0; + line-height: 1.42857143; + } + //.modal-body { + // position: relative; + // padding: 15px; + //} + .modal-footer { + padding: 15px; + text-align: right; + border-top: 1px solid #e5e5e5; + } + .modal-footer .btn + .btn { + margin-bottom: 0; + margin-left: 5px; + } + .modal-footer .btn-group .btn + .btn { + margin-left: -1px; + } + .modal-footer .btn-block + .btn-block { + margin-left: 0; + } + .modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll; + } + @media (min-width: 768px) { + .modal-dialog { + width: 600px; + margin: 30px auto; + } + .modal-content { + -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); + } + .modal-sm { + width: 300px; + } + } + @media (min-width: 992px) { + .modal-lg { + width: 900px; + } + } + .tooltip { + position: absolute; + z-index: 1070; + display: block; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 12px; + font-weight: normal; + line-height: 1.4; + filter: alpha(opacity=0); + opacity: 0; + } + .tooltip.in { + filter: alpha(opacity=90); + opacity: 0.9; + } + .tooltip.top { + padding: 5px 0; + margin-top: -3px; + } + .tooltip.right { + padding: 0 5px; + margin-left: 3px; + } + .tooltip.bottom { + padding: 5px 0; + margin-top: 3px; + } + .tooltip.left { + padding: 0 5px; + margin-left: -3px; + } + .tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #fff; + text-align: center; + text-decoration: none; + background-color: #000; + border-radius: 4px; + } + .tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; + } + .tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-width: 5px 5px 0; + border-top-color: #000; + } + .tooltip.top-left .tooltip-arrow { + right: 5px; + bottom: 0; + margin-bottom: -5px; + border-width: 5px 5px 0; + border-top-color: #000; + } + .tooltip.top-right .tooltip-arrow { + bottom: 0; + left: 5px; + margin-bottom: -5px; + border-width: 5px 5px 0; + border-top-color: #000; + } + .tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-width: 5px 5px 5px 0; + border-right-color: #000; + } + .tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-width: 5px 0 5px 5px; + border-left-color: #000; + } + .tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; + } + .tooltip.bottom-left .tooltip-arrow { + top: 0; + right: 5px; + margin-top: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; + } + .tooltip.bottom-right .tooltip-arrow { + top: 0; + left: 5px; + margin-top: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; + } + .popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: none; + max-width: 276px; + padding: 1px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + font-weight: normal; + line-height: 1.42857143; + text-align: left; + white-space: normal; + background-color: #fff; + -webkit-background-clip: padding-box; + 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); + } + .popover.top { + margin-top: -10px; + } + .popover.right { + margin-left: 10px; + } + .popover.bottom { + margin-top: 10px; + } + .popover.left { + margin-left: -10px; + } + .popover-title { + padding: 8px 14px; + margin: 0; + font-size: 14px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-radius: 5px 5px 0 0; + } + .popover-content { + padding: 9px 14px; + } + .popover > .arrow, + .popover > .arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; + } + .popover > .arrow { + border-width: 11px; + } + .popover > .arrow:after { + content: ""; + border-width: 10px; + } + .popover.top > .arrow { + bottom: -11px; + left: 50%; + margin-left: -11px; + border-top-color: #999; + border-top-color: rgba(0, 0, 0, 0.25); + border-bottom-width: 0; + } + .popover.top > .arrow:after { + bottom: 1px; + margin-left: -10px; + content: " "; + border-top-color: #fff; + border-bottom-width: 0; + } + .popover.right > .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-right-color: #999; + border-right-color: rgba(0, 0, 0, 0.25); + border-left-width: 0; + } + .popover.right > .arrow:after { + bottom: -10px; + left: 1px; + content: " "; + border-right-color: #fff; + border-left-width: 0; + } + .popover.bottom > .arrow { + top: -11px; + left: 50%; + margin-left: -11px; + border-top-width: 0; + border-bottom-color: #999; + border-bottom-color: rgba(0, 0, 0, 0.25); + } + .popover.bottom > .arrow:after { + top: 1px; + margin-left: -10px; + content: " "; + border-top-width: 0; + border-bottom-color: #fff; + } + .popover.left > .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-right-width: 0; + border-left-color: #999; + border-left-color: rgba(0, 0, 0, 0.25); + } + .popover.left > .arrow:after { + right: 1px; + bottom: -10px; + content: " "; + border-right-width: 0; + border-left-color: #fff; + } + .carousel { + position: relative; + } + .carousel-inner { + position: relative; + width: 100%; + overflow: hidden; + } + .carousel-inner > .item { + position: relative; + display: none; + -webkit-transition: 0.6s ease-in-out left; + -o-transition: 0.6s ease-in-out left; + transition: 0.6s ease-in-out left; + } + .carousel-inner > .item > img, + .carousel-inner > .item > a > img { + line-height: 1; + } + @media all and (transform-3d), (-webkit-transform-3d) { + .carousel-inner > .item { + -webkit-transition: -webkit-transform 0.6s ease-in-out; + -o-transition: -o-transform 0.6s ease-in-out; + transition: transform 0.6s ease-in-out; + + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-perspective: 1000; + perspective: 1000; + } + .carousel-inner > .item.next, + .carousel-inner > .item.active.right { + left: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } + .carousel-inner > .item.prev, + .carousel-inner > .item.active.left { + left: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } + .carousel-inner > .item.next.left, + .carousel-inner > .item.prev.right, + .carousel-inner > .item.active { + left: 0; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + } + .carousel-inner > .active, + .carousel-inner > .next, + .carousel-inner > .prev { + display: block; + } + .carousel-inner > .active { + left: 0; + } + .carousel-inner > .next, + .carousel-inner > .prev { + position: absolute; + top: 0; + width: 100%; + } + .carousel-inner > .next { + left: 100%; + } + .carousel-inner > .prev { + left: -100%; + } + .carousel-inner > .next.left, + .carousel-inner > .prev.right { + left: 0; + } + .carousel-inner > .active.left { + left: -100%; + } + .carousel-inner > .active.right { + left: 100%; + } + .carousel-control { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 15%; + font-size: 20px; + color: #fff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); + filter: alpha(opacity=50); + opacity: 0.5; + } + .carousel-control.left { + background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); + background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); + background-image: -webkit-gradient( + linear, + left top, + right top, + from(rgba(0, 0, 0, 0.5)), + to(rgba(0, 0, 0, 0.0001)) + ); + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); + background-repeat: repeat-x; + } + .carousel-control.right { + right: 0; + left: auto; + background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); + background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); + background-image: -webkit-gradient( + linear, + left top, + right top, + from(rgba(0, 0, 0, 0.0001)), + to(rgba(0, 0, 0, 0.5)) + ); + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); + background-repeat: repeat-x; + } + .carousel-control:hover, + .carousel-control:focus { + color: #fff; + text-decoration: none; + filter: alpha(opacity=90); + outline: 0; + opacity: 0.9; + } + .carousel-control .icon-prev, + .carousel-control .icon-next, + .carousel-control .glyphicon-chevron-left, + .carousel-control .glyphicon-chevron-right { + position: absolute; + top: 50%; + z-index: 5; + display: inline-block; + } + .carousel-control .icon-prev, + .carousel-control .glyphicon-chevron-left { + left: 50%; + margin-left: -10px; + } + .carousel-control .icon-next, + .carousel-control .glyphicon-chevron-right { + right: 50%; + margin-right: -10px; + } + .carousel-control .icon-prev, + .carousel-control .icon-next { + width: 20px; + height: 20px; + margin-top: -10px; + font-family: serif; + line-height: 1; + } + .carousel-control .icon-prev:before { + content: "\2039"; + } + .carousel-control .icon-next:before { + content: "\203a"; + } + .carousel-indicators { + position: absolute; + bottom: 10px; + left: 50%; + z-index: 15; + width: 60%; + padding-left: 0; + margin-left: -30%; + text-align: center; + list-style: none; + } + .carousel-indicators li { + display: inline-block; + width: 10px; + height: 10px; + margin: 1px; + text-indent: -999px; + cursor: pointer; + background-color: #000 \9; + background-color: rgba(0, 0, 0, 0); + border: 1px solid #fff; + border-radius: 10px; + } + .carousel-indicators .active { + width: 12px; + height: 12px; + margin: 0; + background-color: #fff; + } + .carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #fff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); + } + .carousel-caption .btn { + text-shadow: none; + } + @media screen and (min-width: 768px) { + .carousel-control .glyphicon-chevron-left, + .carousel-control .glyphicon-chevron-right, + .carousel-control .icon-prev, + .carousel-control .icon-next { + width: 30px; + height: 30px; + margin-top: -15px; + font-size: 30px; + } + .carousel-control .glyphicon-chevron-left, + .carousel-control .icon-prev { + margin-left: -15px; + } + .carousel-control .glyphicon-chevron-right, + .carousel-control .icon-next { + margin-right: -15px; + } + .carousel-caption { + right: 20%; + left: 20%; + padding-bottom: 30px; + } + .carousel-indicators { + bottom: 20px; + } + } + .clearfix:before, + .clearfix:after, + .dl-horizontal dd:before, + .dl-horizontal dd:after, + .container:before, + .container:after, + .container-fluid:before, + .container-fluid:after, + .row:before, + .row:after, + .form-horizontal .form-group:before, + .form-horizontal .form-group:after, + .btn-toolbar:before, + .btn-toolbar:after, + .btn-group-vertical > .btn-group:before, + .btn-group-vertical > .btn-group:after, + .nav:before, + .nav:after, + .navbar:before, + .navbar:after, + .navbar-header:before, + .navbar-header:after, + .navbar-collapse:before, + .navbar-collapse:after, + .pager:before, + .pager:after, + .panel-body:before, + .panel-body:after, + .modal-footer:before, + .modal-footer:after { + display: table; + content: " "; + } + .clearfix:after, + .dl-horizontal dd:after, + .container:after, + .container-fluid:after, + .row:after, + .form-horizontal .form-group:after, + .btn-toolbar:after, + .btn-group-vertical > .btn-group:after, + .nav:after, + .navbar:after, + .navbar-header:after, + .navbar-collapse:after, + .pager:after, + .panel-body:after, + .modal-footer:after { + clear: both; + } + .center-block { + display: block; + margin-right: auto; + margin-left: 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; + } + .affix { + position: fixed; + } + @-ms-viewport { + width: device-width; + } + .visible-xs, + .visible-sm, + .visible-md, + .visible-lg { + display: none !important; + } + .visible-xs-block, + .visible-xs-inline, + .visible-xs-inline-block, + .visible-sm-block, + .visible-sm-inline, + .visible-sm-inline-block, + .visible-md-block, + .visible-md-inline, + .visible-md-inline-block, + .visible-lg-block, + .visible-lg-inline, + .visible-lg-inline-block { + display: none !important; + } + @media (max-width: 767px) { + .visible-xs { + display: block !important; + } + table.visible-xs { + display: table; + } + tr.visible-xs { + display: table-row !important; + } + th.visible-xs, + td.visible-xs { + display: table-cell !important; + } + } + @media (max-width: 767px) { + .visible-xs-block { + display: block !important; + } + } + @media (max-width: 767px) { + .visible-xs-inline { + display: inline !important; + } + } + @media (max-width: 767px) { + .visible-xs-inline-block { + display: inline-block !important; + } + } + @media (min-width: 768px) and (max-width: 991px) { + .visible-sm { + display: block !important; + } + table.visible-sm { + display: table; + } + tr.visible-sm { + display: table-row !important; + } + th.visible-sm, + td.visible-sm { + display: table-cell !important; + } + } + @media (min-width: 768px) and (max-width: 991px) { + .visible-sm-block { + display: block !important; + } + } + @media (min-width: 768px) and (max-width: 991px) { + .visible-sm-inline { + display: inline !important; + } + } + @media (min-width: 768px) and (max-width: 991px) { + .visible-sm-inline-block { + display: inline-block !important; + } + } + @media (min-width: 992px) and (max-width: 1199px) { + .visible-md { + display: block !important; + } + table.visible-md { + display: table; + } + tr.visible-md { + display: table-row !important; + } + th.visible-md, + td.visible-md { + display: table-cell !important; + } + } + @media (min-width: 992px) and (max-width: 1199px) { + .visible-md-block { + display: block !important; + } + } + @media (min-width: 992px) and (max-width: 1199px) { + .visible-md-inline { + display: inline !important; + } + } + @media (min-width: 992px) and (max-width: 1199px) { + .visible-md-inline-block { + display: inline-block !important; + } + } + @media (min-width: 1200px) { + .visible-lg { + display: block !important; + } + table.visible-lg { + display: table; + } + tr.visible-lg { + display: table-row !important; + } + th.visible-lg, + td.visible-lg { + display: table-cell !important; + } + } + @media (min-width: 1200px) { + .visible-lg-block { + display: block !important; + } + } + @media (min-width: 1200px) { + .visible-lg-inline { + display: inline !important; + } + } + @media (min-width: 1200px) { + .visible-lg-inline-block { + display: inline-block !important; + } + } + @media (max-width: 767px) { + .hidden-xs { + display: none !important; + } + } + @media (min-width: 768px) and (max-width: 991px) { + .hidden-sm { + display: none !important; + } + } + @media (min-width: 992px) and (max-width: 1199px) { + .hidden-md { + display: none !important; + } + } + @media (min-width: 1200px) { + .hidden-lg { + display: none !important; + } + } + .visible-print { + display: none !important; + } + @media print { + .visible-print { + display: block !important; + } + table.visible-print { + display: table; + } + tr.visible-print { + display: table-row !important; + } + th.visible-print, + td.visible-print { + display: table-cell !important; + } + } + .visible-print-block { + display: none !important; + } + @media print { + .visible-print-block { + display: block !important; + } + } + .visible-print-inline { + display: none !important; + } + @media print { + .visible-print-inline { + display: inline !important; + } + } + .visible-print-inline-block { + display: none !important; + } + @media print { + .visible-print-inline-block { + display: inline-block !important; + } + } + @media print { + .hidden-print { + display: none !important; + } + } +} diff --git a/themesource/atlas_core/web/core/base/_animation.scss b/themesource/atlas_core/web/core/base/_animation.scss new file mode 100644 index 0000000..fb712a8 --- /dev/null +++ b/themesource/atlas_core/web/core/base/_animation.scss @@ -0,0 +1,56 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// +@mixin animations() { + @keyframes slideInUp { + from { + visibility: visible; + transform: translate3d(0, 100%, 0); + } + + to { + transform: translate3d(0, 0, 0); + } + } + + .animated { + animation-duration: 0.4s; + animation-fill-mode: both; + } + + .slideInUp { + animation-name: slideInUp; + } + + @keyframes slideInDown { + from { + visibility: visible; + transform: translate3d(0, -100%, 0); + } + + to { + transform: translate3d(0, 0, 0); + } + } + + .slideInDown { + animation-name: slideInDown; + } + + @keyframes fadeIn { + from { + opacity: 0; + } + + to { + opacity: 1; + } + } + + .fadeIn { + animation-name: fadeIn; + } +} diff --git a/themesource/atlas_core/web/core/base/_base.scss b/themesource/atlas_core/web/core/base/_base.scss new file mode 100644 index 0000000..4d64a01 --- /dev/null +++ b/themesource/atlas_core/web/core/base/_base.scss @@ -0,0 +1,78 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// +/* ========================================================================== + Base + + Default settings +========================================================================== */ +@mixin base() { + html { + height: 100%; + } + + body { + min-height: 100%; + color: $font-color-default; + background-color: $bg-color; + font-family: $font-family-base; + font-size: $font-size-default; + font-weight: $font-weight-normal; + line-height: $line-height-base; + } + + a { + transition: 0.25s; + color: $link-color; + -webkit-backface-visibility: hidden; + } + + a:hover { + text-decoration: underline; + color: $link-hover-color; + } + + // Address `outline` inconsistency between Chrome and other browsers. + a:focus { + outline: thin dotted; + } + + // Improve readability when focused and also mouse hovered in all browsers + a:active, + a:hover { + outline: 0; + } + + // Removes large blue border in chrome on focus and active states + input:focus, + button:focus, + .mx-link:focus { + outline: 0; + } + + // Removes large blue border for tabindexes from widgets + div[tabindex] { + outline: 0; + } + + // Disabled State + .disabled, + [disabled] { + cursor: not-allowed; + opacity: 0.65; + box-shadow: none; + } + + .mx-underlay { + position: fixed; + top: 0; + width: 100%; + height: 100%; + z-index: 1000; + opacity: 0.5; + background-color: #0a1325; + } +} diff --git a/themesource/atlas_core/web/core/base/_flex.scss b/themesource/atlas_core/web/core/base/_flex.scss new file mode 100644 index 0000000..90eb0e6 --- /dev/null +++ b/themesource/atlas_core/web/core/base/_flex.scss @@ -0,0 +1,184 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// +/* ========================================================================== + Flex + + Flex classes +========================================================================== */ +@mixin flex() { + $important-flex-value: if($important-flex, " !important", ""); + + // Flex layout + .flexcontainer { + display: flex; + overflow: hidden; + flex: 1; + flex-direction: row; + + .flexitem { + margin-right: $gutter-size; + + &:last-child { + margin-right: 0; + } + } + + .flexitem-main { + overflow: hidden; + flex: 1; + } + } + + // These classes define the order of the children + .flex-row { + flex-direction: row #{$important-flex-value}; + } + + .flex-column { + flex-direction: column #{$important-flex-value}; + } + + .flex-row-reverse { + flex-direction: row-reverse #{$important-flex-value}; + } + + .flex-column-reverse { + flex-direction: column-reverse #{$important-flex-value}; + } + + .flex-wrap { + flex-wrap: wrap #{$important-flex-value}; + } + + .flex-nowrap { + flex-wrap: nowrap #{$important-flex-value}; + } + + .flex-wrap-reverse { + flex-wrap: wrap-reverse #{$important-flex-value}; + } + + // Align children in both directions + .flex-center { + align-items: center #{$important-flex-value}; + justify-content: center #{$important-flex-value}; + } + + // These classes define the alignment of the children + .justify-content-start { + justify-content: flex-start #{$important-flex-value}; + } + + .justify-content-end { + justify-content: flex-end #{$important-flex-value}; + } + + .justify-content-center { + justify-content: center #{$important-flex-value}; + } + + .justify-content-between { + justify-content: space-between #{$important-flex-value}; + } + + .justify-content-around { + justify-content: space-around #{$important-flex-value}; + } + + .justify-content-evenly { + // Not Supported in IE11 + justify-content: space-evenly #{$important-flex-value}; + } + + .justify-content-stretch { + justify-content: stretch #{$important-flex-value}; + } + + /// These classes define the alignment of the children in the cross-direction + .align-children-start { + align-items: flex-start #{$important-flex-value}; + } + + .align-children-end { + align-items: flex-end #{$important-flex-value}; + } + + .align-children-center { + align-items: center #{$important-flex-value}; + } + + .align-children-baseline { + align-items: baseline #{$important-flex-value}; + } + + .align-children-stretch { + align-items: stretch #{$important-flex-value}; + } + + /// These classes define the alignment of the rows of children in the cross-direction + .align-content-start { + align-content: flex-start #{$important-flex-value}; + } + + .align-content-end { + align-content: flex-end #{$important-flex-value}; + } + + .align-content-center { + align-content: center #{$important-flex-value}; + } + + .align-content-between { + align-content: space-between #{$important-flex-value}; + } + + .align-content-around { + align-content: space-around #{$important-flex-value}; + } + + .align-content-stretch { + align-content: stretch #{$important-flex-value}; + } + + /// These classes allow the default alignment to be overridden for individual items + .align-self-auto { + align-self: auto #{$important-flex-value}; + } + + .align-self-start { + align-self: flex-start #{$important-flex-value}; + } + + .align-self-end { + align-self: flex-end #{$important-flex-value}; + } + + .align-self-center { + align-self: center #{$important-flex-value}; + } + + .align-self-baseline { + align-self: baseline #{$important-flex-value}; + } + + .align-self-stretch { + align-self: stretch #{$important-flex-value}; + } + + @include flex-items($number: 12); +} + +/// These classes define the percentage of available free space within a flex container a flex item will take. +@mixin flex-items($number) { + @if not $exclude-flex { + @for $i from 1 through $number { + .flexitem-#{$i} { + flex: #{$i} #{$i} 1%; + } + } + } +} diff --git a/themesource/atlas_core/web/core/base/_login.scss b/themesource/atlas_core/web/core/base/_login.scss new file mode 100644 index 0000000..aaf9f15 --- /dev/null +++ b/themesource/atlas_core/web/core/base/_login.scss @@ -0,0 +1,199 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin login() { + body { + height: 100%; + } + + .loginpage { + display: flex; + height: 100%; + } + .loginpage-logo { + position: absolute; + top: 30px; + right: 30px; + + & > svg { + width: 120px; + } + } + + .loginpage-left { + display: none; + } + + .loginpage-right { + display: flex; + flex: 1; + flex-direction: column; + justify-content: space-around; + } + .loginpage-formwrapper { + width: 400px; + margin: 0 auto; + } + + .loginpage-fullscreenDiv { + background-color: #e8e8e8; + width: 100%; + height: auto; + bottom: 0; + top: 0; + left: 0; + position: absolute; + } + + .loginpage-center { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + } + + // Form + .loginpage-form { + .alert { + display: none; + } + + .btn { + border-radius: $border-radius-default; + } + + // Form label + input + .form-group { + width: 100%; + align-items: center; + @media only screen and (max-width: $screen-sm-max) { + align-items: flex-start; + } + + .control-label { + flex: 4; + margin-bottom: 0; + font-size: $font-size-default; + font-weight: 500; + @media only screen and (max-width: $screen-sm-max) { + flex: 1; + margin-bottom: $spacing-small; + } + } + + .inputwrapper { + flex: 8; + position: relative; + width: 100%; + @media only screen and (max-width: $screen-sm-max) { + flex: 1; + } + + .glyphicon { + &:before { + transition: color 0.4s; + } + + position: absolute; + top: 50%; + left: $form-input-padding-x; + transform: translateY(-50%); + + &-eye-open:hover, + &-eye-close:hover { + cursor: pointer; + color: $brand-primary; + } + } + + .form-control { + padding: $form-input-padding-y $form-input-padding-x $form-input-padding-y 45px; + width: 100%; + } + + .form-control:focus ~ .glyphicon:before { + color: $brand-primary; + } + } + } + } + + // Divider - only on login-with-mendixsso-button.html + .loginpage-alternativelabel { + display: flex; + align-items: center; + flex-direction: row; + flex-wrap: nowrap; + justify-content: space-between; + margin: 25px 0px; + + hr { + flex: 1; + margin: 20px 0 20px 10px; + border: 0; + border-color: #d8d8d8; + border-top: 1px solid #eeeeee; + } + } + + .loginpage-signin { + color: #555555; + } + + .loginpage-form .btn { + img { + vertical-align: middle; + top: -1px; + position: relative; + } + } + + // Show only on wide screens + @media screen and (min-width: $screen-xl) { + .loginpage-left { + position: relative; + display: block; + flex: 1; + width: 100%; + height: 100%; + } + // Image and clipping mask + .loginpage-image { + height: 100%; + animation: makePointer 1s ease-out both; + background: left / cover no-repeat + linear-gradient(to right, rgba($brand-primary, 0.9) 0%, rgba($brand-primary, 0.6) 100%), + left / cover no-repeat url("./resources/work-do-more.jpeg"); + -webkit-clip-path: polygon(0% 0%, 100% 0, 100% 50%, 100% 100%, 0% 100%); + clip-path: polygon(0% 0%, 100% 0, 100% 50%, 100% 100%, 0% 100%); + } + + .loginpage-logo { + & > svg { + width: 150px; + } + } + + .loginpage-formwrapper { + width: 400px; + } + } + + // Animate image clipping mask + @keyframes makePointer { + 100% { + -webkit-clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%); + clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%); + } + } + @-webkit-keyframes makePointer { + 100% { + -webkit-clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%); + clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%); + } + } +} diff --git a/themesource/atlas_core/web/core/base/_spacing.scss b/themesource/atlas_core/web/core/base/_spacing.scss new file mode 100644 index 0000000..83d166e --- /dev/null +++ b/themesource/atlas_core/web/core/base/_spacing.scss @@ -0,0 +1,547 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// +/* ========================================================================== + Spacing + + Spacing classes +========================================================================== */ +@mixin spacing() { + $important-spacing-value: if($important-spacing, " !important", ""); + + // Spacing none + .spacing-inner-none { + padding: 0 #{$important-spacing-value}; + } + + .spacing-inner-top-none { + padding-top: 0 #{$important-spacing-value}; + } + + .spacing-inner-right-none { + padding-right: 0 #{$important-spacing-value}; + } + + .spacing-inner-bottom-none { + padding-bottom: 0 #{$important-spacing-value}; + } + + .spacing-inner-left-none { + padding-left: 0 #{$important-spacing-value}; + } + + .spacing-outer-none { + margin: 0 #{$important-spacing-value}; + } + + .spacing-outer-top-none { + margin-top: 0 #{$important-spacing-value}; + } + + .spacing-outer-right-none { + margin-right: 0 #{$important-spacing-value}; + } + + .spacing-outer-bottom-none { + margin-bottom: 0 #{$important-spacing-value}; + } + + .spacing-outer-left-none { + margin-left: 0 #{$important-spacing-value}; + } + + // Spacing small + .spacing-inner { + padding: $spacing-small #{$important-spacing-value}; + } + + .spacing-inner-top { + padding-top: $spacing-small #{$important-spacing-value}; + } + + .spacing-inner-right { + padding-right: $spacing-small #{$important-spacing-value}; + } + + .spacing-inner-bottom { + padding-bottom: $spacing-small #{$important-spacing-value}; + } + + .spacing-inner-left { + padding-left: $spacing-small #{$important-spacing-value}; + } + + .spacing-inner-vertical { + padding-top: $spacing-small #{$important-spacing-value}; + padding-bottom: $spacing-small #{$important-spacing-value}; + } + + .spacing-inner-horizontal { + padding-left: $spacing-small #{$important-spacing-value}; + padding-right: $spacing-small #{$important-spacing-value}; + } + + .spacing-outer { + margin: $spacing-small #{$important-spacing-value}; + } + + .spacing-outer-top { + margin-top: $spacing-small #{$important-spacing-value}; + } + + .spacing-outer-right { + margin-right: $spacing-small #{$important-spacing-value}; + } + + .spacing-outer-bottom { + margin-bottom: $spacing-small #{$important-spacing-value}; + } + + .spacing-outer-left { + margin-left: $spacing-small #{$important-spacing-value}; + } + + .spacing-outer-vertical { + margin-top: $spacing-small #{$important-spacing-value}; + margin-bottom: $spacing-small #{$important-spacing-value}; + } + + .spacing-outer-horizontal { + margin-left: $spacing-small #{$important-spacing-value}; + margin-right: $spacing-small #{$important-spacing-value}; + } + + // Spacing Medium + .spacing-inner-medium { + @include get-responsive-spacing-medium( + $type: padding, + $direction: all, + $is_important: #{$important-spacing-value} + ); + } + + .spacing-inner-top-medium { + @include get-responsive-spacing-medium( + $type: padding, + $direction: top, + $is_important: #{$important-spacing-value} + ); + } + + .spacing-inner-right-medium { + @include get-responsive-spacing-medium( + $type: padding, + $direction: right, + $is_important: #{$important-spacing-value} + ); + } + + .spacing-inner-bottom-medium { + @include get-responsive-spacing-medium( + $type: padding, + $direction: bottom, + $is_important: #{$important-spacing-value} + ); + } + + .spacing-inner-left-medium { + @include get-responsive-spacing-medium( + $type: padding, + $direction: left, + $is_important: #{$important-spacing-value} + ); + } + + .spacing-inner-vertical-medium { + @include get-responsive-spacing-medium( + $type: padding, + $direction: top, + $is_important: #{$important-spacing-value} + ); + @include get-responsive-spacing-medium( + $type: padding, + $direction: bottom, + $is_important: #{$important-spacing-value} + ); + } + + .spacing-inner-horizontal-medium { + @include get-responsive-spacing-medium( + $type: padding, + $direction: left, + $is_important: #{$important-spacing-value} + ); + @include get-responsive-spacing-medium( + $type: padding, + $direction: right, + $is_important: #{$important-spacing-value} + ); + } + + .spacing-outer-medium { + @include get-responsive-spacing-medium( + $type: margin, + $direction: all, + $is_important: #{$important-spacing-value} + ); + } + + .spacing-outer-top-medium { + @include get-responsive-spacing-medium( + $type: margin, + $direction: top, + $is_important: #{$important-spacing-value} + ); + } + + .spacing-outer-right-medium { + @include get-responsive-spacing-medium( + $type: margin, + $direction: right, + $is_important: #{$important-spacing-value} + ); + } + + .spacing-outer-bottom-medium { + @include get-responsive-spacing-medium( + $type: margin, + $direction: bottom, + $is_important: #{$important-spacing-value} + ); + } + + .spacing-outer-left-medium { + @include get-responsive-spacing-medium( + $type: margin, + $direction: left, + $is_important: #{$important-spacing-value} + ); + } + + .spacing-outer-vertical-medium { + @include get-responsive-spacing-medium( + $type: margin, + $direction: top, + $is_important: #{$important-spacing-value} + ); + @include get-responsive-spacing-medium( + $type: margin, + $direction: bottom, + $is_important: #{$important-spacing-value} + ); + } + + .spacing-outer-horizontal-medium { + @include get-responsive-spacing-medium( + $type: margin, + $direction: left, + $is_important: #{$important-spacing-value} + ); + @include get-responsive-spacing-medium( + $type: margin, + $direction: right, + $is_important: #{$important-spacing-value} + ); + } + + // Spacing Large + .spacing-inner-large { + @include get-responsive-spacing-large( + $type: padding, + $direction: all, + $is_important: #{$important-spacing-value} + ); + } + + .spacing-inner-top-large { + @include get-responsive-spacing-large( + $type: padding, + $direction: top, + $is_important: #{$important-spacing-value} + ); + } + + .spacing-inner-right-large { + @include get-responsive-spacing-large( + $type: padding, + $direction: right, + $is_important: #{$important-spacing-value} + ); + } + + .spacing-inner-bottom-large { + @include get-responsive-spacing-large( + $type: padding, + $direction: bottom, + $is_important: #{$important-spacing-value} + ); + } + + .spacing-inner-left-large { + @include get-responsive-spacing-large( + $type: padding, + $direction: left, + $is_important: #{$important-spacing-value} + ); + } + + .spacing-inner-vertical-large { + @include get-responsive-spacing-large( + $type: padding, + $direction: top, + $is_important: #{$important-spacing-value} + ); + @include get-responsive-spacing-large( + $type: padding, + $direction: bottom, + $is_important: #{$important-spacing-value} + ); + } + + .spacing-inner-horizontal-large { + @include get-responsive-spacing-large( + $type: padding, + $direction: left, + $is_important: #{$important-spacing-value} + ); + @include get-responsive-spacing-large( + $type: padding, + $direction: right, + $is_important: #{$important-spacing-value} + ); + } + + .spacing-outer-large { + @include get-responsive-spacing-large( + $type: margin, + $direction: all, + $is_important: #{$important-spacing-value} + ); + } + + .spacing-outer-top-large { + @include get-responsive-spacing-large( + $type: margin, + $direction: top, + $is_important: #{$important-spacing-value} + ); + } + + .spacing-outer-right-large { + @include get-responsive-spacing-large( + $type: margin, + $direction: right, + $is_important: #{$important-spacing-value} + ); + } + + .spacing-outer-bottom-large { + @include get-responsive-spacing-large( + $type: margin, + $direction: bottom, + $is_important: #{$important-spacing-value} + ); + } + + .spacing-outer-left-large { + @include get-responsive-spacing-large( + $type: margin, + $direction: left, + $is_important: #{$important-spacing-value} + ); + } + + .spacing-outer-vertical-large { + @include get-responsive-spacing-large( + $type: margin, + $direction: top, + $is_important: #{$important-spacing-value} + ); + @include get-responsive-spacing-large( + $type: margin, + $direction: bottom, + $is_important: #{$important-spacing-value} + ); + } + + .spacing-outer-horizontal-large { + @include get-responsive-spacing-large( + $type: margin, + $direction: left, + $is_important: #{$important-spacing-value} + ); + @include get-responsive-spacing-large( + $type: margin, + $direction: right, + $is_important: #{$important-spacing-value} + ); + } + + // Spacing layouts + .spacing-inner-layout { + @include layout-spacing( + $type: padding, + $direction: all, + $device: responsive, + $is_important: #{$important-spacing-value} + ); + } + + .spacing-inner-top-layout { + @include layout-spacing( + $type: padding, + $direction: top, + $device: responsive, + $is_important: #{$important-spacing-value} + ); + } + + .spacing-inner-right-layout { + @include layout-spacing( + $type: padding, + $direction: right, + $device: responsive, + $is_important: #{$important-spacing-value} + ); + } + + .spacing-inner-bottom-layout { + @include layout-spacing( + $type: padding, + $direction: bottom, + $device: responsive, + $is_important: #{$important-spacing-value} + ); + } + + .spacing-inner-left-layout { + @include layout-spacing( + $type: padding, + $direction: left, + $device: responsive, + $is_important: #{$important-spacing-value} + ); + } + + .spacing-inner-vertical-layout { + @include layout-spacing( + $type: padding, + $direction: top, + $device: responsive, + $is_important: #{$important-spacing-value} + ); + @include layout-spacing( + $type: padding, + $direction: bottom, + $device: responsive, + $is_important: #{$important-spacing-value} + ); + } + .spacing-inner-horizontal-layout { + @include layout-spacing( + $type: padding, + $direction: left, + $device: responsive, + $is_important: #{$important-spacing-value} + ); + @include layout-spacing( + $type: padding, + $direction: right, + $device: responsive, + $is_important: #{$important-spacing-value} + ); + } + + .spacing-outer-layout { + @include layout-spacing( + $type: margin, + $direction: all, + $device: responsive, + $is_important: #{$important-spacing-value} + ); + } + + .spacing-outer-top-layout { + @include layout-spacing( + $type: margin, + $direction: top, + $device: responsive, + $is_important: #{$important-spacing-value} + ); + } + + .spacing-outer-right-layout { + @include layout-spacing( + $type: margin, + $direction: right, + $device: responsive, + $is_important: #{$important-spacing-value} + ); + } + + .spacing-outer-bottom-layout { + @include layout-spacing( + $type: margin, + $direction: bottom, + $device: responsive, + $is_important: #{$important-spacing-value} + ); + } + + .spacing-outer-left-layout { + @include layout-spacing( + $type: margin, + $direction: left, + $device: responsive, + $is_important: #{$important-spacing-value} + ); + } + + .spacing-outer-vertical-layout { + @include layout-spacing( + $type: margin, + $direction: top, + $device: responsive, + $is_important: #{$important-spacing-value} + ); + @include layout-spacing( + $type: margin, + $direction: bottom, + $device: responsive, + $is_important: #{$important-spacing-value} + ); + } + .spacing-outer-horizontal-layout { + @include layout-spacing( + $type: margin, + $direction: left, + $device: responsive, + $is_important: #{$important-spacing-value} + ); + @include layout-spacing( + $type: margin, + $direction: right, + $device: responsive, + $is_important: #{$important-spacing-value} + ); + } + + // Scroll container spacing + .mx-scrollcontainer .mx-placeholder { + width: 100%; + height: 100%; + + .mx-layoutgrid, + .mx-layoutgrid-fluid { + @include layout-spacing($type: padding, $direction: all, $device: responsive); + + .mx-layoutgrid, + .mx-layoutgrid-fluid { + padding: 0; + } + } + } +} diff --git a/themesource/atlas_core/web/core/base/mixins/_animations.scss b/themesource/atlas_core/web/core/base/mixins/_animations.scss new file mode 100644 index 0000000..bb4afcd --- /dev/null +++ b/themesource/atlas_core/web/core/base/mixins/_animations.scss @@ -0,0 +1,50 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin transition( + $style: initial, + $delay: 0s, + $duration: 0.3s, + $property: all, + $timing-function: cubic-bezier(0.4, 0, 0.2, 1) +) { + @if not $exclude-animations { + transition: $property $duration $delay $timing-function; + transform-style: $style; + } +} + +@mixin ripple($color: #000, $transparency: 10%, $scale: 10) { + @if not $exclude-animations { + position: relative; + overflow: hidden; + transform: translate3d(0, 0, 0); + + &:after { + content: ""; + display: block; + position: absolute; + width: 100%; + height: 100%; + top: 0; + left: 0; + pointer-events: none; + background-image: radial-gradient(circle, $color $transparency, transparent $transparency); + background-repeat: no-repeat; + background-position: 50%; + transform: scale($scale, $scale); + opacity: 0; + transition: transform 0.5s, opacity 1s; + } + + &:active:after { + transform: scale(0, 0); + opacity: 0.1; + transition: 0s; + } + } +} diff --git a/themesource/atlas_core/web/core/base/mixins/_buttons.scss b/themesource/atlas_core/web/core/base/mixins/_buttons.scss new file mode 100644 index 0000000..42a9079 --- /dev/null +++ b/themesource/atlas_core/web/core/base/mixins/_buttons.scss @@ -0,0 +1,73 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin button-variant($color, $background, $border, $hover) { + @if not $exclude-button { + color: $color; + border-color: $border; + background-color: $background; + + &:hover, + &:focus, + &:active, + &.active, + .open > &.dropdown-toggle { + color: $color; + border-color: $hover; + background-color: $hover; + } + &:active, + &.active, + .open > &.dropdown-toggle { + background-image: none; + } + &.disabled, + &[disabled], + &[aria-disabled], + fieldset[disabled] { + &, + &:hover, + &:focus, + &:active, + &.active { + border-color: $border; + background-color: $background; + } + } + // Button bordered + &.btn-bordered { + background-color: transparent; + @if $color != $btn-default-color { + color: $border; + } + + &:hover, + &:focus, + &:active, + &.active, + .open > &.dropdown-toggle { + color: $color; + border-color: $border; + background-color: $border; + } + } + // Button as link + &.btn-link { + text-decoration: none; + border-color: transparent; + background-color: transparent; + @if $color != $btn-default-color { + color: $background; + } + + &:hover { + border-color: $btn-link-bg-hover; + background-color: $btn-link-bg-hover; + } + } + } +} diff --git a/themesource/atlas_core/web/core/base/mixins/_groupbox.scss b/themesource/atlas_core/web/core/base/mixins/_groupbox.scss new file mode 100644 index 0000000..ecc6e4c --- /dev/null +++ b/themesource/atlas_core/web/core/base/mixins/_groupbox.scss @@ -0,0 +1,19 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin groupbox-variant($color, $background) { + @if not $exclude-group-box { + > .mx-groupbox-header { + color: $color; + border-color: $background; + background: $background; + } + > .mx-groupbox-body { + border-color: $background; + } + } +} diff --git a/themesource/atlas_core/web/core/base/mixins/_layout-spacing.scss b/themesource/atlas_core/web/core/base/mixins/_layout-spacing.scss new file mode 100644 index 0000000..4287d92 --- /dev/null +++ b/themesource/atlas_core/web/core/base/mixins/_layout-spacing.scss @@ -0,0 +1,92 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin layout-spacing($type: padding, $direction: all, $device: responsive, $is_important: false) { + @if not $exclude-spacing { + $suffix: ""; + @if $is_important != false { + $suffix: " !important"; + } + @if $device==responsive { + @if $direction==all { + @media (max-width: $screen-sm-max) { + #{$type}: #{$m-layout-spacing}#{$suffix}; + } + @media (min-width: $screen-md) { + #{$type}: #{$t-layout-spacing}#{$suffix}; + } + @media (min-width: $screen-lg) { + #{$type}: #{$layout-spacing}#{$suffix}; + } + } @else if $direction==top { + @media (max-width: $screen-sm-max) { + #{$type}-top: #{$m-layout-spacing-top}#{$suffix}; + } + @media (min-width: $screen-md) { + #{$type}-top: #{$t-layout-spacing-top}#{$suffix}; + } + @media (min-width: $screen-lg) { + #{$type}-top: #{$layout-spacing-top}#{$suffix}; + } + } @else if $direction==right { + @media (max-width: $screen-sm-max) { + #{$type}-right: #{$m-layout-spacing-right}#{$suffix}; + } + @media (min-width: $screen-md) { + #{$type}-right: #{$t-layout-spacing-right}#{$suffix}; + } + @media (min-width: $screen-lg) { + #{$type}-right: #{$layout-spacing-right}#{$suffix}; + } + } @else if $direction==bottom { + @media (max-width: $screen-sm-max) { + #{$type}-bottom: #{$m-layout-spacing-bottom}#{$suffix}; + } + @media (min-width: $screen-md) { + #{$type}-bottom: #{$t-layout-spacing-bottom}#{$suffix}; + } + @media (min-width: $screen-lg) { + #{$type}-bottom: #{$layout-spacing-bottom}#{$suffix}; + } + } @else if $direction==left { + @media (max-width: $screen-sm-max) { + #{$type}-left: #{$m-layout-spacing-left}#{$suffix}; + } + @media (min-width: $screen-md) { + #{$type}-left: #{$t-layout-spacing-left}#{$suffix}; + } + @media (min-width: $screen-lg) { + #{$type}-left: #{$layout-spacing-left}#{$suffix}; + } + } + } @else if $device==tablet { + @if $direction==all { + #{$type}: #{$t-layout-spacing}#{$suffix}; + } @else if $direction==top { + #{$type}-top: #{$t-layout-spacing-top}#{$suffix}; + } @else if $direction==right { + #{$type}-right: #{$t-layout-spacing-right}#{$suffix}; + } @else if $direction==bottom { + #{$type}-bottom: #{$t-layout-spacing-bottom}#{$suffix}; + } @else if $direction==left { + #{$type}-left: #{$t-layout-spacing-left}#{$suffix}; + } + } @else if $device==mobile { + @if $direction==all { + #{$type}: #{$m-layout-spacing}#{$suffix}; + } @else if $direction==top { + #{$type}-top: #{$m-layout-spacing-top}#{$suffix}; + } @else if $direction==right { + #{$type}-right: #{$m-layout-spacing-right}#{$suffix}; + } @else if $direction==bottom { + #{$type}-bottom: #{$m-layout-spacing-bottom}#{$suffix}; + } @else if $direction==left { + #{$type}-left: #{$m-layout-spacing-left}#{$suffix}; + } + } + } +} diff --git a/themesource/atlas_core/web/core/base/mixins/_spacing.scss b/themesource/atlas_core/web/core/base/mixins/_spacing.scss new file mode 100644 index 0000000..939de64 --- /dev/null +++ b/themesource/atlas_core/web/core/base/mixins/_spacing.scss @@ -0,0 +1,70 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin get-responsive-spacing-large($type: padding, $direction: all, $is_important: false) { + @if not $exclude-spacing { + $suffix: ""; + $dash: "-"; // Otherwise it will be interpreted as a minus symbol. Needed for the Gonzales PE version: 3.4.7 compiler (used by the Webmodeler) + + @if $is_important != false { + $suffix: " !important"; + } + @if $direction==all { + @media (max-width: $screen-sm-max) { + #{$type}: #{$m-spacing-large}#{$suffix}; + } + @media (min-width: $screen-md) { + #{$type}: #{$t-spacing-large}#{$suffix}; + } + @media (min-width: $screen-lg) { + #{$type}: #{$spacing-large}#{$suffix}; + } + } @else { + @media (max-width: $screen-sm-max) { + #{$type}#{$dash}#{$direction}: #{$m-spacing-large}#{$suffix}; + } + @media (min-width: $screen-md) { + #{$type}#{$dash}#{$direction}: #{$t-spacing-large}#{$suffix}; + } + @media (min-width: $screen-lg) { + #{$type}#{$dash}#{$direction}: #{$spacing-large}#{$suffix}; + } + } + } +} + +@mixin get-responsive-spacing-medium($type: padding, $direction: all, $is_important: false) { + @if not $exclude-spacing { + $suffix: ""; + $dash: "-"; // Otherwise it will be interpreted as a minus symbol. Needed for the Gonzales PE version: 3.4.7 compiler (used by the Webmodeler) + + @if $is_important != false { + $suffix: " !important"; + } + @if $direction==all { + @media (max-width: $screen-sm-max) { + #{$type}: #{$m-spacing-medium}#{$suffix}; + } + @media (min-width: $screen-md) { + #{$type}: #{$t-spacing-medium}#{$suffix}; + } + @media (min-width: $screen-lg) { + #{$type}: #{$spacing-medium}#{$suffix}; + } + } @else { + @media (max-width: $screen-sm-max) { + #{$type}#{$dash}#{$direction}: #{$m-spacing-medium}#{$suffix}; + } + @media (min-width: $screen-md) { + #{$type}#{$dash}#{$direction}: #{$t-spacing-medium}#{$suffix}; + } + @media (min-width: $screen-lg) { + #{$type}#{$dash}#{$direction}: #{$spacing-medium}#{$suffix}; + } + } + } +} diff --git a/themesource/atlas_core/web/core/helpers/_accordion.scss b/themesource/atlas_core/web/core/helpers/_accordion.scss new file mode 100644 index 0000000..c13ee7a --- /dev/null +++ b/themesource/atlas_core/web/core/helpers/_accordion.scss @@ -0,0 +1,151 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin accordion-helpers() { + /* ========================================================================== + Accordion + + //== Design Properties + //## Helper classes to change the look and feel of the component + ========================================================================== */ + + .widget-accordion { + .widget-accordion-group { + &.widget-accordion-brand-primary { + @include get-accordion-group-styles( + $accordion-header-primary-bg, + $accordion-header-primary-bg-hover, + $accordion-header-primary-color, + $accordion-header-primary-color, + $accordion-primary-border-color + ); + } + + &.widget-accordion-brand-secondary { + @include get-accordion-group-styles( + $accordion-header-secondary-bg, + $accordion-header-secondary-bg-hover, + $accordion-header-secondary-color, + $accordion-header-secondary-color, + $accordion-secondary-border-color + ); + } + + &.widget-accordion-brand-success { + @include get-accordion-group-styles( + $accordion-header-success-bg, + $accordion-header-success-bg-hover, + $accordion-header-success-color, + $accordion-header-success-color, + $accordion-success-border-color + ); + } + + &.widget-accordion-brand-warning { + @include get-accordion-group-styles( + $accordion-header-warning-bg, + $accordion-header-warning-bg-hover, + $accordion-header-warning-color, + $accordion-header-warning-color, + $accordion-warning-border-color + ); + } + + &.widget-accordion-brand-danger { + @include get-accordion-group-styles( + $accordion-header-danger-bg, + $accordion-header-danger-bg-hover, + $accordion-header-danger-color, + $accordion-header-danger-color, + $accordion-danger-border-color + ); + } + } + + &.widget-accordion-preview { + .widget-accordion-group { + &.widget-accordion-brand-primary { + @include get-accordion-preview-group-styles($accordion-header-primary-color); + } + + &.widget-accordion-brand-secondary { + @include get-accordion-preview-group-styles($accordion-header-secondary-color); + } + + &.widget-accordion-brand-success { + @include get-accordion-preview-group-styles($accordion-header-success-color); + } + + &.widget-accordion-brand-warning { + @include get-accordion-preview-group-styles($accordion-header-warning-color); + } + + &.widget-accordion-brand-danger { + @include get-accordion-preview-group-styles($accordion-header-danger-color); + } + } + } + + &.widget-accordion-bordered-all { + > .widget-accordion-group { + &:first-child { + border-top-style: solid; + } + + border-right-style: solid; + border-left-style: solid; + } + } + + &.widget-accordion-bordered-horizontal { + > .widget-accordion-group { + &:first-child { + border-top-style: solid; + } + } + } + + &.widget-accordion-bordered-none { + > .widget-accordion-group { + border-bottom: none; + } + } + + &.widget-accordion-striped { + > .widget-accordion-group:not(:is(.widget-accordion-brand-primary, .widget-accordion-brand-secondary, .widget-accordion-brand-success, .widget-accordion-brand-warning, .widget-accordion-brand-danger)):nth-child(2n + + 1) { + > .widget-accordion-group-header > .widget-accordion-group-header-button { + background-color: $accordion-bg-striped; + + &.widget-accordion-group-header-button-clickable { + &:hover, + &:focus, + &:active { + background-color: $accordion-bg-striped-hover; + } + } + } + + > .widget-accordion-group-content { + background-color: $accordion-bg-striped; + } + } + } + + &.widget-accordion-compact { + > .widget-accordion-group { + > .widget-accordion-group-header > .widget-accordion-group-header-button { + padding: $spacing-smaller $spacing-small; + } + + > .widget-accordion-group-content { + padding: $spacing-smaller $spacing-small $spacing-medium $spacing-small; + } + } + } + } +} diff --git a/themesource/atlas_core/web/core/helpers/_background.scss b/themesource/atlas_core/web/core/helpers/_background.scss new file mode 100644 index 0000000..9f75784 --- /dev/null +++ b/themesource/atlas_core/web/core/helpers/_background.scss @@ -0,0 +1,188 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin background-helpers() { + /* ========================================================================== + Background + + Different background components, all managed by variables + ========================================================================== */ + + .background-main { + background-color: $bg-color !important; + } + + //Brand variations + + .background-primary { + background-color: $brand-primary !important; + } + + .background-primary-darker { + background-color: $color-primary-darker !important; + } + + .background-primary.background-dark, + .background-primary-dark { + background-color: $color-primary-dark !important; + } + + .background-primary.background-light, + .background-primary-light { + background-color: $color-primary-light !important; + } + + .background-primary-lighter { + background-color: $color-primary-lighter !important; + } + + .background-secondary { + background-color: $bg-color-secondary !important; + } + + .background-secondary.background-light { + background-color: $bg-color-secondary !important; + } + + .background-secondary.background-dark { + background-color: $bg-color-secondary !important; + } + + .background-brand-gradient { + background-image: $brand-gradient !important; + } + + //Semantic variations + + .background-success { + background-color: $brand-success !important; + } + + .background-success-darker { + background-color: $color-success-darker !important; + } + + .background-success.background-dark, + .background-success-dark { + background-color: $color-success-dark !important; + } + + .background-success.background-light, + .background-success-light { + background-color: $color-success-light !important; + } + + .background-success-lighter { + background-color: $color-success-lighter !important; + } + + .background-warning { + background-color: $brand-warning !important; + } + + .background-warning-darker { + background-color: $color-warning-darker !important; + } + + .background-warning.background-dark, + .background-warning-dark { + background-color: $color-warning-dark !important; + } + + .background-warning.background-light, + .background-warning-light { + background-color: $color-warning-light !important; + } + + .background-warning-lighter { + background-color: $color-warning-lighter !important; + } + + .background-danger { + background-color: $brand-danger !important; + } + + .background-danger-darker { + background-color: $color-danger-darker !important; + } + + .background-danger.background-dark, + .background-danger-dark { + background-color: $color-danger-dark !important; + } + + .background-danger.background-light, + .background-danger-light { + background-color: $color-danger-light !important; + } + + .background-danger-lighter { + background-color: $color-danger-lighter !important; + } + + //Bootstrap variations + + .background-default { + background-color: $brand-default !important; + } + + .background-default-darker { + background-color: $color-default-darker !important; + } + + .background-default-dark { + background-color: $color-default-dark !important; + } + + .background-default-light { + background-color: $color-default-light !important; + } + + .background-default-lighter { + background-color: $color-default-lighter !important; + } + + .background-inverse { + background-color: $brand-inverse !important; + } + + .background-inverse-darker { + background-color: $color-inverse-darker !important; + } + + .background-inverse-dark { + background-color: $color-inverse-dark !important; + } + + .background-inverse-light { + background-color: $color-inverse-light !important; + } + + .background-inverse-lighter { + background-color: $color-inverse-lighter !important; + } + + .background-info { + background-color: $brand-info !important; + } + + .background-info-darker { + background-color: $color-info-darker !important; + } + + .background-info-dark { + background-color: $color-info-dark !important; + } + + .background-info-light { + background-color: $color-info-light !important; + } + + .background-info-lighter { + background-color: $color-info-lighter !important; + } +} diff --git a/themesource/atlas_core/web/core/helpers/_badge-button.scss b/themesource/atlas_core/web/core/helpers/_badge-button.scss new file mode 100644 index 0000000..f08728d --- /dev/null +++ b/themesource/atlas_core/web/core/helpers/_badge-button.scss @@ -0,0 +1,103 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin badge-button-helpers() { + /* ========================================================================== + Badge button + + Different background components, all managed by variables + ========================================================================== */ + + //Badge button color variation + .btn-secondary, + .btn-default { + .badge { + color: $btn-default-bg; + background-color: $btn-primary-bg; + } + } + + .btn-success { + .badge { + color: $btn-success-bg; + } + } + + .btn-warning { + .badge { + color: $btn-warning-bg; + } + } + + .btn-danger { + .badge { + color: $btn-danger-bg; + } + } + + //Badge button bordered variation + + .btn-bordered.btn-primary { + .badge { + background: $btn-primary-bg; + color: $btn-primary-color; + } + + &:hover, + &:focus { + .badge { + background-color: $btn-primary-color; + color: $btn-primary-bg; + } + } + } + + .btn-bordered.btn-success { + .badge { + background: $btn-success-bg; + color: $btn-success-color; + } + + &:hover, + &:focus { + .badge { + background-color: $btn-success-color; + color: $btn-success-bg; + } + } + } + + .btn-bordered.btn-warning { + .badge { + background: $btn-warning-bg; + color: $btn-warning-color; + } + + &:hover, + &:focus { + .badge { + background-color: $btn-warning-color; + color: $btn-warning-bg; + } + } + } + + .btn-bordered.btn-danger { + .badge { + background: $btn-danger-bg; + color: $btn-danger-color; + } + + &:hover, + &:focus { + .badge { + background-color: $btn-danger-color; + color: $btn-danger-bg; + } + } + } +} diff --git a/themesource/atlas_core/web/core/helpers/_button.scss b/themesource/atlas_core/web/core/helpers/_button.scss new file mode 100644 index 0000000..d740a05 --- /dev/null +++ b/themesource/atlas_core/web/core/helpers/_button.scss @@ -0,0 +1,126 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin button-helpers() { + /* ========================================================================== + Button + + //== Design Properties + //## Helper classes to change the look and feel of the component + ========================================================================== */ + // Color variations + .btn, + .btn-default { + @include button-variant($btn-default-color, $btn-default-bg, $btn-default-border-color, $btn-default-bg-hover); + } + + .btn-primary { + @include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border-color, $btn-primary-bg-hover); + } + + .btn-inverse { + @include button-variant($btn-inverse-color, $btn-inverse-bg, $btn-inverse-border-color, $btn-inverse-bg-hover); + } + + .btn-success { + @include button-variant($btn-success-color, $btn-success-bg, $btn-success-border-color, $btn-success-bg-hover); + } + + .btn-info { + @include button-variant($btn-info-color, $btn-info-bg, $btn-info-border-color, $btn-info-bg-hover); + } + + .btn-warning { + @include button-variant($btn-warning-color, $btn-warning-bg, $btn-warning-border-color, $btn-warning-bg-hover); + } + + .btn-danger { + @include button-variant($btn-danger-color, $btn-danger-bg, $btn-danger-border-color, $btn-danger-bg-hover); + } + + // Button Sizes + .btn-lg { + font-size: $font-size-large; + + img { + height: calc(#{$font-size-small} + 4px); + } + } + + .btn-sm { + font-size: $font-size-small; + + img { + height: calc(#{$font-size-small} + 4px); + } + } + + // Button Image + .btn-image { + padding: 0; + vertical-align: middle; + border-style: none; + background-color: transparent; + + img { + display: block; // or else the button doesn't get a width + height: auto; // Image set height + } + + &:hover, + &:focus { + background-color: transparent; + } + } + + // Icon buttons + .btn-icon { + & > img, + & > .glyphicon { + margin: 0; + } + } + + .btn-icon-right { + display: inline-flex; + flex-direction: row-reverse; + align-items: center; + + & > img, + & > .glyphicon { + top: 0; + margin-left: 4px; + } + } + + .btn-icon-top { + padding-right: 0; + padding-left: 0; + + & > img, + & > .glyphicon { + display: block; + margin: 0 0 4px 0; + } + } + + .btn-icon-only { + @extend .btn-icon; + padding: 0; + color: $btn-default-icon-color; + border: none; + } + + .btn-block { + display: block; + width: 100%; + } + + .btn-block + .btn-block { + margin-top: 4px; + } +} diff --git a/themesource/atlas_core/web/core/helpers/_data-grid.scss b/themesource/atlas_core/web/core/helpers/_data-grid.scss new file mode 100644 index 0000000..f81e316 --- /dev/null +++ b/themesource/atlas_core/web/core/helpers/_data-grid.scss @@ -0,0 +1,164 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin data-grid-helpers() { + /* ========================================================================== + Data grid default + + //== Design Properties + //## Helper classes to change the look and feel of the component + ========================================================================== */ + // Striped style + .datagrid-striped.mx-datagrid { + table { + th { + border-width: 0; + } + + tbody tr { + td { + border-top-width: 0; + } + + &:nth-child(odd) td { + background-color: $grid-bg-striped; + } + } + } + } + + // Bordered style + .datagrid-bordered.mx-datagrid { + table { + border: 1px solid; + + th { + border: 1px solid $grid-border-color; + } + + tbody tr { + td { + border: 1px solid $grid-border-color; + } + } + } + + tfoot { + > tr > th { + border-width: 0; + background-color: $grid-footer-bg; + } + + > tr > td { + border-width: 1px; + } + } + } + + // Transparent style so you can see the background + .datagrid-transparent.mx-datagrid { + table { + background-color: transparent; + + tbody tr { + &:nth-of-type(odd) { + background-color: transparent; + } + + td { + background-color: transparent; + } + } + } + } + + // Hover style activated + .datagrid-hover.mx-datagrid { + table { + tbody tr { + &:hover td { + background-color: $grid-bg-hover !important; + } + + &.selected:hover td { + background-color: $grid-bg-selected-hover !important; + } + } + } + } + + // Datagrid Row Sizes + .datagrid-lg.mx-datagrid { + table { + th { + padding: ($grid-padding-top * 2) ($grid-padding-right * 2) ($grid-padding-bottom * 2) + ($grid-padding-left * 2); + } + + tbody tr { + td { + padding: ($grid-padding-top * 2) ($grid-padding-right * 2) ($grid-padding-bottom * 2) + ($grid-padding-left * 2); + } + } + } + } + + .datagrid-sm.mx-datagrid { + table { + th { + padding: ($grid-padding-top / 2) ($grid-padding-right / 2) ($grid-padding-bottom / 2) + ($grid-padding-left / 2); + } + + tbody tr { + td { + padding: ($grid-padding-top / 2) ($grid-padding-right / 2) ($grid-padding-bottom / 2) + ($grid-padding-left/ 2); + } + } + } + } + + // Datagrid Full Search + // Default Mendix Datagrid Widget with adjusted search field. Only 1 search field is allowed + .datagrid-fullsearch.mx-grid { + .mx-grid-search-button { + @extend .btn-primary; + } + + .mx-grid-reset-button { + display: none; + } + + .mx-grid-search-item { + display: block; + } + + .mx-grid-search-label { + display: none; + } + + .mx-grid-searchbar { + .mx-grid-search-controls { + position: absolute; + right: 0; + } + + .mx-grid-search-input { + width: 80%; + padding-left: 0; + + .btn, + .form-control { + height: 35px; + font-size: 12px; + } + } + } + } +} diff --git a/themesource/atlas_core/web/core/helpers/_group-box.scss b/themesource/atlas_core/web/core/helpers/_group-box.scss new file mode 100644 index 0000000..889d28c --- /dev/null +++ b/themesource/atlas_core/web/core/helpers/_group-box.scss @@ -0,0 +1,136 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin group-box-helpers() { + /* ========================================================================== + Group box + + //== Design Properties + //## Helper classes to change the look and feel of the component + ========================================================================== */ + // Color variations + .groupbox-secondary, + .groupbox-default { + @include groupbox-variant($groupbox-default-color, $groupbox-default-bg); + } + + .groupbox-primary { + @include groupbox-variant($groupbox-primary-color, $groupbox-primary-bg); + } + + // Success appears as green + .groupbox-success { + @include groupbox-variant($groupbox-success-color, $groupbox-success-bg); + } + + // Warning appears as orange + .groupbox-warning { + @include groupbox-variant($groupbox-warning-color, $groupbox-warning-bg); + } + + // Danger and error appear as red + .groupbox-danger { + @include groupbox-variant($groupbox-danger-color, $groupbox-danger-bg); + } + + .groupbox-transparent { + > .mx-groupbox-header { + padding: $spacing-small * 1.5 0; + color: $gray-darker; + border-style: none; + background: transparent; + font-weight: $font-weight-semibold; + } + + .mx-groupbox-body { + padding: $spacing-small 0; + border-radius: 0; + border: 0; + border-bottom: 1px solid $groupbox-default-bg; + background-color: transparent; + } + + .mx-groupbox-collapse-icon { + color: $brand-primary; + } + } + + // Callout Look and Feel + .groupbox-callout { + > .mx-groupbox-header, + > .mx-groupbox-body { + border: 0; + background-color: $callout-primary-bg; + } + + > .mx-groupbox-header { + color: $callout-primary-color; + } + + .mx-groupbox-header + .mx-groupbox-body { + padding-top: 0; + } + } + + .groupbox-success.groupbox-callout { + > .mx-groupbox-header, + > .mx-groupbox-body { + background-color: $callout-success-bg; + } + + > .mx-groupbox-header { + color: $callout-success-color; + } + } + + .groupbox-warning.groupbox-callout { + > .mx-groupbox-header, + > .mx-groupbox-body { + background-color: $callout-warning-bg; + } + + > .mx-groupbox-header { + color: $callout-warning-color; + } + } + + .groupbox-danger.groupbox-callout { + > .mx-groupbox-header, + > .mx-groupbox-body { + background-color: $callout-danger-bg; + } + + > .mx-groupbox-header { + color: $callout-danger-color; + } + } + + //Bootstrap variations + + .groupbox-info { + @include groupbox-variant($groupbox-info-color, $groupbox-info-bg); + } + + .groupbox-inverse { + @include groupbox-variant($groupbox-inverse-color, $groupbox-inverse-bg); + } + + .groupbox-white { + @include groupbox-variant($groupbox-white-color, $groupbox-white-bg); + } + + .groupbox-info.groupbox-callout { + > .mx-groupbox-header, + > .mx-groupbox-body { + background-color: $callout-info-bg; + } + + > .mx-groupbox-header { + color: $callout-info-color; + } + } +} diff --git a/themesource/atlas_core/web/core/helpers/_helper-classes.scss b/themesource/atlas_core/web/core/helpers/_helper-classes.scss new file mode 100644 index 0000000..e3b7d6f --- /dev/null +++ b/themesource/atlas_core/web/core/helpers/_helper-classes.scss @@ -0,0 +1,437 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin helper-classes() { + /* ========================================================================== + Helper + + Default Mendix helpers + ========================================================================== */ + $important-helpers-value: if($important-helpers, " !important", ""); + + // Display properties + .d-none { + display: none #{$important-helpers-value}; + } + + .d-flex { + display: flex #{$important-helpers-value}; + } + + .d-inline-flex { + display: inline-flex #{$important-helpers-value}; + } + + .d-inline { + display: inline #{$important-helpers-value}; + } + + .d-inline-block { + display: inline-block #{$important-helpers-value}; + } + + .show, + .d-block { + display: block #{$important-helpers-value}; + } + + .table, + .d-table { + display: table #{$important-helpers-value}; + } + + .table-row, + .d-table-row { + display: table-row #{$important-helpers-value}; + } + + .table-cell, + .d-table-cell { + display: table-cell #{$important-helpers-value}; + } + + .hide, + .hidden { + display: none #{$important-helpers-value}; + visibility: hidden #{$important-helpers-value}; + } + + .invisible { + visibility: hidden #{$important-helpers-value}; + } + + .display-ie8-only:not([attr*=""]) { + display: none #{$important-helpers-value}; + padding: 0 #{$important-helpers-value}; + } + + .list-nostyle { + ul { + margin: 0 #{$important-helpers-value}; + padding: 0 #{$important-helpers-value}; + + li { + list-style-type: none #{$important-helpers-value}; + } + } + } + + .nowrap, + .nowrap * { + overflow: hidden #{$important-helpers-value}; + // Star for inside an element, IE8 span > a + white-space: nowrap #{$important-helpers-value}; + text-overflow: ellipsis #{$important-helpers-value}; + } + + // Render DIV as Table Cells + .table { + display: table #{$important-helpers-value}; + } + + .table-row { + display: table-row #{$important-helpers-value}; + } + + .table-cell { + display: table-cell #{$important-helpers-value}; + } + + // Quick floats + .pull-left { + float: left #{$important-helpers-value}; + } + + .pull-right { + float: right #{$important-helpers-value}; + } + + // Align options + .align-top { + vertical-align: top #{$important-helpers-value}; + } + + .align-middle { + vertical-align: middle #{$important-helpers-value}; + } + + .align-bottom { + vertical-align: bottom #{$important-helpers-value}; + } + + // Flex alignments + .row-left { + display: flex #{$important-helpers-value}; + align-items: center #{$important-helpers-value}; + flex-flow: row #{$important-helpers-value}; + justify-content: flex-start #{$important-helpers-value}; + } + + .row-center { + display: flex #{$important-helpers-value}; + align-items: center #{$important-helpers-value}; + flex-flow: row #{$important-helpers-value}; + justify-content: center #{$important-helpers-value}; + } + + .row-right { + display: flex #{$important-helpers-value}; + align-items: center #{$important-helpers-value}; + flex-flow: row #{$important-helpers-value}; + justify-content: flex-end #{$important-helpers-value}; + } + + .col-left { + display: flex #{$important-helpers-value}; + align-items: flex-start #{$important-helpers-value}; + flex-direction: column #{$important-helpers-value}; + justify-content: center #{$important-helpers-value}; + } + + .col-center { + display: flex #{$important-helpers-value}; + align-items: center #{$important-helpers-value}; + flex-direction: column #{$important-helpers-value}; + justify-content: center #{$important-helpers-value}; + } + + .col-right { + display: flex #{$important-helpers-value}; + align-items: flex-end #{$important-helpers-value}; + flex-direction: column #{$important-helpers-value}; + justify-content: center #{$important-helpers-value}; + } + + .shadow-small { + box-shadow: $shadow-small $shadow-color; + margin-bottom: 5px; + border-width: 1px #{$important-helpers-value}; + border-style: solid; + border-color: $shadow-color-border; + } + .shadow-medium { + box-shadow: $shadow-medium $shadow-color; + margin-bottom: 15px; + border-width: 1px #{$important-helpers-value}; + border-style: solid; + border-color: $shadow-color-border; + } + + .shadow-large { + box-shadow: $shadow-large $shadow-color; + margin-bottom: 25px; + border-width: 1px #{$important-helpers-value}; + border-style: solid; + border-color: $shadow-color-border; + } + + // Media + @media (max-width: $screen-sm-max) { + .hide-phone { + display: none #{$important-helpers-value}; + } + } + + @media (min-width: $screen-md) and (max-width: $screen-md-max) { + .hide-tablet { + display: none #{$important-helpers-value}; + } + } + + @media (min-width: $screen-lg) { + .hide-desktop { + display: none #{$important-helpers-value}; + } + } + + @media (max-width: $screen-xs-max) { + .hide-xs, + .hidden-xs, + .d-xs-none { + display: none #{$important-helpers-value}; + } + .d-xs-flex { + display: flex #{$important-helpers-value}; + } + .d-xs-inline-flex { + display: inline-flex #{$important-helpers-value}; + } + .d-xs-inline { + display: inline #{$important-helpers-value}; + } + .d-xs-inline-block { + display: inline-block #{$important-helpers-value}; + } + .d-xs-block { + display: block #{$important-helpers-value}; + } + .d-xs-table { + display: table #{$important-helpers-value}; + } + .d-xs-table-row { + display: table-row #{$important-helpers-value}; + } + .d-xs-table-cell { + display: table-cell #{$important-helpers-value}; + } + } + + @media (min-width: $screen-sm) and (max-width: $screen-sm-max) { + .hide-sm, + .hidden-sm, + .d-sm-none { + display: none #{$important-helpers-value}; + } + .d-sm-flex { + display: flex #{$important-helpers-value}; + } + .d-sm-inline-flex { + display: inline-flex #{$important-helpers-value}; + } + .d-sm-inline { + display: inline #{$important-helpers-value}; + } + .d-sm-inline-block { + display: inline-block #{$important-helpers-value}; + } + .d-sm-block { + display: block #{$important-helpers-value}; + } + .d-sm-table { + display: table #{$important-helpers-value}; + } + .d-sm-table-row { + display: table-row #{$important-helpers-value}; + } + .d-sm-table-cell { + display: table-cell #{$important-helpers-value}; + } + } + + @media (min-width: $screen-md) and (max-width: $screen-md-max) { + .hide-md, + .hidden-md, + .d-md-none { + display: none #{$important-helpers-value}; + } + .d-md-flex { + display: flex #{$important-helpers-value}; + } + .d-md-inline-flex { + display: inline-flex #{$important-helpers-value}; + } + .d-md-inline { + display: inline #{$important-helpers-value}; + } + .d-md-inline-block { + display: inline-block #{$important-helpers-value}; + } + .d-md-block { + display: block #{$important-helpers-value}; + } + .d-md-table { + display: table #{$important-helpers-value}; + } + .d-md-table-row { + display: table-row #{$important-helpers-value}; + } + .d-md-table-cell { + display: table-cell #{$important-helpers-value}; + } + } + + @media (min-width: $screen-lg) and (max-width: $screen-xl) { + .hide-lg, + .hidden-lg, + .d-lg-none { + display: none #{$important-helpers-value}; + } + .d-lg-flex { + display: flex #{$important-helpers-value}; + } + .d-lg-inline-flex { + display: inline-flex #{$important-helpers-value}; + } + .d-lg-inline { + display: inline #{$important-helpers-value}; + } + .d-lg-inline-block { + display: inline-block #{$important-helpers-value}; + } + .d-lg-block { + display: block #{$important-helpers-value}; + } + .d-lg-table { + display: table #{$important-helpers-value}; + } + .d-lg-table-row { + display: table-row #{$important-helpers-value}; + } + .d-lg-table-cell { + display: table-cell #{$important-helpers-value}; + } + } + + @media (min-width: $screen-xl) { + .hide-xl, + .hidden-xl, + .d-xl-none { + display: none #{$important-helpers-value}; + } + .d-xl-flex { + display: flex #{$important-helpers-value}; + } + .d-xl-inline-flex { + display: inline-flex #{$important-helpers-value}; + } + .d-xl-inline { + display: inline #{$important-helpers-value}; + } + .d-xl-inline-block { + display: inline-block #{$important-helpers-value}; + } + .d-xl-block { + display: block #{$important-helpers-value}; + } + .d-xl-table { + display: table #{$important-helpers-value}; + } + .d-xl-table-row { + display: table-row #{$important-helpers-value}; + } + .d-xl-table-cell { + display: table-cell #{$important-helpers-value}; + } + } + + //Box-shadow + + .shadow { + box-shadow: 0 2px 20px 1px rgba(5, 15, 129, 0.05) #{$important-helpers-value}; + } + + //Height helpers + + .h-25 { + height: 25% #{$important-helpers-value}; + } + + .h-50 { + height: 50% #{$important-helpers-value}; + } + + .h-75 { + height: 75% #{$important-helpers-value}; + } + + .h-100 { + height: 100% #{$important-helpers-value}; + } + + //Width helpers + + .w-25 { + width: 25% #{$important-helpers-value}; + } + + .w-50 { + width: 50% #{$important-helpers-value}; + } + + .w-75 { + width: 75% #{$important-helpers-value}; + } + + .w-100 { + width: 100% #{$important-helpers-value}; + } + + //Border helpers + .border { + border: 1px solid $border-color-default #{$important-helpers-value}; + } + + .border-top { + border-top: 1px solid $border-color-default #{$important-helpers-value}; + } + + .border-bottom { + border-bottom: 1px solid $border-color-default #{$important-helpers-value}; + } + + .border-left { + border-left: 1px solid $border-color-default #{$important-helpers-value}; + } + + .border-right { + border-right: 1px solid $border-color-default #{$important-helpers-value}; + } + + .border-rounded { + border-radius: $border-radius-default #{$important-helpers-value}; + } +} diff --git a/themesource/atlas_core/web/core/helpers/_image.scss b/themesource/atlas_core/web/core/helpers/_image.scss new file mode 100644 index 0000000..701ec99 --- /dev/null +++ b/themesource/atlas_core/web/core/helpers/_image.scss @@ -0,0 +1,105 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin image-helpers() { + /* ========================================================================== + Image + + Default Mendix image widgets + ========================================================================== */ + + img.img-rounded, + .img-rounded img { + border-radius: 6px; + } + + img.img-thumbnail, + .img-thumbnail img { + display: inline-block; + max-width: 100%; + height: auto; + padding: 4px; + transition: all 0.2s ease-in-out; + border: 1px solid $brand-default; + border-radius: 4px; + background-color: #ffffff; + line-height: $line-height-base; + } + + img.img-circle, + .img-circle img { + border-radius: 50%; + } + + img.img-auto, + .img-auto img { + width: auto !important; + max-width: 100% !important; + height: auto !important; + max-height: 100% !important; + } + + img.img-center, + .img-center img { + margin-right: auto !important; + margin-left: auto !important; + } + + img.img-icon { + width: 20px; + height: 20px; + padding: 2px; + border-radius: 50%; + } + + img.img-fill, + .img-fill img { + object-fit: fill; + } + + img.img-contain, + .img-contain img { + object-fit: contain; + } + + img.img-cover, + .img-cover img { + object-fit: cover; + } + + img.img-scale-down, + .img-scale-down img { + object-fit: scale-down; + } + + .img-contain.mx-image-background { + background-size: contain; + } + + .img-cover.mx-image-background { + background-size: cover; + } + + .img-auto.mx-image-background { + background-size: auto; + } + + .img-opacity-low img, + .img-opacity-low.mx-image-background { + opacity: 0.3; + } + + .img-opacity-medium img, + .img-opacity-medium.mx-image-background { + opacity: 0.5; + } + + .img-opacity-high img, + .img-opacity-high.mx-image-background { + opacity: 0.7; + } +} diff --git a/themesource/atlas_core/web/core/helpers/_label.scss b/themesource/atlas_core/web/core/helpers/_label.scss new file mode 100644 index 0000000..02663f0 --- /dev/null +++ b/themesource/atlas_core/web/core/helpers/_label.scss @@ -0,0 +1,52 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin label-helpers() { + /* ========================================================================== + Label + + //== Design Properties + //## Helper classes to change the look and feel of the component including + badge widget + ========================================================================== */ + // Color variations + .label-secondary, + .label-default { + color: $label-default-color; + background-color: $label-default-bg; + } + + .label-primary { + color: $label-primary-color; + background-color: $label-primary-bg; + } + + .label-success { + color: $label-success-color; + background-color: $label-success-bg; + } + + .label-inverse { + color: $label-inverse-color; + background-color: $label-inverse-bg; + } + + .label-info { + color: $label-info-color; + background-color: $label-info-bg; + } + + .label-warning { + color: $label-warning-color; + background-color: $label-warning-bg; + } + + .label-danger { + color: $label-danger-color; + background-color: $label-danger-bg; + } +} diff --git a/themesource/atlas_core/web/core/helpers/_list-view.scss b/themesource/atlas_core/web/core/helpers/_list-view.scss new file mode 100644 index 0000000..1fc5d5f --- /dev/null +++ b/themesource/atlas_core/web/core/helpers/_list-view.scss @@ -0,0 +1,320 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin list-view-helpers() { + /* ========================================================================== + List view + + //== Design Properties + //## Helper classes to change the look and feel of the component + ========================================================================== */ + + // List items lined + .listview-lined.mx-listview { + & > ul > li { + border-top: 1px solid $grid-border-color; + + &:first-child { + border-top: 1px solid $grid-border-color; + } + + &:last-child { + border-bottom: 1px solid $grid-border-color; + } + } + } + + //List items Bordered + .listview-bordered.mx-listview { + & > ul > li { + border: 1px solid $grid-border-color; + border-top: 0; + + &:first-child { + border-top: 1px solid $grid-border-color; + } + + &:last-child { + } + } + } + + // List items striped + .listview-striped.mx-listview { + & > ul > li:nth-child(2n + 1) { + background-color: $grid-bg-striped; + } + } + + // Items as seperated blocks + .listview-seperated.mx-listview { + & > ul > li { + margin-bottom: $spacing-medium; + border: 1px solid $grid-border-color; + border-radius: $border-radius-default; + } + } + + // Remove all styling - deprecated + .listview-stylingless.mx-listview { + & > ul > li { + padding: unset; + cursor: default; + border: unset; + background-color: transparent; + + &:hover, + &:focus, + &:active { + background-color: transparent; + } + + &.selected { + background-color: transparent !important; + + &:hover, + &:focus, + &:active { + background-color: transparent !important; + } + } + } + } + + // Hover style activated + .listview-hover.mx-listview { + & > ul > li { + cursor: pointer; + + &:hover, + &:focus, + &:active { + background-color: $grid-bg-hover; + } + + &.selected { + &:hover, + &:focus, + &:active { + background-color: $grid-bg-selected-hover; + } + } + } + } + + // Row Sizes + + .listview-sm.mx-listview { + & > ul > li { + padding: $spacing-small; + } + } + + .listview-lg.mx-listview { + & > ul > li { + padding: $spacing-large; + } + } + + // Bootstrap columns + .mx-listview[class*="lv-col"] { + overflow: hidden; // For if it is not in a layout, to prevent scrollbars + & > ul { + display: flex; // normal a table + flex-wrap: wrap; + margin-right: -1 * $gutter-size; + margin-left: -1 * $gutter-size; + + &::before, + &::after { + // clearfix + display: table; + clear: both; + content: " "; + } + + & > li { + // bootstrap col + position: relative; + min-height: 1px; + padding-right: $gutter-size; + padding-left: $gutter-size; + border: 0; + @media (max-width: $screen-md-max) { + width: 100% !important; + } + + & > .mx-dataview { + overflow: hidden; + } + } + } + + &.lv-col-xs-12 > ul > li { + width: 100% !important; + } + + &.lv-col-xs-11 > ul > li { + width: 91.66666667% !important; + } + + &.lv-col-xs-10 > ul > li { + width: 83.33333333% !important; + } + + &.lv-col-xs-9 > ul > li { + width: 75% !important; + } + + &.lv-col-xs-8 > ul > li { + width: 66.66666667% !important; + } + + &.lv-col-xs-7 > ul > li { + width: 58.33333333% !important; + } + + &.lv-col-xs-6 > ul > li { + width: 50% !important; + } + + &.lv-col-xs-5 > ul > li { + width: 41.66666667% !important; + } + + &.lv-col-xs-4 > ul > li { + width: 33.33333333% !important; + } + + &.lv-col-xs-3 > ul > li { + width: 25% !important; + } + + &.lv-col-xs-2 > ul > li { + width: 16.66666667% !important; + } + + &.lv-col-xs-1 > ul > li { + width: 8.33333333% !important; + } + + @media (min-width: $screen-md) { + &.lv-col-sm-12 > ul > li { + width: 100% !important; + } + &.lv-col-sm-11 > ul > li { + width: 91.66666667% !important; + } + &.lv-col-sm-10 > ul > li { + width: 83.33333333% !important; + } + &.lv-col-sm-9 > ul > li { + width: 75% !important; + } + &.lv-col-sm-8 > ul > li { + width: 66.66666667% !important; + } + &.lv-col-sm-7 > ul > li { + width: 58.33333333% !important; + } + &.lv-col-sm-6 > ul > li { + width: 50% !important; + } + &.lv-col-sm-5 > ul > li { + width: 41.66666667% !important; + } + &.lv-col-sm-4 > ul > li { + width: 33.33333333% !important; + } + &.lv-col-sm-3 > ul > li { + width: 25% !important; + } + &.lv-col-sm-2 > ul > li { + width: 16.66666667% !important; + } + &.lv-col-sm-1 > ul > li { + width: 8.33333333% !important; + } + } + @media (min-width: $screen-lg) { + &.lv-col-md-12 > ul > li { + width: 100% !important; + } + &.lv-col-md-11 > ul > li { + width: 91.66666667% !important; + } + &.lv-col-md-10 > ul > li { + width: 83.33333333% !important; + } + &.lv-col-md-9 > ul > li { + width: 75% !important; + } + &.lv-col-md-8 > ul > li { + width: 66.66666667% !important; + } + &.lv-col-md-7 > ul > li { + width: 58.33333333% !important; + } + &.lv-col-md-6 > ul > li { + width: 50% !important; + } + &.lv-col-md-5 > ul > li { + width: 41.66666667% !important; + } + &.lv-col-md-4 > ul > li { + width: 33.33333333% !important; + } + &.lv-col-md-3 > ul > li { + width: 25% !important; + } + &.lv-col-md-2 > ul > li { + width: 16.66666667% !important; + } + &.lv-col-md-1 > ul > li { + width: 16.66666667% !important; + } + } + @media (min-width: $screen-xl) { + &.lv-col-lg-12 > ul > li { + width: 100% !important; + } + &.lv-col-lg-11 > ul > li { + width: 91.66666667% !important; + } + &.lv-col-lg-10 > ul > li { + width: 83.33333333% !important; + } + &.lv-col-lg-9 > ul > li { + width: 75% !important; + } + &.lv-col-lg-8 > ul > li { + width: 66.66666667% !important; + } + &.lv-col-lg-7 > ul > li { + width: 58.33333333% !important; + } + &.lv-col-lg-6 > ul > li { + width: 50% !important; + } + &.lv-col-lg-5 > ul > li { + width: 41.66666667% !important; + } + &.lv-col-lg-4 > ul > li { + width: 33.33333333% !important; + } + &.lv-col-lg-3 > ul > li { + width: 25% !important; + } + &.lv-col-lg-2 > ul > li { + width: 16.66666667% !important; + } + &.lv-col-lg-1 > ul > li { + width: 8.33333333% !important; + } + } + } +} diff --git a/themesource/atlas_core/web/core/helpers/_navigation-bar.scss b/themesource/atlas_core/web/core/helpers/_navigation-bar.scss new file mode 100644 index 0000000..c20fc08 --- /dev/null +++ b/themesource/atlas_core/web/core/helpers/_navigation-bar.scss @@ -0,0 +1,219 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin navigation-bar-helpers() { + /* ========================================================================== + Navigation + + //== Regions + //## Behavior in the different regions + ========================================================================== */ + // When used in topbar + .region-topbar { + .mx-navbar { + background-color: $navtopbar-bg; + min-height: auto; + ul.nav { + > .mx-navbar-item { + margin-left: $spacing-small; + } + /* Navigation item */ + & > li.mx-navbar-item > a { + color: $navtopbar-color; + font-size: $navtopbar-font-size; + line-height: 1.2; + /* Dropdown arrow */ + .caret { + border-top-color: $navtopbar-color; + border-bottom-color: $navtopbar-color; + } + &:hover, + &:focus, + &.active { + color: $navtopbar-color-hover; + background-color: $navtopbar-bg-hover; + .caret { + border-top-color: $navtopbar-color-active; + border-bottom-color: $navtopbar-color-active; + } + } + &.active { + color: $navtopbar-color-active; + background-color: $navtopbar-bg-active; + } + + /* Dropdown */ + .mx-navbar-submenu::before { + border-color: transparent transparent $navtopbar-border-color transparent; + } + + // Image + .glyphicon { + font-size: $navtopbar-glyph-size; + } + } + + /* When hovering or the dropdown is open */ + & > .mx-navbar-item > a:hover, + & > .mx-navbar-item > a:focus, + & > .mx-navbar-item.active a, + & > .mx-navbar-item.open > a, + & > .mx-navbar-item.open > a:hover, + & > .mx-navbar-item.open > a:focus { + color: $navtopbar-color-hover; + background-color: $navtopbar-bg-hover; + .caret { + border-top-color: $navtopbar-color-hover; + border-bottom-color: $navtopbar-color-hover; + } + } + + & > .mx-navbar-item.open .dropdown-menu { + border-radius: $border-radius-default; + background-color: $navtopbar-sub-bg; + padding: $spacing-small $spacing-small 0; + margin: 0; + border: 0; + box-shadow: 0px 2px 2px rgba(194, 196, 201, 0.30354); + & > li.mx-navbar-subitem a { + padding: $spacing-small; + color: $navtopbar-color; + border-radius: $border-radius-default; + margin-bottom: $spacing-small; + line-height: 1.2; + &:hover, + &:focus { + color: $navtopbar-color-hover; + background-color: $navtopbar-sub-bg-hover; + } + } + } + & > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem.active a { + color: $navtopbar-sub-color-active; + background-color: $navtopbar-sub-bg-active; + .caret { + border-top-color: $navtopbar-sub-color-active; + border-bottom-color: $navtopbar-sub-color-active; + } + } + } + @media (max-width: $screen-md) { + ul.nav > li.mx-navbar-item > a { + } + .mx-navbar-item.open .dropdown-menu { + background-color: $navtopbar-sub-bg; + & > li.mx-navbar-subitem > a { + color: $navtopbar-sub-color; + font-size: $navtopbar-sub-font-size; + &:hover, + &:focus { + color: $navtopbar-sub-color-hover; + background-color: $navtopbar-sub-bg-hover; + } + &.active { + color: $navtopbar-sub-color-active; + background-color: $navtopbar-sub-bg-active; + } + } + } + } + } + } + + // When used in sidebar + .region-sidebar { + .mx-navbar { + background-color: $navsidebar-bg; + ul.nav { + /* Navigation item */ + & > li.mx-navbar-item > a { + color: $navsidebar-color; + font-size: $navsidebar-font-size; + + /* Dropdown arrow */ + .caret { + border-top-color: $navsidebar-color; + border-bottom-color: $navsidebar-color; + } + &:hover, + &:focus, + &.active { + color: $navsidebar-color-hover; + background-color: $navsidebar-bg-hover; + .caret { + border-top-color: $navsidebar-color-active; + border-bottom-color: $navsidebar-color-active; + } + } + &.active { + color: $navsidebar-color-active; + background-color: $navsidebar-bg-active; + } + + /* Dropdown */ + .mx-navbar-submenu::before { + border-color: transparent transparent $navsidebar-border-color transparent; + } + + // Image + .glyphicon { + font-size: $navsidebar-glyph-size; + } + } + + /* When hovering or the dropdown is open */ + & > .mx-navbar-item > a:hover, + & > .mx-navbar-item > a:focus, + & > .mx-navbar-item.active a, + & > .mx-navbar-item.open > a, + & > .mx-navbar-item.open > a:hover, + & > .mx-navbar-item.open > a:focus { + color: $navsidebar-color-hover; + background-color: $navsidebar-bg-hover; + .caret { + border-top-color: $navsidebar-color-hover; + border-bottom-color: $navsidebar-color-hover; + } + } + & > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem.active a { + color: $navsidebar-sub-color-active; + background-color: $navsidebar-sub-bg-active; + .caret { + border-top-color: $navsidebar-sub-color-active; + border-bottom-color: $navsidebar-sub-color-active; + } + } + } + @media (max-width: $screen-md) { + ul.nav > li.mx-navbar-item > a { + } + .mx-navbar-item.open .dropdown-menu { + background-color: $navtopbar-sub-bg; + & > li.mx-navbar-subitem > a { + color: $navsidebar-sub-color; + font-size: $navsidebar-sub-font-size; + &:hover, + &:focus { + color: $navsidebar-sub-color-hover; + background-color: $navsidebar-sub-bg-hover; + } + &.active { + color: $navsidebar-sub-color-active; + background-color: $navsidebar-sub-bg-active; + } + } + } + } + } + } + + .hide-icons.mx-navbar { + .glyphicon { + display: none; + } + } +} diff --git a/themesource/atlas_core/web/core/helpers/_navigation-tree.scss b/themesource/atlas_core/web/core/helpers/_navigation-tree.scss new file mode 100644 index 0000000..cc32c56 --- /dev/null +++ b/themesource/atlas_core/web/core/helpers/_navigation-tree.scss @@ -0,0 +1,173 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin navigation-tree-helpers() { + /* ========================================================================== + Navigation + + //== Regions + //## Behavior in the different regions + ========================================================================== */ + // When used in topbar + .region-topbar { + .mx-navigationtree { + background-color: $navtopbar-bg; + .navbar-inner > ul { + & > li { + & > a { + color: $navtopbar-color; + border-color: $navtopbar-border-color; + background-color: $navtopbar-bg; + font-size: $navtopbar-font-size; + .caret { + border-top-color: $navtopbar-color; + border-bottom-color: $navtopbar-color; + } + + .glyphicon { + font-size: $navtopbar-glyph-size; + } + } + a:hover, + a:focus, + a.active { + color: $navtopbar-color-hover; + background-color: $navtopbar-bg-hover; + .caret { + border-top-color: $navtopbar-color-active; + border-bottom-color: $navtopbar-color-active; + } + } + a.active { + color: $navtopbar-color-active; + border-left-color: $navtopbar-color-active; + background-color: $navtopbar-bg-active; + } + } + } + + /* Sub navigation item specific */ + li.mx-navigationtree-has-items { + & > ul { + background-color: $navtopbar-sub-bg; + li { + a { + color: $navtopbar-sub-color; + background-color: $navtopbar-sub-bg; + font-size: $navtopbar-sub-font-size; + &:hover, + &:focus, + &.active { + color: $navtopbar-sub-color-hover; + background-color: $navtopbar-sub-bg-hover; + } + &.active { + color: $navtopbar-sub-color-active; + background-color: $navtopbar-sub-bg-active; + } + } + } + } + } + } + } + + // When used in sidebar + .region-sidebar { + .mx-navigationtree { + background-color: $navsidebar-bg; + .navbar-inner > ul { + & > li { + & > a { + color: $navsidebar-color; + border-color: $navsidebar-border-color; + background-color: $navsidebar-bg; + font-size: $navsidebar-font-size; + .caret { + border-top-color: $navsidebar-color; + border-bottom-color: $navsidebar-color; + } + + .glyphicon { + font-size: $navsidebar-glyph-size; + } + } + a:hover, + a:focus, + a.active { + color: $navsidebar-color-hover; + background-color: $navsidebar-bg-hover; + .caret { + border-top-color: $navsidebar-color-active; + border-bottom-color: $navsidebar-color-active; + } + } + a.active { + color: $navsidebar-color-active; + border-left-color: $navsidebar-color-active; + background-color: $navsidebar-bg-active; + } + } + } + + /* Sub navigation item specific */ + li.mx-navigationtree-has-items { + & > ul { + background-color: $navsidebar-sub-bg; + li { + a { + color: $navsidebar-sub-color; + background-color: $navsidebar-sub-bg; + font-size: $navsidebar-sub-font-size; + &:hover, + &:focus, + &.active { + color: $navsidebar-sub-color-hover; + background-color: $navsidebar-sub-bg-hover; + } + &.active { + color: $navsidebar-sub-color-active; + background-color: $navsidebar-sub-bg-active; + } + } + } + } + } + } + } + + //== Design Properties + //## Helper classes to change the look and feel of the component + //-------------------------------------------------------------------------------------------------------------------// + // Content Centerd text and icons + .nav-content-center-text-icons.mx-navigationtree { + .navbar-inner ul { + a { + flex-direction: column; + justify-content: center; + .glyphicon { + margin: 0 0 5px 0; + } + } + } + } + + // Content Centerd icons only + .nav-content-center.mx-navigationtree { + .navbar-inner ul { + a { + justify-content: center; + } + } + } + + .hide-icons.mx-navigationtree { + .glyphicon { + display: none; + } + } +} diff --git a/themesource/atlas_core/web/core/helpers/_progress-bar.scss b/themesource/atlas_core/web/core/helpers/_progress-bar.scss new file mode 100644 index 0000000..b461b41 --- /dev/null +++ b/themesource/atlas_core/web/core/helpers/_progress-bar.scss @@ -0,0 +1,87 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin progress-bar-helpers() { + /* ========================================================================== + Progress Bar + + //== Design Properties + //## Helper classes to change the look and feel of the component + ========================================================================== */ + + .widget-progress-bar { + width: 100%; + + .progress { + border-radius: $border-radius-default; + background-color: $bg-color; + } + } + + .progress-bar-medium .progress, + .progress-bar-medium .progress-bar { + height: 16px; + line-height: 16px; + font-size: $font-size-small; + } + + .progress-bar-small .progress, + .progress-bar-small .progress-bar { + height: 8px; + line-height: 8px; + font-size: 0px; + } + + .progress-bar-small .progress-bar > * { + // Specifically to hide custom labels. + display: none; + } + + .progress-bar-large .progress, + .progress-bar-large .progress-bar { + height: 24px; + line-height: 24px; + font-size: $font-size-default; + } + + .widget-progress-bar-clickable:hover { + cursor: pointer; + } + + .widget-progress-bar.progress-bar-primary .progress-bar { + background-color: $brand-primary; + } + + .widget-progress-bar.progress-bar-success .progress-bar { + background-color: $brand-success; + } + + .widget-progress-bar.progress-bar-warning .progress-bar { + background-color: $brand-warning; + } + + .widget-progress-bar.progress-bar-danger .progress-bar { + background-color: $brand-danger; + } + + .widget-progress-bar-alert.widget-progress-bar-text-contrast .progress-bar { + color: $color-danger-darker; + } + + .widget-progress-bar-text-contrast .progress-bar { + color: $font-color-default; + } + + .widget-progress-bar-negative { + float: right; + display: block; + } + + .widget-progress-bar > .alert { + margin-top: 24px; + } +} diff --git a/themesource/atlas_core/web/core/helpers/_progress-circle.scss b/themesource/atlas_core/web/core/helpers/_progress-circle.scss new file mode 100644 index 0000000..860bad2 --- /dev/null +++ b/themesource/atlas_core/web/core/helpers/_progress-circle.scss @@ -0,0 +1,115 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin progress-circle-helpers() { + /* ========================================================================== + Progress Circle + + //== Design Properties + //## Helper classes to change the look and feel of the component + ========================================================================== */ + + //== Progress circle and label colors + .widget-progress-circle-primary { + .widget-progress-circle-path { + stroke: $brand-primary; + } + + .progressbar-text { + color: $brand-primary !important; + } + } + + .widget-progress-circle-success { + .widget-progress-circle-path { + stroke: $brand-success; + } + + .progressbar-text { + color: $brand-success !important; + } + } + + .widget-progress-circle-warning { + .widget-progress-circle-path { + stroke: $brand-warning; + } + + .progressbar-text { + color: $brand-warning !important; + } + } + + .widget-progress-circle-danger { + .widget-progress-circle-path { + stroke: $brand-danger; + } + + .progressbar-text { + color: $brand-danger !important; + } + } + + //== Sizes + .widget-progress-circle-thickness-medium { + .widget-progress-circle-trail-path, + .widget-progress-circle-path { + stroke-width: 8px; + } + } + + .widget-progress-circle-thickness-small { + .widget-progress-circle-trail-path, + .widget-progress-circle-path { + stroke-width: 4px; + } + } + + .widget-progress-circle-thickness-large { + .widget-progress-circle-trail-path, + .widget-progress-circle-path { + stroke-width: 16px; + } + } + + //== Progress label container + .progress-circle-label-container { + position: relative; + margin: 0; + + .progressbar-text { + position: absolute; + left: 50%; + top: 50%; + padding: 0px; + margin: 0px; + transform: translate(-50%, -50%); + // Original default from the `progressbar.js` library + color: rgb(85, 85, 85); + } + } + + .widget-progress-circle-clickable { + cursor: pointer; + } + + @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { + .widget-progress-circle > div { + height: 0; + padding: 0; + width: 100%; + padding-bottom: 100%; + + & > svg { + top: 0; + left: 0; + height: 100%; + position: absolute; + } + } + } +} diff --git a/themesource/atlas_core/web/core/helpers/_range-slider.scss b/themesource/atlas_core/web/core/helpers/_range-slider.scss new file mode 100644 index 0000000..63bd758 --- /dev/null +++ b/themesource/atlas_core/web/core/helpers/_range-slider.scss @@ -0,0 +1,33 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@import "slider-color-variant"; + +@mixin range-slider-helpers() { + /* ========================================================================== + Range Slider + + //== Design Properties + //## Helper classes to change the look and feel of the component + ========================================================================== */ + + .widget-range-slider-primary { + @include slider-color-variant($brand-primary); + } + + .widget-range-slider-success { + @include slider-color-variant($brand-success); + } + + .widget-range-slider-warning { + @include slider-color-variant($brand-warning); + } + + .widget-range-slider-danger { + @include slider-color-variant($brand-danger); + } +} diff --git a/themesource/atlas_core/web/core/helpers/_rating.scss b/themesource/atlas_core/web/core/helpers/_rating.scss new file mode 100644 index 0000000..f15d2d8 --- /dev/null +++ b/themesource/atlas_core/web/core/helpers/_rating.scss @@ -0,0 +1,58 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin rating-helpers() { + /* ========================================================================== + Rating + + //== Design Properties + //## Helper classes to change the look and feel of the component + ========================================================================== */ + + .widget-star-rating-full-primary { + color: $brand-primary; + } + + .widget-star-rating-full-success { + color: $brand-success; + } + + .widget-star-rating-full-info { + color: $brand-info; + } + + .widget-star-rating-full-warning { + color: $brand-warning; + } + + .widget-star-rating-full-danger { + color: $brand-danger; + } + + .widget-star-rating-full-inverse { + color: $brand-inverse; + } + + .widget-rating { + &.widget-rating-small { + .rating-icon { + font-size: 16px; + } + .rating-image { + height: 16px; + } + } + &.widget-rating-large { + .rating-icon { + font-size: 32px; + } + .rating-image { + height: 32px; + } + } + } +} diff --git a/themesource/atlas_core/web/core/helpers/_simple-menu-bar.scss b/themesource/atlas_core/web/core/helpers/_simple-menu-bar.scss new file mode 100644 index 0000000..90cd79f --- /dev/null +++ b/themesource/atlas_core/web/core/helpers/_simple-menu-bar.scss @@ -0,0 +1,45 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin simple-menu-bar-helpers() { + /* ========================================================================== + Navigation + + //== Design Properties + //## Helper classes to change the look and feel of the component + ========================================================================== */ + // Center text and icons + .bottom-nav-text-icons.mx-menubar { + ul.mx-menubar-list { + li.mx-menubar-item { + flex: 1; + a { + flex-direction: column; + padding: $spacing-small $spacing-small $spacing-small/2; + line-height: normal; + font-size: $font-size-small; + .glyphicon { + display: block; + margin: 0 0 $spacing-small/2 0; + font-size: $font-size-large; + } + img { + display: block; + height: $font-size-large; + margin: 0 0 $spacing-small/2 0; + } + } + } + } + } + + .hide-icons.mx-menubar { + .glyphicon { + display: none; + } + } +} diff --git a/themesource/atlas_core/web/core/helpers/_slider-color-variant.scss b/themesource/atlas_core/web/core/helpers/_slider-color-variant.scss new file mode 100644 index 0000000..ded6016 --- /dev/null +++ b/themesource/atlas_core/web/core/helpers/_slider-color-variant.scss @@ -0,0 +1,28 @@ +@mixin slider-color-variant($color) { + .rc-slider:not(.rc-slider-disabled) { + .rc-slider-track { + background-color: $color; + } + + .rc-slider-handle:focus { + border-color: $color; + box-shadow: 0 0 0 5px lighten($color, 25%); + outline: none; + } + + .rc-slider-handle-click-focused:focus { + border-color: lighten($color, 25%); + box-shadow: unset; + } + + .rc-slider-dot-active, + .rc-slider-handle:hover { + border-color: $color; + } + + .rc-slider-handle:active { + border-color: $color; + box-shadow: 0 0 5px $color; + } + } +} diff --git a/themesource/atlas_core/web/core/helpers/_slider.scss b/themesource/atlas_core/web/core/helpers/_slider.scss new file mode 100644 index 0000000..cc259d2 --- /dev/null +++ b/themesource/atlas_core/web/core/helpers/_slider.scss @@ -0,0 +1,32 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// +@import "slider-color-variant"; + +@mixin slider-helpers() { + /* ========================================================================== + Slider + + //== Design Properties + //## Helper classes to change the look and feel of the component + ========================================================================== */ + + .widget-slider-primary { + @include slider-color-variant($brand-primary); + } + + .widget-slider-success { + @include slider-color-variant($brand-success); + } + + .widget-slider-warning { + @include slider-color-variant($brand-warning); + } + + .widget-slider-danger { + @include slider-color-variant($brand-danger); + } +} diff --git a/themesource/atlas_core/web/core/helpers/_tab-container.scss b/themesource/atlas_core/web/core/helpers/_tab-container.scss new file mode 100644 index 0000000..e4719d8 --- /dev/null +++ b/themesource/atlas_core/web/core/helpers/_tab-container.scss @@ -0,0 +1,202 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin tab-container-helpers() { + /* ========================================================================== + Tab container + + //== Design Properties + //## Helper classes to change the look and feel of the component + ========================================================================== */ + // Style as pills + .tab-pills.mx-tabcontainer { + & > .mx-tabcontainer-tabs { + border: 0; + + & > li { + margin-bottom: $spacing-small; + } + + & > li > a { + margin-right: $spacing-small; + color: $tabs-color; + border-radius: $border-radius-default; + background-color: $tabs-bg-pills; + + &:hover, + &:focus { + background-color: $tabs-bg-hover; + } + } + + & > li.active > a, + & > li.active > a:hover, + & > li.active > a:focus { + color: #ffffff; + border-color: $tabs-bg-active; + background-color: $tabs-bg-active; + } + } + } + + // Style with lines + .tab-lined.mx-tabcontainer { + & > .mx-tabcontainer-tabs { + border-width: 1px; + + li { + margin-right: $spacing-large; + + & > a { + padding: $spacing-medium 0 ($spacing-medium - $tabs-lined-border-width) 0; // border is 3px + color: $tabs-color; + border: 0; + border-bottom: $tabs-lined-border-width solid transparent; + border-radius: 0; + + &:hover, + &:focus { + color: $tabs-color; + border: 0; + border-color: transparent; + background: transparent; + } + } + + &.active > a, + &.active > a:hover, + &.active > a:focus { + color: $tabs-lined-color-active; + border: 0; + border-bottom: $tabs-lined-border-width solid $tabs-lined-border-color; + background-color: transparent; + } + } + } + } + + // Justified style + // Lets your tabs take 100% of the width + .tab-justified.mx-tabcontainer { + & > .mx-tabcontainer-tabs { + width: 100%; + border-bottom: 0; + + & > li { + flex: 1; + float: none; // reset bootstrap + margin: 0; + @media (max-width: $screen-sm-max) { + display: block; + width: 100%; + } + + & > a { + text-align: center; + } + } + } + } + + // Bordered + .tab-bordered.mx-tabcontainer { + & > .mx-tabcontainer-tabs { + margin: 0; + } + + & > .mx-tabcontainer-content { + padding: $spacing-small; + border-width: 0 1px 1px 1px; + border-style: solid; + border-color: $tabs-border-color; + background-color: transparent; + } + } + + // Wizard + .tab-wizard.mx-tabcontainer { + & > .mx-tabcontainer-tabs { + position: relative; + display: flex; + justify-content: space-between; + border-style: none; + + &::before { + position: absolute; + top: $spacing-medium; + display: block; + width: 100%; + height: 1px; + content: ""; + background-color: $tabs-border-color; + } + + & > li { + position: relative; + float: none; // reset bootstrap + width: 100%; + text-align: center; + + & > a { + width: calc((#{$spacing-medium} * 2) + 1px); + height: calc((#{$spacing-medium} * 2) + 1px); + margin: auto; + padding: 0; + text-align: center; + color: $brand-primary; + border: 1px solid $tabs-border-color; + border-radius: 100%; + background-color: $bg-color; + font-size: $font-size-large; + font-weight: bold; + display: flex; + justify-content: center; + align-items: center; + } + + &.active { + & > a, + & > a:hover, + & > a:focus { + color: #ffffff; + border-color: $tabs-bg-active; + background-color: $tabs-bg-active; + } + } + } + } + } + + //add tabcontainer flex classes + + .tab-center.mx-tabcontainer { + & > .mx-tabcontainer-tabs { + display: flex; + align-items: center; + flex-flow: wrap; + justify-content: center; + } + } + + .tab-left.mx-tabcontainer { + & > .mx-tabcontainer-tabs { + display: flex; + align-items: center; + flex-flow: wrap; + justify-content: flex-start; + } + } + + .tab-right.mx-tabcontainer { + & > .mx-tabcontainer-tabs { + display: flex; + align-items: center; + flex-flow: wrap; + justify-content: flex-end; + } + } +} diff --git a/themesource/atlas_core/web/core/helpers/_table.scss b/themesource/atlas_core/web/core/helpers/_table.scss new file mode 100644 index 0000000..ce575a4 --- /dev/null +++ b/themesource/atlas_core/web/core/helpers/_table.scss @@ -0,0 +1,177 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin table-helpers() { + /* ========================================================================== + Table + + //== Design Properties + //## Helper classes to change the look and feel of the component + ========================================================================== */ + // Lined + table.table-lined.mx-table { + > tbody { + // Table row + > tr { + // Table header + // Table data + > td { + border-width: 1px 0; + border-style: solid; + border-color: $grid-border-color; + } + } + } + } + + // Bordered + table.table-bordered.mx-table { + > tbody { + // Table row + > tr { + // Table header + // Table data + > th, + > td { + border-width: 1px; + border-style: solid; + border-color: $grid-border-color; + } + } + } + } + + // Makes table compact + table.table-compact.mx-table { + > tbody { + // Table row + > tr { + // Table header + // Table data + > th, + > td { + padding-top: 2px; + padding-bottom: 2px; + } + } + } + } + + // Tables Vertical + // Will remove unwanted paddings + table.table-vertical.mx-table { + > tbody { + // Table row + > tr { + // Table header + > th { + padding-bottom: 0; + + > label { + padding: 0; + } + + > div > label { + padding: 0; + } + } + } + } + } + + // Align content in middle + table.table-align-vertical-middle.mx-table { + > tbody { + // Table row + > tr { + // Table header + // Table data + > th, + > td { + vertical-align: middle; + } + } + } + } + + // Compact labels + table.table-label-compact.mx-table { + > tbody { + // Table row + > tr { + // Table header + // Table data + > th, + > td { + > label { + margin: 0; + padding: 0; + } + + > div > label, + .mx-referenceselector-input-wrapper label { + margin: 0; + padding: 0; + } + } + } + } + } + + $height-row-s: 55px; + $height-row-m: 70px; + $height-row-l: 120px; + // Small rows + table.table-row-s.mx-table { + > tbody { + // Table row + > tr { + // Table header + // Table data + > th, + > td { + height: $height-row-s; + } + } + } + } + + // Medium rows + table.table-row-m.mx-table { + > tbody { + // Table row + > tr { + // Table header + // Table data + > th, + > td { + height: $height-row-m; + } + } + } + } + + // Large rows + table.table-row-l.mx-table { + > tbody { + // Table row + > tr { + // Table header + // Table data + > th, + > td { + height: $height-row-l; + } + } + } + } + + // Makes the columns fixed + table.table-fixed { + table-layout: fixed; + } +} diff --git a/themesource/atlas_core/web/core/helpers/_template-grid.scss b/themesource/atlas_core/web/core/helpers/_template-grid.scss new file mode 100644 index 0000000..71db23e --- /dev/null +++ b/themesource/atlas_core/web/core/helpers/_template-grid.scss @@ -0,0 +1,309 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin template-grid-helpers() { + /* ========================================================================== + Template grid + + //== Design Properties + //## Helper classes to change the look and feel of the component + ========================================================================== */ + // Make sure your content looks selectable + .templategrid-selectable.mx-templategrid { + .mx-templategrid-item { + cursor: pointer; + } + } + + // Lined + .templategrid-lined.mx-templategrid { + .mx-grid-content { + border-top-width: 2px; + border-top-style: solid; + border-top-color: $grid-border-color; + } + + .mx-templategrid-item { + border-top: 1px solid $grid-border-color; + border-right: none; + border-bottom: 1px solid $grid-border-color; + border-left: none; + } + } + + // Striped + .templategrid-striped.mx-templategrid { + .mx-templategrid-row:nth-child(odd) .mx-templategrid-item { + background-color: #f9f9f9; + } + } + + // Stylingless + .templategrid-stylingless.mx-templategrid { + .mx-templategrid-item { + padding: 0; + cursor: default; + border: 0; + background-color: transparent; + + &:hover { + background-color: transparent; + } + + &.selected { + background-color: transparent !important; + + &:hover { + background-color: transparent !important; + } + } + } + } + + // Transparent items + .templategrid-transparent.mx-templategrid { + .mx-templategrid-item { + border: 0; + background-color: transparent; + } + } + + // Hover + .templategrid-hover.mx-templategrid { + .mx-templategrid-item { + &:hover { + background-color: $grid-bg-hover !important; + } + + &.selected { + background-color: $grid-bg-selected !important; + + &:hover { + background-color: $grid-bg-selected-hover !important; + } + } + } + } + + // Templategrid Row Sizes + .templategrid-lg.mx-templategrid { + .mx-templategrid-item { + padding: ($grid-padding-top * 2) ($grid-padding-right * 2) ($grid-padding-bottom * 2) + ($grid-padding-left * 2); + } + } + + .templategrid-sm.mx-templategrid { + .mx-templategrid-item { + padding: ($grid-padding-top / 2) ($grid-padding-right / 2) ($grid-padding-bottom / 2) + ($grid-padding-left / 2); + } + } + + // Templategrid Layoutgrid styles + .mx-templategrid[class*="tg-col"] { + overflow: hidden; // For if it is not in a layout, to prevent scrollbars + .mx-templategrid-content-wrapper { + display: block; + } + + .mx-templategrid-row { + display: block; + margin-right: -1 * $gutter-size; + margin-left: -1 * $gutter-size; + + &::before, + &::after { + // clearfix + display: table; + clear: both; + content: " "; + } + } + + .mx-templategrid-item { + // bootstrap col + position: relative; + display: block; + float: left; + min-height: 1px; + padding-right: $gutter-size; + padding-left: $gutter-size; + border: 0; + @media (max-width: 992px) { + width: 100% !important; + } + + .mx-dataview { + overflow: hidden; + } + } + + &.tg-col-xs-12 .mx-templategrid-item { + width: 100% !important; + } + + &.tg-col-xs-11 .mx-templategrid-item { + width: 91.66666667% !important; + } + + &.tg-col-xs-10 .mx-templategrid-item { + width: 83.33333333% !important; + } + + &.tg-col-xs-9 .mx-templategrid-item { + width: 75% !important; + } + + &.tg-col-xs-8 .mx-templategrid-item { + width: 66.66666667% !important; + } + + &.tg-col-xs-7 .mx-templategrid-item { + width: 58.33333333% !important; + } + + &.tg-col-xs-6 .mx-templategrid-item { + width: 50% !important; + } + + &.tg-col-xs-5 .mx-templategrid-item { + width: 41.66666667% !important; + } + + &.tg-col-xs-4 .mx-templategrid-item { + width: 33.33333333% !important; + } + + &.tg-col-xs-3 .mx-templategrid-item { + width: 25% !important; + } + + &.tg-col-xs-2 .mx-templategrid-item { + width: 16.66666667% !important; + } + + &.tg-col-xs-1 .mx-templategrid-item { + width: 8.33333333% !important; + } + + @media (min-width: 768px) { + &.tg-col-sm-12 .mx-templategrid-item { + width: 100% !important; + } + &.tg-col-sm-11 .mx-templategrid-item { + width: 91.66666667% !important; + } + &.tg-col-sm-10 .mx-templategrid-item { + width: 83.33333333% !important; + } + &.tg-col-sm-9 .mx-templategrid-item { + width: 75% !important; + } + &.tg-col-sm-8 .mx-templategrid-item { + width: 66.66666667% !important; + } + &.tg-col-sm-7 .mx-templategrid-item { + width: 58.33333333% !important; + } + &.tg-col-sm-6 .mx-templategrid-item { + width: 50% !important; + } + &.tg-col-sm-5 .mx-templategrid-item { + width: 41.66666667% !important; + } + &.tg-col-sm-4 .mx-templategrid-item { + width: 33.33333333% !important; + } + &.tg-col-sm-3 .mx-templategrid-item { + width: 25% !important; + } + &.tg-col-sm-2 .mx-templategrid-item { + width: 16.66666667% !important; + } + &.tg-col-sm-1 .mx-templategrid-item { + width: 8.33333333% !important; + } + } + @media (min-width: 992px) { + &.tg-col-md-12 .mx-templategrid-item { + width: 100% !important; + } + &.tg-col-md-11 .mx-templategrid-item { + width: 91.66666667% !important; + } + &.tg-col-md-10 .mx-templategrid-item { + width: 83.33333333% !important; + } + &.tg-col-md-9 .mx-templategrid-item { + width: 75% !important; + } + &.tg-col-md-8 .mx-templategrid-item { + width: 66.66666667% !important; + } + &.tg-col-md-7 .mx-templategrid-item { + width: 58.33333333% !important; + } + &.tg-col-md-6 .mx-templategrid-item { + width: 50% !important; + } + &.tg-col-md-5 .mx-templategrid-item { + width: 41.66666667% !important; + } + &.tg-col-md-4 .mx-templategrid-item { + width: 33.33333333% !important; + } + &.tg-col-md-3 .mx-templategrid-item { + width: 25% !important; + } + &.tg-col-md-2 .mx-templategrid-item { + width: 16.66666667% !important; + } + &.tg-col-md-1 .mx-templategrid-item { + width: 8.33333333% !important; + } + } + @media (min-width: 1200px) { + &.tg-col-lg-12 .mx-templategrid-item { + width: 100% !important; + } + &.tg-col-lg-11 .mx-templategrid-item { + width: 91.66666667% !important; + } + &.tg-col-lg-10 .mx-templategrid-item { + width: 83.33333333% !important; + } + &.tg-col-lg-9 .mx-templategrid-item { + width: 75% !important; + } + &.tg-col-lg-8 .mx-templategrid-item { + width: 66.66666667% !important; + } + &.tg-col-lg-7 .mx-templategrid-item { + width: 58.33333333% !important; + } + &.tg-col-lg-6 .mx-templategrid-item { + width: 50% !important; + } + &.tg-col-lg-5 .mx-templategrid-item { + width: 41.66666667% !important; + } + &.tg-col-lg-4 .mx-templategrid-item { + width: 33.33333333% !important; + } + &.tg-col-lg-3 .mx-templategrid-item { + width: 25% !important; + } + &.tg-col-lg-2 .mx-templategrid-item { + width: 16.66666667% !important; + } + &.tg-col-lg-1 .mx-templategrid-item { + width: 8.33333333% !important; + } + } + } +} diff --git a/themesource/atlas_core/web/core/helpers/_typography.scss b/themesource/atlas_core/web/core/helpers/_typography.scss new file mode 100644 index 0000000..f8c9f20 --- /dev/null +++ b/themesource/atlas_core/web/core/helpers/_typography.scss @@ -0,0 +1,137 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin typography-helpers() { + /* ========================================================================== + Typography + + //== Design Properties + //## Helper classes to change the look and feel of the component + ========================================================================== */ + // Text size + .text-small { + font-size: $font-size-small !important; + } + + .text-large { + font-size: $font-size-large !important; + } + + // Text Weights + .text-light, + .text-light > *, + .text-light label { + font-weight: $font-weight-light !important; + } + + .text-normal, + .text-normal > *, + .text-normal label { + font-weight: $font-weight-normal !important; + } + + .text-semibold, + .text-semibold > *, + .text-semibold label { + font-weight: $font-weight-semibold !important; + } + + .text-bold, + .text-bold > *, + .text-bold label { + font-weight: $font-weight-bold !important; + } + + // Color variations + .text-secondary, + .text-secondary:hover, + .text-default, + .text-default:hover { + color: $font-color-default !important; + } + + .text-primary, + .text-primary:hover { + color: $brand-primary !important; + } + + .text-info, + .text-info:hover { + color: $brand-info !important; + } + + .text-success, + .text-success:hover { + color: $brand-success !important; + } + + .text-warning, + .text-warning:hover { + color: $brand-warning !important; + } + + .text-danger, + .text-danger:hover { + color: $brand-danger !important; + } + + .text-header { + color: $font-color-header !important; + } + + .text-detail { + color: $font-color-detail !important; + } + + .text-white { + color: #ffffff; + } + + // Alignment options + .text-left { + text-align: left !important; + } + .text-center { + text-align: center !important; + } + .text-right { + text-align: right !important; + } + .text-justify { + text-align: justify !important; + } + + // Transform options + .text-lowercase { + text-transform: lowercase !important; + } + .text-uppercase { + text-transform: uppercase !important; + } + .text-capitalize { + text-transform: capitalize !important; + } + + // Wrap options + .text-break { + word-break: break-all !important; + word-break: break-word !important; + -webkit-hyphens: auto !important; + hyphens: auto !important; + } + + .text-nowrap { + white-space: nowrap !important; + } + + .text-nowrap { + overflow: hidden !important; + max-width: 100% !important; + white-space: nowrap !important; + text-overflow: ellipsis !important; + } +} diff --git a/themesource/atlas_core/web/core/manifest.json b/themesource/atlas_core/web/core/manifest.json new file mode 100644 index 0000000..b6b47f5 --- /dev/null +++ b/themesource/atlas_core/web/core/manifest.json @@ -0,0 +1,4 @@ +{ + "name": "Atlas-UI-Framework", + "version": "3.0.0" +} diff --git a/themesource/atlas_core/web/core/widgets/_accordion.scss b/themesource/atlas_core/web/core/widgets/_accordion.scss new file mode 100644 index 0000000..7941559 --- /dev/null +++ b/themesource/atlas_core/web/core/widgets/_accordion.scss @@ -0,0 +1,125 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin accordion() { + /* ========================================================================== + Accordion + + Default Mendix accordion widget styles. + ========================================================================== */ + + .widget-accordion { + .widget-accordion-group { + @include get-accordion-group-styles( + $accordion-header-default-bg, + $accordion-header-default-bg-hover, + $accordion-header-default-color, + $brand-primary, + $accordion-default-border-color + ); + } + + &.widget-accordion-preview { + .widget-accordion-group { + @include get-accordion-preview-group-styles($accordion-header-default-color); + } + } + } +} + +@mixin get-accordion-group-styles($background-color, $background-color-hover, $color, $color-hover, $border-color) { + border-color: $border-color; + background-color: $bg-color-secondary; + + &:first-child { + border-top-left-radius: $border-radius-default; + border-top-right-radius: $border-radius-default; + + > .widget-accordion-group-header > .widget-accordion-group-header-button { + border-top-left-radius: calc(#{$border-radius-default} - 1px); + border-top-right-radius: calc(#{$border-radius-default} - 1px); + } + } + + &:last-child { + border-bottom-left-radius: $border-radius-default; + border-bottom-right-radius: $border-radius-default; + } + + &.widget-accordion-group-collapsed:last-child, + &.widget-accordion-group-collapsing:last-child { + > .widget-accordion-group-header > .widget-accordion-group-header-button { + border-bottom-left-radius: calc(#{$border-radius-default} - 1px); + border-bottom-right-radius: calc(#{$border-radius-default} - 1px); + } + } + + &.widget-accordion-group-collapsing:last-child { + > .widget-accordion-group-header > .widget-accordion-group-header-button { + transition: border-radius 5ms ease 200ms; + } + } + + &.widget-accordion-group-expanding:last-child { + > .widget-accordion-group-header > .widget-accordion-group-header-button { + transition: border-radius 5ms ease 80ms; + } + } + + > .widget-accordion-group-header > .widget-accordion-group-header-button { + cursor: auto; + background-color: $background-color; + padding: $spacing-medium; + + > :is(h1, h2, h3, h4, h5, h6) { + font-size: $font-size-h5; + font-weight: $font-weight-header; + } + + > :is(h1, h2, h3, h4, h5, h6, p, span) { + color: $color; + } + + .widget-accordion-group-header-button-icon { + fill: $color; + } + + &.widget-accordion-group-header-button-clickable { + &:hover, + &:focus, + &:active { + background-color: $background-color-hover; + + > :is(h1, h2, h3, h4, h5, h6, p, span) { + color: $color-hover; + } + + .widget-accordion-group-header-button-icon { + fill: $color-hover; + } + } + } + } + + > .widget-accordion-group-content-wrapper > .widget-accordion-group-content { + border-color: $border-color; + padding: $spacing-small $spacing-medium $spacing-large $spacing-medium; + } +} + +@mixin get-accordion-preview-group-styles($color) { + .widget-accordion-group-header-button { + > div > :is(h1, h2, h3, h4, h5, h6) { + font-size: $font-size-h5; + font-weight: $font-weight-header; + } + + > div > :is(h1, h2, h3, h4, h5, h6, p, span) { + color: $color; + } + } +} diff --git a/themesource/atlas_core/web/core/widgets/_badge-button.scss b/themesource/atlas_core/web/core/widgets/_badge-button.scss new file mode 100644 index 0000000..8033948 --- /dev/null +++ b/themesource/atlas_core/web/core/widgets/_badge-button.scss @@ -0,0 +1,36 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin badge-button() { + /* ========================================================================== + Badge button + + Widget styles + ========================================================================== */ + .widget-badge-button { + display: inline-block; + + .widget-badge-button-text { + white-space: nowrap; + padding-right: 5px; + } + + .badge { + top: unset; + display: inline-block; + margin: 0; + padding: $spacing-smaller $spacing-small; + text-align: center; + vertical-align: baseline; + white-space: nowrap; + background-color: $btn-primary-color; + color: $btn-primary-bg; + font-size: 100%; + line-height: 1; + } + } +} diff --git a/themesource/atlas_core/web/core/widgets/_badge.scss b/themesource/atlas_core/web/core/widgets/_badge.scss new file mode 100644 index 0000000..0e1c997 --- /dev/null +++ b/themesource/atlas_core/web/core/widgets/_badge.scss @@ -0,0 +1,58 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin badge() { + /* ========================================================================== + Badge + + Override of default Bootstrap badge style + ========================================================================== */ + + .badge { + display: inline-block; + margin: 0; + padding: $spacing-smaller $spacing-small; + text-align: center; + vertical-align: baseline; + white-space: nowrap; + color: #ffffff; + font-size: 100%; + line-height: 1; + + .form-control-static { + font-weight: $font-weight-normal; + all: unset; + } + } + + /* ========================================================================== + Badge-web + + Widget styles + ========================================================================== */ + + .widget-badge { + color: $label-primary-color; + background-color: $label-primary-bg; + } + + .widget-badge-clickable { + cursor: pointer; + } + + .widget-badge.badge:empty { + display: initial; + /* Fix padding to stay round */ + padding: $spacing-smaller calc(#{$spacing-small} + 2px); + } + + .widget-badge.label:empty { + display: initial; + /* Fix padding to stay square */ + padding: $spacing-smaller calc(#{$spacing-small} + 2px); + } +} diff --git a/themesource/atlas_core/web/core/widgets/_barcode-scanner.scss b/themesource/atlas_core/web/core/widgets/_barcode-scanner.scss new file mode 100644 index 0000000..4c0a5c5 --- /dev/null +++ b/themesource/atlas_core/web/core/widgets/_barcode-scanner.scss @@ -0,0 +1,63 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin barcode-scanner() { + /* ========================================================================== + Barcode-scanner + + Override of default Bootstrap barcode-scanner style + ========================================================================== */ + + .mx-barcode-scanner { + background: #000000; + z-index: 110; + + .close-button { + color: white; + .glyphicon { + font-size: 16px; + } + } + + .video-canvas { + .canvas-background { + background-color: rgba(0, 0, 0, 0.7); + } + + .canvas-middle { + .canvas-middle-middle { + $corner-offset: 13px; + .corner { + $corner-border: 5px solid #ffffff; + border-left: $corner-border; + border-top: $corner-border; + + &.corner-top-left { + top: -$corner-offset; + left: -$corner-offset; + } + &.corner-top-right { + top: -$corner-offset; + right: -$corner-offset; + transform: rotate(90deg); + } + &.corner-bottom-right { + bottom: -$corner-offset; + right: -$corner-offset; + transform: rotate(180deg); + } + &.corner-bottom-left { + bottom: -$corner-offset; + left: -$corner-offset; + transform: rotate(270deg); + } + } + } + } + } + } +} diff --git a/themesource/atlas_core/web/core/widgets/_button.scss b/themesource/atlas_core/web/core/widgets/_button.scss new file mode 100644 index 0000000..eecfac4 --- /dev/null +++ b/themesource/atlas_core/web/core/widgets/_button.scss @@ -0,0 +1,98 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin button() { + /* ========================================================================== + Button + + Default Bootstrap and Mendix button + ========================================================================== */ + + .btn, + .mx-button { + display: inline-block; + margin-bottom: 0; + padding: 0.6em 1em; + cursor: pointer; + -webkit-user-select: none; + user-select: none; + transition: all 0.2s ease-in-out; + text-align: center; + vertical-align: middle; + white-space: nowrap; + color: $btn-default-color; + border: 1px solid $btn-default-border-color; + border-radius: $btn-border-radius; + background-color: $btn-default-bg; + background-image: none; + box-shadow: none; + text-shadow: none; + font-size: $btn-font-size; + line-height: $line-height-base; + + &:hover, + &:focus, + &:active, + &:active:focus { + outline: none; + box-shadow: none; + } + + &[aria-disabled] { + cursor: not-allowed; + pointer-events: none; + opacity: 0.65; + } + + @if $btn-bordered != false { + @extend .btn-bordered; + } + } + + // Mendix button link + .mx-link { + padding: 0; + color: $link-color; + + &[aria-disabled="true"] { + cursor: not-allowed; + pointer-events: none; + opacity: 0.65; + } + } + + .link-back { + color: $font-color-detail; + + .glyphicon { + top: 2px; + } + } + + // Images and icons in buttons + .btn, + .mx-button, + .mx-link { + img { + //height: auto; // MXUI override who set the height on 16px default + height: calc(#{$font-size-default} + 4px); + margin-right: 4px; + vertical-align: text-top; + } + } + + //== Phone specific + //-------------------------------------------------------------------------------------------------------------------// + .profile-phone { + .btn, + .mx-link { + &:active { + transform: translateY(1px); + } + } + } +} diff --git a/themesource/atlas_core/web/core/widgets/_check-box.scss b/themesource/atlas_core/web/core/widgets/_check-box.scss new file mode 100644 index 0000000..3a67fda --- /dev/null +++ b/themesource/atlas_core/web/core/widgets/_check-box.scss @@ -0,0 +1,99 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin check-box() { + /* ========================================================================== + Check box + + Default Mendix check box widget + ========================================================================== */ + + .mx-checkbox.label-after { + flex-wrap: wrap; + + .control-label { + display: flex; + align-items: center; + padding: 0; + } + } + + input[type="checkbox"] { + position: relative !important; //Remove after mxui merge + width: 16px; + height: 16px; + margin: 0 !important; // Remove after mxui merge + cursor: pointer; + -webkit-user-select: none; + user-select: none; + appearance: none; + -moz-appearance: none; + -webkit-appearance: none; + transform: translateZ(0); + + &:before, + &:after { + position: absolute; + display: block; + transition: all 0.3s ease; + } + + &:before { + // Checkbox + width: 100%; + height: 100%; + content: ""; + border: 1px solid $form-input-border-color; + border-radius: $form-input-border-radius; + background-color: transparent; + } + + &:after { + // Checkmark + width: 8px; + height: 4px; + margin: 5px 4px; + transform: rotate(-45deg); + pointer-events: none; + border: 2px solid #ffffff; + border-top: 0; + border-right: 0; + } + + &:not(:disabled):not(:checked):hover:after { + content: ""; + border-color: $form-input-bg-hover; // color of checkmark on hover + } + + &:checked:before { + border-color: $form-input-border-focus-color; + background-color: $form-input-border-focus-color; + } + + &:checked:after { + content: ""; + } + + &:disabled:before { + background-color: $form-input-bg-disabled; + } + + &:checked:disabled:before { + border-color: transparent; + background-color: rgba($form-input-border-focus-color, 0.4); + } + + &:disabled:after, + &:checked:disabled:after { + border-color: $form-input-bg-disabled; + } + + & + .control-label { + margin-left: $form-label-gutter; + } + } +} diff --git a/themesource/atlas_core/web/core/widgets/_data-grid.scss b/themesource/atlas_core/web/core/widgets/_data-grid.scss new file mode 100644 index 0000000..b6b08e6 --- /dev/null +++ b/themesource/atlas_core/web/core/widgets/_data-grid.scss @@ -0,0 +1,86 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin data-grid() { + /* ========================================================================== + Data grid default + + Default Mendix data grid widget. The data grid shows a list of objects in a grid + ========================================================================== */ + + .mx-datagrid { + table { + border-width: 0; + background-color: transparent; + /* Table header */ + th { + border-style: solid; + border-color: $grid-border-color; + border-top-width: 0; + border-right: 0; + border-bottom-width: 1px; + border-left: 0; + background-color: $grid-bg-header; + padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left; + vertical-align: middle; + + .mx-datagrid-head-caption { + white-space: normal; + } + } + + /* Table Body */ + tbody tr { + td { + @include transition(); + padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left; + vertical-align: middle; + border-width: 0; + border-color: $grid-border-color; + border-bottom-width: 1px; + border-bottom-style: solid; + background-color: $grid-bg; + + &:focus { + outline: none; + } + + /* Text without spaces */ + .mx-datagrid-data-wrapper { + text-overflow: ellipsis; + } + } + + &.selected td, + &.selected:hover td { + color: $grid-selected-color; + background-color: $grid-bg-selected !important; + } + } + + /* Table Footer */ + tfoot { + > tr > th { + padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left; + border-width: 0; + background-color: $grid-footer-bg; + } + + > tr > td { + padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left; + border-width: 0; + background-color: $grid-bg; + font-weight: $font-weight-bold; + } + } + + & *:focus { + outline: 0; + } + } + } +} diff --git a/themesource/atlas_core/web/core/widgets/_data-view.scss b/themesource/atlas_core/web/core/widgets/_data-view.scss new file mode 100644 index 0000000..7404814 --- /dev/null +++ b/themesource/atlas_core/web/core/widgets/_data-view.scss @@ -0,0 +1,49 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin data-view() { + /* ========================================================================== + Data view + + Default Mendix data view widget. The data view is used for showing the contents of exactly one object + ========================================================================== */ + + .mx-dataview { + /* Dataview-content gives problems for nexted layout grid containers */ + > .mx-dataview-content > .mx-container-nested { + > .row { + margin-right: 0; + margin-left: 0; + } + } + + /* Dataview empty message */ + .mx-dataview-message { + color: $dataview-emptymessage-color; + background: $dataview-emptymessage-bg; + } + } + + .mx-dataview-controls { + margin-top: $spacing-medium; + padding: $spacing-medium 0 0; + border-top: 1px solid $dataview-controls-border-color; + border-radius: 0; + background-color: $dataview-controls-bg; + /* Buttons */ + .mx-button { + margin-right: $spacing-small; + margin-bottom: 0; + + &:last-child { + margin-right: 0; + } + } + + background-color: inherit; + } +} diff --git a/themesource/atlas_core/web/core/widgets/_date-picker.scss b/themesource/atlas_core/web/core/widgets/_date-picker.scss new file mode 100644 index 0000000..8af5964 --- /dev/null +++ b/themesource/atlas_core/web/core/widgets/_date-picker.scss @@ -0,0 +1,133 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin date-picker() { + /* ========================================================================== + Date picker + + Default Mendix date picker widget + ========================================================================== */ + + .mx-calendar { + /* (must be higher than popup z-index) */ + z-index: 10010 !important; + padding: 8px; + font-size: 12px; + background: $bg-color; + border-radius: $border-radius-default; + border: 1px solid $border-color-default; + box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.06); + + .mx-calendar-month-header { + display: flex; + flex-direction: row; + justify-content: space-between; + margin: 0 3px 10px 3px; + } + + .mx-calendar-month-next, + .mx-calendar-month-previous, + .mx-calendar-month-dropdown { + border: 0; + cursor: pointer; + background: transparent; + } + + .mx-calendar-month-next, + .mx-calendar-month-previous { + &:hover { + color: $brand-primary; + } + } + + .mx-calendar-month-dropdown { + display: flex; + align-items: center; + justify-content: center; + position: relative; + + .mx-calendar-month-current:first-child { + margin-right: 10px; + } + } + + th { + color: $brand-primary; + } + + th, + td { + width: 35px; + height: 35px; + text-align: center; + } + + td { + color: $font-color-default; + + &:hover { + cursor: pointer; + border-radius: 50%; + color: $brand-primary; + background-color: $brand-default; + } + } + + .mx-calendar-day-month-next, + .mx-calendar-day-month-previous { + color: lighten($font-color-default, 45%); + } + + .mx-calendar-day-selected, + .mx-calendar-day-selected:hover { + color: #fff; + border-radius: 50%; + background: $brand-primary; + } + + // + + .mx-calendar-year-switcher { + text-align: center; + margin-top: 10px; + color: lighten($brand-primary, 30%); + + span.mx-calendar-year-selected { + color: $brand-primary; + margin-left: 10px; + margin-right: 10px; + } + + span:hover { + cursor: pointer; + text-decoration: underline; + background-color: transparent; + } + } + } + + .mx-calendar-month-dropdown-options { + /* (must be higher than popup z-index) */ + z-index: 10020 !important; + position: absolute; + top: 25px; + padding: 2px 10px; + border-radius: $border-radius-default; + background-color: $bg-color; + + div { + cursor: pointer; + font-size: 12px; + padding: 2px 0; + + &:hover, + &:focus { + color: $brand-primary; + } + } + } +} diff --git a/themesource/atlas_core/web/core/widgets/_glyphicon.scss b/themesource/atlas_core/web/core/widgets/_glyphicon.scss new file mode 100644 index 0000000..37ec807 --- /dev/null +++ b/themesource/atlas_core/web/core/widgets/_glyphicon.scss @@ -0,0 +1,29 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin glyphicon() { + /* ========================================================================== + Glyphicon + + Default Mendix glyphicon + ========================================================================== */ + + .mx-glyphicon { + &:before { + display: inline-block; + margin-top: -0.2em; + margin-right: 0.4555555em; + vertical-align: middle; + font-family: "Glyphicons Halflings"; + font-weight: $font-weight-normal; + font-style: normal; + line-height: inherit; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + } + } +} diff --git a/themesource/atlas_core/web/core/widgets/_grid.scss b/themesource/atlas_core/web/core/widgets/_grid.scss new file mode 100644 index 0000000..047b4e2 --- /dev/null +++ b/themesource/atlas_core/web/core/widgets/_grid.scss @@ -0,0 +1,84 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin grid() { + /* ========================================================================== + Grid + + Default Mendix grid (used for Mendix data grid) + ========================================================================== */ + + .mx-grid { + padding: 0px; + border: 0; + border-radius: 0; + + .mx-grid-controlbar { + margin: 10px 0; + /* Paging */ + .mx-grid-pagingbar { + /* Buttons */ + .mx-button { + padding: 8px; + color: $grid-paging-color; + border-color: $grid-paging-border-color; + background-color: $grid-paging-bg; + + &:hover { + color: $grid-paging-color-hover; + border-color: $grid-paging-border-color-hover; + background-color: $grid-paging-bg-hover; + } + } + + /* Text Paging .. to .. to .. */ + .mx-grid-paging-status { + padding: 0 8px 8px; + } + } + } + + .mx-grid-searchbar { + margin: 10px 0; + + .mx-grid-search-item { + .mx-grid-search-label { + vertical-align: middle; + + label { + padding-top: 5px; + } + } + + .mx-grid-search-input { + display: inline-flex; + + .form-control { + height: 28px; + font-size: 11px; + } + + select.form-control { + padding: 3px; + vertical-align: middle; + } + + .mx-button { + height: 28px; + padding-top: 2px; + padding-bottom: 2px; + } + } + } + } + } + + // Remove default border from grid inside a Mendix Dataview + .mx-dataview .mx-grid { + border: 0; + } +} diff --git a/themesource/atlas_core/web/core/widgets/_group-box.scss b/themesource/atlas_core/web/core/widgets/_group-box.scss new file mode 100644 index 0000000..a80e4e0 --- /dev/null +++ b/themesource/atlas_core/web/core/widgets/_group-box.scss @@ -0,0 +1,80 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin group-box() { + /* ========================================================================== + Group box + + Default Mendix group box + ========================================================================== */ + + .mx-groupbox { + margin: 0; + + > .mx-groupbox-header { + margin: 0; + color: $groupbox-default-color; + border-width: 1px 1px 0 1px; + border-style: solid; + border-color: $groupbox-default-bg; + background: $groupbox-default-bg; + font-size: $font-size-h5; + border-radius: $border-radius-default $border-radius-default 0 0; + padding: $spacing-small * 1.5 $spacing-medium; + + .mx-groupbox-collapse-icon { + margin-top: 0.1em; + } + } + + // Header options + > h1.mx-groupbox-header { + font-size: $font-size-h1; + } + + > h2.mx-groupbox-header { + font-size: $font-size-h2; + } + + > h3.mx-groupbox-header { + font-size: $font-size-h3; + } + + > h4.mx-groupbox-header { + font-size: $font-size-h4; + } + + > h5.mx-groupbox-header { + font-size: $font-size-h5; + } + + > h6.mx-groupbox-header { + font-size: $font-size-h6; + } + + > .mx-groupbox-body { + padding: $spacing-small * 1.5 $spacing-medium; + border-width: 1px; + border-style: solid; + border-color: $groupbox-default-bg; + background-color: #ffffff; + border-radius: $border-radius-default; + } + + .mx-groupbox-header + .mx-groupbox-body { + border-top: none; + } + + &.collapsed > .mx-groupbox-header { + } + } + + //With header + .mx-groupbox-header ~ .mx-groupbox-body { + border-radius: 0 0 $border-radius-default $border-radius-default; + } +} diff --git a/themesource/atlas_core/web/core/widgets/_header.scss b/themesource/atlas_core/web/core/widgets/_header.scss new file mode 100644 index 0000000..07e2f2a --- /dev/null +++ b/themesource/atlas_core/web/core/widgets/_header.scss @@ -0,0 +1,123 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin header() { + /* ========================================================================== + Header + + Default Mendix mobile header + ========================================================================== */ + + .mx-header { + z-index: 100; + display: flex; + width: 100%; + height: $m-header-height; + padding: 0; + text-align: initial; + color: $m-header-color; + background-color: $m-header-bg; + box-shadow: 0px 2px 2px rgba(194, 196, 201, 0.30354); + + // Reset mxui + div.mx-header-left, + div.mx-header-right { + position: relative; + top: initial; + right: initial; + left: initial; + display: flex; + align-items: center; + width: 25%; + height: 100%; + + .mx-placeholder { + display: flex; + align-items: center; + height: 100%; + } + } + + div.mx-header-left .mx-placeholder { + order: 1; + + .mx-placeholder { + justify-content: flex-start; + } + } + + div.mx-header-center { + overflow: hidden; + flex: 1; + order: 2; + text-align: center; + + .mx-title { + overflow: hidden; + width: 100%; + margin: 0; + text-overflow: ellipsis; + color: $m-header-color; + font-size: $m-header-title-size; + line-height: $m-header-height; + } + } + + div.mx-header-right { + order: 3; + + .mx-placeholder { + justify-content: flex-end; + } + } + + // Content magic + .mx-link { + display: flex; + align-items: center; + height: 100%; + transition: all 0.2s; + text-decoration: none; + + .glyphicon { + top: 0; + font-size: 23px; + } + + &:active { + transform: translateY(1px); + color: $link-hover-color; + } + } + + .mx-link, + .btn, + img { + padding: 0 $spacing-medium; + } + + .mx-sidebartoggle { + font-size: 24px; + line-height: $m-header-height; + + img { + height: 20px; + } + } + } + + // RTL support + body[dir="rtl"] { + .mx-header-left { + order: 3; + } + + .mx-header-right { + order: 1; + } + } +} diff --git a/themesource/atlas_core/web/core/widgets/_input.scss b/themesource/atlas_core/web/core/widgets/_input.scss new file mode 100644 index 0000000..fe8f666 --- /dev/null +++ b/themesource/atlas_core/web/core/widgets/_input.scss @@ -0,0 +1,273 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin input() { + /* ========================================================================== + Input + + The form-control class style all inputs + ========================================================================== */ + .form-control { + display: flex; + flex: 1; + min-width: 50px; + height: $form-input-height; + padding: $form-input-padding-y $form-input-padding-x; + transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; + color: $form-input-color; + border: 1px solid $form-input-border-color; + border-radius: $form-input-border-radius; + background-color: $form-input-bg; + background-image: none; + box-shadow: none; + font-size: $form-input-font-size; + line-height: $form-input-line-height; + appearance: none; + -moz-appearance: none; + -webkit-appearance: none; + @if $form-input-style==lined { + @extend .form-control-lined; + } + + &::placeholder { + color: $form-input-placeholder-color; + } + } + + .form-control:not([readonly]):focus { + border-color: $form-input-border-focus-color; + outline: 0; + background-color: $form-input-bg-focus; + box-shadow: none; + } + + .form-control[disabled], + .form-control[readonly], + fieldset[disabled] .form-control { + opacity: 1; + background-color: $form-input-bg-disabled; + } + + .form-control[disabled], + fieldset[disabled] .form-control { + cursor: not-allowed; + } + + // Lined + .form-control-lined { + border: 0; + border-bottom: 1px solid $form-input-border-color; + border-radius: 0; + background-color: transparent; + + &:focus { + background-color: transparent; + } + } + + // Read only form control class + .form-control-static { + overflow: hidden; + flex: 1; + min-height: auto; + padding: $form-input-static-padding-y $form-input-static-padding-x; + //border-bottom: 1px solid $form-input-static-border-color; + font-size: $form-input-font-size; + line-height: $form-input-line-height; + + & + .control-label { + margin-left: $form-label-gutter; + } + } + + // Dropdown input widget + select.form-control { + $arrow: "resources/arrow.svg"; + padding-right: 30px; + background-image: url($arrow); + background-repeat: no-repeat; + background-position: calc(100% - #{$form-input-padding-x}) center; + appearance: none; + -moz-appearance: none; + -webkit-appearance: none; + } + + .form-control.mx-selectbox { + align-items: center; + flex-direction: row-reverse; + justify-content: space-between; + } + + // Not editable textarea, textarea will be rendered as a label + .mx-textarea .control-label { + height: auto; + } + + .mx-textarea-counter { + display: block; + width: 100%; + text-align: right; + margin-top: $spacing-small; + } + + textarea.form-control { + flex-basis: auto; + } + + .mx-compound-control { + display: flex; + flex: 1; + flex-wrap: wrap; + max-width: 100%; + + .btn { + margin-left: $spacing-small; + } + + .mx-validation-message { + flex-basis: 100%; + margin-top: 4px; + } + } + + .has-error .mx-validation-message { + margin-top: $spacing-small; + margin-bottom: 0; + padding: $spacing-small; + color: $alert-danger-color; + border-color: $alert-danger-border-color; + background-color: $alert-danger-bg; + } + + // Form Group + .form-group { + display: flex; + flex-direction: row; + margin-bottom: $form-group-margin-bottom; + + & > div[class*="col-"] { + display: flex; + align-items: center; + flex-wrap: wrap; + } + + & > [class*="col-"] { + padding-right: $form-group-gutter; + padding-left: $form-group-gutter; + } + + // Alignment content + div[class*="textBox"] > .control-label, + div[class*="textArea"] > .control-label, + div[class*="datePicker"] > .control-label { + @extend .form-control-static; + } + + // Label + .control-label { + overflow: hidden; + margin-bottom: 4px; + text-align: left; + text-overflow: ellipsis; + color: $form-label-color; + font-size: $form-label-size; + font-weight: $form-label-weight; + } + + .mx-validation-message { + flex-basis: 100%; + } + + &.no-columns:not(.label-after) { + flex-direction: column; + } + } + + .form-group.label-after { + .form-control-static { + flex: unset; + } + + .control-label { + margin-bottom: 0; + } + } + + .mx-dateinput, + .mx-referenceselector, + .mx-referencesetselector { + flex: 1; + } + + // Targets only webkit iOS devices + .dj_webkit.dj_ios .form-control { + transform: translateZ(0); + } + + @media only screen and (min-width: $screen-md) { + .form-horizontal { + .control-label { + margin-bottom: 0; + padding-top: $form-input-padding-y; + padding-bottom: $form-input-padding-y; + line-height: $form-input-line-height; + } + } + } + + @media only screen and (max-width: $screen-sm-max) { + .form-group { + flex-direction: column; + } + } + + @media only screen and (max-device-width: 1024px) and (-webkit-min-device-pixel-ratio: 0) { + // Fixes alignment bug on iPads / iPhones where datefield is not aligned vertically + input[type="date"], + input[type="time"], + input[type="datetime-local"], + input[type="month"] { + line-height: 1; + } + // Fix shrinking of date inputs because inability of setting a placeholder + input[type="time"]:not(.has-value):before, + input[type="date"]:not(.has-value):before, + input[type="month"]:not(.has-value):before, + input[type="datetime-local"]:not(.has-value):before { + margin-right: 0.5em; + content: attr(placeholder) !important; + color: #aaaaaa; + } + input[type="time"].has-value:before, + input[type="date"].has-value:before, + input[type="month"].has-value:before, + input[type="datetime-local"].has-value:before { + content: "" !important; + } + } + + @media (-ms-high-contrast: none), (-ms-high-contrast: active) { + // Target IE10+ + .form-group { + display: block; + } + } + + [dir="rtl"] { + // Dropdown input widget + select.form-control { + padding-right: 30px; + padding-left: 0; + background-position: #{$form-input-padding-x} center; + } + + .mx-compound-control .btn { + margin-right: $spacing-small; + margin-left: 0; + } + } +} diff --git a/themesource/atlas_core/web/core/widgets/_label.scss b/themesource/atlas_core/web/core/widgets/_label.scss new file mode 100644 index 0000000..af9469d --- /dev/null +++ b/themesource/atlas_core/web/core/widgets/_label.scss @@ -0,0 +1,32 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin label() { + /* ========================================================================== + Label + + Default label combined with Bootstrap label + ========================================================================== */ + + .label { + display: inline-block; + margin: 0; + padding: $spacing-smaller $spacing-small; + text-align: center; + vertical-align: baseline; + white-space: nowrap; + color: #ffffff; + border-radius: 0.25em; + font-size: 100%; + line-height: 1; + + .form-control-static { + font-weight: $font-weight-normal; + all: unset; + } + } +} diff --git a/themesource/atlas_core/web/core/widgets/_layout-grid.scss b/themesource/atlas_core/web/core/widgets/_layout-grid.scss new file mode 100644 index 0000000..3aa3819 --- /dev/null +++ b/themesource/atlas_core/web/core/widgets/_layout-grid.scss @@ -0,0 +1,950 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin layout-grid() { + /* ========================================================================== + Layout grid + + Default Bootstrap containers + ========================================================================== */ + .mx-layoutgrid { + width: 100%; + margin-right: auto; + margin-left: auto; + padding-right: $gutter-size; + padding-left: $gutter-size; + } + + // Row + .row { + display: flex; + flex-wrap: wrap; + margin-right: -$gutter-size; + margin-left: -$gutter-size; + + &::before, + &::after { + content: normal; + } + } + + .no-gutters { + margin-right: 0; + margin-left: 0; + } + + .no-gutters > .col, + .no-gutters > [class*="col-"] { + padding-right: 0; + padding-left: 0; + } + + // Columns + .col-1, + .col-2, + .col-3, + .col-4, + .col-5, + .col-6, + .col-7, + .col-8, + .col-9, + .col-10, + .col-11, + .col-12, + .col, + .col-auto, + .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, + .col-sm, + .col-sm-auto, + .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, + .col-md, + .col-md-auto, + .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, + .col-lg, + .col-lg-auto, + .col-xl-1, + .col-xl-2, + .col-xl-3, + .col-xl-4, + .col-xl-5, + .col-xl-6, + .col-xl-7, + .col-xl-8, + .col-xl-9, + .col-xl-10, + .col-xl-11, + .col-xl-12, + .col-xl, + .col-xl-auto { + position: relative; + width: 100%; + padding-right: $gutter-size; + padding-left: $gutter-size; + } + + .col { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + + .col-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + + .col-1 { + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + + .col-2 { + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + + .col-3 { + flex: 0 0 25%; + max-width: 25%; + } + + .col-4 { + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + + .col-5 { + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + + .col-6 { + flex: 0 0 50%; + max-width: 50%; + } + + .col-7 { + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + + .col-8 { + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + + .col-9 { + flex: 0 0 75%; + max-width: 75%; + } + + .col-10 { + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + + .col-11 { + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + + .col-12 { + flex: 0 0 100%; + max-width: 100%; + } + + .order-first { + order: -1; + } + + .order-last { + order: 13; + } + + .order-0 { + order: 0; + } + + .order-1 { + order: 1; + } + + .order-2 { + order: 2; + } + + .order-3 { + order: 3; + } + + .order-4 { + order: 4; + } + + .order-5 { + order: 5; + } + + .order-6 { + order: 6; + } + + .order-7 { + order: 7; + } + + .order-8 { + order: 8; + } + + .order-9 { + order: 9; + } + + .order-10 { + order: 10; + } + + .order-11 { + order: 11; + } + + .order-12 { + order: 12; + } + + .offset-1, + .col-offset-1 { + margin-left: 8.333333%; + } + + .offset-2, + .col-offset-2 { + margin-left: 16.666667%; + } + + .offset-3, + .col-offset-3 { + margin-left: 25%; + } + + .offset-4, + .col-offset-4 { + margin-left: 33.333333%; + } + + .offset-5, + .col-offset-5 { + margin-left: 41.666667%; + } + + .offset-6, + .col-offset-6 { + margin-left: 50%; + } + + .offset-7, + .col-offset-7 { + margin-left: 58.333333%; + } + + .offset-8, + .col-offset-8 { + margin-left: 66.666667%; + } + + .offset-9, + .col-offset-9 { + margin-left: 75%; + } + + .offset-10, + .col-offset-10 { + margin-left: 83.333333%; + } + + .offset-11, + .col-offset-11 { + margin-left: 91.666667%; + } + + // Responsiveness + @media (min-width: $screen-sm) { + .mx-layoutgrid-fixed { + max-width: 540px; + } + } + + @media (min-width: $screen-md) { + .mx-layoutgrid-fixed { + max-width: 720px; + } + } + + @media (min-width: $screen-lg) { + .mx-layoutgrid-fixed { + max-width: 960px; + } + } + + @media (min-width: $screen-xl) { + .mx-layoutgrid-fixed { + max-width: 1140px; + } + } + + @media (min-width: $screen-sm) { + .col-sm { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + .col-sm-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-sm-1 { + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-sm-2 { + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-sm-3 { + flex: 0 0 25%; + max-width: 25%; + } + .col-sm-4 { + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-sm-5 { + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-sm-6 { + flex: 0 0 50%; + max-width: 50%; + } + .col-sm-7 { + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-sm-8 { + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-sm-9 { + flex: 0 0 75%; + max-width: 75%; + } + .col-sm-10 { + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-sm-11 { + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-sm-12 { + flex: 0 0 100%; + max-width: 100%; + } + .order-sm-first { + order: -1; + } + .order-sm-last { + order: 13; + } + .order-sm-0 { + order: 0; + } + .order-sm-1 { + order: 1; + } + .order-sm-2 { + order: 2; + } + .order-sm-3 { + order: 3; + } + .order-sm-4 { + order: 4; + } + .order-sm-5 { + order: 5; + } + .order-sm-6 { + order: 6; + } + .order-sm-7 { + order: 7; + } + .order-sm-8 { + order: 8; + } + .order-sm-9 { + order: 9; + } + .order-sm-10 { + order: 10; + } + .order-sm-11 { + order: 11; + } + .order-sm-12 { + order: 12; + } + .offset-sm-0, + .col-sm-offset-0 { + margin-left: 0; + } + .offset-sm-1, + .col-sm-offset-1 { + margin-left: 8.333333%; + } + .offset-sm-2, + .col-sm-offset-2 { + margin-left: 16.666667%; + } + .offset-sm-3, + .col-sm-offset-3 { + margin-left: 25%; + } + .offset-sm-4, + .col-sm-offset-4 { + margin-left: 33.333333%; + } + .offset-sm-5, + .col-sm-offset-5 { + margin-left: 41.666667%; + } + .offset-sm-6, + .col-sm-offset-6 { + margin-left: 50%; + } + .offset-sm-7, + .col-sm-offset-7 { + margin-left: 58.333333%; + } + .offset-sm-8, + .col-sm-offset-8 { + margin-left: 66.666667%; + } + .offset-sm-9, + .col-sm-offset-9 { + margin-left: 75%; + } + .offset-sm-10, + .col-sm-offset-10 { + margin-left: 83.333333%; + } + .offset-sm-11, + .col-sm-offset-11 { + margin-left: 91.666667%; + } + } + + @media (min-width: $screen-md) { + .col-md { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + .col-md-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-md-1 { + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-md-2 { + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-md-3 { + flex: 0 0 25%; + max-width: 25%; + } + .col-md-4 { + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-md-5 { + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-md-6 { + flex: 0 0 50%; + max-width: 50%; + } + .col-md-7 { + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-md-8 { + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-md-9 { + flex: 0 0 75%; + max-width: 75%; + } + .col-md-10 { + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-md-11 { + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-md-12 { + flex: 0 0 100%; + max-width: 100%; + } + .order-md-first { + order: -1; + } + .order-md-last { + order: 13; + } + .order-md-0 { + order: 0; + } + .order-md-1 { + order: 1; + } + .order-md-2 { + order: 2; + } + .order-md-3 { + order: 3; + } + .order-md-4 { + order: 4; + } + .order-md-5 { + order: 5; + } + .order-md-6 { + order: 6; + } + .order-md-7 { + order: 7; + } + .order-md-8 { + order: 8; + } + .order-md-9 { + order: 9; + } + .order-md-10 { + order: 10; + } + .order-md-11 { + order: 11; + } + .order-md-12 { + order: 12; + } + .offset-md-0, + .col-md-offset-0 { + margin-left: 0; + } + .offset-md-1, + .col-md-offset-1 { + margin-left: 8.333333%; + } + .offset-md-2, + .col-md-offset-2 { + margin-left: 16.666667%; + } + .offset-md-3, + .col-md-offset-3 { + margin-left: 25%; + } + .offset-md-4, + .col-md-offset-4 { + margin-left: 33.333333%; + } + .offset-md-5, + .col-md-offset-5 { + margin-left: 41.666667%; + } + .offset-md-6, + .col-md-offset-6 { + margin-left: 50%; + } + .offset-md-7, + .col-md-offset-7 { + margin-left: 58.333333%; + } + .offset-md-8, + .col-md-offset-8 { + margin-left: 66.666667%; + } + .offset-md-9, + .col-md-offset-9 { + margin-left: 75%; + } + .offset-md-10, + .col-md-offset-10 { + margin-left: 83.333333%; + } + .offset-md-11, + .col-md-offset-11 { + margin-left: 91.666667%; + } + } + + @media (min-width: $screen-lg) { + .col-lg { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + .col-lg-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-lg-1 { + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-lg-2 { + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-lg-3 { + flex: 0 0 25%; + max-width: 25%; + } + .col-lg-4 { + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-lg-5 { + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-lg-6 { + flex: 0 0 50%; + max-width: 50%; + } + .col-lg-7 { + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-lg-8 { + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-lg-9 { + flex: 0 0 75%; + max-width: 75%; + } + .col-lg-10 { + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-lg-11 { + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-lg-12 { + flex: 0 0 100%; + max-width: 100%; + } + .order-lg-first { + order: -1; + } + .order-lg-last { + order: 13; + } + .order-lg-0 { + order: 0; + } + .order-lg-1 { + order: 1; + } + .order-lg-2 { + order: 2; + } + .order-lg-3 { + order: 3; + } + .order-lg-4 { + order: 4; + } + .order-lg-5 { + order: 5; + } + .order-lg-6 { + order: 6; + } + .order-lg-7 { + order: 7; + } + .order-lg-8 { + order: 8; + } + .order-lg-9 { + order: 9; + } + .order-lg-10 { + order: 10; + } + .order-lg-11 { + order: 11; + } + .order-lg-12 { + order: 12; + } + .offset-lg-0, + .col-lg-offset-0 { + margin-left: 0; + } + .offset-lg-1, + .col-lg-offset-1 { + margin-left: 8.333333%; + } + .offset-lg-2, + .col-lg-offset-2 { + margin-left: 16.666667%; + } + .offset-lg-3, + .col-lg-offset-3 { + margin-left: 25%; + } + .offset-lg-4, + .col-lg-offset-4 { + margin-left: 33.333333%; + } + .offset-lg-5, + .col-lg-offset-5 { + margin-left: 41.666667%; + } + .offset-lg-6, + .col-lg-offset-6 { + margin-left: 50%; + } + .offset-lg-7, + .col-lg-offset-7 { + margin-left: 58.333333%; + } + .offset-lg-8, + .col-lg-offset-8 { + margin-left: 66.666667%; + } + .offset-lg-9, + .col-lg-offset-9 { + margin-left: 75%; + } + .offset-lg-10, + .col-lg-offset-10 { + margin-left: 83.333333%; + } + .offset-lg-11, + .col-lg-offset-11 { + margin-left: 91.666667%; + } + } + + @media (min-width: $screen-xl) { + .col-xl { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + .col-xl-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-xl-1 { + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-xl-2 { + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-xl-3 { + flex: 0 0 25%; + max-width: 25%; + } + .col-xl-4 { + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-xl-5 { + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-xl-6 { + flex: 0 0 50%; + max-width: 50%; + } + .col-xl-7 { + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-xl-8 { + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-xl-9 { + flex: 0 0 75%; + max-width: 75%; + } + .col-xl-10 { + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-xl-11 { + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-xl-12 { + flex: 0 0 100%; + max-width: 100%; + } + .order-xl-first { + order: -1; + } + .order-xl-last { + order: 13; + } + .order-xl-0 { + order: 0; + } + .order-xl-1 { + order: 1; + } + .order-xl-2 { + order: 2; + } + .order-xl-3 { + order: 3; + } + .order-xl-4 { + order: 4; + } + .order-xl-5 { + order: 5; + } + .order-xl-6 { + order: 6; + } + .order-xl-7 { + order: 7; + } + .order-xl-8 { + order: 8; + } + .order-xl-9 { + order: 9; + } + .order-xl-10 { + order: 10; + } + .order-xl-11 { + order: 11; + } + .order-xl-12 { + order: 12; + } + .offset-xl-0, + .col-xl-offset-0 { + margin-left: 0; + } + .offset-xl-1, + .col-xl-offset-1 { + margin-left: 8.333333%; + } + .offset-xl-2, + .col-xl-offset-2 { + margin-left: 16.666667%; + } + .offset-xl-3, + .col-xl-offset-3 { + margin-left: 25%; + } + .offset-xl-4, + .col-xl-offset-4 { + margin-left: 33.333333%; + } + .offset-xl-5, + .col-xl-offset-5 { + margin-left: 41.666667%; + } + .offset-xl-6, + .col-xl-offset-6 { + margin-left: 50%; + } + .offset-xl-7, + .col-xl-offset-7 { + margin-left: 58.333333%; + } + .offset-xl-8, + .col-xl-offset-8 { + margin-left: 66.666667%; + } + .offset-xl-9, + .col-xl-offset-9 { + margin-left: 75%; + } + .offset-xl-10, + .col-xl-offset-10 { + margin-left: 83.333333%; + } + .offset-xl-11, + .col-xl-offset-11 { + margin-left: 91.666667%; + } + } +} diff --git a/themesource/atlas_core/web/core/widgets/_list-view.scss b/themesource/atlas_core/web/core/widgets/_list-view.scss new file mode 100644 index 0000000..efef338 --- /dev/null +++ b/themesource/atlas_core/web/core/widgets/_list-view.scss @@ -0,0 +1,96 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin list-view() { + /* ========================================================================== + List view + + Default Mendix list view widget. The list view shows a list of objects arranged vertically. Each object is shown using a template + ========================================================================== */ + .mx-listview { + // Remove widget padding + padding: 0; + /* Clear search button (overrides load more button stying) */ + & > ul { + margin: 0 0 $spacing-medium; + + .mx-listview-empty { + border-style: none; + background-color: transparent; + } + + & > li { + @include transition(); + background-color: #fff; + padding: $spacing-medium; + border-top: 1px solid $grid-border-color; + + &:last-child { + border-bottom: 1px solid $grid-border-color; + } + + &:focus, + &:active { + outline: 0; + } + } + } + + .selected { + background: $color-primary-light; + } + + .mx-layoutgrid { + padding: 0 !important; + } + } + + // Search bar + .mx-listview-searchbar { + margin-bottom: $spacing-medium; + + .btn { + width: auto; + } + } + + /* Load more button */ + .btn.mx-listview-loadMore { + width: 100%; + margin: 0 0 $spacing-medium; + } + + //== Phone specific + //-------------------------------------------------------------------------------------------------------------------// + .profile-phone .mx-listview { + .mx-listview-searchbar { + margin-bottom: 3px; + background: #ffffff; + box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.14); + + input { + padding: 14px 15px; + color: #555555; + border-style: none; + border-radius: 0; + box-shadow: none; + } + + .btn { + padding: 14px 15px; + color: inherit; + border-style: none; + } + } + + & > ul > li { + &:first-child { + border-top: none; + } + } + } +} diff --git a/themesource/atlas_core/web/core/widgets/_modal.scss b/themesource/atlas_core/web/core/widgets/_modal.scss new file mode 100644 index 0000000..6130c36 --- /dev/null +++ b/themesource/atlas_core/web/core/widgets/_modal.scss @@ -0,0 +1,128 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin modal() { + /* ========================================================================== + Modal + + Default Mendix modals. Modals are streamlined, but flexible, dialog prompts with the minimum required functionality and smart defaults + ========================================================================== */ + .modal-dialog { + .modal-content { + border: 1px solid $modal-header-border-color; + border-radius: 4px; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); + + .modal-header { + padding: 15px 20px; + border-bottom-color: $modal-header-border-color; + border-radius: 0; // Because of the class .mx-window-active in mxui.css + background-color: $modal-header-bg; + + h4 { + margin: 0; + color: $modal-header-color; + font-size: 16px; + font-weight: $font-weight-bold; + } + + .close { + margin-top: -3px; + opacity: 1; + /* For IE8 and earlier */ + color: $modal-header-color; + text-shadow: none; + } + } + + .modal-body { + } + + .modal-footer { + display: flex; + justify-content: flex-end; + margin-top: 0; + padding: 20px; + border-style: none; + } + } + } + + // Default Mendix Window Modal + .mx-window { + // If popup direct child is a dataview it gets the class mx-window-view + &.mx-window-view .mx-window-body { + overflow: hidden; // hide second scrollbar in edit page + padding: 0; + // Dataview in popup + > .mx-dataview > .mx-dataview-content, + > .mx-placeholder > .mx-dataview > .mx-dataview-content { + padding: 20px; + } + + > .mx-dataview > .mx-dataview-controls, + > .mx-placeholder > .mx-dataview > .mx-dataview-controls { + display: flex; + justify-content: flex-end; + margin: 0; + padding: 20px; + text-align: left; + border-top: 1px solid $modal-header-border-color; + } + } + + .mx-dataview-controls { + padding-bottom: 0; + } + + .mx-layoutgrid { + padding-right: 0; + padding-left: 0; + } + } + + .mx-dialog .modal-body { + padding: 24px; + } + + // Login modal + .mx-login { + .modal-body { + padding: 0 15px; + } + + .modal-content { + input { + height: 56px; + padding: 12px 12px; + border: 1px solid #eeeeee; + background: #eeeeee; + box-shadow: none; + font-size: 16px; + + &:focus { + border-color: #66afe9; + } + } + } + + .modal-header, + .modal-footer { + border: 0; + } + + button { + font-size: 16px; + } + + h4 { + color: #aaaaaa; + font-size: 20px; + font-weight: $font-weight-bold; + } + } +} diff --git a/themesource/atlas_core/web/core/widgets/_navigation-bar.scss b/themesource/atlas_core/web/core/widgets/_navigation-bar.scss new file mode 100644 index 0000000..fbf84d3 --- /dev/null +++ b/themesource/atlas_core/web/core/widgets/_navigation-bar.scss @@ -0,0 +1,153 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin navigation-bar() { + /* ========================================================================== + Navigation + + Default Mendix navigation bar + ========================================================================== */ + .mx-navbar { + margin: 0; + border-style: none; + border-radius: 0; + background-color: $navigation-bg; + + ul.nav { + margin: 0; // weird -margin if screen gets small (bootstrap) + /* Navigation item */ + & > li.mx-navbar-item > a { + display: flex; + align-items: center; + padding: $navigation-item-padding; + vertical-align: middle; + color: $navigation-color; + border-radius: 0; + font-size: $navigation-font-size; + font-weight: $font-weight-normal; + border-radius: $border-radius-default; + + /* Dropdown arrow */ + .caret { + border-top-color: $navigation-color; + border-bottom-color: $navigation-color; + } + + &:hover, + &:focus, + &.active { + text-decoration: none; + color: $navigation-color-hover; + background-color: $navigation-bg-hover; + + .caret { + border-top-color: $navigation-color-active; + border-bottom-color: $navigation-color-active; + } + } + + &.active { + color: $navigation-color-active; + background-color: $navigation-bg-active; + opacity: 1; + } + + /* Dropdown */ + .mx-navbar-submenu::before { + position: absolute; + top: -9px; + left: 15px; + width: 0; + height: 0; + content: ""; + transform: rotate(360deg); + border-width: 0 9px 9px 9px; + border-style: solid; + border-color: transparent transparent $navigation-border-color transparent; + } + + // Image + img { + width: 20px; // Default size (so it looks good) + height: auto; + margin-right: 0.5em; + } + + .glyphicon { + top: 0; + margin-right: 0.5em; + vertical-align: middle; + font-size: $navigation-glyph-size; + } + } + + & > .mx-navbar-item.active a { + color: $navigation-color-active; + } + + /* When hovering or the dropdown is open */ + & > .mx-navbar-item > a:hover, + & > .mx-navbar-item > a:focus, + & > .mx-navbar-item.open > a, + & > .mx-navbar-item.open > a:hover, + & > .mx-navbar-item.open > a:focus { + text-decoration: none; + color: $navigation-color-hover; + background-color: $navigation-bg-hover; + + .caret { + border-top-color: $navigation-color-hover; + border-bottom-color: $navigation-color-hover; + } + } + + & > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem.active a { + color: $navigation-sub-color-active; + background-color: $navigation-sub-bg-active; + + .caret { + border-top-color: $navigation-sub-color-active; + border-bottom-color: $navigation-sub-color-active; + } + } + } + @media (max-width: $screen-md) { + ul.nav > li.mx-navbar-item > a { + padding: 10px 24px; + } + .mx-navbar-item.open .dropdown-menu { + padding: 0; + border-radius: 0; + background-color: $navigation-sub-bg; + + & > li.mx-navbar-subitem > a { + padding: 10px 24px; + color: $navigation-sub-color; + border-radius: 0; + font-size: $navigation-sub-font-size; + font-weight: $font-weight-normal; + + &:hover, + &:focus { + color: $navigation-sub-color-hover; + background-color: $navigation-sub-bg-hover; + } + + &.active { + color: $navigation-sub-color-active; + background-color: $navigation-sub-bg-active; + } + } + } + } + + /* remove focus */ + &:focus { + outline: 0; + } + } +} diff --git a/themesource/atlas_core/web/core/widgets/_navigation-list.scss b/themesource/atlas_core/web/core/widgets/_navigation-list.scss new file mode 100644 index 0000000..9dd9788 --- /dev/null +++ b/themesource/atlas_core/web/core/widgets/_navigation-list.scss @@ -0,0 +1,40 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin navigation-list() { + /* ========================================================================== + Navigation list + + Default Mendix navigation list widget. A navigation list can be used to attach an action to an entire row. Such a row is called a navigation list item + ========================================================================== */ + .mx-navigationlist { + margin: 0; + padding: 0; + list-style: none; + + li.mx-navigationlist-item { + @include transition(); + padding: $spacing-medium; + border-width: 1px; + border-style: none none solid none; + border-color: $grid-border-color; + border-radius: 0; + background-color: $grid-bg; + + &:hover, + &:focus { + color: inherit; + background-color: $grid-bg-hover; + } + + &.active { + color: inherit; + background-color: $grid-bg-selected; + } + } + } +} diff --git a/themesource/atlas_core/web/core/widgets/_navigation-tree.scss b/themesource/atlas_core/web/core/widgets/_navigation-tree.scss new file mode 100644 index 0000000..5eb54dc --- /dev/null +++ b/themesource/atlas_core/web/core/widgets/_navigation-tree.scss @@ -0,0 +1,127 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin navigation-tree() { + /* ========================================================================== + Navigation + + Default Mendix navigation tree + ========================================================================== */ + .mx-navigationtree { + background-color: $navigation-bg; + + /* Every navigation item */ + .navbar-inner > ul { + margin: 0; + padding-left: 0; + + & > li { + padding: 0; + border-style: none; + + & > a { + display: flex; + align-items: center; + height: $navigation-item-height; + padding: $navigation-item-padding; + color: $navigation-color; + //border-bottom: 1px solid $navigation-border-color; + //border-radius: 0; + background-color: $navigation-bg; + text-shadow: none; + font-size: $navigation-font-size; + font-weight: $font-weight-normal; + + .caret { + border-top-color: $navigation-color; + border-bottom-color: $navigation-color; + } + + img { + width: 20px; // Default size + height: auto; + margin-right: 0.5em; + } + + .glyphicon { + top: 0; + margin-right: 0.5em; + vertical-align: middle; + font-size: $navigation-glyph-size; + } + } + + a:hover, + a:focus, + a.active { + text-decoration: none; + color: $navigation-color-hover; + background-color: $navigation-bg-hover; + + .caret { + border-top-color: $navigation-color-active; + border-bottom-color: $navigation-color-active; + } + } + + a.active { + color: $navigation-color-active; + border-left-color: $navigation-color-active; + background-color: $navigation-bg-active; + } + } + } + + /* Sub navigation item specific */ + li.mx-navigationtree-has-items { + & > ul { + margin: 0; + padding-left: 0; + background-color: $navigation-sub-bg; + + li { + margin: 0; + padding: 0; + border: 0; + + a { + padding: $spacing-medium; + text-decoration: none; + color: $navigation-sub-color; + border: 0; + background-color: $navigation-sub-bg; + text-shadow: none; + font-size: $navigation-sub-font-size; + font-weight: $font-weight-normal; + .glyphicon { + margin-right: $spacing-small; + } + + &:hover, + &:focus, + &.active { + color: $navigation-sub-color-hover; + outline: 0; + background-color: $navigation-sub-bg-hover; + } + + &.active { + color: $navigation-sub-color-active; + border: 0; + background-color: $navigation-sub-bg-active; + } + } + } + } + } + + /* remove focus */ + &:focus { + outline: 0; + } + } +} diff --git a/themesource/atlas_core/web/core/widgets/_pagination.scss b/themesource/atlas_core/web/core/widgets/_pagination.scss new file mode 100644 index 0000000..1a60d75 --- /dev/null +++ b/themesource/atlas_core/web/core/widgets/_pagination.scss @@ -0,0 +1,80 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin pagination() { + /* ========================================================================== + Pagination + + Default Mendix pagination widget. + ========================================================================== */ + + .widget-pagination { + overflow: unset; + + .pagination { + overflow: unset; + + .btn { + &:hover { + color: $btn-default-color; + background-color: $btn-default-bg-hover; + } + + &:focus { + outline: unset; + outline-offset: unset; + box-shadow: 0 0 0 0.3rem $color-primary-light; + } + } + + ul { + margin-top: unset; + margin-bottom: unset; + + li { + display: inline-flex; + align-items: center; + width: unset; + min-width: 24px; + min-height: 24px; + margin-right: 16px; + padding: 4px 8px; + transition: all 0.2s ease-in-out; + color: $font-color-default; + border-radius: $border-radius-default; + + &:last-child { + margin-right: 0; + } + + &:not(.break-view) { + &:hover { + color: $btn-default-color; + background-color: $btn-default-bg-hover; + } + + &:focus { + outline: unset; + outline-offset: unset; + box-shadow: 0 0 0 0.3rem $color-primary-light; + } + + &.active { + color: $btn-primary-color; + background-color: $btn-primary-bg; + } + + &.active:hover { + color: $btn-primary-color; + background-color: $btn-primary-bg-hover; + } + } + } + } + } + } +} diff --git a/themesource/atlas_core/web/core/widgets/_pop-up-menu.scss b/themesource/atlas_core/web/core/widgets/_pop-up-menu.scss new file mode 100644 index 0000000..1f77ea9 --- /dev/null +++ b/themesource/atlas_core/web/core/widgets/_pop-up-menu.scss @@ -0,0 +1,121 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin pop-up-menu() { + /* ========================================================================== + Pop-up menu + + Default Mendix pop-up menu + ========================================================================== */ + .popupmenu { + position: relative; + display: inline-flex; + } + + .popupmenu-trigger { + cursor: pointer; + } + + .popupmenu-menu { + position: absolute; + z-index: 999; + display: none; + flex-direction: column; + width: max-content; + border-radius: 8px; + background-color: $bg-color; + box-shadow: 0 2px 20px 1px rgba(5, 15, 129, 0.05), 0 2px 16px 0 rgba(33, 43, 54, 0.08); + + &.popupmenu-position-left:not(.popup-portal) { + top: 0; + left: 0; + transform: translateX(-100%); + } + + &.popupmenu-position-right:not(.popup-portal) { + top: 0; + right: 0; + transform: translateX(100%); + } + + &.popupmenu-position-top:not(.popup-portal) { + top: 0; + transform: translateY(-100%); + } + + &.popupmenu-position-bottom:not(.popup-portal) { + bottom: 0; + transform: translateY(100%); + } + + .popupmenu-basic-item:first-child, + .popupmenu-custom-item:first-child { + border-top-left-radius: 8px; + border-top-right-radius: 8px; + } + + .popupmenu-basic-item:last-child, + .popupmenu-custom-item:last-child { + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + } + } + + .popupmenu-basic-divider { + width: 100%; + height: 1px; + background-color: $brand-default; + } + + .popupmenu-basic-item { + padding: 12px 16px; + color: $font-color-default; + font-size: 14px; + + &:hover, + &:focus, + &:active { + cursor: pointer; + border-color: $bg-color-secondary; + background-color: $bg-color-secondary; + } + + &-inverse { + color: $brand-inverse; + } + + &-primary { + color: $brand-primary; + } + + &-info { + color: $brand-info; + } + + &-success { + color: $brand-success; + } + + &-warning { + color: $brand-warning; + } + + &-danger { + color: $brand-danger; + } + } + + .popupmenu-custom-item { + &:hover, + &:focus, + &:active { + cursor: pointer; + border-color: $bg-color-secondary; + background-color: $bg-color-secondary; + } + } +} diff --git a/themesource/atlas_core/web/core/widgets/_progress-bar.scss b/themesource/atlas_core/web/core/widgets/_progress-bar.scss new file mode 100644 index 0000000..474fb70 --- /dev/null +++ b/themesource/atlas_core/web/core/widgets/_progress-bar.scss @@ -0,0 +1,61 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin progress-bar() { + /* ========================================================================== + Progress bar + + Default Mendix progress bar widget. + ========================================================================== */ + + .progress { + overflow: hidden; + display: flex; + flex-direction: row; + } + + .progress-bar { + align-self: flex-start; + width: 0; + height: 100%; + transition: width 0.6s ease; + text-align: center; + color: #ffffff; + border-radius: $border-radius-default; + font-weight: $font-weight-semibold; + } + + .progress-striped .progress-bar, + .progress-bar-striped { + background-image: linear-gradient( + 45deg, + rgba(255, 255, 255, 0.15) 25%, + transparent 25%, + transparent 50%, + rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, + transparent 75%, + transparent + ); + background-size: 40px 40px; + } + + .widget-progress-bar.active .progress-bar, + .progress.active .progress-bar, + .progress-bar.active { + animation: progress-bar-stripes 2s linear infinite; + } + + @keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } + } +} diff --git a/themesource/atlas_core/web/core/widgets/_progress-circle.scss b/themesource/atlas_core/web/core/widgets/_progress-circle.scss new file mode 100644 index 0000000..86b28b5 --- /dev/null +++ b/themesource/atlas_core/web/core/widgets/_progress-circle.scss @@ -0,0 +1,22 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin progress-circle() { + /* ========================================================================== + Progress Circle + + Default Mendix progress circle widget. + ========================================================================== */ + + .widget-progress-circle { + display: inline-block; + } + + .widget-progress-circle-trail-path { + stroke: $bg-color; + } +} diff --git a/themesource/atlas_core/web/core/widgets/_progress.scss b/themesource/atlas_core/web/core/widgets/_progress.scss new file mode 100644 index 0000000..fc87d33 --- /dev/null +++ b/themesource/atlas_core/web/core/widgets/_progress.scss @@ -0,0 +1,65 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin progress() { + /* ========================================================================== + Progress + + Default Mendix progress widget. + ========================================================================== */ + + .mx-progress { + color: $font-color-default; + background: $bg-color-secondary; + + .mx-progress-message { + color: $font-color-default; + } + + .mx-progress-indicator { + position: relative; + overflow: hidden; + width: 100%; + max-width: 100%; + height: 2px; + margin: auto; + padding: 0; + border-radius: 0; + background: $gray-lighter; + + &:before, + &:after { + position: absolute; + top: 0; + left: 0; + display: block; + width: 50%; + height: 2px; + content: ""; + transform: translate3d(-100%, 0, 0); + background: $brand-primary; + } + + &::before { + animation: loader 2s infinite; + } + + &::after { + animation: loader 2s -2s infinite; + } + } + } + + @keyframes loader { + 0% { + transform: translate3d(-100%, 0, 0); + } + 100% { + transform: translate3d(200%, 0, 0); + } + } +} diff --git a/themesource/atlas_core/web/core/widgets/_radio-button.scss b/themesource/atlas_core/web/core/widgets/_radio-button.scss new file mode 100644 index 0000000..ad2771a --- /dev/null +++ b/themesource/atlas_core/web/core/widgets/_radio-button.scss @@ -0,0 +1,108 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin radio-button() { + /* ========================================================================== + Radio button + + Default Mendix radio button widget + ========================================================================== */ + .mx-radiobuttons.inline .mx-radiogroup { + display: flex; + flex-direction: row; + + .radio { + margin: 0 20px 0 0; + } + } + + .mx-radiobuttons .radio:last-child { + margin-bottom: 0; + } + + .radio { + display: flex !important; // Remove after mxui merge + align-items: center; + margin-top: 0; + } + + input[type="radio"] { + position: relative !important; // Remove after mxui merge + width: 16px; + height: 16px; + margin: 0; + cursor: pointer; + -webkit-user-select: none; + user-select: none; + appearance: none; + -moz-appearance: none; + -webkit-appearance: none; + + &:before, + &:after { + position: absolute; + display: block; + transition: all 0.3s ease-in-out; + border-radius: 50%; + } + + &:before { + width: 100%; + height: 100%; + content: ""; + border: 1px solid $form-input-border-color; + background-color: transparent; + } + + &:after { + top: 50%; + left: 50%; + width: 50%; + height: 50%; + transform: translate(-50%, -50%); + pointer-events: none; + background-color: $form-input-border-focus-color; + } + + &:not(:checked):after { + transform: translate(-50%, -50%) scale(0); + opacity: 0; + } + + &:not(:disabled):not(:checked):hover:after { + background-color: $form-input-bg-hover; + } + + &:checked:after, + &:not(:disabled):not(:checked):hover:after { + content: ""; + transform: translate(-50%, -50%) scale(1); + opacity: 1; + } + + &:checked:before { + border-color: $form-input-border-focus-color; + background-color: $form-input-bg; + } + + &:disabled:before { + background-color: $form-input-bg-disabled; + } + + &:checked:disabled:before { + border-color: rgba($form-input-border-focus-color, 0.4); + } + + &:checked:disabled:after { + background-color: rgba($form-input-border-focus-color, 0.4); + } + + & + label { + margin-left: $form-label-gutter; + } + } +} diff --git a/themesource/atlas_core/web/core/widgets/_range-slider.scss b/themesource/atlas_core/web/core/widgets/_range-slider.scss new file mode 100644 index 0000000..4cb59d4 --- /dev/null +++ b/themesource/atlas_core/web/core/widgets/_range-slider.scss @@ -0,0 +1,30 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// +@import "../helpers/slider-color-variant"; + +@mixin range-slider() { + /* ========================================================================== + Range slider + + Default Mendix range slider widget. + ========================================================================== */ + + .widget-range-slider { + margin-bottom: 16px; + padding: 5px 10px; + + .rc-slider-handle { + border-color: $brand-default; + } + + .rc-slider.rc-slider-with-marks { + padding-bottom: 25px; + } + + @include slider-color-variant($brand-primary); + } +} diff --git a/themesource/atlas_core/web/core/widgets/_rating.scss b/themesource/atlas_core/web/core/widgets/_rating.scss new file mode 100644 index 0000000..14c65be --- /dev/null +++ b/themesource/atlas_core/web/core/widgets/_rating.scss @@ -0,0 +1,60 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin rating() { + /* ========================================================================== + Rating + + Default Mendix rating widget. + ========================================================================== */ + + .widget-star-rating-empty { + color: #cccccc; + } + + .widget-star-rating-full-widget { + color: #ffa611; + } + + .widget-star-rating-full-default { + color: #ced0d3; + } + + .widget-star-rating-font-medium { + font-size: 30px; + } + + .widget-rating { + .rating-icon { + font-size: 24px; + } + + .rating-icon-empty { + color: #ccc; + } + + .rating-icon-full { + color: #ffa611; + } + + .rating-item { + &:focus:not(:focus-visible) { + .rating-image, + .rating-icon { + outline: none; + } + } + + &:focus-visible { + .rating-image, + .rating-icon { + outline: 1px solid $brand-primary; + } + } + } + } +} diff --git a/themesource/atlas_core/web/core/widgets/_simple-menu-bar.scss b/themesource/atlas_core/web/core/widgets/_simple-menu-bar.scss new file mode 100644 index 0000000..1f84b66 --- /dev/null +++ b/themesource/atlas_core/web/core/widgets/_simple-menu-bar.scss @@ -0,0 +1,229 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// +@mixin simple-menu-bar() { + /* ========================================================================== + Navigation + + Default Mendix simple menu bar + ========================================================================== */ + .mx-menubar { + padding: 0; + background-color: $navigation-bg; + + ul.mx-menubar-list { + display: flex; + width: 100%; + min-height: 58px; + + li.mx-menubar-item { + margin: 0; + + > a { + display: flex; + overflow: hidden; + align-items: center; + justify-content: center; + height: 100%; + padding: $navigation-item-padding; + white-space: nowrap; + color: $navigation-color; + border-radius: 0; + font-size: $navigation-font-size; + font-weight: $font-weight-normal; + + img { + margin-right: 0.5em; + } + + .glyphicon { + top: -1px; + margin-right: 0.5em; + vertical-align: middle; + font-size: $navigation-glyph-size; + } + } + + a:hover, + a:focus, + &:hover a, + &:focus a, + &.active a { + text-decoration: none; + color: $navigation-color-hover; + background-color: $navigation-bg-hover; + } + + &.active a { + color: $navigation-color-active; + background-color: $navigation-bg-active; + } + } + } + + /* remove focus */ + &:focus { + outline: 0; + } + } + + // Vertical variation specifics + .mx-menubar-vertical { + background-color: $navigation-bg; + + ul.mx-menubar-list { + display: flex; + flex-direction: column; + + li.mx-menubar-item { + display: block; + + a { + border-bottom: 1px solid $navigation-border-color; + } + } + } + } + + // Horizontal variation specifics + .mx-menubar-horizontal { + box-shadow: 2px 0 4px 0 rgba(0, 0, 0, 0.14); + + ul.mx-menubar-list { + li.mx-menubar-item { + width: auto; + + a { + width: 100%; + } + } + } + + /* Two menu items */ + &.menubar-col-6 ul.mx-menubar-list li.mx-menubar-item { + width: 50%; + } + + /* Three menu items */ + &.menubar-col-4 ul.mx-menubar-list li.mx-menubar-item { + width: 33.33333333%; + } + + /* Four menu items */ + &.menubar-col-3 ul.mx-menubar-list li.mx-menubar-item { + width: 25%; + } + + /* Five menu items */ + &.menubar-col-2 ul.mx-menubar-list li.mx-menubar-item { + width: 20%; + } + } + + //== Regions + //## Behavior in the different regions + //-------------------------------------------------------------------------------------------------------------------// + // When used in topbar + .region-topbar { + .mx-menubar { + background-color: $navtopbar-bg; + + ul.mx-menubar-list { + li.mx-menubar-item { + a { + color: $navtopbar-color; + font-size: $navtopbar-font-size; + + .glyphicon { + font-size: $navtopbar-glyph-size; + } + } + + a:hover, + a:focus, + &:hover a, + &:focus a, + &.active a { + color: $navtopbar-color-hover; + background-color: $navtopbar-bg-hover; + } + + &.active a { + color: $navtopbar-color-active; + background-color: $navtopbar-bg-active; + } + } + } + } + + // Vertical variation specifics + .mx-menubar-vertical { + background-color: $navtopbar-bg; + + ul.mx-menubar-list { + li.mx-menubar-item { + a { + height: $navigation-item-height; + border-color: $navtopbar-border-color; + } + } + } + } + } + + // When used in sidebar + .region-sidebar { + .mx-menubar { + background-color: $navsidebar-bg; + + ul.mx-menubar-list { + li.mx-menubar-item { + a { + color: $navsidebar-color; + font-size: $navsidebar-font-size; + + .glyphicon { + font-size: $navsidebar-glyph-size; + } + } + + a:hover, + a:focus, + &:hover a, + &:focus a, + &.active a { + color: $navsidebar-color-hover; + background-color: $navsidebar-bg-hover; + } + + &.active a { + color: $navsidebar-color-active; + background-color: $navsidebar-bg-active; + } + } + } + } + + // Vertical variation specifics + .mx-menubar-vertical { + background-color: $navsidebar-bg; + + ul.mx-menubar-list { + li.mx-menubar-item { + a { + border-color: $navsidebar-border-color; + } + } + } + } + } + + @supports (padding-bottom: env(safe-area-inset-bottom)) { + .mx-menubar { + padding-bottom: env(safe-area-inset-bottom); + } + } +} diff --git a/themesource/atlas_core/web/core/widgets/_slider.scss b/themesource/atlas_core/web/core/widgets/_slider.scss new file mode 100644 index 0000000..e4f1fce --- /dev/null +++ b/themesource/atlas_core/web/core/widgets/_slider.scss @@ -0,0 +1,31 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@import "../helpers/slider-color-variant"; + +@mixin slider() { + /* ========================================================================== + Slider + + Default Mendix slider widget. + ========================================================================== */ + + .widget-slider { + margin-bottom: 16px; + padding: 5px 10px; + + .rc-slider-handle { + border-color: $brand-default; + } + + .rc-slider.rc-slider-with-marks { + padding-bottom: 25px; + } + + @include slider-color-variant($brand-primary); + } +} diff --git a/themesource/atlas_core/web/core/widgets/_switch.scss b/themesource/atlas_core/web/core/widgets/_switch.scss new file mode 100644 index 0000000..01b89c4 --- /dev/null +++ b/themesource/atlas_core/web/core/widgets/_switch.scss @@ -0,0 +1,193 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +$default-android-color: #6fbeb5; +$default-ios-color: rgb(100, 189, 99); + +@mixin bootstrap-style-ios($brand-style) { + border-color: $brand-style; + background-color: $brand-style; + box-shadow: $brand-style 0 0 0 16px inset; +} + +@mixin bootstrap-style-android($brand-style) { + background-color: lighten($brand-style, 10%); +} + +@mixin style($brand-key, $brand-variable) { + div.widget-switch-brand-#{$brand-key} { + .widget-switch { + .widget-switch-btn-wrapper { + &.checked { + @include bootstrap-style-ios($brand-variable); + } + } + } + &.android { + .widget-switch { + .widget-switch-btn-wrapper { + &.checked { + @include bootstrap-style-android($brand-variable); + + .widget-switch-btn { + background: $brand-variable; + } + } + } + } + } + } +} + +// maintained for backwards compatibility prior to Switch 3.0.0. +@mixin ios { + .widget-switch-btn-wrapper { + &.checked { + &.widget-switch-btn-wrapper-default { + @include bootstrap-style-ios($default-ios-color); + } + + &.widget-switch-btn-wrapper-success { + @include bootstrap-style-ios($brand-success); + } + + &.widget-switch-btn-wrapper-info { + @include bootstrap-style-ios($brand-info); + } + + &.widget-switch-btn-wrapper-primary { + @include bootstrap-style-ios($brand-primary); + } + + &.widget-switch-btn-wrapper-warning { + @include bootstrap-style-ios($brand-warning); + } + + &.widget-switch-btn-wrapper-danger { + @include bootstrap-style-ios($brand-danger); + } + + &.widget-switch-btn-wrapper-inverse { + @include bootstrap-style-ios($brand-inverse); + } + } + } +} + +// maintained for backwards compatibility prior to Switch 3.0.0. +@mixin android { + .widget-switch-btn-wrapper { + &.checked { + &.widget-switch-btn-wrapper-default { + @include bootstrap-style-android($default-android-color); + + .widget-switch-btn { + background: $default-android-color; + } + } + + &.widget-switch-btn-wrapper-success { + @include bootstrap-style-android($brand-success); + + .widget-switch-btn { + background: $brand-success; + } + } + + &.widget-switch-btn-wrapper-info { + @include bootstrap-style-android($brand-info); + + .widget-switch-btn { + background: $brand-info; + } + } + + &.widget-switch-btn-wrapper-primary { + @include bootstrap-style-android($brand-primary); + + .widget-switch-btn { + background: $brand-primary; + } + } + + &.widget-switch-btn-wrapper-warning { + @include bootstrap-style-android($brand-warning); + + .widget-switch-btn { + background: $brand-warning; + } + } + + &.widget-switch-btn-wrapper-danger { + @include bootstrap-style-android($brand-danger); + + .widget-switch-btn { + background: $brand-danger; + } + } + + &.widget-switch-btn-wrapper-inverse { + @include bootstrap-style-android($brand-inverse); + + .widget-switch-btn { + background: $brand-inverse; + } + } + } + } +} + +@mixin switch() { + .widget-switch-btn-wrapper { + &:focus { + outline: 1px solid $brand-primary; + } + } + + @include style("primary", $brand-primary); + @include style("secondary", $brand-default); + @include style("success", $brand-success); + @include style("warning", $brand-warning); + @include style("danger", $brand-danger); + + // below is maintained for backwards compatibility prior to Switch 3.0.0. + div { + &.widget-switch { + &.iOS { + @include ios; + } + + &.android { + @include android; + } + + &.auto { + @include ios; + } + } + } + + html { + div { + &.dj_android { + .widget-switch { + &.auto { + @include android; + } + } + } + + &.dj_ios { + .widget-switch { + &.auto { + @include ios; + } + } + } + } + } +} diff --git a/themesource/atlas_core/web/core/widgets/_tab-container.scss b/themesource/atlas_core/web/core/widgets/_tab-container.scss new file mode 100644 index 0000000..6720d8d --- /dev/null +++ b/themesource/atlas_core/web/core/widgets/_tab-container.scss @@ -0,0 +1,110 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin tab-container() { + /* ========================================================================== + Tab Container + + Default Mendix Tab Container Widget. Tab containers are used to show information categorized into multiple tab pages. + This can be very useful if the amount of information that has to be displayed is larger than the amount of space on the screen + ========================================================================== */ + + .mx-tabcontainer { + .mx-tabcontainer-tabs { + margin-bottom: $spacing-medium; + border-color: $tabs-border-color; + display: flex; + + > li { + float: none; + } + + & > li > a { + margin-right: 0; + transition: all 0.2s ease-in-out; + color: $tabs-color; + font-weight: $font-weight-normal; + border-radius: $border-radius-default $border-radius-default 0 0; + + &:hover, + &:focus { + background-color: $tabs-bg-hover; + } + } + + & > li.active > a, + & > li.active > a:hover, + & > li.active > a:focus { + color: $tabs-color-active; + border: 1px solid $tabs-border-color; + border-bottom-color: #fff; + background-color: $tabs-bg; + } + } + } + + // Tab Styling Specific for mobile + .tab-mobile.mx-tabcontainer { + & > .mx-tabcontainer-tabs { + margin: 0; + text-align: center; + border-style: none; + background-color: $brand-primary; + + li { + display: table-cell; + float: none; // reset bootstrap + width: 1%; + margin: 0; + text-align: center; + border-style: none; + border-radius: 0; + + a { + padding: 16px; + text-transform: uppercase; + color: #ffffff; + border-width: 0 1px 0 0; + border-style: solid; + border-color: rgba(255, 255, 255, 0.3); + border-radius: 0; + font-size: 12px; + font-weight: $font-weight-normal; + + &:hover, + &:focus { + background-color: inherit; + } + } + + &:last-child a { + border-right: none; + } + + &.active > a, + &.active > a:hover, + &.active > a:focus { + color: #ffffff; + border-style: none; + border-radius: 0; + background-color: mix($brand-primary, #000000, 80%); + } + } + } + } + + .mx-tabcontainer-badge { + margin-left: $spacing-small; + border-radius: $font-size-small; + background-color: $label-primary-bg; + color: $label-primary-color; + font-size: $font-size-small; + font-weight: $font-weight-bold; + line-height: 1; + padding: $spacing-small/2 $spacing-small; + } +} diff --git a/themesource/atlas_core/web/core/widgets/_table.scss b/themesource/atlas_core/web/core/widgets/_table.scss new file mode 100644 index 0000000..0e8aa2c --- /dev/null +++ b/themesource/atlas_core/web/core/widgets/_table.scss @@ -0,0 +1,89 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin table() { + /* ========================================================================== + Table + + Default Mendix table widget. Tables can be used to lend structure to a page. They contain a number of rows (tr) and columns, the intersection of which is called a cell (td). Each cell can contain widgets + ========================================================================== */ + + th { + font-weight: $font-weight-bold; + } + + html body .mx-page table.mx-table { + th, + td { + &.nopadding { + padding: 0; + } + } + } + + table.mx-table { + > tbody { + /* Table row */ + > tr { + /* Table header */ + > th { + padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom + $padding-table-cell-left; + + s * { + color: $form-label-color; + font-weight: $font-weight-bold; + font-weight: $form-label-weight; + } + + > label { + padding-top: 8px; + padding-bottom: 6px; // Aligns label in the middle if there is no input field next to it. + } + } + + /* Table cells */ + > td { + padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom + $padding-table-cell-left; + + > div > label, + .mx-referenceselector-input-wrapper label { + padding-top: 8px; + padding-bottom: 6px; // Aligns label in the middle if there is no input field next to it. + } + } + } + } + } + + // Default Mendix Table Widget inside TemplateGrid + .mx-templategrid table.mx-table { + > tbody { + > tr { + > th, + > td { + padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom + $padding-table-cell-left; + } + } + } + } + + // Default Mendix Table Widget inside Listview + .mx-list table.mx-table { + > tbody { + > tr { + > th, + > td { + padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom + $padding-table-cell-left; + } + } + } + } +} diff --git a/themesource/atlas_core/web/core/widgets/_template-grid.scss b/themesource/atlas_core/web/core/widgets/_template-grid.scss new file mode 100644 index 0000000..7c9ecdb --- /dev/null +++ b/themesource/atlas_core/web/core/widgets/_template-grid.scss @@ -0,0 +1,39 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin template-grid() { + /* ========================================================================== + Template grid + + Default Mendix template grid Widget. The template grid shows a list of objects in a tile view. For example, a template grid can show a list of products. The template grid has a lot in common with the data grid. The main difference is that the objects are shown in templates (a sort of small data view) instead of rows + ========================================================================== */ + + .mx-templategrid { + .mx-templategrid-content-wrapper { + table-layout: fixed; + } + + .mx-templategrid-item { + padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left; + cursor: default; + background-color: $grid-bg; + + &:hover { + background-color: transparent; + } + + &.selected { + background-color: $grid-bg-selected !important; + } + } + + .mx-layoutgrid { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + } +} diff --git a/themesource/atlas_core/web/core/widgets/_timeline.scss b/themesource/atlas_core/web/core/widgets/_timeline.scss new file mode 100644 index 0000000..4d83fe8 --- /dev/null +++ b/themesource/atlas_core/web/core/widgets/_timeline.scss @@ -0,0 +1,141 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin timeline() { + /* ========================================================================== + Timeline + + Widget styles + ========================================================================== */ + + //Timeline grouping + .widget-timeline-date-header { + display: flex; + justify-content: center; + width: $timeline-grouping-size; + overflow-wrap: break-word; + padding: $spacing-small; + border: 1px solid $timeline-grouping-border-color; + border-radius: $timeline-grouping-border-radius; + } + + //Timeline entries + .widget-timeline-events-wrapper { + display: flex; + flex: 1; + margin-left: $timeline-grouping-size/2; + padding: $spacing-large 0 0 0; + border-left: 1px solid $timeline-border-color; + + ul { + flex: 1; + padding: 0; + list-style: none; + margin-bottom: 0; + } + } + + //Timeline entry + .widget-timeline-event { + flex: 1; + position: relative; + margin-left: -1px; + padding: 0 $spacing-large $spacing-large $spacing-large; + margin-bottom: $spacing-medium; + + &.clickable { + cursor: pointer; + transition: background 0.8s; + + &:hover { + .widget-timeline-title { + } + } + } + } + + //Timeline entry content wrapper + .widget-timeline-icon-wrapper { + position: absolute; + top: 0; + left: 0; + display: flex; + justify-content: center; + align-items: center; + transform: translateX(-50%); + + .glyphicon { + font-size: $timeline-icon-size; + } + + img { + max-width: 100%; + max-height: 100%; + } + } + + .widget-timeline-content-wrapper { + display: flex; + + .widget-timeline-date-time-wrapper { + order: 2; + margin-right: 0; + } + + .widget-timeline-info-wrapper { + flex: 1; + order: 1; + margin-right: $spacing-medium; + } + } + + .timeline-with-image .widget-timeline-content-wrapper { + display: flex; + + .widget-timeline-date-time-wrapper { + order: 1; + margin-right: $spacing-medium; + } + + .widget-timeline-info-wrapper { + flex: 1; + order: 2; + } + } + + //Timeline entry components + .widget-timeline-icon-circle { + width: $timeline-icon-size; + height: $timeline-icon-size; + border-radius: 50%; + background-color: $timeline-icon-color; + } + + .widget-timeline-title { + @extend h5; + } + + .widget-timeline-description { + } + + .widget-timeline-no-divider { + } + + .widget-eventTime { + @extend h5; + color: $timeline-event-time-color; + } + + .timeline-entry-image { + display: flex; + justify-content: center; + align-content: center; + border-radius: $border-radius-default; + height: $timeline-image-size; + width: $timeline-image-size; + } +} diff --git a/themesource/atlas_core/web/core/widgets/_tooltip.scss b/themesource/atlas_core/web/core/widgets/_tooltip.scss new file mode 100644 index 0000000..4904327 --- /dev/null +++ b/themesource/atlas_core/web/core/widgets/_tooltip.scss @@ -0,0 +1,19 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin tooltip() { + /* ========================================================================== + Tooltip + + Widget styles + ========================================================================== */ + + // Tooltip inline + .widget-tooltip-inline { + display: inline-block; + } +} diff --git a/themesource/atlas_core/web/core/widgets/_typography.scss b/themesource/atlas_core/web/core/widgets/_typography.scss new file mode 100644 index 0000000..2b001f3 --- /dev/null +++ b/themesource/atlas_core/web/core/widgets/_typography.scss @@ -0,0 +1,78 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin typography() { + /* ========================================================================== + Typography + ========================================================================== */ + + p { + line-height: $line-height-base * 1.25; + margin: 0 0 $spacing-small; + } + + .mx-title { + margin: $font-header-margin; + color: $font-color-header; + font-size: $font-size-h1; + font-weight: $font-weight-header; + } + + h1, + .h1, + .h1 > * { + font-size: $font-size-h1; + } + + h2, + .h2, + .h2 > * { + font-size: $font-size-h2; + } + + h3, + .h3, + .h3 > * { + font-size: $font-size-h3; + } + + h4, + .h4, + .h4 > * { + font-size: $font-size-h4; + } + + h5, + .h5, + .h5 > * { + font-size: $font-size-h5; + } + + h6, + .h6, + .h6 > * { + font-size: $font-size-h6; + } + + h1, + h2, + h3, + h4, + h5, + h6, + .h1, + .h2, + .h3, + .h4, + .h5, + .h6 { + margin: $font-header-margin; + color: $font-color-header; + font-weight: $font-weight-header; + line-height: 1.3; + } +} diff --git a/themesource/atlas_core/web/core/widgetscustom/_dijit-widget.scss b/themesource/atlas_core/web/core/widgetscustom/_dijit-widget.scss new file mode 100644 index 0000000..8e338f7 --- /dev/null +++ b/themesource/atlas_core/web/core/widgetscustom/_dijit-widget.scss @@ -0,0 +1,206 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin dijit-widget() { + /* + * Mendix Documentation + * Special styles for presenting components + */ + + /* + * Dijit Widgets + * + * Default Dojo Dijit Widgets + */ + + /* + * Dijit Tooltip Widget + * + * Default tooltip used for Mendix widgets + */ + + .mx-tooltip { + .dijitTooltipContainer { + border-width: 1px; + border-color: $gray-light; + border-radius: 4px; + background: #ffffff; + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + + .mx-tooltip-content { + padding: 12px; + } + + .form-group { + margin-bottom: 4px; + } + } + + .dijitTooltipConnector { + width: 0; + height: 0; + margin-left: -8px; + border-width: 10px 10px 10px 0; + border-style: solid; + border-color: transparent; + border-right-color: $gray-light; + } + } + + /* + * Dijit Border Container + * + * Used in Mendix as split pane containers + */ + + .dijitBorderContainer { + padding: 8px; + background-color: #fcfcfc; + + .dijitSplitterV, + .dijitGutterV { + width: 5px; + border: 0; + background: #fcfcfc; + } + + .dijitSplitterH, + .dijitGutterH { + height: 5px; + border: 0; + background: #fcfcfc; + } + + .dijitSplitterH { + .dijitSplitterThumb { + top: 2px; + width: 19px; + height: 1px; + background: #b0b0b0; + } + } + + .dijitSplitterV { + .dijitSplitterThumb { + left: 2px; + width: 1px; + height: 19px; + background: #b0b0b0; + } + } + + .dijitSplitContainer-child, + .dijitBorderContainer-child { + border: 1px solid #cccccc; + } + + .dijitBorderContainer-dijitTabContainerTop, + .dijitBorderContainer-dijitTabContainerBottom, + .dijitBorderContainer-dijitTabContainerLeft, + .dijitBorderContainer-dijitTabContainerRight { + border: none; + } + + .dijitBorderContainer-dijitBorderContainer { + padding: 0; + border: none; + } + + .dijitSplitterActive { + /* For IE8 and earlier */ + margin: 0; + opacity: 0.6; + background-color: #aaaaaa; + background-image: none; + font-size: 1px; + } + + .dijitSplitContainer-dijitContentPane, + .dijitBorderContainer-dijitContentPane { + padding: 8px; + background-color: #ffffff; + } + } + + /* + * Dijit Menu Popup + * + * Used in datepickers and calendar widgets + */ + + .dijitMenuPopup { + margin-top: 8px; + + .dijitMenu { + display: block; + width: 200px !important; + margin-top: 0; // No top margin because there is no parent with margin bottom + padding: 12px 8px; + border-radius: 3px; + background: $brand-inverse; + + &:after { + position: absolute; + bottom: 100%; + left: 20px; + width: 0; + height: 0; + margin-left: -8px; + content: " "; + pointer-events: none; + border: medium solid transparent; + border-width: 8px; + border-bottom-color: $brand-inverse; + } + + // Menu item + .dijitMenuItem { + background: transparent; + + .dijitMenuItemLabel { + display: block; + overflow: hidden; + width: 180px !important; + padding: 8px; + text-overflow: ellipsis; + color: #ffffff; + border-radius: 3px; + } + + // Hover + &.dijitMenuItemHover { + background: none; + + .dijitMenuItemLabel { + background: $brand-primary; + } + } + } + + // New label + .tg_newlabelmenuitem { + .dijitMenuItemLabel { + font-weight: $font-weight-bold; + } + } + + // Seperator + .dijitMenuSeparator { + td { + padding: 0; + border-bottom-width: 3px; + } + + .dijitMenuSeparatorIconCell { + > div { + margin: 0; //override dijit styling + } + } + } + } + } +} diff --git a/themesource/atlas_core/web/design-properties.json b/themesource/atlas_core/web/design-properties.json new file mode 100644 index 0000000..7ec31ee --- /dev/null +++ b/themesource/atlas_core/web/design-properties.json @@ -0,0 +1,1347 @@ +{ + "Widget": [ + { + "name": "Spacing top", + "type": "Dropdown", + "description": "The spacing above this element.", + "options": [ + { + "name": "Outer none", + "oldNames": ["None"], + "class": "spacing-outer-top-none" + }, + { + "name": "Outer small", + "oldNames": ["Small"], + "class": "spacing-outer-top" + }, + { + "name": "Outer medium", + "oldNames": ["Medium"], + "class": "spacing-outer-top-medium" + }, + { + "name": "Outer large", + "oldNames": ["Large"], + "class": "spacing-outer-top-large" + }, + { + "name": "Inner none", + "class": "spacing-inner-top-none" + }, + { + "name": "Inner small", + "class": "spacing-inner-top" + }, + { + "name": "Inner medium", + "class": "spacing-inner-top-medium" + }, + { + "name": "Inner large", + "class": "spacing-inner-top-large" + } + ] + }, + { + "name": "Spacing bottom", + "type": "Dropdown", + "description": "The spacing below this element.", + "options": [ + { + "name": "Outer none", + "oldNames": ["None"], + "class": "spacing-outer-bottom-none" + }, + { + "name": "Outer small", + "oldNames": ["Small"], + "class": "spacing-outer-bottom" + }, + { + "name": "Outer medium", + "oldNames": ["Medium"], + "class": "spacing-outer-bottom-medium" + }, + { + "name": "Outer large", + "oldNames": ["Large"], + "class": "spacing-outer-bottom-large" + }, + { + "name": "Inner none", + "class": "spacing-inner-bottom-none" + }, + { + "name": "Inner small", + "class": "spacing-inner-bottom" + }, + { + "name": "Inner medium", + "class": "spacing-inner-bottom-medium" + }, + { + "name": "Inner large", + "class": "spacing-inner-bottom-large" + } + ] + }, + { + "name": "Spacing left", + "type": "Dropdown", + "description": "The spacing to the left of this element.", + "options": [ + { + "name": "Outer none", + "oldNames": ["None"], + "class": "spacing-outer-left-none" + }, + { + "name": "Outer small", + "oldNames": ["Small"], + "class": "spacing-outer-left" + }, + { + "name": "Outer medium", + "oldNames": ["Medium"], + "class": "spacing-outer-left-medium" + }, + { + "name": "Outer large", + "oldNames": ["Large"], + "class": "spacing-outer-left-large" + }, + { + "name": "Inner none", + "class": "spacing-inner-left-none" + }, + { + "name": "Inner small", + "class": "spacing-inner-left" + }, + { + "name": "Inner medium", + "class": "spacing-inner-left-medium" + }, + { + "name": "Inner large", + "class": "spacing-inner-left-large" + } + ] + }, + { + "name": "Spacing right", + "type": "Dropdown", + "description": "The spacing to the right of this element.", + "options": [ + { + "name": "Outer none", + "oldNames": ["None"], + "class": "spacing-outer-right-none" + }, + { + "name": "Outer small", + "oldNames": ["Small"], + "class": "spacing-outer-right" + }, + { + "name": "Outer medium", + "oldNames": ["Medium"], + "class": "spacing-outer-right-medium" + }, + { + "name": "Outer large", + "oldNames": ["Large"], + "class": "spacing-outer-right-large" + }, + { + "name": "Inner none", + "class": "spacing-inner-right-none" + }, + { + "name": "Inner small", + "class": "spacing-inner-right" + }, + { + "name": "Inner medium", + "class": "spacing-inner-right-medium" + }, + { + "name": "Inner large", + "class": "spacing-inner-right-large" + } + ] + }, + { + "name": "Align self", + "oldNames": ["Align Self"], + "type": "Dropdown", + "description": "Float the element to the left or to the right.", + "options": [ + { + "name": "Left", + "class": "pull-left" + }, + { + "name": "Right", + "class": "pull-right" + } + ] + }, + { + "name": "Hide on phone", + "oldNames": ["Hide On Phone"], + "type": "Toggle", + "description": "Hide element on phone.", + "class": "hide-phone" + }, + { + "name": "Hide on tablet", + "oldNames": ["Hide On Tablet"], + "type": "Toggle", + "description": "Hide element on tablet.", + "class": "hide-tablet" + }, + { + "name": "Hide on desktop", + "oldNames": ["Hide On Desktop"], + "type": "Toggle", + "description": "Hide element on desktop.", + "class": "hide-desktop" + } + ], + "DivContainer": [ + { + "name": "Align content", + "type": "Dropdown", + "description": "Align content of this element left, right or center it. Align elements inside the container as a row or as a column.", + "options": [ + { + "name": "Left align as a row", + "oldNames": ["Left align as row"], + "class": "row-left" + }, + { + "name": "Center align as a row", + "oldNames": ["Center align as row"], + "class": "row-center" + }, + { + "name": "Right align as a row", + "oldNames": ["Right align as row"], + "class": "row-right" + }, + { + "name": "Left align as a column", + "oldNames": ["Left align as column"], + "class": "col-left" + }, + { + "name": "Center align as a column", + "oldNames": ["Center align as column"], + "class": "col-center" + }, + { + "name": "Right align as a column", + "oldNames": ["Right align as column"], + "class": "col-right" + } + ] + }, + { + "name": "Background color", + "type": "Dropdown", + "description": "Change the background color of the container.", + "options": [ + { + "name": "Background Primary", + "oldNames": ["Background Default"], + "class": "background-main" + }, + { + "name": "Background Secondary", + "oldNames": ["Background Dashboard"], + "class": "background-secondary" + }, + { + "name": "Brand Primary", + "oldNames": ["Primary"], + "class": "background-primary" + }, + { + "name": "Brand Secondary", + "oldNames": ["Default", "Brand Default"], + "class": "background-default" + }, + { + "name": "Brand Success", + "oldNames": ["Success"], + "class": "background-success" + }, + { + "name": "Brand Warning", + "oldNames": ["Warning"], + "class": "background-warning" + }, + { + "name": "Brand Danger", + "oldNames": ["Danger"], + "class": "background-danger" + }, + { + "name": "Brand Gradient", + "class": "background-brand-gradient" + } + ] + }, + { + "name": "Shade", + "type": "Dropdown", + "description": "Apply a shade to your background color", + "options": [ + { + "name": "Light", + "class": "background-light" + }, + { + "name": "Dark", + "class": "background-dark" + } + ] + }, + { + "name": "Add shadow", + "type": "Dropdown", + "description": "Add a shadow to this element", + "options": [ + { + "name": "Small", + "class": "shadow-small" + }, + { + "name": "Medium", + "class": "shadow-medium" + }, + { + "name": "Large", + "class": "shadow-large" + } + ] + } + ], + "Button": [ + { + "name": "Size", + "type": "Dropdown", + "description": "Size of the buttons", + "options": [ + { + "name": "Small", + "class": "btn-sm" + }, + { + "name": "Large", + "class": "btn-lg" + } + ] + }, + { + "name": "Full width", + "type": "Toggle", + "description": "Extend the button to the full width of the container it is placed in.", + "class": "btn-block" + }, + { + "name": "Border", + "oldNames": ["Bordered"], + "type": "Toggle", + "description": "Style the button with a transparent background, a colored border, and colored text.", + "class": "btn-bordered" + }, + { + "name": "Align icon", + "type": "Dropdown", + "description": "Place the icon to the right or on top of the button.", + "options": [ + { + "name": "Right", + "class": "btn-icon-right" + }, + { + "name": "Top", + "class": "btn-icon-top" + } + ] + } + ], + "ListView": [ + { + "name": "Style", + "type": "Dropdown", + "description": "Change the appearance of rows in the list view.", + "options": [ + { + "name": "Lined", + "class": "listview-lined" + }, + { + "name": "Striped", + "class": "listview-striped" + }, + { + "name": "Bordered", + "class": "listview-bordered" + }, + { + "name": "No Styling", + "class": "listview-stylingless" + } + ] + }, + { + "name": "Hover style", + "type": "Toggle", + "description": "Highlight a row when hovering over it. Only useful when the row is clickable.", + "class": "listview-hover" + }, + { + "name": "Row Size", + "type": "Dropdown", + "description": "Change the row spacing of the list view.", + "options": [ + { + "name": "Small", + "class": "listview-sm" + }, + { + "name": "Large", + "class": "listview-lg" + } + ] + } + ], + "DataGrid": [ + { + "name": "Style", + "type": "Dropdown", + "description": "Choose one of the following styles to change the appearance of the data grid.", + "options": [ + { + "name": "Striped", + "class": "datagrid-striped" + }, + { + "name": "Bordered", + "class": "datagrid-bordered" + }, + { + "name": "Lined", + "class": "datagrid-lined" + } + ] + }, + { + "name": "Hover style", + "type": "Toggle", + "description": "Enable data grid hover to make the rows hoverable.", + "class": "datagrid-hover" + }, + { + "name": "Row size", + "type": "Dropdown", + "description": "Increase or decrease the row spacing of the data grid row.", + "options": [ + { + "name": "Small", + "class": "datagrid-sm" + }, + { + "name": "Large", + "class": "datagrid-lg" + } + ] + } + ], + "TemplateGrid": [ + { + "name": "Style", + "type": "Dropdown", + "description": "Choose one of the following styles to change the appearance of the template grid.", + "options": [ + { + "name": "Striped", + "class": "templategrid-striped" + }, + { + "name": "Bordered", + "class": "templategrid-bordered" + }, + { + "name": "Lined", + "class": "templategrid-lined" + }, + { + "name": "No styling", + "class": "templategrid-stylingless" + } + ] + }, + { + "name": "Hover style", + "type": "Toggle", + "description": "Enable template grid hover to make the rows hoverable.", + "class": "templategrid-hover" + } + ], + "GroupBox": [ + { + "name": "Style", + "type": "Dropdown", + "description": "Choose one of the following styles to change the appearance of the groupbox.", + "options": [ + { + "name": "Brand Primary", + "oldNames": ["Primary"], + "class": "groupbox-primary" + }, + { + "name": "Brand Secondary", + "oldNames": ["Default", "Brand Default"], + "class": "groupbox-secondary" + }, + { + "name": "Brand Success", + "oldNames": ["Success"], + "class": "groupbox-success" + }, + { + "name": "Brand Warning", + "oldNames": ["Warning"], + "class": "groupbox-warning" + }, + { + "name": "Brand Danger", + "oldNames": ["Danger"], + "class": "groupbox-danger" + }, + { + "name": "Transparent", + "class": "groupbox-transparent" + } + ] + }, + { + "name": "Callout style", + "type": "Toggle", + "description": "Enable the groupbox callout functionality to highlight the importance of the groupbox.", + "class": "groupbox-callout" + } + ], + "StaticImageViewer": [ + { + "name": "Style", + "type": "Dropdown", + "description": "Choose the style of your image.", + "options": [ + { + "name": "Rounded", + "class": "img-rounded" + }, + { + "name": "Thumbnail", + "class": "img-thumbnail" + }, + { + "name": "Circle", + "class": "img-circle" + } + ] + }, + { + "name": "Center", + "type": "Toggle", + "description": "Align the image in the center of an element.", + "class": "img-center" + }, + { + "name": "Fit", + "type": "Dropdown", + "description": "Choose the image fit.", + "options": [ + { + "name": "Fill", + "class": "img-fill" + }, + { + "name": "Contain", + "class": "img-contain" + }, + { + "name": "Cover", + "class": "img-cover" + }, + { + "name": "Scale-down", + "class": "img-scale-down" + } + ] + } + ], + "DynamicImageViewer": [ + { + "name": "Style", + "type": "Dropdown", + "description": "Choose the style of your image.", + "options": [ + { + "name": "Rounded", + "class": "img-rounded" + }, + { + "name": "Thumbnail", + "class": "img-thumbnail" + }, + { + "name": "Circle", + "class": "img-circle" + } + ] + }, + { + "name": "Center", + "type": "Toggle", + "description": "Align the image in the center of an element.", + "class": "img-center" + }, + { + "name": "Fit", + "type": "Dropdown", + "description": "Choose the image fit.", + "options": [ + { + "name": "Fill", + "class": "img-fill" + }, + { + "name": "Contain", + "class": "img-contain" + }, + { + "name": "Cover", + "class": "img-cover" + }, + { + "name": "Scale-down", + "class": "img-scale-down" + } + ] + } + ], + "Label": [ + { + "name": "Style", + "type": "Dropdown", + "description": "Change the appearance of a label.", + "options": [ + { + "name": "Brand Primary", + "oldNames": ["Primary"], + "class": "label-primary" + }, + { + "name": "Brand Secondary", + "oldNames": ["Default", "Brand Default"], + "class": "label-secondary" + }, + { + "name": "Brand Success", + "oldNames": ["Success"], + "class": "label-success" + }, + { + "name": "Brand Warning", + "oldNames": ["Warning"], + "class": "label-warning" + }, + { + "name": "Brand Danger", + "oldNames": ["Danger"], + "class": "label-danger" + } + ] + } + ], + "TabContainer": [ + { + "name": "Style", + "type": "Dropdown", + "description": "Change the appearance of the tab container", + "options": [ + { + "name": "Pills", + "class": "tab-pills" + }, + { + "name": "Lined", + "class": "tab-lined" + }, + { + "name": "Bordered", + "class": "tab-bordered" + }, + { + "name": "Wizard", + "class": "tab-wizard" + } + ] + }, + { + "name": "Tab Position", + "type": "Dropdown", + "description": "Change the position of the tabs", + "options": [ + { + "name": "Left", + "class": "tab-left" + }, + { + "name": "Center", + "class": "tab-center" + }, + { + "name": "Right", + "class": "tab-right" + } + ] + }, + { + "name": "Justify", + "type": "Toggle", + "description": "Justify the tabs to 100%", + "class": "tab-justified" + } + ], + "DynamicText": [ + { + "name": "Size", + "type": "Dropdown", + "description": "Make the text smaller or larger.", + "options": [ + { + "name": "Small", + "class": "text-small" + }, + { + "name": "Large", + "class": "text-large" + } + ] + }, + { + "name": "Weight", + "oldNames": ["Font Weight"], + "type": "Dropdown", + "description": "Emphasize the text with a heavier or lighter font weight", + "options": [ + { + "name": "Light", + "class": "text-light" + }, + { + "name": "Normal", + "class": "text-normal" + }, + { + "name": "Semibold", + "class": "text-semibold" + }, + { + "name": "Bold", + "class": "text-bold" + } + ] + }, + { + "name": "Color", + "type": "Dropdown", + "description": "Change the color of text.", + "options": [ + { + "name": "Header color", + "class": "text-header" + }, + { + "name": "Detail color", + "class": "text-detail" + }, + { + "name": "Brand Primary", + "oldNames": ["Primary"], + "class": "text-primary" + }, + { + "name": "Brand Secondary", + "oldNames": ["Default", "Brand Default"], + "class": "text-secondary" + }, + { + "name": "Brand Success", + "oldNames": ["Success"], + "class": "text-success" + }, + { + "name": "Brand Warning", + "oldNames": ["Warning"], + "class": "text-warning" + }, + { + "name": "Brand Danger", + "oldNames": ["Danger"], + "class": "text-danger" + }, + { + "name": "White", + "class": "text-white" + } + ] + }, + { + "name": "Alignment", + "type": "Dropdown", + "description": "Align the text.", + "options": [ + { + "name": "Left", + "class": "text-left d-block" + }, + { + "name": "Center", + "class": "text-center d-block" + }, + { + "name": "Right", + "class": "text-right d-block" + } + ] + }, + { + "name": "Transform", + "type": "Dropdown", + "description": "Change the letter case of the text.", + "options": [ + { + "name": "Lowercase", + "class": "text-lowercase" + }, + { + "name": "Uppercase", + "class": "text-uppercase" + }, + { + "name": "Capitalize", + "class": "text-capitalize" + } + ] + }, + { + "name": "Wrap options", + "type": "Dropdown", + "description": "Break long words and sentences into multiple lines.", + "options": [ + { + "name": "Wrap", + "class": "text-break" + }, + { + "name": "No Wrap", + "class": "text-nowrap" + } + ] + } + ], + "Table": [ + { + "name": "Style", + "type": "Dropdown", + "description": "Change the appearance of cells in the table.", + "options": [ + { + "name": "Bordered", + "class": "table-bordered" + }, + { + "name": "Lined", + "class": "table-lined" + } + ] + }, + { + "name": "Compact", + "type": "Toggle", + "description": "Change the spacing between cells to be compact.", + "class": "table-compact" + } + ], + "com.mendix.widget.custom.badge.Badge": [ + { + "name": "Style", + "type": "Dropdown", + "description": "The brand style affecting this element's appearance.", + "options": [ + { + "name": "Brand Primary", + "class": "label-primary" + }, + { + "name": "Brand Secondary", + "class": "label-secondary" + }, + { + "name": "Brand Success", + "class": "label-success" + }, + { + "name": "Brand Warning", + "class": "label-warning" + }, + { + "name": "Brand Danger", + "class": "label-danger" + } + ] + } + ], + "com.mendix.widget.custom.progressbar.ProgressBar": [ + { + "name": "Striped bar", + "type": "Toggle", + "description": "Striped progress bar", + "class": "progress-striped" + }, + { + "name": "Bar color", + "type": "Dropdown", + "description": "Color of the progress bar", + "options": [ + { + "name": "Primary", + "class": "progress-bar-primary" + }, + { + "name": "Success", + "class": "progress-bar-success" + }, + { + "name": "Warning", + "class": "progress-bar-warning" + }, + { + "name": "Danger", + "class": "progress-bar-danger" + } + ] + }, + { + "name": "Size", + "type": "Dropdown", + "description": "Size of the progress bar", + "options": [ + { + "name": "Small", + "class": "progress-bar-small" + }, + { + "name": "Medium", + "class": "progress-bar-medium" + }, + { + "name": "Large", + "class": "progress-bar-large" + } + ] + } + ], + "com.mendix.widget.custom.badgebutton.BadgeButton": [ + { + "name": "Style", + "type": "Dropdown", + "description": "The brand style affecting this element's appearance.", + "options": [ + { + "name": "Brand Primary", + "class": "btn-primary" + }, + { + "name": "Brand Secondary", + "class": "btn-secondary" + }, + { + "name": "Brand Success", + "class": "btn-success" + }, + { + "name": "Brand Warning", + "class": "btn-warning" + }, + { + "name": "Brand Danger", + "class": "btn-danger" + } + ] + }, + { + "name": "Size", + "type": "Dropdown", + "description": "Size of the buttons", + "options": [ + { + "name": "Small", + "class": "btn-sm" + }, + { + "name": "Large", + "class": "btn-lg" + } + ] + }, + { + "name": "Full width", + "type": "Toggle", + "description": "Extend the button to the full width of the container it is placed in.", + "class": "btn-block" + }, + { + "name": "Border", + "oldNames": ["Bordered"], + "type": "Toggle", + "description": "Style the button with a transparent background, a colored border, and colored text.", + "class": "btn-bordered" + } + ], + "com.mendix.widget.custom.progresscircle.ProgressCircle": [ + { + "name": "Bar color", + "type": "Dropdown", + "description": "Color of the progress bar", + "options": [ + { + "name": "Primary", + "class": "widget-progress-circle-primary" + }, + { + "name": "Success", + "class": "widget-progress-circle-success" + }, + { + "name": "Warning", + "class": "widget-progress-circle-warning" + }, + { + "name": "Danger", + "class": "widget-progress-circle-danger" + } + ] + }, + { + "name": "Size", + "type": "Dropdown", + "description": "Thickness of the progress circle", + "options": [ + { + "name": "Small", + "class": "widget-progress-circle-thickness-small" + }, + { + "name": "Medium", + "class": "widget-progress-circle-thickness-medium" + }, + { + "name": "Large", + "class": "widget-progress-circle-thickness-large" + } + ] + } + ], + "com.mendix.widget.custom.switch.Switch": [ + { + "name": "Style", + "type": "Dropdown", + "description": "The brand style affecting this element's appearance.", + "options": [ + { + "name": "Brand Primary", + "class": "widget-switch-brand-primary" + }, + { + "name": "Brand Secondary", + "class": "widget-switch-brand-secondary" + }, + { + "name": "Brand Success", + "class": "widget-switch-brand-success" + }, + { + "name": "Brand Warning", + "class": "widget-switch-brand-warning" + }, + { + "name": "Brand Danger", + "class": "widget-switch-brand-danger" + } + ] + }, + { + "name": "Device style", + "type": "Dropdown", + "description": "The general appearance of the switch. When no option selected iOS styles are applied", + "options": [ + { + "name": "iOS", + "class": "iOS" + }, + { + "name": "Android", + "class": "android" + } + ] + } + ], + "MenuBar": [ + { + "name": "Hide icons", + "type": "Toggle", + "description": "Hide the navigation items icon", + "class": "hide-icons" + } + ], + "NavigationTree": [ + { + "name": "Hide icons", + "type": "Toggle", + "description": "Hide the navigation items icon", + "class": "hide-icons" + } + ], + "SimpleMenuBar": [ + { + "name": "Hide icons", + "type": "Toggle", + "description": "Hide the navigation items icon", + "class": "hide-icons" + } + ], + "com.mendix.widget.custom.starrating.StarRating": [ + { + "name": "Size", + "type": "Dropdown", + "description": "Change size of the rating icon/image. Default is medium.", + "options": [ + { + "name": "Small", + "class": "widget-rating-small" + }, + { + "name": "Large", + "class": "widget-rating-large" + } + ] + } + ], + "com.mendix.widget.web.accordion.Accordion": [ + { + "name": "Borders", + "type": "Dropdown", + "description": "Change the border appearance. By default, only horizontal borders between groups are applied.", + "options": [ + { + "name": "All", + "class": "widget-accordion-bordered-all" + }, + { + "name": "Horizontal", + "class": "widget-accordion-bordered-horizontal" + }, + { + "name": "None", + "class": "widget-accordion-bordered-none" + } + ] + }, + { + "name": "Striped", + "type": "Toggle", + "description": "Add alternating background colors to groups in the accordion.", + "class": "widget-accordion-striped" + }, + { + "name": "Compact", + "type": "Toggle", + "description": "Make groups in the accordion more compact.", + "class": "widget-accordion-compact" + } + ], + "com.mendix.widget.web.image.Image": [ + { + "name": "Align content", + "type": "Dropdown", + "description": "Align content of this element left, right or center it. Align elements inside the container as a row or as a column.", + "options": [ + { + "name": "Left align as a row", + "class": "row-left" + }, + { + "name": "Center align as a row", + "class": "row-center" + }, + { + "name": "Right align as a row", + "class": "row-right" + }, + { + "name": "Left align as a column", + "class": "col-left" + }, + { + "name": "Center align as a column", + "class": "col-center" + }, + { + "name": "Right align as a column", + "class": "col-right" + } + ] + }, + { + "name": "Image style", + "type": "Dropdown", + "description": "Change the image style.", + "options": [ + { + "name": "Rounded", + "class": "img-rounded" + }, + { + "name": "Circle", + "class": "img-circle" + }, + { + "name": "Square", + "class": "img-square" + } + ] + }, + { + "name": "Center image", + "type": "Toggle", + "description": "Center the image.", + "class": "img-center" + }, + { + "name": "Image fit", + "type": "Dropdown", + "description": "Change the fit of the image.", + "options": [ + { + "name": "Fill", + "class": "img-fill" + }, + { + "name": "Contain", + "class": "img-contain" + }, + { + "name": "Cover", + "class": "img-cover" + }, + { + "name": "Scale-down", + "class": "img-scale-down" + }, + { + "name": "Auto", + "class": "img-auto" + } + ] + }, + { + "name": "Opacity", + "type": "Dropdown", + "description": "Change the opacity of the image.", + "options": [ + { + "name": "Low", + "class": "img-opacity-low" + }, + { + "name": "Medium", + "class": "img-opacity-medium" + }, + { + "name": "High", + "class": "img-opacity-high" + } + ] + } + ], + "com.mendix.widget.custom.slider.Slider": [ + { + "name": "Style", + "type": "Dropdown", + "description": "The brand style affecting this element's appearance.", + "options": [ + { + "name": "Brand Primary", + "class": "widget-slider-primary" + }, + + { + "name": "Brand Success", + "class": "widget-slider-success" + }, + { + "name": "Brand Warning", + "class": "widget-slider-warning" + }, + { + "name": "Brand Danger", + "class": "widget-slider-danger" + } + ] + } + ], + "com.mendix.widget.web.tooltip.Tooltip": [ + { + "name": "Show inline", + "type": "Toggle", + "description": "Show the widget as an inline element.", + "class": "widget-tooltip-inline" + } + ], + "com.mendix.widget.custom.RangeSlider.RangeSlider": [ + { + "name": "Style", + "type": "Dropdown", + "description": "The brand style affecting this element's appearance.", + "options": [ + { + "name": "Brand Primary", + "class": "widget-range-slider-primary" + }, + + { + "name": "Brand Success", + "class": "widget-range-slider-success" + }, + { + "name": "Brand Warning", + "class": "widget-range-slider-warning" + }, + { + "name": "Brand Danger", + "class": "widget-range-slider-danger" + } + ] + } + ] +} diff --git a/themesource/atlas_core/web/layouts/_layout-atlas-phone.scss b/themesource/atlas_core/web/layouts/_layout-atlas-phone.scss new file mode 100644 index 0000000..59fcc6a --- /dev/null +++ b/themesource/atlas_core/web/layouts/_layout-atlas-phone.scss @@ -0,0 +1,24 @@ +/* ========================================================================== + Atlas layout + + Extra styling for phone layouts +========================================================================== */ +@mixin layout-atlas-phone() { + .layout-atlas-phone { + .region-topbar { + min-height: $m-header-height; + border-style: none; + background-color: $m-header-bg; + + &::before { + display: none; + } + } + + .region-sidebar { + .mx-navigationtree .navbar-inner > ul > li > a .glyphicon { + margin-right: $spacing-medium; + } + } + } +} diff --git a/themesource/atlas_core/web/layouts/_layout-atlas-responsive.scss b/themesource/atlas_core/web/layouts/_layout-atlas-responsive.scss new file mode 100644 index 0000000..1e4339e --- /dev/null +++ b/themesource/atlas_core/web/layouts/_layout-atlas-responsive.scss @@ -0,0 +1,190 @@ +/* ========================================================================== + Atlas layout + + Extra styling for responsive layouts +========================================================================== */ +@mixin layout-atlas-responsive() { + $sidebar-icon-height: 52px; + $sidebar-icon-width: 52px; + + .layout-atlas-responsive, + .layout-atlas-responsive-default { + @media (min-width: $screen-md) { + .mx-scrollcontainer-shrink:not(.mx-scrollcontainer-open) > .region-sidebar, + .mx-scrollcontainer-push:not(.mx-scrollcontainer-open) > .region-sidebar, + .mx-scrollcontainer-slide:not(.mx-scrollcontainer-open) > .region-sidebar { + width: $navsidebar-width-closed !important; + + .mx-scrollcontainer-wrapper > .mx-navigationtree ul li { + &.mx-navigationtree-has-items a { + white-space: nowrap; + } + + &.mx-navigationtree-has-items:hover > ul { + position: absolute; + z-index: 100; + top: 0; + bottom: 0; + left: $sidebar-icon-width; + display: block; + min-width: auto; + padding: $spacing-small 0; + + & > li.mx-navigationtree-has-items:hover > ul { + left: 100%; + } + } + + &.mx-navigationtree-collapsed, + &.mx-navigationtree-has-items { + ul { + display: none; + } + } + } + } + + .widget-sidebar:not(.widget-sidebar-expanded) { + .mx-navigationtree ul li { + &.mx-navigationtree-has-items:hover { + ul { + position: absolute; + z-index: 100; + top: 0; + bottom: 0; + left: $sidebar-icon-width; + display: block; + overflow-y: auto; + min-width: auto; + padding: $spacing-small 0; + } + } + + &.mx-navigationtree-collapsed, + &.mx-navigationtree-has-items { + ul { + display: none; + } + } + } + } + } + + .mx-scrollcontainer-slide { + &:not(.mx-scrollcontainer-open) > .region-sidebar { + overflow: hidden; + } + + &.mx-scrollcontainer-open > .region-sidebar { + width: $navsidebar-width-closed !important; + + & > .mx-scrollcontainer-wrapper { + position: relative; + } + } + + .region-sidebar > .mx-scrollcontainer-wrapper { + z-index: 2; + left: -$navsidebar-width-closed; + background-color: inherit; + } + } + + // Push aside for mobile + @media (max-width: $screen-sm-max) { + .mx-scrollcontainer-open:not(.mx-scrollcontainer-slide) { + width: 1100px; + } + + .mx-scrollcontainer-slide .toggle-btn { + display: inline-block !important; + } + } + + // Sidebar + .region-sidebar { + .toggle-btn { + width: $sidebar-icon-width; + border-color: transparent; + border-radius: 0; + background: transparent; + } + + .mx-scrollcontainer-wrapper { + .toggle-btn-wrapper { + display: flex; + padding: $spacing-small; + align-items: center; + min-height: calc(#{$topbar-minimalheight} + 4px); + background: $navsidebar-sub-bg; + } + + .toggle-btn { + padding: $spacing-medium; + + img { + width: 24px; + height: 24px; + } + } + + .toggle-text { + color: #fff; + font-weight: bold; + } + + & > .mx-navigationtree .navbar-inner > ul > li { + & > a { + height: $sidebar-icon-height; + padding: $spacing-small 0; + white-space: nowrap; + overflow: hidden; + // Glyph icon + .glyphicon { + display: flex; + align-items: center; + justify-content: center; + width: $sidebar-icon-width; + height: $sidebar-icon-height; + padding: $spacing-small $spacing-medium; + border-radius: $border-radius-default; + } + } + } + } + } + + // Topbar + .region-topbar { + padding: 0 $spacing-small; + + .toggle-btn { + padding: 0; + border-color: transparent; + border-radius: 0; + background: transparent; + } + } + } + + // Topbar variant + .layout-atlas-responsive-topbar { + .region-topbar { + padding: 0 $spacing-medium; + @media (max-width: $screen-sm-max) { + padding: 0 $spacing-small; + } + } + } + + // Fix Safari issue of sidebar disappearing + .profile-tablet { + .mx-scrollcontainer:not(.mx-scrollcontainer-open) > .region-sidebar { + overflow-y: hidden; + + .mx-scrollcontainer-wrapper { + overflow: visible; + } + } + } +} diff --git a/themesource/atlas_core/web/layouts/_layout-atlas-tablet.scss b/themesource/atlas_core/web/layouts/_layout-atlas-tablet.scss new file mode 100644 index 0000000..71fc74d --- /dev/null +++ b/themesource/atlas_core/web/layouts/_layout-atlas-tablet.scss @@ -0,0 +1,24 @@ +/* ========================================================================== + Atlas layout + + Extra styling for tablet layouts +========================================================================== */ +@mixin layout-atlas-tablet() { + .layout-atlas-tablet { + .region-topbar { + min-height: $m-header-height; + border-style: none; + background-color: $m-header-bg; + + &::before { + display: none; + } + } + + .region-sidebar { + .mx-navigationtree .navbar-inner > ul > li > a .glyphicon { + margin-right: $spacing-medium; + } + } + } +} diff --git a/themesource/atlas_core/web/layouts/_layout-atlas.scss b/themesource/atlas_core/web/layouts/_layout-atlas.scss new file mode 100644 index 0000000..97005a8 --- /dev/null +++ b/themesource/atlas_core/web/layouts/_layout-atlas.scss @@ -0,0 +1,137 @@ +/* ========================================================================== + Atlas layout + + The core stucture of all atlas layouts +========================================================================== */ +@mixin layout-atlas() { + .layout-atlas { + // Toggle button + .toggle-btn > img, + .toggle-btn > .glyphicon { + margin: 0; + } + + .mx-scrollcontainer-open { + .expand-btn > img { + transform: rotate(180deg); + } + } + + // Sidebar + .region-sidebar { + background-color: $navsidebar-bg; + z-index: 101; + box-shadow: 0 0 4px rgb(0 0 0 / 14%), 2px 4px 8px rgb(0 0 0 / 28%); + + .mx-scrollcontainer-wrapper { + display: flex; + flex-direction: column; + padding: $spacing-small 0; + } + + .mx-navigationtree .navbar-inner > ul > li > a { + padding: $spacing-medium; + + .glyphicon { + margin-right: $spacing-small; + } + } + + .sidebar-heading { + background: $navsidebar-sub-bg; + } + + .toggle-btn { + margin-right: $spacing-small; + border-color: transparent; + border-radius: 0; + background: transparent; + padding: $spacing-medium; + } + } + + // Topbar + .region-topbar { + position: relative; + z-index: 2; // Show dropshadow + min-height: $topbar-minimalheight; + background-color: $navtopbar-bg; + + // Topbar Content + .topbar-content { + display: flex; + align-items: center; + min-height: $topbar-minimalheight; + } + + // Toggle btn + .toggle-btn { + padding: 0; + margin-right: $spacing-medium; + border-color: transparent; + border-radius: 0; + background: transparent; + } + + // For your company, product, or project name + .navbar-brand { + display: inline-block; + float: none; // reset bootstrap + height: auto; + padding: 0; + line-height: inherit; + font-size: 16px; + margin-right: $spacing-small; + + img { + display: inline-block; + margin-right: $spacing-small; + @if $brand-logo !=false { + width: 0; + height: 0; + padding: ($brand-logo-height / 2) ($brand-logo-width / 2); + background-image: url($brand-logo); + background-repeat: no-repeat; + background-position: left center; + background-size: $brand-logo-width; + } @else { + width: auto; + height: $brand-logo-height; + } + } + + a { + margin-left: $spacing-small; + color: $navbar-brand-name; + font-size: 20px; + + &:hover, + &:focus { + text-decoration: none; + } + } + } + + .mx-navbar { + display: inline-flex; + vertical-align: middle; + background: transparent; + justify-content: center; + align-items: center; + + & > .mx-navbar-item { + & > a { + margin-top: 5px; + padding: 0 20px; + } + } + } + } + + .mx-scrollcontainer-slide { + &:not(.mx-scrollcontainer-open) > .region-sidebar { + overflow: hidden; + } + } + } +} diff --git a/themesource/atlas_core/web/main.scss b/themesource/atlas_core/web/main.scss new file mode 100644 index 0000000..3ce7fbe --- /dev/null +++ b/themesource/atlas_core/web/main.scss @@ -0,0 +1,381 @@ +// Default variables +@import "exclusion-variables"; +@import "../../../theme/web/exclusion-variables"; +@import "variables"; +@import "../../../theme/web/custom-variables"; + +// Font Family Import +@if $font-family-import != false { + @import url($font-family-import); +} + +//=============================== Bootstrap ================================\\ + +// Utilities +@import "core/_legacy/bootstrap/bootstrap"; +@import "core/_legacy/bootstrap/bootstrap-rtl"; +@if not $exclude-bootstrap { + @include bootstrap(); + @include bootstrap-rtl(); +} +@import "core/_legacy/mxui"; +@if not $exclude-mxui { + @include mxui(); +} + +//================================== CORE ==================================\\ + +// Base +@import "core/base/mixins/animations"; +@import "core/base/mixins/spacing"; +@import "core/base/mixins/layout-spacing"; +@import "core/base/mixins/buttons"; +@import "core/base/mixins/groupbox"; + +@import "core/base/animation"; +@if not $exclude-animations { + @include animations(); +} +@import "core/base/flex"; +@if not $exclude-flex { + @include flex(); +} +@import "core/base/spacing"; +@if not $exclude-spacing { + @include spacing(); +} +@import "core/base/base"; +@if not $exclude-base { + @include base(); +} +@import "core/base/login"; +@if not $exclude-login { + @include login(); +} + +// Widgets +@import "core/widgets/input"; +@if not $exclude-input { + @include input(); +} + +@import "core/helpers/background"; +@if not $exclude-background-helpers { + @include background-helpers(); +} + +@import "core/widgets/label"; +@if not $exclude-label { + @include label(); +} + +@import "core/widgets/badge"; +@if not $exclude-badge { + @include badge(); +} + +@import "core/helpers/label"; +@if not $exclude-label and not $exclude-label-helpers { + @include label-helpers(); +} + +@import "core/widgets/badge-button"; +@if not $exclude-badge-button { + @include badge-button(); +} + +@import "core/helpers/badge-button"; +@if not $exclude-badge-button and not $exclude-badge-button-helpers { + @include badge-button-helpers(); +} + +@import "core/widgets/button"; +@if not $exclude-button { + @include button(); +} + +@import "core/helpers/button"; +@if not $exclude-button and not $exclude-button-helpers { + @include button-helpers(); +} + +@import "core/widgets/check-box"; +@if not $exclude-check-box { + @include check-box(); +} + +@import "core/widgets/grid"; +@if not $exclude-grid { + @include grid(); +} + +@import "core/widgets/data-grid"; +@if not $exclude-data-grid { + @include data-grid(); +} + +@import "core/helpers/data-grid"; +@if not $exclude-data-grid and not $exclude-data-grid-helpers { + @include data-grid-helpers(); +} + +@import "core/widgets/data-view"; +@if not $exclude-data-view { + @include data-view(); +} + +@import "core/widgets/date-picker"; +@if not $exclude-data-picker { + @include date-picker(); +} + +@import "core/widgets/header"; +@if not $exclude-header { + @include header(); +} + +@import "core/widgets/glyphicon"; +@if not $exclude-glyphicon { + @include glyphicon(); +} + +@import "core/widgets/group-box"; +@if not $exclude-group-box { + @include group-box(); +} + +@import "core/helpers/group-box"; +@if not $exclude-group-box and not $exclude-group-box-helpers { + @include group-box-helpers(); +} + +@import "core/helpers/image"; +@if not $exclude-image-helpers { + @include image-helpers(); +} + +@import "core/widgets/list-view"; +@if not $exclude-list-view { + @include list-view(); +} + +@import "core/helpers/list-view"; +@if not $exclude-list-view and not $exclude-list-view-helpers { + @include list-view-helpers(); +} + +@import "core/widgets/modal"; +@if not $exclude-modal { + @include modal(); +} + +@import "core/widgets/navigation-bar"; +@if not $exclude-navigation-bar { + @include navigation-bar(); +} + +@import "core/helpers/navigation-bar"; +@if not $exclude-navigation-bar and not $exclude-navigation-bar-helpers { + @include navigation-bar-helpers(); +} + +@import "core/widgets/navigation-list"; +@if not $exclude-navigation-list { + @include navigation-list(); +} + +@import "core/widgets/navigation-tree"; +@if not $exclude-navigation-tree { + @include navigation-tree(); +} + +@import "core/helpers/navigation-tree"; +@if not $exclude-navigation-tree and not $exclude-navigation-tree-helpers { + @include navigation-tree-helpers(); +} + +@import "core/widgets/pop-up-menu"; +@if not $exclude-pop-up-menu { + @include pop-up-menu(); +} + +@import "core/widgets/simple-menu-bar"; +@if not $exclude-simple-menu-bar { + @include simple-menu-bar(); +} + +@import "core/helpers/simple-menu-bar"; +@if not $exclude-simple-menu-bar and not $exclude-simple-menu-bar-helpers { + @include simple-menu-bar-helpers(); +} + +@import "core/widgets/radio-button"; +@if not $exclude-radio-button { + @include radio-button(); +} + +@import "core/widgets/tab-container"; +@if not $exclude-tab-container { + @include tab-container(); +} + +@import "core/helpers/tab-container"; +@if not $exclude-tab-container and not $exclude-tab-container-helpers { + @include tab-container-helpers(); +} + +@import "core/widgets/table"; +@if not $exclude-table { + @include table(); +} + +@import "core/helpers/table"; +@if not $exclude-table and not $exclude-table-helpers { + @include table-helpers(); +} + +@import "core/widgets/template-grid"; +@if not $exclude-template-grid { + @include template-grid(); +} + +@import "core/helpers/template-grid"; +@if not $exclude-template-grid and not $exclude-template-grid-helpers { + @include template-grid-helpers(); +} + +@import "core/widgets/typography"; +@if not $exclude-typography { + @include typography(); +} + +@import "core/helpers/typography"; +@if not $exclude-typography and not $exclude-typography-helpers { + @include typography-helpers(); +} + +@import "core/widgets/layout-grid"; +@if not $exclude-layout-grid { + @include layout-grid(); +} + +@import "core/widgets/pagination"; +@if not $exclude-pagination { + @include pagination(); +} + +@import "core/widgets/progress"; +@if not $exclude-progress { + @include progress(); +} + +@import "core/widgets/progress-bar"; +@if not $exclude-progress-bar { + @include progress-bar(); +} + +@import "core/helpers/progress-bar"; +@if not $exclude-progress-bar and not $exclude-progress-bar-helpers { + @include progress-bar-helpers(); +} + +@import "core/widgets/progress-circle"; +@if not $exclude-progress-circle { + @include progress-circle(); +} + +@import "core/helpers/progress-circle"; +@if not $exclude-progress-circle and not $exclude-progress-circle-helpers { + @include progress-circle-helpers(); +} + +@import "core/widgets/rating"; +@if not $exclude-rating { + @include rating(); +} + +@import "core/helpers/rating"; +@if not $exclude-rating and not $exclude-rating-helpers { + @include rating-helpers(); +} + +@import "core/widgets/range-slider"; +@if not $exclude-range-slider { + @include range-slider(); +} + +@import "core/helpers/range-slider"; +@if not $exclude-range-slider and not $exclude-range-slider-helpers { + @include range-slider-helpers(); +} + +@import "core/widgets/slider"; +@if not $exclude-slider { + @include slider(); +} + +@import "core/helpers/slider"; +@if not $exclude-slider and not $exclude-slider-helpers { + @include slider-helpers(); +} + +@import "core/widgets/timeline"; +@if not $exclude-timeline { + @include timeline(); +} + +@import "core/widgets/tooltip"; +@if not $exclude-tooltip { + @include tooltip(); +} + +@import "core/helpers/helper-classes"; +@if not $exclude-helper-classes { + @include helper-classes(); +} + +@import "core/widgets/barcode-scanner"; +@if not $exclude-barcode-scanner { + @include barcode-scanner(); +} + +@import "core/widgets/accordion"; +@if not $exclude-accordion { + @include accordion(); +} + +@import "core/helpers/accordion"; +@if not $exclude-accordion and not $exclude-accordion-helpers { + @include accordion-helpers(); +} + +// Custom widgets +@import "core/widgetscustom/dijit-widget"; +@if not $exclude-custom-dijit-widget { + @include dijit-widget(); +} + +@import "core/widgets/switch"; +@if not $exclude-custom-switch { + @include switch(); +} + +//================================= CUSTOM =================================\\ + +// Layouts +@import "layouts/layout-atlas"; +@if not $exclude-layout-atlas { + @include layout-atlas(); +} +@import "layouts/layout-atlas-phone"; +@if not $exclude-layout-atlas-phone { + @include layout-atlas-phone(); +} +@import "layouts/layout-atlas-responsive"; +@if not $exclude-layout-atlas-responsive { + @include layout-atlas-responsive(); +} +@import "layouts/layout-atlas-tablet"; +@if not $exclude-layout-atlas-tablet { + @include layout-atlas-tablet(); +} diff --git a/themesource/atlas_web_content/.version b/themesource/atlas_web_content/.version new file mode 100644 index 0000000..15a2799 --- /dev/null +++ b/themesource/atlas_web_content/.version @@ -0,0 +1 @@ +3.3.0 diff --git a/themesource/atlas_web_content/web/buildingblocks/_alert.scss b/themesource/atlas_web_content/web/buildingblocks/_alert.scss new file mode 100644 index 0000000..a07c84f --- /dev/null +++ b/themesource/atlas_web_content/web/buildingblocks/_alert.scss @@ -0,0 +1,74 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +/* ========================================================================== + Alerts + + Default Bootstrap Alert boxes. Provide contextual feedback messages for typical user actions with the handful of available and flexible alert messages +========================================================================== */ + +.alert { + margin-top: 0; + padding: $spacing-medium; + border: 1px solid; + border-radius: $border-radius-default; + padding: $spacing-medium; +} + +.alert-icon { + font-size: $font-size-h3; +} + +.alert-title { + color: inherit; +} + +.alert-description { + color: inherit; +} + +//Variations + +.alert-primary, +.alert { + color: $alert-primary-color; + border-color: $alert-primary-border-color; + background-color: $alert-primary-bg; +} + +.alert-secondary { + color: $alert-secondary-color; + border-color: $alert-secondary-border-color; + background-color: $alert-secondary-bg; +} + +// Semantic variations +.alert-success { + color: $alert-success-color; + border-color: $alert-success-border-color; + background-color: $alert-success-bg; +} + +.alert-warning { + color: $alert-warning-color; + border-color: $alert-warning-border-color; + background-color: $alert-warning-bg; +} + +.alert-danger { + color: $alert-danger-color; + border-color: $alert-danger-border-color; + background-color: $alert-danger-bg; +} + +//== State +//## Styling when component is in certain state +//-------------------------------------------------------------------------------------------------------------------// +.has-error .alert { + margin-top: $spacing-small; + margin-bottom: 0; +} diff --git a/themesource/atlas_web_content/web/buildingblocks/_breadcrumb.scss b/themesource/atlas_web_content/web/buildingblocks/_breadcrumb.scss new file mode 100644 index 0000000..d6a4bbf --- /dev/null +++ b/themesource/atlas_web_content/web/buildingblocks/_breadcrumb.scss @@ -0,0 +1,45 @@ +/* ========================================================================== + Breadcrumbs + +========================================================================== */ +.breadcrumb { + //reset + margin: 0; + padding: 0; + border-radius: 0; + background-color: transparent; + font-size: $font-size-default; + margin-bottom: $spacing-large; +} + +//== Elements +//-------------------------------------------------------------------------------------------------------------------// +.breadcrumb-item { + display: inline-block; + margin: 0; + &:last-child { + color: $font-color-default; + a { + text-decoration: none; + } + } +} +.breadcrumb-item + .breadcrumb-item { + &::before { + display: inline-block; + padding-right: $spacing-small; + padding-left: $spacing-small; + content: "/"; + color: $gray-light; + } +} + +//== Variations +//-------------------------------------------------------------------------------------------------------------------// +.breadcrumb-large { + font-size: $font-size-h3; +} +.breadcrumb-underline { + padding-bottom: $spacing-medium; + border-bottom: 1px solid $border-color-default; +} diff --git a/themesource/atlas_web_content/web/buildingblocks/_card.scss b/themesource/atlas_web_content/web/buildingblocks/_card.scss new file mode 100644 index 0000000..7f71a8f --- /dev/null +++ b/themesource/atlas_web_content/web/buildingblocks/_card.scss @@ -0,0 +1,63 @@ +/* ========================================================================== + Cards + +========================================================================== */ +.card { + border: 0; + border-radius: $border-radius-default; + background-color: #ffffff; + overflow: hidden; + position: relative; + padding: $spacing-large; + margin-bottom: $spacing-large; +} + +//== Card components +//-------------------------------------------------------------------------------------------------------------------// +.card-body { + padding: $spacing-large; +} + +.card-overlay { + position: absolute; + bottom: 0; + left: 0; + width: 100%; + background: rgba(0, 0, 0, 0.6); + background: linear-gradient( + to bottom, + rgba(255, 255, 255, 0) 0%, + rgba(250, 250, 250, 0) 8%, + rgba(0, 0, 0, 0.99) 121%, + #000 100% + ); + padding: $spacing-large; +} + +.card-title { +} + +.card-image { + width: 100%; + height: auto; +} + +.card-supportingtext { +} + +.card-action { +} + +.card-icon { + font-size: $font-size-h1; +} + +//== Variations +//-------------------------------------------------------------------------------------------------------------------// +.card-with-image { + overflow: hidden; +} + +.card-with-background { + position: relative; +} diff --git a/themesource/atlas_web_content/web/buildingblocks/_chat.scss b/themesource/atlas_web_content/web/buildingblocks/_chat.scss new file mode 100644 index 0000000..2fe5ce9 --- /dev/null +++ b/themesource/atlas_web_content/web/buildingblocks/_chat.scss @@ -0,0 +1,147 @@ +/* ========================================================================== + Chats + +========================================================================== */ +.chat { + display: flex; + flex-direction: column; + height: 100%; + background-color: $bg-color-secondary; +} + +//== Elements +//-------------------------------------------------------------------------------------------------------------------// +.chat-content { + display: flex; + overflow: auto; + flex: 1; + flex-direction: column; + justify-content: flex-end; + + .chat-list { + position: relative; + overflow: auto; + + ul { + display: flex; + flex-direction: column-reverse; + margin-bottom: $m-spacing-large; + } + + li { + padding: 15px 30px; + animation: fadeIn 0.2s; + background-color: transparent; + animation-fill-mode: both; + + &, + &:last-child { + border: 0; + } + } + + .mx-listview-loadMore { + position: absolute; + top: 0; + right: 0; + left: 0; + display: block; + width: 50%; + margin: 15px auto; + color: #ffffff; + background-color: $brand-primary; + box-shadow: 0 2px 20px 0 rgba(0, 0, 0, 0.05); + } + } +} + +.chat-message { + display: flex; +} + +.chat-avatar { + margin: 0 20px 0 0; + border-radius: 50%; +} + +.chat-message-content { + display: inline-flex; + flex-direction: column; +} + +.chat-message-balloon { + position: relative; + display: flex; + flex-direction: column; + padding: 10px 15px; + border-radius: 5px; + background-color: $bg-color; + + &::after { + position: absolute; + top: 10px; + right: 100%; + width: 0; + height: 0; + content: ""; + border: 10px solid transparent; + border-top: 0; + border-right-color: $bg-color; + border-left: 0; + } +} + +.chat-message-time { + padding-top: 2px; + + .form-control-static { + border: 0; + } +} + +.chat-footer { + z-index: 1; + padding: $m-spacing-large; + background-color: $bg-color; + box-shadow: 0 2px 20px 0 rgba(0, 0, 0, 0.05); +} + +.chat-input { + display: flex; + + .chat-textbox { + flex: 1; + margin-right: $spacing-large; + margin-bottom: 0; + + .form-control { + border: 0; + } + } +} + +//== Variations +//-------------------------------------------------------------------------------------------------------------------// +.chat-message-self { + justify-content: flex-end; + + .chat-avatar { + margin: 0 0 0 20px; + } + + .chat-message-balloon { + background-color: $color-primary-lighter; + + &::after { + left: 100%; + border: 10px solid transparent; + border-top: 0; + border-right: 0; + border-left-color: $color-primary-lighter; + } + } + + .chat-message-time { + text-align: right; + } +} diff --git a/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_controlgroup.scss b/themesource/atlas_web_content/web/buildingblocks/_controlgroup.scss similarity index 100% rename from theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_controlgroup.scss rename to themesource/atlas_web_content/web/buildingblocks/_controlgroup.scss diff --git a/themesource/atlas_web_content/web/buildingblocks/_formblock.scss b/themesource/atlas_web_content/web/buildingblocks/_formblock.scss new file mode 100644 index 0000000..c6a2264 --- /dev/null +++ b/themesource/atlas_web_content/web/buildingblocks/_formblock.scss @@ -0,0 +1,14 @@ +/* ========================================================================== + Form Block + + Used in default forms +========================================================================== */ +.formblock { + width: 100%; + margin-bottom: $spacing-large; +} + +//== Elements +//-------------------------------------------------------------------------------------------------------------------// +.form-title { +} diff --git a/themesource/atlas_web_content/web/buildingblocks/_heroheader.scss b/themesource/atlas_web_content/web/buildingblocks/_heroheader.scss new file mode 100644 index 0000000..e5e8fd4 --- /dev/null +++ b/themesource/atlas_web_content/web/buildingblocks/_heroheader.scss @@ -0,0 +1,41 @@ +/* ========================================================================== + Hero header + +========================================================================== */ + +.headerhero { + width: 100%; + min-height: $header-min-height; + background-color: $header-bg-color; + position: relative; + overflow: hidden; + padding: $spacing-large; + margin-bottom: $spacing-large; +} + +//== Elements +//-------------------------------------------------------------------------------------------------------------------// +.headerhero-title { + color: $header-text-color; +} + +.headerhero-subtitle { + color: $header-text-color; +} + +.headerhero-backgroundimage { + position: absolute; + z-index: 0; + top: 0; + height: 100%; + width: 100%; + filter: $header-bgimage-filter; +} + +.btn.headerhero-action { + color: $header-text-color; +} + +.heroheader-overlay { + z-index: 1; +} diff --git a/themesource/atlas_web_content/web/buildingblocks/_master-detail.scss b/themesource/atlas_web_content/web/buildingblocks/_master-detail.scss new file mode 100644 index 0000000..4cb80dd --- /dev/null +++ b/themesource/atlas_web_content/web/buildingblocks/_master-detail.scss @@ -0,0 +1,26 @@ +/* ========================================================================== + Master Detail + + A list with a listening dataview +========================================================================== */ +.masterdetail { + background: #fff; + .masterdetail-master { + border-right: 1px solid $border-color-default; + } + .masterdetail-detail { + padding: $spacing-large; + } +} + +//== Variations +//-------------------------------------------------------------------------------------------------------------------// +.masterdetail-vertical { + background: #fff; + .masterdetail-master { + border-bottom: 1px solid $border-color-default; + } + .masterdetail-detail { + padding: $spacing-large; + } +} diff --git a/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_pageblocks.scss b/themesource/atlas_web_content/web/buildingblocks/_pageblocks.scss similarity index 100% rename from theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_pageblocks.scss rename to themesource/atlas_web_content/web/buildingblocks/_pageblocks.scss diff --git a/themesource/atlas_web_content/web/buildingblocks/_pageheader.scss b/themesource/atlas_web_content/web/buildingblocks/_pageheader.scss new file mode 100644 index 0000000..f649e9a --- /dev/null +++ b/themesource/atlas_web_content/web/buildingblocks/_pageheader.scss @@ -0,0 +1,21 @@ +/* ========================================================================== + Pageheader +========================================================================== */ + +//== Default +//-------------------------------------------------------------------------------------------------------------------// +.pageheader { + width: 100%; + margin-bottom: $spacing-large; +} + +//== Elements +//-------------------------------------------------------------------------------------------------------------------// +.pageheader-title { +} + +.pageheader-subtitle { +} + +.pageheader-image { +} diff --git a/themesource/atlas_web_content/web/buildingblocks/_userprofile.scss b/themesource/atlas_web_content/web/buildingblocks/_userprofile.scss new file mode 100644 index 0000000..eee81f1 --- /dev/null +++ b/themesource/atlas_web_content/web/buildingblocks/_userprofile.scss @@ -0,0 +1,12 @@ +/* ========================================================================== + User profile blocks + - +========================================================================== */ +.userprofile { + .userprofile-img { + } + .userprofile-title { + } + .userprofile-subtitle { + } +} diff --git a/themesource/atlas_web_content/web/buildingblocks/_wizard.scss b/themesource/atlas_web_content/web/buildingblocks/_wizard.scss new file mode 100644 index 0000000..91cd9d8 --- /dev/null +++ b/themesource/atlas_web_content/web/buildingblocks/_wizard.scss @@ -0,0 +1,139 @@ +//Wizard +.wizard { + display: flex; + justify-content: space-between; + width: 100%; + margin-bottom: $spacing-large; +} + +//Wizard step +.wizard-step { + position: relative; + width: 100%; + display: flex; + align-items: center; +} + +//Wizard step number +.wizard-step-number { + position: relative; + z-index: 1; + display: flex; + justify-content: center; + align-items: center; + width: $wizard-step-number-size; + height: $wizard-step-number-size; + color: $wizard-default-step-color; + font-size: $wizard-step-number-font-size; + border-radius: 50%; + background-color: $wizard-default-bg; + border-color: $wizard-default-border-color; +} + +//Wizard step text +.wizard-step-text { + overflow: hidden; + white-space: nowrap; + text-decoration: none; + text-overflow: ellipsis; + color: $wizard-default-step-color; +} + +//Wizard circle +.wizard-circle .wizard-step { + flex-direction: column; + &::before { + position: absolute; + z-index: 0; + top: $wizard-step-number-size / 2; + display: block; + width: 100%; + height: 2px; + content: ""; + background-color: $wizard-default-border-color; + } +} + +//Wizard arrow +.wizard-arrow .wizard-step { + height: $wizard-step-height; + margin-left: calc(0px - (#{$wizard-step-height} / 2)); + padding-left: ($wizard-step-height / 2); + background-color: $wizard-default-bg; + justify-content: flex-start; + border: 1px solid $wizard-default-border-color; + &::before, + &::after { + position: absolute; + z-index: 1; + left: 100%; + margin-left: calc(0px - ((#{$wizard-step-height} / 2) - 1px)); + content: " "; + border-style: solid; + border-color: transparent; + } + &::after { + top: 0; + border-width: calc((#{$wizard-step-height} / 2) - 1px); + border-left-color: $wizard-default-bg; + } + &::before { + top: -1px; + border-width: $wizard-step-height / 2; + border-left-color: $wizard-default-border-color; + } + + &:first-child { + margin-left: 0; + padding-left: 0; + border-top-left-radius: $border-radius-default; + border-bottom-left-radius: $border-radius-default; + } + + &:last-child { + border-top-right-radius: $border-radius-default; + border-bottom-right-radius: $border-radius-default; + &::before, + &::after { + display: none; + } + } +} + +//Wizard states +.wizard-circle .wizard-step-active { + .wizard-step-number { + color: $wizard-active-color; + border-color: $wizard-active-border-color; + background-color: $wizard-active-bg; + } + .wizard-step-text { + color: $wizard-active-step-color; + } +} +.wizard-circle .wizard-step-visited { + .wizard-step-number { + color: $wizard-visited-color; + border-color: $wizard-visited-border-color; + background-color: $wizard-visited-bg; + } + .wizard-step-text { + color: $wizard-visited-step-color; + } +} + +.wizard-arrow .wizard-step-active { + background-color: $wizard-active-bg; + .wizard-step-text { + color: $wizard-active-color; + } + &::after { + border-left-color: $wizard-active-bg; + } +} + +.wizard-arrow .wizard-step-visited { + .wizard-step-text { + color: $link-color; + } +} diff --git a/themesource/atlas_web_content/web/main.scss b/themesource/atlas_web_content/web/main.scss new file mode 100644 index 0000000..df04c6f --- /dev/null +++ b/themesource/atlas_web_content/web/main.scss @@ -0,0 +1,23 @@ +// Default variables +@import "../../atlas_core/web/variables"; +@import "../../../theme/web/custom-variables"; + +// Building blocks +@import "buildingblocks/alert"; +@import "buildingblocks/breadcrumb"; +@import "buildingblocks/card"; +@import "buildingblocks/chat"; +@import "buildingblocks/controlgroup"; +@import "buildingblocks/pageblocks"; +@import "buildingblocks/pageheader"; +@import "buildingblocks/heroheader"; +@import "buildingblocks/formblock"; +@import "buildingblocks/master-detail"; +@import "buildingblocks/userprofile"; +@import "buildingblocks/wizard"; + +// Page templates +@import "pagetemplates/login"; +@import "pagetemplates/list-tab"; +@import "pagetemplates/springboard"; +@import "pagetemplates/statuspage"; diff --git a/themesource/atlas_web_content/web/pagetemplates/_list-tab.scss b/themesource/atlas_web_content/web/pagetemplates/_list-tab.scss new file mode 100644 index 0000000..ff29615 --- /dev/null +++ b/themesource/atlas_web_content/web/pagetemplates/_list-tab.scss @@ -0,0 +1,29 @@ +.listtab-tabs.mx-tabcontainer { + background: $bg-color-secondary; + .mx-tabcontainer-tabs { + background: $brand-primary; + margin-bottom: 0; + li { + > a { + color: #fff; + opacity: 0.6; + &:hover, + &:focus { + color: #fff; + } + } + &.active { + > a { + opacity: 1; + color: #fff; + border-color: #fff; + &:hover, + &:focus { + color: #fff; + border-color: #fff; + } + } + } + } + } +} diff --git a/themesource/atlas_web_content/web/pagetemplates/_login.scss b/themesource/atlas_web_content/web/pagetemplates/_login.scss new file mode 100644 index 0000000..d3dcb55 --- /dev/null +++ b/themesource/atlas_web_content/web/pagetemplates/_login.scss @@ -0,0 +1,10 @@ +.login-formblock { + display: flex; + flex-direction: column; +} + +.login-form { + flex: 1; + display: flex; + flex-direction: column; +} diff --git a/themesource/atlas_web_content/web/pagetemplates/_springboard.scss b/themesource/atlas_web_content/web/pagetemplates/_springboard.scss new file mode 100644 index 0000000..eb30e1a --- /dev/null +++ b/themesource/atlas_web_content/web/pagetemplates/_springboard.scss @@ -0,0 +1,22 @@ +.springboard-grid { + display: flex; + flex-direction: column; + .row { + flex: 1; + .col { + display: flex; + } + } +} + +.springboard-header { + flex: 1; + display: flex; + flex-direction: column; +} + +.springboard-card { + flex: 1; + display: flex; + flex-direction: column; +} diff --git a/themesource/atlas_web_content/web/pagetemplates/_statuspage.scss b/themesource/atlas_web_content/web/pagetemplates/_statuspage.scss new file mode 100644 index 0000000..de73a6e --- /dev/null +++ b/themesource/atlas_web_content/web/pagetemplates/_statuspage.scss @@ -0,0 +1,19 @@ +.statuspage-section { + display: flex; + flex-direction: column; +} + +.statuspage-content { + flex: 1; +} + +.statuspage-icon { + color: #fff; +} + +.statuspage-subtitle { + opacity: 0.6; +} + +.statuspage-buttons { +} diff --git a/themesource/datawidgets/.version b/themesource/datawidgets/.version new file mode 100644 index 0000000..7f29fd8 --- /dev/null +++ b/themesource/datawidgets/.version @@ -0,0 +1 @@ +2.27.6 \ No newline at end of file diff --git a/themesource/datawidgets/LICENSE b/themesource/datawidgets/LICENSE new file mode 100644 index 0000000..51dfbf5 --- /dev/null +++ b/themesource/datawidgets/LICENSE @@ -0,0 +1,201 @@ +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2020 Mendix Technology BV + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/themesource/datawidgets/public/fonts/datagrid-filters.eot b/themesource/datawidgets/public/fonts/datagrid-filters.eot new file mode 100644 index 0000000..d69da4b Binary files /dev/null and b/themesource/datawidgets/public/fonts/datagrid-filters.eot differ diff --git a/themesource/datawidgets/public/fonts/datagrid-filters.svg b/themesource/datawidgets/public/fonts/datagrid-filters.svg new file mode 100644 index 0000000..d5a4452 --- /dev/null +++ b/themesource/datawidgets/public/fonts/datagrid-filters.svg @@ -0,0 +1,34 @@ + + + +Copyright (C) 2022 by original authors @ fontello.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/themesource/datawidgets/public/fonts/datagrid-filters.ttf b/themesource/datawidgets/public/fonts/datagrid-filters.ttf new file mode 100644 index 0000000..231b3b2 Binary files /dev/null and b/themesource/datawidgets/public/fonts/datagrid-filters.ttf differ diff --git a/themesource/datawidgets/public/fonts/datagrid-filters.woff b/themesource/datawidgets/public/fonts/datagrid-filters.woff new file mode 100644 index 0000000..0949bd8 Binary files /dev/null and b/themesource/datawidgets/public/fonts/datagrid-filters.woff differ diff --git a/themesource/datawidgets/public/fonts/datagrid-filters.woff2 b/themesource/datawidgets/public/fonts/datagrid-filters.woff2 new file mode 100644 index 0000000..e9c4c59 Binary files /dev/null and b/themesource/datawidgets/public/fonts/datagrid-filters.woff2 differ diff --git a/themesource/datawidgets/public/fonts/dropdown-sort.eot b/themesource/datawidgets/public/fonts/dropdown-sort.eot new file mode 100644 index 0000000..78d4575 Binary files /dev/null and b/themesource/datawidgets/public/fonts/dropdown-sort.eot differ diff --git a/themesource/datawidgets/public/fonts/dropdown-sort.svg b/themesource/datawidgets/public/fonts/dropdown-sort.svg new file mode 100644 index 0000000..8fe3e2e --- /dev/null +++ b/themesource/datawidgets/public/fonts/dropdown-sort.svg @@ -0,0 +1,14 @@ + + + +Copyright (C) 2021 by original authors @ fontello.com + + + + + + + + + + diff --git a/themesource/datawidgets/public/fonts/dropdown-sort.ttf b/themesource/datawidgets/public/fonts/dropdown-sort.ttf new file mode 100644 index 0000000..2dd032d Binary files /dev/null and b/themesource/datawidgets/public/fonts/dropdown-sort.ttf differ diff --git a/themesource/datawidgets/public/fonts/dropdown-sort.woff b/themesource/datawidgets/public/fonts/dropdown-sort.woff new file mode 100644 index 0000000..13cabc3 Binary files /dev/null and b/themesource/datawidgets/public/fonts/dropdown-sort.woff differ diff --git a/themesource/datawidgets/public/fonts/dropdown-sort.woff2 b/themesource/datawidgets/public/fonts/dropdown-sort.woff2 new file mode 100644 index 0000000..2515aa3 Binary files /dev/null and b/themesource/datawidgets/public/fonts/dropdown-sort.woff2 differ diff --git a/themesource/datawidgets/public/resources/dropdown-arrow.svg b/themesource/datawidgets/public/resources/dropdown-arrow.svg new file mode 100644 index 0000000..d289b3a --- /dev/null +++ b/themesource/datawidgets/public/resources/dropdown-arrow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/themesource/datawidgets/web/_datagrid-design-properties.scss b/themesource/datawidgets/web/_datagrid-design-properties.scss new file mode 100644 index 0000000..82d97c5 --- /dev/null +++ b/themesource/datawidgets/web/_datagrid-design-properties.scss @@ -0,0 +1,126 @@ +.table-compact { + .th { + padding: var(--spacing-small, $dg-spacing-small); + + .filter-selectors { + margin: 0 var(--spacing-small, $dg-spacing-small); + } + } + + &:has(.th .column-container .filter:not(:empty)) { + .th { + &.column-selector { + padding: var(--spacing-small, $dg-spacing-small) 0; + } + &.widget-datagrid-col-select { + padding-bottom: calc(var(--spacing-small, $dg-spacing-small) + 11px); + } + } + } + + .td { + padding: var(--spacing-small, $dg-spacing-small); + } + + .dropdown-container .dropdown-list { + margin: 0 var(--spacing-small, $dg-spacing-small); + } + + .column-selector { + /* Column content */ + .column-selector-content { + padding-right: var(--spacing-small, $dg-spacing-small); + } + } +} + +.table-striped { + .tr:nth-child(odd) > .td { + background-color: var(--grid-bg-striped, $dg-grid-bg-striped); + } +} + +.table-hover { + .tr:hover > .td { + background-color: var(--grid-bg-hover, $dg-grid-bg-hover); + } +} + +.table-bordered-all { + .th, + .td { + border-left-width: 1px; + border-left-style: solid; + + // Column for the visibility when a column can be hidden + &.column-selector { + border-left-width: 0; + } + + &:last-child, + &.column-selector { + border-right-width: 1px; + border-right-style: solid; + } + } + .th { + border-top-width: 1px; + border-top-style: solid; + } + + .td { + border-bottom-width: 1px; + border-bottom-style: solid; + + &.td-borders { + border-top-width: 1px; + } + } +} + +.table-bordered-horizontal { + .td { + border-bottom-width: 1px; + border-bottom-style: solid; + + &.td-borders { + border-top-width: 1px; + } + } +} + +.table-bordered-vertical { + .th, + .td { + border-left-width: 1px; + border-left-style: solid; + border-bottom-width: 0; + + // Column for the visibility when a column can be hidden + &.column-selector { + border-left-width: 0; + border-bottom-width: 0; + border-right-width: 1px; + border-right-style: solid; + } + + &.td-borders { + border-top-width: 0; + } + } +} + +.table-bordered-none { + .td, + .th { + border: 0; + + &.column-selector { + border: 0; + } + + &.td-borders { + border: 0; + } + } +} diff --git a/themesource/datawidgets/web/_datagrid-dropdown-filter.scss b/themesource/datawidgets/web/_datagrid-dropdown-filter.scss new file mode 100644 index 0000000..b77663d --- /dev/null +++ b/themesource/datawidgets/web/_datagrid-dropdown-filter.scss @@ -0,0 +1,329 @@ +@mixin scroll-shadow { + background: + /* Shadow Cover TOP */ + linear-gradient(white 30%, rgba(255, 255, 255, 0)) center top, + /* Shadow Cover BOTTOM */ linear-gradient(rgba(255, 255, 255, 0), white 70%) center bottom, + /* Shadow TOP */ linear-gradient(0deg, rgba(255, 255, 255, 0.6), rgba(197, 197, 197, 0.6)) center top, + /* Shadow BOTTOM */ linear-gradient(180deg, rgba(255, 255, 255, 0.6), rgba(197, 197, 197, 0.6)) center bottom; + + background-repeat: no-repeat; + background-size: + 100% 70px, + 100% 70px, + 100% 35px, + 100% 35px; + background-attachment: local, local, scroll, scroll; +} + +@mixin btn-with-cross { + path { + stroke-width: 0; + } + &:hover { + color: var(--brand-primary, #264ae5); + path { + stroke-width: 1px; + } + } +} + +$root: ".widget-dropdown-filter"; + +#{$root} { + --wdf-outer-spacing: var(--dropdown-outer-spacing, 10px); + --wdf-spacing: var(--spacing-smaller, 4px); + --wdf-spacing-tiny: var(--spacing-smallest, 2px); + --wdf-popover-spacing: 0; + --wdf-popover-z-index: 50; + --wdf-popover-shadow: 0px 0px var(--wdf-outer-spacing) 0px var(--shadow-color-border, rgba(0, 0, 0, 0.2)); + --wdf-bd-radius: var(--dropdown-border-radius, 7px); + --wdf-menu-bg-color: var(--label-info-color, #ffffff); + --wdf-menu-max-height: var(--dropdown-menu-max-height, 320px); + --wdf-menu-item-padding: 6px 10px; + --wdf-highlighted-bg-color: var(--color-default-light, #f5f6f6); + --wdf-selected-bg-color: var(--color-primary-lighter, #e6eaff); + --wdf-button-spacing: 8px; + --wdf-color: var(--gray-dark, black); + --wdf-state-icon-size: 16px; + --wdf-toggle-width: calc(4px + var(--wdf-state-icon-size) + var(--wdf-button-spacing)); + --wdf-toggle-inline-end: var(--wdf-toggle-width); + --wdf-clear-margin: var(--wdf-toggle-inline-end); + --wdf-clear-inline-spacing: 6px; + --wdf-clear-border-width: 1px; + --wdf-clear-width: calc(14px + (var(--wdf-clear-inline-spacing) * 2) + var(--wdf-clear-border-width)); + --wdf-toggle-inline-end-clearable: calc(var(--wdf-clear-width) + var(--wdf-toggle-inline-end)); + --wdf-tag-padding: var(--wdf-spacing-tiny) var(--dropdown-outer-spacing, 10px); + + &.form-control { + display: flex; + min-width: 65px; + padding-block: var(--wdf-button-spacing); + padding-inline-end: var(--wdf-button-spacing); + padding-inline-start: var(--wdf-button-spacing); + } + + &-popover { + z-index: var(--wdf-popover-z-index); + box-shadow: var(--wdf-popover-shadow); + margin-top: var(--wdf-spacing); + border-radius: var(--wdf-bd-radius); + } + + &-menu-slot { + border-radius: inherit; + background-color: var(--wdf-menu-bg-color); + } + + &-menu { + @include scroll-shadow; + border-radius: inherit; + margin: 0; + padding: 0; + list-style-type: none; + max-height: var(--wdf-menu-max-height); + overflow-y: auto; + } + + &-menu-item { + display: flex; + flex-flow: row nowrap; + align-content: center; + align-items: center; + cursor: pointer; + user-select: none; + padding: var(--wdf-menu-item-padding); + height: fit-content; + overflow: hidden; + font-weight: normal; + color: var(--wdf-color); + + &:where([data-selected]) { + background-color: var(--wdf-selected-bg-color); + } + + &:where([data-highlighted]) { + background-color: var(--wdf-highlighted-bg-color); + } + } + + &-checkbox-slot { + display: flex; + margin-inline-end: var(--wdf-outer-spacing); + } + + &-input { + border: none; + flex: 1; + margin: 0; + min-width: 50px; + padding: 0; + } + + &-toggle, + &-clear { + background-color: transparent; + border: none; + } + + &-input, + &-toggle { + color: var(--wdf-color); + font-weight: normal; + overflow: hidden; + text-align: start; + text-overflow: ellipsis; + white-space: nowrap; + } + + &-clear { + @include btn-with-cross; + align-items: center; + align-self: center; + display: flex; + flex-shrink: 0; + justify-self: end; + margin-inline-end: var(--wdf-spacing); + padding: 3px 6px; + position: relative; + + &:has(+ #{$root}-state-icon), + &:has(+ #{$root}-toggle) { + border-inline-end: 1px solid var(--gray, #787d87); + } + } + + &-state-icon { + transition: transform 0.2s; + :where(#{$root}[data-expanded="true"]) & { + transform: rotate(180deg); + } + } + + &-input-container { + align-items: center; + display: flex; + flex: 1; + flex-flow: row wrap; + margin: 0; + min-width: 0; + overflow: hidden; + padding: 0; + position: relative; + } + + &-remove-icon { + cursor: pointer; + display: flex; + @include btn-with-cross; + } + + &-separator { + position: absolute; + margin-inline-end: var(--wdf-clear-margin); + background-color: var(--gray, #787d87); + justify-self: end; + inset-block: var(--wdf-button-spacing); + width: 1px; + } + + &-state-icon, + &-toggle { + align-items: center; + display: flex; + flex-shrink: 0; + justify-content: center; + padding-inline-end: 0; + padding-inline-start: 0; + } +} + +:where([data-highlighted]) #{$root}-checkbox:not(:checked)::after { + content: ""; + border-color: var(--form-input-bg-hover, #e7e7e9); +} + +/* Select variant */ +:where(#{$root}.variant-select) { + #{$root}-toggle { + display: block; + flex: 1 1 0; + justify-content: flex-start; + min-width: 0; + } + + #{$root}-state-icon { + align-self: center; + box-sizing: content-box; + justify-self: end; + pointer-events: none; + } + + #{$root}-input-container { + border: none; + background-color: transparent; + white-space: nowrap; + width: 100%; + } + + #{$root}-controls { + display: flex; + flex-shrink: 0; + align-items: center; + } +} + +:where(#{$root}.variant-select[data-empty]) { + --wdf-input-placeholder-color: rgb(117, 117, 117); + #{$root}-toggle { + color: var(--wdf-input-placeholder-color); + } +} + +/* Combobox variant */ +:where(#{$root}.variant-combobox) { + #{$root}-input { + border-radius: inherit; + padding-inline-start: 0; + padding-inline-end: 0; + } +} + +/* Tag Picker variant */ +:where(#{$root}.variant-tag-picker) { + #{$root}-selected-item { + align-items: center; + background-color: var(--color-primary-lighter, #e6eaff); + border-radius: 26px; + color: #000; + display: inline-flex; + flex-flow: row nowrap; + font-size: var(--font-size-small, 12px); + gap: 8px; + justify-content: center; + line-height: 1.334; + padding: var(--wdf-tag-padding); + &:focus-visible { + outline: var(--brand-primary, #264ae5) auto 1px; + } + } + + #{$root}-input { + flex-basis: 0; + min-width: 50px; + width: initial; + } + + #{$root}-clear { + border-color: transparent; + } +} + +/* Tag Picker variant text */ +:where(#{$root}.variant-tag-picker-text) { + #{$root}-selected-item { + background-color: transparent; + border-radius: 2px; + color: var(--wdf-color); + display: block; + overflow: hidden; + position: absolute; + bottom: 0; + left: 0; + right: 0; + top: 0; + text-overflow: ellipsis; + white-space: nowrap; + z-index: 0; + + &-hidden { + display: none; + } + + &:focus-visible { + outline: var(--brand-primary, #264ae5) solid 1px; + outline-offset: 2px; + } + } + + #{$root}-remove-icon { + padding: var(--wdf-spacing-tiny); + border-radius: 50%; + + path { + stroke-width: 1px; + } + } + + #{$root}-input { + background-color: transparent; + min-width: 75px; + opacity: 0; + width: 100%; + z-index: 1; + + &:focus, + &:not(:has(+ #{$root}-selected-item)) { + opacity: 1; + } + } +} diff --git a/themesource/datawidgets/web/_datagrid-filters.scss b/themesource/datawidgets/web/_datagrid-filters.scss new file mode 100644 index 0000000..e2fcb46 --- /dev/null +++ b/themesource/datawidgets/web/_datagrid-filters.scss @@ -0,0 +1,335 @@ +$dg-hover-color: #f8f8f8; +$dg-background-color: #fff; +$dg-selected-color: #dadcde; +$dg-border-color: #ced0d3; +$dg-spacing-small: 8px; +$arrow: "resources/dropdown-arrow.svg"; +$dg-item-min-height: 32px; + +@import "date-picker"; + +@font-face { + font-family: "datagrid-filters"; + src: url("./fonts/datagrid-filters.eot"); + src: + url("./fonts/datagrid-filters.eot") format("embedded-opentype"), + url("./fonts/datagrid-filters.woff2") format("woff2"), + url("./fonts/datagrid-filters.woff") format("woff"), + url("./fonts/datagrid-filters.ttf") format("truetype"), + url("./fonts/datagrid-filters.svg") format("svg"); + font-weight: normal; + font-style: normal; +} + +.filter-container { + display: flex; + flex-direction: row; + flex-grow: 1; + position: relative; + + .filter-input { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + + .btn-calendar { + margin-left: 5px; //Review in atlas, the current date picker is also 5px + .button-icon { + width: 18px; + height: 18px; + } + } +} + +.filter-selector { + padding-left: 0; + padding-right: 0; + + .filter-selector-content { + height: 100%; + align-self: flex-end; + + .filter-selector-button { + padding: 8px; + border-top-right-radius: 0; + border-bottom-right-radius: 0; + border-right: none; + height: 100%; + + &:before { + justify-content: center; + width: 20px; + height: 20px; + padding-left: 4px; /* The font has spaces in the right side, so to align in the middle we need this */ + } + } + } +} + +.filter-selectors { + position: absolute; + width: max-content; + left: 0; + padding: 0; + margin: 0; + background: var(--bg-color-secondary, $dg-background-color); + z-index: 51; + border-radius: 8px; + list-style-type: none; + box-shadow: + 0 2px 20px 1px rgba(5, 15, 129, 0.05), + 0 2px 16px 0 rgba(33, 43, 54, 0.08); + overflow: hidden; + + .filter-listitem, + li { + display: flex; + align-items: center; + font-weight: normal; + line-height: 32px; + cursor: pointer; + + .filter-label { + padding-right: 8px; + } + + &.filter-selected { + background-color: var(--gray-lighter, $dg-hover-color); + color: var(--brand-primary, $dg-brand-primary); + } + + &:hover, + &.filter-highlighted { + background-color: var(--gray-lighter, $dg-hover-color); + } + } +} + +.dropdown-list { + list-style-type: none; + padding: 0; + margin-bottom: 0; + + li { + display: flex; + align-items: center; + font-weight: normal; + min-height: var(--spacing-larger, $dg-item-min-height); + cursor: pointer; + padding: 0 var(--spacing-small, $dg-spacing-small); + + .filter-label { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + + &.filter-selected { + background-color: var(--gray-lighter, $dg-hover-color); + color: var(--brand-primary, $dg-brand-primary); + } + + &:hover, + &:focus { + background-color: var(--gray-lighter, $dg-hover-color); + } + + label { + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + margin: 8px; + font-weight: normal; + width: calc(100% - 32px); + } + } +} + +:not(.dropdown-content) > .dropdown-list { + background: var(--bg-color-secondary, $dg-background-color); + border-radius: 8px; + box-shadow: + 0 2px 20px 1px rgba(5, 15, 129, 0.05), + 0 2px 16px 0 rgba(33, 43, 54, 0.08); + max-height: 40vh; + z-index: 102; +} + +.dropdown-content { + background: var(--bg-color-secondary, $dg-background-color); + border-radius: 8px; + box-shadow: + 0 2px 20px 1px rgba(5, 15, 129, 0.05), + 0 2px 16px 0 rgba(33, 43, 54, 0.08); + max-height: 40vh; + z-index: 140; +} + +.dropdown-footer { + position: sticky; + bottom: 0; + background: inherit; + z-index: 50; +} + +.dropdown-footer-item { + display: flex; + flex-flow: row nowrap; + align-items: center; + padding: 0 var(--spacing-small, $dg-spacing-small); + min-height: 40px; +} + +.dropdown-loading { + flex-grow: 1; + text-align: center; +} + +.dropdown-container { + flex: 1; + position: relative; + + .dropdown-triggerer { + caret-color: transparent; + cursor: pointer; + + background-image: url($arrow); + background-repeat: no-repeat; + background-position: center; + background-position-x: right; + background-position-y: center; + background-origin: content-box; + text-overflow: ellipsis; + width: 100%; + } + + .dropdown-list { + left: 0; + margin: 0 var(--spacing-small, $dg-spacing-small); + padding: 0; + background: var(--bg-color-secondary, $dg-background-color); + z-index: 102; + border-radius: 8px; + list-style-type: none; + box-shadow: + 0 2px 20px 1px rgba(5, 15, 129, 0.05), + 0 2px 16px 0 rgba(33, 43, 54, 0.08); + overflow-x: hidden; + max-height: 40vh; + + li { + display: flex; + align-items: center; + font-weight: normal; + min-height: var(--spacing-larger, $dg-item-min-height); + cursor: pointer; + padding: 0 var(--spacing-small, $dg-spacing-small); + + .filter-label { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + + &.filter-selected { + background-color: var(--gray-lighter, $dg-hover-color); + color: var(--brand-primary, $dg-brand-primary); + } + + &:hover, + &:focus { + background-color: var(--gray-lighter, $dg-hover-color); + } + + label { + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + margin: 8px; + font-weight: normal; + width: calc(100% - 32px); + } + } + } +} + +/** +Icons + */ + +.filter-icon { + display: flex; + align-items: center; + justify-content: center; + height: 20px; + width: 20px; + margin: 6px 8px; + font-family: "datagrid-filters"; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.button-icon { + display: flex; + align-items: center; + justify-content: center; + font-family: "datagrid-filters"; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.contains:before { + content: "\e808"; +} +.endsWith:before { + content: "\e806"; +} +.equal:before { + content: "\e809"; +} +.greater:before { + content: "\e80a"; +} +.greaterEqual:before { + content: "\e80b"; +} +.notEqual:before { + content: "\e80c"; +} +.smaller:before { + content: "\e80d"; +} +.smallerEqual:before { + content: "\e80e"; +} +.startsWith:before { + content: "\e807"; +} +.between:before { + content: "\e900"; +} +.empty:before { + content: "\e901"; +} +.notEmpty:before { + content: "\e903"; +} + +/** +* Specific styles for filters inside Data Grid 2 +**/ +div:not(.table-compact) > .table { + .th { + .filter-selector { + .filter-selectors { + margin: 0; + } + } + + .dropdown-container { + .dropdown-list { + margin: 0; + } + } + } +} diff --git a/themesource/datawidgets/web/_datagrid.scss b/themesource/datawidgets/web/_datagrid.scss new file mode 100644 index 0000000..c40d78d --- /dev/null +++ b/themesource/datawidgets/web/_datagrid.scss @@ -0,0 +1,554 @@ +@import "export-alert"; +@import "export-progress"; +@import "pseudo-modal"; + +$dg-background-color: #fff; +$dg-icon-color: #606671; +$dg-icon-size: 14px; +$dg-pagination-button-color: #3b4251; +$dg-pagination-caption-color: #0a1325; +$dragging-color-effect: rgba(10, 19, 37, 0.8); +$dg-dragging-effect-size: 4px; + +$dg-grid-bg-striped: #fafafb; +$dg-grid-bg-hover: #f5f6f6; +$dg-spacing-small: 8px; +$dg-spacing-medium: 16px; +$dg-spacing-large: 24px; +$dg-grid-border-color: #ced0d3; + +$dg-brand-primary: #264ae5; +$dg-brand-light: #e6eaff; +$dg-grid-selected-row-background: $dg-brand-light; +$dg-skeleton-background: linear-gradient(90deg, rgba(194, 194, 194, 0.2) 0%, #d2d2d2 100%); + +$root: ".widget-datagrid"; + +.table { + position: relative; + border-width: 0; + background-color: var(--bg-color-secondary, $dg-background-color); + + /* Pseudo Row, to target this object please use .tr > .td or .tr > div */ + .tr { + display: contents; + } + + /* Column Header */ + @at-root { + :where(.widget-datagrid-grid .th) { + display: flex; + align-items: flex-start; + background-color: var(--bg-color-secondary, $dg-background-color); + border-width: 0; + border-color: var(--grid-border-color, $dg-grid-border-color); + padding: var(--spacing-medium, $dg-spacing-medium); + top: 0; + min-width: 0; + position: relative; + } + } + + .th { + &.dragging { + opacity: 0.5; + &.dragging-over-self { + opacity: 0.8; + } + } + + &.drop-after:after, + &.drop-before:after { + content: ""; + position: absolute; + top: 0; + height: 100%; + width: var(--spacing-smaller, $dg-dragging-effect-size); + background-color: $dragging-color-effect; + + z-index: 1; + } + + &.drop-before { + &:after { + left: 0; + } + &:not(:first-child):after { + transform: translateX(-50%); + } + } + + &.drop-after { + &:after { + right: 0; + } + &:not(:last-child):after { + transform: translateX(50%); + } + } + + /* Clickable column header (Sortable) */ + .clickable { + cursor: pointer; + } + + /* Column resizer when column is resizable */ + .column-resizer { + padding: 0 4px; + align-self: stretch; + cursor: col-resize; + margin-right: -12px; + + &:hover .column-resizer-bar { + background-color: var(--brand-primary, $dg-brand-primary); + } + &:active .column-resizer-bar { + background-color: var(--brand-primary, $dg-brand-primary); + } + + .column-resizer-bar { + height: 100%; + width: 4px; + } + } + + /* Content of the column header */ + .column-container { + display: flex; + flex-direction: column; + flex-grow: 1; + align-self: stretch; + min-width: 0; + + &:not(:has(.filter)) { + .column-header { + height: 100%; + } + } + } + + /* Header text */ + .column-header { + margin: 1px 1px calc((-1 * var(--spacing-smaller, $dg-dragging-effect-size)) + 2px); + display: flex; + align-items: baseline; + font-weight: 600; + + span { + min-width: 0; + flex-grow: 1; + text-overflow: ellipsis; + overflow: hidden; + text-wrap: nowrap; + align-self: center; + } + + svg { + margin-left: 8px; + flex: 0 0 var(--btn-font-size, $dg-icon-size); + color: var(--gray-dark, $dg-icon-color); + height: var(--btn-font-size, $dg-icon-size); + align-self: center; + } + + &:focus:not(:focus-visible) { + outline: none; + } + + &:focus-visible { + outline: 1px solid var(--brand-primary, $dg-brand-primary); + } + } + + /* Header filter */ + .filter { + display: flex; + margin-top: 4px; + > .form-group { + margin-bottom: 0; + } + } + } + + /* If Column Header has filter */ + &:has(.th .column-container .filter:not(:empty)) { + .th { + &.column-selector { + padding: var(--spacing-medium, $dg-spacing-medium) 0; + } + /*adjust filter-selector icon to be mid-bottom aligned */ + .column-selector-content { + align-self: flex-end; + margin-bottom: 3px; + } + + /*adjust checkbox toggle to be mid-bottom aligned */ + &.widget-datagrid-col-select { + align-items: flex-end; + padding-bottom: calc(var(--spacing-medium, $dg-spacing-medium) + 11px); + } + } + } + + /* Column selector for hidable columns */ + .column-selector { + padding: 0; + + /* Column content */ + .column-selector-content { + align-self: center; + padding-right: var(--spacing-medium, $dg-spacing-medium); + /* Button containing the eye icon */ + .column-selector-button { + $icon-margin: 7px; + /* 2px as path of icon's path is a bit bigger than outer svg */ + $icon-slack-size: 2px; + + padding: 0; + margin: 0; + + height: calc(var(--btn-font-size, $dg-icon-size) + $icon-margin * 2 + $icon-slack-size); + width: calc(var(--btn-font-size, $dg-icon-size) + $icon-margin * 2 + $icon-slack-size); + + svg { + margin: $icon-margin; + } + } + + /* List of columns to select */ + .column-selectors { + position: absolute; + right: 0; + margin: 8px; + padding: 0 16px; + background: var(--bg-color-secondary, $dg-background-color); + z-index: 102; + overflow-y: auto; + width: fit-content; + max-width: 500px; + border-radius: 3px; + border: 1px solid transparent; + list-style-type: none; + -webkit-box-shadow: 0 2px 20px 1px rgba(32, 43, 54, 0.08); + -moz-box-shadow: 0 2px 20px 1px rgba(32, 43, 54, 0.08); + box-shadow: 0 2px 20px 1px rgba(32, 43, 54, 0.08); + + li { + display: flex; + align-items: center; + + label { + margin: 8px; + font-weight: normal; + white-space: nowrap; + overflow-x: hidden; + text-overflow: ellipsis; + } + } + } + } + } + + /* Column content */ + .td { + display: flex; + justify-content: space-between; + align-items: center; + padding: var(--spacing-medium, $dg-spacing-medium); + border-style: solid; + border-width: 0; + border-color: var(--grid-border-color, $dg-grid-border-color); + border-bottom-width: 1px; + min-width: 0; + + &.td-borders { + border-top-width: 1px; + border-top-style: solid; + } + + &:focus-visible { + outline-width: 1px; + outline-style: solid; + outline-offset: -1px; + outline-color: var(--brand-primary, $dg-brand-primary); + } + + &.clickable { + cursor: pointer; + } + + > .td-text { + white-space: nowrap; + word-break: break-word; + text-overflow: ellipsis; + overflow: hidden; + } + + > .td-custom-content { + flex-grow: 1; + } + + > .empty-placeholder { + width: 100%; + } + + &.wrap-text { + min-height: 0; + min-width: 0; + + > .td-text, + > .mx-text { + white-space: normal; + } + } + } + + & *:focus { + outline: 0; + } + + .align-column-left { + justify-content: flex-start; + } + + .align-column-center { + justify-content: center; + } + + .align-column-right { + justify-content: flex-end; + } +} + +:where(.table .th .filter input:not([type="checkbox"])) { + font-weight: normal; + flex-grow: 1; + width: 100%; +} + +.pagination-bar { + display: flex; + justify-content: flex-end; + white-space: nowrap; + align-items: baseline; + margin: 16px; + color: $dg-pagination-caption-color; + + .paging-status { + padding: 0 8px 8px; + } + + .pagination-button { + padding: 6px; + color: var(--gray-darker, $dg-pagination-button-color); + border-color: transparent; + background-color: transparent; + + &:hover { + color: var(--brand-primary, $dg-brand-primary); + border-color: transparent; + background-color: transparent; + } + + &:disabled { + border-color: transparent; + background-color: transparent; + } + + &:focus:not(:focus-visible) { + outline: none; + } + + &:focus-visible { + outline: 1px solid var(--brand-primary, $dg-brand-primary); + } + } + .pagination-icon { + position: relative; + top: 4px; + display: inline-block; + width: 20px; + height: 20px; + } +} + +/* Column selector for hidable columns outside DG context */ +/* List of columns to select */ +.column-selectors { + position: absolute; + right: 0; + margin: 8px 0; + padding: 0 16px; + background: var(--bg-color-secondary, $dg-background-color); + z-index: 102; + overflow-y: auto; + width: fit-content; + max-width: 500px; + border-radius: 3px; + border: 1px solid transparent; + list-style-type: none; + -webkit-box-shadow: 0 2px 20px 1px rgba(32, 43, 54, 0.08); + -moz-box-shadow: 0 2px 20px 1px rgba(32, 43, 54, 0.08); + box-shadow: 0 2px 20px 1px rgba(32, 43, 54, 0.08); + + li { + display: flex; + align-items: center; + cursor: pointer; + + label { + margin: 8px; + font-weight: normal; + white-space: nowrap; + overflow-x: hidden; + text-overflow: ellipsis; + } + } +} + +#{$root} { + position: relative; + + &-grid { + display: grid !important; + } + + &-grid-head { + display: contents; + } + + &-grid-body { + display: contents; + } + + &.widget-datagrid-selection-method-click { + .tr.tr-selected .td { + background-color: $dg-grid-selected-row-background; + } + } + + .th.widget-datagrid-col-select, + .td.widget-datagrid-col-select { + align-items: center; + } + + &-exporting { + .widget-datagrid-top-bar, + .widget-datagrid-header, + .widget-datagrid-content, + .widget-datagrid-footer { + visibility: hidden; + + * { + transition: unset; + } + } + } + + &-col-select input:focus-visible { + outline-offset: 0; + } + + &-loader-container { + align-items: center; + background-color: rgba(255, 255, 255, 1); + display: flex; + height: 400px; + justify-content: center; + grid-column: 1/-1; + } + + &-skeleton, + &-spinner { + align-content: center; + align-items: center; + display: flex; + flex-direction: row; + flex-wrap: nowrap; + overflow: hidden; + } + + &-skeleton { + padding: 2px var(--dropdown-outer-padding, 0); + overflow: hidden; + flex: 1; + + &-loader { + animation: skeleton-loading 1s linear infinite alternate; + background: var(--dg-skeleton-background, $dg-skeleton-background); + background-size: 300% 100%; + border-radius: 4px; + height: 16px; + width: 100%; + min-width: 32px; + max-width: 148px; + + &-small { + margin-right: 8px; + width: 16px; + } + } + } + + &-spinner { + justify-content: center; + width: 100%; + + &-margin { + margin: 52px 0; + } + + &-loader { + --widget-combobox-spinner-loader: conic-gradient(#0000 10%, #000), linear-gradient(#000 0 0) content-box; + animation: rotate 1s infinite linear; + aspect-ratio: 1; + background: var(--brand-primary, $dg-brand-primary); + border-radius: 50%; + mask: var(--widget-combobox-spinner-loader); + mask-composite: subtract; + + &-large { + height: 48px; + padding: 7px; + width: 48px; + } + &-medium { + height: 24px; + padding: 3.5px; + width: 24px; + } + + &-small { + height: 16px; + padding: 2.3px; + width: 16px; + } + } + } +} + +.widget-datagrid .widget-datagrid-load-more { + display: block !important; + margin: 0 auto; +} + +:where(.widget-datagrid-grid.infinite-loading) { + overflow-y: auto; +} + +:where(.infinite-loading .widget-datagrid-grid-head .th) { + position: sticky; + z-index: 1; +} + +@keyframes skeleton-loading { + 0% { + background-position: right; + } +} + +@keyframes rotate { + to { + transform: rotate(1turn); + } +} diff --git a/themesource/datawidgets/web/_date-picker.scss b/themesource/datawidgets/web/_date-picker.scss new file mode 100644 index 0000000..fb424da --- /dev/null +++ b/themesource/datawidgets/web/_date-picker.scss @@ -0,0 +1,153 @@ +/** + Classes for React Date-Picker font-unit and color adjustments +*/ +$dg-day-color: #555; +$dg-day-range-color: #000; +$dg-day-range-background: #eaeaea; +$dg-outside-month-color: #c8c8c8; +$dg-text-color: #fff; +$dg-border-color: #d7d7d7; + +.react-datepicker { + font-size: 1em; + border: 1px solid $dg-border-color; +} + +.react-datepicker-wrapper { + display: flex; + flex: 1; +} + +.react-datepicker__input-container { + display: flex; + flex: 1; +} + +.react-datepicker__header { + padding-top: 0.8em; + background-color: var(--bg-color, $dg-background-color); + border-color: transparent; +} + +.react-datepicker__header__dropdown { + margin: 8px 0 4px 0; //4px due to the header contains 4px already +} + +.react-datepicker__year-dropdown-container { + margin-left: 8px; +} + +.react-datepicker__month { + margin: 4px 4px 8px 4px; //4px due to the rows already contains 4px each day +} + +.react-datepicker__month-container { + font-weight: normal; +} + +.react-datepicker__day-name, +.react-datepicker__day { + width: 2em; + line-height: 2em; + margin: 4px; +} + +.react-datepicker__day, +.react-datepicker__day--in-range { + color: $dg-day-color; + border-radius: 50%; + + &:hover { + border-radius: 50%; + color: var(--brand-primary, $dg-brand-primary); + background-color: var(--gray-ligter, $dg-hover-color); + } +} + +.react-datepicker__day-name { + color: var(--brand-primary, $dg-brand-primary); + font-weight: bold; +} + +.react-datepicker__day--outside-month { + color: $dg-outside-month-color; +} + +.react-datepicker__day--today:not(.react-datepicker__day--in-range), +.react-datepicker__day--keyboard-selected { + color: var(--brand-primary, $dg-brand-primary); + background-color: var(--gray-ligter, $dg-hover-color); +} + +.react-datepicker__month-select:focus-visible, +.react-datepicker__year-select:focus-visible, +.react-datepicker__navigation:focus-visible, +.react-datepicker__day.react-datepicker__day--keyboard-selected { + outline: 1px solid var(--form-input-border-focus-color); +} + +.react-datepicker__day--selected, +.react-datepicker__day--range-start, +.react-datepicker__day--range-end, +.react-datepicker__day--in-selecting-range.react-datepicker__day--selecting-range-start { + background-color: var(--brand-primary, $dg-brand-primary); + color: var(--header-text-color, $dg-text-color); + + &:hover { + border-radius: 50%; + background-color: var(--brand-primary, $dg-brand-primary); + color: var(--header-text-color, $dg-text-color); + } +} + +.react-datepicker__day--in-range:not(.react-datepicker__day--range-start, .react-datepicker__day--range-end), +.react-datepicker__day--in-selecting-range:not( + .react-datepicker__day--in-range, + .react-datepicker__month-text--in-range, + .react-datepicker__quarter-text--in-range, + .react-datepicker__year-text--in-range, + .react-datepicker__day--selecting-range-start + ) { + background-color: $dg-day-range-background; + color: $dg-day-range-color; + + &:hover { + background-color: var(--brand-primary, $dg-brand-primary); + color: var(--header-text-color, $dg-text-color); + } +} + +button.react-datepicker__close-icon::after { + background-color: var(--brand-primary, $dg-brand-primary); +} + +.react-datepicker__current-month { + font-size: 1em; + font-weight: normal; +} + +.react-datepicker__navigation { + top: 1em; + line-height: 1.7em; + border: 0.45em solid transparent; +} + +.react-datepicker__navigation--previous { + border-right-color: #ccc; + left: 8px; + border: none; +} + +.react-datepicker__navigation--next { + border-left-color: #ccc; + right: 8px; + border: none; +} + +/** +Space between the fields and the popup + */ +.react-datepicker-popper[data-placement^="bottom"] { + margin-top: unset; + padding-top: 0; +} diff --git a/themesource/datawidgets/web/_drop-down-sort.scss b/themesource/datawidgets/web/_drop-down-sort.scss new file mode 100644 index 0000000..8580668 --- /dev/null +++ b/themesource/datawidgets/web/_drop-down-sort.scss @@ -0,0 +1,49 @@ +/* ========================================================================== + Drop-down sort + + Override styles of Drop-down sort widget +========================================================================== */ +@font-face { + font-family: "dropdown-sort"; + src: url("./fonts/dropdown-sort.eot?46260688"); + src: + url("./fonts/dropdown-sort.eot?46260688#iefix") format("embedded-opentype"), + url("./fonts/dropdown-sort.woff2?46260688") format("woff2"), + url("./fonts/dropdown-sort.woff?46260688") format("woff"), + url("./fonts/dropdown-sort.ttf?46260688") format("truetype"), + url("./fonts/dropdown-sort.svg?46260688#dropdown-sort") format("svg"); + font-weight: normal; + font-style: normal; +} + +.dropdown-triggerer-wrapper { + display: flex; + + .dropdown-triggerer { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + border-right-width: 0; + } + + .btn-sort { + padding: var(--spacing-small, $dg-spacing-small); + border-bottom-left-radius: 0; + border-top-left-radius: 0; + + font-family: "dropdown-sort"; + font-style: normal; + font-weight: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + + &.icon-asc:before { + content: "\e802"; + margin: 2px; + } + + &.icon-desc:before { + content: "\e803"; + margin: 2px; + } + } +} diff --git a/themesource/datawidgets/web/_export-alert.scss b/themesource/datawidgets/web/_export-alert.scss new file mode 100644 index 0000000..b94b48f --- /dev/null +++ b/themesource/datawidgets/web/_export-alert.scss @@ -0,0 +1,45 @@ +$brand-primary: #264ae5 !default; + +.widget-datagrid-export-alert { + background-color: rgba(255, 255, 255, 1); + border-radius: 4px; + box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.25); + display: flex; + flex-direction: column; + padding: 54px; + min-width: 200px; + max-width: 378px; + width: 100%; + position: relative; + + &-cancel { + position: absolute; + top: 10px; + right: 10px; + + // TODO: Hover styles + &.btn { + display: flex; + padding: 4px; + &:focus-visible { + outline: 1px solid $brand-primary; + } + } + } + + &-message { + color: rgba(38, 74, 229, 1); + font-size: 18px; + font-weight: 700; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + } + + &-failed { + .widget-datagrid-export-progress-indicator { + background-color: rgba(227, 63, 78, 1); + } + } +} diff --git a/themesource/datawidgets/web/_export-progress.scss b/themesource/datawidgets/web/_export-progress.scss new file mode 100644 index 0000000..cb54a0b --- /dev/null +++ b/themesource/datawidgets/web/_export-progress.scss @@ -0,0 +1,37 @@ +.widget-datagrid-export-progress { + align-items: center; + background-color: rgba(240, 241, 242, 1); + border-radius: 4px; + display: flex; + height: 18px; + overflow: hidden; + position: relative; + transform: translateZ(0); + width: 100%; + + &-indicator { + background-color: rgba(38, 74, 229, 1); + border-radius: 4px; + height: 17px; + transition: transform 100ms cubic-bezier(0.65, 0, 0.35, 1); + width: 100%; + } + + &-indicator-indeterminate { + animation: indeterminateAnimation 1s infinite linear; + transform-origin: 0% 50%; + transition: none; + } +} + +@keyframes indeterminateAnimation { + 0% { + transform: translateX(0) scaleX(0); + } + 40% { + transform: translateX(0) scaleX(0.4); + } + 100% { + transform: translateX(100%) scaleX(0.5); + } +} diff --git a/themesource/datawidgets/web/_gallery-design-properties.scss b/themesource/datawidgets/web/_gallery-design-properties.scss new file mode 100644 index 0000000..0fc17c2 --- /dev/null +++ b/themesource/datawidgets/web/_gallery-design-properties.scss @@ -0,0 +1,104 @@ +/* ========================================================================== + Gallery default + +//== Design Properties +//## Helper classes to change the look and feel of the component +========================================================================== */ +// All borders +.widget-gallery-bordered-all { + .widget-gallery-item { + border: 1px solid var(--grid-border-color, $dg-grid-border-color); + } +} + +// Vertical borders +.widget-gallery-bordered-vertical { + .widget-gallery-item { + border-color: var(--grid-border-color, $dg-grid-border-color); + border-style: solid; + border-width: 0; + border-left-width: 1px; + border-right-width: 1px; + } +} + +// Horizontal orders +.widget-gallery-bordered-horizontal { + .widget-gallery-item { + border-color: var(--grid-border-color, $dg-grid-border-color); + border-style: solid; + border-width: 0; + border-top-width: 1px; + border-bottom-width: 1px; + } +} + +// Hover styles +.widget-gallery-hover { + .widget-gallery-items { + .widget-gallery-item:hover { + background-color: var(--grid-bg-hover, $dg-grid-bg-hover); + } + } +} + +// Striped styles +.widget-gallery-striped { + .widget-gallery-item:nth-child(odd) { + background-color: var(--grid-bg-striped, $dg-grid-bg-striped); + } + .widget-gallery-item:nth-child(even) { + background-color: #fff; + } +} + +// Grid spacing none +.widget-gallery.widget-gallery-gridgap-none { + .widget-gallery-items { + gap: 0; + } +} + +// Grid spacing small +.widget-gallery.widget-gallery-gridgap-small { + .widget-gallery-items { + gap: var(--spacing-small, $dg-spacing-small); + } +} + +// Grid spacing medium +.widget-gallery.widget-gallery-gridgap-medium { + .widget-gallery-items { + gap: var(--spacing-medium, $dg-spacing-medium); + } +} + +// Grid spacing large +.widget-gallery.widget-gallery-gridgap-large { + .widget-gallery-items { + gap: var(--spacing-large, $dg-spacing-large); + } +} + +// Pagination left +.widget-gallery-pagination-left { + .widget-gallery-pagination { + .pagination-bar { + justify-content: flex-start; + } + } +} + +// Pagination center +.widget-gallery-pagination-center { + .widget-gallery-pagination { + .pagination-bar { + justify-content: center; + } + } +} + +.widget-gallery-disable-selected-items-highlight { + // placeholder + // this class in needed to disable standard styles of highlighted items +} diff --git a/themesource/datawidgets/web/_gallery.scss b/themesource/datawidgets/web/_gallery.scss new file mode 100644 index 0000000..bc95e66 --- /dev/null +++ b/themesource/datawidgets/web/_gallery.scss @@ -0,0 +1,90 @@ +/* ========================================================================== + Gallery + + Override styles of Gallery widget +========================================================================== */ +$gallery-screen-lg: $screen-lg; +$gallery-screen-md: $screen-md; + +@mixin grid-items($number, $suffix) { + @for $i from 1 through $number { + &.widget-gallery-#{$suffix}-#{$i} { + grid-template-columns: repeat($i, minmax(0, 1fr)); + } + } +} + +@mixin grid-span($number, $type) { + @for $i from 1 through $number { + .widget-gallery-#{$type}-span-#{$i} { + grid-#{$type}: span $i; + } + } +} + +.widget-gallery { + .widget-gallery-items { + display: grid; + grid-gap: var(--spacing-small, $dg-spacing-small); + + /* + Desktop widths + */ + @media screen and (min-width: $gallery-screen-lg) { + @include grid-items(12, "lg"); + } + + /* + Tablet widths + */ + @media screen and (min-width: $gallery-screen-md) and (max-width: ($gallery-screen-lg - 1px)) { + @include grid-items(12, "md"); + } + + /* + Phone widths + */ + @media screen and (max-width: ($gallery-screen-md - 1)) { + @include grid-items(12, "sm"); + } + } + + .widget-gallery-clickable { + cursor: pointer; + + &:focus:not(:focus-visible) { + outline: none; + } + + &:focus-visible { + outline: 1px solid var(--brand-primary, $dg-brand-primary); + outline-offset: -1px; + } + } + + &:not(.widget-gallery-disable-selected-items-highlight) { + .widget-gallery-item.widget-gallery-clickable.widget-gallery-selected { + background: $dg-brand-light; + } + } + + .infinite-loading { + overflow: auto; + } + + .widget-gallery-filter, + .widget-gallery-empty, + .widget-gallery-pagination { + flex: 1; + } + + /** + Helper classes + */ + @include grid-span(12, "column"); + @include grid-span(12, "row"); +} + +.widget-gallery-item-button { + width: inherit; +} diff --git a/themesource/datawidgets/web/_pseudo-modal.scss b/themesource/datawidgets/web/_pseudo-modal.scss new file mode 100644 index 0000000..54c9190 --- /dev/null +++ b/themesource/datawidgets/web/_pseudo-modal.scss @@ -0,0 +1,33 @@ +.widget-datagrid-modal { + &-overlay { + animation: fade-in 300ms cubic-bezier(0.16, 1, 0.3, 1); + background-color: rgba(128, 128, 128, 0.5); + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 50; + } + + &-main { + position: absolute; + top: 0; + left: 0; + right: 0; + height: 100%; + display: flex; + align-items: center; + justify-content: center; + z-index: 55; + } +} + +@keyframes fade-in { + from { + opacity: 0; + } + to { + opacity: 1; + } +} diff --git a/themesource/datawidgets/web/_three-state-checkbox.scss b/themesource/datawidgets/web/_three-state-checkbox.scss new file mode 100644 index 0000000..3ca401f --- /dev/null +++ b/themesource/datawidgets/web/_three-state-checkbox.scss @@ -0,0 +1,93 @@ +input[type="checkbox"].three-state-checkbox { + position: relative !important; //Remove after mxui merge + width: 16px; + height: 16px; + margin: 0 !important; // Remove after mxui merge + cursor: pointer; + -webkit-user-select: none; + user-select: none; + appearance: none; + -moz-appearance: none; + -webkit-appearance: none; + transform: translateZ(0); + + &:disabled { + // reset default disabled cursor + cursor: initial; + } + + &:before, + &:after { + position: absolute; + display: block; + transition: all 0.3s ease; + } + + &:before { + // Checkbox + width: 100%; + height: 100%; + content: ""; + border: 1px solid #e7e7e9; + border-radius: 4px; + background-color: transparent; + } + + &:not(:indeterminate):after { + // Checkmark + width: 8px; + height: 4px; + margin: 5px 4px; + transform: rotate(-45deg); + pointer-events: none; + border: 2px solid #ffffff; + border-top: 0; + border-right: 0; + } + + &:indeterminate:after { + // Dash-mark for indeterminate + width: 8px; + height: 4px; + margin: 5px 4px; + transform: rotate(0deg); + pointer-events: none; + border: 0 solid #ffffff; + border-bottom-width: 2px; + transition: border 0s; + } + + &:not(:disabled):not(:checked):hover:after { + content: ""; + border-color: #e7e7e9; // color of checkmark on hover + } + + &:indeterminate:before, + &:checked:before { + border-color: #264ae5; + background-color: #264ae5; + } + + &:indeterminate:after, + &:checked:after { + content: ""; + } + + &:disabled:before { + background-color: #f8f8f8; + } + + &:indeterminate:disabled:before, + &:checked:disabled:before { + border-color: transparent; + background-color: rgba(#264ae5, 0.4); + } + + &:disabled:after { + border-color: #f8f8f8; + } + + & + .control-label { + margin-left: 8px; + } +} diff --git a/themesource/datawidgets/web/_tree-node-design-properties.scss b/themesource/datawidgets/web/_tree-node-design-properties.scss new file mode 100644 index 0000000..92166b0 --- /dev/null +++ b/themesource/datawidgets/web/_tree-node-design-properties.scss @@ -0,0 +1,49 @@ +/* ========================================================================== + Tree Node + +//== Design Properties +//## Helper classes to change the look and feel of the component +========================================================================== */ +$dg-grid-border-color: #ced0d3; +$dg-grid-bg-hover: #f5f6f6; + +.widget-tree-node-hover { + .widget-tree-node-branch:hover > .widget-tree-node-branch-header { + background-color: var(--grid-bg-hover, $dg-grid-bg-hover); + } +} + +.widget-tree-node-bordered-horizontal { + .widget-tree-node-branch > .widget-tree-node-branch-header { + border-width: 0; + border-bottom-width: 1px; + border-bottom-style: solid; + border-bottom-color: var(--grid-border-color, $dg-grid-border-color); + } +} + +.widget-tree-node-bordered-all { + border: 1px solid var(--grid-border-color, $dg-grid-border-color); + border-radius: 8px; + overflow: hidden; + + .widget-tree-node-body:not(.widget-tree-node-branch-loading) { + border-width: 0; + border-top-width: 1px; + border-top-style: solid; + border-top-color: #ced0d3; + } + .widget-tree-node-branch:not(:first-of-type) > .widget-tree-node-branch-header { + border-width: 0; + border-top-width: 1px; + border-top-style: solid; + border-top-color: #ced0d3; + } +} + +.widget-tree-node-bordered-none { + border-width: 0; + .widget-tree-node-branch > .widget-tree-node-branch-header { + border-width: 0; + } +} diff --git a/themesource/datawidgets/web/_tree-node.scss b/themesource/datawidgets/web/_tree-node.scss new file mode 100644 index 0000000..fad6076 --- /dev/null +++ b/themesource/datawidgets/web/_tree-node.scss @@ -0,0 +1,114 @@ +.widget-tree-node { + width: 100%; + padding: 0; + display: flex; + flex-direction: column; + + .widget-tree-node-branch { + display: block; + + &:focus-visible { + outline: none; + & > .widget-tree-node-branch-header { + outline: -webkit-focus-ring-color auto 1px; + outline: -moz-mac-focusring auto 1px; + } + } + } + + .widget-tree-node-branch-header-clickable { + cursor: pointer; + } + + .widget-tree-node-branch-header { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + margin: 0; + padding: 8px 0; + + svg { + &.widget-tree-node-branch-header-icon-animated { + transition: transform 0.2s ease-in-out 50ms; + } + &.widget-tree-node-branch-header-icon-collapsed-left { + transform: rotate(-90deg); + } + &.widget-tree-node-branch-header-icon-collapsed-right { + transform: rotate(90deg); + } + } + + .widget-tree-node-loading-spinner { + width: 16px; + height: 16px; + animation: spin 2s linear infinite; + } + + @keyframes spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } + } + } + + .widget-tree-node-branch-header-reversed { + flex-direction: row-reverse; + } + + .widget-tree-node-branch-header-value { + flex: 1; + font-size: 16px; + margin: 0 8px; + } + + .widget-tree-node-branch-header-icon-container { + display: flex; + align-items: center; + } + + .widget-tree-node-body { + padding-left: 24px; + transition: height 0.2s ease 50ms; + overflow: hidden; + + &.widget-tree-node-branch-hidden { + display: none; + } + } +} + +.widget-tree-node-lined-styling { + .widget-tree-node .widget-tree-node-body { + position: relative; + + &::before { + content: ""; + width: 0px; + height: 100%; + position: absolute; + top: 0; + left: 7px; + border: 1px solid #b6b8be; + } + } + + .widget-tree-node[role="group"] > .widget-tree-node-branch > .widget-tree-node-branch-header { + position: relative; + + &::before { + content: ""; + position: absolute; + width: 10px; + height: 0; + border: 1px solid #b6b8be; + top: 50%; + left: -16px; + transform: translate(0, -50%); + } + } +} diff --git a/themesource/datawidgets/web/design-properties.json b/themesource/datawidgets/web/design-properties.json new file mode 100644 index 0000000..565cb5d --- /dev/null +++ b/themesource/datawidgets/web/design-properties.json @@ -0,0 +1,149 @@ +{ + "com.mendix.widget.web.datagrid.Datagrid": [ + { + "name": "Borders", + "type": "Dropdown", + "description": "Add either a horizontal, vertical separator or both to the cells.", + "options": [ + { + "name": "Both", + "class": "table-bordered-all" + }, + { + "name": "Vertical", + "class": "table-bordered-vertical" + }, + { + "name": "Horizontal", + "class": "table-bordered-horizontal" + }, + { + "name": "None", + "class": "table-bordered-none" + } + ] + }, + { + "name": "Compact", + "type": "Toggle", + "description": "Change the cell spacing to compact.", + "class": "table-compact" + }, + { + "name": "Hover", + "type": "Toggle", + "description": "Highlight a row when hovering over it. Only useful when the row is clickable.", + "class": "table-hover" + }, + { + "name": "Striped", + "type": "Toggle", + "description": "Add alternating background colors to rows.", + "class": "table-striped" + } + ], + "com.mendix.widget.web.gallery.Gallery": [ + { + "name": "Borders", + "type": "Dropdown", + "description": "Add either a horizontal, vertical separator or both to the items.", + "options": [ + { + "name": "Both", + "class": "widget-gallery-bordered-all" + }, + { + "name": "Vertical", + "class": "widget-gallery-bordered-vertical" + }, + { + "name": "Horizontal", + "class": "widget-gallery-bordered-horizontal" + } + ] + }, + { + "name": "Hover", + "type": "Toggle", + "description": "Highlight an item when hovering over it. Only useful when the item is clickable.", + "class": "widget-gallery-hover" + }, + { + "name": "Striped", + "type": "Toggle", + "description": "Add alternating background colors to items.", + "class": "widget-gallery-striped" + }, + { + "name": "Grid spacing", + "type": "Dropdown", + "description": "Change the gap between grid items.", + "options": [ + { + "name": "None", + "class": "widget-gallery-gridgap-none" + }, + { + "name": "Small", + "class": "widget-gallery-gridgap-small" + }, + { + "name": "Medium", + "class": "widget-gallery-gridgap-medium" + }, + { + "name": "Large", + "class": "widget-gallery-gridgap-large" + } + ] + }, + { + "name": "Pagination", + "type": "Dropdown", + "description": "Change the alignment of the pagination.", + "options": [ + { + "name": "Left", + "class": "widget-gallery-pagination-left" + }, + { + "name": "Center", + "class": "widget-gallery-pagination-center" + } + ] + }, + { + "name": "Disable selection highlight", + "type": "Toggle", + "description": "Disable standard styles for highlighting of selected items.", + "class": "widget-gallery-disable-selected-items-highlight" + } + ], + "com.mendix.widget.web.treenode.TreeNode": [ + { + "name": "Borders", + "type": "Dropdown", + "description": "Change the border appearance.", + "options": [ + { + "name": "Horizontal", + "class": "widget-tree-node-bordered-horizontal" + }, + { + "name": "Both", + "class": "widget-tree-node-bordered-all" + }, + { + "name": "None", + "class": "widget-tree-node-bordered-none" + } + ] + }, + { + "name": "Hover", + "type": "Toggle", + "description": "Highlight an item when hovering over it. Only useful when the item is clickable.", + "class": "widget-tree-node-hover" + } + ] +} diff --git a/themesource/datawidgets/web/main.scss b/themesource/datawidgets/web/main.scss new file mode 100644 index 0000000..19fbcb8 --- /dev/null +++ b/themesource/datawidgets/web/main.scss @@ -0,0 +1,11 @@ +@import "../../../theme/web/custom-variables"; +@import "datagrid"; +@import "datagrid-filters"; +@import "datagrid-dropdown-filter"; +@import "datagrid-design-properties"; +@import "drop-down-sort"; +@import "gallery"; +@import "gallery-design-properties"; +@import "three-state-checkbox"; +@import "tree-node"; +@import "tree-node-design-properties"; diff --git a/themesource/email_connector/native/design-properties.json b/themesource/email_connector/native/design-properties.json new file mode 100644 index 0000000..49d1a20 --- /dev/null +++ b/themesource/email_connector/native/design-properties.json @@ -0,0 +1,3 @@ +{ + +} diff --git a/themesource/email_connector/native/main.js b/themesource/email_connector/native/main.js new file mode 100644 index 0000000..b611ae1 --- /dev/null +++ b/themesource/email_connector/native/main.js @@ -0,0 +1,2 @@ +import * as variables from "../../../theme/native/custom-variables"; + diff --git a/themesource/email_connector/settings.json b/themesource/email_connector/settings.json new file mode 100644 index 0000000..49d1a20 --- /dev/null +++ b/themesource/email_connector/settings.json @@ -0,0 +1,3 @@ +{ + +} diff --git a/themesource/email_connector/web/design-properties.json b/themesource/email_connector/web/design-properties.json new file mode 100644 index 0000000..49d1a20 --- /dev/null +++ b/themesource/email_connector/web/design-properties.json @@ -0,0 +1,3 @@ +{ + +} diff --git a/themesource/email_connector/web/main.scss b/themesource/email_connector/web/main.scss new file mode 100644 index 0000000..122370f --- /dev/null +++ b/themesource/email_connector/web/main.scss @@ -0,0 +1,2 @@ +@import '../../../theme/web/custom-variables'; + diff --git a/themesource/feedbackmodule/native/design-properties.json b/themesource/feedbackmodule/native/design-properties.json new file mode 100644 index 0000000..49d1a20 --- /dev/null +++ b/themesource/feedbackmodule/native/design-properties.json @@ -0,0 +1,3 @@ +{ + +} diff --git a/themesource/feedbackmodule/native/main.js b/themesource/feedbackmodule/native/main.js new file mode 100644 index 0000000..b611ae1 --- /dev/null +++ b/themesource/feedbackmodule/native/main.js @@ -0,0 +1,2 @@ +import * as variables from "../../../theme/native/custom-variables"; + diff --git a/themesource/feedbackmodule/settings.json b/themesource/feedbackmodule/settings.json new file mode 100644 index 0000000..49d1a20 --- /dev/null +++ b/themesource/feedbackmodule/settings.json @@ -0,0 +1,3 @@ +{ + +} diff --git a/themesource/feedbackmodule/web/_failed.scss b/themesource/feedbackmodule/web/_failed.scss new file mode 100644 index 0000000..92239be --- /dev/null +++ b/themesource/feedbackmodule/web/_failed.scss @@ -0,0 +1,11 @@ +.mxfeedback-failed { + // TODO: Feels like it can be replaced in the future + &__message { + align-self: center; + margin: $spacing-small; + } + + &__error-image { + margin-top: 30px; + } +} diff --git a/themesource/feedbackmodule/web/_feedbackForm.scss b/themesource/feedbackmodule/web/_feedbackForm.scss new file mode 100644 index 0000000..e1a83e8 --- /dev/null +++ b/themesource/feedbackmodule/web/_feedbackForm.scss @@ -0,0 +1,5 @@ +.mxfeedback-feedback-form { + &__cancel-button { + border: 0; + } +} diff --git a/themesource/feedbackmodule/web/_labelGroup.scss b/themesource/feedbackmodule/web/_labelGroup.scss new file mode 100644 index 0000000..9be7c5b --- /dev/null +++ b/themesource/feedbackmodule/web/_labelGroup.scss @@ -0,0 +1,12 @@ +/// Styles the label plus tooltip icon. + +.mxfeedback-label-group { + display: flex; + align-items: center; + gap: calc(#{$gutter-size} / 2); + margin-bottom: $spacing-smaller; + + &__label.control-label { + margin-bottom: 0; + } +} diff --git a/themesource/feedbackmodule/web/_lightbox.scss b/themesource/feedbackmodule/web/_lightbox.scss new file mode 100644 index 0000000..4427bd3 --- /dev/null +++ b/themesource/feedbackmodule/web/_lightbox.scss @@ -0,0 +1,31 @@ +/// The lightbox displays a preview of the screenshot when clicking on the thumbnail. + +.mxfeedback-lightbox { + position: fixed; + left: 0; + top: 0; + bottom: 0; + right: 0; + overflow: auto; + padding-top: 10vh; + padding-bottom: 10vh; + background-color: $mxfeedback-lightbox-background-color; + z-index: $mxfeedback-z-index-lightbox; + + &__image { + margin: auto; + display: block; + max-width: 70%; + + @include mq($screen-md) { + max-width: calc(100% - 16px); + } + } + + .mxfeedback-close-button { + &__icon { + width: $mxfeedback-icon-size-sm; + height: $mxfeedback-icon-size-sm; + } + } +} diff --git a/themesource/feedbackmodule/web/_result.scss b/themesource/feedbackmodule/web/_result.scss new file mode 100644 index 0000000..d597a8f --- /dev/null +++ b/themesource/feedbackmodule/web/_result.scss @@ -0,0 +1,17 @@ +/// Style the image on the successfully submitted page + +.mxfeedback-result { + &__result-image { + align-self: center; + width: auto; + max-width: 50%; + } + + .mxfeedback-dialog__body-text { + margin: auto; + } + + &__result-image { + margin-top: 30px; + } +} \ No newline at end of file diff --git a/themesource/feedbackmodule/web/_screenshotPreview.scss b/themesource/feedbackmodule/web/_screenshotPreview.scss new file mode 100644 index 0000000..36838b5 --- /dev/null +++ b/themesource/feedbackmodule/web/_screenshotPreview.scss @@ -0,0 +1,61 @@ +/// Styles the screenshot preview container in the form. + +.mxfeedback-screenshot-preview { + position: relative; + margin: 20px auto; + height: $mxfeedback-screenshot-preview-height; + cursor: pointer; + + &__image { + display: block; + object-fit: contain; + height: 100%; + aspect-ratio: 16 / 9; + border: 1px solid $gray; + border-radius: $border-radius-default; + } + + &__overlay { + position: absolute; + display: flex; + align-items: center; + justify-content: center; + top: 0; + bottom: 0; + left: 0; + right: 0; + width: 100%; + opacity: 0; + transition: 0.3s ease; + background-color: $gray-darker; + border: 1px solid $gray-dark; + border-radius: $border-radius-default; + + &:hover { + opacity: 0.5; + } + + &:focus-visible { + opacity: 0.5; + } + } + + &__preview-icon { + width: $mxfeedback-icon-size-md; + height: $mxfeedback-icon-size-md; + fill: $gray-lighter; + } + + &__delete-icon { + position: absolute; + top: 0; + right: 0; + transform: translate(50%, -50%); + width: $mxfeedback-icon-size-md; + height: $mxfeedback-icon-size-md; + stroke: $gray-dark; + fill: $gray-lighter; + z-index: 1; + cursor: pointer; + } +} diff --git a/themesource/feedbackmodule/web/_startButton.scss b/themesource/feedbackmodule/web/_startButton.scss new file mode 100644 index 0000000..241bcff --- /dev/null +++ b/themesource/feedbackmodule/web/_startButton.scss @@ -0,0 +1,23 @@ +/// Creates the blue start button for the feedback widget. +/// This can be replaced by several starting points in the future. + +.mxfeedback-start-button { + position: fixed; + top: 50%; + right: 0; + transform: translate(50%, -50%) rotate(270deg); + transform-origin: bottom center; + padding: $spacing-smaller $spacing-small; + border: none; + border-radius: $border-radius-default $border-radius-default 0 0; + background-color: $btn-primary-bg; + color: $btn-primary-color; + font-size: $m-header-title-size; + box-shadow: $mxfeedback-start-button-shadow; + z-index: $mxfeedback-z-index-start-button; + + &:focus, + &:hover { + background-color: $btn-primary-bg-hover; + } +} diff --git a/themesource/feedbackmodule/web/_tooltip.scss b/themesource/feedbackmodule/web/_tooltip.scss new file mode 100644 index 0000000..0c5424f --- /dev/null +++ b/themesource/feedbackmodule/web/_tooltip.scss @@ -0,0 +1,48 @@ +/// Create a Tooltip on hover effect. + +$_block: ".mxfeedback-tooltip"; +#{$_block} { + $_offset: 32px; + display: flex; + position: relative; + + &__icon { + width: $mxfeedback-icon-size-sm; + height: $mxfeedback-icon-size-sm; + + &:hover ~ #{$_block}__tip { + visibility: visible; + } + } + + &__tip { + visibility: hidden; + position: absolute; + top: calc(100% + #{$spacing-small}); + left: calc(50% - #{$_offset}); + width: $mxfeedback-tooltip-width; + max-width: calc(100vw - #{$spacing-larger}); + padding: 6px 8px; // not using variables here as its padding should be precise + margin-bottom: 0; + border-radius: 2px; // not using variables here as its border radius should be precise + background-color: $gray-darker; + color: $label-primary-color; + font-size: $font-size-small; + line-height: 1.5; + z-index: 1; + transition: visibility 100ms ease-in-out; + + &::after { + content: ""; + position: absolute; + top: 0; + left: $_offset; + transform: translate(-50%, -50%) rotate(45deg); + width: 12px; + height: 12px; + background-color: inherit; + text-align: center; + pointer-events: none; + } + } +} diff --git a/themesource/feedbackmodule/web/annotation-canvas.scss b/themesource/feedbackmodule/web/annotation-canvas.scss new file mode 100644 index 0000000..b88e714 --- /dev/null +++ b/themesource/feedbackmodule/web/annotation-canvas.scss @@ -0,0 +1,19 @@ +/// Creates the canvas for annotation. +/// The background color is required to cover the page behind the annotation canvas. + +.mxfeedback-annotation-canvas { + z-index: $mxfeedback-z-index-annotation-canvas; + display: flex; + align-items: center; + justify-content: center; + position: fixed; + margin: 0; + width: 100%; + height: 100%; + background-color: $mxfeedback-annotation-canvas-background-color; + + &__canvas { + position: fixed; + margin-top: $spacing-largest; + } +} diff --git a/themesource/feedbackmodule/web/annotation-frame.scss b/themesource/feedbackmodule/web/annotation-frame.scss new file mode 100644 index 0000000..5a9ecd8 --- /dev/null +++ b/themesource/feedbackmodule/web/annotation-frame.scss @@ -0,0 +1,10 @@ +/// Centers the annotation tool and annotation canvas. + +.mxfeedback-annotation-frame { + position: fixed; + top: 0; + bottom: 0; + right: 0; + left: 0; + z-index: $mxfeedback-z-index-frame; +} diff --git a/themesource/feedbackmodule/web/annotation/_annotation-canvas.scss b/themesource/feedbackmodule/web/annotation/_annotation-canvas.scss new file mode 100644 index 0000000..b88e714 --- /dev/null +++ b/themesource/feedbackmodule/web/annotation/_annotation-canvas.scss @@ -0,0 +1,19 @@ +/// Creates the canvas for annotation. +/// The background color is required to cover the page behind the annotation canvas. + +.mxfeedback-annotation-canvas { + z-index: $mxfeedback-z-index-annotation-canvas; + display: flex; + align-items: center; + justify-content: center; + position: fixed; + margin: 0; + width: 100%; + height: 100%; + background-color: $mxfeedback-annotation-canvas-background-color; + + &__canvas { + position: fixed; + margin-top: $spacing-largest; + } +} diff --git a/themesource/feedbackmodule/web/annotation/_annotation-frame.scss b/themesource/feedbackmodule/web/annotation/_annotation-frame.scss new file mode 100644 index 0000000..5a9ecd8 --- /dev/null +++ b/themesource/feedbackmodule/web/annotation/_annotation-frame.scss @@ -0,0 +1,10 @@ +/// Centers the annotation tool and annotation canvas. + +.mxfeedback-annotation-frame { + position: fixed; + top: 0; + bottom: 0; + right: 0; + left: 0; + z-index: $mxfeedback-z-index-frame; +} diff --git a/themesource/feedbackmodule/web/button-group.scss b/themesource/feedbackmodule/web/button-group.scss new file mode 100644 index 0000000..2c13fb5 --- /dev/null +++ b/themesource/feedbackmodule/web/button-group.scss @@ -0,0 +1,36 @@ +/// Styles buttons in group to have proper distance between each other. +/// Shows the buttons in column on a smaller screen. + +.mxfeedback-button-group { + display: flex; + justify-content: flex-end; + gap: $spacing-small; + + &--screenshot-container { + flex-direction: row-reverse; + } + + &--gap-md { + gap: $spacing-small * 2; + } + + &--gap-lg { + gap: $spacing-small * 4; + } + + &--justify-start { + justify-content: flex-start; + } + + &--justify-center { + justify-content: center; + } + + &--row-xs { + flex-direction: column; + + @include mq($screen-md) { + flex-direction: row; + } + } +} diff --git a/themesource/feedbackmodule/web/button.scss b/themesource/feedbackmodule/web/button.scss new file mode 100644 index 0000000..831cbd8 --- /dev/null +++ b/themesource/feedbackmodule/web/button.scss @@ -0,0 +1,15 @@ +/// Styles a button that contains an icon. +/// In Atlas the icons are added differently. + +.mxfeedback-button { + display: flex; + justify-content: center; + align-items: center; + gap: $spacing-small; + + svg { + width: $mxfeedback-icon-size-sm; + height: $mxfeedback-icon-size-sm; + fill: currentColor; + } +} diff --git a/themesource/feedbackmodule/web/button/_button.scss b/themesource/feedbackmodule/web/button/_button.scss new file mode 100644 index 0000000..c4cb387 --- /dev/null +++ b/themesource/feedbackmodule/web/button/_button.scss @@ -0,0 +1,15 @@ +/// Styles a button that contains an icon. +/// In Atlas the icons are added differently. + +.mxfeedback-button { + display: flex; + justify-content: center; + align-items: center; + gap: $gutter-size; + + svg { + width: $mxfeedback-icon-size-sm; + height: $mxfeedback-icon-size-sm; + fill: currentColor; + } +} diff --git a/themesource/feedbackmodule/web/button/_buttonGroup.scss b/themesource/feedbackmodule/web/button/_buttonGroup.scss new file mode 100644 index 0000000..8819aff --- /dev/null +++ b/themesource/feedbackmodule/web/button/_buttonGroup.scss @@ -0,0 +1,36 @@ +/// Styles buttons in group to have proper distance between each other. +/// Shows the buttons in column on a smaller screen. + +.mxfeedback-button-group { + display: flex; + justify-content: flex-end; + gap: $gutter-size; + + &--screenshot-container { + flex-direction: row-reverse; + } + + &--gap-md { + gap: $gutter-size * 2; + } + + &--gap-lg { + gap: $gutter-size * 4; + } + + &--justify-start { + justify-content: flex-start; + } + + &--justify-center { + justify-content: center; + } + + &--row-xs { + flex-direction: column; + + @include mq($screen-md) { + flex-direction: row; + } + } +} diff --git a/themesource/feedbackmodule/web/design-properties.json b/themesource/feedbackmodule/web/design-properties.json new file mode 100644 index 0000000..49d1a20 --- /dev/null +++ b/themesource/feedbackmodule/web/design-properties.json @@ -0,0 +1,3 @@ +{ + +} diff --git a/themesource/feedbackmodule/web/dialog/_closeButton.scss b/themesource/feedbackmodule/web/dialog/_closeButton.scss new file mode 100644 index 0000000..137dd99 --- /dev/null +++ b/themesource/feedbackmodule/web/dialog/_closeButton.scss @@ -0,0 +1,22 @@ +/// Styles the close button to follow the same styling as ATLAS UI close button. +/// | `btn-primary-color` | To show the close button in white color.| + +.mxfeedback-close-button { + right: $spacing-medium; + top: 12px; // not using variables here as its position should be precise + padding: 0; + background-color: transparent; + border: none; + position: absolute; + + &__icon { + width: 12px; + height: 12px; + color: $font-color-default; + stroke: $font-color-default; + } + + &--white > &__icon { + fill: $btn-primary-color; + } +} diff --git a/themesource/feedbackmodule/web/dialog/_dialog.scss b/themesource/feedbackmodule/web/dialog/_dialog.scss new file mode 100644 index 0000000..5fe6647 --- /dev/null +++ b/themesource/feedbackmodule/web/dialog/_dialog.scss @@ -0,0 +1,30 @@ +/// Styles the dialogs. +/// The styling is shared between the different windows. + +.mxfeedback-dialog { + display: flex; + flex-direction: column; + position: fixed; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + padding: $spacing-large; + width: $mxfeedback-dialog-width; + max-width: calc(100% - #{$mxfeedback-dialog-spacing}); + max-height: calc(100% - #{$mxfeedback-dialog-spacing}); + background-color: $bg-color-secondary; + border: 1px solid $border-color-default; + border-radius: $border-radius-default; + box-shadow: $mxfeedback-shadow-small $mxfeedback-shadow-color; + overflow: hidden auto; + z-index: $mxfeedback-z-index-underlay; + + &__title { + font-size: $font-size-large; + font-weight: $font-weight-semibold; + line-height: 120%; + margin: 0 0 $spacing-medium; + color: $font-color-default; + align-self: center; + } +} diff --git a/themesource/feedbackmodule/web/dialog/_underlay.scss b/themesource/feedbackmodule/web/dialog/_underlay.scss new file mode 100644 index 0000000..ced748e --- /dev/null +++ b/themesource/feedbackmodule/web/dialog/_underlay.scss @@ -0,0 +1,6 @@ +/// Styles the underlay behind the dialog. + +.mxfeedback-underlay { + inset: 0; + z-index: $mxfeedback-z-index-underlay; +} diff --git a/themesource/feedbackmodule/web/feedback-button.scss b/themesource/feedbackmodule/web/feedback-button.scss new file mode 100644 index 0000000..5bdf48e --- /dev/null +++ b/themesource/feedbackmodule/web/feedback-button.scss @@ -0,0 +1,54 @@ +/* +About: ========================================================= +---------------------------------------------------------------- +This styling targets the main Feedback Button rendered on your page. +The Feedback widget button can be rendered on page in 3 formats. + +Render Modes: ================================================== +---------------------------------------------------------------- +Each render mode can be selected by double clicking the Feedback widget settings in Studio Pro. + +'Side Tab' - Fixes the button to the right hand margin and rotates by 270 degrees. +'Button' - Mimics a normal Mendix button. +'Do not render' - Hides the button on the live website but is still visible in the page editor for developers. + +CSS BEM Enumeration values: ==================================== +---------------------------------------------------------------- +At a code level each render mode selected has a coresspoinding CSS BEM modifier value. +Use these BEM modifiers to custom style each render mode. + +Side Tab = "side" +Button = "normal" +Do not render = "none" + +*/ +.mxfeedback-start-button { + + // &--normal { + // Use this if you want to style the Feedback Button when set Render mode = 'Button' + // } + + &--none { + display: none !important; + } + &--side { + position: fixed; + top: 50%; + right: 0; + transform: translate(50%, -50%) rotate(270deg); + transform-origin: bottom center; + padding: $spacing-smaller $spacing-small; + border: none; + border-radius: $border-radius-default $border-radius-default 0 0; + background-color: $btn-primary-bg; + color: $btn-primary-color; + font-size: $m-header-title-size; + box-shadow: $mxfeedback-start-button-shadow; + z-index: $mxfeedback-z-index-start-button; + + &:focus, + &:hover { + background-color: $btn-primary-bg-hover; + } + } +} \ No newline at end of file diff --git a/themesource/feedbackmodule/web/helpers.scss b/themesource/feedbackmodule/web/helpers.scss new file mode 100644 index 0000000..467f5e7 --- /dev/null +++ b/themesource/feedbackmodule/web/helpers.scss @@ -0,0 +1,7 @@ +/// For responsiveness + +@mixin mq($width, $type: min) { + @media only screen and (#{$type}-width: $width) { + @content; + } +} diff --git a/themesource/feedbackmodule/web/includes/_atlasVariables.scss b/themesource/feedbackmodule/web/includes/_atlasVariables.scss new file mode 100644 index 0000000..6635d86 --- /dev/null +++ b/themesource/feedbackmodule/web/includes/_atlasVariables.scss @@ -0,0 +1,52 @@ +/// Based on ATLAS UI 3 + +$gray-darker: #0a1325; +$gray-dark: #474e5c; +$gray: #787d87; +$gray-light: #a9acb3; +$gray-primary: #e7e7e9; +$gray-lighter: #f8f8f8; + +$brand-default: $gray-primary; +$brand-primary: #264ae5; +$brand-success: #3cb33d; +$brand-warning: #eca51c; +$brand-danger: #e33f4e; + +$font-size-default: 14px; +$font-color-default: #0a1325; + +$border-color-default: #ced0d3; +$border-radius-default: 4px; + +$m-header-title-size: 16px; + +$bg-color-secondary: #fff; + +$font-size-large: 18px; +$font-size-small: 12px; + +$font-weight-semibold: 600; +$font-weight-bold: bold; + +$btn-primary-bg: $brand-primary; +$btn-primary-bg-hover: mix($btn-primary-bg, black, 80%); +$btn-primary-color: #fff; + +$label-primary-color: #fff; + +$spacing-smallest: 2px; +$spacing-smaller: 4px; +$spacing-small: 8px; +$spacing-medium: 16px; +$spacing-large: 24px; +$spacing-larger: 32px; +$spacing-largest: 48px; + +$gutter-size: 8px; + +$screen-xs: 480px; +$screen-sm: 576px; +$screen-md: 768px; +$screen-lg: 992px; +$screen-xl: 1200px; diff --git a/themesource/feedbackmodule/web/includes/_helpers.scss b/themesource/feedbackmodule/web/includes/_helpers.scss new file mode 100644 index 0000000..467f5e7 --- /dev/null +++ b/themesource/feedbackmodule/web/includes/_helpers.scss @@ -0,0 +1,7 @@ +/// For responsiveness + +@mixin mq($width, $type: min) { + @media only screen and (#{$type}-width: $width) { + @content; + } +} diff --git a/themesource/feedbackmodule/web/includes/_variables.scss b/themesource/feedbackmodule/web/includes/_variables.scss new file mode 100644 index 0000000..77f5208 --- /dev/null +++ b/themesource/feedbackmodule/web/includes/_variables.scss @@ -0,0 +1,55 @@ +//== z-index +$mxfeedback-z-index-start-button: 999998 !default; +$mxfeedback-z-index-underlay: 1000001 !default; +$mxfeedback-z-index-lightbox: 1000002 !default; +$mxfeedback-z-index-annotation-canvas: 1000003 !default; +$mxfeedback-z-index-frame: 1000004 !default; + +//== Dimensions +$mxfeedback-dialog-width: 560px; +$mxfeedback-tooltip-width: 240px; +$tool-list-width: 144px; +$mxfeedback-screenshot-preview-height: 192px; +$mxfeedback-dialog-spacing: 40px; + +//== Background colors +$mxfeedback-lightbox-background-color: rgba(0, 0, 0, 0.9); +$mxfeedback-modal-background-color: rgba(0, 0, 0, 0.9); +$mxfeedback-annotation-canvas-background-color: rgba(0, 0, 0, 0.5); + +//== Shadows +$mxfeedback-start-button-shadow: -2px 0 4px 0 rgb(0 0 0 / 30%); +$mxfeedback-shadow-small: 0 2px 4px 0; +$mxfeedback-shadow-color: rgba(0, 0, 0, 0.2); + +//== Icons +$mxfeedback-icon-size-xs: 9px; +$mxfeedback-icon-size-sm: 16px; +$mxfeedback-icon-size-md: 20px; +$mxfeedback-icon-size-lg: 24px; + +//== Annotation +//## Annotation colors +$annotation-colors: ( + "midnight": #2f3646, + "grey": #c1c3c8, + "green": #4fd84f, + "blue": #47a9ff, + "purple": #845eff, + "magenta": #ca49f8, + "red": #fb4a4c, + "yellow": #fcc73a +); + +//## Annotation thickness +$annotation-thickness: ( + "one": 1px, + "two": 2px, + "three": 3px, + "four": 4px, + "five": 5px, + "six": 6px +); + +//## Annotation tool variables +$mxfeedback-annotation-tool-size: 25px; diff --git a/themesource/feedbackmodule/web/main.scss b/themesource/feedbackmodule/web/main.scss new file mode 100644 index 0000000..6ef1b8c --- /dev/null +++ b/themesource/feedbackmodule/web/main.scss @@ -0,0 +1,29 @@ +/* + ==| Variables |========================================================================================= +*/ +@import "../../../theme/web/custom-variables.scss"; +@import "variables"; +@import "helpers"; + +/* + ==| Widget blocks |===================================================================================== + These blocks contains styles directly related to the widget's appearance and are mostly unique styles + needed to display the widget's UI correctly. +*/ + +@import "feedback-button"; +@import "annotation-canvas"; +@import "annotation-frame"; + +/* + ==| Generic blocks |==================================================================================== + These blocks are generic blocks. These styles are styles that apply to the widget's entire UI and + outline the basic styles of the widget (in accordance with Atlas UI). +*/ + +@import "toolbar"; +@import "tool-button"; +@import "button-group"; +@import "button"; +@import "screenshot-preview"; +@import "underlay"; diff --git a/themesource/feedbackmodule/web/screenshot-preview.scss b/themesource/feedbackmodule/web/screenshot-preview.scss new file mode 100644 index 0000000..908bec7 --- /dev/null +++ b/themesource/feedbackmodule/web/screenshot-preview.scss @@ -0,0 +1,45 @@ +/// Styles the screenshot preview container in the form. + +.mxfeedback-screenshot-preview { + display: flex; + justify-content: left; + position: relative; + margin: $spacing-large auto; + cursor: pointer; + + &__image > img { + display: block; + object-fit: contain; + height: 100%; + aspect-ratio: 16 / 9; + border: 1px solid $gray; + border-radius: $border-radius-default; + + &:hover { + background-color: $gray-lighter; + border: 1px solid $gray-dark; + border-radius: $border-radius-default; + opacity: 0.5; + } + } + + &__preview-icon { + width: $mxfeedback-icon-size-md; + height: $mxfeedback-icon-size-md; + fill: $gray-lighter; + } + + &__delete-button { + position: absolute; + top: 0; + right: 0; + transform: translate(50%, -50%); + z-index: 1; + color: $btn-default-color; + border-radius: 50%; + height: 20px; + width: 20px; + padding: 0; + font-size: 12px; + } +} diff --git a/themesource/feedbackmodule/web/tool-button.scss b/themesource/feedbackmodule/web/tool-button.scss new file mode 100644 index 0000000..6f604d5 --- /dev/null +++ b/themesource/feedbackmodule/web/tool-button.scss @@ -0,0 +1,136 @@ +/// Styles the color and thickness options in the annotation toolbar. + +.mxfeedback-tool-button { + position: relative; + display: flex; + flex-direction: row; + align-items: center; + background: transparent; + border: 0; + padding: 0; + + &--active { + color: $brand-primary; + } + + &:focus-visible { + color: $btn-primary-bg-hover; + } + + &__inner { + display: flex; + flex-direction: column; + align-items: center; + } + + &__icon { + width: $mxfeedback-icon-size-lg; + height: $mxfeedback-icon-size-lg; + fill: currentColor; + } + + &__label { + margin-top: $spacing-smaller; + color: inherit + } + + &__caret { + fill: $gray-darker; + width: 8px; + height: 8px; + } + + &__dropdown { + position: relative; + display: flex; + align-items: center; + height: 100%; + } + + &__menu { + display: flex; + flex-direction: column; + gap: $gutter-size; + position: absolute; + left: 50%; + top: 100%; + transform: translateX(-50%); + padding: $spacing-small; + background: $bg-color-secondary; + border: 1px solid $border-color-default; + border-radius: $border-radius-default; + width: $tool-list-width; + z-index: 1; + } + + &__list { + display: grid; + grid-template-columns: repeat(4, 1fr); // 4 columns is our default, override with modifier + gap: calc(#{$gutter-size} / 2); + + &--col-3 { + grid-template-columns: repeat(3, 1fr); + } + } + + &__color { + position: relative; + padding: 0; + border: none; + border-radius: 100%; + aspect-ratio: 1 / 1; + + &:focus { + outline: 2px solid $brand-primary; + outline-offset: 2px; + } + + @each $color, $class in $annotation-colors { + &--#{$color} { + background-color: $class; + } + } + + svg { + width: 10px; + height: 10px; + stroke: $btn-primary-color; + } + } + + &__thickness { + background-color: transparent; + border: none; + border-radius: $border-radius-default; + aspect-ratio: 4 / 3; + + &:hover { + background-color: $gray-light; + } + + &:focus { + outline: 2px solid $brand-primary; + outline-offset: 2px; + } + + &--selected { + background-color: $gray; + } + + &::before { + content: ""; + display: block; + background-color: map-get($annotation-colors, "midnight"); + width: 100%; + transform: rotate(-45deg); + } + + @each $thickness, $height in $annotation-thickness { + &--#{$thickness} { + &::before { + height: $height; + } + } + } + } +} diff --git a/themesource/feedbackmodule/web/toolbar.scss b/themesource/feedbackmodule/web/toolbar.scss new file mode 100644 index 0000000..aeac21c --- /dev/null +++ b/themesource/feedbackmodule/web/toolbar.scss @@ -0,0 +1,26 @@ +/// Styles the annotation toolbar. + +.mxfeedback-toolbar { + position: fixed; + display: flex; + align-items: center; + gap: $gutter-size; + top: $spacing-larger; + left: 50%; + transform: translateX(-50%); + padding: $spacing-medium $spacing-larger; + background-color: $bg-color-secondary; + border: 1px solid $border-color-default; + border-radius: $border-radius-default; + font-size: $font-size-small; + box-shadow: $mxfeedback-shadow-small $mxfeedback-shadow-color; + z-index: $mxfeedback-z-index-frame; + + &--gap-md { + gap: $gutter-size * 2; + } + + &--gap-lg { + gap: $gutter-size * 4; + } +} diff --git a/themesource/feedbackmodule/web/toolbar/_toolButton.scss b/themesource/feedbackmodule/web/toolbar/_toolButton.scss new file mode 100644 index 0000000..6f604d5 --- /dev/null +++ b/themesource/feedbackmodule/web/toolbar/_toolButton.scss @@ -0,0 +1,136 @@ +/// Styles the color and thickness options in the annotation toolbar. + +.mxfeedback-tool-button { + position: relative; + display: flex; + flex-direction: row; + align-items: center; + background: transparent; + border: 0; + padding: 0; + + &--active { + color: $brand-primary; + } + + &:focus-visible { + color: $btn-primary-bg-hover; + } + + &__inner { + display: flex; + flex-direction: column; + align-items: center; + } + + &__icon { + width: $mxfeedback-icon-size-lg; + height: $mxfeedback-icon-size-lg; + fill: currentColor; + } + + &__label { + margin-top: $spacing-smaller; + color: inherit + } + + &__caret { + fill: $gray-darker; + width: 8px; + height: 8px; + } + + &__dropdown { + position: relative; + display: flex; + align-items: center; + height: 100%; + } + + &__menu { + display: flex; + flex-direction: column; + gap: $gutter-size; + position: absolute; + left: 50%; + top: 100%; + transform: translateX(-50%); + padding: $spacing-small; + background: $bg-color-secondary; + border: 1px solid $border-color-default; + border-radius: $border-radius-default; + width: $tool-list-width; + z-index: 1; + } + + &__list { + display: grid; + grid-template-columns: repeat(4, 1fr); // 4 columns is our default, override with modifier + gap: calc(#{$gutter-size} / 2); + + &--col-3 { + grid-template-columns: repeat(3, 1fr); + } + } + + &__color { + position: relative; + padding: 0; + border: none; + border-radius: 100%; + aspect-ratio: 1 / 1; + + &:focus { + outline: 2px solid $brand-primary; + outline-offset: 2px; + } + + @each $color, $class in $annotation-colors { + &--#{$color} { + background-color: $class; + } + } + + svg { + width: 10px; + height: 10px; + stroke: $btn-primary-color; + } + } + + &__thickness { + background-color: transparent; + border: none; + border-radius: $border-radius-default; + aspect-ratio: 4 / 3; + + &:hover { + background-color: $gray-light; + } + + &:focus { + outline: 2px solid $brand-primary; + outline-offset: 2px; + } + + &--selected { + background-color: $gray; + } + + &::before { + content: ""; + display: block; + background-color: map-get($annotation-colors, "midnight"); + width: 100%; + transform: rotate(-45deg); + } + + @each $thickness, $height in $annotation-thickness { + &--#{$thickness} { + &::before { + height: $height; + } + } + } + } +} diff --git a/themesource/feedbackmodule/web/toolbar/_toolbar.scss b/themesource/feedbackmodule/web/toolbar/_toolbar.scss new file mode 100644 index 0000000..aeac21c --- /dev/null +++ b/themesource/feedbackmodule/web/toolbar/_toolbar.scss @@ -0,0 +1,26 @@ +/// Styles the annotation toolbar. + +.mxfeedback-toolbar { + position: fixed; + display: flex; + align-items: center; + gap: $gutter-size; + top: $spacing-larger; + left: 50%; + transform: translateX(-50%); + padding: $spacing-medium $spacing-larger; + background-color: $bg-color-secondary; + border: 1px solid $border-color-default; + border-radius: $border-radius-default; + font-size: $font-size-small; + box-shadow: $mxfeedback-shadow-small $mxfeedback-shadow-color; + z-index: $mxfeedback-z-index-frame; + + &--gap-md { + gap: $gutter-size * 2; + } + + &--gap-lg { + gap: $gutter-size * 4; + } +} diff --git a/themesource/feedbackmodule/web/underlay.scss b/themesource/feedbackmodule/web/underlay.scss new file mode 100644 index 0000000..ced748e --- /dev/null +++ b/themesource/feedbackmodule/web/underlay.scss @@ -0,0 +1,6 @@ +/// Styles the underlay behind the dialog. + +.mxfeedback-underlay { + inset: 0; + z-index: $mxfeedback-z-index-underlay; +} diff --git a/themesource/feedbackmodule/web/variables.scss b/themesource/feedbackmodule/web/variables.scss new file mode 100644 index 0000000..eb5aca1 --- /dev/null +++ b/themesource/feedbackmodule/web/variables.scss @@ -0,0 +1,54 @@ +//== z-index +$mxfeedback-z-index-start-button: 999998 !default; +$mxfeedback-z-index-underlay: 1000001 !default; +$mxfeedback-z-index-lightbox: 1000002 !default; +$mxfeedback-z-index-annotation-canvas: 1000003 !default; +$mxfeedback-z-index-frame: 1000004 !default; + +//== Dimensions +$mxfeedback-dialog-width: 560px; +$mxfeedback-tooltip-width: 240px; +$tool-list-width: 144px; +$mxfeedback-dialog-spacing: 40px; + +//== Background colors +$mxfeedback-lightbox-background-color: rgba(0, 0, 0, 0.9); +$mxfeedback-modal-background-color: rgba(0, 0, 0, 0.9); +$mxfeedback-annotation-canvas-background-color: rgba(0, 0, 0, 0.5); + +//== Shadows +$mxfeedback-start-button-shadow: -2px 0 4px 0 rgb(0 0 0 / 30%); +$mxfeedback-shadow-small: 0 2px 4px 0; +$mxfeedback-shadow-color: rgba(0, 0, 0, 0.2); + +//== Icons +$mxfeedback-icon-size-xs: 9px; +$mxfeedback-icon-size-sm: 16px; +$mxfeedback-icon-size-md: 20px; +$mxfeedback-icon-size-lg: 24px; + +//== Annotation +//## Annotation colors +$annotation-colors: ( + "midnight": #2f3646, + "grey": #c1c3c8, + "green": #4fd84f, + "blue": #47a9ff, + "purple": #845eff, + "magenta": #ca49f8, + "red": #fb4a4c, + "yellow": #fcc73a +); + +//## Annotation thickness +$annotation-thickness: ( + "one": 1px, + "two": 2px, + "three": 3px, + "four": 4px, + "five": 5px, + "six": 6px +); + +//## Annotation tool variables +$mxfeedback-annotation-tool-size: 25px; diff --git a/themesource/migrationutility/native/design-properties.json b/themesource/migrationutility/native/design-properties.json new file mode 100644 index 0000000..49d1a20 --- /dev/null +++ b/themesource/migrationutility/native/design-properties.json @@ -0,0 +1,3 @@ +{ + +} diff --git a/themesource/migrationutility/native/main.js b/themesource/migrationutility/native/main.js new file mode 100644 index 0000000..b611ae1 --- /dev/null +++ b/themesource/migrationutility/native/main.js @@ -0,0 +1,2 @@ +import * as variables from "../../../theme/native/custom-variables"; + diff --git a/themesource/migrationutility/settings.json b/themesource/migrationutility/settings.json new file mode 100644 index 0000000..49d1a20 --- /dev/null +++ b/themesource/migrationutility/settings.json @@ -0,0 +1,3 @@ +{ + +} diff --git a/themesource/migrationutility/web/design-properties.json b/themesource/migrationutility/web/design-properties.json new file mode 100644 index 0000000..49d1a20 --- /dev/null +++ b/themesource/migrationutility/web/design-properties.json @@ -0,0 +1,3 @@ +{ + +} diff --git a/themesource/migrationutility/web/main.scss b/themesource/migrationutility/web/main.scss new file mode 100644 index 0000000..122370f --- /dev/null +++ b/themesource/migrationutility/web/main.scss @@ -0,0 +1,2 @@ +@import '../../../theme/web/custom-variables'; + diff --git a/themesource/myfirstmodule/native/design-properties.json b/themesource/myfirstmodule/native/design-properties.json new file mode 100644 index 0000000..49d1a20 --- /dev/null +++ b/themesource/myfirstmodule/native/design-properties.json @@ -0,0 +1,3 @@ +{ + +} diff --git a/themesource/myfirstmodule/native/main.js b/themesource/myfirstmodule/native/main.js new file mode 100644 index 0000000..b611ae1 --- /dev/null +++ b/themesource/myfirstmodule/native/main.js @@ -0,0 +1,2 @@ +import * as variables from "../../../theme/native/custom-variables"; + diff --git a/themesource/myfirstmodule/settings.json b/themesource/myfirstmodule/settings.json new file mode 100644 index 0000000..49d1a20 --- /dev/null +++ b/themesource/myfirstmodule/settings.json @@ -0,0 +1,3 @@ +{ + +} diff --git a/themesource/myfirstmodule/web/design-properties.json b/themesource/myfirstmodule/web/design-properties.json new file mode 100644 index 0000000..49d1a20 --- /dev/null +++ b/themesource/myfirstmodule/web/design-properties.json @@ -0,0 +1,3 @@ +{ + +} diff --git a/themesource/myfirstmodule/web/main.scss b/themesource/myfirstmodule/web/main.scss new file mode 100644 index 0000000..122370f --- /dev/null +++ b/themesource/myfirstmodule/web/main.scss @@ -0,0 +1,2 @@ +@import '../../../theme/web/custom-variables'; + diff --git a/themesource/nanoflowcommons/.version b/themesource/nanoflowcommons/.version new file mode 100644 index 0000000..4a36342 --- /dev/null +++ b/themesource/nanoflowcommons/.version @@ -0,0 +1 @@ +3.0.0 diff --git a/themesource/nanoflowcommons/native/design-properties.json b/themesource/nanoflowcommons/native/design-properties.json new file mode 100644 index 0000000..49d1a20 --- /dev/null +++ b/themesource/nanoflowcommons/native/design-properties.json @@ -0,0 +1,3 @@ +{ + +} diff --git a/themesource/nanoflowcommons/native/main.js b/themesource/nanoflowcommons/native/main.js new file mode 100644 index 0000000..b611ae1 --- /dev/null +++ b/themesource/nanoflowcommons/native/main.js @@ -0,0 +1,2 @@ +import * as variables from "../../../theme/native/custom-variables"; + diff --git a/themesource/nanoflowcommons/web/design-properties.json b/themesource/nanoflowcommons/web/design-properties.json new file mode 100644 index 0000000..49d1a20 --- /dev/null +++ b/themesource/nanoflowcommons/web/design-properties.json @@ -0,0 +1,3 @@ +{ + +} diff --git a/themesource/nanoflowcommons/web/main.scss b/themesource/nanoflowcommons/web/main.scss new file mode 100644 index 0000000..122370f --- /dev/null +++ b/themesource/nanoflowcommons/web/main.scss @@ -0,0 +1,2 @@ +@import '../../../theme/web/custom-variables'; + diff --git a/themesource/testmodule/native/design-properties.json b/themesource/testmodule/native/design-properties.json new file mode 100644 index 0000000..49d1a20 --- /dev/null +++ b/themesource/testmodule/native/design-properties.json @@ -0,0 +1,3 @@ +{ + +} diff --git a/themesource/testmodule/native/main.js b/themesource/testmodule/native/main.js new file mode 100644 index 0000000..b611ae1 --- /dev/null +++ b/themesource/testmodule/native/main.js @@ -0,0 +1,2 @@ +import * as variables from "../../../theme/native/custom-variables"; + diff --git a/themesource/testmodule/settings.json b/themesource/testmodule/settings.json new file mode 100644 index 0000000..49d1a20 --- /dev/null +++ b/themesource/testmodule/settings.json @@ -0,0 +1,3 @@ +{ + +} diff --git a/themesource/testmodule/web/design-properties.json b/themesource/testmodule/web/design-properties.json new file mode 100644 index 0000000..49d1a20 --- /dev/null +++ b/themesource/testmodule/web/design-properties.json @@ -0,0 +1,3 @@ +{ + +} diff --git a/themesource/testmodule/web/main.scss b/themesource/testmodule/web/main.scss new file mode 100644 index 0000000..122370f --- /dev/null +++ b/themesource/testmodule/web/main.scss @@ -0,0 +1,2 @@ +@import '../../../theme/web/custom-variables'; + diff --git a/themesource/webactions/native/design-properties.json b/themesource/webactions/native/design-properties.json new file mode 100644 index 0000000..49d1a20 --- /dev/null +++ b/themesource/webactions/native/design-properties.json @@ -0,0 +1,3 @@ +{ + +} diff --git a/themesource/webactions/native/main.js b/themesource/webactions/native/main.js new file mode 100644 index 0000000..b611ae1 --- /dev/null +++ b/themesource/webactions/native/main.js @@ -0,0 +1,2 @@ +import * as variables from "../../../theme/native/custom-variables"; + diff --git a/themesource/webactions/web/_take-picture.scss b/themesource/webactions/web/_take-picture.scss new file mode 100644 index 0000000..8368e0f --- /dev/null +++ b/themesource/webactions/web/_take-picture.scss @@ -0,0 +1,153 @@ +/* ========================================================================== + Take picture styles +========================================================================== */ + +.take-picture-wrapper { + height: 100%; + width: 100%; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + display: flex; + flex-direction: column-reverse; + justify-content: space-between; + /* Should be higher than the the video. */ + z-index: 111; +} +.take-picture-video-element { + position: absolute; + /* Should be higher than the z-index of '.layout-atlas .region-sidebar' so it sits on top of the page. */ + z-index: 110; + top: 0; + left: 0; + right: 0; + bottom: 0; + object-fit: cover; + width: 100%; + height: 100%; + background-color: black; +} +.take-picture-action-control-wrapper { + display: flex; + justify-content: center; + flex-direction: row; + align-items: center; + /* should be higher than the video. */ + z-index: 111; + margin-bottom: 74px; +} +.take-picture-action-switch-control-wrapper { + display: flex; + justify-content: space-between; + flex-direction: row; + align-items: center; + /* should be higher than the video. */ + z-index: 111; + margin-bottom: 74px; +} +.take-picture-close-control-wrapper { + display: flex; + justify-content: flex-start; + flex-direction: column; + align-items: flex-start; + /* should be higher than the video. */ + z-index: 111; +} +.take-picture-action-control { + background-color: transparent; + border-style: none; + padding: 0; +} +.take-picture-action-spacing { + flex: 1; + display: flex; + justify-content: center; + align-items: center; +} +.take-picture-switch-spacing { + display: flex; + flex: 1; + justify-content: flex-end; + align-items: center; +} +.take-picture-spacing-div { + flex: 1; +} +.take-picture-action-control-inner { + border-radius: 50%; + background-color: white; + border: 1px solid black; + width: 58px; + height: 58px; +} +.take-picture-button-wrapper { + display: flex; + flex-direction: row; + justify-content: space-between; + z-index: 111; +} +.take-picture-save-button { + color: white; + background-color: #264ae5; + width: 100%; + border-radius: 4px; + height: 40px; + font-size: 14px; + line-height: 20px; + text-align: center; + border-style: none; +} +.take-picture-switch-control { + background-color: transparent; + border-style: none; + padding: 0; + margin-right: 22.33px; +} +.take-picture-close-control { + margin: 30px 0 0 30px; + border-style: none; + padding: 0; + background-color: transparent; +} +.take-picture-save-control { + margin: 30px 30px 0 0; + border-style: none; + padding: 0; + background-color: transparent; +} +.take-picture-confirm-wrapper { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + background-color: white; + /* should be higher than the wrapper. */ + z-index: 112; + display: flex; + flex-direction: column; + justify-content: space-between; +} +.take-picture-image { + position: absolute; + /* Should be higher than the z-index of '.layout-atlas .region-sidebar' so it sits on top of the page. */ + z-index: 110; + top: 0; + left: 0; + right: 0; + bottom: 0; + object-fit: cover; + width: 100%; + height: 100%; + background-color: black; +} +/* Overwrite 'atlas_core/web/core/_legacy/_mxui.scss' for this particular widget because otherwise + iOS Safari will in certain cases put the top and/or bottom bar on top of the overlay of this widget. */ + +.mx-scrollcontainer-wrapper:not(.mx-scrollcontainer-nested) { + -webkit-overflow-scrolling: auto; +} diff --git a/theme/com.mendix.charts.json b/themesource/webactions/web/design-properties.json similarity index 100% rename from theme/com.mendix.charts.json rename to themesource/webactions/web/design-properties.json diff --git a/themesource/webactions/web/main.scss b/themesource/webactions/web/main.scss new file mode 100644 index 0000000..7f94c32 --- /dev/null +++ b/themesource/webactions/web/main.scss @@ -0,0 +1,2 @@ +@import "../../../theme/web/custom-variables"; +@import "take-picture"; diff --git a/userlib/Email_Connector-1.0.0.jar b/userlib/Email_Connector-1.0.0.jar index fafde19..bf083ce 100644 Binary files a/userlib/Email_Connector-1.0.0.jar and b/userlib/Email_Connector-1.0.0.jar differ diff --git a/userlib/Email_Connector.migration b/userlib/Email_Connector.migration new file mode 100644 index 0000000..190eb09 --- /dev/null +++ b/userlib/Email_Connector.migration @@ -0,0 +1,45 @@ +dependency commons-codec:commons-codec:1.15 +dependency org.bouncycastle:bcjmail-jdk18on:1.81 +dependency org.eclipse.angus:angus-mail:2.0.4 +dependency org.jsoup:jsoup:1.15.4 +dependency org.simplejavamail:simple-java-mail:8.12.6 +dependency org.simplejavamail:smime-module:8.12.6 +dependency org.slf4j:slf4j-simple:2.0.7 +delete angus-activation-2.0.2.jar +delete angus-activation-2.0.2.jar.Email_Connector.RequiredLib +delete angus-mail-2.0.4.jar +delete angus-mail-2.0.4.jar.Email_Connector.RequiredLib +delete bcjmail-jdk18on-1.81.jar +delete bcjmail-jdk18on-1.81.jar.Email_Connector.RequiredLib +delete bcpkix-jdk18on-1.81.jar +delete bcpkix-jdk18on-1.81.jar.Email_Connector.RequiredLib +delete bcprov-jdk18on-1.81.jar +delete bcprov-jdk18on-1.81.jar.Email_Connector.RequiredLib +delete bcutil-jdk18on-1.81.jar +delete bcutil-jdk18on-1.81.jar.Email_Connector.RequiredLib +delete commons-codec-1.15.jar +delete commons-codec-1.15.jar.Email_Connector.RequiredLib +delete core-module-8.12.6.jar +delete core-module-8.12.6.jar.Email_Connector.RequiredLib +delete jakarta.activation-api-2.1.3.jar +delete jakarta.activation-api-2.1.3.jar.Email_Connector.RequiredLib +delete jakarta.mail-api-2.1.3.jar +delete jakarta.mail-api-2.1.3.jar.Email_Connector.RequiredLib +delete jetbrains-runtime-annotations-1.0.2.jar +delete jetbrains-runtime-annotations-1.0.2.jar.Email_Connector.RequiredLib +delete jmail-1.6.3.jar +delete jmail-1.6.3.jar.Email_Connector.RequiredLib +delete jsoup-1.15.4.jar +delete jsoup-1.15.4.jar.Email_Connector.RequiredLib +delete simple-java-mail-8.12.6.jar +delete simple-java-mail-8.12.6.jar.Email_Connector.RequiredLib +delete slf4j-api-2.0.13.jar +delete slf4j-api-2.0.13.jar.Email_Connector.RequiredLib +delete slf4j-simple-2.0.7.jar +delete slf4j-simple-2.0.7.jar.Email_Connector.RequiredLib +delete smime-module-8.12.6.jar +delete smime-module-8.12.6.jar.Email_Connector.RequiredLib +delete throwing-function-1.6.1.jar +delete throwing-function-1.6.1.jar.Email_Connector.RequiredLib +delete utils-mail-smime-2.3.12.jar +delete utils-mail-smime-2.3.12.jar.Email_Connector.RequiredLib \ No newline at end of file diff --git a/userlib/Encryption.migration b/userlib/Encryption.migration new file mode 100644 index 0000000..73ef8f7 --- /dev/null +++ b/userlib/Encryption.migration @@ -0,0 +1,14 @@ +dependency org.bouncycastle:bcpg-jdk18on:1.81 +dependency org.bouncycastle:bcpkix-jdk18on:1.81 +dependency org.bouncycastle:bcprov-jdk18on:1.81 +dependency commons-io:commons-io:2.17.0 +delete bcpg-jdk18on-1.81.jar +delete bcpg-jdk18on-1.81.jar.Encryption.RequiredLib +delete bcpkix-jdk18on-1.81.jar +delete bcpkix-jdk18on-1.81.jar.Encryption.RequiredLib +delete bcutil-jdk18on-1.81.jar +delete bcutil-jdk18on-1.81.jar.Encryption.RequiredLib +delete bcprov-jdk18on-1.81.jar +delete bcprov-jdk18on-1.81.jar.Encryption.RequiredLib +delete commons-io-2.17.0.jar +delete commons-io-2.17.0.jar.Encryption.RequiredLib diff --git a/userlib/angus-activation-2.0.2.jar b/userlib/angus-activation-2.0.2.jar new file mode 100644 index 0000000..93c7aad Binary files /dev/null and b/userlib/angus-activation-2.0.2.jar differ diff --git a/theme/styles/native/app/custom.js b/userlib/angus-activation-2.0.2.jar.Email_Connector.RequiredLib similarity index 100% rename from theme/styles/native/app/custom.js rename to userlib/angus-activation-2.0.2.jar.Email_Connector.RequiredLib diff --git a/userlib/angus-mail-2.0.4.jar b/userlib/angus-mail-2.0.4.jar new file mode 100644 index 0000000..10c4c77 Binary files /dev/null and b/userlib/angus-mail-2.0.4.jar differ diff --git a/theme_old/styles/native/app/custom.js b/userlib/angus-mail-2.0.4.jar.Email_Connector.RequiredLib similarity index 100% rename from theme_old/styles/native/app/custom.js rename to userlib/angus-mail-2.0.4.jar.Email_Connector.RequiredLib diff --git a/userlib/bcjmail-jdk18on-1.81.jar b/userlib/bcjmail-jdk18on-1.81.jar new file mode 100644 index 0000000..fa25d07 Binary files /dev/null and b/userlib/bcjmail-jdk18on-1.81.jar differ diff --git a/userlib/bcjmail-jdk18on-1.81.jar.Email_Connector.RequiredLib b/userlib/bcjmail-jdk18on-1.81.jar.Email_Connector.RequiredLib new file mode 100644 index 0000000..e69de29 diff --git a/userlib/bcpg-jdk18on-1.81.jar b/userlib/bcpg-jdk18on-1.81.jar new file mode 100644 index 0000000..abac407 Binary files /dev/null and b/userlib/bcpg-jdk18on-1.81.jar differ diff --git a/userlib/bcpg-jdk18on-1.81.jar.Encryption.RequiredLib b/userlib/bcpg-jdk18on-1.81.jar.Encryption.RequiredLib new file mode 100644 index 0000000..e69de29 diff --git a/userlib/bcpkix-jdk18on-1.81.jar b/userlib/bcpkix-jdk18on-1.81.jar new file mode 100644 index 0000000..11f73d6 Binary files /dev/null and b/userlib/bcpkix-jdk18on-1.81.jar differ diff --git a/userlib/bcpkix-jdk18on-1.81.jar.Email_Connector.RequiredLib b/userlib/bcpkix-jdk18on-1.81.jar.Email_Connector.RequiredLib new file mode 100644 index 0000000..e69de29 diff --git a/userlib/bcpkix-jdk18on-1.81.jar.Encryption.RequiredLib b/userlib/bcpkix-jdk18on-1.81.jar.Encryption.RequiredLib new file mode 100644 index 0000000..e69de29 diff --git a/userlib/bcprov-jdk18on-1.81.jar b/userlib/bcprov-jdk18on-1.81.jar new file mode 100644 index 0000000..d0410eb Binary files /dev/null and b/userlib/bcprov-jdk18on-1.81.jar differ diff --git a/userlib/bcprov-jdk18on-1.81.jar.Email_Connector.RequiredLib b/userlib/bcprov-jdk18on-1.81.jar.Email_Connector.RequiredLib new file mode 100644 index 0000000..e69de29 diff --git a/userlib/bcprov-jdk18on-1.81.jar.Encryption.RequiredLib b/userlib/bcprov-jdk18on-1.81.jar.Encryption.RequiredLib new file mode 100644 index 0000000..e69de29 diff --git a/userlib/bcutil-jdk18on-1.81.jar b/userlib/bcutil-jdk18on-1.81.jar new file mode 100644 index 0000000..26fc9e0 Binary files /dev/null and b/userlib/bcutil-jdk18on-1.81.jar differ diff --git a/userlib/bcutil-jdk18on-1.81.jar.Email_Connector.RequiredLib b/userlib/bcutil-jdk18on-1.81.jar.Email_Connector.RequiredLib new file mode 100644 index 0000000..e69de29 diff --git a/userlib/bcutil-jdk18on-1.81.jar.Encryption.RequiredLib b/userlib/bcutil-jdk18on-1.81.jar.Encryption.RequiredLib new file mode 100644 index 0000000..e69de29 diff --git a/userlib/commons-io-2.17.0.jar b/userlib/commons-io-2.17.0.jar new file mode 100644 index 0000000..ad00ddc Binary files /dev/null and b/userlib/commons-io-2.17.0.jar differ diff --git a/userlib/commons-io-2.17.0.jar.Encryption.RequiredLib b/userlib/commons-io-2.17.0.jar.Encryption.RequiredLib new file mode 100644 index 0000000..e69de29 diff --git a/userlib/core-module-8.12.6.jar b/userlib/core-module-8.12.6.jar new file mode 100644 index 0000000..16e05f7 Binary files /dev/null and b/userlib/core-module-8.12.6.jar differ diff --git a/userlib/core-module-8.12.6.jar.Email_Connector.RequiredLib b/userlib/core-module-8.12.6.jar.Email_Connector.RequiredLib new file mode 100644 index 0000000..e69de29 diff --git a/userlib/jakarta.activation-api-2.1.3.jar b/userlib/jakarta.activation-api-2.1.3.jar new file mode 100644 index 0000000..0d015d5 Binary files /dev/null and b/userlib/jakarta.activation-api-2.1.3.jar differ diff --git a/userlib/jakarta.activation-api-2.1.3.jar.Email_Connector.RequiredLib b/userlib/jakarta.activation-api-2.1.3.jar.Email_Connector.RequiredLib new file mode 100644 index 0000000..e69de29 diff --git a/userlib/jakarta.mail-api-2.1.3.jar b/userlib/jakarta.mail-api-2.1.3.jar new file mode 100644 index 0000000..6b36779 Binary files /dev/null and b/userlib/jakarta.mail-api-2.1.3.jar differ diff --git a/userlib/jakarta.mail-api-2.1.3.jar.Email_Connector.RequiredLib b/userlib/jakarta.mail-api-2.1.3.jar.Email_Connector.RequiredLib new file mode 100644 index 0000000..e69de29 diff --git a/userlib/jetbrains-runtime-annotations-1.0.2.jar b/userlib/jetbrains-runtime-annotations-1.0.2.jar new file mode 100644 index 0000000..e6e782f Binary files /dev/null and b/userlib/jetbrains-runtime-annotations-1.0.2.jar differ diff --git a/userlib/jetbrains-runtime-annotations-1.0.2.jar.Email_Connector.RequiredLib b/userlib/jetbrains-runtime-annotations-1.0.2.jar.Email_Connector.RequiredLib new file mode 100644 index 0000000..e69de29 diff --git a/userlib/jmail-1.6.3.jar b/userlib/jmail-1.6.3.jar new file mode 100644 index 0000000..c19b01f Binary files /dev/null and b/userlib/jmail-1.6.3.jar differ diff --git a/userlib/jmail-1.6.3.jar.Email_Connector.RequiredLib b/userlib/jmail-1.6.3.jar.Email_Connector.RequiredLib new file mode 100644 index 0000000..e69de29 diff --git a/userlib/jsoup-1.15.4.jar b/userlib/jsoup-1.15.4.jar new file mode 100644 index 0000000..5feaa00 Binary files /dev/null and b/userlib/jsoup-1.15.4.jar differ diff --git a/userlib/jsoup-1.15.4.jar.Email_Connector.RequiredLib b/userlib/jsoup-1.15.4.jar.Email_Connector.RequiredLib new file mode 100644 index 0000000..e69de29 diff --git a/userlib/simple-java-mail-8.12.6.jar b/userlib/simple-java-mail-8.12.6.jar new file mode 100644 index 0000000..07fd034 Binary files /dev/null and b/userlib/simple-java-mail-8.12.6.jar differ diff --git a/userlib/simple-java-mail-8.12.6.jar.Email_Connector.RequiredLib b/userlib/simple-java-mail-8.12.6.jar.Email_Connector.RequiredLib new file mode 100644 index 0000000..e69de29 diff --git a/userlib/slf4j-api-2.0.13.jar b/userlib/slf4j-api-2.0.13.jar new file mode 100644 index 0000000..a800cc2 Binary files /dev/null and b/userlib/slf4j-api-2.0.13.jar differ diff --git a/userlib/slf4j-api-2.0.13.jar.Email_Connector.RequiredLib b/userlib/slf4j-api-2.0.13.jar.Email_Connector.RequiredLib new file mode 100644 index 0000000..e69de29 diff --git a/userlib/slf4j-simple-2.0.7.jar b/userlib/slf4j-simple-2.0.7.jar new file mode 100644 index 0000000..35ca2ab Binary files /dev/null and b/userlib/slf4j-simple-2.0.7.jar differ diff --git a/userlib/slf4j-simple-2.0.7.jar.Email_Connector.RequiredLib b/userlib/slf4j-simple-2.0.7.jar.Email_Connector.RequiredLib new file mode 100644 index 0000000..e69de29 diff --git a/userlib/smime-module-8.12.6.jar b/userlib/smime-module-8.12.6.jar new file mode 100644 index 0000000..2fbaabf Binary files /dev/null and b/userlib/smime-module-8.12.6.jar differ diff --git a/userlib/smime-module-8.12.6.jar.Email_Connector.RequiredLib b/userlib/smime-module-8.12.6.jar.Email_Connector.RequiredLib new file mode 100644 index 0000000..e69de29 diff --git a/userlib/throwing-function-1.6.1.jar b/userlib/throwing-function-1.6.1.jar new file mode 100644 index 0000000..2e736c2 Binary files /dev/null and b/userlib/throwing-function-1.6.1.jar differ diff --git a/userlib/throwing-function-1.6.1.jar.Email_Connector.RequiredLib b/userlib/throwing-function-1.6.1.jar.Email_Connector.RequiredLib new file mode 100644 index 0000000..e69de29 diff --git a/userlib/utils-mail-smime-2.3.12.jar b/userlib/utils-mail-smime-2.3.12.jar new file mode 100644 index 0000000..e6a357d Binary files /dev/null and b/userlib/utils-mail-smime-2.3.12.jar differ diff --git a/userlib/utils-mail-smime-2.3.12.jar.Email_Connector.RequiredLib b/userlib/utils-mail-smime-2.3.12.jar.Email_Connector.RequiredLib new file mode 100644 index 0000000..e69de29 diff --git a/widgets/Badge.mpk b/widgets/Badge.mpk new file mode 100644 index 0000000..f8584ea Binary files /dev/null and b/widgets/Badge.mpk differ diff --git a/widgets/Charts.mpk b/widgets/Charts.mpk index 70b94cf..40a6413 100644 Binary files a/widgets/Charts.mpk and b/widgets/Charts.mpk differ diff --git a/widgets/HTMLSnippet.mpk b/widgets/HTMLSnippet.mpk index 7302566..d1953a3 100644 Binary files a/widgets/HTMLSnippet.mpk and b/widgets/HTMLSnippet.mpk differ diff --git a/widgets/Maps.mpk b/widgets/Maps.mpk index cb47146..3d0ed30 100644 Binary files a/widgets/Maps.mpk and b/widgets/Maps.mpk differ diff --git a/widgets/ProgressBar.mpk b/widgets/ProgressBar.mpk index b0c126c..3600d84 100644 Binary files a/widgets/ProgressBar.mpk and b/widgets/ProgressBar.mpk differ diff --git a/widgets/ProgressCircle.mpk b/widgets/ProgressCircle.mpk index d6f9697..3271044 100644 Binary files a/widgets/ProgressCircle.mpk and b/widgets/ProgressCircle.mpk differ diff --git a/widgets/RadioButtonList.mpk b/widgets/RadioButtonList.mpk new file mode 100644 index 0000000..e1b377e Binary files /dev/null and b/widgets/RadioButtonList.mpk differ diff --git a/widgets/RichText.mpk b/widgets/RichText.mpk index d84f17f..0688456 100644 Binary files a/widgets/RichText.mpk and b/widgets/RichText.mpk differ diff --git a/widgets/SprintrFeedbackWidget.mpk b/widgets/SprintrFeedbackWidget.mpk index c458603..c7e8a6e 100644 Binary files a/widgets/SprintrFeedbackWidget.mpk and b/widgets/SprintrFeedbackWidget.mpk differ diff --git a/widgets/addverb.NivoLineChart.mpk b/widgets/addverb.NivoLineChart.mpk new file mode 100644 index 0000000..62f3dfd Binary files /dev/null and b/widgets/addverb.NivoLineChart.mpk differ diff --git a/widgets/com.mendix.widget.native.BackgroundImage.mpk b/widgets/com.mendix.widget.native.BackgroundImage.mpk new file mode 100644 index 0000000..dd57e41 Binary files /dev/null and b/widgets/com.mendix.widget.native.BackgroundImage.mpk differ diff --git a/widgets/com.mendix.widget.native.Carousel.mpk b/widgets/com.mendix.widget.native.Carousel.mpk new file mode 100644 index 0000000..9549036 Binary files /dev/null and b/widgets/com.mendix.widget.native.Carousel.mpk differ diff --git a/widgets/com.mendix.widget.native.Feedback.mpk b/widgets/com.mendix.widget.native.Feedback.mpk new file mode 100644 index 0000000..53a4a21 Binary files /dev/null and b/widgets/com.mendix.widget.native.Feedback.mpk differ diff --git a/widgets/com.mendix.widget.web.Combobox.mpk b/widgets/com.mendix.widget.web.Combobox.mpk new file mode 100644 index 0000000..912f306 Binary files /dev/null and b/widgets/com.mendix.widget.web.Combobox.mpk differ diff --git a/widgets/com.mendix.widget.web.Datagrid.mpk b/widgets/com.mendix.widget.web.Datagrid.mpk new file mode 100644 index 0000000..8ecfde7 Binary files /dev/null and b/widgets/com.mendix.widget.web.Datagrid.mpk differ diff --git a/widgets/com.mendix.widget.web.DatagridDateFilter.mpk b/widgets/com.mendix.widget.web.DatagridDateFilter.mpk new file mode 100644 index 0000000..ec5a584 Binary files /dev/null and b/widgets/com.mendix.widget.web.DatagridDateFilter.mpk differ diff --git a/widgets/com.mendix.widget.web.DatagridDropdownFilter.mpk b/widgets/com.mendix.widget.web.DatagridDropdownFilter.mpk new file mode 100644 index 0000000..2d383db Binary files /dev/null and b/widgets/com.mendix.widget.web.DatagridDropdownFilter.mpk differ diff --git a/widgets/com.mendix.widget.web.DatagridNumberFilter.mpk b/widgets/com.mendix.widget.web.DatagridNumberFilter.mpk new file mode 100644 index 0000000..af4e781 Binary files /dev/null and b/widgets/com.mendix.widget.web.DatagridNumberFilter.mpk differ diff --git a/widgets/com.mendix.widget.web.DatagridTextFilter.mpk b/widgets/com.mendix.widget.web.DatagridTextFilter.mpk new file mode 100644 index 0000000..17f0e92 Binary files /dev/null and b/widgets/com.mendix.widget.web.DatagridTextFilter.mpk differ diff --git a/widgets/com.mendix.widget.web.DropdownSort.mpk b/widgets/com.mendix.widget.web.DropdownSort.mpk new file mode 100644 index 0000000..59eb4b7 Binary files /dev/null and b/widgets/com.mendix.widget.web.DropdownSort.mpk differ diff --git a/widgets/com.mendix.widget.web.Gallery.mpk b/widgets/com.mendix.widget.web.Gallery.mpk new file mode 100644 index 0000000..6d29ce0 Binary files /dev/null and b/widgets/com.mendix.widget.web.Gallery.mpk differ diff --git a/widgets/com.mendix.widget.web.HTMLElement.mpk b/widgets/com.mendix.widget.web.HTMLElement.mpk new file mode 100644 index 0000000..fa6fe3b Binary files /dev/null and b/widgets/com.mendix.widget.web.HTMLElement.mpk differ diff --git a/widgets/com.mendix.widget.web.Image.mpk b/widgets/com.mendix.widget.web.Image.mpk new file mode 100644 index 0000000..5387900 Binary files /dev/null and b/widgets/com.mendix.widget.web.Image.mpk differ diff --git a/widgets/com.mendix.widget.web.LanguageSelector.mpk b/widgets/com.mendix.widget.web.LanguageSelector.mpk new file mode 100644 index 0000000..55e53d0 Binary files /dev/null and b/widgets/com.mendix.widget.web.LanguageSelector.mpk differ diff --git a/widgets/com.mendix.widget.web.SelectionHelper.mpk b/widgets/com.mendix.widget.web.SelectionHelper.mpk new file mode 100644 index 0000000..0547ffc Binary files /dev/null and b/widgets/com.mendix.widget.web.SelectionHelper.mpk differ diff --git a/widgets/com.mendix.widget.web.Timeline.mpk b/widgets/com.mendix.widget.web.Timeline.mpk new file mode 100644 index 0000000..2d86239 Binary files /dev/null and b/widgets/com.mendix.widget.web.Timeline.mpk differ diff --git a/widgets/com.mendix.widget.web.TreeNode.mpk b/widgets/com.mendix.widget.web.TreeNode.mpk new file mode 100644 index 0000000..43612a8 Binary files /dev/null and b/widgets/com.mendix.widget.web.TreeNode.mpk differ diff --git a/widgets/rapiddata.CustomColumnChart.mpk b/widgets/rapiddata.CustomColumnChart.mpk new file mode 100644 index 0000000..d6fa87f Binary files /dev/null and b/widgets/rapiddata.CustomColumnChart.mpk differ